// ***************************************************************************
// *
// *   Copyright (C) 1997-2003, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************

// This is an invariant locale.
// This has been also known as the C locale on Unix or the invariant locale in Windows.
en_US_POSIX {
    Version{ "2.0" }
    // No grouping separators
    NumberPatterns { 
        "###0.###;-###0.###",
        "\u00A4 ###0.00;-\u00A4 ###0.00",
        "###0%",
        "0.000000E+000",
    }
    NumberElements {
        ".",
        ",",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "0/00",
        "INF",
        "\uFFFD",
        ".",
        "+",
    }

    // the PaperSize units are in mm
    // these values are not exact .. they are rounded off
    PaperSize:intvector{
        279, // height
        216  // width 
    }
    MeasurementSystem:int{ 1 } // US system
}
