úÎZKVt,      !"#$%&'()*+portableYitzchak Gale <gale@sefer.org>!=The reference C implentation imposes size limits on the data  structures in a timezone file. 'The maximum number of transition times The maximum number of TtInfo  clock settings %The maximum total number of bytes in  all timezone abbreviations. "The maximum number of leap second  specifications. DOlson timezone files can contain leap second specifications, though  most do not. %A Unix timestamp indicating the time  that the leap second occurred %The new total offset of UTC from UT1  after this leap second A TtInfo4 is a specification of local time in a timezone for 5 some period during which the clocks did not change. abbr is  String2 if the timezone abbreviation is represented as a String,  or Int8 if it is represented as an index into a long string of = null-terminated abbreviation strings (as in an Olson binary  timezone file). %The offset of local clocks from UTC,  in seconds %True if local clocks are summer time "The timezone abbreviation string. A TransitionType- is historical information about whether the B official body that announced a time change specified the time of C the change in terms of UTC, standard time (i.e., non-summer time) ? for the time zone, or the current wall clock time in the time : zone. This historical trivia may seem rather boring, but A unfortunately it is needed to interpret a POSIX-style TZ string # timezone specification correctly. A  Transition1 represents a moment when the clocks change in a D timezone. It consists of a Unix timestamp value that indicates the C exact moment in UTC when the clocks change, and the 0-based index  in the list of TtInfo+ specifications for the description of the # new time after the clocks change. #Unix timestamp indicating the time  when the clocks change 0-based index in the list of TtInfo  that describes the new time  OlsonData8 represents a full set of timezone data for a location.  OlsonData< can represent timezone data from files in Version 1 format H or Version 2 format. Version 1 format files can only contain timestamp I values that can be represented in less than 32 bits, and cannot contain  a POSIX TZ string. GIn a Version 2 format file, the timezone data is split into two parts. F The first part contains timezone data for which all timestamp values G can be represented in less than 32 bits, and the second part contains C timezone data for which 32 bits or more are required to represent I timestamp values. The POSIX TZ string, if present, can only be rendered I in a Version 2 file, and appears after both parts of the timezone data. Optional POSIX TZ string for  times after the last  Transition The size limits in  defaultLimits are taken from the file D tzfile.h from tzcode version 2010f. These are the limits for the C # implementation on many platforms.  limitsNoSolar2 contains the tighter size limits imposed on some E platforms that do not allow timezones that are based on solar time. noLimits$ imposes no size limits. If you use noLimits when E parsing, you may exhaust all available memory when reading a faulty ( or malicious timezone file. If you use noLimits when rendering, C the rendered timezone file might not be readable on some systems. !  !     portableYitzchak Gale <gale@sefer.org>! Render a TimeZoneSeries" as a binary Olson timezone file. BIf the values in the Olson timezone data exceed the standard size  limits (see ), this function throws an $ exception. For other behavior, use ",  #, % and ,  directly. " Convert a TimeZoneSeries to  OlsonData for rendering. #Check whether  OlsonData is within size limits. $;Render Olson timezone data as a binary Olson timezone file BIf the values in the Olson timezone data exceed the standard size  limits (see ), this function throws an $ exception. For other behavior, use #, %  and , directly. %@Render Olson timezone data in binary Olson timezone file format  as a lazy  ByteString &CSplit Olson timezone data into three parts: timezone data that can D be rendered using Version 1 format, timezone data that can only be @ rendered using Version 2 format, and the POSIX-style TZ string  if specified -./01234567!"#$%&!"#$%&portableYitzchak Gale <gale@sefer.org>'BAn exception indicating that the binary data being parsed was not  valid Olson timezone data 8(*Convert parsed Olson timezone data into a TimeZoneSeries. )ARead timezone data from a binary Olson timezone file and convert  it into a TimeZoneSeries% for use together with the types and  fucntions of  Data.Time(. This is the function from this module , for which you are most likely to have use. BIf the values in the Olson timezone file exceed the standard size  limits (see ), this function throws an $ exception. For other behavior, use + and  9 directly. *$Parse a binary Olson timezone file. BIf the values in the Olson timezone file exceed the standard size  limits (see ), this function throws an $ exception. For other behavior, use + and  9 directly. :+0A binary parser for binary Olson timezone files ;<=>?@ABCDEFGHIJ'()*+'()*+portableYitzchak Gale <gale@sefer.org>,  !"#$%&'()*+,)*(+'!"$#%&   K        !"#$%&'()*+,-./0123456789',:;<=>?@ABCDEFGHIJKLMtimezone-olson-0.1.0"Data.Time.LocalTime.TimeZone.Olson(Data.Time.LocalTime.TimeZone.Olson.Types)Data.Time.LocalTime.TimeZone.Olson.Render(Data.Time.LocalTime.TimeZone.Olson.Parse SizeLimitsmaxTimesmaxTypes maxAbbrCharsmaxLeapsLeapInfoleapTime leapOffsetTtInfo tt_gmtofftt_isdsttt_ttypett_abbrTransitionTypeUTCWallStd Transition transTime transIndex OlsonDataolsonTransitions olsonTypes olsonLeaps olsonPosixTZ defaultLimits limitsNoSolarnoLimitsrenderTimeZoneSeriesToOlsonFiletimeZoneSeriesToOlsonverifyOlsonLimitsrenderOlsonToFileputOlson splitOlson OlsonErrorolsonToTimeZoneSeriesgetTimeZoneSeriesFromOlsonFilegetOlsonFromFilegetOlsonbinary-0.5.0.2Data.Binary.PutrunPut putOlsonParts putOlsonPart putPosixTZ putTtInfo putLeapInfoput8bitIntegralput32bitIntegralput64bitIntegralputBooluniqputASCIIData.Binary.GetrunGet formatError getOlsonPart zipWithExtend getPosixTZ getTtInfo getLeapInfo get8bitIntgetInt32 get32bitIntget32bitIntegergetInt64get64bitIntegergetBooltoASCIIverifyverify_ throwOlson