From c4dd7a1a684490673e25aaf4fabec5df138854c4 Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Thu, 14 Mar 2013 05:42:27 +0000 Subject: Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2. --- ext/date/CREDITS | 2 + ext/date/TODO | 6 + ext/date/config.w32 | 14 + ext/date/config0.m4 | 25 + ext/date/lib/README | 7 + ext/date/lib/astro.c | 303 + ext/date/lib/astro.h | 51 + ext/date/lib/dow.c | 164 + ext/date/lib/fallbackmap.h | 40 + ext/date/lib/interval.c | 72 + ext/date/lib/parse_date.c | 25192 +++++++++++++++++++ ext/date/lib/parse_date.re | 2297 ++ ext/date/lib/parse_iso_intervals.c | 1161 + ext/date/lib/parse_iso_intervals.re | 555 + ext/date/lib/parse_tz.c | 457 + ext/date/lib/timelib.c | 286 + ext/date/lib/timelib.h | 140 + ext/date/lib/timelib.m4 | 80 + ext/date/lib/timelib_config.h.win32 | 1 + ext/date/lib/timelib_structs.h | 223 + ext/date/lib/timezonedb.h | 18241 ++++++++++++++ ext/date/lib/timezonemap.h | 1980 ++ ext/date/lib/tm2unixtime.c | 471 + ext/date/lib/unixtime2tm.c | 265 + ext/date/php_date.c | 4259 ++++ ext/date/php_date.h | 189 + ext/date/tests/002.phpt | 93 + ext/date/tests/003.phpt | 46 + ext/date/tests/004.phpt | 73 + ext/date/tests/005.phpt | 44 + ext/date/tests/006.phpt | 32 + ext/date/tests/007.phpt | 100 + ext/date/tests/008.phpt | 66 + ext/date/tests/009.phpt | 50 + ext/date/tests/009_win32.phpt | 50 + ext/date/tests/010.phpt | 67 + ext/date/tests/011.phpt | 22 + ext/date/tests/012.phpt | 57 + ext/date/tests/013.phpt | 57 + ext/date/tests/014.phpt | 38 + ext/date/tests/015.phpt | 21 + ext/date/tests/DateInterval_format.phpt | 71 + ext/date/tests/DateInterval_format_a.phpt | 24 + ext/date/tests/DatePeriod_wrong_constructor.phpt | 17 + ext/date/tests/DateTimeZone_clone_basic1.phpt | 39 + ext/date/tests/DateTimeZone_clone_basic2.phpt | 66 + ext/date/tests/DateTimeZone_clone_basic3.phpt | 75 + ext/date/tests/DateTimeZone_clone_basic4.phpt | 28 + ext/date/tests/DateTimeZone_compare_basic1.phpt | 54 + ext/date/tests/DateTimeZone_construct_basic.phpt | 30 + ext/date/tests/DateTimeZone_construct_error.phpt | 32 + .../tests/DateTimeZone_construct_variation1.phpt | 200 + ext/date/tests/DateTimeZone_extends_basic1.phpt | 34 + ext/date/tests/DateTimeZone_getName_basic1.phpt | 32 + ext/date/tests/DateTimeZone_getName_error.phpt | 31 + ext/date/tests/DateTimeZone_getOffset_basic1.phpt | 33 + ext/date/tests/DateTimeZone_getOffset_error.phpt | 40 + .../tests/DateTimeZone_getOffset_variation1.phpt | 252 + .../tests/DateTimeZone_getTransitions_basic1.phpt | 50 + .../tests/DateTimeZone_getTransitions_error.phpt | 34 + .../DateTimeZone_listAbbreviations_basic1.phpt | 70 + .../tests/DateTimeZone_listIdentifiers_basic1.phpt | 36 + ext/date/tests/DateTimeZone_serialize.phpt | 29 + ext/date/tests/DateTimeZone_verify.phpt | 111 + ext/date/tests/DateTime_add-dates.phpt | 29 + ext/date/tests/DateTime_add-fall-type2-type2.phpt | 51 + ext/date/tests/DateTime_add-fall-type2-type3.phpt | 53 + ext/date/tests/DateTime_add-fall-type3-type2.phpt | 53 + ext/date/tests/DateTime_add-fall-type3-type3.phpt | 53 + ext/date/tests/DateTime_add-february.phpt | 77 + ext/date/tests/DateTime_add-massive.phpt | 15 + .../tests/DateTime_add-spring-type2-type2.phpt | 31 + .../tests/DateTime_add-spring-type2-type3.phpt | 33 + .../tests/DateTime_add-spring-type3-type2.phpt | 33 + .../tests/DateTime_add-spring-type3-type3.phpt | 33 + ext/date/tests/DateTime_clone_basic1.phpt | 29 + ext/date/tests/DateTime_clone_basic2.phpt | 90 + ext/date/tests/DateTime_clone_basic3.phpt | 105 + ext/date/tests/DateTime_clone_basic4.phpt | 31 + ext/date/tests/DateTime_compare_basic1.phpt | 77 + ext/date/tests/DateTime_construct-dst-overlap.phpt | 15 + ext/date/tests/DateTime_construct_basic1.phpt | 58 + ext/date/tests/DateTime_construct_error.phpt | 32 + ext/date/tests/DateTime_construct_variation1.phpt | 377 + ext/date/tests/DateTime_construct_variation2.phpt | 232 + ext/date/tests/DateTime_data-absolute.inc | 24 + ext/date/tests/DateTime_data-dates.inc | 66 + ext/date/tests/DateTime_data-fall-type2-type2.inc | 211 + ext/date/tests/DateTime_data-fall-type2-type3.inc | 225 + ext/date/tests/DateTime_data-fall-type3-type2.inc | 227 + ext/date/tests/DateTime_data-fall-type3-type3.inc | 239 + ext/date/tests/DateTime_data-february.inc | 217 + ext/date/tests/DateTime_data-massive.inc | 34 + .../tests/DateTime_data-spring-type2-type2.inc | 109 + .../tests/DateTime_data-spring-type2-type3.inc | 109 + .../tests/DateTime_data-spring-type3-type2.inc | 109 + .../tests/DateTime_data-spring-type3-type3.inc | 109 + ext/date/tests/DateTime_days-absolute.phpt | 15 + ext/date/tests/DateTime_days-dates.phpt | 29 + ext/date/tests/DateTime_days-fall-type2-type2.phpt | 51 + ext/date/tests/DateTime_days-fall-type2-type3.phpt | 51 + ext/date/tests/DateTime_days-fall-type3-type2.phpt | 51 + ext/date/tests/DateTime_days-fall-type3-type3.phpt | 51 + ext/date/tests/DateTime_days-february.phpt | 77 + ext/date/tests/DateTime_days-massive.phpt | 15 + .../tests/DateTime_days-spring-type2-type2.phpt | 31 + .../tests/DateTime_days-spring-type2-type3.phpt | 31 + .../tests/DateTime_days-spring-type3-type2.phpt | 31 + .../tests/DateTime_days-spring-type3-type3.phpt | 31 + ext/date/tests/DateTime_diff-absolute.phpt | 15 + ext/date/tests/DateTime_diff-dates.phpt | 29 + ext/date/tests/DateTime_diff-fall-type2-type2.phpt | 51 + ext/date/tests/DateTime_diff-fall-type2-type3.phpt | 53 + ext/date/tests/DateTime_diff-fall-type3-type2.phpt | 53 + ext/date/tests/DateTime_diff-fall-type3-type3.phpt | 53 + ext/date/tests/DateTime_diff-february.phpt | 77 + ext/date/tests/DateTime_diff-massive.phpt | 15 + .../tests/DateTime_diff-spring-type2-type2.phpt | 31 + .../tests/DateTime_diff-spring-type2-type3.phpt | 33 + .../tests/DateTime_diff-spring-type3-type2.phpt | 33 + .../tests/DateTime_diff-spring-type3-type3.phpt | 33 + ext/date/tests/DateTime_extends_basic1.phpt | 49 + ext/date/tests/DateTime_extends_basic2.phpt | 31 + ext/date/tests/DateTime_extends_basic3.phpt | 26 + ext/date/tests/DateTime_format_basic1.phpt | 40 + ext/date/tests/DateTime_format_basic2.phpt | 44 + ext/date/tests/DateTime_format_error.phpt | 41 + ext/date/tests/DateTime_format_variation1.phpt | 208 + ext/date/tests/DateTime_getOffset_basic1.phpt | 28 + ext/date/tests/DateTime_getOffset_error.phpt | 33 + ext/date/tests/DateTime_getTimeZone_basic1.phpt | 33 + ext/date/tests/DateTime_modify_basic1.phpt | 39 + ext/date/tests/DateTime_modify_error.phpt | 42 + ext/date/tests/DateTime_modify_variation1.phpt | 262 + ext/date/tests/DateTime_serialize.phpt | 39 + ext/date/tests/DateTime_setDate_basic1.phpt | 30 + ext/date/tests/DateTime_setDate_error.phpt | 53 + ext/date/tests/DateTime_setDate_variation1.phpt | 329 + ext/date/tests/DateTime_setDate_variation2.phpt | 329 + ext/date/tests/DateTime_setDate_variation3.phpt | 329 + ext/date/tests/DateTime_setISODate_basic1.phpt | 38 + ext/date/tests/DateTime_setISODate_error.phpt | 51 + ext/date/tests/DateTime_setISODate_variation1.phpt | 329 + ext/date/tests/DateTime_setISODate_variation2.phpt | 329 + ext/date/tests/DateTime_setISODate_variation3.phpt | 329 + ext/date/tests/DateTime_setTime_basic1.phpt | 46 + ext/date/tests/DateTime_setTime_error.phpt | 49 + ext/date/tests/DateTime_setTime_variation1.phpt | 329 + ext/date/tests/DateTime_setTime_variation2.phpt | 329 + ext/date/tests/DateTime_setTime_variation3.phpt | 329 + ext/date/tests/DateTime_setTimezone_basic1.phpt | 29 + ext/date/tests/DateTime_setTimezone_error.phpt | 39 + .../tests/DateTime_setTimezone_variation1.phpt | 252 + ext/date/tests/DateTime_sub-dates.phpt | 29 + ext/date/tests/DateTime_sub-fall-type2-type2.phpt | 51 + ext/date/tests/DateTime_sub-fall-type2-type3.phpt | 53 + ext/date/tests/DateTime_sub-fall-type3-type2.phpt | 53 + ext/date/tests/DateTime_sub-fall-type3-type3.phpt | 53 + ext/date/tests/DateTime_sub-february.phpt | 77 + ext/date/tests/DateTime_sub-massive.phpt | 15 + .../tests/DateTime_sub-spring-type2-type2.phpt | 31 + .../tests/DateTime_sub-spring-type2-type3.phpt | 33 + .../tests/DateTime_sub-spring-type3-type2.phpt | 33 + .../tests/DateTime_sub-spring-type3-type3.phpt | 33 + ext/date/tests/DateTime_verify.phpt | 183 + ext/date/tests/big_year.phpt | 17 + ext/date/tests/bug13142.phpt | 25 + ext/date/tests/bug14561.phpt | 12 + ext/date/tests/bug17988.phpt | 34 + ext/date/tests/bug20382-1.phpt | 17 + ext/date/tests/bug20382-2.phpt | 170 + ext/date/tests/bug21399.phpt | 10 + ext/date/tests/bug21966.phpt | 19 + ext/date/tests/bug26090.phpt | 15 + ext/date/tests/bug26198.phpt | 11 + ext/date/tests/bug26317.phpt | 18 + ext/date/tests/bug26320.phpt | 16 + ext/date/tests/bug26694.phpt | 10 + ext/date/tests/bug27719.phpt | 67 + ext/date/tests/bug27780.phpt | 118 + ext/date/tests/bug28024.phpt | 12 + ext/date/tests/bug28088.phpt | 17 + ext/date/tests/bug28599.phpt | 9 + ext/date/tests/bug29150.phpt | 10 + ext/date/tests/bug29585.phpt | 9 + ext/date/tests/bug29595.phpt | 11 + ext/date/tests/bug30096.phpt | 48 + ext/date/tests/bug30532.phpt | 25 + ext/date/tests/bug32086.phpt | 51 + ext/date/tests/bug32270.phpt | 26 + ext/date/tests/bug32555.phpt | 21 + ext/date/tests/bug32588.phpt | 14 + ext/date/tests/bug33056.phpt | 13 + ext/date/tests/bug33414-1.phpt | 321 + ext/date/tests/bug33414-2.phpt | 121 + ext/date/tests/bug33415-1.phpt | 33 + ext/date/tests/bug33415-2.phpt | 342 + ext/date/tests/bug33452.phpt | 11 + ext/date/tests/bug33532.phpt | 43 + ext/date/tests/bug33536.phpt | 13 + ext/date/tests/bug33562.phpt | 11 + ext/date/tests/bug33563.phpt | 12 + ext/date/tests/bug33578.phpt | 21 + ext/date/tests/bug33869.phpt | 26 + ext/date/tests/bug33957.phpt | 103 + ext/date/tests/bug34087.phpt | 20 + ext/date/tests/bug34304.phpt | 11 + ext/date/tests/bug34676.phpt | 19 + ext/date/tests/bug34771.phpt | 32 + ext/date/tests/bug35143.phpt | 21 + ext/date/tests/bug35218.phpt | 14 + ext/date/tests/bug35414.phpt | 16 + ext/date/tests/bug35422.phpt | 12 + ext/date/tests/bug35425.phpt | 31 + ext/date/tests/bug35456.phpt | 16 + ext/date/tests/bug35499.phpt | 78 + ext/date/tests/bug35624.phpt | 29 + ext/date/tests/bug35630.phpt | 11 + ext/date/tests/bug35699.phpt | 14 + ext/date/tests/bug35705.phpt | 11 + ext/date/tests/bug35885.phpt | 21 + ext/date/tests/bug35887.phpt | 11 + ext/date/tests/bug36224.phpt | 13 + ext/date/tests/bug36510.phpt | 14 + ext/date/tests/bug36599.phpt | 12 + ext/date/tests/bug36988.phpt | 11 + ext/date/tests/bug37017.phpt | 15 + ext/date/tests/bug37368.phpt | 9 + ext/date/tests/bug37514.phpt | 19 + ext/date/tests/bug37616.phpt | 9 + ext/date/tests/bug37747.phpt | 11 + ext/date/tests/bug38229.phpt | 13 + ext/date/tests/bug39782.phpt | 19 + ext/date/tests/bug40743.phpt | 40 + ext/date/tests/bug40861.phpt | 33 + ext/date/tests/bug41523-64bit.phpt | 55 + ext/date/tests/bug41523.phpt | 55 + ext/date/tests/bug41599.phpt | 27 + ext/date/tests/bug41709.phpt | 34 + ext/date/tests/bug41842.phpt | 11 + ext/date/tests/bug41844.phpt | 17 + ext/date/tests/bug41964.phpt | 59 + ext/date/tests/bug42910.phpt | 30 + ext/date/tests/bug43003.phpt | 27 + ext/date/tests/bug43075.phpt | 10 + ext/date/tests/bug43452.phpt | 70 + ext/date/tests/bug43527.phpt | 10 + ext/date/tests/bug43808.phpt | 48 + ext/date/tests/bug43960.phpt | 9 + ext/date/tests/bug44562.phpt | 38 + ext/date/tests/bug44742.phpt | 36 + ext/date/tests/bug45529.phpt | 21 + ext/date/tests/bug45554.phpt | 20 + ext/date/tests/bug45682.phpt | 32 + ext/date/tests/bug45866.phpt | 24 + ext/date/tests/bug46108.phpt | 19 + ext/date/tests/bug46111.phpt | 21 + ext/date/tests/bug46268.phpt | 23 + ext/date/tests/bug46874.phpt | 31 + ext/date/tests/bug48058.phpt | 29 + ext/date/tests/bug48097.phpt | 38 + ext/date/tests/bug48187.phpt | 28 + ext/date/tests/bug48276.phpt | 9 + ext/date/tests/bug48476.phpt | 33 + ext/date/tests/bug48678.phpt | 31 + ext/date/tests/bug49059.phpt | 34 + ext/date/tests/bug49081.phpt | 22 + ext/date/tests/bug49585.phpt | 16 + ext/date/tests/bug49700.phpt | 15 + ext/date/tests/bug49778.phpt | 30 + ext/date/tests/bug50055.phpt | 30 + ext/date/tests/bug50392.phpt | 45 + ext/date/tests/bug50475.phpt | 18 + ext/date/tests/bug50680.phpt | 9 + ext/date/tests/bug51096.phpt | 55 + ext/date/tests/bug51393.phpt | 75 + ext/date/tests/bug51819.phpt | 34 + ext/date/tests/bug51866.phpt | 161 + ext/date/tests/bug51994.phpt | 37 + ext/date/tests/bug52062-64bit.phpt | 27 + ext/date/tests/bug52062.phpt | 31 + ext/date/tests/bug52063.phpt | 15 + ext/date/tests/bug52113.phpt | 102 + ext/date/tests/bug52290.phpt | 27 + ext/date/tests/bug52342.phpt | 23 + ext/date/tests/bug52430.phpt | 37 + ext/date/tests/bug52454.phpt | 22 + ext/date/tests/bug52577.phpt | 19 + ext/date/tests/bug52668.phpt | 25 + ext/date/tests/bug52738.phpt | 32 + ext/date/tests/bug52808.phpt | 85 + ext/date/tests/bug53437.phpt | 28 + ext/date/tests/bug53502.phpt | 13 + ext/date/tests/bug54283.phpt | 14 + ext/date/tests/bug54316.phpt | 28 + ext/date/tests/bug54340.phpt | 43 + ext/date/tests/bug54597.phpt | 18 + ext/date/tests/bug54851.phpt | 57 + ext/date/tests/bug55253.phpt | 45 + ext/date/tests/bug55397.phpt | 11 + ext/date/tests/bug60236.phpt | 22 + ext/date/tests/bug62500.phpt | 28 + ext/date/tests/bug62561.phpt | 16 + ext/date/tests/bug62852.phpt | 36 + ext/date/tests/bug62896.phpt | 42 + ext/date/tests/bug63435.phpt | 16 + .../tests/cal_days_in_month_invalid_calendar.phpt | 16 + ext/date/tests/cal_days_in_month_invalid_date.phpt | 16 + ext/date/tests/checkdate_basic1.phpt | 54 + ext/date/tests/checkdate_error.phpt | 49 + ext/date/tests/checkdate_variation1.phpt | 202 + ext/date/tests/checkdate_variation2.phpt | 202 + ext/date/tests/checkdate_variation3.phpt | 201 + ext/date/tests/date-lenient-create.phpt | 149 + ext/date/tests/date-lenient.phpt | 146 + ext/date/tests/date-parse-by-format001.phpt | 51 + ext/date/tests/date-set-timestamp.phpt | 15 + ext/date/tests/date-time-modify-times.phpt | 47 + ext/date/tests/date.phpt | 22 + ext/date/tests/date_add_basic.phpt | 45 + ext/date/tests/date_add_basic2.phpt | 14 + ext/date/tests/date_basic1.phpt | 41 + ext/date/tests/date_constants.phpt | 75 + ext/date/tests/date_create-1.phpt | 48 + ext/date/tests/date_create-2.phpt | 16 + ext/date/tests/date_create-relative.phpt | 93 + ext/date/tests/date_create_basic.phpt | 58 + ext/date/tests/date_create_error.phpt | 28 + ext/date/tests/date_create_from_format_basic.phpt | 14 + ext/date/tests/date_create_from_format_basic2.phpt | 13 + ext/date/tests/date_create_variation1.phpt | 389 + ext/date/tests/date_create_variation2.phpt | 272 + ext/date/tests/date_date_set_basic1.phpt | 30 + ext/date/tests/date_date_set_error.phpt | 56 + ext/date/tests/date_date_set_variation1.phpt | 254 + ext/date/tests/date_date_set_variation2.phpt | 329 + ext/date/tests/date_date_set_variation3.phpt | 329 + ext/date/tests/date_date_set_variation4.phpt | 329 + .../tests/date_default_timezone_get-1-win32.phpt | 24 + ext/date/tests/date_default_timezone_get-1.phpt | 20 + ext/date/tests/date_default_timezone_get-2.phpt | 16 + ext/date/tests/date_default_timezone_get-3.phpt | 14 + ext/date/tests/date_default_timezone_get-4.phpt | 11 + .../tests/date_default_timezone_get_error.phpt | 27 + ext/date/tests/date_default_timezone_set-1.phpt | 32 + .../tests/date_default_timezone_set_error.phpt | 41 + .../date_default_timezone_set_variation1.phpt | 200 + ext/date/tests/date_diff.phpt | 63 + ext/date/tests/date_diff1.phpt | 48 + ext/date/tests/date_error.phpt | 39 + ext/date/tests/date_format_basic1.phpt | 40 + ext/date/tests/date_format_error.phpt | 67 + ext/date/tests/date_format_variation1.phpt | 252 + ext/date/tests/date_format_variation2.phpt | 208 + ext/date/tests/date_get_last_errors_basic.phpt | 13 + ext/date/tests/date_isodate_set_basic1.phpt | 38 + ext/date/tests/date_isodate_set_error.phpt | 68 + ext/date/tests/date_isodate_set_variation1.phpt | 254 + ext/date/tests/date_isodate_set_variation2.phpt | 329 + ext/date/tests/date_isodate_set_variation3.phpt | 329 + ext/date/tests/date_isodate_set_variation4.phpt | 329 + ext/date/tests/date_modify-1.phpt | 30 + ext/date/tests/date_modify-2.phpt | 15 + ext/date/tests/date_modify_basic1.phpt | 39 + ext/date/tests/date_modify_error.phpt | 68 + ext/date/tests/date_modify_variation1.phpt | 252 + ext/date/tests/date_modify_variation2.phpt | 262 + ext/date/tests/date_offset_get_basic1.phpt | 28 + ext/date/tests/date_offset_get_error.phpt | 57 + ext/date/tests/date_offset_get_variation1.phpt | 250 + ext/date/tests/date_parse_001.phpt | 304 + ext/date/tests/date_parse_basic1.phpt | 107 + ext/date/tests/date_parse_error.phpt | 89 + ext/date/tests/date_parse_from_format_basic.phpt | 14 + ext/date/tests/date_parse_variation1.phpt | 274 + ext/date/tests/date_period.phpt | 63 + ext/date/tests/date_sub_basic.phpt | 45 + ext/date/tests/date_sun_info_001.phpt | 31 + ext/date/tests/date_sun_info_002.phpt | 23 + ext/date/tests/date_sun_info_error.phpt | 46 + ext/date/tests/date_sun_info_variation1.phpt | 492 + ext/date/tests/date_sun_info_variation2.phpt | 492 + ext/date/tests/date_sun_info_variation3.phpt | 493 + ext/date/tests/date_sunrise_and_sunset_basic.phpt | 29 + ext/date/tests/date_sunrise_error.phpt | 41 + ext/date/tests/date_sunrise_variation1.phpt | 316 + ext/date/tests/date_sunrise_variation2.phpt | 211 + ext/date/tests/date_sunrise_variation3.phpt | 294 + ext/date/tests/date_sunrise_variation4.phpt | 296 + ext/date/tests/date_sunrise_variation5.phpt | 296 + ext/date/tests/date_sunrise_variation6.phpt | 295 + ext/date/tests/date_sunrise_variation7.phpt | 57 + ext/date/tests/date_sunrise_variation8.phpt | 73 + ext/date/tests/date_sunrise_variation9.phpt | 47 + ext/date/tests/date_sunset_error.phpt | 50 + ext/date/tests/date_sunset_variation1.phpt | 316 + ext/date/tests/date_sunset_variation2.phpt | 211 + ext/date/tests/date_sunset_variation3.phpt | 297 + ext/date/tests/date_sunset_variation4.phpt | 296 + ext/date/tests/date_sunset_variation5.phpt | 296 + ext/date/tests/date_sunset_variation6.phpt | 296 + ext/date/tests/date_sunset_variation7.phpt | 75 + ext/date/tests/date_sunset_variation8.phpt | 73 + ext/date/tests/date_sunset_variation9.phpt | 47 + ext/date/tests/date_time_set_basic1.phpt | 46 + ext/date/tests/date_time_set_error.phpt | 70 + ext/date/tests/date_time_set_variation1.phpt | 254 + ext/date/tests/date_time_set_variation2.phpt | 329 + ext/date/tests/date_time_set_variation3.phpt | 329 + ext/date/tests/date_time_set_variation4.phpt | 329 + ext/date/tests/date_timestamp_get.phpt | 20 + ext/date/tests/date_timezone_get_basic1.phpt | 35 + ext/date/tests/date_timezone_get_error.phpt | 56 + ext/date/tests/date_timezone_get_variation1.phpt | 250 + ext/date/tests/date_timezone_set_basic1.phpt | 34 + ext/date/tests/date_timezone_set_error.phpt | 64 + ext/date/tests/date_timezone_set_variation1.phpt | 254 + ext/date/tests/date_timezone_set_variation2.phpt | 252 + ext/date/tests/date_variation1.phpt | 208 + ext/date/tests/date_variation2.phpt | 222 + ext/date/tests/default-timezone-1.phpt | 10 + ext/date/tests/default-timezone-2.phpt | 10 + ext/date/tests/examine_diff.inc | 79 + ext/date/tests/format-negative-timestamp.phpt | 24 + ext/date/tests/getdate_basic.phpt | 76 + ext/date/tests/getdate_error.phpt | 31 + ext/date/tests/getdate_variation1.phpt | 443 + ext/date/tests/getdate_variation2.phpt | 114 + ext/date/tests/getdate_variation3.phpt | 114 + ext/date/tests/getdate_variation4.phpt | 141 + ext/date/tests/getdate_variation5.phpt | 223 + ext/date/tests/getdate_variation6.phpt | 109 + ext/date/tests/getdate_variation7.phpt | 78 + ext/date/tests/gettimeofday_basic.phpt | 55 + ext/date/tests/gettimeofday_error.phpt | 29 + ext/date/tests/gettimeofday_variation1.phpt | 284 + ext/date/tests/gmdate_basic.phpt | 30 + ext/date/tests/gmdate_error.phpt | 41 + ext/date/tests/gmdate_variation1.phpt | 221 + ext/date/tests/gmdate_variation10.phpt | 69 + ext/date/tests/gmdate_variation11.phpt | 45 + ext/date/tests/gmdate_variation12.phpt | 48 + ext/date/tests/gmdate_variation13.phpt | 82 + ext/date/tests/gmdate_variation14.phpt | 34 + ext/date/tests/gmdate_variation2.phpt | 210 + ext/date/tests/gmdate_variation3.phpt | 59 + ext/date/tests/gmdate_variation4.phpt | 45 + ext/date/tests/gmdate_variation5.phpt | 29 + ext/date/tests/gmdate_variation6.phpt | 61 + ext/date/tests/gmdate_variation7.phpt | 60 + ext/date/tests/gmdate_variation8.phpt | 60 + ext/date/tests/gmdate_variation9.phpt | 81 + ext/date/tests/gmmktime_basic.phpt | 35 + ext/date/tests/gmmktime_error.phpt | 39 + ext/date/tests/gmmktime_variation1.phpt | 194 + ext/date/tests/gmmktime_variation2.phpt | 194 + ext/date/tests/gmmktime_variation3.phpt | 194 + ext/date/tests/gmmktime_variation4.phpt | 194 + ext/date/tests/gmmktime_variation5.phpt | 194 + ext/date/tests/gmmktime_variation6.phpt | 190 + ext/date/tests/gmmktime_variation7.phpt | 54 + ext/date/tests/gmmktime_variation8.phpt | 44 + ext/date/tests/gmmktime_variation9.phpt | 62 + ext/date/tests/gmstrftime_basic.phpt | 29 + ext/date/tests/gmstrftime_error.phpt | 38 + ext/date/tests/gmstrftime_variation1.phpt | 220 + ext/date/tests/gmstrftime_variation10.phpt | 50 + ext/date/tests/gmstrftime_variation11.phpt | 37 + ext/date/tests/gmstrftime_variation12.phpt | 37 + ext/date/tests/gmstrftime_variation13.phpt | 60 + ext/date/tests/gmstrftime_variation14.phpt | 60 + ext/date/tests/gmstrftime_variation15.phpt | 55 + ext/date/tests/gmstrftime_variation16.phpt | 55 + ext/date/tests/gmstrftime_variation17.phpt | 37 + ext/date/tests/gmstrftime_variation18.phpt | 37 + ext/date/tests/gmstrftime_variation19.phpt | 50 + ext/date/tests/gmstrftime_variation2.phpt | 206 + ext/date/tests/gmstrftime_variation20.phpt | 52 + ext/date/tests/gmstrftime_variation21.phpt | 55 + ext/date/tests/gmstrftime_variation22.phpt | 59 + ext/date/tests/gmstrftime_variation3.phpt | 52 + ext/date/tests/gmstrftime_variation4.phpt | 47 + ext/date/tests/gmstrftime_variation5.phpt | 51 + ext/date/tests/gmstrftime_variation6.phpt | 59 + ext/date/tests/gmstrftime_variation7.phpt | 49 + ext/date/tests/gmstrftime_variation8.phpt | 39 + ext/date/tests/gmstrftime_variation9.phpt | 50 + ext/date/tests/idate_basic.phpt | 24 + ext/date/tests/idate_error.phpt | 37 + ext/date/tests/idate_variation1.phpt | 301 + ext/date/tests/idate_variation2.phpt | 191 + ext/date/tests/idate_variation3.phpt | 35 + ext/date/tests/idate_variation4.phpt | 66 + ext/date/tests/idate_variation5.phpt | 62 + ext/date/tests/idate_variation6.phpt | 34 + ext/date/tests/localtime_basic.phpt | 93 + ext/date/tests/localtime_error.phpt | 33 + ext/date/tests/localtime_variation1.phpt | 658 + ext/date/tests/localtime_variation2.phpt | 643 + ext/date/tests/localtime_variation3.phpt | 116 + ext/date/tests/localtime_variation4.phpt | 162 + ext/date/tests/localtime_variation5.phpt | 162 + ext/date/tests/microtime_basic.phpt | 20 + ext/date/tests/microtime_error.phpt | 72 + ext/date/tests/mktime-1.phpt | 44 + ext/date/tests/mktime-2.phpt | 51 + ext/date/tests/mktime-3-64bit.phpt | 60 + ext/date/tests/mktime-3.phpt | 59 + ext/date/tests/mktime_basic1.phpt | 47 + ext/date/tests/mktime_error.phpt | 45 + ext/date/tests/mktime_variation1.phpt | 224 + ext/date/tests/mktime_variation2.phpt | 218 + ext/date/tests/mktime_variation3.phpt | 219 + ext/date/tests/mktime_variation4.phpt | 220 + ext/date/tests/mktime_variation5.phpt | 221 + ext/date/tests/mktime_variation6.phpt | 223 + ext/date/tests/mktime_variation7.phpt | 251 + ext/date/tests/oo_001.phpt | 52 + ext/date/tests/oo_002.phpt | 27 + ...fc-datetime_and_daylight_saving_time-type1.phpt | 380 + ...fc-datetime_and_daylight_saving_time-type2.phpt | 380 + ...fc-datetime_and_daylight_saving_time-type3.phpt | 399 + ext/date/tests/strftime_basic.phpt | 30 + ext/date/tests/strftime_error.phpt | 30 + ext/date/tests/strftime_variation1.phpt | 222 + ext/date/tests/strftime_variation10.phpt | 50 + ext/date/tests/strftime_variation11.phpt | 37 + ext/date/tests/strftime_variation12.phpt | 37 + ext/date/tests/strftime_variation13.phpt | 60 + ext/date/tests/strftime_variation14.phpt | 60 + ext/date/tests/strftime_variation15.phpt | 55 + ext/date/tests/strftime_variation16.phpt | 55 + ext/date/tests/strftime_variation17.phpt | 36 + ext/date/tests/strftime_variation18.phpt | 36 + ext/date/tests/strftime_variation19.phpt | 50 + ext/date/tests/strftime_variation2.phpt | 191 + ext/date/tests/strftime_variation20.phpt | 52 + ext/date/tests/strftime_variation21.phpt | 55 + ext/date/tests/strftime_variation22.phpt | 59 + ext/date/tests/strftime_variation23.phpt | 36 + ext/date/tests/strftime_variation3.phpt | 52 + ext/date/tests/strftime_variation4.phpt | 48 + ext/date/tests/strftime_variation5.phpt | 50 + ext/date/tests/strftime_variation6.phpt | 60 + ext/date/tests/strftime_variation7.phpt | 50 + ext/date/tests/strftime_variation8.phpt | 31 + ext/date/tests/strftime_variation9.phpt | 50 + ext/date/tests/strtotime-mysql-64bit.phpt | 28 + ext/date/tests/strtotime-mysql.phpt | 27 + ext/date/tests/strtotime-relative.phpt | 98 + ext/date/tests/strtotime.phpt | 20 + ext/date/tests/strtotime2.phpt | 40 + ext/date/tests/strtotime3-64bit.phpt | 71 + ext/date/tests/strtotime3.phpt | 71 + ext/date/tests/strtotime_basic.phpt | 46 + ext/date/tests/strtotime_basic2.phpt | 13 + ext/date/tests/strtotime_variation_scottish.phpt | 15 + ext/date/tests/sunfuncts.phpt | 42 + ext/date/tests/test-parse-from-format.phpt | 143 + ext/date/tests/time_basic.phpt | 16 + ext/date/tests/time_error.phpt | 19 + ext/date/tests/timestamp-in-dst.phpt | 11 + ext/date/tests/timezone-configuration.phpt | 19 + .../tests/timezone_abbreviations_list_basic1.phpt | 70 + .../tests/timezone_identifiers_list_basic1.phpt | 36 + ...imezone_identifiers_list_wrong_constructor.phpt | 15 + ext/date/tests/timezone_location_get.phpt | 24 + ext/date/tests/timezone_name_from_abbr_basic1.phpt | 68 + ext/date/tests/timezone_name_from_abbr_error.phpt | 42 + .../tests/timezone_name_from_abbr_variation1.phpt | 205 + .../tests/timezone_name_from_abbr_variation2.phpt | 219 + .../tests/timezone_name_from_abbr_variation3.phpt | 219 + ext/date/tests/timezone_name_get_error.phpt | 56 + ext/date/tests/timezone_offset_get_basic1.phpt | 34 + ext/date/tests/timezone_offset_get_error.phpt | 84 + ext/date/tests/timezone_offset_get_variation1.phpt | 252 + ext/date/tests/timezone_offset_get_variation2.phpt | 252 + ext/date/tests/timezone_open_basic1.phpt | 27 + ext/date/tests/timezone_open_error.phpt | 35 + ext/date/tests/timezone_open_variation1.phpt | 251 + .../tests/timezone_transitions_get_basic1.phpt | 53 + ext/date/tests/timezone_transitions_get_error.phpt | 58 + .../tests/timezone_transitions_get_variation1.phpt | 250 + .../tests/timezone_transitions_get_variation2.phpt | 253 + .../tests/timezone_transitions_get_variation3.phpt | 253 + ext/date/tests/timezones-list.phpt | 49 + ext/date/tests/timezones.phpt | 26 + 587 files changed, 105630 insertions(+) create mode 100644 ext/date/CREDITS create mode 100644 ext/date/TODO create mode 100755 ext/date/config.w32 create mode 100644 ext/date/config0.m4 create mode 100644 ext/date/lib/README create mode 100644 ext/date/lib/astro.c create mode 100644 ext/date/lib/astro.h create mode 100644 ext/date/lib/dow.c create mode 100644 ext/date/lib/fallbackmap.h create mode 100644 ext/date/lib/interval.c create mode 100644 ext/date/lib/parse_date.c create mode 100644 ext/date/lib/parse_date.re create mode 100644 ext/date/lib/parse_iso_intervals.c create mode 100644 ext/date/lib/parse_iso_intervals.re create mode 100644 ext/date/lib/parse_tz.c create mode 100644 ext/date/lib/timelib.c create mode 100644 ext/date/lib/timelib.h create mode 100644 ext/date/lib/timelib.m4 create mode 100755 ext/date/lib/timelib_config.h.win32 create mode 100644 ext/date/lib/timelib_structs.h create mode 100644 ext/date/lib/timezonedb.h create mode 100644 ext/date/lib/timezonemap.h create mode 100644 ext/date/lib/tm2unixtime.c create mode 100644 ext/date/lib/unixtime2tm.c create mode 100644 ext/date/php_date.c create mode 100644 ext/date/php_date.h create mode 100644 ext/date/tests/002.phpt create mode 100644 ext/date/tests/003.phpt create mode 100644 ext/date/tests/004.phpt create mode 100644 ext/date/tests/005.phpt create mode 100644 ext/date/tests/006.phpt create mode 100644 ext/date/tests/007.phpt create mode 100644 ext/date/tests/008.phpt create mode 100644 ext/date/tests/009.phpt create mode 100644 ext/date/tests/009_win32.phpt create mode 100644 ext/date/tests/010.phpt create mode 100644 ext/date/tests/011.phpt create mode 100644 ext/date/tests/012.phpt create mode 100644 ext/date/tests/013.phpt create mode 100644 ext/date/tests/014.phpt create mode 100644 ext/date/tests/015.phpt create mode 100644 ext/date/tests/DateInterval_format.phpt create mode 100644 ext/date/tests/DateInterval_format_a.phpt create mode 100644 ext/date/tests/DatePeriod_wrong_constructor.phpt create mode 100644 ext/date/tests/DateTimeZone_clone_basic1.phpt create mode 100644 ext/date/tests/DateTimeZone_clone_basic2.phpt create mode 100644 ext/date/tests/DateTimeZone_clone_basic3.phpt create mode 100644 ext/date/tests/DateTimeZone_clone_basic4.phpt create mode 100644 ext/date/tests/DateTimeZone_compare_basic1.phpt create mode 100644 ext/date/tests/DateTimeZone_construct_basic.phpt create mode 100644 ext/date/tests/DateTimeZone_construct_error.phpt create mode 100644 ext/date/tests/DateTimeZone_construct_variation1.phpt create mode 100644 ext/date/tests/DateTimeZone_extends_basic1.phpt create mode 100644 ext/date/tests/DateTimeZone_getName_basic1.phpt create mode 100644 ext/date/tests/DateTimeZone_getName_error.phpt create mode 100644 ext/date/tests/DateTimeZone_getOffset_basic1.phpt create mode 100644 ext/date/tests/DateTimeZone_getOffset_error.phpt create mode 100644 ext/date/tests/DateTimeZone_getOffset_variation1.phpt create mode 100644 ext/date/tests/DateTimeZone_getTransitions_basic1.phpt create mode 100644 ext/date/tests/DateTimeZone_getTransitions_error.phpt create mode 100644 ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt create mode 100644 ext/date/tests/DateTimeZone_listIdentifiers_basic1.phpt create mode 100644 ext/date/tests/DateTimeZone_serialize.phpt create mode 100644 ext/date/tests/DateTimeZone_verify.phpt create mode 100644 ext/date/tests/DateTime_add-dates.phpt create mode 100644 ext/date/tests/DateTime_add-fall-type2-type2.phpt create mode 100644 ext/date/tests/DateTime_add-fall-type2-type3.phpt create mode 100644 ext/date/tests/DateTime_add-fall-type3-type2.phpt create mode 100644 ext/date/tests/DateTime_add-fall-type3-type3.phpt create mode 100644 ext/date/tests/DateTime_add-february.phpt create mode 100644 ext/date/tests/DateTime_add-massive.phpt create mode 100644 ext/date/tests/DateTime_add-spring-type2-type2.phpt create mode 100644 ext/date/tests/DateTime_add-spring-type2-type3.phpt create mode 100644 ext/date/tests/DateTime_add-spring-type3-type2.phpt create mode 100644 ext/date/tests/DateTime_add-spring-type3-type3.phpt create mode 100644 ext/date/tests/DateTime_clone_basic1.phpt create mode 100644 ext/date/tests/DateTime_clone_basic2.phpt create mode 100644 ext/date/tests/DateTime_clone_basic3.phpt create mode 100644 ext/date/tests/DateTime_clone_basic4.phpt create mode 100644 ext/date/tests/DateTime_compare_basic1.phpt create mode 100644 ext/date/tests/DateTime_construct-dst-overlap.phpt create mode 100644 ext/date/tests/DateTime_construct_basic1.phpt create mode 100644 ext/date/tests/DateTime_construct_error.phpt create mode 100644 ext/date/tests/DateTime_construct_variation1.phpt create mode 100644 ext/date/tests/DateTime_construct_variation2.phpt create mode 100644 ext/date/tests/DateTime_data-absolute.inc create mode 100644 ext/date/tests/DateTime_data-dates.inc create mode 100644 ext/date/tests/DateTime_data-fall-type2-type2.inc create mode 100644 ext/date/tests/DateTime_data-fall-type2-type3.inc create mode 100644 ext/date/tests/DateTime_data-fall-type3-type2.inc create mode 100644 ext/date/tests/DateTime_data-fall-type3-type3.inc create mode 100644 ext/date/tests/DateTime_data-february.inc create mode 100644 ext/date/tests/DateTime_data-massive.inc create mode 100644 ext/date/tests/DateTime_data-spring-type2-type2.inc create mode 100644 ext/date/tests/DateTime_data-spring-type2-type3.inc create mode 100644 ext/date/tests/DateTime_data-spring-type3-type2.inc create mode 100644 ext/date/tests/DateTime_data-spring-type3-type3.inc create mode 100644 ext/date/tests/DateTime_days-absolute.phpt create mode 100644 ext/date/tests/DateTime_days-dates.phpt create mode 100644 ext/date/tests/DateTime_days-fall-type2-type2.phpt create mode 100644 ext/date/tests/DateTime_days-fall-type2-type3.phpt create mode 100644 ext/date/tests/DateTime_days-fall-type3-type2.phpt create mode 100644 ext/date/tests/DateTime_days-fall-type3-type3.phpt create mode 100644 ext/date/tests/DateTime_days-february.phpt create mode 100644 ext/date/tests/DateTime_days-massive.phpt create mode 100644 ext/date/tests/DateTime_days-spring-type2-type2.phpt create mode 100644 ext/date/tests/DateTime_days-spring-type2-type3.phpt create mode 100644 ext/date/tests/DateTime_days-spring-type3-type2.phpt create mode 100644 ext/date/tests/DateTime_days-spring-type3-type3.phpt create mode 100644 ext/date/tests/DateTime_diff-absolute.phpt create mode 100644 ext/date/tests/DateTime_diff-dates.phpt create mode 100644 ext/date/tests/DateTime_diff-fall-type2-type2.phpt create mode 100644 ext/date/tests/DateTime_diff-fall-type2-type3.phpt create mode 100644 ext/date/tests/DateTime_diff-fall-type3-type2.phpt create mode 100644 ext/date/tests/DateTime_diff-fall-type3-type3.phpt create mode 100644 ext/date/tests/DateTime_diff-february.phpt create mode 100644 ext/date/tests/DateTime_diff-massive.phpt create mode 100644 ext/date/tests/DateTime_diff-spring-type2-type2.phpt create mode 100644 ext/date/tests/DateTime_diff-spring-type2-type3.phpt create mode 100644 ext/date/tests/DateTime_diff-spring-type3-type2.phpt create mode 100644 ext/date/tests/DateTime_diff-spring-type3-type3.phpt create mode 100644 ext/date/tests/DateTime_extends_basic1.phpt create mode 100644 ext/date/tests/DateTime_extends_basic2.phpt create mode 100644 ext/date/tests/DateTime_extends_basic3.phpt create mode 100644 ext/date/tests/DateTime_format_basic1.phpt create mode 100644 ext/date/tests/DateTime_format_basic2.phpt create mode 100644 ext/date/tests/DateTime_format_error.phpt create mode 100644 ext/date/tests/DateTime_format_variation1.phpt create mode 100644 ext/date/tests/DateTime_getOffset_basic1.phpt create mode 100644 ext/date/tests/DateTime_getOffset_error.phpt create mode 100644 ext/date/tests/DateTime_getTimeZone_basic1.phpt create mode 100644 ext/date/tests/DateTime_modify_basic1.phpt create mode 100644 ext/date/tests/DateTime_modify_error.phpt create mode 100644 ext/date/tests/DateTime_modify_variation1.phpt create mode 100644 ext/date/tests/DateTime_serialize.phpt create mode 100644 ext/date/tests/DateTime_setDate_basic1.phpt create mode 100644 ext/date/tests/DateTime_setDate_error.phpt create mode 100644 ext/date/tests/DateTime_setDate_variation1.phpt create mode 100644 ext/date/tests/DateTime_setDate_variation2.phpt create mode 100644 ext/date/tests/DateTime_setDate_variation3.phpt create mode 100644 ext/date/tests/DateTime_setISODate_basic1.phpt create mode 100644 ext/date/tests/DateTime_setISODate_error.phpt create mode 100644 ext/date/tests/DateTime_setISODate_variation1.phpt create mode 100644 ext/date/tests/DateTime_setISODate_variation2.phpt create mode 100644 ext/date/tests/DateTime_setISODate_variation3.phpt create mode 100644 ext/date/tests/DateTime_setTime_basic1.phpt create mode 100644 ext/date/tests/DateTime_setTime_error.phpt create mode 100644 ext/date/tests/DateTime_setTime_variation1.phpt create mode 100644 ext/date/tests/DateTime_setTime_variation2.phpt create mode 100644 ext/date/tests/DateTime_setTime_variation3.phpt create mode 100644 ext/date/tests/DateTime_setTimezone_basic1.phpt create mode 100644 ext/date/tests/DateTime_setTimezone_error.phpt create mode 100644 ext/date/tests/DateTime_setTimezone_variation1.phpt create mode 100644 ext/date/tests/DateTime_sub-dates.phpt create mode 100644 ext/date/tests/DateTime_sub-fall-type2-type2.phpt create mode 100644 ext/date/tests/DateTime_sub-fall-type2-type3.phpt create mode 100644 ext/date/tests/DateTime_sub-fall-type3-type2.phpt create mode 100644 ext/date/tests/DateTime_sub-fall-type3-type3.phpt create mode 100644 ext/date/tests/DateTime_sub-february.phpt create mode 100644 ext/date/tests/DateTime_sub-massive.phpt create mode 100644 ext/date/tests/DateTime_sub-spring-type2-type2.phpt create mode 100644 ext/date/tests/DateTime_sub-spring-type2-type3.phpt create mode 100644 ext/date/tests/DateTime_sub-spring-type3-type2.phpt create mode 100644 ext/date/tests/DateTime_sub-spring-type3-type3.phpt create mode 100644 ext/date/tests/DateTime_verify.phpt create mode 100644 ext/date/tests/big_year.phpt create mode 100644 ext/date/tests/bug13142.phpt create mode 100644 ext/date/tests/bug14561.phpt create mode 100644 ext/date/tests/bug17988.phpt create mode 100644 ext/date/tests/bug20382-1.phpt create mode 100644 ext/date/tests/bug20382-2.phpt create mode 100644 ext/date/tests/bug21399.phpt create mode 100644 ext/date/tests/bug21966.phpt create mode 100644 ext/date/tests/bug26090.phpt create mode 100644 ext/date/tests/bug26198.phpt create mode 100644 ext/date/tests/bug26317.phpt create mode 100644 ext/date/tests/bug26320.phpt create mode 100644 ext/date/tests/bug26694.phpt create mode 100644 ext/date/tests/bug27719.phpt create mode 100644 ext/date/tests/bug27780.phpt create mode 100644 ext/date/tests/bug28024.phpt create mode 100644 ext/date/tests/bug28088.phpt create mode 100644 ext/date/tests/bug28599.phpt create mode 100644 ext/date/tests/bug29150.phpt create mode 100644 ext/date/tests/bug29585.phpt create mode 100644 ext/date/tests/bug29595.phpt create mode 100644 ext/date/tests/bug30096.phpt create mode 100644 ext/date/tests/bug30532.phpt create mode 100644 ext/date/tests/bug32086.phpt create mode 100644 ext/date/tests/bug32270.phpt create mode 100644 ext/date/tests/bug32555.phpt create mode 100644 ext/date/tests/bug32588.phpt create mode 100644 ext/date/tests/bug33056.phpt create mode 100644 ext/date/tests/bug33414-1.phpt create mode 100644 ext/date/tests/bug33414-2.phpt create mode 100644 ext/date/tests/bug33415-1.phpt create mode 100644 ext/date/tests/bug33415-2.phpt create mode 100644 ext/date/tests/bug33452.phpt create mode 100644 ext/date/tests/bug33532.phpt create mode 100644 ext/date/tests/bug33536.phpt create mode 100644 ext/date/tests/bug33562.phpt create mode 100644 ext/date/tests/bug33563.phpt create mode 100644 ext/date/tests/bug33578.phpt create mode 100644 ext/date/tests/bug33869.phpt create mode 100644 ext/date/tests/bug33957.phpt create mode 100644 ext/date/tests/bug34087.phpt create mode 100644 ext/date/tests/bug34304.phpt create mode 100644 ext/date/tests/bug34676.phpt create mode 100644 ext/date/tests/bug34771.phpt create mode 100644 ext/date/tests/bug35143.phpt create mode 100644 ext/date/tests/bug35218.phpt create mode 100644 ext/date/tests/bug35414.phpt create mode 100644 ext/date/tests/bug35422.phpt create mode 100644 ext/date/tests/bug35425.phpt create mode 100644 ext/date/tests/bug35456.phpt create mode 100644 ext/date/tests/bug35499.phpt create mode 100644 ext/date/tests/bug35624.phpt create mode 100644 ext/date/tests/bug35630.phpt create mode 100644 ext/date/tests/bug35699.phpt create mode 100644 ext/date/tests/bug35705.phpt create mode 100644 ext/date/tests/bug35885.phpt create mode 100644 ext/date/tests/bug35887.phpt create mode 100644 ext/date/tests/bug36224.phpt create mode 100644 ext/date/tests/bug36510.phpt create mode 100644 ext/date/tests/bug36599.phpt create mode 100644 ext/date/tests/bug36988.phpt create mode 100644 ext/date/tests/bug37017.phpt create mode 100644 ext/date/tests/bug37368.phpt create mode 100644 ext/date/tests/bug37514.phpt create mode 100644 ext/date/tests/bug37616.phpt create mode 100644 ext/date/tests/bug37747.phpt create mode 100644 ext/date/tests/bug38229.phpt create mode 100644 ext/date/tests/bug39782.phpt create mode 100644 ext/date/tests/bug40743.phpt create mode 100644 ext/date/tests/bug40861.phpt create mode 100644 ext/date/tests/bug41523-64bit.phpt create mode 100644 ext/date/tests/bug41523.phpt create mode 100644 ext/date/tests/bug41599.phpt create mode 100644 ext/date/tests/bug41709.phpt create mode 100644 ext/date/tests/bug41842.phpt create mode 100644 ext/date/tests/bug41844.phpt create mode 100644 ext/date/tests/bug41964.phpt create mode 100644 ext/date/tests/bug42910.phpt create mode 100644 ext/date/tests/bug43003.phpt create mode 100644 ext/date/tests/bug43075.phpt create mode 100644 ext/date/tests/bug43452.phpt create mode 100644 ext/date/tests/bug43527.phpt create mode 100644 ext/date/tests/bug43808.phpt create mode 100644 ext/date/tests/bug43960.phpt create mode 100644 ext/date/tests/bug44562.phpt create mode 100644 ext/date/tests/bug44742.phpt create mode 100644 ext/date/tests/bug45529.phpt create mode 100644 ext/date/tests/bug45554.phpt create mode 100644 ext/date/tests/bug45682.phpt create mode 100644 ext/date/tests/bug45866.phpt create mode 100644 ext/date/tests/bug46108.phpt create mode 100644 ext/date/tests/bug46111.phpt create mode 100644 ext/date/tests/bug46268.phpt create mode 100644 ext/date/tests/bug46874.phpt create mode 100644 ext/date/tests/bug48058.phpt create mode 100644 ext/date/tests/bug48097.phpt create mode 100644 ext/date/tests/bug48187.phpt create mode 100644 ext/date/tests/bug48276.phpt create mode 100644 ext/date/tests/bug48476.phpt create mode 100644 ext/date/tests/bug48678.phpt create mode 100644 ext/date/tests/bug49059.phpt create mode 100644 ext/date/tests/bug49081.phpt create mode 100644 ext/date/tests/bug49585.phpt create mode 100644 ext/date/tests/bug49700.phpt create mode 100644 ext/date/tests/bug49778.phpt create mode 100644 ext/date/tests/bug50055.phpt create mode 100644 ext/date/tests/bug50392.phpt create mode 100644 ext/date/tests/bug50475.phpt create mode 100644 ext/date/tests/bug50680.phpt create mode 100644 ext/date/tests/bug51096.phpt create mode 100644 ext/date/tests/bug51393.phpt create mode 100644 ext/date/tests/bug51819.phpt create mode 100644 ext/date/tests/bug51866.phpt create mode 100644 ext/date/tests/bug51994.phpt create mode 100644 ext/date/tests/bug52062-64bit.phpt create mode 100644 ext/date/tests/bug52062.phpt create mode 100644 ext/date/tests/bug52063.phpt create mode 100644 ext/date/tests/bug52113.phpt create mode 100644 ext/date/tests/bug52290.phpt create mode 100644 ext/date/tests/bug52342.phpt create mode 100644 ext/date/tests/bug52430.phpt create mode 100644 ext/date/tests/bug52454.phpt create mode 100644 ext/date/tests/bug52577.phpt create mode 100644 ext/date/tests/bug52668.phpt create mode 100644 ext/date/tests/bug52738.phpt create mode 100644 ext/date/tests/bug52808.phpt create mode 100644 ext/date/tests/bug53437.phpt create mode 100644 ext/date/tests/bug53502.phpt create mode 100644 ext/date/tests/bug54283.phpt create mode 100644 ext/date/tests/bug54316.phpt create mode 100644 ext/date/tests/bug54340.phpt create mode 100644 ext/date/tests/bug54597.phpt create mode 100644 ext/date/tests/bug54851.phpt create mode 100644 ext/date/tests/bug55253.phpt create mode 100644 ext/date/tests/bug55397.phpt create mode 100644 ext/date/tests/bug60236.phpt create mode 100644 ext/date/tests/bug62500.phpt create mode 100644 ext/date/tests/bug62561.phpt create mode 100644 ext/date/tests/bug62852.phpt create mode 100644 ext/date/tests/bug62896.phpt create mode 100644 ext/date/tests/bug63435.phpt create mode 100644 ext/date/tests/cal_days_in_month_invalid_calendar.phpt create mode 100644 ext/date/tests/cal_days_in_month_invalid_date.phpt create mode 100644 ext/date/tests/checkdate_basic1.phpt create mode 100644 ext/date/tests/checkdate_error.phpt create mode 100644 ext/date/tests/checkdate_variation1.phpt create mode 100644 ext/date/tests/checkdate_variation2.phpt create mode 100644 ext/date/tests/checkdate_variation3.phpt create mode 100644 ext/date/tests/date-lenient-create.phpt create mode 100644 ext/date/tests/date-lenient.phpt create mode 100644 ext/date/tests/date-parse-by-format001.phpt create mode 100644 ext/date/tests/date-set-timestamp.phpt create mode 100644 ext/date/tests/date-time-modify-times.phpt create mode 100644 ext/date/tests/date.phpt create mode 100644 ext/date/tests/date_add_basic.phpt create mode 100644 ext/date/tests/date_add_basic2.phpt create mode 100644 ext/date/tests/date_basic1.phpt create mode 100644 ext/date/tests/date_constants.phpt create mode 100644 ext/date/tests/date_create-1.phpt create mode 100644 ext/date/tests/date_create-2.phpt create mode 100644 ext/date/tests/date_create-relative.phpt create mode 100644 ext/date/tests/date_create_basic.phpt create mode 100644 ext/date/tests/date_create_error.phpt create mode 100644 ext/date/tests/date_create_from_format_basic.phpt create mode 100644 ext/date/tests/date_create_from_format_basic2.phpt create mode 100644 ext/date/tests/date_create_variation1.phpt create mode 100644 ext/date/tests/date_create_variation2.phpt create mode 100644 ext/date/tests/date_date_set_basic1.phpt create mode 100644 ext/date/tests/date_date_set_error.phpt create mode 100644 ext/date/tests/date_date_set_variation1.phpt create mode 100644 ext/date/tests/date_date_set_variation2.phpt create mode 100644 ext/date/tests/date_date_set_variation3.phpt create mode 100644 ext/date/tests/date_date_set_variation4.phpt create mode 100644 ext/date/tests/date_default_timezone_get-1-win32.phpt create mode 100644 ext/date/tests/date_default_timezone_get-1.phpt create mode 100644 ext/date/tests/date_default_timezone_get-2.phpt create mode 100644 ext/date/tests/date_default_timezone_get-3.phpt create mode 100644 ext/date/tests/date_default_timezone_get-4.phpt create mode 100644 ext/date/tests/date_default_timezone_get_error.phpt create mode 100644 ext/date/tests/date_default_timezone_set-1.phpt create mode 100644 ext/date/tests/date_default_timezone_set_error.phpt create mode 100644 ext/date/tests/date_default_timezone_set_variation1.phpt create mode 100644 ext/date/tests/date_diff.phpt create mode 100644 ext/date/tests/date_diff1.phpt create mode 100644 ext/date/tests/date_error.phpt create mode 100644 ext/date/tests/date_format_basic1.phpt create mode 100644 ext/date/tests/date_format_error.phpt create mode 100644 ext/date/tests/date_format_variation1.phpt create mode 100644 ext/date/tests/date_format_variation2.phpt create mode 100644 ext/date/tests/date_get_last_errors_basic.phpt create mode 100644 ext/date/tests/date_isodate_set_basic1.phpt create mode 100644 ext/date/tests/date_isodate_set_error.phpt create mode 100644 ext/date/tests/date_isodate_set_variation1.phpt create mode 100644 ext/date/tests/date_isodate_set_variation2.phpt create mode 100644 ext/date/tests/date_isodate_set_variation3.phpt create mode 100644 ext/date/tests/date_isodate_set_variation4.phpt create mode 100644 ext/date/tests/date_modify-1.phpt create mode 100644 ext/date/tests/date_modify-2.phpt create mode 100644 ext/date/tests/date_modify_basic1.phpt create mode 100644 ext/date/tests/date_modify_error.phpt create mode 100644 ext/date/tests/date_modify_variation1.phpt create mode 100644 ext/date/tests/date_modify_variation2.phpt create mode 100644 ext/date/tests/date_offset_get_basic1.phpt create mode 100644 ext/date/tests/date_offset_get_error.phpt create mode 100644 ext/date/tests/date_offset_get_variation1.phpt create mode 100644 ext/date/tests/date_parse_001.phpt create mode 100644 ext/date/tests/date_parse_basic1.phpt create mode 100644 ext/date/tests/date_parse_error.phpt create mode 100644 ext/date/tests/date_parse_from_format_basic.phpt create mode 100644 ext/date/tests/date_parse_variation1.phpt create mode 100644 ext/date/tests/date_period.phpt create mode 100644 ext/date/tests/date_sub_basic.phpt create mode 100644 ext/date/tests/date_sun_info_001.phpt create mode 100644 ext/date/tests/date_sun_info_002.phpt create mode 100644 ext/date/tests/date_sun_info_error.phpt create mode 100644 ext/date/tests/date_sun_info_variation1.phpt create mode 100644 ext/date/tests/date_sun_info_variation2.phpt create mode 100644 ext/date/tests/date_sun_info_variation3.phpt create mode 100644 ext/date/tests/date_sunrise_and_sunset_basic.phpt create mode 100644 ext/date/tests/date_sunrise_error.phpt create mode 100644 ext/date/tests/date_sunrise_variation1.phpt create mode 100644 ext/date/tests/date_sunrise_variation2.phpt create mode 100644 ext/date/tests/date_sunrise_variation3.phpt create mode 100644 ext/date/tests/date_sunrise_variation4.phpt create mode 100644 ext/date/tests/date_sunrise_variation5.phpt create mode 100644 ext/date/tests/date_sunrise_variation6.phpt create mode 100644 ext/date/tests/date_sunrise_variation7.phpt create mode 100644 ext/date/tests/date_sunrise_variation8.phpt create mode 100644 ext/date/tests/date_sunrise_variation9.phpt create mode 100644 ext/date/tests/date_sunset_error.phpt create mode 100644 ext/date/tests/date_sunset_variation1.phpt create mode 100644 ext/date/tests/date_sunset_variation2.phpt create mode 100644 ext/date/tests/date_sunset_variation3.phpt create mode 100644 ext/date/tests/date_sunset_variation4.phpt create mode 100644 ext/date/tests/date_sunset_variation5.phpt create mode 100644 ext/date/tests/date_sunset_variation6.phpt create mode 100644 ext/date/tests/date_sunset_variation7.phpt create mode 100644 ext/date/tests/date_sunset_variation8.phpt create mode 100644 ext/date/tests/date_sunset_variation9.phpt create mode 100644 ext/date/tests/date_time_set_basic1.phpt create mode 100644 ext/date/tests/date_time_set_error.phpt create mode 100644 ext/date/tests/date_time_set_variation1.phpt create mode 100644 ext/date/tests/date_time_set_variation2.phpt create mode 100644 ext/date/tests/date_time_set_variation3.phpt create mode 100644 ext/date/tests/date_time_set_variation4.phpt create mode 100644 ext/date/tests/date_timestamp_get.phpt create mode 100644 ext/date/tests/date_timezone_get_basic1.phpt create mode 100644 ext/date/tests/date_timezone_get_error.phpt create mode 100644 ext/date/tests/date_timezone_get_variation1.phpt create mode 100644 ext/date/tests/date_timezone_set_basic1.phpt create mode 100644 ext/date/tests/date_timezone_set_error.phpt create mode 100644 ext/date/tests/date_timezone_set_variation1.phpt create mode 100644 ext/date/tests/date_timezone_set_variation2.phpt create mode 100644 ext/date/tests/date_variation1.phpt create mode 100644 ext/date/tests/date_variation2.phpt create mode 100644 ext/date/tests/default-timezone-1.phpt create mode 100644 ext/date/tests/default-timezone-2.phpt create mode 100644 ext/date/tests/examine_diff.inc create mode 100644 ext/date/tests/format-negative-timestamp.phpt create mode 100644 ext/date/tests/getdate_basic.phpt create mode 100644 ext/date/tests/getdate_error.phpt create mode 100644 ext/date/tests/getdate_variation1.phpt create mode 100644 ext/date/tests/getdate_variation2.phpt create mode 100644 ext/date/tests/getdate_variation3.phpt create mode 100644 ext/date/tests/getdate_variation4.phpt create mode 100644 ext/date/tests/getdate_variation5.phpt create mode 100644 ext/date/tests/getdate_variation6.phpt create mode 100644 ext/date/tests/getdate_variation7.phpt create mode 100644 ext/date/tests/gettimeofday_basic.phpt create mode 100644 ext/date/tests/gettimeofday_error.phpt create mode 100644 ext/date/tests/gettimeofday_variation1.phpt create mode 100644 ext/date/tests/gmdate_basic.phpt create mode 100644 ext/date/tests/gmdate_error.phpt create mode 100644 ext/date/tests/gmdate_variation1.phpt create mode 100644 ext/date/tests/gmdate_variation10.phpt create mode 100644 ext/date/tests/gmdate_variation11.phpt create mode 100644 ext/date/tests/gmdate_variation12.phpt create mode 100644 ext/date/tests/gmdate_variation13.phpt create mode 100644 ext/date/tests/gmdate_variation14.phpt create mode 100644 ext/date/tests/gmdate_variation2.phpt create mode 100644 ext/date/tests/gmdate_variation3.phpt create mode 100644 ext/date/tests/gmdate_variation4.phpt create mode 100644 ext/date/tests/gmdate_variation5.phpt create mode 100644 ext/date/tests/gmdate_variation6.phpt create mode 100644 ext/date/tests/gmdate_variation7.phpt create mode 100644 ext/date/tests/gmdate_variation8.phpt create mode 100644 ext/date/tests/gmdate_variation9.phpt create mode 100644 ext/date/tests/gmmktime_basic.phpt create mode 100644 ext/date/tests/gmmktime_error.phpt create mode 100644 ext/date/tests/gmmktime_variation1.phpt create mode 100644 ext/date/tests/gmmktime_variation2.phpt create mode 100644 ext/date/tests/gmmktime_variation3.phpt create mode 100644 ext/date/tests/gmmktime_variation4.phpt create mode 100644 ext/date/tests/gmmktime_variation5.phpt create mode 100644 ext/date/tests/gmmktime_variation6.phpt create mode 100644 ext/date/tests/gmmktime_variation7.phpt create mode 100644 ext/date/tests/gmmktime_variation8.phpt create mode 100644 ext/date/tests/gmmktime_variation9.phpt create mode 100644 ext/date/tests/gmstrftime_basic.phpt create mode 100644 ext/date/tests/gmstrftime_error.phpt create mode 100644 ext/date/tests/gmstrftime_variation1.phpt create mode 100644 ext/date/tests/gmstrftime_variation10.phpt create mode 100644 ext/date/tests/gmstrftime_variation11.phpt create mode 100644 ext/date/tests/gmstrftime_variation12.phpt create mode 100644 ext/date/tests/gmstrftime_variation13.phpt create mode 100644 ext/date/tests/gmstrftime_variation14.phpt create mode 100644 ext/date/tests/gmstrftime_variation15.phpt create mode 100644 ext/date/tests/gmstrftime_variation16.phpt create mode 100644 ext/date/tests/gmstrftime_variation17.phpt create mode 100644 ext/date/tests/gmstrftime_variation18.phpt create mode 100644 ext/date/tests/gmstrftime_variation19.phpt create mode 100644 ext/date/tests/gmstrftime_variation2.phpt create mode 100644 ext/date/tests/gmstrftime_variation20.phpt create mode 100644 ext/date/tests/gmstrftime_variation21.phpt create mode 100644 ext/date/tests/gmstrftime_variation22.phpt create mode 100644 ext/date/tests/gmstrftime_variation3.phpt create mode 100644 ext/date/tests/gmstrftime_variation4.phpt create mode 100644 ext/date/tests/gmstrftime_variation5.phpt create mode 100644 ext/date/tests/gmstrftime_variation6.phpt create mode 100644 ext/date/tests/gmstrftime_variation7.phpt create mode 100644 ext/date/tests/gmstrftime_variation8.phpt create mode 100644 ext/date/tests/gmstrftime_variation9.phpt create mode 100644 ext/date/tests/idate_basic.phpt create mode 100644 ext/date/tests/idate_error.phpt create mode 100644 ext/date/tests/idate_variation1.phpt create mode 100644 ext/date/tests/idate_variation2.phpt create mode 100644 ext/date/tests/idate_variation3.phpt create mode 100644 ext/date/tests/idate_variation4.phpt create mode 100644 ext/date/tests/idate_variation5.phpt create mode 100644 ext/date/tests/idate_variation6.phpt create mode 100644 ext/date/tests/localtime_basic.phpt create mode 100644 ext/date/tests/localtime_error.phpt create mode 100644 ext/date/tests/localtime_variation1.phpt create mode 100644 ext/date/tests/localtime_variation2.phpt create mode 100644 ext/date/tests/localtime_variation3.phpt create mode 100644 ext/date/tests/localtime_variation4.phpt create mode 100644 ext/date/tests/localtime_variation5.phpt create mode 100644 ext/date/tests/microtime_basic.phpt create mode 100644 ext/date/tests/microtime_error.phpt create mode 100644 ext/date/tests/mktime-1.phpt create mode 100644 ext/date/tests/mktime-2.phpt create mode 100644 ext/date/tests/mktime-3-64bit.phpt create mode 100644 ext/date/tests/mktime-3.phpt create mode 100644 ext/date/tests/mktime_basic1.phpt create mode 100644 ext/date/tests/mktime_error.phpt create mode 100644 ext/date/tests/mktime_variation1.phpt create mode 100644 ext/date/tests/mktime_variation2.phpt create mode 100644 ext/date/tests/mktime_variation3.phpt create mode 100644 ext/date/tests/mktime_variation4.phpt create mode 100644 ext/date/tests/mktime_variation5.phpt create mode 100644 ext/date/tests/mktime_variation6.phpt create mode 100644 ext/date/tests/mktime_variation7.phpt create mode 100644 ext/date/tests/oo_001.phpt create mode 100644 ext/date/tests/oo_002.phpt create mode 100644 ext/date/tests/rfc-datetime_and_daylight_saving_time-type1.phpt create mode 100644 ext/date/tests/rfc-datetime_and_daylight_saving_time-type2.phpt create mode 100644 ext/date/tests/rfc-datetime_and_daylight_saving_time-type3.phpt create mode 100644 ext/date/tests/strftime_basic.phpt create mode 100644 ext/date/tests/strftime_error.phpt create mode 100644 ext/date/tests/strftime_variation1.phpt create mode 100644 ext/date/tests/strftime_variation10.phpt create mode 100644 ext/date/tests/strftime_variation11.phpt create mode 100644 ext/date/tests/strftime_variation12.phpt create mode 100644 ext/date/tests/strftime_variation13.phpt create mode 100644 ext/date/tests/strftime_variation14.phpt create mode 100644 ext/date/tests/strftime_variation15.phpt create mode 100644 ext/date/tests/strftime_variation16.phpt create mode 100644 ext/date/tests/strftime_variation17.phpt create mode 100644 ext/date/tests/strftime_variation18.phpt create mode 100644 ext/date/tests/strftime_variation19.phpt create mode 100644 ext/date/tests/strftime_variation2.phpt create mode 100644 ext/date/tests/strftime_variation20.phpt create mode 100644 ext/date/tests/strftime_variation21.phpt create mode 100644 ext/date/tests/strftime_variation22.phpt create mode 100644 ext/date/tests/strftime_variation23.phpt create mode 100644 ext/date/tests/strftime_variation3.phpt create mode 100644 ext/date/tests/strftime_variation4.phpt create mode 100644 ext/date/tests/strftime_variation5.phpt create mode 100644 ext/date/tests/strftime_variation6.phpt create mode 100644 ext/date/tests/strftime_variation7.phpt create mode 100644 ext/date/tests/strftime_variation8.phpt create mode 100644 ext/date/tests/strftime_variation9.phpt create mode 100644 ext/date/tests/strtotime-mysql-64bit.phpt create mode 100644 ext/date/tests/strtotime-mysql.phpt create mode 100644 ext/date/tests/strtotime-relative.phpt create mode 100644 ext/date/tests/strtotime.phpt create mode 100644 ext/date/tests/strtotime2.phpt create mode 100644 ext/date/tests/strtotime3-64bit.phpt create mode 100644 ext/date/tests/strtotime3.phpt create mode 100644 ext/date/tests/strtotime_basic.phpt create mode 100644 ext/date/tests/strtotime_basic2.phpt create mode 100644 ext/date/tests/strtotime_variation_scottish.phpt create mode 100644 ext/date/tests/sunfuncts.phpt create mode 100644 ext/date/tests/test-parse-from-format.phpt create mode 100644 ext/date/tests/time_basic.phpt create mode 100644 ext/date/tests/time_error.phpt create mode 100644 ext/date/tests/timestamp-in-dst.phpt create mode 100644 ext/date/tests/timezone-configuration.phpt create mode 100644 ext/date/tests/timezone_abbreviations_list_basic1.phpt create mode 100644 ext/date/tests/timezone_identifiers_list_basic1.phpt create mode 100644 ext/date/tests/timezone_identifiers_list_wrong_constructor.phpt create mode 100644 ext/date/tests/timezone_location_get.phpt create mode 100644 ext/date/tests/timezone_name_from_abbr_basic1.phpt create mode 100644 ext/date/tests/timezone_name_from_abbr_error.phpt create mode 100644 ext/date/tests/timezone_name_from_abbr_variation1.phpt create mode 100644 ext/date/tests/timezone_name_from_abbr_variation2.phpt create mode 100644 ext/date/tests/timezone_name_from_abbr_variation3.phpt create mode 100644 ext/date/tests/timezone_name_get_error.phpt create mode 100644 ext/date/tests/timezone_offset_get_basic1.phpt create mode 100644 ext/date/tests/timezone_offset_get_error.phpt create mode 100644 ext/date/tests/timezone_offset_get_variation1.phpt create mode 100644 ext/date/tests/timezone_offset_get_variation2.phpt create mode 100644 ext/date/tests/timezone_open_basic1.phpt create mode 100644 ext/date/tests/timezone_open_error.phpt create mode 100644 ext/date/tests/timezone_open_variation1.phpt create mode 100644 ext/date/tests/timezone_transitions_get_basic1.phpt create mode 100644 ext/date/tests/timezone_transitions_get_error.phpt create mode 100644 ext/date/tests/timezone_transitions_get_variation1.phpt create mode 100644 ext/date/tests/timezone_transitions_get_variation2.phpt create mode 100644 ext/date/tests/timezone_transitions_get_variation3.phpt create mode 100644 ext/date/tests/timezones-list.phpt create mode 100644 ext/date/tests/timezones.phpt (limited to 'ext/date') diff --git a/ext/date/CREDITS b/ext/date/CREDITS new file mode 100644 index 0000000..bfcacbe --- /dev/null +++ b/ext/date/CREDITS @@ -0,0 +1,2 @@ +Date/Time Support +Derick Rethans diff --git a/ext/date/TODO b/ext/date/TODO new file mode 100644 index 0000000..4b1237c --- /dev/null +++ b/ext/date/TODO @@ -0,0 +1,6 @@ +- Port over my 200 test cases to .phpt format. +- Write an error handler for unexpected characters while parsing dates. +- Cache lookups for timezone information. +- Optimize parsing @ with a negative timestamp. +- Make sure that date_default_timezone_set() validates the passed timezone + identifier. diff --git a/ext/date/config.w32 b/ext/date/config.w32 new file mode 100755 index 0000000..c97df72 --- /dev/null +++ b/ext/date/config.w32 @@ -0,0 +1,14 @@ +// $Id$ +// vim:ft=javascript + +EXTENSION("date", "php_date.c", false, "-Iext/date/lib"); +ADD_SOURCES("ext/date/lib", "astro.c timelib.c dow.c parse_date.c parse_tz.c tm2unixtime.c unixtime2tm.c parse_iso_intervals.c interval.c", "date"); +AC_DEFINE('HAVE_DATE', 1, 'Have date/time support'); + +ADD_FLAG('CFLAGS_DATE', "/wd4244"); + +var tl_config = FSO.CreateTextFile("ext/date/lib/timelib_config.h", true); +tl_config.WriteLine("#include \"config.w32.h\""); +tl_config.Close(); + +PHP_INSTALL_HEADERS("ext/date/", "php_date.h lib/timelib.h lib/timelib_structs.h lib/timelib_config.h"); diff --git a/ext/date/config0.m4 b/ext/date/config0.m4 new file mode 100644 index 0000000..f403104 --- /dev/null +++ b/ext/date/config0.m4 @@ -0,0 +1,25 @@ +dnl $Id$ +dnl config.m4 for date extension + +sinclude(ext/date/lib/timelib.m4) +sinclude(lib/timelib.m4) + +PHP_DATE_CFLAGS="-I@ext_builddir@/lib" +timelib_sources="lib/astro.c lib/dow.c lib/parse_date.c lib/parse_tz.c + lib/timelib.c lib/tm2unixtime.c lib/unixtime2tm.c lib/parse_iso_intervals.c lib/interval.c" + +PHP_NEW_EXTENSION(date, php_date.c $timelib_sources, no,, $PHP_DATE_CFLAGS) + +PHP_ADD_BUILD_DIR([$ext_builddir/lib], 1) +PHP_ADD_INCLUDE([$ext_builddir/lib]) +PHP_ADD_INCLUDE([$ext_srcdir/lib]) + +PHP_INSTALL_HEADERS([ext/date], [php_date.h lib/timelib.h lib/timelib_structs.h lib/timelib_config.h]) + +cat > $ext_builddir/lib/timelib_config.h < +#endif +EOF diff --git a/ext/date/lib/README b/ext/date/lib/README new file mode 100644 index 0000000..2b6b7f2 --- /dev/null +++ b/ext/date/lib/README @@ -0,0 +1,7 @@ +Regenerating Parser +=================== + +Make sure you use re2c 0.9.10 or higher: + +re2c -d -b -o ext/date/lib/parse_date.c ext/date/lib/parse_date.re +re2c -d -b -o ext/date/lib/parse_iso_intervals.c ext/date/lib/parse_iso_intervals.re diff --git a/ext/date/lib/astro.c b/ext/date/lib/astro.c new file mode 100644 index 0000000..d770d1a --- /dev/null +++ b/ext/date/lib/astro.c @@ -0,0 +1,303 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Algorithms are taken from a public domain source by Paul | + | Schlyter, who wrote this in December 1992 | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#include +#include +#include "timelib.h" + +#define days_since_2000_Jan_0(y,m,d) \ + (367L*(y)-((7*((y)+(((m)+9)/12)))/4)+((275*(m))/9)+(d)-730530L) + +#ifndef PI + #define PI 3.1415926535897932384 +#endif + +#define RADEG ( 180.0 / PI ) +#define DEGRAD ( PI / 180.0 ) + +/* The trigonometric functions in degrees */ + +#define sind(x) sin((x)*DEGRAD) +#define cosd(x) cos((x)*DEGRAD) +#define tand(x) tan((x)*DEGRAD) + +#define atand(x) (RADEG*atan(x)) +#define asind(x) (RADEG*asin(x)) +#define acosd(x) (RADEG*acos(x)) +#define atan2d(y,x) (RADEG*atan2(y,x)) + + +/* Following are some macros around the "workhorse" function __daylen__ */ +/* They mainly fill in the desired values for the reference altitude */ +/* below the horizon, and also selects whether this altitude should */ +/* refer to the Sun's center or its upper limb. */ + + +#include "astro.h" + +/******************************************************************/ +/* This function reduces any angle to within the first revolution */ +/* by subtracting or adding even multiples of 360.0 until the */ +/* result is >= 0.0 and < 360.0 */ +/******************************************************************/ + +#define INV360 (1.0 / 360.0) + +/*****************************************/ +/* Reduce angle to within 0..360 degrees */ +/*****************************************/ +static double astro_revolution(double x) +{ + return (x - 360.0 * floor(x * INV360)); +} + +/*********************************************/ +/* Reduce angle to within +180..+180 degrees */ +/*********************************************/ +static double astro_rev180( double x ) +{ + return (x - 360.0 * floor(x * INV360 + 0.5)); +} + +/*******************************************************************/ +/* This function computes GMST0, the Greenwich Mean Sidereal Time */ +/* at 0h UT (i.e. the sidereal time at the Greenwhich meridian at */ +/* 0h UT). GMST is then the sidereal time at Greenwich at any */ +/* time of the day. I've generalized GMST0 as well, and define it */ +/* as: GMST0 = GMST - UT -- this allows GMST0 to be computed at */ +/* other times than 0h UT as well. While this sounds somewhat */ +/* contradictory, it is very practical: instead of computing */ +/* GMST like: */ +/* */ +/* GMST = (GMST0) + UT * (366.2422/365.2422) */ +/* */ +/* where (GMST0) is the GMST last time UT was 0 hours, one simply */ +/* computes: */ +/* */ +/* GMST = GMST0 + UT */ +/* */ +/* where GMST0 is the GMST "at 0h UT" but at the current moment! */ +/* Defined in this way, GMST0 will increase with about 4 min a */ +/* day. It also happens that GMST0 (in degrees, 1 hr = 15 degr) */ +/* is equal to the Sun's mean longitude plus/minus 180 degrees! */ +/* (if we neglect aberration, which amounts to 20 seconds of arc */ +/* or 1.33 seconds of time) */ +/* */ +/*******************************************************************/ + +static double astro_GMST0(double d) +{ + double sidtim0; + /* Sidtime at 0h UT = L (Sun's mean longitude) + 180.0 degr */ + /* L = M + w, as defined in sunpos(). Since I'm too lazy to */ + /* add these numbers, I'll let the C compiler do it for me. */ + /* Any decent C compiler will add the constants at compile */ + /* time, imposing no runtime or code overhead. */ + sidtim0 = astro_revolution((180.0 + 356.0470 + 282.9404) + (0.9856002585 + 4.70935E-5) * d); + return sidtim0; +} + +/* This function computes the Sun's position at any instant */ + +/******************************************************/ +/* Computes the Sun's ecliptic longitude and distance */ +/* at an instant given in d, number of days since */ +/* 2000 Jan 0.0. The Sun's ecliptic latitude is not */ +/* computed, since it's always very near 0. */ +/******************************************************/ +static void astro_sunpos(double d, double *lon, double *r) +{ + double M, /* Mean anomaly of the Sun */ + w, /* Mean longitude of perihelion */ + /* Note: Sun's mean longitude = M + w */ + e, /* Eccentricity of Earth's orbit */ + E, /* Eccentric anomaly */ + x, y, /* x, y coordinates in orbit */ + v; /* True anomaly */ + + /* Compute mean elements */ + M = astro_revolution(356.0470 + 0.9856002585 * d); + w = 282.9404 + 4.70935E-5 * d; + e = 0.016709 - 1.151E-9 * d; + + /* Compute true longitude and radius vector */ + E = M + e * RADEG * sind(M) * (1.0 + e * cosd(M)); + x = cosd(E) - e; + y = sqrt(1.0 - e*e) * sind(E); + *r = sqrt(x*x + y*y); /* Solar distance */ + v = atan2d(y, x); /* True anomaly */ + *lon = v + w; /* True solar longitude */ + if (*lon >= 360.0) { + *lon -= 360.0; /* Make it 0..360 degrees */ + } +} + +static void astro_sun_RA_dec(double d, double *RA, double *dec, double *r) +{ + double lon, obl_ecl, x, y, z; + + /* Compute Sun's ecliptical coordinates */ + astro_sunpos(d, &lon, r); + + /* Compute ecliptic rectangular coordinates (z=0) */ + x = *r * cosd(lon); + y = *r * sind(lon); + + /* Compute obliquity of ecliptic (inclination of Earth's axis) */ + obl_ecl = 23.4393 - 3.563E-7 * d; + + /* Convert to equatorial rectangular coordinates - x is unchanged */ + z = y * sind(obl_ecl); + y = y * cosd(obl_ecl); + + /* Convert to spherical coordinates */ + *RA = atan2d(y, x); + *dec = atan2d(z, sqrt(x*x + y*y)); +} + +/** + * Note: timestamp = unixtimestamp (NEEDS to be 00:00:00 UT) + * Eastern longitude positive, Western longitude negative + * Northern latitude positive, Southern latitude negative + * The longitude value IS critical in this function! + * altit = the altitude which the Sun should cross + * Set to -35/60 degrees for rise/set, -6 degrees + * for civil, -12 degrees for nautical and -18 + * degrees for astronomical twilight. + * upper_limb: non-zero -> upper limb, zero -> center + * Set to non-zero (e.g. 1) when computing rise/set + * times, and to zero when computing start/end of + * twilight. + * *rise = where to store the rise time + * *set = where to store the set time + * Both times are relative to the specified altitude, + * and thus this function can be used to compute + * various twilight times, as well as rise/set times + * Return value: 0 = sun rises/sets this day, times stored at + * *trise and *tset. + * +1 = sun above the specified "horizon" 24 hours. + * *trise set to time when the sun is at south, + * minus 12 hours while *tset is set to the south + * time plus 12 hours. "Day" length = 24 hours + * -1 = sun is below the specified "horizon" 24 hours + * "Day" length = 0 hours, *trise and *tset are + * both set to the time when the sun is at south. + * + */ +int timelib_astro_rise_set_altitude(timelib_time *t_loc, double lon, double lat, double altit, int upper_limb, double *h_rise, double *h_set, timelib_sll *ts_rise, timelib_sll *ts_set, timelib_sll *ts_transit) +{ + double d, /* Days since 2000 Jan 0.0 (negative before) */ + sr, /* Solar distance, astronomical units */ + sRA, /* Sun's Right Ascension */ + sdec, /* Sun's declination */ + sradius, /* Sun's apparent radius */ + t, /* Diurnal arc */ + tsouth, /* Time when Sun is at south */ + sidtime; /* Local sidereal time */ + timelib_time *t_utc; + timelib_sll timestamp, old_sse; + + int rc = 0; /* Return cde from function - usually 0 */ + + /* Normalize time */ + old_sse = t_loc->sse; + t_loc->h = 12; + t_loc->i = t_loc->s = 0; + timelib_update_ts(t_loc, NULL); + + /* Calculate TS belonging to UTC 00:00 of the current day */ + t_utc = timelib_time_ctor(); + t_utc->y = t_loc->y; + t_utc->m = t_loc->m; + t_utc->d = t_loc->d; + t_utc->h = t_utc->i = t_utc->s = 0; + timelib_update_ts(t_utc, NULL); + + /* Compute d of 12h local mean solar time */ + timestamp = t_loc->sse; + d = timelib_ts_to_juliandate(timestamp) - lon/360.0; + + /* Compute local sidereal time of this moment */ + sidtime = astro_revolution(astro_GMST0(d) + 180.0 + lon); + + /* Compute Sun's RA + Decl at this moment */ + astro_sun_RA_dec( d, &sRA, &sdec, &sr ); + + /* Compute time when Sun is at south - in hours UT */ + tsouth = 12.0 - astro_rev180(sidtime - sRA) / 15.0; + + /* Compute the Sun's apparent radius, degrees */ + sradius = 0.2666 / sr; + + /* Do correction to upper limb, if necessary */ + if (upper_limb) { + altit -= sradius; + } + + /* Compute the diurnal arc that the Sun traverses to reach */ + /* the specified altitude altit: */ + { + double cost; + cost = (sind(altit) - sind(lat) * sind(sdec)) / (cosd(lat) * cosd(sdec)); + *ts_transit = t_utc->sse + (tsouth * 3600); + if (cost >= 1.0) { + rc = -1; + t = 0.0; /* Sun always below altit */ + + *ts_rise = *ts_set = t_utc->sse + (tsouth * 3600); + } else if (cost <= -1.0) { + rc = +1; + t = 12.0; /* Sun always above altit */ + + *ts_rise = t_loc->sse - (12 * 3600); + *ts_set = t_loc->sse + (12 * 3600); + } else { + t = acosd(cost) / 15.0; /* The diurnal arc, hours */ + + /* Store rise and set times - as Unix Timestamp */ + *ts_rise = ((tsouth - t) * 3600) + t_utc->sse; + *ts_set = ((tsouth + t) * 3600) + t_utc->sse; + + *h_rise = (tsouth - t); + *h_set = (tsouth + t); + } + } + + /* Kill temporary time and restore original sse */ + timelib_time_dtor(t_utc); + t_loc->sse = old_sse; + + return rc; +} + +double timelib_ts_to_juliandate(timelib_sll ts) +{ + double tmp; + + tmp = ts; + tmp /= 86400; + tmp += 2440587.5; + tmp -= 2451543; + + return tmp; +} diff --git a/ext/date/lib/astro.h b/ext/date/lib/astro.h new file mode 100644 index 0000000..7b85c76 --- /dev/null +++ b/ext/date/lib/astro.h @@ -0,0 +1,51 @@ +/* This macro computes the length of the day, from sunrise to sunset. */ +/* Sunrise/set is considered to occur when the Sun's upper limb is */ +/* 35 arc minutes below the horizon (this accounts for the refraction */ +/* of the Earth's atmosphere). */ +#define day_length(year,month,day,lon,lat) \ + __daylen__( year, month, day, lon, lat, -35.0/60.0, 1 ) + +/* This macro computes the length of the day, including civil twilight. */ +/* Civil twilight starts/ends when the Sun's center is 6 degrees below */ +/* the horizon. */ +#define day_civil_twilight_length(year,month,day,lon,lat) \ + __daylen__( year, month, day, lon, lat, -6.0, 0 ) + +/* This macro computes the length of the day, incl. nautical twilight. */ +/* Nautical twilight starts/ends when the Sun's center is 12 degrees */ +/* below the horizon. */ +#define day_nautical_twilight_length(year,month,day,lon,lat) \ + __daylen__( year, month, day, lon, lat, -12.0, 0 ) + +/* This macro computes the length of the day, incl. astronomical twilight. */ +/* Astronomical twilight starts/ends when the Sun's center is 18 degrees */ +/* below the horizon. */ +#define day_astronomical_twilight_length(year,month,day,lon,lat) \ + __daylen__( year, month, day, lon, lat, -18.0, 0 ) + + +/* This macro computes times for sunrise/sunset. */ +/* Sunrise/set is considered to occur when the Sun's upper limb is */ +/* 35 arc minutes below the horizon (this accounts for the refraction */ +/* of the Earth's atmosphere). */ +#define timelib_astro_sun_rise_set(ts,lon,lat,hrise,hset,rise,set) \ + timelib_astro_rise_set_altitude( ts, lon, lat, -35.0/60.0, 1, hrise, hset, rise, set ) + +/* This macro computes the start and end times of civil twilight. */ +/* Civil twilight starts/ends when the Sun's center is 6 degrees below */ +/* the horizon. */ +#define civil_twilight(ts,lon,lat,start,end) \ + timelib_astro_rise_set_altitude( ts, lon, lat, -6.0, 0, start, end ) + +/* This macro computes the start and end times of nautical twilight. */ +/* Nautical twilight starts/ends when the Sun's center is 12 degrees */ +/* below the horizon. */ +#define nautical_twilight(ts,lon,lat,start,end) \ + timelib_astro_rise_set_altitude( ts, lon, lat, -12.0, 0, start, end ) + +/* This macro computes the start and end times of astronomical twilight. */ +/* Astronomical twilight starts/ends when the Sun's center is 18 degrees */ +/* below the horizon. */ +#define astronomical_twilight(ts,lon,lat,start,end) \ + timelib_astro_rise_set_altitude( ts, lon, lat, -18.0, 0, start, end ) + diff --git a/ext/date/lib/dow.c b/ext/date/lib/dow.c new file mode 100644 index 0000000..b6c2d69 --- /dev/null +++ b/ext/date/lib/dow.c @@ -0,0 +1,164 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#include "timelib.h" + +static int m_table_common[13] = { -1, 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5 }; /* 1 = jan */ +static int m_table_leap[13] = { -1, 6, 2, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5 }; /* 1 = jan */ + +static timelib_sll century_value(timelib_sll j) +{ + timelib_sll i = j - 17; + timelib_sll c = (4 - i * 2 + (i + 1) / 4) % 7; + + return c < 0 ? c + 7 : c; +} + +static timelib_sll timelib_day_of_week_ex(timelib_sll y, timelib_sll m, timelib_sll d, int iso) +{ + timelib_sll c1, y1, m1, dow; + + /* Only valid for Gregorian calendar, commented out as we don't handle + * julian calendar. We just return the 'wrong' day of week to be + * consistent. + if (y < 1753) { + return -1; + } */ + c1 = century_value(y / 100); + y1 = (y % 100); + m1 = timelib_is_leap(y) ? m_table_leap[m] : m_table_common[m]; + dow = (c1 + y1 + m1 + (y1 / 4) + d) % 7; + if (iso) { + if (dow == 0) { + dow = 7; + } + } + return dow; +} + +timelib_sll timelib_day_of_week(timelib_sll y, timelib_sll m, timelib_sll d) +{ + return timelib_day_of_week_ex(y, m, d, 0); +} + +timelib_sll timelib_iso_day_of_week(timelib_sll y, timelib_sll m, timelib_sll d) +{ + return timelib_day_of_week_ex(y, m, d, 1); +} + + /* jan feb mar apr may jun jul aug sep oct nov dec */ +static int d_table_common[13] = { 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }; +static int d_table_leap[13] = { 0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 }; +static int ml_table_common[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; +static int ml_table_leap[13] = { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; + +timelib_sll timelib_day_of_year(timelib_sll y, timelib_sll m, timelib_sll d) +{ + return (timelib_is_leap(y) ? d_table_leap[m] : d_table_common[m]) + d - 1; +} + +timelib_sll timelib_days_in_month(timelib_sll y, timelib_sll m) +{ + return timelib_is_leap(y) ? ml_table_leap[m] : ml_table_common[m]; +} + +void timelib_isoweek_from_date(timelib_sll y, timelib_sll m, timelib_sll d, timelib_sll *iw, timelib_sll *iy) +{ + int y_leap, prev_y_leap, doy, jan1weekday, weekday; + + y_leap = timelib_is_leap(y); + prev_y_leap = timelib_is_leap(y-1); + doy = timelib_day_of_year(y, m, d) + 1; + if (y_leap && m > 2) { + doy++; + } + jan1weekday = timelib_day_of_week(y, 1, 1); + weekday = timelib_day_of_week(y, m, d); + if (weekday == 0) weekday = 7; + if (jan1weekday == 0) jan1weekday = 7; + /* Find if Y M D falls in YearNumber Y-1, WeekNumber 52 or 53 */ + if (doy <= (8 - jan1weekday) && jan1weekday > 4) { + *iy = y - 1; + if (jan1weekday == 5 || (jan1weekday == 6 && prev_y_leap)) { + *iw = 53; + } else { + *iw = 52; + } + } else { + *iy = y; + } + /* 8. Find if Y M D falls in YearNumber Y+1, WeekNumber 1 */ + if (*iy == y) { + int i; + + i = y_leap ? 366 : 365; + if ((i - (doy - y_leap)) < (4 - weekday)) { + *iy = y + 1; + *iw = 1; + return; + } + } + /* 9. Find if Y M D falls in YearNumber Y, WeekNumber 1 through 53 */ + if (*iy == y) { + int j; + + j = doy + (7 - weekday) + (jan1weekday - 1); + *iw = j / 7; + if (jan1weekday > 4) { + *iw -= 1; + } + } +} + +timelib_sll timelib_daynr_from_weeknr(timelib_sll y, timelib_sll w, timelib_sll d) +{ + timelib_sll dow, day; + + /* Figure out the dayofweek for y-1-1 */ + dow = timelib_day_of_week(y, 1, 1); + /* then use that to figure out the offset for day 1 of week 1 */ + day = 0 - (dow > 4 ? dow - 7 : dow); + + /* Add weeks and days */ + return day + ((w - 1) * 7) + d; +} + +int timelib_valid_time(timelib_sll h, timelib_sll i, timelib_sll s) +{ + if (h < 0 || h > 23 || i < 0 || i > 59 || s < 0 || s > 59) { + return 0; + } + return 1; +} + +int timelib_valid_date(timelib_sll y, timelib_sll m, timelib_sll d) +{ + if (m < 1 || m > 12 || d < 1 || d > timelib_days_in_month(y, m)) { + return 0; + } + return 1; +} +#if 0 +int main(void) +{ + printf("dow = %d\n", timelib_day_of_week(1978, 12, 22)); /* 5 */ + printf("dow = %d\n", timelib_day_of_week(2005, 2, 19)); /* 6 */ +} +#endif diff --git a/ext/date/lib/fallbackmap.h b/ext/date/lib/fallbackmap.h new file mode 100644 index 0000000..4e4c23c --- /dev/null +++ b/ext/date/lib/fallbackmap.h @@ -0,0 +1,40 @@ + { "sst", 0, -11, "Pacific/Apia" }, + { "hst", 0, -10, "Pacific/Honolulu" }, + { "akst", 0, -9, "America/Anchorage" }, + { "akdt", 1, -8, "America/Anchorage" }, + { "pst", 0, -8, "America/Los_Angeles" }, + { "pdt", 1, -7, "America/Los_Angeles" }, + { "mst", 0, -7, "America/Denver" }, + { "mdt", 1, -6, "America/Denver" }, + { "cst", 0, -6, "America/Chicago" }, + { "cdt", 1, -5, "America/Chicago" }, + { "est", 0, -5, "America/New_York" }, + { "edt", 1, -4, "America/New_York" }, + { "ast", 0, -4, "America/Halifax" }, + { "adt", 1, -3, "America/Halifax" }, + { "brt", 0, -3, "America/Sao_Paulo" }, + { "brst", 1, -2, "America/Sao_Paulo" }, + { "azost", 0, -1, "Atlantic/Azores" }, + { "azodt", 1, 0, "Atlantic/Azores" }, + { "gmt", 0, 0, "Europe/London" }, + { "bst", 1, 1, "Europe/London" }, + { "cet", 0, 1, "Europe/Paris" }, + { "cest", 1, 2, "Europe/Paris" }, + { "eet", 0, 2, "Europe/Helsinki" }, + { "eest", 1, 3, "Europe/Helsinki" }, + { "msk", 0, 3, "Europe/Moscow" }, + { "msd", 1, 4, "Europe/Moscow" }, + { "gst", 0, 4, "Asia/Dubai" }, + { "pkt", 0, 5, "Asia/Karachi" }, + { "ist", 0, 5.5, "Asia/Kolkata" }, + { "npt", 0, 5.75, "Asia/Katmandu" }, + { "yekt", 1, 6, "Asia/Yekaterinburg" }, + { "novst", 1, 7, "Asia/Novosibirsk" }, + { "krat", 0, 7, "Asia/Krasnoyarsk" }, + { "krast", 1, 8, "Asia/Krasnoyarsk" }, + { "jst", 0, 9, "Asia/Tokyo" }, + { "est", 0, 10, "Australia/Melbourne" }, + { "cst", 1, 10.5, "Australia/Adelaide" }, + { "est", 1, 11, "Australia/Melbourne" }, + { "nzst", 0, 12, "Pacific/Auckland" }, + { "nzdt", 1, 13, "Pacific/Auckland" }, diff --git a/ext/date/lib/interval.c b/ext/date/lib/interval.c new file mode 100644 index 0000000..96867ba --- /dev/null +++ b/ext/date/lib/interval.c @@ -0,0 +1,72 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#include "timelib.h" +#include + +timelib_rel_time *timelib_diff(timelib_time *one, timelib_time *two) +{ + timelib_rel_time *rt; + timelib_time *swp; + timelib_sll dst_h_corr = 0, dst_m_corr = 0; + timelib_time one_backup, two_backup; + + rt = timelib_rel_time_ctor(); + rt->invert = 0; + if (one->sse > two->sse) { + swp = two; + two = one; + one = swp; + rt->invert = 1; + } + + /* Calculate correction for DST change over, but only if the TZ type is ID + * and it's the same */ + if (one->zone_type == 3 && two->zone_type == 3 + && (strcmp(one->tz_info->name, two->tz_info->name) == 0) + && (one->z != two->z)) + { + dst_h_corr = (two->z - one->z) / 3600; + dst_m_corr = ((two->z - one->z) % 3600) / 60; + } + + /* Save old TZ info */ + memcpy(&one_backup, one, sizeof(one_backup)); + memcpy(&two_backup, two, sizeof(two_backup)); + + timelib_apply_localtime(one, 0); + timelib_apply_localtime(two, 0); + + rt->y = two->y - one->y; + rt->m = two->m - one->m; + rt->d = two->d - one->d; + rt->h = two->h - one->h + dst_h_corr; + rt->i = two->i - one->i + dst_m_corr; + rt->s = two->s - one->s; + rt->days = abs(floor((one->sse - two->sse - (dst_h_corr * 3600) - (dst_m_corr * 60)) / 86400)); + + timelib_do_rel_normalize(rt->invert ? one : two, rt); + + /* Restore old TZ info */ + memcpy(one, &one_backup, sizeof(one_backup)); + memcpy(two, &two_backup, sizeof(two_backup)); + + return rt; +} diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c new file mode 100644 index 0000000..0421e21 --- /dev/null +++ b/ext/date/lib/parse_date.c @@ -0,0 +1,25192 @@ +/* Generated by re2c 0.13.5 on Sun Sep 30 20:14:42 2012 */ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#include "timelib.h" + +#include +#include +#include +#include + +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_STRING_H +#include +#else +#include +#endif + +#if defined(_MSC_VER) +# define strtoll(s, f, b) _atoi64(s) +#elif !defined(HAVE_STRTOLL) +# if defined(HAVE_ATOLL) +# define strtoll(s, f, b) atoll(s) +# else +# define strtoll(s, f, b) strtol(s, f, b) +# endif +#endif + +#define TIMELIB_UNSET -99999 + +#define TIMELIB_SECOND 1 +#define TIMELIB_MINUTE 2 +#define TIMELIB_HOUR 3 +#define TIMELIB_DAY 4 +#define TIMELIB_MONTH 5 +#define TIMELIB_YEAR 6 +#define TIMELIB_WEEKDAY 7 +#define TIMELIB_SPECIAL 8 + +#define EOI 257 +#define TIME 258 +#define DATE 259 + +#define TIMELIB_XMLRPC_SOAP 260 +#define TIMELIB_TIME12 261 +#define TIMELIB_TIME24 262 +#define TIMELIB_GNU_NOCOLON 263 +#define TIMELIB_GNU_NOCOLON_TZ 264 +#define TIMELIB_ISO_NOCOLON 265 + +#define TIMELIB_AMERICAN 266 +#define TIMELIB_ISO_DATE 267 +#define TIMELIB_DATE_FULL 268 +#define TIMELIB_DATE_TEXT 269 +#define TIMELIB_DATE_NOCOLON 270 +#define TIMELIB_PG_YEARDAY 271 +#define TIMELIB_PG_TEXT 272 +#define TIMELIB_PG_REVERSE 273 +#define TIMELIB_CLF 274 +#define TIMELIB_DATE_NO_DAY 275 +#define TIMELIB_SHORTDATE_WITH_TIME 276 +#define TIMELIB_DATE_FULL_POINTED 277 +#define TIMELIB_TIME24_WITH_ZONE 278 +#define TIMELIB_ISO_WEEK 279 +#define TIMELIB_LF_DAY_OF_MONTH 280 +#define TIMELIB_WEEK_DAY_OF_MONTH 281 + +#define TIMELIB_TIMEZONE 300 +#define TIMELIB_AGO 301 + +#define TIMELIB_RELATIVE 310 + +#define TIMELIB_ERROR 999 + +/* Some compilers like AIX, defines uchar in sys/types.h */ +#undef uchar +typedef unsigned char uchar; + +#define BSIZE 8192 + +#define YYCTYPE uchar +#define YYCURSOR cursor +#define YYLIMIT s->lim +#define YYMARKER s->ptr +#define YYFILL(n) return EOI; + +#define RET(i) {s->cur = cursor; return i;} + +#define timelib_string_free free + +#define TIMELIB_HAVE_TIME() { if (s->time->have_time) { add_error(s, "Double time specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_time = 1; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; } } +#define TIMELIB_UNHAVE_TIME() { s->time->have_time = 0; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; } +#define TIMELIB_HAVE_DATE() { if (s->time->have_date) { add_error(s, "Double date specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_date = 1; } } +#define TIMELIB_UNHAVE_DATE() { s->time->have_date = 0; s->time->d = 0; s->time->m = 0; s->time->y = 0; } +#define TIMELIB_HAVE_RELATIVE() { s->time->have_relative = 1; } +#define TIMELIB_HAVE_WEEKDAY_RELATIVE() { s->time->have_relative = 1; s->time->relative.have_weekday_relative = 1; } +#define TIMELIB_HAVE_SPECIAL_RELATIVE() { s->time->have_relative = 1; s->time->relative.have_special_relative = 1; } +#define TIMELIB_HAVE_TZ() { s->cur = cursor; if (s->time->have_zone) { s->time->have_zone > 1 ? add_error(s, "Double timezone specification") : add_warning(s, "Double timezone specification"); timelib_string_free(str); s->time->have_zone++; return TIMELIB_ERROR; } else { s->time->have_zone++; } } + +#define TIMELIB_INIT s->cur = cursor; str = timelib_string(s); ptr = str +#define TIMELIB_DEINIT timelib_string_free(str) +#define TIMELIB_ADJUST_RELATIVE_WEEKDAY() if (in->time.have_weekday_relative && (in.rel.d > 0)) { in.rel.d -= 7; } + +#define TIMELIB_PROCESS_YEAR(x, l) { \ + if (((x) == TIMELIB_UNSET) || ((l) >= 4)) { \ + /* (x) = 0; */ \ + } else if ((x) < 100) { \ + if ((x) < 70) { \ + (x) += 2000; \ + } else { \ + (x) += 1900; \ + } \ + } \ +} + +#ifdef DEBUG_PARSER +#define DEBUG_OUTPUT(s) printf("%s\n", s); +#define YYDEBUG(s,c) { if (s != -1) { printf("state: %d ", s); printf("[%c]\n", c); } } +#else +#define DEBUG_OUTPUT(s) +#define YYDEBUG(s,c) +#endif + +#include "timelib_structs.h" + +typedef struct timelib_elems { + unsigned int c; /* Number of elements */ + char **v; /* Values */ +} timelib_elems; + +typedef struct Scanner { + int fd; + uchar *lim, *str, *ptr, *cur, *tok, *pos; + unsigned int line, len; + struct timelib_error_container *errors; + + struct timelib_time *time; + const timelib_tzdb *tzdb; +} Scanner; + +typedef struct _timelib_lookup_table { + const char *name; + int type; + int value; +} timelib_lookup_table; + +typedef struct _timelib_relunit { + const char *name; + int unit; + int multiplier; +} timelib_relunit; + +#define HOUR(a) (int)(a * 60) + +/* The timezone table. */ +const static timelib_tz_lookup_table timelib_timezone_lookup[] = { +#include "timezonemap.h" + { NULL, 0, 0, NULL }, +}; + +const static timelib_tz_lookup_table timelib_timezone_fallbackmap[] = { +#include "fallbackmap.h" + { NULL, 0, 0, NULL }, +}; + +const static timelib_tz_lookup_table timelib_timezone_utc[] = { + { "utc", 0, 0, "UTC" }, +}; + +static timelib_relunit const timelib_relunit_lookup[] = { + { "sec", TIMELIB_SECOND, 1 }, + { "secs", TIMELIB_SECOND, 1 }, + { "second", TIMELIB_SECOND, 1 }, + { "seconds", TIMELIB_SECOND, 1 }, + { "min", TIMELIB_MINUTE, 1 }, + { "mins", TIMELIB_MINUTE, 1 }, + { "minute", TIMELIB_MINUTE, 1 }, + { "minutes", TIMELIB_MINUTE, 1 }, + { "hour", TIMELIB_HOUR, 1 }, + { "hours", TIMELIB_HOUR, 1 }, + { "day", TIMELIB_DAY, 1 }, + { "days", TIMELIB_DAY, 1 }, + { "week", TIMELIB_DAY, 7 }, + { "weeks", TIMELIB_DAY, 7 }, + { "fortnight", TIMELIB_DAY, 14 }, + { "fortnights", TIMELIB_DAY, 14 }, + { "forthnight", TIMELIB_DAY, 14 }, + { "forthnights", TIMELIB_DAY, 14 }, + { "month", TIMELIB_MONTH, 1 }, + { "months", TIMELIB_MONTH, 1 }, + { "year", TIMELIB_YEAR, 1 }, + { "years", TIMELIB_YEAR, 1 }, + + { "monday", TIMELIB_WEEKDAY, 1 }, + { "mon", TIMELIB_WEEKDAY, 1 }, + { "tuesday", TIMELIB_WEEKDAY, 2 }, + { "tue", TIMELIB_WEEKDAY, 2 }, + { "wednesday", TIMELIB_WEEKDAY, 3 }, + { "wed", TIMELIB_WEEKDAY, 3 }, + { "thursday", TIMELIB_WEEKDAY, 4 }, + { "thu", TIMELIB_WEEKDAY, 4 }, + { "friday", TIMELIB_WEEKDAY, 5 }, + { "fri", TIMELIB_WEEKDAY, 5 }, + { "saturday", TIMELIB_WEEKDAY, 6 }, + { "sat", TIMELIB_WEEKDAY, 6 }, + { "sunday", TIMELIB_WEEKDAY, 0 }, + { "sun", TIMELIB_WEEKDAY, 0 }, + + { "weekday", TIMELIB_SPECIAL, TIMELIB_SPECIAL_WEEKDAY }, + { "weekdays", TIMELIB_SPECIAL, TIMELIB_SPECIAL_WEEKDAY }, + { NULL, 0, 0 } +}; + +/* The relative text table. */ +static timelib_lookup_table const timelib_reltext_lookup[] = { + { "first", 0, 1 }, + { "next", 0, 1 }, + { "second", 0, 2 }, + { "third", 0, 3 }, + { "fourth", 0, 4 }, + { "fifth", 0, 5 }, + { "sixth", 0, 6 }, + { "seventh", 0, 7 }, + { "eight", 0, 8 }, + { "eighth", 0, 8 }, + { "ninth", 0, 9 }, + { "tenth", 0, 10 }, + { "eleventh", 0, 11 }, + { "twelfth", 0, 12 }, + { "last", 0, -1 }, + { "previous", 0, -1 }, + { "this", 1, 0 }, + { NULL, 1, 0 } +}; + +/* The month table. */ +static timelib_lookup_table const timelib_month_lookup[] = { + { "jan", 0, 1 }, + { "feb", 0, 2 }, + { "mar", 0, 3 }, + { "apr", 0, 4 }, + { "may", 0, 5 }, + { "jun", 0, 6 }, + { "jul", 0, 7 }, + { "aug", 0, 8 }, + { "sep", 0, 9 }, + { "sept", 0, 9 }, + { "oct", 0, 10 }, + { "nov", 0, 11 }, + { "dec", 0, 12 }, + { "i", 0, 1 }, + { "ii", 0, 2 }, + { "iii", 0, 3 }, + { "iv", 0, 4 }, + { "v", 0, 5 }, + { "vi", 0, 6 }, + { "vii", 0, 7 }, + { "viii", 0, 8 }, + { "ix", 0, 9 }, + { "x", 0, 10 }, + { "xi", 0, 11 }, + { "xii", 0, 12 }, + + { "january", 0, 1 }, + { "february", 0, 2 }, + { "march", 0, 3 }, + { "april", 0, 4 }, + { "may", 0, 5 }, + { "june", 0, 6 }, + { "july", 0, 7 }, + { "august", 0, 8 }, + { "september", 0, 9 }, + { "october", 0, 10 }, + { "november", 0, 11 }, + { "december", 0, 12 }, + { NULL, 0, 0 } +}; + +#if 0 +static char* timelib_ltrim(char *s) +{ + char *ptr = s; + while (ptr[0] == ' ' || ptr[0] == '\t') { + ptr++; + } + return ptr; +} +#endif + +#if 0 +uchar *fill(Scanner *s, uchar *cursor){ + if(!s->eof){ + unsigned int cnt = s->tok - s->bot; + if(cnt){ + memcpy(s->bot, s->tok, s->lim - s->tok); + s->tok = s->bot; + s->ptr -= cnt; + cursor -= cnt; + s->pos -= cnt; + s->lim -= cnt; + } + if((s->top - s->lim) < BSIZE){ + uchar *buf = (uchar*) malloc(((s->lim - s->bot) + BSIZE)*sizeof(uchar)); + memcpy(buf, s->tok, s->lim - s->tok); + s->tok = buf; + s->ptr = &buf[s->ptr - s->bot]; + cursor = &buf[cursor - s->bot]; + s->pos = &buf[s->pos - s->bot]; + s->lim = &buf[s->lim - s->bot]; + s->top = &s->lim[BSIZE]; + free(s->bot); + s->bot = buf; + } + if((cnt = read(s->fd, (char*) s->lim, BSIZE)) != BSIZE){ + s->eof = &s->lim[cnt]; *(s->eof)++ = '\n'; + } + s->lim += cnt; + } + return cursor; +} +#endif + +static void add_warning(Scanner *s, char *error) +{ + s->errors->warning_count++; + s->errors->warning_messages = realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message)); + s->errors->warning_messages[s->errors->warning_count - 1].position = s->tok ? s->tok - s->str : 0; + s->errors->warning_messages[s->errors->warning_count - 1].character = s->tok ? *s->tok : 0; + s->errors->warning_messages[s->errors->warning_count - 1].message = strdup(error); +} + +static void add_error(Scanner *s, char *error) +{ + s->errors->error_count++; + s->errors->error_messages = realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message)); + s->errors->error_messages[s->errors->error_count - 1].position = s->tok ? s->tok - s->str : 0; + s->errors->error_messages[s->errors->error_count - 1].character = s->tok ? *s->tok : 0; + s->errors->error_messages[s->errors->error_count - 1].message = strdup(error); +} + +static void add_pbf_warning(Scanner *s, char *error, char *sptr, char *cptr) +{ + s->errors->warning_count++; + s->errors->warning_messages = realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message)); + s->errors->warning_messages[s->errors->warning_count - 1].position = cptr - sptr; + s->errors->warning_messages[s->errors->warning_count - 1].character = *cptr; + s->errors->warning_messages[s->errors->warning_count - 1].message = strdup(error); +} + +static void add_pbf_error(Scanner *s, char *error, char *sptr, char *cptr) +{ + s->errors->error_count++; + s->errors->error_messages = realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message)); + s->errors->error_messages[s->errors->error_count - 1].position = cptr - sptr; + s->errors->error_messages[s->errors->error_count - 1].character = *cptr; + s->errors->error_messages[s->errors->error_count - 1].message = strdup(error); +} + +static timelib_sll timelib_meridian(char **ptr, timelib_sll h) +{ + timelib_sll retval = 0; + + while (!strchr("AaPp", **ptr)) { + ++*ptr; + } + if (**ptr == 'a' || **ptr == 'A') { + if (h == 12) { + retval = -12; + } + } else if (h != 12) { + retval = 12; + } + ++*ptr; + if (**ptr == '.') { + *ptr += 3; + } else { + ++*ptr; + } + return retval; +} + +static timelib_sll timelib_meridian_with_check(char **ptr, timelib_sll h) +{ + timelib_sll retval = 0; + + while (!strchr("AaPp", **ptr)) { + ++*ptr; + } + if (**ptr == 'a' || **ptr == 'A') { + if (h == 12) { + retval = -12; + } + } else if (h != 12) { + retval = 12; + } + ++*ptr; + if (**ptr == '.') { + ++*ptr; + if (**ptr != 'm' && **ptr != 'M') { + return TIMELIB_UNSET; + } + ++*ptr; + if (**ptr != '.' ) { + return TIMELIB_UNSET; + } + ++*ptr; + } else if (**ptr == 'm' || **ptr == 'M') { + ++*ptr; + } else { + return TIMELIB_UNSET; + } + return retval; +} + +static char *timelib_string(Scanner *s) +{ + char *tmp = calloc(1, s->cur - s->tok + 1); + memcpy(tmp, s->tok, s->cur - s->tok); + + return tmp; +} + +static timelib_sll timelib_get_nr_ex(char **ptr, int max_length, int *scanned_length) +{ + char *begin, *end, *str; + timelib_sll tmp_nr = TIMELIB_UNSET; + int len = 0; + + while ((**ptr < '0') || (**ptr > '9')) { + if (**ptr == '\0') { + return TIMELIB_UNSET; + } + ++*ptr; + } + begin = *ptr; + while ((**ptr >= '0') && (**ptr <= '9') && len < max_length) { + ++*ptr; + ++len; + } + end = *ptr; + if (scanned_length) { + *scanned_length = end - begin; + } + str = calloc(1, end - begin + 1); + memcpy(str, begin, end - begin); + tmp_nr = strtoll(str, NULL, 10); + free(str); + return tmp_nr; +} + +static timelib_sll timelib_get_nr(char **ptr, int max_length) +{ + return timelib_get_nr_ex(ptr, max_length, NULL); +} + +static void timelib_skip_day_suffix(char **ptr) +{ + if (isspace(**ptr)) { + return; + } + if (!strncasecmp(*ptr, "nd", 2) || !strncasecmp(*ptr, "rd", 2) ||!strncasecmp(*ptr, "st", 2) || !strncasecmp(*ptr, "th", 2)) { + *ptr += 2; + } +} + +static double timelib_get_frac_nr(char **ptr, int max_length) +{ + char *begin, *end, *str; + double tmp_nr = TIMELIB_UNSET; + int len = 0; + + while ((**ptr != '.') && (**ptr != ':') && ((**ptr < '0') || (**ptr > '9'))) { + if (**ptr == '\0') { + return TIMELIB_UNSET; + } + ++*ptr; + } + begin = *ptr; + while (((**ptr == '.') || (**ptr == ':') || ((**ptr >= '0') && (**ptr <= '9'))) && len < max_length) { + ++*ptr; + ++len; + } + end = *ptr; + str = calloc(1, end - begin + 1); + memcpy(str, begin, end - begin); + if (str[0] == ':') { + str[0] = '.'; + } + tmp_nr = strtod(str, NULL); + free(str); + return tmp_nr; +} + +static timelib_ull timelib_get_unsigned_nr(char **ptr, int max_length) +{ + timelib_ull dir = 1; + + while (((**ptr < '0') || (**ptr > '9')) && (**ptr != '+') && (**ptr != '-')) { + if (**ptr == '\0') { + return TIMELIB_UNSET; + } + ++*ptr; + } + + while (**ptr == '+' || **ptr == '-') + { + if (**ptr == '-') { + dir *= -1; + } + ++*ptr; + } + return dir * timelib_get_nr(ptr, max_length); +} + +static long timelib_parse_tz_cor(char **ptr) +{ + char *begin = *ptr, *end; + long tmp; + + while (isdigit(**ptr) || **ptr == ':') { + ++*ptr; + } + end = *ptr; + switch (end - begin) { + case 1: + case 2: + return HOUR(strtol(begin, NULL, 10)); + break; + case 3: + case 4: + if (begin[1] == ':') { + tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 2, NULL, 10); + return tmp; + } else if (begin[2] == ':') { + tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 3, NULL, 10); + return tmp; + } else { + tmp = strtol(begin, NULL, 10); + return HOUR(tmp / 100) + tmp % 100; + } + case 5: + tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 3, NULL, 10); + return tmp; + } + return 0; +} + +static timelib_sll timelib_lookup_relative_text(char **ptr, int *behavior) +{ + char *word; + char *begin = *ptr, *end; + timelib_sll value = 0; + const timelib_lookup_table *tp; + + while ((**ptr >= 'A' && **ptr <= 'Z') || (**ptr >= 'a' && **ptr <= 'z')) { + ++*ptr; + } + end = *ptr; + word = calloc(1, end - begin + 1); + memcpy(word, begin, end - begin); + + for (tp = timelib_reltext_lookup; tp->name; tp++) { + if (strcasecmp(word, tp->name) == 0) { + value = tp->value; + *behavior = tp->type; + } + } + + free(word); + return value; +} + +static timelib_sll timelib_get_relative_text(char **ptr, int *behavior) +{ + while (**ptr == ' ' || **ptr == '\t' || **ptr == '-' || **ptr == '/') { + ++*ptr; + } + return timelib_lookup_relative_text(ptr, behavior); +} + +static long timelib_lookup_month(char **ptr) +{ + char *word; + char *begin = *ptr, *end; + long value = 0; + const timelib_lookup_table *tp; + + while ((**ptr >= 'A' && **ptr <= 'Z') || (**ptr >= 'a' && **ptr <= 'z')) { + ++*ptr; + } + end = *ptr; + word = calloc(1, end - begin + 1); + memcpy(word, begin, end - begin); + + for (tp = timelib_month_lookup; tp->name; tp++) { + if (strcasecmp(word, tp->name) == 0) { + value = tp->value; + } + } + + free(word); + return value; +} + +static long timelib_get_month(char **ptr) +{ + while (**ptr == ' ' || **ptr == '\t' || **ptr == '-' || **ptr == '.' || **ptr == '/') { + ++*ptr; + } + return timelib_lookup_month(ptr); +} + +static void timelib_eat_spaces(char **ptr) +{ + while (**ptr == ' ' || **ptr == '\t') { + ++*ptr; + } +} + +static void timelib_eat_until_separator(char **ptr) +{ + ++*ptr; + while (strchr(" \t.,:;/-0123456789", **ptr) == NULL) { + ++*ptr; + } +} + +static const timelib_relunit* timelib_lookup_relunit(char **ptr) +{ + char *word; + char *begin = *ptr, *end; + const timelib_relunit *tp, *value = NULL; + + while (**ptr != '\0' && **ptr != ' ' && **ptr != ',' && **ptr != '\t') { + ++*ptr; + } + end = *ptr; + word = calloc(1, end - begin + 1); + memcpy(word, begin, end - begin); + + for (tp = timelib_relunit_lookup; tp->name; tp++) { + if (strcasecmp(word, tp->name) == 0) { + value = tp; + break; + } + } + + free(word); + return value; +} + +static void timelib_set_relative(char **ptr, timelib_sll amount, int behavior, Scanner *s) +{ + const timelib_relunit* relunit; + + if (!(relunit = timelib_lookup_relunit(ptr))) { + return; + } + + switch (relunit->unit) { + case TIMELIB_SECOND: s->time->relative.s += amount * relunit->multiplier; break; + case TIMELIB_MINUTE: s->time->relative.i += amount * relunit->multiplier; break; + case TIMELIB_HOUR: s->time->relative.h += amount * relunit->multiplier; break; + case TIMELIB_DAY: s->time->relative.d += amount * relunit->multiplier; break; + case TIMELIB_MONTH: s->time->relative.m += amount * relunit->multiplier; break; + case TIMELIB_YEAR: s->time->relative.y += amount * relunit->multiplier; break; + + case TIMELIB_WEEKDAY: + TIMELIB_HAVE_WEEKDAY_RELATIVE(); + TIMELIB_UNHAVE_TIME(); + s->time->relative.d += (amount > 0 ? amount - 1 : amount) * 7; + s->time->relative.weekday = relunit->multiplier; + s->time->relative.weekday_behavior = behavior; + break; + + case TIMELIB_SPECIAL: + TIMELIB_HAVE_SPECIAL_RELATIVE(); + TIMELIB_UNHAVE_TIME(); + s->time->relative.special.type = relunit->multiplier; + s->time->relative.special.amount = amount; + } +} + +const static timelib_tz_lookup_table* zone_search(const char *word, long gmtoffset, int isdst) +{ + int first_found = 0; + const timelib_tz_lookup_table *tp, *first_found_elem = NULL; + const timelib_tz_lookup_table *fmp; + + if (strcasecmp("utc", word) == 0 || strcasecmp("gmt", word) == 0) { + return timelib_timezone_utc; + } + + for (tp = timelib_timezone_lookup; tp->name; tp++) { + if (strcasecmp(word, tp->name) == 0) { + if (!first_found) { + first_found = 1; + first_found_elem = tp; + if (gmtoffset == -1) { + return tp; + } + } + if (tp->gmtoffset == gmtoffset) { + return tp; + } + } + } + if (first_found) { + return first_found_elem; + } + + for (tp = timelib_timezone_lookup; tp->name; tp++) { + if (tp->full_tz_name && strcasecmp(word, tp->full_tz_name) == 0) { + if (!first_found) { + first_found = 1; + first_found_elem = tp; + if (gmtoffset == -1) { + return tp; + } + } + if (tp->gmtoffset == gmtoffset) { + return tp; + } + } + } + if (first_found) { + return first_found_elem; + } + + + /* Still didn't find anything, let's find the zone solely based on + * offset/isdst then */ + for (fmp = timelib_timezone_fallbackmap; fmp->name; fmp++) { + if ((fmp->gmtoffset * 3600) == gmtoffset && fmp->type == isdst) { + return fmp; + } + } + return NULL; +} + +static long timelib_lookup_zone(char **ptr, int *dst, char **tz_abbr, int *found) +{ + char *word; + char *begin = *ptr, *end; + long value = 0; + const timelib_tz_lookup_table *tp; + + while (**ptr != '\0' && **ptr != ')' && **ptr != ' ') { + ++*ptr; + } + end = *ptr; + word = calloc(1, end - begin + 1); + memcpy(word, begin, end - begin); + + if ((tp = zone_search(word, -1, 0))) { + value = -tp->gmtoffset / 60; + *dst = tp->type; + value += tp->type * 60; + *found = 1; + } else { + *found = 0; + } + + *tz_abbr = word; + return value; +} + +static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_found, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_wrapper) +{ + timelib_tzinfo *res; + long retval = 0; + + *tz_not_found = 0; + + while (**ptr == ' ' || **ptr == '\t' || **ptr == '(') { + ++*ptr; + } + if ((*ptr)[0] == 'G' && (*ptr)[1] == 'M' && (*ptr)[2] == 'T' && ((*ptr)[3] == '+' || (*ptr)[3] == '-')) { + *ptr += 3; + } + if (**ptr == '+') { + ++*ptr; + t->is_localtime = 1; + t->zone_type = TIMELIB_ZONETYPE_OFFSET; + *tz_not_found = 0; + t->dst = 0; + + retval = -1 * timelib_parse_tz_cor(ptr); + } else if (**ptr == '-') { + ++*ptr; + t->is_localtime = 1; + t->zone_type = TIMELIB_ZONETYPE_OFFSET; + *tz_not_found = 0; + t->dst = 0; + + retval = timelib_parse_tz_cor(ptr); + } else { + int found = 0; + long offset; + char *tz_abbr; + + t->is_localtime = 1; + + offset = timelib_lookup_zone(ptr, dst, &tz_abbr, &found); + if (found) { + t->zone_type = TIMELIB_ZONETYPE_ABBR; + } +#if 0 + /* If we found a TimeZone identifier, use it */ + if (tz_name) { + t->tz_info = timelib_parse_tzfile(tz_name); + t->zone_type = TIMELIB_ZONETYPE_ID; + } +#endif + /* If we have a TimeZone identifier to start with, use it */ + if (strstr(tz_abbr, "/") || strcmp(tz_abbr, "UTC") == 0) { + if ((res = tz_wrapper(tz_abbr, tzdb)) != NULL) { + t->tz_info = res; + t->zone_type = TIMELIB_ZONETYPE_ID; + found++; + } + } + if (found && t->zone_type != TIMELIB_ZONETYPE_ID) { + timelib_time_tz_abbr_update(t, tz_abbr); + } + free(tz_abbr); + *tz_not_found = (found == 0); + retval = offset; + } + while (**ptr == ')') { + ++*ptr; + } + return retval; +} + +#define timelib_split_free(arg) { \ + int i; \ + for (i = 0; i < arg.c; i++) { \ + free(arg.v[i]); \ + } \ + if (arg.v) { \ + free(arg.v); \ + } \ +} + +static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) +{ + uchar *cursor = s->cur; + char *str, *ptr = NULL; + +std: + s->tok = cursor; + s->len = 0; + + + +{ + YYCTYPE yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 100, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 100, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 128, 64, 160, 96, 0, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 0, 0, 0, 0, 0, + 0, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 0, 0, 0, 0, 0, + 0, 24, 24, 24, 88, 24, 24, 24, + 88, 24, 24, 24, 24, 24, 88, 24, + 24, 24, 88, 88, 88, 24, 24, 24, + 24, 24, 24, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + + YYDEBUG(0, *YYCURSOR); + if ((YYLIMIT - YYCURSOR) < 31) YYFILL(31); + yych = *YYCURSOR; + YYDEBUG(-1, yych); + switch (yych) { + case 0x00: + case '\n': goto yy52; + case '\t': + case ' ': goto yy49; + case '(': goto yy46; + case '+': + case '-': goto yy31; + case ',': + case '.': goto yy51; + case '0': goto yy26; + case '1': goto yy27; + case '2': goto yy28; + case '3': goto yy29; + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy30; + case '@': goto yy12; + case 'A': goto yy37; + case 'B': goto yy18; + case 'C': + case 'H': + case 'K': + case 'Q': + case 'R': + case 'U': + case 'Z': goto yy47; + case 'D': goto yy41; + case 'E': goto yy22; + case 'F': goto yy14; + case 'G': goto yy45; + case 'I': goto yy32; + case 'J': goto yy35; + case 'L': goto yy16; + case 'M': goto yy8; + case 'N': goto yy6; + case 'O': goto yy39; + case 'P': goto yy24; + case 'S': goto yy20; + case 'T': goto yy10; + case 'V': goto yy33; + case 'W': goto yy43; + case 'X': goto yy34; + case 'Y': goto yy3; + case 'a': goto yy38; + case 'b': goto yy19; + case 'c': + case 'g': + case 'h': + case 'i': + case 'k': + case 'q': + case 'r': + case 'u': + case 'v': + case 'x': + case 'z': goto yy48; + case 'd': goto yy42; + case 'e': goto yy23; + case 'f': goto yy15; + case 'j': goto yy36; + case 'l': goto yy17; + case 'm': goto yy9; + case 'n': goto yy7; + case 'o': goto yy40; + case 'p': goto yy25; + case 's': goto yy21; + case 't': goto yy11; + case 'w': goto yy44; + case 'y': goto yy5; + default: goto yy54; + } +yy2: + YYDEBUG(2, *YYCURSOR); + { + DEBUG_OUTPUT("firstdayof | lastdayof"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + + /* skip "last day of" or "first day of" */ + if (*ptr == 'l') { + s->time->relative.first_last_day_of = 2; + } else { + s->time->relative.first_last_day_of = 1; + } + + TIMELIB_DEINIT; + return TIMELIB_LF_DAY_OF_MONTH; + } +yy3: + YYDEBUG(3, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= 'E') { + if (yych <= ')') { + if (yych >= ')') goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy141; + goto yy1523; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy141; + if (yych >= 'a') goto yy146; + } else { + if (yych <= 'e') goto yy1532; + if (yych <= 'z') goto yy146; + } + } +yy4: + YYDEBUG(4, *YYCURSOR); + { + int tz_not_found; + DEBUG_OUTPUT("tzcorrection | tz"); + TIMELIB_INIT; + TIMELIB_HAVE_TZ(); + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, "The timezone could not be found in the database"); + } + TIMELIB_DEINIT; + return TIMELIB_TIMEZONE; + } +yy5: + YYDEBUG(5, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy141; + goto yy1523; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + goto yy141; + } else { + if (yych <= 'e') goto yy1523; + if (yych <= 'z') goto yy141; + goto yy4; + } + } +yy6: + YYDEBUG(6, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= 'D') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy141; + } else { + if (yych <= 'H') { + if (yych <= 'E') goto yy1494; + goto yy141; + } else { + if (yych <= 'I') goto yy1495; + if (yych <= 'N') goto yy141; + goto yy1493; + } + } + } else { + if (yych <= 'h') { + if (yych <= '`') { + if (yych <= 'Z') goto yy141; + goto yy4; + } else { + if (yych == 'e') goto yy1510; + goto yy146; + } + } else { + if (yych <= 'n') { + if (yych <= 'i') goto yy1511; + goto yy146; + } else { + if (yych <= 'o') goto yy1509; + if (yych <= 'z') goto yy146; + goto yy4; + } + } + } +yy7: + YYDEBUG(7, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= 'D') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy141; + } else { + if (yych <= 'H') { + if (yych <= 'E') goto yy1494; + goto yy141; + } else { + if (yych <= 'I') goto yy1495; + if (yych <= 'N') goto yy141; + goto yy1493; + } + } + } else { + if (yych <= 'h') { + if (yych <= '`') { + if (yych <= 'Z') goto yy141; + goto yy4; + } else { + if (yych == 'e') goto yy1494; + goto yy141; + } + } else { + if (yych <= 'n') { + if (yych <= 'i') goto yy1495; + goto yy141; + } else { + if (yych <= 'o') goto yy1493; + if (yych <= 'z') goto yy141; + goto yy4; + } + } + } +yy8: + YYDEBUG(8, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= 'A') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy1463; + } else { + if (yych == 'I') goto yy1464; + if (yych <= 'N') goto yy141; + goto yy1465; + } + } else { + if (yych <= 'h') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + if (yych <= 'a') goto yy1478; + goto yy146; + } else { + if (yych <= 'n') { + if (yych <= 'i') goto yy1479; + goto yy146; + } else { + if (yych <= 'o') goto yy1480; + if (yych <= 'z') goto yy146; + goto yy4; + } + } + } +yy9: + YYDEBUG(9, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= 'A') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy1463; + } else { + if (yych == 'I') goto yy1464; + if (yych <= 'N') goto yy141; + goto yy1465; + } + } else { + if (yych <= 'h') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + if (yych <= 'a') goto yy1463; + goto yy141; + } else { + if (yych <= 'n') { + if (yych <= 'i') goto yy1464; + goto yy141; + } else { + if (yych <= 'o') goto yy1465; + if (yych <= 'z') goto yy141; + goto yy4; + } + } + } +yy10: + YYDEBUG(10, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + YYDEBUG(-1, yych); + switch (yych) { + case ')': goto yy140; + case '0': + case '1': goto yy1393; + case '2': goto yy1394; + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy1395; + case 'A': + case 'B': + case 'C': + case 'D': + case 'F': + case 'G': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'V': + case 'X': + case 'Y': + case 'Z': goto yy141; + case 'E': goto yy1388; + case 'H': goto yy1389; + case 'O': goto yy1390; + case 'U': goto yy1391; + case 'W': goto yy1392; + case 'a': + case 'b': + case 'c': + case 'd': + case 'f': + case 'g': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'v': + case 'x': + case 'y': + case 'z': goto yy146; + case 'e': goto yy1431; + case 'h': goto yy1432; + case 'o': goto yy1433; + case 'u': goto yy1434; + case 'w': goto yy1435; + default: goto yy4; + } +yy11: + YYDEBUG(11, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + YYDEBUG(-1, yych); + switch (yych) { + case ')': goto yy140; + case '0': + case '1': goto yy1393; + case '2': goto yy1394; + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy1395; + case 'A': + case 'B': + case 'C': + case 'D': + case 'F': + case 'G': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'V': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'f': + case 'g': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'v': + case 'x': + case 'y': + case 'z': goto yy141; + case 'E': + case 'e': goto yy1388; + case 'H': + case 'h': goto yy1389; + case 'O': + case 'o': goto yy1390; + case 'U': + case 'u': goto yy1391; + case 'W': + case 'w': goto yy1392; + default: goto yy4; + } +yy12: + YYDEBUG(12, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '-') goto yy1384; + if (yych <= '/') goto yy13; + if (yych <= '9') goto yy1385; +yy13: + YYDEBUG(13, *YYCURSOR); + { + add_error(s, "Unexpected character"); + goto std; + } +yy14: + YYDEBUG(14, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy141; + goto yy1320; + } + } else { + if (yych <= 'N') { + if (yych == 'I') goto yy1321; + goto yy141; + } else { + if (yych <= 'O') goto yy1322; + if (yych <= 'Q') goto yy141; + goto yy1323; + } + } + } else { + if (yych <= 'i') { + if (yych <= 'd') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + goto yy146; + } else { + if (yych <= 'e') goto yy1361; + if (yych <= 'h') goto yy146; + goto yy1362; + } + } else { + if (yych <= 'q') { + if (yych == 'o') goto yy1363; + goto yy146; + } else { + if (yych <= 'r') goto yy1364; + if (yych <= 'z') goto yy146; + goto yy4; + } + } + } +yy15: + YYDEBUG(15, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy141; + goto yy1320; + } + } else { + if (yych <= 'N') { + if (yych == 'I') goto yy1321; + goto yy141; + } else { + if (yych <= 'O') goto yy1322; + if (yych <= 'Q') goto yy141; + goto yy1323; + } + } + } else { + if (yych <= 'i') { + if (yych <= 'd') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + goto yy141; + } else { + if (yych <= 'e') goto yy1320; + if (yych <= 'h') goto yy141; + goto yy1321; + } + } else { + if (yych <= 'q') { + if (yych == 'o') goto yy1322; + goto yy141; + } else { + if (yych <= 'r') goto yy1323; + if (yych <= 'z') goto yy141; + goto yy4; + } + } + } +yy16: + YYDEBUG(16, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy1307; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy141; + goto yy4; + } else { + if (yych <= 'a') goto yy1317; + if (yych <= 'z') goto yy146; + goto yy4; + } + } +yy17: + YYDEBUG(17, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy1307; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy141; + goto yy4; + } else { + if (yych <= 'a') goto yy1307; + if (yych <= 'z') goto yy141; + goto yy4; + } + } +yy18: + YYDEBUG(18, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy1287; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy141; + goto yy4; + } else { + if (yych <= 'a') goto yy1304; + if (yych <= 'z') goto yy146; + goto yy4; + } + } +yy19: + YYDEBUG(19, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy1287; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy141; + goto yy4; + } else { + if (yych <= 'a') goto yy1287; + if (yych <= 'z') goto yy141; + goto yy4; + } + } +yy20: + YYDEBUG(20, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'A') goto yy1230; + goto yy141; + } + } else { + if (yych <= 'H') { + if (yych <= 'E') goto yy1229; + goto yy141; + } else { + if (yych <= 'I') goto yy1231; + if (yych <= 'T') goto yy141; + goto yy1232; + } + } + } else { + if (yych <= 'e') { + if (yych <= '`') { + if (yych <= 'Z') goto yy141; + goto yy4; + } else { + if (yych <= 'a') goto yy1259; + if (yych <= 'd') goto yy146; + goto yy1258; + } + } else { + if (yych <= 't') { + if (yych == 'i') goto yy1260; + goto yy146; + } else { + if (yych <= 'u') goto yy1261; + if (yych <= 'z') goto yy146; + goto yy4; + } + } + } +yy21: + YYDEBUG(21, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'A') goto yy1230; + goto yy141; + } + } else { + if (yych <= 'H') { + if (yych <= 'E') goto yy1229; + goto yy141; + } else { + if (yych <= 'I') goto yy1231; + if (yych <= 'T') goto yy141; + goto yy1232; + } + } + } else { + if (yych <= 'e') { + if (yych <= '`') { + if (yych <= 'Z') goto yy141; + goto yy4; + } else { + if (yych <= 'a') goto yy1230; + if (yych <= 'd') goto yy141; + goto yy1229; + } + } else { + if (yych <= 't') { + if (yych == 'i') goto yy1231; + goto yy141; + } else { + if (yych <= 'u') goto yy1232; + if (yych <= 'z') goto yy141; + goto yy4; + } + } + } +yy22: + YYDEBUG(22, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == 'I') goto yy1199; + if (yych <= 'K') goto yy141; + goto yy1200; + } + } else { + if (yych <= 'i') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + if (yych <= 'h') goto yy146; + goto yy1217; + } else { + if (yych == 'l') goto yy1218; + if (yych <= 'z') goto yy146; + goto yy4; + } + } +yy23: + YYDEBUG(23, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == 'I') goto yy1199; + if (yych <= 'K') goto yy141; + goto yy1200; + } + } else { + if (yych <= 'i') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + if (yych <= 'h') goto yy141; + goto yy1199; + } else { + if (yych == 'l') goto yy1200; + if (yych <= 'z') goto yy141; + goto yy4; + } + } +yy24: + YYDEBUG(24, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'Q') goto yy141; + goto yy1098; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + goto yy146; + } else { + if (yych <= 'r') goto yy1192; + if (yych <= 'z') goto yy146; + goto yy4; + } + } +yy25: + YYDEBUG(25, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'Q') goto yy141; + goto yy1098; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + goto yy141; + } else { + if (yych <= 'r') goto yy1098; + if (yych <= 'z') goto yy141; + goto yy4; + } + } +yy26: + YYDEBUG(26, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + YYDEBUG(-1, yych); + switch (yych) { + case '\t': goto yy1052; + case ' ': + case 'A': + case 'D': + case 'F': + case 'H': + case 'I': + case 'J': + case 'M': + case 'N': + case 'O': + case 'S': + case 'T': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'a': + case 'd': + case 'f': + case 'h': + case 'j': + case 'm': + case 'o': + case 'w': + case 'y': goto yy1054; + case '-': goto yy473; + case '.': goto yy1064; + case '/': goto yy472; + case '0': goto yy1097; + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy1096; + case ':': goto yy1065; + case 'n': goto yy470; + case 'r': goto yy471; + case 's': goto yy464; + case 't': goto yy468; + default: goto yy13; + } +yy27: + YYDEBUG(27, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + YYDEBUG(-1, yych); + switch (yych) { + case '\t': goto yy460; + case ' ': + case 'A': + case 'D': + case 'F': + case 'H': + case 'I': + case 'J': + case 'M': + case 'N': + case 'O': + case 'P': + case 'S': + case 'T': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'a': + case 'd': + case 'f': + case 'h': + case 'j': + case 'm': + case 'o': + case 'p': + case 'w': + case 'y': goto yy462; + case '-': goto yy473; + case '.': goto yy474; + case '/': goto yy472; + case '0': + case '1': + case '2': goto yy1096; + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy1063; + case ':': goto yy483; + case 'n': goto yy470; + case 'r': goto yy471; + case 's': goto yy464; + case 't': goto yy468; + default: goto yy13; + } +yy28: + YYDEBUG(28, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + YYDEBUG(-1, yych); + switch (yych) { + case '\t': goto yy460; + case ' ': + case 'A': + case 'D': + case 'F': + case 'H': + case 'I': + case 'J': + case 'M': + case 'N': + case 'O': + case 'P': + case 'S': + case 'T': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'a': + case 'd': + case 'f': + case 'h': + case 'j': + case 'm': + case 'o': + case 'p': + case 'w': + case 'y': goto yy462; + case '-': goto yy473; + case '.': goto yy474; + case '/': goto yy472; + case '0': + case '1': + case '2': + case '3': + case '4': goto yy1063; + case '5': + case '6': + case '7': + case '8': + case '9': goto yy1050; + case ':': goto yy483; + case 'n': goto yy470; + case 'r': goto yy471; + case 's': goto yy464; + case 't': goto yy468; + default: goto yy13; + } +yy29: + YYDEBUG(29, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + YYDEBUG(-1, yych); + switch (yych) { + case '\t': goto yy460; + case ' ': + case 'A': + case 'D': + case 'F': + case 'H': + case 'I': + case 'J': + case 'M': + case 'N': + case 'O': + case 'P': + case 'S': + case 'T': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'a': + case 'd': + case 'f': + case 'h': + case 'j': + case 'm': + case 'o': + case 'p': + case 'w': + case 'y': goto yy462; + case '-': goto yy473; + case '.': goto yy474; + case '/': goto yy472; + case '0': + case '1': goto yy1050; + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy469; + case ':': goto yy483; + case 'n': goto yy470; + case 'r': goto yy471; + case 's': goto yy464; + case 't': goto yy468; + default: goto yy13; + } +yy30: + YYDEBUG(30, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + YYDEBUG(-1, yych); + switch (yych) { + case '\t': goto yy460; + case ' ': + case 'A': + case 'D': + case 'F': + case 'H': + case 'I': + case 'J': + case 'M': + case 'N': + case 'O': + case 'P': + case 'S': + case 'T': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'a': + case 'd': + case 'f': + case 'h': + case 'j': + case 'm': + case 'o': + case 'p': + case 'w': + case 'y': goto yy462; + case '-': goto yy473; + case '.': goto yy474; + case '/': goto yy472; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy469; + case ':': goto yy483; + case 'n': goto yy470; + case 'r': goto yy471; + case 's': goto yy464; + case 't': goto yy468; + default: goto yy13; + } +yy31: + YYDEBUG(31, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy58; + } + YYDEBUG(-1, yych); + switch (yych) { + case '+': + case '-': goto yy440; + case '0': + case '1': goto yy437; + case '2': goto yy438; + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy439; + default: goto yy13; + } +yy32: + YYDEBUG(32, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy4; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy4; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy140; + goto yy4; + } else { + if (yych == '/') goto yy4; + goto yy196; + } + } + } else { + if (yych <= 'V') { + if (yych <= 'H') { + if (yych <= '@') goto yy4; + goto yy141; + } else { + if (yych <= 'I') goto yy436; + if (yych <= 'U') goto yy141; + goto yy435; + } + } else { + if (yych <= 'Z') { + if (yych == 'X') goto yy435; + goto yy141; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy146; + goto yy4; + } + } + } +yy33: + YYDEBUG(33, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy4; + goto yy196; + } else { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy196; + } + } else { + if (yych <= 'H') { + if (yych <= '/') goto yy4; + if (yych <= '9') goto yy196; + if (yych <= '@') goto yy4; + goto yy141; + } else { + if (yych <= 'Z') { + if (yych <= 'I') goto yy432; + goto yy141; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy146; + goto yy4; + } + } + } +yy34: + YYDEBUG(34, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy4; + goto yy196; + } else { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy196; + } + } else { + if (yych <= 'H') { + if (yych <= '/') goto yy4; + if (yych <= '9') goto yy196; + if (yych <= '@') goto yy4; + goto yy141; + } else { + if (yych <= 'Z') { + if (yych <= 'I') goto yy430; + goto yy141; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy146; + goto yy4; + } + } + } +yy35: + YYDEBUG(35, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'A') goto yy413; + if (yych <= 'T') goto yy141; + goto yy412; + } + } else { + if (yych <= 'a') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + goto yy422; + } else { + if (yych == 'u') goto yy421; + if (yych <= 'z') goto yy146; + goto yy4; + } + } +yy36: + YYDEBUG(36, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'A') goto yy413; + if (yych <= 'T') goto yy141; + goto yy412; + } + } else { + if (yych <= 'a') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + goto yy413; + } else { + if (yych == 'u') goto yy412; + if (yych <= 'z') goto yy141; + goto yy4; + } + } +yy37: + YYDEBUG(37, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= 'F') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy141; + } else { + if (yych <= 'O') { + if (yych <= 'G') goto yy391; + goto yy141; + } else { + if (yych <= 'P') goto yy390; + if (yych <= 'T') goto yy141; + goto yy389; + } + } + } else { + if (yych <= 'o') { + if (yych <= '`') { + if (yych <= 'Z') goto yy141; + goto yy4; + } else { + if (yych == 'g') goto yy403; + goto yy146; + } + } else { + if (yych <= 't') { + if (yych <= 'p') goto yy402; + goto yy146; + } else { + if (yych <= 'u') goto yy401; + if (yych <= 'z') goto yy146; + goto yy4; + } + } + } +yy38: + YYDEBUG(38, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= 'F') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy141; + } else { + if (yych <= 'O') { + if (yych <= 'G') goto yy391; + goto yy141; + } else { + if (yych <= 'P') goto yy390; + if (yych <= 'T') goto yy141; + goto yy389; + } + } + } else { + if (yych <= 'o') { + if (yych <= '`') { + if (yych <= 'Z') goto yy141; + goto yy4; + } else { + if (yych == 'g') goto yy391; + goto yy141; + } + } else { + if (yych <= 't') { + if (yych <= 'p') goto yy390; + goto yy141; + } else { + if (yych <= 'u') goto yy389; + if (yych <= 'z') goto yy141; + goto yy4; + } + } + } +yy39: + YYDEBUG(39, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'C') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'B') goto yy141; + goto yy379; + } + } else { + if (yych <= 'b') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + goto yy146; + } else { + if (yych <= 'c') goto yy384; + if (yych <= 'z') goto yy146; + goto yy4; + } + } +yy40: + YYDEBUG(40, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'C') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'B') goto yy141; + goto yy379; + } + } else { + if (yych <= 'b') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + goto yy141; + } else { + if (yych <= 'c') goto yy379; + if (yych <= 'z') goto yy141; + goto yy4; + } + } +yy41: + YYDEBUG(41, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy141; + goto yy192; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + goto yy146; + } else { + if (yych <= 'e') goto yy370; + if (yych <= 'z') goto yy146; + goto yy4; + } + } +yy42: + YYDEBUG(42, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy141; + goto yy192; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + goto yy141; + } else { + if (yych <= 'e') goto yy192; + if (yych <= 'z') goto yy141; + goto yy4; + } + } +yy43: + YYDEBUG(43, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy141; + goto yy165; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + goto yy146; + } else { + if (yych <= 'e') goto yy179; + if (yych <= 'z') goto yy146; + goto yy4; + } + } +yy44: + YYDEBUG(44, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy141; + goto yy165; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + goto yy141; + } else { + if (yych <= 'e') goto yy165; + if (yych <= 'z') goto yy141; + goto yy4; + } + } +yy45: + YYDEBUG(45, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy141; + } else { + if (yych <= 'Z') { + if (yych <= 'M') goto yy157; + goto yy141; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy146; + goto yy4; + } + } +yy46: + YYDEBUG(46, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') goto yy13; + if (yych <= 'Z') goto yy156; + if (yych <= '`') goto yy13; + if (yych <= 'z') goto yy156; + goto yy13; +yy47: + YYDEBUG(47, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy146; + goto yy4; + } +yy48: + YYDEBUG(48, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy141; + goto yy4; + } +yy49: + YYDEBUG(49, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy58; + } + if (yych <= '/') goto yy50; + if (yych <= '9') goto yy55; +yy50: + YYDEBUG(50, *YYCURSOR); + { + goto std; + } +yy51: + YYDEBUG(51, *YYCURSOR); + yych = *++YYCURSOR; + goto yy50; +yy52: + YYDEBUG(52, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(53, *YYCURSOR); + { + s->pos = cursor; s->line++; + goto std; + } +yy54: + YYDEBUG(54, *YYCURSOR); + yych = *++YYCURSOR; + goto yy13; +yy55: + YYDEBUG(55, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11); + yych = *YYCURSOR; + YYDEBUG(56, *YYCURSOR); + if (yybm[0+yych] & 2) { + goto yy55; + } + if (yych <= 'W') { + if (yych <= 'F') { + if (yych <= ' ') { + if (yych == '\t') goto yy60; + if (yych >= ' ') goto yy60; + } else { + if (yych == 'D') goto yy65; + if (yych >= 'F') goto yy66; + } + } else { + if (yych <= 'M') { + if (yych == 'H') goto yy64; + if (yych >= 'M') goto yy63; + } else { + if (yych <= 'S') { + if (yych >= 'S') goto yy62; + } else { + if (yych <= 'T') goto yy69; + if (yych >= 'W') goto yy68; + } + } + } + } else { + if (yych <= 'l') { + if (yych <= 'd') { + if (yych == 'Y') goto yy67; + if (yych >= 'd') goto yy65; + } else { + if (yych <= 'f') { + if (yych >= 'f') goto yy66; + } else { + if (yych == 'h') goto yy64; + } + } + } else { + if (yych <= 't') { + if (yych <= 'm') goto yy63; + if (yych <= 'r') goto yy57; + if (yych <= 's') goto yy62; + goto yy69; + } else { + if (yych <= 'w') { + if (yych >= 'w') goto yy68; + } else { + if (yych == 'y') goto yy67; + } + } + } + } +yy57: + YYDEBUG(57, *YYCURSOR); + YYCURSOR = YYMARKER; + if (yyaccept <= 16) { + if (yyaccept <= 8) { + if (yyaccept <= 4) { + if (yyaccept <= 2) { + if (yyaccept <= 1) { + if (yyaccept <= 0) { + goto yy4; + } else { + goto yy13; + } + } else { + goto yy50; + } + } else { + if (yyaccept <= 3) { + goto yy73; + } else { + goto yy167; + } + } + } else { + if (yyaccept <= 6) { + if (yyaccept <= 5) { + goto yy194; + } else { + goto yy199; + } + } else { + if (yyaccept <= 7) { + goto yy223; + } else { + goto yy295; + } + } + } + } else { + if (yyaccept <= 12) { + if (yyaccept <= 10) { + if (yyaccept <= 9) { + goto yy393; + } else { + goto yy476; + } + } else { + if (yyaccept <= 11) { + goto yy491; + } else { + goto yy612; + } + } + } else { + if (yyaccept <= 14) { + if (yyaccept <= 13) { + goto yy657; + } else { + goto yy667; + } + } else { + if (yyaccept <= 15) { + goto yy764; + } else { + goto yy784; + } + } + } + } + } else { + if (yyaccept <= 25) { + if (yyaccept <= 21) { + if (yyaccept <= 19) { + if (yyaccept <= 18) { + if (yyaccept <= 17) { + goto yy815; + } else { + goto yy822; + } + } else { + goto yy849; + } + } else { + if (yyaccept <= 20) { + goto yy794; + } else { + goto yy455; + } + } + } else { + if (yyaccept <= 23) { + if (yyaccept <= 22) { + goto yy974; + } else { + goto yy843; + } + } else { + if (yyaccept <= 24) { + goto yy1068; + } else { + goto yy1076; + } + } + } + } else { + if (yyaccept <= 29) { + if (yyaccept <= 27) { + if (yyaccept <= 26) { + goto yy1118; + } else { + goto yy1142; + } + } else { + if (yyaccept <= 28) { + goto yy1295; + } else { + goto yy1417; + } + } + } else { + if (yyaccept <= 31) { + if (yyaccept <= 30) { + goto yy1420; + } else { + goto yy1500; + } + } else { + if (yyaccept <= 32) { + goto yy1508; + } else { + goto yy1531; + } + } + } + } + } +yy58: + YYDEBUG(58, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(59, *YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy58; + } + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy55; + goto yy57; +yy60: + YYDEBUG(60, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11); + yych = *YYCURSOR; +yy61: + YYDEBUG(61, *YYCURSOR); + if (yych <= 'W') { + if (yych <= 'F') { + if (yych <= ' ') { + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy57; + goto yy60; + } else { + if (yych == 'D') goto yy65; + if (yych <= 'E') goto yy57; + goto yy66; + } + } else { + if (yych <= 'M') { + if (yych == 'H') goto yy64; + if (yych <= 'L') goto yy57; + goto yy63; + } else { + if (yych <= 'S') { + if (yych <= 'R') goto yy57; + } else { + if (yych <= 'T') goto yy69; + if (yych <= 'V') goto yy57; + goto yy68; + } + } + } + } else { + if (yych <= 'l') { + if (yych <= 'd') { + if (yych == 'Y') goto yy67; + if (yych <= 'c') goto yy57; + goto yy65; + } else { + if (yych <= 'f') { + if (yych <= 'e') goto yy57; + goto yy66; + } else { + if (yych == 'h') goto yy64; + goto yy57; + } + } + } else { + if (yych <= 't') { + if (yych <= 'm') goto yy63; + if (yych <= 'r') goto yy57; + if (yych >= 't') goto yy69; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy57; + goto yy68; + } else { + if (yych == 'y') goto yy67; + goto yy57; + } + } + } + } +yy62: + YYDEBUG(62, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= 'D') { + if (yych == 'A') goto yy127; + goto yy57; + } else { + if (yych <= 'E') goto yy128; + if (yych <= 'T') goto yy57; + goto yy126; + } + } else { + if (yych <= 'd') { + if (yych == 'a') goto yy127; + goto yy57; + } else { + if (yych <= 'e') goto yy128; + if (yych == 'u') goto yy126; + goto yy57; + } + } +yy63: + YYDEBUG(63, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych == 'I') goto yy118; + if (yych <= 'N') goto yy57; + goto yy117; + } else { + if (yych <= 'i') { + if (yych <= 'h') goto yy57; + goto yy118; + } else { + if (yych == 'o') goto yy117; + goto yy57; + } + } +yy64: + YYDEBUG(64, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy115; + if (yych == 'o') goto yy115; + goto yy57; +yy65: + YYDEBUG(65, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy114; + if (yych == 'a') goto yy114; + goto yy57; +yy66: + YYDEBUG(66, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych == 'O') goto yy99; + if (yych <= 'Q') goto yy57; + goto yy98; + } else { + if (yych <= 'o') { + if (yych <= 'n') goto yy57; + goto yy99; + } else { + if (yych == 'r') goto yy98; + goto yy57; + } + } +yy67: + YYDEBUG(67, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy95; + if (yych == 'e') goto yy95; + goto yy57; +yy68: + YYDEBUG(68, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy83; + if (yych == 'e') goto yy83; + goto yy57; +yy69: + YYDEBUG(69, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'H') goto yy70; + if (yych <= 'T') goto yy57; + goto yy71; + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy57; + } else { + if (yych == 'u') goto yy71; + goto yy57; + } + } +yy70: + YYDEBUG(70, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy78; + if (yych == 'u') goto yy78; + goto yy57; +yy71: + YYDEBUG(71, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy72; + if (yych != 'e') goto yy57; +yy72: + YYDEBUG(72, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'S') goto yy74; + if (yych == 's') goto yy74; +yy73: + YYDEBUG(73, *YYCURSOR); + { + timelib_ull i; + DEBUG_OUTPUT("relative"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + + while(*ptr) { + i = timelib_get_unsigned_nr((char **) &ptr, 24); + timelib_eat_spaces((char **) &ptr); + timelib_set_relative((char **) &ptr, i, 1, s); + } + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +yy74: + YYDEBUG(74, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy75; + if (yych != 'd') goto yy57; +yy75: + YYDEBUG(75, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy76; + if (yych != 'a') goto yy57; +yy76: + YYDEBUG(76, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy77; + if (yych != 'y') goto yy57; +yy77: + YYDEBUG(77, *YYCURSOR); + yych = *++YYCURSOR; + goto yy73; +yy78: + YYDEBUG(78, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'R') goto yy79; + if (yych != 'r') goto yy73; +yy79: + YYDEBUG(79, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy80; + if (yych != 's') goto yy57; +yy80: + YYDEBUG(80, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy81; + if (yych != 'd') goto yy57; +yy81: + YYDEBUG(81, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy82; + if (yych != 'a') goto yy57; +yy82: + YYDEBUG(82, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy77; + if (yych == 'y') goto yy77; + goto yy57; +yy83: + YYDEBUG(83, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= 'C') goto yy57; + if (yych <= 'D') goto yy85; + } else { + if (yych <= 'c') goto yy57; + if (yych <= 'd') goto yy85; + if (yych >= 'f') goto yy57; + } + YYDEBUG(84, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'K') goto yy91; + if (yych == 'k') goto yy91; + goto yy57; +yy85: + YYDEBUG(85, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'N') goto yy86; + if (yych != 'n') goto yy73; +yy86: + YYDEBUG(86, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy87; + if (yych != 'e') goto yy57; +yy87: + YYDEBUG(87, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy88; + if (yych != 's') goto yy57; +yy88: + YYDEBUG(88, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy89; + if (yych != 'd') goto yy57; +yy89: + YYDEBUG(89, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy90; + if (yych != 'a') goto yy57; +yy90: + YYDEBUG(90, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy77; + if (yych == 'y') goto yy77; + goto yy57; +yy91: + YYDEBUG(91, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych == 'D') goto yy92; + if (yych <= 'R') goto yy73; + goto yy77; + } else { + if (yych <= 'd') { + if (yych <= 'c') goto yy73; + } else { + if (yych == 's') goto yy77; + goto yy73; + } + } +yy92: + YYDEBUG(92, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy93; + if (yych != 'a') goto yy57; +yy93: + YYDEBUG(93, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy94; + if (yych != 'y') goto yy57; +yy94: + YYDEBUG(94, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy77; + if (yych == 's') goto yy77; + goto yy73; +yy95: + YYDEBUG(95, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy96; + if (yych != 'a') goto yy57; +yy96: + YYDEBUG(96, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy97; + if (yych != 'r') goto yy57; +yy97: + YYDEBUG(97, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy77; + if (yych == 's') goto yy77; + goto yy73; +yy98: + YYDEBUG(98, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy111; + if (yych == 'i') goto yy111; + goto yy57; +yy99: + YYDEBUG(99, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy100; + if (yych != 'r') goto yy57; +yy100: + YYDEBUG(100, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy101; + if (yych != 't') goto yy57; +yy101: + YYDEBUG(101, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych == 'H') goto yy103; + if (yych <= 'M') goto yy57; + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy57; + goto yy103; + } else { + if (yych != 'n') goto yy57; + } + } + YYDEBUG(102, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy108; + if (yych == 'i') goto yy108; + goto yy57; +yy103: + YYDEBUG(103, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy104; + if (yych != 'n') goto yy57; +yy104: + YYDEBUG(104, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy105; + if (yych != 'i') goto yy57; +yy105: + YYDEBUG(105, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy106; + if (yych != 'g') goto yy57; +yy106: + YYDEBUG(106, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy107; + if (yych != 'h') goto yy57; +yy107: + YYDEBUG(107, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy97; + if (yych == 't') goto yy97; + goto yy57; +yy108: + YYDEBUG(108, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy109; + if (yych != 'g') goto yy57; +yy109: + YYDEBUG(109, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy110; + if (yych != 'h') goto yy57; +yy110: + YYDEBUG(110, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy97; + if (yych == 't') goto yy97; + goto yy57; +yy111: + YYDEBUG(111, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'D') goto yy112; + if (yych != 'd') goto yy73; +yy112: + YYDEBUG(112, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy113; + if (yych != 'a') goto yy57; +yy113: + YYDEBUG(113, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy77; + if (yych == 'y') goto yy77; + goto yy57; +yy114: + YYDEBUG(114, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy97; + if (yych == 'y') goto yy97; + goto yy57; +yy115: + YYDEBUG(115, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy116; + if (yych != 'u') goto yy57; +yy116: + YYDEBUG(116, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy97; + if (yych == 'r') goto yy97; + goto yy57; +yy117: + YYDEBUG(117, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy122; + if (yych == 'n') goto yy122; + goto yy57; +yy118: + YYDEBUG(118, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy119; + if (yych != 'n') goto yy57; +yy119: + YYDEBUG(119, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'U') { + if (yych == 'S') goto yy77; + if (yych <= 'T') goto yy73; + } else { + if (yych <= 's') { + if (yych <= 'r') goto yy73; + goto yy77; + } else { + if (yych != 'u') goto yy73; + } + } + YYDEBUG(120, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy121; + if (yych != 't') goto yy57; +yy121: + YYDEBUG(121, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy97; + if (yych == 'e') goto yy97; + goto yy57; +yy122: + YYDEBUG(122, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych == 'D') goto yy123; + if (yych <= 'S') goto yy73; + goto yy124; + } else { + if (yych <= 'd') { + if (yych <= 'c') goto yy73; + } else { + if (yych == 't') goto yy124; + goto yy73; + } + } +yy123: + YYDEBUG(123, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy125; + if (yych == 'a') goto yy125; + goto yy57; +yy124: + YYDEBUG(124, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy97; + if (yych == 'h') goto yy97; + goto yy57; +yy125: + YYDEBUG(125, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy77; + if (yych == 'y') goto yy77; + goto yy57; +yy126: + YYDEBUG(126, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy137; + if (yych == 'n') goto yy137; + goto yy57; +yy127: + YYDEBUG(127, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy132; + if (yych == 't') goto yy132; + goto yy57; +yy128: + YYDEBUG(128, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy129; + if (yych != 'c') goto yy57; +yy129: + YYDEBUG(129, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych == 'O') goto yy130; + if (yych <= 'R') goto yy73; + goto yy77; + } else { + if (yych <= 'o') { + if (yych <= 'n') goto yy73; + } else { + if (yych == 's') goto yy77; + goto yy73; + } + } +yy130: + YYDEBUG(130, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy131; + if (yych != 'n') goto yy57; +yy131: + YYDEBUG(131, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy97; + if (yych == 'd') goto yy97; + goto yy57; +yy132: + YYDEBUG(132, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'U') goto yy133; + if (yych != 'u') goto yy73; +yy133: + YYDEBUG(133, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy134; + if (yych != 'r') goto yy57; +yy134: + YYDEBUG(134, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy135; + if (yych != 'd') goto yy57; +yy135: + YYDEBUG(135, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy136; + if (yych != 'a') goto yy57; +yy136: + YYDEBUG(136, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy77; + if (yych == 'y') goto yy77; + goto yy57; +yy137: + YYDEBUG(137, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'D') goto yy138; + if (yych != 'd') goto yy73; +yy138: + YYDEBUG(138, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy139; + if (yych != 'a') goto yy57; +yy139: + YYDEBUG(139, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy77; + if (yych == 'y') goto yy77; + goto yy57; +yy140: + YYDEBUG(140, *YYCURSOR); + yych = *++YYCURSOR; + goto yy4; +yy141: + YYDEBUG(141, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + if (yych >= '{') goto yy4; + } +yy142: + YYDEBUG(142, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + if (yych >= '{') goto yy4; + } +yy143: + YYDEBUG(143, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + if (yych >= '{') goto yy4; + } +yy144: + YYDEBUG(144, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + if (yych >= '{') goto yy4; + } +yy145: + YYDEBUG(145, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ')') goto yy140; + goto yy4; +yy146: + YYDEBUG(146, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + goto yy148; + } + } else { + if (yych <= '^') { + if (yych <= '@') goto yy4; + if (yych <= 'Z') goto yy142; + goto yy4; + } else { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy4; + if (yych >= '{') goto yy4; + } + } +yy147: + YYDEBUG(147, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + } + } else { + if (yych <= '^') { + if (yych <= '@') goto yy4; + if (yych <= 'Z') goto yy143; + goto yy4; + } else { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy151; + goto yy4; + } + } +yy148: + YYDEBUG(148, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yybm[0+yych] & 8) { + goto yy149; + } + goto yy57; +yy149: + YYDEBUG(149, *YYCURSOR); + yyaccept = 0; + YYMARKER = ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(150, *YYCURSOR); + if (yybm[0+yych] & 8) { + goto yy149; + } + if (yych <= '.') { + if (yych == '-') goto yy148; + goto yy4; + } else { + if (yych <= '/') goto yy148; + if (yych == '_') goto yy148; + goto yy4; + } +yy151: + YYDEBUG(151, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + goto yy148; + } + } else { + if (yych <= '^') { + if (yych <= '@') goto yy4; + if (yych <= 'Z') goto yy144; + goto yy4; + } else { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy4; + if (yych >= '{') goto yy4; + } + } +yy152: + YYDEBUG(152, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + goto yy148; + } + } else { + if (yych <= '^') { + if (yych <= '@') goto yy4; + if (yych <= 'Z') goto yy145; + goto yy4; + } else { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy4; + if (yych >= '{') goto yy4; + } + } +yy153: + YYDEBUG(153, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy154; + } + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych <= '/') { + if (yych <= '.') goto yy4; + goto yy148; + } else { + if (yych == '_') goto yy148; + goto yy4; + } + } +yy154: + YYDEBUG(154, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy155: + YYDEBUG(155, *YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy154; + } + if (yych <= '.') { + if (yych == '-') goto yy148; + goto yy57; + } else { + if (yych <= '/') goto yy148; + if (yych == '_') goto yy148; + goto yy57; + } +yy156: + YYDEBUG(156, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy141; + goto yy4; + } +yy157: + YYDEBUG(157, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy142; + } else { + if (yych <= 'Z') { + if (yych >= 'U') goto yy142; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy142; + goto yy4; + } + } + YYDEBUG(158, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych != '+') goto yy4; + } + } else { + if (yych <= 'Z') { + if (yych <= '-') goto yy159; + if (yych <= '@') goto yy4; + goto yy143; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy159: + YYDEBUG(159, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '1') goto yy160; + if (yych <= '2') goto yy161; + if (yych <= '9') goto yy162; + goto yy57; +yy160: + YYDEBUG(160, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy4; + if (yych <= '9') goto yy162; + if (yych <= ':') goto yy163; + goto yy4; +yy161: + YYDEBUG(161, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '5') { + if (yych <= '/') goto yy4; + if (yych >= '5') goto yy164; + } else { + if (yych <= '9') goto yy140; + if (yych <= ':') goto yy163; + goto yy4; + } +yy162: + YYDEBUG(162, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy4; + if (yych <= '5') goto yy164; + if (yych <= '9') goto yy140; + if (yych >= ';') goto yy4; +yy163: + YYDEBUG(163, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy4; + if (yych <= '5') goto yy164; + if (yych <= '9') goto yy140; + goto yy4; +yy164: + YYDEBUG(164, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy4; + if (yych <= '9') goto yy140; + goto yy4; +yy165: + YYDEBUG(165, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'C') goto yy142; + if (yych >= 'E') goto yy168; + } + } else { + if (yych <= 'c') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'd') goto yy166; + if (yych <= 'e') goto yy168; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy166: + YYDEBUG(166, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= 'N') { + if (yych <= ')') { + if (yych >= ')') goto yy140; + } else { + if (yych <= '@') goto yy167; + if (yych <= 'M') goto yy143; + goto yy174; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy143; + if (yych >= 'a') goto yy143; + } else { + if (yych <= 'n') goto yy174; + if (yych <= 'z') goto yy143; + } + } +yy167: + YYDEBUG(167, *YYCURSOR); + { + const timelib_relunit* relunit; + DEBUG_OUTPUT("daytext"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_HAVE_WEEKDAY_RELATIVE(); + TIMELIB_UNHAVE_TIME(); + relunit = timelib_lookup_relunit((char**) &ptr); + s->time->relative.weekday = relunit->multiplier; + if (s->time->relative.weekday_behavior != 2) { + s->time->relative.weekday_behavior = 1; + } + + TIMELIB_DEINIT; + return TIMELIB_WEEKDAY; + } +yy168: + YYDEBUG(168, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'K') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'J') goto yy143; + } + } else { + if (yych <= 'j') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 'k') goto yy169; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy169: + YYDEBUG(169, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'C') goto yy144; + } + } else { + if (yych <= 'c') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'd') goto yy170; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy170: + YYDEBUG(170, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy145; + goto yy4; + } else { + if (yych <= 'a') goto yy171; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy171: + YYDEBUG(171, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'X') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'Y') goto yy172; + if (yych != 'y') goto yy4; + } +yy172: + YYDEBUG(172, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy173; + if (yych != 's') goto yy167; +yy173: + YYDEBUG(173, *YYCURSOR); + yych = *++YYCURSOR; + goto yy167; +yy174: + YYDEBUG(174, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy144; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'e') goto yy175; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy175: + YYDEBUG(175, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'R') goto yy145; + } + } else { + if (yych <= 'r') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 's') goto yy176; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy176: + YYDEBUG(176, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'D') goto yy177; + if (yych != 'd') goto yy4; + } +yy177: + YYDEBUG(177, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy178; + if (yych != 'a') goto yy57; +yy178: + YYDEBUG(178, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy173; + if (yych == 'y') goto yy173; + goto yy57; +yy179: + YYDEBUG(179, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych <= '/') { + if (yych <= '.') goto yy4; + goto yy148; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'C') goto yy142; + goto yy166; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'E') goto yy168; + goto yy142; + } else { + if (yych == '_') goto yy148; + goto yy4; + } + } else { + if (yych <= 'd') { + if (yych <= 'c') goto yy147; + } else { + if (yych <= 'e') goto yy181; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } + YYDEBUG(180, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy167; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy167; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'N') goto yy174; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy167; + goto yy148; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy167; + goto yy151; + } else { + if (yych <= 'n') goto yy187; + if (yych <= 'z') goto yy151; + goto yy167; + } + } + } +yy181: + YYDEBUG(181, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'J') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'K') goto yy169; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'j') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 'k') goto yy182; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy182: + YYDEBUG(182, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'D') goto yy170; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'c') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'd') goto yy183; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy183: + YYDEBUG(183, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '_') { + if (yych <= 'A') goto yy171; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'a') goto yy184; + if (yych <= 'z') goto yy153; + goto yy4; + } + } +yy184: + YYDEBUG(184, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'Y') goto yy172; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'y') goto yy185; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy185: + YYDEBUG(185, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '.') { + if (yych == '-') goto yy148; + goto yy167; + } else { + if (yych <= '/') goto yy148; + if (yych <= 'R') goto yy167; + goto yy173; + } + } else { + if (yych <= '`') { + if (yych == '_') goto yy148; + goto yy167; + } else { + if (yych == 's') goto yy186; + if (yych <= 'z') goto yy154; + goto yy167; + } + } +yy186: + YYDEBUG(186, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy154; + } + if (yych <= '.') { + if (yych == '-') goto yy148; + goto yy167; + } else { + if (yych <= '/') goto yy148; + if (yych == '_') goto yy148; + goto yy167; + } +yy187: + YYDEBUG(187, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'E') goto yy175; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'e') goto yy188; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy188: + YYDEBUG(188, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'R') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'S') goto yy176; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'r') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 's') goto yy189; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy189: + YYDEBUG(189, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'D') goto yy177; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'd') goto yy190; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy190: + YYDEBUG(190, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy178; + if (yych != 'a') goto yy155; + YYDEBUG(191, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy173; + if (yych == 'y') goto yy186; + goto yy155; +yy192: + YYDEBUG(192, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'C') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'B') goto yy142; + } + } else { + if (yych <= 'b') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'c') goto yy193; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy193: + YYDEBUG(193, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych >= '\t') goto yy196; + } else { + if (yych == ' ') goto yy196; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy140; + } else { + if (yych <= '-') goto yy197; + if (yych <= '.') goto yy196; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy196; + } else { + if (yych == 'E') goto yy202; + goto yy143; + } + } else { + if (yych <= 'd') { + if (yych >= 'a') goto yy143; + } else { + if (yych <= 'e') goto yy202; + if (yych <= 'z') goto yy143; + } + } + } +yy194: + YYDEBUG(194, *YYCURSOR); + { + DEBUG_OUTPUT("monthtext"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_lookup_month((char **) &ptr); + TIMELIB_DEINIT; + return TIMELIB_DATE_TEXT; + } +yy195: + YYDEBUG(195, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 21) YYFILL(21); + yych = *YYCURSOR; +yy196: + YYDEBUG(196, *YYCURSOR); + if (yybm[0+yych] & 32) { + goto yy195; + } + if (yych <= '/') goto yy57; + if (yych <= '2') goto yy198; + if (yych <= '3') goto yy200; + if (yych <= '9') goto yy201; + goto yy57; +yy197: + YYDEBUG(197, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy196; + if (yych <= '0') goto yy357; + if (yych <= '2') goto yy358; + if (yych <= '3') goto yy359; + goto yy196; +yy198: + YYDEBUG(198, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'm') { + if (yych <= '1') { + if (yych <= '/') goto yy216; + if (yych <= '0') goto yy298; + goto yy299; + } else { + if (yych <= '2') goto yy355; + if (yych <= '9') goto yy356; + goto yy216; + } + } else { + if (yych <= 'r') { + if (yych <= 'n') goto yy212; + if (yych <= 'q') goto yy216; + goto yy213; + } else { + if (yych <= 's') goto yy211; + if (yych <= 't') goto yy214; + goto yy216; + } + } +yy199: + YYDEBUG(199, *YYCURSOR); + { + int length = 0; + DEBUG_OUTPUT("datetextual | datenoyear"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month((char **) &ptr); + s->time->d = timelib_get_nr((char **) &ptr, 2); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_TEXT; + } +yy200: + YYDEBUG(200, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'm') { + if (yych <= '1') { + if (yych <= '/') goto yy216; + if (yych <= '0') goto yy298; + goto yy299; + } else { + if (yych <= '2') goto yy209; + if (yych <= '9') goto yy210; + goto yy216; + } + } else { + if (yych <= 'r') { + if (yych <= 'n') goto yy212; + if (yych <= 'q') goto yy216; + goto yy213; + } else { + if (yych <= 's') goto yy211; + if (yych <= 't') goto yy214; + goto yy216; + } + } +yy201: + YYDEBUG(201, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'm') { + if (yych <= '1') { + if (yych <= '/') goto yy216; + if (yych <= '0') goto yy207; + goto yy208; + } else { + if (yych <= '2') goto yy209; + if (yych <= '9') goto yy210; + goto yy216; + } + } else { + if (yych <= 'r') { + if (yych <= 'n') goto yy212; + if (yych <= 'q') goto yy216; + goto yy213; + } else { + if (yych <= 's') goto yy211; + if (yych <= 't') goto yy214; + goto yy216; + } + } +yy202: + YYDEBUG(202, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'M') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'L') goto yy144; + } + } else { + if (yych <= 'l') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'm') goto yy203; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy203: + YYDEBUG(203, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'B') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'A') goto yy145; + } + } else { + if (yych <= 'a') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'b') goto yy204; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy204: + YYDEBUG(204, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'E') goto yy205; + if (yych != 'e') goto yy4; + } +yy205: + YYDEBUG(205, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy206; + if (yych != 'r') goto yy57; +yy206: + YYDEBUG(206, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy194; + goto yy196; + } else { + if (yych <= '.') { + if (yych <= ',') goto yy194; + goto yy196; + } else { + if (yych <= '/') goto yy194; + if (yych <= '9') goto yy196; + goto yy194; + } + } +yy207: + YYDEBUG(207, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy221; + goto yy57; + } else { + if (yych <= '0') goto yy296; + if (yych <= '9') goto yy297; + if (yych <= ':') goto yy221; + goto yy57; + } +yy208: + YYDEBUG(208, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy264; + goto yy57; + } else { + if (yych <= '2') goto yy297; + if (yych <= '9') goto yy296; + if (yych <= ':') goto yy264; + goto yy57; + } +yy209: + YYDEBUG(209, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy264; + goto yy57; + } else { + if (yych <= '4') goto yy296; + if (yych <= '9') goto yy293; + if (yych <= ':') goto yy264; + goto yy57; + } +yy210: + YYDEBUG(210, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy264; + goto yy57; + } else { + if (yych <= '9') goto yy293; + if (yych <= ':') goto yy264; + goto yy57; + } +yy211: + YYDEBUG(211, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + goto yy216; +yy212: + YYDEBUG(212, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + goto yy216; +yy213: + YYDEBUG(213, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + goto yy216; +yy214: + YYDEBUG(214, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + goto yy216; +yy215: + YYDEBUG(215, *YYCURSOR); + yyaccept = 6; + YYMARKER = ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 18) YYFILL(18); + yych = *YYCURSOR; +yy216: + YYDEBUG(216, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy215; + } + if (yych <= '2') { + if (yych <= '/') goto yy199; + if (yych <= '0') goto yy259; + if (yych <= '1') goto yy260; + goto yy261; + } else { + if (yych <= '9') goto yy262; + if (yych != 'T') goto yy199; + } + YYDEBUG(217, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '1') goto yy218; + if (yych <= '2') goto yy219; + if (yych <= '9') goto yy220; + goto yy57; +yy218: + YYDEBUG(218, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy221; + goto yy57; + } else { + if (yych <= '9') goto yy220; + if (yych <= ':') goto yy221; + goto yy57; + } +yy219: + YYDEBUG(219, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy221; + goto yy57; + } else { + if (yych <= '4') goto yy220; + if (yych == ':') goto yy221; + goto yy57; + } +yy220: + YYDEBUG(220, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '.') goto yy221; + if (yych != ':') goto yy57; +yy221: + YYDEBUG(221, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy222; + if (yych <= '9') goto yy224; + goto yy57; +yy222: + YYDEBUG(222, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy225; + } else { + if (yych <= '9') goto yy224; + if (yych <= ':') goto yy225; + } +yy223: + YYDEBUG(223, *YYCURSOR); + { + int tz_not_found; + DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month((char **) &ptr); + s->time->d = timelib_get_nr((char **) &ptr, 2); + + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + if (*ptr == ':') { + s->time->s = timelib_get_nr((char **) &ptr, 2); + + if (*ptr == '.') { + s->time->f = timelib_get_frac_nr((char **) &ptr, 8); + } + } + + if (*ptr != '\0') { + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, "The timezone could not be found in the database"); + } + } + TIMELIB_DEINIT; + return TIMELIB_SHORTDATE_WITH_TIME; + } +yy224: + YYDEBUG(224, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy225; + if (yych != ':') goto yy223; +yy225: + YYDEBUG(225, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy226; + if (yych <= '6') goto yy227; + if (yych <= '9') goto yy228; + goto yy57; +yy226: + YYDEBUG(226, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy223; + if (yych <= '9') goto yy229; + goto yy223; +yy227: + YYDEBUG(227, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '0') goto yy229; + goto yy223; +yy228: + YYDEBUG(228, *YYCURSOR); + yych = *++YYCURSOR; + goto yy223; +yy229: + YYDEBUG(229, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '*') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy231; + goto yy223; + } else { + if (yych <= ' ') goto yy231; + if (yych == '(') goto yy231; + goto yy223; + } + } else { + if (yych <= '@') { + if (yych == ',') goto yy223; + if (yych <= '-') goto yy231; + goto yy223; + } else { + if (yych <= 'Z') goto yy231; + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy231; + goto yy223; + } + } +yy230: + YYDEBUG(230, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); + yych = *YYCURSOR; +yy231: + YYDEBUG(231, *YYCURSOR); + if (yych <= '+') { + if (yych <= ' ') { + if (yych == '\t') goto yy230; + if (yych <= 0x1F) goto yy57; + goto yy230; + } else { + if (yych == '(') goto yy234; + if (yych <= '*') goto yy57; + goto yy233; + } + } else { + if (yych <= 'F') { + if (yych == '-') goto yy233; + if (yych <= '@') goto yy57; + goto yy235; + } else { + if (yych <= 'Z') { + if (yych >= 'H') goto yy235; + } else { + if (yych <= '`') goto yy57; + if (yych <= 'z') goto yy236; + goto yy57; + } + } + } +yy232: + YYDEBUG(232, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych == ')') goto yy228; + if (yych <= '@') goto yy223; + goto yy237; + } else { + if (yych <= 'Z') { + if (yych <= 'M') goto yy257; + goto yy237; + } else { + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy242; + goto yy223; + } + } +yy233: + YYDEBUG(233, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '1') goto yy252; + if (yych <= '2') goto yy253; + if (yych <= '9') goto yy254; + goto yy57; +yy234: + YYDEBUG(234, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') goto yy57; + if (yych <= 'Z') goto yy236; + if (yych <= '`') goto yy57; + if (yych <= 'z') goto yy236; + goto yy57; +yy235: + YYDEBUG(235, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych <= 'Z') goto yy237; + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy242; + goto yy223; + } +yy236: + YYDEBUG(236, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych <= 'Z') goto yy237; + if (yych <= '`') goto yy223; + if (yych >= '{') goto yy223; + } +yy237: + YYDEBUG(237, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych <= 'Z') goto yy238; + if (yych <= '`') goto yy223; + if (yych >= '{') goto yy223; + } +yy238: + YYDEBUG(238, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych <= 'Z') goto yy239; + if (yych <= '`') goto yy223; + if (yych >= '{') goto yy223; + } +yy239: + YYDEBUG(239, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych <= 'Z') goto yy240; + if (yych <= '`') goto yy223; + if (yych >= '{') goto yy223; + } +yy240: + YYDEBUG(240, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych <= 'Z') goto yy241; + if (yych <= '`') goto yy223; + if (yych >= '{') goto yy223; + } +yy241: + YYDEBUG(241, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ')') goto yy228; + goto yy223; +yy242: + YYDEBUG(242, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych == '.') goto yy223; + goto yy244; + } + } else { + if (yych <= '^') { + if (yych <= '@') goto yy223; + if (yych <= 'Z') goto yy238; + goto yy223; + } else { + if (yych <= '_') goto yy244; + if (yych <= '`') goto yy223; + if (yych >= '{') goto yy223; + } + } +yy243: + YYDEBUG(243, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych == '.') goto yy223; + } + } else { + if (yych <= '^') { + if (yych <= '@') goto yy223; + if (yych <= 'Z') goto yy239; + goto yy223; + } else { + if (yych <= '_') goto yy244; + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy247; + goto yy223; + } + } +yy244: + YYDEBUG(244, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych <= '@') goto yy57; + if (yych <= 'Z') goto yy245; + if (yych <= '`') goto yy57; + if (yych >= '{') goto yy57; +yy245: + YYDEBUG(245, *YYCURSOR); + yyaccept = 7; + YYMARKER = ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(246, *YYCURSOR); + if (yych <= '@') { + if (yych <= '-') { + if (yych <= ',') goto yy223; + goto yy244; + } else { + if (yych == '/') goto yy244; + goto yy223; + } + } else { + if (yych <= '_') { + if (yych <= 'Z') goto yy245; + if (yych <= '^') goto yy223; + goto yy244; + } else { + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy245; + goto yy223; + } + } +yy247: + YYDEBUG(247, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych == '.') goto yy223; + goto yy244; + } + } else { + if (yych <= '^') { + if (yych <= '@') goto yy223; + if (yych <= 'Z') goto yy240; + goto yy223; + } else { + if (yych <= '_') goto yy244; + if (yych <= '`') goto yy223; + if (yych >= '{') goto yy223; + } + } + YYDEBUG(248, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych == '.') goto yy223; + goto yy244; + } + } else { + if (yych <= '^') { + if (yych <= '@') goto yy223; + if (yych <= 'Z') goto yy241; + goto yy223; + } else { + if (yych <= '_') goto yy244; + if (yych <= '`') goto yy223; + if (yych >= '{') goto yy223; + } + } + YYDEBUG(249, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy223; + goto yy228; + } else { + if (yych == '-') goto yy244; + goto yy223; + } + } else { + if (yych <= '_') { + if (yych <= '/') goto yy244; + if (yych <= '^') goto yy223; + goto yy244; + } else { + if (yych <= '`') goto yy223; + if (yych >= '{') goto yy223; + } + } +yy250: + YYDEBUG(250, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(251, *YYCURSOR); + if (yych <= '/') { + if (yych == '-') goto yy244; + if (yych <= '.') goto yy57; + goto yy244; + } else { + if (yych <= '_') { + if (yych <= '^') goto yy57; + goto yy244; + } else { + if (yych <= '`') goto yy57; + if (yych <= 'z') goto yy250; + goto yy57; + } + } +yy252: + YYDEBUG(252, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy223; + if (yych <= '9') goto yy254; + if (yych <= ':') goto yy255; + goto yy223; +yy253: + YYDEBUG(253, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '5') { + if (yych <= '/') goto yy223; + if (yych >= '5') goto yy256; + } else { + if (yych <= '9') goto yy228; + if (yych <= ':') goto yy255; + goto yy223; + } +yy254: + YYDEBUG(254, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy223; + if (yych <= '5') goto yy256; + if (yych <= '9') goto yy228; + if (yych >= ';') goto yy223; +yy255: + YYDEBUG(255, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy223; + if (yych <= '5') goto yy256; + if (yych <= '9') goto yy228; + goto yy223; +yy256: + YYDEBUG(256, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy223; + if (yych <= '9') goto yy228; + goto yy223; +yy257: + YYDEBUG(257, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych == ')') goto yy228; + if (yych <= '@') goto yy223; + goto yy238; + } else { + if (yych <= 'Z') { + if (yych >= 'U') goto yy238; + } else { + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy238; + goto yy223; + } + } + YYDEBUG(258, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= ')') { + if (yych <= '(') goto yy223; + goto yy228; + } else { + if (yych == '+') goto yy233; + goto yy223; + } + } else { + if (yych <= 'Z') { + if (yych <= '-') goto yy233; + if (yych <= '@') goto yy223; + goto yy239; + } else { + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy239; + goto yy223; + } + } +yy259: + YYDEBUG(259, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy221; + goto yy199; + } else { + if (yych <= '0') goto yy291; + if (yych <= '9') goto yy292; + if (yych <= ':') goto yy221; + goto yy199; + } +yy260: + YYDEBUG(260, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy264; + goto yy199; + } else { + if (yych <= '2') goto yy292; + if (yych <= '9') goto yy291; + if (yych <= ':') goto yy264; + goto yy199; + } +yy261: + YYDEBUG(261, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy264; + goto yy199; + } else { + if (yych <= '4') goto yy291; + if (yych <= '9') goto yy263; + if (yych <= ':') goto yy264; + goto yy199; + } +yy262: + YYDEBUG(262, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy264; + goto yy199; + } else { + if (yych <= '9') goto yy263; + if (yych <= ':') goto yy264; + goto yy199; + } +yy263: + YYDEBUG(263, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy199; + if (yych <= '9') goto yy289; + goto yy199; +yy264: + YYDEBUG(264, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy265; + if (yych <= '9') goto yy266; + goto yy57; +yy265: + YYDEBUG(265, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy267; + goto yy223; + } else { + if (yych <= '9') goto yy282; + if (yych <= ':') goto yy267; + goto yy223; + } +yy266: + YYDEBUG(266, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy267; + if (yych != ':') goto yy223; +yy267: + YYDEBUG(267, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy268; + if (yych <= '6') goto yy269; + if (yych <= '9') goto yy228; + goto yy57; +yy268: + YYDEBUG(268, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy223; + if (yych <= '9') goto yy270; + goto yy223; +yy269: + YYDEBUG(269, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '0') goto yy223; +yy270: + YYDEBUG(270, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '*') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy272; + goto yy223; + } else { + if (yych <= ' ') goto yy272; + if (yych == '(') goto yy272; + goto yy223; + } + } else { + if (yych <= '@') { + if (yych == ',') goto yy223; + if (yych <= '-') goto yy272; + goto yy223; + } else { + if (yych <= 'Z') goto yy272; + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy272; + goto yy223; + } + } +yy271: + YYDEBUG(271, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); + yych = *YYCURSOR; +yy272: + YYDEBUG(272, *YYCURSOR); + if (yych <= '@') { + if (yych <= '\'') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy57; + goto yy271; + } else { + if (yych == ' ') goto yy271; + goto yy57; + } + } else { + if (yych <= '+') { + if (yych <= '(') goto yy234; + if (yych <= '*') goto yy57; + goto yy233; + } else { + if (yych == '-') goto yy233; + goto yy57; + } + } + } else { + if (yych <= 'Z') { + if (yych <= 'G') { + if (yych <= 'A') goto yy273; + if (yych <= 'F') goto yy235; + goto yy232; + } else { + if (yych != 'P') goto yy235; + } + } else { + if (yych <= 'o') { + if (yych <= '`') goto yy57; + if (yych <= 'a') goto yy274; + goto yy236; + } else { + if (yych <= 'p') goto yy274; + if (yych <= 'z') goto yy236; + goto yy57; + } + } + } +yy273: + YYDEBUG(273, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'L') { + if (yych <= '-') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych <= '.') goto yy275; + if (yych <= '@') goto yy223; + goto yy237; + } + } else { + if (yych <= '`') { + if (yych <= 'M') goto yy276; + if (yych <= 'Z') goto yy237; + goto yy223; + } else { + if (yych == 'm') goto yy281; + if (yych <= 'z') goto yy242; + goto yy223; + } + } +yy274: + YYDEBUG(274, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'L') { + if (yych <= '-') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych <= '.') goto yy275; + if (yych <= '@') goto yy223; + goto yy237; + } + } else { + if (yych <= '`') { + if (yych <= 'M') goto yy276; + if (yych <= 'Z') goto yy237; + goto yy223; + } else { + if (yych == 'm') goto yy276; + if (yych <= 'z') goto yy237; + goto yy223; + } + } +yy275: + YYDEBUG(275, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy280; + if (yych == 'm') goto yy280; + goto yy57; +yy276: + YYDEBUG(276, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ')') { + if (yych <= '\t') { + if (yych <= 0x00) goto yy278; + if (yych <= 0x08) goto yy223; + goto yy278; + } else { + if (yych == ' ') goto yy278; + if (yych <= '(') goto yy223; + goto yy228; + } + } else { + if (yych <= '@') { + if (yych != '.') goto yy223; + } else { + if (yych <= 'Z') goto yy238; + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy238; + goto yy223; + } + } +yy277: + YYDEBUG(277, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\t') { + if (yych <= 0x00) goto yy278; + if (yych <= 0x08) goto yy57; + } else { + if (yych != ' ') goto yy57; + } +yy278: + YYDEBUG(278, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(279, *YYCURSOR); + { + DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month((char **) &ptr); + s->time->d = timelib_get_nr((char **) &ptr, 2); + + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->s = timelib_get_nr((char **) &ptr, 2); + + if (*ptr == '.') { + s->time->f = timelib_get_frac_nr((char **) &ptr, 8); + } + } + + s->time->h += timelib_meridian((char **) &ptr, s->time->h); + TIMELIB_DEINIT; + return TIMELIB_SHORTDATE_WITH_TIME; + } +yy280: + YYDEBUG(280, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy278; + if (yych == '\t') goto yy278; + goto yy57; + } else { + if (yych <= ' ') goto yy278; + if (yych == '.') goto yy277; + goto yy57; + } +yy281: + YYDEBUG(281, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '-') { + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy278; + if (yych == '\t') goto yy278; + goto yy223; + } else { + if (yych <= '(') { + if (yych <= ' ') goto yy278; + goto yy223; + } else { + if (yych <= ')') goto yy228; + if (yych <= ',') goto yy223; + goto yy244; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '.') goto yy277; + if (yych <= '/') goto yy244; + if (yych <= '@') goto yy223; + goto yy238; + } else { + if (yych <= '_') { + if (yych <= '^') goto yy223; + goto yy244; + } else { + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy243; + goto yy223; + } + } + } +yy282: + YYDEBUG(282, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ':') { + if (yych <= ' ') { + if (yych == '\t') goto yy283; + if (yych <= 0x1F) goto yy223; + } else { + if (yych == '.') goto yy267; + if (yych <= '9') goto yy223; + goto yy267; + } + } else { + if (yych <= 'P') { + if (yych == 'A') goto yy285; + if (yych <= 'O') goto yy223; + goto yy285; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy223; + goto yy285; + } else { + if (yych == 'p') goto yy285; + goto yy223; + } + } + } +yy283: + YYDEBUG(283, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + YYDEBUG(284, *YYCURSOR); + if (yych <= 'A') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy283; + goto yy57; + } else { + if (yych <= ' ') goto yy283; + if (yych <= '@') goto yy57; + } + } else { + if (yych <= '`') { + if (yych != 'P') goto yy57; + } else { + if (yych <= 'a') goto yy285; + if (yych != 'p') goto yy57; + } + } +yy285: + YYDEBUG(285, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych != '.') goto yy57; + } else { + if (yych <= 'M') goto yy287; + if (yych == 'm') goto yy287; + goto yy57; + } +yy286: + YYDEBUG(286, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy287; + if (yych != 'm') goto yy57; +yy287: + YYDEBUG(287, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy278; + if (yych == '\t') goto yy278; + goto yy57; + } else { + if (yych <= ' ') goto yy278; + if (yych != '.') goto yy57; + } +yy288: + YYDEBUG(288, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\t') { + if (yych <= 0x00) goto yy278; + if (yych <= 0x08) goto yy57; + goto yy278; + } else { + if (yych == ' ') goto yy278; + goto yy57; + } +yy289: + YYDEBUG(289, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy199; + if (yych >= ':') goto yy199; + YYDEBUG(290, *YYCURSOR); + yych = *++YYCURSOR; + goto yy199; +yy291: + YYDEBUG(291, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy221; + goto yy199; + } else { + if (yych <= '9') goto yy289; + if (yych <= ':') goto yy221; + goto yy199; + } +yy292: + YYDEBUG(292, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy264; + goto yy199; + } else { + if (yych <= '9') goto yy289; + if (yych <= ':') goto yy264; + goto yy199; + } +yy293: + YYDEBUG(293, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; +yy294: + YYDEBUG(294, *YYCURSOR); + ++YYCURSOR; +yy295: + YYDEBUG(295, *YYCURSOR); + { + int length = 0; + DEBUG_OUTPUT("datenoday"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month((char **) &ptr); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + s->time->d = 1; + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_NO_DAY; + } +yy296: + YYDEBUG(296, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy221; + goto yy57; + } else { + if (yych <= '9') goto yy294; + if (yych <= ':') goto yy221; + goto yy57; + } +yy297: + YYDEBUG(297, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy264; + goto yy57; + } else { + if (yych <= '9') goto yy294; + if (yych <= ':') goto yy264; + goto yy57; + } +yy298: + YYDEBUG(298, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '/') { + if (yych == '.') goto yy331; + goto yy216; + } else { + if (yych <= '0') goto yy332; + if (yych <= '1') goto yy302; + if (yych <= '2') goto yy303; + goto yy297; + } + } else { + if (yych <= 'q') { + if (yych <= ':') goto yy221; + if (yych == 'n') goto yy212; + goto yy216; + } else { + if (yych <= 'r') goto yy213; + if (yych <= 's') goto yy211; + if (yych <= 't') goto yy214; + goto yy216; + } + } +yy299: + YYDEBUG(299, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '/') { + if (yych != '.') goto yy216; + } else { + if (yych <= '0') goto yy301; + if (yych <= '1') goto yy302; + if (yych <= '2') goto yy303; + goto yy297; + } + } else { + if (yych <= 'q') { + if (yych <= ':') goto yy264; + if (yych == 'n') goto yy212; + goto yy216; + } else { + if (yych <= 'r') goto yy213; + if (yych <= 's') goto yy211; + if (yych <= 't') goto yy214; + goto yy216; + } + } +yy300: + YYDEBUG(300, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '1') { + if (yych <= '/') goto yy216; + if (yych <= '0') goto yy306; + goto yy307; + } else { + if (yych <= '2') goto yy308; + if (yych <= '5') goto yy309; + if (yych <= '9') goto yy310; + goto yy216; + } +yy301: + YYDEBUG(301, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy264; + goto yy57; + } else { + if (yych <= '0') goto yy304; + if (yych <= '9') goto yy305; + if (yych <= ':') goto yy264; + goto yy57; + } +yy302: + YYDEBUG(302, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy264; + goto yy57; + } else { + if (yych <= '2') goto yy305; + if (yych <= '9') goto yy304; + if (yych <= ':') goto yy264; + goto yy57; + } +yy303: + YYDEBUG(303, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy264; + goto yy57; + } else { + if (yych <= '4') goto yy304; + if (yych <= '9') goto yy294; + if (yych <= ':') goto yy264; + goto yy57; + } +yy304: + YYDEBUG(304, *YYCURSOR); + yyaccept = 8; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy221; + if (yych == ':') goto yy221; + goto yy295; +yy305: + YYDEBUG(305, *YYCURSOR); + yyaccept = 8; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy264; + if (yych == ':') goto yy264; + goto yy295; +yy306: + YYDEBUG(306, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy326; + goto yy199; + } else { + if (yych <= '0') goto yy325; + if (yych <= '9') goto yy330; + if (yych <= ':') goto yy326; + goto yy199; + } +yy307: + YYDEBUG(307, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy311; + goto yy199; + } else { + if (yych <= '2') goto yy330; + if (yych <= '9') goto yy325; + if (yych <= ':') goto yy311; + goto yy199; + } +yy308: + YYDEBUG(308, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy311; + goto yy199; + } else { + if (yych <= '4') goto yy325; + if (yych <= '9') goto yy324; + if (yych <= ':') goto yy311; + goto yy199; + } +yy309: + YYDEBUG(309, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy311; + goto yy199; + } else { + if (yych <= '9') goto yy324; + if (yych <= ':') goto yy311; + goto yy199; + } +yy310: + YYDEBUG(310, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych != '.') goto yy199; + } else { + if (yych <= '9') goto yy263; + if (yych >= ';') goto yy199; + } +yy311: + YYDEBUG(311, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy312; + if (yych <= '6') goto yy313; + if (yych <= '9') goto yy266; + goto yy57; +yy312: + YYDEBUG(312, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy267; + goto yy223; + } else { + if (yych <= '9') goto yy314; + if (yych <= ':') goto yy267; + goto yy223; + } +yy313: + YYDEBUG(313, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy267; + goto yy223; + } else { + if (yych <= '0') goto yy270; + if (yych == ':') goto yy267; + goto yy223; + } +yy314: + YYDEBUG(314, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= ' ') { + if (yych == '\t') goto yy316; + if (yych <= 0x1F) goto yy223; + goto yy316; + } else { + if (yych <= '(') { + if (yych <= '\'') goto yy223; + goto yy316; + } else { + if (yych == '+') goto yy316; + goto yy223; + } + } + } else { + if (yych <= ':') { + if (yych <= '-') goto yy316; + if (yych <= '.') goto yy267; + if (yych <= '9') goto yy223; + goto yy267; + } else { + if (yych <= 'Z') { + if (yych <= '@') goto yy223; + goto yy316; + } else { + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy316; + goto yy223; + } + } + } +yy315: + YYDEBUG(315, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); + yych = *YYCURSOR; +yy316: + YYDEBUG(316, *YYCURSOR); + if (yych <= '@') { + if (yych <= '\'') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy57; + goto yy315; + } else { + if (yych == ' ') goto yy315; + goto yy57; + } + } else { + if (yych <= '+') { + if (yych <= '(') goto yy234; + if (yych <= '*') goto yy57; + goto yy233; + } else { + if (yych == '-') goto yy233; + goto yy57; + } + } + } else { + if (yych <= 'Z') { + if (yych <= 'G') { + if (yych <= 'A') goto yy317; + if (yych <= 'F') goto yy235; + goto yy232; + } else { + if (yych != 'P') goto yy235; + } + } else { + if (yych <= 'o') { + if (yych <= '`') goto yy57; + if (yych <= 'a') goto yy318; + goto yy236; + } else { + if (yych <= 'p') goto yy318; + if (yych <= 'z') goto yy236; + goto yy57; + } + } + } +yy317: + YYDEBUG(317, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'L') { + if (yych <= '-') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych <= '.') goto yy320; + if (yych <= '@') goto yy223; + goto yy237; + } + } else { + if (yych <= '`') { + if (yych <= 'M') goto yy319; + if (yych <= 'Z') goto yy237; + goto yy223; + } else { + if (yych == 'm') goto yy323; + if (yych <= 'z') goto yy242; + goto yy223; + } + } +yy318: + YYDEBUG(318, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'L') { + if (yych <= '-') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych <= '.') goto yy320; + if (yych <= '@') goto yy223; + goto yy237; + } + } else { + if (yych <= '`') { + if (yych <= 'M') goto yy319; + if (yych <= 'Z') goto yy237; + goto yy223; + } else { + if (yych == 'm') goto yy319; + if (yych <= 'z') goto yy237; + goto yy223; + } + } +yy319: + YYDEBUG(319, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ')') { + if (yych <= '\t') { + if (yych <= 0x00) goto yy278; + if (yych <= 0x08) goto yy223; + goto yy278; + } else { + if (yych == ' ') goto yy278; + if (yych <= '(') goto yy223; + goto yy228; + } + } else { + if (yych <= '@') { + if (yych == '.') goto yy322; + goto yy223; + } else { + if (yych <= 'Z') goto yy238; + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy238; + goto yy223; + } + } +yy320: + YYDEBUG(320, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy321; + if (yych != 'm') goto yy57; +yy321: + YYDEBUG(321, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy278; + if (yych == '\t') goto yy278; + goto yy57; + } else { + if (yych <= ' ') goto yy278; + if (yych != '.') goto yy57; + } +yy322: + YYDEBUG(322, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\t') { + if (yych <= 0x00) goto yy278; + if (yych <= 0x08) goto yy57; + goto yy278; + } else { + if (yych == ' ') goto yy278; + goto yy57; + } +yy323: + YYDEBUG(323, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '-') { + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy278; + if (yych == '\t') goto yy278; + goto yy223; + } else { + if (yych <= '(') { + if (yych <= ' ') goto yy278; + goto yy223; + } else { + if (yych <= ')') goto yy228; + if (yych <= ',') goto yy223; + goto yy244; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '.') goto yy322; + if (yych <= '/') goto yy244; + if (yych <= '@') goto yy223; + goto yy238; + } else { + if (yych <= '_') { + if (yych <= '^') goto yy223; + goto yy244; + } else { + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy243; + goto yy223; + } + } + } +yy324: + YYDEBUG(324, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ':') { + if (yych <= ' ') { + if (yych == '\t') goto yy283; + if (yych <= 0x1F) goto yy199; + goto yy283; + } else { + if (yych <= '.') { + if (yych <= '-') goto yy199; + goto yy267; + } else { + if (yych <= '/') goto yy199; + if (yych <= '9') goto yy289; + goto yy267; + } + } + } else { + if (yych <= 'P') { + if (yych == 'A') goto yy285; + if (yych <= 'O') goto yy199; + goto yy285; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy199; + goto yy285; + } else { + if (yych == 'p') goto yy285; + goto yy199; + } + } + } +yy325: + YYDEBUG(325, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ':') { + if (yych <= ' ') { + if (yych == '\t') goto yy283; + if (yych <= 0x1F) goto yy199; + goto yy283; + } else { + if (yych <= '.') { + if (yych <= '-') goto yy199; + } else { + if (yych <= '/') goto yy199; + if (yych <= '9') goto yy289; + } + } + } else { + if (yych <= 'P') { + if (yych == 'A') goto yy285; + if (yych <= 'O') goto yy199; + goto yy285; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy199; + goto yy285; + } else { + if (yych == 'p') goto yy285; + goto yy199; + } + } + } +yy326: + YYDEBUG(326, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy327; + if (yych <= '6') goto yy328; + if (yych <= '9') goto yy224; + goto yy57; +yy327: + YYDEBUG(327, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy225; + goto yy223; + } else { + if (yych <= '9') goto yy329; + if (yych <= ':') goto yy225; + goto yy223; + } +yy328: + YYDEBUG(328, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy225; + goto yy223; + } else { + if (yych <= '0') goto yy270; + if (yych == ':') goto yy225; + goto yy223; + } +yy329: + YYDEBUG(329, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= ' ') { + if (yych == '\t') goto yy272; + if (yych <= 0x1F) goto yy223; + goto yy272; + } else { + if (yych <= '(') { + if (yych <= '\'') goto yy223; + goto yy272; + } else { + if (yych == '+') goto yy272; + goto yy223; + } + } + } else { + if (yych <= ':') { + if (yych <= '-') goto yy272; + if (yych <= '.') goto yy225; + if (yych <= '9') goto yy223; + goto yy225; + } else { + if (yych <= 'Z') { + if (yych <= '@') goto yy223; + goto yy272; + } else { + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy272; + goto yy223; + } + } + } +yy330: + YYDEBUG(330, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ':') { + if (yych <= ' ') { + if (yych == '\t') goto yy283; + if (yych <= 0x1F) goto yy199; + goto yy283; + } else { + if (yych <= '.') { + if (yych <= '-') goto yy199; + goto yy311; + } else { + if (yych <= '/') goto yy199; + if (yych <= '9') goto yy289; + goto yy311; + } + } + } else { + if (yych <= 'P') { + if (yych == 'A') goto yy285; + if (yych <= 'O') goto yy199; + goto yy285; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy199; + goto yy285; + } else { + if (yych == 'p') goto yy285; + goto yy199; + } + } + } +yy331: + YYDEBUG(331, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '1') { + if (yych <= '/') goto yy216; + if (yych <= '0') goto yy333; + goto yy334; + } else { + if (yych <= '2') goto yy335; + if (yych <= '5') goto yy336; + if (yych <= '9') goto yy337; + goto yy216; + } +yy332: + YYDEBUG(332, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy221; + goto yy57; + } else { + if (yych <= '0') goto yy304; + if (yych <= '9') goto yy305; + if (yych <= ':') goto yy221; + goto yy57; + } +yy333: + YYDEBUG(333, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy350; + goto yy199; + } else { + if (yych <= '0') goto yy349; + if (yych <= '9') goto yy354; + if (yych <= ':') goto yy350; + goto yy199; + } +yy334: + YYDEBUG(334, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy338; + goto yy199; + } else { + if (yych <= '2') goto yy354; + if (yych <= '9') goto yy349; + if (yych <= ':') goto yy338; + goto yy199; + } +yy335: + YYDEBUG(335, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy338; + goto yy199; + } else { + if (yych <= '4') goto yy349; + if (yych <= '9') goto yy348; + if (yych <= ':') goto yy338; + goto yy199; + } +yy336: + YYDEBUG(336, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy338; + goto yy199; + } else { + if (yych <= '9') goto yy348; + if (yych <= ':') goto yy338; + goto yy199; + } +yy337: + YYDEBUG(337, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych != '.') goto yy199; + } else { + if (yych <= '9') goto yy263; + if (yych >= ';') goto yy199; + } +yy338: + YYDEBUG(338, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy339; + if (yych <= '6') goto yy340; + if (yych <= '9') goto yy266; + goto yy57; +yy339: + YYDEBUG(339, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy267; + goto yy223; + } else { + if (yych <= '9') goto yy341; + if (yych <= ':') goto yy267; + goto yy223; + } +yy340: + YYDEBUG(340, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy267; + goto yy223; + } else { + if (yych <= '0') goto yy229; + if (yych == ':') goto yy267; + goto yy223; + } +yy341: + YYDEBUG(341, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= ' ') { + if (yych == '\t') goto yy343; + if (yych <= 0x1F) goto yy223; + goto yy343; + } else { + if (yych <= '(') { + if (yych <= '\'') goto yy223; + goto yy343; + } else { + if (yych == '+') goto yy343; + goto yy223; + } + } + } else { + if (yych <= ':') { + if (yych <= '-') goto yy343; + if (yych <= '.') goto yy267; + if (yych <= '9') goto yy223; + goto yy267; + } else { + if (yych <= 'Z') { + if (yych <= '@') goto yy223; + goto yy343; + } else { + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy343; + goto yy223; + } + } + } +yy342: + YYDEBUG(342, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); + yych = *YYCURSOR; +yy343: + YYDEBUG(343, *YYCURSOR); + if (yych <= '@') { + if (yych <= '\'') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy57; + goto yy342; + } else { + if (yych == ' ') goto yy342; + goto yy57; + } + } else { + if (yych <= '+') { + if (yych <= '(') goto yy234; + if (yych <= '*') goto yy57; + goto yy233; + } else { + if (yych == '-') goto yy233; + goto yy57; + } + } + } else { + if (yych <= 'Z') { + if (yych <= 'G') { + if (yych <= 'A') goto yy344; + if (yych <= 'F') goto yy235; + goto yy232; + } else { + if (yych != 'P') goto yy235; + } + } else { + if (yych <= 'o') { + if (yych <= '`') goto yy57; + if (yych <= 'a') goto yy345; + goto yy236; + } else { + if (yych <= 'p') goto yy345; + if (yych <= 'z') goto yy236; + goto yy57; + } + } + } +yy344: + YYDEBUG(344, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'L') { + if (yych <= '-') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych <= '.') goto yy286; + if (yych <= '@') goto yy223; + goto yy237; + } + } else { + if (yych <= '`') { + if (yych <= 'M') goto yy346; + if (yych <= 'Z') goto yy237; + goto yy223; + } else { + if (yych == 'm') goto yy347; + if (yych <= 'z') goto yy242; + goto yy223; + } + } +yy345: + YYDEBUG(345, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'L') { + if (yych <= '-') { + if (yych == ')') goto yy228; + goto yy223; + } else { + if (yych <= '.') goto yy286; + if (yych <= '@') goto yy223; + goto yy237; + } + } else { + if (yych <= '`') { + if (yych <= 'M') goto yy346; + if (yych <= 'Z') goto yy237; + goto yy223; + } else { + if (yych == 'm') goto yy346; + if (yych <= 'z') goto yy237; + goto yy223; + } + } +yy346: + YYDEBUG(346, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ')') { + if (yych <= '\t') { + if (yych <= 0x00) goto yy278; + if (yych <= 0x08) goto yy223; + goto yy278; + } else { + if (yych == ' ') goto yy278; + if (yych <= '(') goto yy223; + goto yy228; + } + } else { + if (yych <= '@') { + if (yych == '.') goto yy288; + goto yy223; + } else { + if (yych <= 'Z') goto yy238; + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy238; + goto yy223; + } + } +yy347: + YYDEBUG(347, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '-') { + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy278; + if (yych == '\t') goto yy278; + goto yy223; + } else { + if (yych <= '(') { + if (yych <= ' ') goto yy278; + goto yy223; + } else { + if (yych <= ')') goto yy228; + if (yych <= ',') goto yy223; + goto yy244; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '.') goto yy288; + if (yych <= '/') goto yy244; + if (yych <= '@') goto yy223; + goto yy238; + } else { + if (yych <= '_') { + if (yych <= '^') goto yy223; + goto yy244; + } else { + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy243; + goto yy223; + } + } + } +yy348: + YYDEBUG(348, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy225; + goto yy199; + } else { + if (yych <= '9') goto yy289; + if (yych <= ':') goto yy225; + goto yy199; + } +yy349: + YYDEBUG(349, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych != '.') goto yy199; + } else { + if (yych <= '9') goto yy289; + if (yych >= ';') goto yy199; + } +yy350: + YYDEBUG(350, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy351; + if (yych <= '6') goto yy352; + if (yych <= '9') goto yy224; + goto yy57; +yy351: + YYDEBUG(351, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy225; + goto yy223; + } else { + if (yych <= '9') goto yy353; + if (yych <= ':') goto yy225; + goto yy223; + } +yy352: + YYDEBUG(352, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy225; + goto yy223; + } else { + if (yych <= '0') goto yy229; + if (yych == ':') goto yy225; + goto yy223; + } +yy353: + YYDEBUG(353, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= ' ') { + if (yych == '\t') goto yy231; + if (yych <= 0x1F) goto yy223; + goto yy231; + } else { + if (yych <= '(') { + if (yych <= '\'') goto yy223; + goto yy231; + } else { + if (yych == '+') goto yy231; + goto yy223; + } + } + } else { + if (yych <= ':') { + if (yych <= '-') goto yy231; + if (yych <= '.') goto yy225; + if (yych <= '9') goto yy223; + goto yy225; + } else { + if (yych <= 'Z') { + if (yych <= '@') goto yy223; + goto yy231; + } else { + if (yych <= '`') goto yy223; + if (yych <= 'z') goto yy231; + goto yy223; + } + } + } +yy354: + YYDEBUG(354, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy338; + goto yy199; + } else { + if (yych <= '9') goto yy289; + if (yych <= ':') goto yy338; + goto yy199; + } +yy355: + YYDEBUG(355, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '/') { + if (yych == '.') goto yy300; + goto yy216; + } else { + if (yych <= '0') goto yy332; + if (yych <= '1') goto yy302; + if (yych <= '2') goto yy303; + goto yy297; + } + } else { + if (yych <= 'q') { + if (yych <= ':') goto yy264; + if (yych == 'n') goto yy212; + goto yy216; + } else { + if (yych <= 'r') goto yy213; + if (yych <= 's') goto yy211; + if (yych <= 't') goto yy214; + goto yy216; + } + } +yy356: + YYDEBUG(356, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '/') { + if (yych == '.') goto yy300; + goto yy216; + } else { + if (yych <= '0') goto yy332; + if (yych <= '1') goto yy302; + if (yych <= '2') goto yy303; + goto yy297; + } + } else { + if (yych <= 'q') { + if (yych <= ':') goto yy264; + if (yych == 'n') goto yy212; + goto yy216; + } else { + if (yych <= 'r') goto yy213; + if (yych <= 's') goto yy211; + if (yych <= 't') goto yy214; + goto yy216; + } + } +yy357: + YYDEBUG(357, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'm') { + if (yych <= '1') { + if (yych <= '/') goto yy216; + if (yych <= '0') goto yy360; + goto yy361; + } else { + if (yych <= '2') goto yy368; + if (yych <= '9') goto yy369; + goto yy216; + } + } else { + if (yych <= 'r') { + if (yych <= 'n') goto yy212; + if (yych <= 'q') goto yy216; + goto yy213; + } else { + if (yych <= 's') goto yy211; + if (yych <= 't') goto yy214; + goto yy216; + } + } +yy358: + YYDEBUG(358, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'm') { + if (yych <= '1') { + if (yych <= '/') goto yy216; + if (yych <= '0') goto yy360; + goto yy361; + } else { + if (yych <= '2') goto yy368; + if (yych <= '9') goto yy369; + goto yy216; + } + } else { + if (yych <= 'r') { + if (yych <= 'n') goto yy212; + if (yych <= 'q') goto yy216; + goto yy213; + } else { + if (yych <= 's') goto yy211; + if (yych <= 't') goto yy214; + goto yy216; + } + } +yy359: + YYDEBUG(359, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'm') { + if (yych <= '1') { + if (yych <= '/') goto yy216; + if (yych >= '1') goto yy361; + } else { + if (yych <= '2') goto yy209; + if (yych <= '9') goto yy210; + goto yy216; + } + } else { + if (yych <= 'r') { + if (yych <= 'n') goto yy212; + if (yych <= 'q') goto yy216; + goto yy213; + } else { + if (yych <= 's') goto yy211; + if (yych <= 't') goto yy214; + goto yy216; + } + } +yy360: + YYDEBUG(360, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '/') { + if (yych <= ',') goto yy216; + if (yych <= '-') goto yy362; + if (yych <= '.') goto yy331; + goto yy216; + } else { + if (yych <= '0') goto yy332; + if (yych <= '1') goto yy302; + if (yych <= '2') goto yy303; + goto yy297; + } + } else { + if (yych <= 'q') { + if (yych <= ':') goto yy221; + if (yych == 'n') goto yy212; + goto yy216; + } else { + if (yych <= 'r') goto yy213; + if (yych <= 's') goto yy211; + if (yych <= 't') goto yy214; + goto yy216; + } + } +yy361: + YYDEBUG(361, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '/') { + if (yych <= ',') goto yy216; + if (yych <= '-') goto yy362; + if (yych <= '.') goto yy300; + goto yy216; + } else { + if (yych <= '0') goto yy301; + if (yych <= '1') goto yy302; + if (yych <= '2') goto yy303; + goto yy297; + } + } else { + if (yych <= 'q') { + if (yych <= ':') goto yy264; + if (yych == 'n') goto yy212; + goto yy216; + } else { + if (yych <= 'r') goto yy213; + if (yych <= 's') goto yy211; + if (yych <= 't') goto yy214; + goto yy216; + } + } +yy362: + YYDEBUG(362, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; + YYDEBUG(363, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '/') goto yy364; + if (yych <= '9') goto yy365; +yy364: + YYDEBUG(364, *YYCURSOR); + { + int length = 0; + DEBUG_OUTPUT("pgtextshort"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month((char **) &ptr); + s->time->d = timelib_get_nr((char **) &ptr, 2); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_PG_TEXT; + } +yy365: + YYDEBUG(365, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy364; + if (yych >= ':') goto yy364; + YYDEBUG(366, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy364; + if (yych >= ':') goto yy364; + YYDEBUG(367, *YYCURSOR); + yych = *++YYCURSOR; + goto yy364; +yy368: + YYDEBUG(368, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '/') { + if (yych <= ',') goto yy216; + if (yych <= '-') goto yy362; + if (yych <= '.') goto yy300; + goto yy216; + } else { + if (yych <= '0') goto yy332; + if (yych <= '1') goto yy302; + if (yych <= '2') goto yy303; + goto yy297; + } + } else { + if (yych <= 'q') { + if (yych <= ':') goto yy264; + if (yych == 'n') goto yy212; + goto yy216; + } else { + if (yych <= 'r') goto yy213; + if (yych <= 's') goto yy211; + if (yych <= 't') goto yy214; + goto yy216; + } + } +yy369: + YYDEBUG(369, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '/') { + if (yych <= ',') goto yy216; + if (yych <= '-') goto yy362; + if (yych <= '.') goto yy300; + goto yy216; + } else { + if (yych <= '0') goto yy332; + if (yych <= '1') goto yy302; + if (yych <= '2') goto yy303; + goto yy297; + } + } else { + if (yych <= 'q') { + if (yych <= ':') goto yy264; + if (yych == 'n') goto yy212; + goto yy216; + } else { + if (yych <= 'r') goto yy213; + if (yych <= 's') goto yy211; + if (yych <= 't') goto yy214; + goto yy216; + } + } +yy370: + YYDEBUG(370, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'B') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'C') goto yy193; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'b') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'c') goto yy371; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy371: + YYDEBUG(371, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= '-') { + if (yych <= ')') goto yy140; + if (yych <= ',') goto yy194; + } else { + if (yych == '/') goto yy148; + goto yy196; + } + } + } else { + if (yych <= '^') { + if (yych <= 'D') { + if (yych <= '@') goto yy194; + goto yy143; + } else { + if (yych <= 'E') goto yy202; + if (yych <= 'Z') goto yy143; + goto yy194; + } + } else { + if (yych <= 'd') { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy194; + goto yy151; + } else { + if (yych <= 'e') goto yy373; + if (yych <= 'z') goto yy151; + goto yy194; + } + } + } +yy372: + YYDEBUG(372, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 8) { + goto yy149; + } + if (yych <= '/') goto yy196; + if (yych <= '0') goto yy357; + if (yych <= '2') goto yy358; + if (yych <= '3') goto yy359; + goto yy196; +yy373: + YYDEBUG(373, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'L') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'M') goto yy203; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'l') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'm') goto yy374; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy374: + YYDEBUG(374, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'A') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'B') goto yy204; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'b') goto yy375; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy375: + YYDEBUG(375, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'E') goto yy205; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'e') goto yy376; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy376: + YYDEBUG(376, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy206; + if (yych != 'r') goto yy155; +yy377: + YYDEBUG(377, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy154; + } + if (yych <= '-') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy196; + goto yy194; + } else { + if (yych <= ' ') goto yy196; + if (yych <= ',') goto yy194; + } + } else { + if (yych <= '9') { + if (yych == '/') goto yy148; + goto yy196; + } else { + if (yych == '_') goto yy148; + goto yy194; + } + } +yy378: + YYDEBUG(378, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 8) { + goto yy149; + } + goto yy196; +yy379: + YYDEBUG(379, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy142; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 't') goto yy380; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy380: + YYDEBUG(380, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy140; + goto yy194; + } else { + if (yych <= '-') goto yy197; + if (yych <= '.') goto yy196; + goto yy194; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy196; + goto yy194; + } else { + if (yych != 'O') goto yy143; + } + } else { + if (yych <= 'n') { + if (yych <= '`') goto yy194; + goto yy143; + } else { + if (yych <= 'o') goto yy381; + if (yych <= 'z') goto yy143; + goto yy194; + } + } + } +yy381: + YYDEBUG(381, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'B') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'A') goto yy144; + } + } else { + if (yych <= 'a') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'b') goto yy382; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy382: + YYDEBUG(382, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy145; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'e') goto yy383; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy383: + YYDEBUG(383, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Q') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'R') goto yy206; + if (yych == 'r') goto yy206; + goto yy4; + } +yy384: + YYDEBUG(384, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy380; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 't') goto yy385; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy385: + YYDEBUG(385, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= '-') { + if (yych <= ')') goto yy140; + if (yych <= ',') goto yy194; + goto yy372; + } else { + if (yych == '/') goto yy148; + goto yy196; + } + } + } else { + if (yych <= '^') { + if (yych <= 'N') { + if (yych <= '@') goto yy194; + goto yy143; + } else { + if (yych <= 'O') goto yy381; + if (yych <= 'Z') goto yy143; + goto yy194; + } + } else { + if (yych <= 'n') { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy194; + goto yy151; + } else { + if (yych <= 'o') goto yy386; + if (yych <= 'z') goto yy151; + goto yy194; + } + } + } +yy386: + YYDEBUG(386, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'A') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'B') goto yy382; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'b') goto yy387; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy387: + YYDEBUG(387, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'E') goto yy383; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'e') goto yy388; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy388: + YYDEBUG(388, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'Q') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'R') goto yy206; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'r') goto yy377; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy389: + YYDEBUG(389, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'G') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'F') goto yy142; + goto yy397; + } + } else { + if (yych <= 'f') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'g') goto yy397; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy390: + YYDEBUG(390, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'Q') goto yy142; + goto yy394; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'r') goto yy394; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy391: + YYDEBUG(391, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'N') goto yy142; + } + } else { + if (yych <= 'n') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'o') goto yy392; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy392: + YYDEBUG(392, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '@') { + if (yych == ')') goto yy140; + } else { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy393; + if (yych <= 'z') goto yy143; + } +yy393: + YYDEBUG(393, *YYCURSOR); + { + DEBUG_OUTPUT("ago"); + TIMELIB_INIT; + s->time->relative.y = 0 - s->time->relative.y; + s->time->relative.m = 0 - s->time->relative.m; + s->time->relative.d = 0 - s->time->relative.d; + s->time->relative.h = 0 - s->time->relative.h; + s->time->relative.i = 0 - s->time->relative.i; + s->time->relative.s = 0 - s->time->relative.s; + s->time->relative.weekday = 0 - s->time->relative.weekday; + if (s->time->relative.weekday == 0) { + s->time->relative.weekday = -7; + } + if (s->time->relative.have_special_relative && s->time->relative.special.type == TIMELIB_SPECIAL_WEEKDAY) { + s->time->relative.special.amount = 0 - s->time->relative.special.amount; + } + TIMELIB_DEINIT; + return TIMELIB_AGO; + } +yy394: + YYDEBUG(394, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy140; + goto yy194; + } else { + if (yych <= '-') goto yy197; + if (yych <= '.') goto yy196; + goto yy194; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy196; + goto yy194; + } else { + if (yych != 'I') goto yy143; + } + } else { + if (yych <= 'h') { + if (yych <= '`') goto yy194; + goto yy143; + } else { + if (yych <= 'i') goto yy395; + if (yych <= 'z') goto yy143; + goto yy194; + } + } + } +yy395: + YYDEBUG(395, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'K') goto yy144; + } + } else { + if (yych <= 'k') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'l') goto yy396; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy396: + YYDEBUG(396, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy196; + goto yy194; + } else { + if (yych <= ' ') goto yy196; + if (yych == ')') goto yy140; + goto yy194; + } + } else { + if (yych <= '@') { + if (yych == '/') goto yy194; + if (yych <= '9') goto yy196; + goto yy194; + } else { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy194; + if (yych <= 'z') goto yy145; + goto yy194; + } + } +yy397: + YYDEBUG(397, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy140; + goto yy194; + } else { + if (yych <= '-') goto yy197; + if (yych <= '.') goto yy196; + goto yy194; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy196; + goto yy194; + } else { + if (yych != 'U') goto yy143; + } + } else { + if (yych <= 't') { + if (yych <= '`') goto yy194; + goto yy143; + } else { + if (yych <= 'u') goto yy398; + if (yych <= 'z') goto yy143; + goto yy194; + } + } + } +yy398: + YYDEBUG(398, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'R') goto yy144; + } + } else { + if (yych <= 'r') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 's') goto yy399; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy399: + YYDEBUG(399, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy145; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 't') goto yy400; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy400: + YYDEBUG(400, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= '.') { + if (yych <= ')') goto yy140; + if (yych <= ',') goto yy194; + goto yy196; + } else { + if (yych <= '/') goto yy194; + if (yych <= '9') goto yy196; + goto yy194; + } + } +yy401: + YYDEBUG(401, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'F') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'G') goto yy397; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'f') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'g') goto yy408; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy402: + YYDEBUG(402, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'Q') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'R') goto yy394; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'q') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'r') goto yy405; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy403: + YYDEBUG(403, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'N') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'O') goto yy392; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'n') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'o') goto yy404; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy404: + YYDEBUG(404, *YYCURSOR); + yyaccept = 9; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy393; + } else { + if (yych == '.') goto yy393; + goto yy148; + } + } else { + if (yych <= '^') { + if (yych <= '@') goto yy393; + if (yych <= 'Z') goto yy143; + goto yy393; + } else { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy393; + if (yych <= 'z') goto yy151; + goto yy393; + } + } +yy405: + YYDEBUG(405, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= '-') { + if (yych <= ')') goto yy140; + if (yych <= ',') goto yy194; + goto yy372; + } else { + if (yych == '/') goto yy148; + goto yy196; + } + } + } else { + if (yych <= '^') { + if (yych <= 'H') { + if (yych <= '@') goto yy194; + goto yy143; + } else { + if (yych <= 'I') goto yy395; + if (yych <= 'Z') goto yy143; + goto yy194; + } + } else { + if (yych <= 'h') { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy194; + goto yy151; + } else { + if (yych <= 'i') goto yy406; + if (yych <= 'z') goto yy151; + goto yy194; + } + } + } +yy406: + YYDEBUG(406, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'K') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'L') goto yy396; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'k') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'l') goto yy407; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy407: + YYDEBUG(407, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy194; + goto yy196; + } else { + if (yych <= ')') { + if (yych <= '(') goto yy194; + goto yy140; + } else { + if (yych <= ',') goto yy194; + if (yych <= '-') goto yy378; + goto yy196; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '/') goto yy148; + if (yych <= '9') goto yy196; + if (yych <= '@') goto yy194; + goto yy145; + } else { + if (yych <= '_') { + if (yych <= '^') goto yy194; + goto yy148; + } else { + if (yych <= '`') goto yy194; + if (yych <= 'z') goto yy153; + goto yy194; + } + } + } +yy408: + YYDEBUG(408, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= '-') { + if (yych <= ')') goto yy140; + if (yych <= ',') goto yy194; + goto yy372; + } else { + if (yych == '/') goto yy148; + goto yy196; + } + } + } else { + if (yych <= '^') { + if (yych <= 'T') { + if (yych <= '@') goto yy194; + goto yy143; + } else { + if (yych <= 'U') goto yy398; + if (yych <= 'Z') goto yy143; + goto yy194; + } + } else { + if (yych <= 't') { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy194; + goto yy151; + } else { + if (yych <= 'u') goto yy409; + if (yych <= 'z') goto yy151; + goto yy194; + } + } + } +yy409: + YYDEBUG(409, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'R') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'S') goto yy399; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'r') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 's') goto yy410; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy410: + YYDEBUG(410, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy400; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 't') goto yy411; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy411: + YYDEBUG(411, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy154; + } + if (yych <= ',') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy196; + goto yy194; + } else { + if (yych <= ' ') goto yy196; + if (yych == ')') goto yy140; + goto yy194; + } + } else { + if (yych <= '/') { + if (yych <= '-') goto yy378; + if (yych <= '.') goto yy196; + goto yy148; + } else { + if (yych <= '9') goto yy196; + if (yych == '_') goto yy148; + goto yy194; + } + } +yy412: + YYDEBUG(412, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == 'L') goto yy419; + if (yych <= 'M') goto yy142; + goto yy418; + } + } else { + if (yych <= 'l') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + if (yych <= 'k') goto yy142; + goto yy419; + } else { + if (yych == 'n') goto yy418; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy413: + YYDEBUG(413, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'M') goto yy142; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'n') goto yy414; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy414: + YYDEBUG(414, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy140; + goto yy194; + } else { + if (yych <= '-') goto yy197; + if (yych <= '.') goto yy196; + goto yy194; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy196; + goto yy194; + } else { + if (yych != 'U') goto yy143; + } + } else { + if (yych <= 't') { + if (yych <= '`') goto yy194; + goto yy143; + } else { + if (yych <= 'u') goto yy415; + if (yych <= 'z') goto yy143; + goto yy194; + } + } + } +yy415: + YYDEBUG(415, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy144; + goto yy4; + } else { + if (yych <= 'a') goto yy416; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy416: + YYDEBUG(416, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'Q') goto yy145; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'r') goto yy417; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy417: + YYDEBUG(417, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'X') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'Y') goto yy206; + if (yych == 'y') goto yy206; + goto yy4; + } +yy418: + YYDEBUG(418, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy140; + goto yy194; + } else { + if (yych <= '-') goto yy197; + if (yych <= '.') goto yy196; + goto yy194; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy196; + goto yy194; + } else { + if (yych == 'E') goto yy420; + goto yy143; + } + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy194; + goto yy143; + } else { + if (yych <= 'e') goto yy420; + if (yych <= 'z') goto yy143; + goto yy194; + } + } + } +yy419: + YYDEBUG(419, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy140; + goto yy194; + } else { + if (yych <= '-') goto yy197; + if (yych <= '.') goto yy196; + goto yy194; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy196; + goto yy194; + } else { + if (yych != 'Y') goto yy143; + } + } else { + if (yych <= 'x') { + if (yych <= '`') goto yy194; + goto yy143; + } else { + if (yych <= 'y') goto yy420; + if (yych <= 'z') goto yy143; + goto yy194; + } + } + } +yy420: + YYDEBUG(420, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy196; + goto yy194; + } else { + if (yych <= ' ') goto yy196; + if (yych == ')') goto yy140; + goto yy194; + } + } else { + if (yych <= '@') { + if (yych == '/') goto yy194; + if (yych <= '9') goto yy196; + goto yy194; + } else { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy194; + if (yych <= 'z') goto yy144; + goto yy194; + } + } +yy421: + YYDEBUG(421, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych == '-') goto yy148; + goto yy4; + } + } else { + if (yych <= '@') { + if (yych <= '/') goto yy148; + goto yy4; + } else { + if (yych == 'L') goto yy419; + goto yy142; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'N') goto yy418; + goto yy142; + } else { + if (yych == '_') goto yy148; + goto yy4; + } + } else { + if (yych <= 'm') { + if (yych == 'l') goto yy428; + goto yy147; + } else { + if (yych <= 'n') goto yy427; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy422: + YYDEBUG(422, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'N') goto yy414; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'n') goto yy423; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy423: + YYDEBUG(423, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= '-') { + if (yych <= ')') goto yy140; + if (yych <= ',') goto yy194; + goto yy372; + } else { + if (yych == '/') goto yy148; + goto yy196; + } + } + } else { + if (yych <= '^') { + if (yych <= 'T') { + if (yych <= '@') goto yy194; + goto yy143; + } else { + if (yych <= 'U') goto yy415; + if (yych <= 'Z') goto yy143; + goto yy194; + } + } else { + if (yych <= 't') { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy194; + goto yy151; + } else { + if (yych <= 'u') goto yy424; + if (yych <= 'z') goto yy151; + goto yy194; + } + } + } +yy424: + YYDEBUG(424, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '_') { + if (yych <= 'A') goto yy416; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'a') goto yy425; + if (yych <= 'z') goto yy152; + goto yy4; + } + } +yy425: + YYDEBUG(425, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'Q') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'R') goto yy417; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'q') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'r') goto yy426; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy426: + YYDEBUG(426, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'Y') goto yy206; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'y') goto yy377; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy427: + YYDEBUG(427, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= '-') { + if (yych <= ')') goto yy140; + if (yych <= ',') goto yy194; + goto yy372; + } else { + if (yych == '/') goto yy148; + goto yy196; + } + } + } else { + if (yych <= '^') { + if (yych <= 'D') { + if (yych <= '@') goto yy194; + goto yy143; + } else { + if (yych <= 'E') goto yy420; + if (yych <= 'Z') goto yy143; + goto yy194; + } + } else { + if (yych <= 'd') { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy194; + goto yy151; + } else { + if (yych <= 'e') goto yy429; + if (yych <= 'z') goto yy151; + goto yy194; + } + } + } +yy428: + YYDEBUG(428, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= '-') { + if (yych <= ')') goto yy140; + if (yych <= ',') goto yy194; + goto yy372; + } else { + if (yych == '/') goto yy148; + goto yy196; + } + } + } else { + if (yych <= '^') { + if (yych <= 'X') { + if (yych <= '@') goto yy194; + goto yy143; + } else { + if (yych <= 'Y') goto yy420; + if (yych <= 'Z') goto yy143; + goto yy194; + } + } else { + if (yych <= 'x') { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy194; + goto yy151; + } else { + if (yych <= 'y') goto yy429; + if (yych <= 'z') goto yy151; + goto yy194; + } + } + } +yy429: + YYDEBUG(429, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy194; + goto yy196; + } else { + if (yych <= ')') { + if (yych <= '(') goto yy194; + goto yy140; + } else { + if (yych <= ',') goto yy194; + if (yych <= '-') goto yy378; + goto yy196; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '/') goto yy148; + if (yych <= '9') goto yy196; + if (yych <= '@') goto yy194; + goto yy144; + } else { + if (yych <= '_') { + if (yych <= '^') goto yy194; + goto yy148; + } else { + if (yych <= '`') goto yy194; + if (yych <= 'z') goto yy152; + goto yy194; + } + } + } +yy430: + YYDEBUG(430, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy4; + goto yy196; + } else { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy196; + } + } else { + if (yych <= 'H') { + if (yych <= '/') goto yy4; + if (yych <= '9') goto yy196; + if (yych <= '@') goto yy4; + goto yy142; + } else { + if (yych <= 'Z') { + if (yych >= 'J') goto yy142; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy142; + goto yy4; + } + } + } +yy431: + YYDEBUG(431, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy196; + goto yy4; + } else { + if (yych <= ' ') goto yy196; + if (yych == ')') goto yy140; + goto yy4; + } + } else { + if (yych <= '@') { + if (yych == '/') goto yy4; + if (yych <= '9') goto yy196; + goto yy4; + } else { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy432: + YYDEBUG(432, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy4; + goto yy196; + } else { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy196; + } + } else { + if (yych <= 'H') { + if (yych <= '/') goto yy4; + if (yych <= '9') goto yy196; + if (yych <= '@') goto yy4; + goto yy142; + } else { + if (yych <= 'Z') { + if (yych >= 'J') goto yy142; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy142; + goto yy4; + } + } + } + YYDEBUG(433, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy4; + goto yy196; + } else { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy196; + } + } else { + if (yych <= 'H') { + if (yych <= '/') goto yy4; + if (yych <= '9') goto yy196; + if (yych <= '@') goto yy4; + goto yy143; + } else { + if (yych <= 'Z') { + if (yych >= 'J') goto yy143; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy143; + goto yy4; + } + } + } + YYDEBUG(434, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy196; + goto yy4; + } else { + if (yych <= ' ') goto yy196; + if (yych == ')') goto yy140; + goto yy4; + } + } else { + if (yych <= '@') { + if (yych == '/') goto yy4; + if (yych <= '9') goto yy196; + goto yy4; + } else { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy435: + YYDEBUG(435, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy196; + goto yy4; + } else { + if (yych <= ' ') goto yy196; + if (yych == ')') goto yy140; + goto yy4; + } + } else { + if (yych <= '@') { + if (yych == '/') goto yy4; + if (yych <= '9') goto yy196; + goto yy4; + } else { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy436: + YYDEBUG(436, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy4; + goto yy196; + } else { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy196; + } + } else { + if (yych <= 'H') { + if (yych <= '/') goto yy4; + if (yych <= '9') goto yy196; + if (yych <= '@') goto yy4; + goto yy142; + } else { + if (yych <= 'Z') { + if (yych <= 'I') goto yy431; + goto yy142; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy142; + goto yy4; + } + } + } +yy437: + YYDEBUG(437, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'V') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy4; + goto yy61; + } else { + if (yych <= '9') { + if (yych <= '/') goto yy4; + goto yy457; + } else { + if (yych <= ':') goto yy163; + if (yych <= 'C') goto yy4; + goto yy61; + } + } + } else { + if (yych <= 'H') { + if (yych == 'F') goto yy61; + if (yych <= 'G') goto yy4; + goto yy61; + } else { + if (yych <= 'M') { + if (yych <= 'L') goto yy4; + goto yy61; + } else { + if (yych <= 'R') goto yy4; + if (yych <= 'T') goto yy61; + goto yy4; + } + } + } + } else { + if (yych <= 'h') { + if (yych <= 'c') { + if (yych == 'X') goto yy4; + if (yych <= 'Y') goto yy61; + goto yy4; + } else { + if (yych <= 'e') { + if (yych <= 'd') goto yy61; + goto yy4; + } else { + if (yych == 'g') goto yy4; + goto yy61; + } + } + } else { + if (yych <= 't') { + if (yych == 'm') goto yy61; + if (yych <= 'r') goto yy4; + goto yy61; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy4; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy4; + } + } + } + } +yy438: + YYDEBUG(438, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych <= ':') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy4; + goto yy61; + } else { + if (yych <= '4') { + if (yych <= '/') goto yy4; + goto yy457; + } else { + if (yych <= '5') goto yy442; + if (yych <= '9') goto yy443; + goto yy163; + } + } + } else { + if (yych <= 'G') { + if (yych <= 'D') { + if (yych <= 'C') goto yy4; + goto yy61; + } else { + if (yych == 'F') goto yy61; + goto yy4; + } + } else { + if (yych <= 'L') { + if (yych <= 'H') goto yy61; + goto yy4; + } else { + if (yych <= 'M') goto yy61; + if (yych <= 'R') goto yy4; + goto yy61; + } + } + } + } else { + if (yych <= 'g') { + if (yych <= 'Y') { + if (yych == 'W') goto yy61; + if (yych <= 'X') goto yy4; + goto yy61; + } else { + if (yych <= 'd') { + if (yych <= 'c') goto yy4; + goto yy61; + } else { + if (yych == 'f') goto yy61; + goto yy4; + } + } + } else { + if (yych <= 't') { + if (yych <= 'l') { + if (yych <= 'h') goto yy61; + goto yy4; + } else { + if (yych <= 'm') goto yy61; + if (yych <= 'r') goto yy4; + goto yy61; + } + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy4; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy4; + } + } + } + } +yy439: + YYDEBUG(439, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych <= 'C') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy4; + goto yy61; + } else { + if (yych <= '5') { + if (yych <= '/') goto yy4; + goto yy442; + } else { + if (yych <= '9') goto yy443; + if (yych <= ':') goto yy163; + goto yy4; + } + } + } else { + if (yych <= 'G') { + if (yych == 'E') goto yy4; + if (yych <= 'F') goto yy61; + goto yy4; + } else { + if (yych <= 'L') { + if (yych <= 'H') goto yy61; + goto yy4; + } else { + if (yych <= 'M') goto yy61; + if (yych <= 'R') goto yy4; + goto yy61; + } + } + } + } else { + if (yych <= 'g') { + if (yych <= 'Y') { + if (yych == 'W') goto yy61; + if (yych <= 'X') goto yy4; + goto yy61; + } else { + if (yych <= 'd') { + if (yych <= 'c') goto yy4; + goto yy61; + } else { + if (yych == 'f') goto yy61; + goto yy4; + } + } + } else { + if (yych <= 't') { + if (yych <= 'l') { + if (yych <= 'h') goto yy61; + goto yy4; + } else { + if (yych <= 'm') goto yy61; + if (yych <= 'r') goto yy4; + goto yy61; + } + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy4; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy4; + } + } + } + } +yy440: + YYDEBUG(440, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(441, *YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy58; + } + if (yych <= ',') { + if (yych == '+') goto yy440; + goto yy57; + } else { + if (yych <= '-') goto yy440; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy55; + goto yy57; + } +yy442: + YYDEBUG(442, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'V') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy4; + goto yy61; + } else { + if (yych <= '/') goto yy4; + if (yych <= '9') goto yy456; + if (yych <= 'C') goto yy4; + goto yy61; + } + } else { + if (yych <= 'H') { + if (yych == 'F') goto yy61; + if (yych <= 'G') goto yy4; + goto yy61; + } else { + if (yych <= 'M') { + if (yych <= 'L') goto yy4; + goto yy61; + } else { + if (yych <= 'R') goto yy4; + if (yych <= 'T') goto yy61; + goto yy4; + } + } + } + } else { + if (yych <= 'h') { + if (yych <= 'c') { + if (yych == 'X') goto yy4; + if (yych <= 'Y') goto yy61; + goto yy4; + } else { + if (yych <= 'e') { + if (yych <= 'd') goto yy61; + goto yy4; + } else { + if (yych == 'g') goto yy4; + goto yy61; + } + } + } else { + if (yych <= 't') { + if (yych == 'm') goto yy61; + if (yych <= 'r') goto yy4; + goto yy61; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy4; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy4; + } + } + } + } +yy443: + YYDEBUG(443, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'V') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy4; + goto yy61; + } else { + if (yych <= '/') goto yy4; + if (yych <= '9') goto yy444; + if (yych <= 'C') goto yy4; + goto yy61; + } + } else { + if (yych <= 'H') { + if (yych == 'F') goto yy61; + if (yych <= 'G') goto yy4; + goto yy61; + } else { + if (yych <= 'M') { + if (yych <= 'L') goto yy4; + goto yy61; + } else { + if (yych <= 'R') goto yy4; + if (yych <= 'T') goto yy61; + goto yy4; + } + } + } + } else { + if (yych <= 'h') { + if (yych <= 'c') { + if (yych == 'X') goto yy4; + if (yych <= 'Y') goto yy61; + goto yy4; + } else { + if (yych <= 'e') { + if (yych <= 'd') goto yy61; + goto yy4; + } else { + if (yych == 'g') goto yy4; + goto yy61; + } + } + } else { + if (yych <= 't') { + if (yych == 'm') goto yy61; + if (yych <= 'r') goto yy4; + goto yy61; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy4; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy4; + } + } + } + } +yy444: + YYDEBUG(444, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych >= ':') goto yy61; +yy445: + YYDEBUG(445, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 2) { + goto yy55; + } + if (yych != '-') goto yy61; +yy446: + YYDEBUG(446, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '0') goto yy447; + if (yych <= '1') goto yy448; + goto yy57; +yy447: + YYDEBUG(447, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy449; + goto yy57; +yy448: + YYDEBUG(448, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= '3') goto yy57; +yy449: + YYDEBUG(449, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '-') goto yy57; + YYDEBUG(450, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '0') goto yy451; + if (yych <= '2') goto yy452; + if (yych <= '3') goto yy453; + goto yy57; +yy451: + YYDEBUG(451, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy454; + goto yy57; +yy452: + YYDEBUG(452, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy454; + goto yy57; +yy453: + YYDEBUG(453, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= '2') goto yy57; +yy454: + YYDEBUG(454, *YYCURSOR); + ++YYCURSOR; +yy455: + YYDEBUG(455, *YYCURSOR); + { + DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_unsigned_nr((char **) &ptr, 4); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->d = timelib_get_nr((char **) &ptr, 2); + TIMELIB_DEINIT; + return TIMELIB_ISO_DATE; + } +yy456: + YYDEBUG(456, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'V') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy4; + goto yy61; + } else { + if (yych <= '/') goto yy4; + if (yych <= '9') goto yy445; + if (yych <= 'C') goto yy4; + goto yy61; + } + } else { + if (yych <= 'H') { + if (yych == 'F') goto yy61; + if (yych <= 'G') goto yy4; + goto yy61; + } else { + if (yych <= 'M') { + if (yych <= 'L') goto yy4; + goto yy61; + } else { + if (yych <= 'R') goto yy4; + if (yych <= 'T') goto yy61; + goto yy4; + } + } + } + } else { + if (yych <= 'h') { + if (yych <= 'c') { + if (yych == 'X') goto yy4; + if (yych <= 'Y') goto yy61; + goto yy4; + } else { + if (yych <= 'e') { + if (yych <= 'd') goto yy61; + goto yy4; + } else { + if (yych == 'g') goto yy4; + goto yy61; + } + } + } else { + if (yych <= 't') { + if (yych == 'm') goto yy61; + if (yych <= 'r') goto yy4; + goto yy61; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy4; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy4; + } + } + } + } +yy457: + YYDEBUG(457, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych <= 'C') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy4; + goto yy61; + } else { + if (yych <= '5') { + if (yych <= '/') goto yy4; + } else { + if (yych <= '9') goto yy456; + if (yych <= ':') goto yy163; + goto yy4; + } + } + } else { + if (yych <= 'G') { + if (yych == 'E') goto yy4; + if (yych <= 'F') goto yy61; + goto yy4; + } else { + if (yych <= 'L') { + if (yych <= 'H') goto yy61; + goto yy4; + } else { + if (yych <= 'M') goto yy61; + if (yych <= 'R') goto yy4; + goto yy61; + } + } + } + } else { + if (yych <= 'g') { + if (yych <= 'Y') { + if (yych == 'W') goto yy61; + if (yych <= 'X') goto yy4; + goto yy61; + } else { + if (yych <= 'd') { + if (yych <= 'c') goto yy4; + goto yy61; + } else { + if (yych == 'f') goto yy61; + goto yy4; + } + } + } else { + if (yych <= 't') { + if (yych <= 'l') { + if (yych <= 'h') goto yy61; + goto yy4; + } else { + if (yych <= 'm') goto yy61; + if (yych <= 'r') goto yy4; + goto yy61; + } + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy4; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy4; + } + } + } + } + YYDEBUG(458, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'V') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy4; + goto yy61; + } else { + if (yych <= '/') goto yy4; + if (yych <= '9') goto yy459; + if (yych <= 'C') goto yy4; + goto yy61; + } + } else { + if (yych <= 'H') { + if (yych == 'F') goto yy61; + if (yych <= 'G') goto yy4; + goto yy61; + } else { + if (yych <= 'M') { + if (yych <= 'L') goto yy4; + goto yy61; + } else { + if (yych <= 'R') goto yy4; + if (yych <= 'T') goto yy61; + goto yy4; + } + } + } + } else { + if (yych <= 'h') { + if (yych <= 'c') { + if (yych == 'X') goto yy4; + if (yych <= 'Y') goto yy61; + goto yy4; + } else { + if (yych <= 'e') { + if (yych <= 'd') goto yy61; + goto yy4; + } else { + if (yych == 'g') goto yy4; + goto yy61; + } + } + } else { + if (yych <= 't') { + if (yych == 'm') goto yy61; + if (yych <= 'r') goto yy4; + goto yy61; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy4; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy4; + } + } + } + } +yy459: + YYDEBUG(459, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 2) { + goto yy55; + } + if (yych <= 'V') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy4; + goto yy61; + } else { + if (yych == '-') goto yy446; + if (yych <= 'C') goto yy4; + goto yy61; + } + } else { + if (yych <= 'H') { + if (yych == 'F') goto yy61; + if (yych <= 'G') goto yy4; + goto yy61; + } else { + if (yych <= 'M') { + if (yych <= 'L') goto yy4; + goto yy61; + } else { + if (yych <= 'R') goto yy4; + if (yych <= 'T') goto yy61; + goto yy4; + } + } + } + } else { + if (yych <= 'h') { + if (yych <= 'c') { + if (yych == 'X') goto yy4; + if (yych <= 'Y') goto yy61; + goto yy4; + } else { + if (yych <= 'e') { + if (yych <= 'd') goto yy61; + goto yy4; + } else { + if (yych == 'g') goto yy4; + goto yy61; + } + } + } else { + if (yych <= 't') { + if (yych == 'm') goto yy61; + if (yych <= 'r') goto yy4; + goto yy61; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy4; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy4; + } + } + } + } +yy460: + YYDEBUG(460, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy462; + if (yych <= '0') goto yy736; + if (yych <= '1') goto yy737; + if (yych <= '9') goto yy738; + goto yy462; +yy461: + YYDEBUG(461, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13); + yych = *YYCURSOR; +yy462: + YYDEBUG(462, *YYCURSOR); + YYDEBUG(-1, yych); + switch (yych) { + case '\t': + case ' ': goto yy461; + case '-': + case '.': goto yy577; + case 'A': + case 'a': goto yy480; + case 'D': + case 'd': goto yy466; + case 'F': + case 'f': goto yy467; + case 'H': + case 'h': goto yy64; + case 'I': goto yy475; + case 'J': + case 'j': goto yy479; + case 'M': + case 'm': goto yy465; + case 'N': + case 'n': goto yy482; + case 'O': + case 'o': goto yy481; + case 'P': + case 'p': goto yy484; + case 'S': + case 's': goto yy463; + case 'T': + case 't': goto yy69; + case 'V': goto yy477; + case 'W': + case 'w': goto yy68; + case 'X': goto yy478; + case 'Y': + case 'y': goto yy67; + default: goto yy57; + } +yy463: + YYDEBUG(463, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= 'D') { + if (yych == 'A') goto yy127; + goto yy57; + } else { + if (yych <= 'E') goto yy1049; + if (yych <= 'T') goto yy57; + goto yy126; + } + } else { + if (yych <= 'd') { + if (yych == 'a') goto yy127; + goto yy57; + } else { + if (yych <= 'e') goto yy1049; + if (yych == 'u') goto yy126; + goto yy57; + } + } +yy464: + YYDEBUG(464, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '`') { + if (yych <= 'D') { + if (yych == 'A') goto yy127; + goto yy57; + } else { + if (yych <= 'E') goto yy1049; + if (yych == 'U') goto yy126; + goto yy57; + } + } else { + if (yych <= 'e') { + if (yych <= 'a') goto yy127; + if (yych <= 'd') goto yy57; + goto yy1049; + } else { + if (yych <= 's') goto yy57; + if (yych <= 't') goto yy729; + if (yych <= 'u') goto yy126; + goto yy57; + } + } +yy465: + YYDEBUG(465, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= 'H') { + if (yych == 'A') goto yy592; + goto yy57; + } else { + if (yych <= 'I') goto yy118; + if (yych <= 'N') goto yy57; + goto yy117; + } + } else { + if (yych <= 'h') { + if (yych == 'a') goto yy592; + goto yy57; + } else { + if (yych <= 'i') goto yy118; + if (yych == 'o') goto yy117; + goto yy57; + } + } +yy466: + YYDEBUG(466, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych == 'A') goto yy114; + if (yych <= 'D') goto yy57; + goto yy579; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy57; + goto yy114; + } else { + if (yych == 'e') goto yy579; + goto yy57; + } + } +yy467: + YYDEBUG(467, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= 'N') { + if (yych == 'E') goto yy595; + goto yy57; + } else { + if (yych <= 'O') goto yy99; + if (yych <= 'Q') goto yy57; + goto yy98; + } + } else { + if (yych <= 'n') { + if (yych == 'e') goto yy595; + goto yy57; + } else { + if (yych <= 'o') goto yy99; + if (yych == 'r') goto yy98; + goto yy57; + } + } +yy468: + YYDEBUG(468, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'H') goto yy70; + if (yych <= 'T') goto yy57; + goto yy71; + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy57; + goto yy1048; + } else { + if (yych == 'u') goto yy71; + goto yy57; + } + } +yy469: + YYDEBUG(469, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy742; + if (yych <= '/') goto yy61; + if (yych <= '9') goto yy741; + goto yy61; +yy470: + YYDEBUG(470, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'c') { + if (yych == 'O') goto yy530; + goto yy57; + } else { + if (yych <= 'd') goto yy729; + if (yych == 'o') goto yy530; + goto yy57; + } +yy471: + YYDEBUG(471, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'd') goto yy729; + goto yy57; +yy472: + YYDEBUG(472, *YYCURSOR); + yych = *++YYCURSOR; + YYDEBUG(-1, yych); + switch (yych) { + case '0': + case '1': + case '2': goto yy666; + case '3': goto yy668; + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy669; + case 'A': + case 'a': goto yy673; + case 'D': + case 'd': goto yy677; + case 'F': + case 'f': goto yy671; + case 'J': + case 'j': goto yy670; + case 'M': + case 'm': goto yy672; + case 'N': + case 'n': goto yy676; + case 'O': + case 'o': goto yy675; + case 'S': + case 's': goto yy674; + default: goto yy57; + } +yy473: + YYDEBUG(473, *YYCURSOR); + yych = *++YYCURSOR; + YYDEBUG(-1, yych); + switch (yych) { + case '0': goto yy616; + case '1': goto yy617; + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy618; + case 'A': + case 'a': goto yy622; + case 'D': + case 'd': goto yy626; + case 'F': + case 'f': goto yy620; + case 'J': + case 'j': goto yy619; + case 'M': + case 'm': goto yy621; + case 'N': + case 'n': goto yy625; + case 'O': + case 'o': goto yy624; + case 'S': + case 's': goto yy623; + default: goto yy578; + } +yy474: + YYDEBUG(474, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '1') { + if (yych <= '/') goto yy578; + if (yych <= '0') goto yy568; + goto yy569; + } else { + if (yych <= '5') goto yy570; + if (yych <= '9') goto yy571; + goto yy578; + } +yy475: + YYDEBUG(475, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + if (yych <= '.') goto yy532; + } + } else { + if (yych <= 'U') { + if (yych <= '9') goto yy534; + if (yych == 'I') goto yy567; + } else { + if (yych == 'W') goto yy476; + if (yych <= 'X') goto yy540; + } + } +yy476: + YYDEBUG(476, *YYCURSOR); + { + DEBUG_OUTPUT("datenoyearrev"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr((char **) &ptr, 2); + timelib_skip_day_suffix((char **) &ptr); + s->time->m = timelib_get_month((char **) &ptr); + TIMELIB_DEINIT; + return TIMELIB_DATE_TEXT; + } +yy477: + YYDEBUG(477, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy476; + goto yy532; + } else { + if (yych == ' ') goto yy532; + goto yy476; + } + } else { + if (yych <= '9') { + if (yych <= '.') goto yy532; + if (yych <= '/') goto yy476; + goto yy534; + } else { + if (yych == 'I') goto yy565; + goto yy476; + } + } +yy478: + YYDEBUG(478, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy476; + goto yy532; + } else { + if (yych == ' ') goto yy532; + goto yy476; + } + } else { + if (yych <= '9') { + if (yych <= '.') goto yy532; + if (yych <= '/') goto yy476; + goto yy534; + } else { + if (yych == 'I') goto yy564; + goto yy476; + } + } +yy479: + YYDEBUG(479, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'A') goto yy557; + if (yych <= 'T') goto yy57; + goto yy556; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy57; + goto yy557; + } else { + if (yych == 'u') goto yy556; + goto yy57; + } + } +yy480: + YYDEBUG(480, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= 'L') { + if (yych == '.') goto yy485; + goto yy57; + } else { + if (yych <= 'M') goto yy486; + if (yych == 'P') goto yy550; + goto yy57; + } + } else { + if (yych <= 'o') { + if (yych <= 'U') goto yy549; + if (yych == 'm') goto yy486; + goto yy57; + } else { + if (yych <= 'p') goto yy550; + if (yych == 'u') goto yy549; + goto yy57; + } + } +yy481: + YYDEBUG(481, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy544; + if (yych == 'c') goto yy544; + goto yy57; +yy482: + YYDEBUG(482, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy530; + if (yych == 'o') goto yy530; + goto yy57; +yy483: + YYDEBUG(483, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy490; + if (yych <= '9') goto yy492; + goto yy57; +yy484: + YYDEBUG(484, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych != '.') goto yy57; + } else { + if (yych <= 'M') goto yy486; + if (yych == 'm') goto yy486; + goto yy57; + } +yy485: + YYDEBUG(485, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy486; + if (yych != 'm') goto yy57; +yy486: + YYDEBUG(486, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy488; + if (yych == '\t') goto yy488; + goto yy57; + } else { + if (yych <= ' ') goto yy488; + if (yych != '.') goto yy57; + } + YYDEBUG(487, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\t') { + if (yych <= 0x00) goto yy488; + if (yych <= 0x08) goto yy57; + } else { + if (yych != ' ') goto yy57; + } +yy488: + YYDEBUG(488, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(489, *YYCURSOR); + { + DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr((char **) &ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->i = timelib_get_nr((char **) &ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->s = timelib_get_nr((char **) &ptr, 2); + } + } + s->time->h += timelib_meridian((char **) &ptr, s->time->h); + TIMELIB_DEINIT; + return TIMELIB_TIME12; + } +yy490: + YYDEBUG(490, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy493; + } else { + if (yych <= '9') goto yy507; + if (yych <= ':') goto yy493; + } +yy491: + YYDEBUG(491, *YYCURSOR); + { + int tz_not_found; + DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->s = timelib_get_nr((char **) &ptr, 2); + + if (*ptr == '.') { + s->time->f = timelib_get_frac_nr((char **) &ptr, 8); + } + } + + if (*ptr != '\0') { + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, "The timezone could not be found in the database"); + } + } + TIMELIB_DEINIT; + return TIMELIB_TIME24_WITH_ZONE; + } +yy492: + YYDEBUG(492, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy493; + if (yych != ':') goto yy491; +yy493: + YYDEBUG(493, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy494; + if (yych <= '6') goto yy495; + if (yych <= '9') goto yy496; + goto yy57; +yy494: + YYDEBUG(494, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy497; + if (yych <= '/') goto yy491; + if (yych <= '9') goto yy500; + goto yy491; +yy495: + YYDEBUG(495, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy497; + if (yych == '0') goto yy500; + goto yy491; +yy496: + YYDEBUG(496, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych != '.') goto yy491; +yy497: + YYDEBUG(497, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; +yy498: + YYDEBUG(498, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(499, *YYCURSOR); + if (yych <= '/') goto yy491; + if (yych <= '9') goto yy498; + goto yy491; +yy500: + YYDEBUG(500, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= 0x1F) { + if (yych != '\t') goto yy491; + } else { + if (yych <= ' ') goto yy501; + if (yych == '.') goto yy497; + goto yy491; + } + } else { + if (yych <= '`') { + if (yych <= 'A') goto yy503; + if (yych == 'P') goto yy503; + goto yy491; + } else { + if (yych <= 'a') goto yy503; + if (yych == 'p') goto yy503; + goto yy491; + } + } +yy501: + YYDEBUG(501, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + YYDEBUG(502, *YYCURSOR); + if (yych <= 'A') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy501; + goto yy57; + } else { + if (yych <= ' ') goto yy501; + if (yych <= '@') goto yy57; + } + } else { + if (yych <= '`') { + if (yych != 'P') goto yy57; + } else { + if (yych <= 'a') goto yy503; + if (yych != 'p') goto yy57; + } + } +yy503: + YYDEBUG(503, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych != '.') goto yy57; + } else { + if (yych <= 'M') goto yy505; + if (yych == 'm') goto yy505; + goto yy57; + } + YYDEBUG(504, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy505; + if (yych != 'm') goto yy57; +yy505: + YYDEBUG(505, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy488; + if (yych == '\t') goto yy488; + goto yy57; + } else { + if (yych <= ' ') goto yy488; + if (yych != '.') goto yy57; + } + YYDEBUG(506, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\t') { + if (yych <= 0x00) goto yy488; + if (yych <= 0x08) goto yy57; + goto yy488; + } else { + if (yych == ' ') goto yy488; + goto yy57; + } +yy507: + YYDEBUG(507, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ':') { + if (yych <= ' ') { + if (yych == '\t') goto yy508; + if (yych <= 0x1F) goto yy491; + } else { + if (yych == '.') goto yy493; + if (yych <= '9') goto yy491; + goto yy511; + } + } else { + if (yych <= 'P') { + if (yych == 'A') goto yy510; + if (yych <= 'O') goto yy491; + goto yy510; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy491; + goto yy510; + } else { + if (yych == 'p') goto yy510; + goto yy491; + } + } + } +yy508: + YYDEBUG(508, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + YYDEBUG(509, *YYCURSOR); + if (yych <= 'A') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy508; + goto yy57; + } else { + if (yych <= ' ') goto yy508; + if (yych <= '@') goto yy57; + } + } else { + if (yych <= '`') { + if (yych != 'P') goto yy57; + } else { + if (yych <= 'a') goto yy510; + if (yych != 'p') goto yy57; + } + } +yy510: + YYDEBUG(510, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych == '.') goto yy527; + goto yy57; + } else { + if (yych <= 'M') goto yy528; + if (yych == 'm') goto yy528; + goto yy57; + } +yy511: + YYDEBUG(511, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy512; + if (yych <= '6') goto yy513; + if (yych <= '9') goto yy496; + goto yy57; +yy512: + YYDEBUG(512, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy497; + if (yych <= '/') goto yy491; + if (yych <= '9') goto yy514; + goto yy491; +yy513: + YYDEBUG(513, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy497; + if (yych != '0') goto yy491; +yy514: + YYDEBUG(514, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ':') { + if (yych <= ' ') { + if (yych == '\t') goto yy501; + if (yych <= 0x1F) goto yy491; + goto yy501; + } else { + if (yych == '.') goto yy515; + if (yych <= '9') goto yy491; + goto yy516; + } + } else { + if (yych <= 'P') { + if (yych == 'A') goto yy503; + if (yych <= 'O') goto yy491; + goto yy503; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy491; + goto yy503; + } else { + if (yych == 'p') goto yy503; + goto yy491; + } + } + } +yy515: + YYDEBUG(515, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy525; + goto yy57; +yy516: + YYDEBUG(516, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; +yy517: + YYDEBUG(517, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + YYDEBUG(518, *YYCURSOR); + if (yych <= 'O') { + if (yych <= '9') { + if (yych <= '/') goto yy57; + goto yy517; + } else { + if (yych != 'A') goto yy57; + } + } else { + if (yych <= 'a') { + if (yych <= 'P') goto yy519; + if (yych <= '`') goto yy57; + } else { + if (yych != 'p') goto yy57; + } + } +yy519: + YYDEBUG(519, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych != '.') goto yy57; + } else { + if (yych <= 'M') goto yy521; + if (yych == 'm') goto yy521; + goto yy57; + } + YYDEBUG(520, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy521; + if (yych != 'm') goto yy57; +yy521: + YYDEBUG(521, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy523; + if (yych == '\t') goto yy523; + goto yy57; + } else { + if (yych <= ' ') goto yy523; + if (yych != '.') goto yy57; + } + YYDEBUG(522, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\t') { + if (yych <= 0x00) goto yy523; + if (yych <= 0x08) goto yy57; + } else { + if (yych != ' ') goto yy57; + } +yy523: + YYDEBUG(523, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(524, *YYCURSOR); + { + DEBUG_OUTPUT("mssqltime"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->s = timelib_get_nr((char **) &ptr, 2); + + if (*ptr == ':' || *ptr == '.') { + s->time->f = timelib_get_frac_nr((char **) &ptr, 8); + } + } + timelib_eat_spaces((char **) &ptr); + s->time->h += timelib_meridian((char **) &ptr, s->time->h); + TIMELIB_DEINIT; + return TIMELIB_TIME24_WITH_ZONE; + } +yy525: + YYDEBUG(525, *YYCURSOR); + yyaccept = 11; + YYMARKER = ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + YYDEBUG(526, *YYCURSOR); + if (yych <= 'O') { + if (yych <= '9') { + if (yych <= '/') goto yy491; + goto yy525; + } else { + if (yych == 'A') goto yy519; + goto yy491; + } + } else { + if (yych <= 'a') { + if (yych <= 'P') goto yy519; + if (yych <= '`') goto yy491; + goto yy519; + } else { + if (yych == 'p') goto yy519; + goto yy491; + } + } +yy527: + YYDEBUG(527, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy528; + if (yych != 'm') goto yy57; +yy528: + YYDEBUG(528, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy488; + if (yych == '\t') goto yy488; + goto yy57; + } else { + if (yych <= ' ') goto yy488; + if (yych != '.') goto yy57; + } + YYDEBUG(529, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\t') { + if (yych <= 0x00) goto yy488; + if (yych <= 0x08) goto yy57; + goto yy488; + } else { + if (yych == ' ') goto yy488; + goto yy57; + } +yy530: + YYDEBUG(530, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'V') goto yy531; + if (yych != 'v') goto yy57; +yy531: + YYDEBUG(531, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych != '\t') goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + } + } else { + if (yych <= 'D') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'E') goto yy536; + if (yych == 'e') goto yy536; + goto yy476; + } + } +yy532: + YYDEBUG(532, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4); + yych = *YYCURSOR; +yy533: + YYDEBUG(533, *YYCURSOR); + if (yych <= ' ') { + if (yych == '\t') goto yy532; + if (yych <= 0x1F) goto yy57; + goto yy532; + } else { + if (yych <= '.') { + if (yych <= ',') goto yy57; + goto yy532; + } else { + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; + } + } +yy534: + YYDEBUG(534, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '/') goto yy535; + if (yych <= '9') goto yy541; +yy535: + YYDEBUG(535, *YYCURSOR); + { + int length = 0; + DEBUG_OUTPUT("datefull"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr((char **) &ptr, 2); + timelib_skip_day_suffix((char **) &ptr); + s->time->m = timelib_get_month((char **) &ptr); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_FULL; + } +yy536: + YYDEBUG(536, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy537; + if (yych != 'm') goto yy57; +yy537: + YYDEBUG(537, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy538; + if (yych != 'b') goto yy57; +yy538: + YYDEBUG(538, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy539; + if (yych != 'e') goto yy57; +yy539: + YYDEBUG(539, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy540; + if (yych != 'r') goto yy57; +yy540: + YYDEBUG(540, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ' ') { + if (yych == '\t') goto yy532; + if (yych <= 0x1F) goto yy476; + goto yy532; + } else { + if (yych <= '.') { + if (yych <= ',') goto yy476; + goto yy532; + } else { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } + } +yy541: + YYDEBUG(541, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy535; + if (yych >= ':') goto yy535; +yy542: + YYDEBUG(542, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy535; + if (yych >= ':') goto yy535; + YYDEBUG(543, *YYCURSOR); + yych = *++YYCURSOR; + goto yy535; +yy544: + YYDEBUG(544, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy545; + if (yych != 't') goto yy57; +yy545: + YYDEBUG(545, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + goto yy532; + } + } else { + if (yych <= 'N') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'O') goto yy546; + if (yych != 'o') goto yy476; + } + } +yy546: + YYDEBUG(546, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy547; + if (yych != 'b') goto yy57; +yy547: + YYDEBUG(547, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy548; + if (yych != 'e') goto yy57; +yy548: + YYDEBUG(548, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy540; + if (yych == 'r') goto yy540; + goto yy57; +yy549: + YYDEBUG(549, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy553; + if (yych == 'g') goto yy553; + goto yy57; +yy550: + YYDEBUG(550, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy551; + if (yych != 'r') goto yy57; +yy551: + YYDEBUG(551, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + goto yy532; + } + } else { + if (yych <= 'H') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'I') goto yy552; + if (yych != 'i') goto yy476; + } + } +yy552: + YYDEBUG(552, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy540; + if (yych == 'l') goto yy540; + goto yy57; +yy553: + YYDEBUG(553, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + goto yy532; + } + } else { + if (yych <= 'T') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'U') goto yy554; + if (yych != 'u') goto yy476; + } + } +yy554: + YYDEBUG(554, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy555; + if (yych != 's') goto yy57; +yy555: + YYDEBUG(555, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy540; + if (yych == 't') goto yy540; + goto yy57; +yy556: + YYDEBUG(556, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych == 'L') goto yy563; + if (yych <= 'M') goto yy57; + goto yy562; + } else { + if (yych <= 'l') { + if (yych <= 'k') goto yy57; + goto yy563; + } else { + if (yych == 'n') goto yy562; + goto yy57; + } + } +yy557: + YYDEBUG(557, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy558; + if (yych != 'n') goto yy57; +yy558: + YYDEBUG(558, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + goto yy532; + } + } else { + if (yych <= 'T') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'U') goto yy559; + if (yych != 'u') goto yy476; + } + } +yy559: + YYDEBUG(559, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy560; + if (yych != 'a') goto yy57; +yy560: + YYDEBUG(560, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy561; + if (yych != 'r') goto yy57; +yy561: + YYDEBUG(561, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy540; + if (yych == 'y') goto yy540; + goto yy57; +yy562: + YYDEBUG(562, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + goto yy532; + } + } else { + if (yych <= 'D') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'E') goto yy540; + if (yych == 'e') goto yy540; + goto yy476; + } + } +yy563: + YYDEBUG(563, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + goto yy532; + } + } else { + if (yych <= 'X') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'Y') goto yy540; + if (yych == 'y') goto yy540; + goto yy476; + } + } +yy564: + YYDEBUG(564, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy476; + goto yy532; + } else { + if (yych == ' ') goto yy532; + goto yy476; + } + } else { + if (yych <= '9') { + if (yych <= '.') goto yy532; + if (yych <= '/') goto yy476; + goto yy534; + } else { + if (yych == 'I') goto yy540; + goto yy476; + } + } +yy565: + YYDEBUG(565, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy476; + goto yy532; + } else { + if (yych == ' ') goto yy532; + goto yy476; + } + } else { + if (yych <= '9') { + if (yych <= '.') goto yy532; + if (yych <= '/') goto yy476; + goto yy534; + } else { + if (yych != 'I') goto yy476; + } + } + YYDEBUG(566, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy476; + goto yy532; + } else { + if (yych == ' ') goto yy532; + goto yy476; + } + } else { + if (yych <= '9') { + if (yych <= '.') goto yy532; + if (yych <= '/') goto yy476; + goto yy534; + } else { + if (yych == 'I') goto yy540; + goto yy476; + } + } +yy567: + YYDEBUG(567, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy476; + goto yy532; + } else { + if (yych == ' ') goto yy532; + goto yy476; + } + } else { + if (yych <= '9') { + if (yych <= '.') goto yy532; + if (yych <= '/') goto yy476; + goto yy534; + } else { + if (yych == 'I') goto yy540; + goto yy476; + } + } +yy568: + YYDEBUG(568, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ',') goto yy491; + if (yych <= '-') goto yy602; + goto yy601; + } else { + if (yych <= '/') goto yy491; + if (yych <= '9') goto yy615; + if (yych <= ':') goto yy493; + goto yy491; + } +yy569: + YYDEBUG(569, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') goto yy491; + if (yych <= '-') goto yy602; + if (yych <= '.') goto yy601; + goto yy491; + } else { + if (yych <= '2') goto yy615; + if (yych <= '9') goto yy614; + if (yych <= ':') goto yy493; + goto yy491; + } +yy570: + YYDEBUG(570, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ',') goto yy491; + if (yych <= '-') goto yy602; + goto yy601; + } else { + if (yych <= '/') goto yy491; + if (yych <= '9') goto yy614; + if (yych <= ':') goto yy493; + goto yy491; + } +yy571: + YYDEBUG(571, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ',') goto yy491; + if (yych <= '-') goto yy602; + goto yy601; + } else { + if (yych == ':') goto yy493; + goto yy491; + } +yy572: + YYDEBUG(572, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy595; + if (yych == 'e') goto yy595; + goto yy57; +yy573: + YYDEBUG(573, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy592; + if (yych == 'a') goto yy592; + goto yy57; +yy574: + YYDEBUG(574, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'P') goto yy550; + if (yych <= 'T') goto yy57; + goto yy549; + } else { + if (yych <= 'p') { + if (yych <= 'o') goto yy57; + goto yy550; + } else { + if (yych == 'u') goto yy549; + goto yy57; + } + } +yy575: + YYDEBUG(575, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy585; + if (yych == 'e') goto yy585; + goto yy57; +yy576: + YYDEBUG(576, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy579; + if (yych == 'e') goto yy579; + goto yy57; +yy577: + YYDEBUG(577, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13); + yych = *YYCURSOR; +yy578: + YYDEBUG(578, *YYCURSOR); + YYDEBUG(-1, yych); + switch (yych) { + case '\t': + case ' ': + case '-': + case '.': goto yy577; + case 'A': + case 'a': goto yy574; + case 'D': + case 'd': goto yy576; + case 'F': + case 'f': goto yy572; + case 'I': goto yy475; + case 'J': + case 'j': goto yy479; + case 'M': + case 'm': goto yy573; + case 'N': + case 'n': goto yy482; + case 'O': + case 'o': goto yy481; + case 'S': + case 's': goto yy575; + case 'V': goto yy477; + case 'X': goto yy478; + default: goto yy57; + } +yy579: + YYDEBUG(579, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy580; + if (yych != 'c') goto yy57; +yy580: + YYDEBUG(580, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + goto yy532; + } + } else { + if (yych <= 'D') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'E') goto yy581; + if (yych != 'e') goto yy476; + } + } +yy581: + YYDEBUG(581, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy582; + if (yych != 'm') goto yy57; +yy582: + YYDEBUG(582, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy583; + if (yych != 'b') goto yy57; +yy583: + YYDEBUG(583, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy584; + if (yych != 'e') goto yy57; +yy584: + YYDEBUG(584, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy540; + if (yych == 'r') goto yy540; + goto yy57; +yy585: + YYDEBUG(585, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy586; + if (yych != 'p') goto yy57; +yy586: + YYDEBUG(586, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + goto yy532; + } + } else { + if (yych <= 'S') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'T') goto yy587; + if (yych != 't') goto yy476; + } + } +yy587: + YYDEBUG(587, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + goto yy532; + } + } else { + if (yych <= 'D') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'E') goto yy588; + if (yych != 'e') goto yy476; + } + } +yy588: + YYDEBUG(588, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy589; + if (yych != 'm') goto yy57; +yy589: + YYDEBUG(589, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy590; + if (yych != 'b') goto yy57; +yy590: + YYDEBUG(590, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy591; + if (yych != 'e') goto yy57; +yy591: + YYDEBUG(591, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy540; + if (yych == 'r') goto yy540; + goto yy57; +yy592: + YYDEBUG(592, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych == 'R') goto yy593; + if (yych <= 'X') goto yy57; + goto yy540; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy57; + } else { + if (yych == 'y') goto yy540; + goto yy57; + } + } +yy593: + YYDEBUG(593, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + goto yy532; + } + } else { + if (yych <= 'B') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'C') goto yy594; + if (yych != 'c') goto yy476; + } + } +yy594: + YYDEBUG(594, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy540; + if (yych == 'h') goto yy540; + goto yy57; +yy595: + YYDEBUG(595, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy596; + if (yych != 'b') goto yy57; +yy596: + YYDEBUG(596, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + goto yy532; + } + } else { + if (yych <= 'Q') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'R') goto yy597; + if (yych != 'r') goto yy476; + } + } +yy597: + YYDEBUG(597, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy598; + if (yych != 'u') goto yy57; +yy598: + YYDEBUG(598, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy599; + if (yych != 'a') goto yy57; +yy599: + YYDEBUG(599, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy600; + if (yych != 'r') goto yy57; +yy600: + YYDEBUG(600, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy540; + if (yych == 'y') goto yy540; + goto yy57; +yy601: + YYDEBUG(601, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy608; + if (yych <= '6') goto yy609; + if (yych <= '9') goto yy610; + goto yy57; +yy602: + YYDEBUG(602, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; + YYDEBUG(603, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; +yy604: + YYDEBUG(604, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; +yy605: + YYDEBUG(605, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; + YYDEBUG(606, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(607, *YYCURSOR); + { + DEBUG_OUTPUT("pointed date YYYY"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr((char **) &ptr, 2); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->y = timelib_get_nr((char **) &ptr, 4); + TIMELIB_DEINIT; + return TIMELIB_DATE_FULL_POINTED; + } +yy608: + YYDEBUG(608, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy497; + if (yych <= '/') goto yy491; + if (yych <= '9') goto yy613; + goto yy491; +yy609: + YYDEBUG(609, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy497; + goto yy491; + } else { + if (yych <= '0') goto yy613; + if (yych <= '9') goto yy611; + goto yy491; + } +yy610: + YYDEBUG(610, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy497; + if (yych <= '/') goto yy491; + if (yych >= ':') goto yy491; +yy611: + YYDEBUG(611, *YYCURSOR); + yyaccept = 12; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy612; + if (yych <= '9') goto yy605; +yy612: + YYDEBUG(612, *YYCURSOR); + { + int length = 0; + DEBUG_OUTPUT("pointed date YY"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr((char **) &ptr, 2); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->y = timelib_get_nr_ex((char **) &ptr, 2, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_FULL_POINTED; + } +yy613: + YYDEBUG(613, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= ' ') { + if (yych == '\t') goto yy501; + if (yych <= 0x1F) goto yy491; + goto yy501; + } else { + if (yych == '.') goto yy497; + if (yych <= '/') goto yy491; + goto yy605; + } + } else { + if (yych <= 'P') { + if (yych == 'A') goto yy503; + if (yych <= 'O') goto yy491; + goto yy503; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy491; + goto yy503; + } else { + if (yych == 'p') goto yy503; + goto yy491; + } + } + } +yy614: + YYDEBUG(614, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ':') { + if (yych <= ' ') { + if (yych == '\t') goto yy508; + if (yych <= 0x1F) goto yy491; + goto yy508; + } else { + if (yych == '.') goto yy493; + if (yych <= '9') goto yy491; + goto yy493; + } + } else { + if (yych <= 'P') { + if (yych == 'A') goto yy510; + if (yych <= 'O') goto yy491; + goto yy510; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy491; + goto yy510; + } else { + if (yych == 'p') goto yy510; + goto yy491; + } + } + } +yy615: + YYDEBUG(615, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ':') { + if (yych <= ' ') { + if (yych == '\t') goto yy508; + if (yych <= 0x1F) goto yy491; + goto yy508; + } else { + if (yych <= '-') { + if (yych <= ',') goto yy491; + goto yy602; + } else { + if (yych <= '.') goto yy601; + if (yych <= '9') goto yy491; + goto yy493; + } + } + } else { + if (yych <= 'P') { + if (yych == 'A') goto yy510; + if (yych <= 'O') goto yy491; + goto yy510; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy491; + goto yy510; + } else { + if (yych == 'p') goto yy510; + goto yy491; + } + } + } +yy616: + YYDEBUG(616, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= ',') goto yy57; + if (yych <= '-') goto yy655; + goto yy602; + } else { + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy618; + goto yy57; + } +yy617: + YYDEBUG(617, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= ',') goto yy57; + if (yych <= '-') goto yy655; + goto yy602; + } else { + if (yych <= '/') goto yy57; + if (yych >= '3') goto yy57; + } +yy618: + YYDEBUG(618, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ',') goto yy57; + if (yych <= '-') goto yy655; + if (yych <= '.') goto yy602; + goto yy57; +yy619: + YYDEBUG(619, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'A') goto yy651; + if (yych <= 'T') goto yy57; + goto yy650; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy57; + goto yy651; + } else { + if (yych == 'u') goto yy650; + goto yy57; + } + } +yy620: + YYDEBUG(620, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy648; + if (yych == 'e') goto yy648; + goto yy57; +yy621: + YYDEBUG(621, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy645; + if (yych == 'a') goto yy645; + goto yy57; +yy622: + YYDEBUG(622, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'P') goto yy642; + if (yych <= 'T') goto yy57; + goto yy641; + } else { + if (yych <= 'p') { + if (yych <= 'o') goto yy57; + goto yy642; + } else { + if (yych == 'u') goto yy641; + goto yy57; + } + } +yy623: + YYDEBUG(623, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy638; + if (yych == 'e') goto yy638; + goto yy57; +yy624: + YYDEBUG(624, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy636; + if (yych == 'c') goto yy636; + goto yy57; +yy625: + YYDEBUG(625, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy634; + if (yych == 'o') goto yy634; + goto yy57; +yy626: + YYDEBUG(626, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy627; + if (yych != 'e') goto yy57; +yy627: + YYDEBUG(627, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy628; + if (yych != 'c') goto yy57; +yy628: + YYDEBUG(628, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + if (yych >= '.') goto yy532; + } + } else { + if (yych <= 'D') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'E') goto yy581; + if (yych == 'e') goto yy581; + goto yy476; + } + } +yy629: + YYDEBUG(629, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy533; + if (yych <= '0') goto yy630; + if (yych <= '2') goto yy631; + if (yych <= '3') goto yy632; + goto yy533; +yy630: + YYDEBUG(630, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy535; + if (yych <= '9') goto yy633; + goto yy535; +yy631: + YYDEBUG(631, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy535; + if (yych <= '9') goto yy633; + goto yy535; +yy632: + YYDEBUG(632, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy535; + if (yych <= '1') goto yy633; + if (yych <= '9') goto yy541; + goto yy535; +yy633: + YYDEBUG(633, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy535; + if (yych <= '9') goto yy542; + goto yy535; +yy634: + YYDEBUG(634, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'V') goto yy635; + if (yych != 'v') goto yy57; +yy635: + YYDEBUG(635, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + if (yych <= '-') goto yy629; + goto yy532; + } + } else { + if (yych <= 'D') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'E') goto yy536; + if (yych == 'e') goto yy536; + goto yy476; + } + } +yy636: + YYDEBUG(636, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy637; + if (yych != 't') goto yy57; +yy637: + YYDEBUG(637, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + if (yych <= '-') goto yy629; + goto yy532; + } + } else { + if (yych <= 'N') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'O') goto yy546; + if (yych == 'o') goto yy546; + goto yy476; + } + } +yy638: + YYDEBUG(638, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy639; + if (yych != 'p') goto yy57; +yy639: + YYDEBUG(639, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + if (yych <= '-') goto yy629; + goto yy532; + } + } else { + if (yych <= 'S') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'T') goto yy640; + if (yych != 't') goto yy476; + } + } +yy640: + YYDEBUG(640, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + if (yych <= '-') goto yy629; + goto yy532; + } + } else { + if (yych <= 'D') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'E') goto yy588; + if (yych == 'e') goto yy588; + goto yy476; + } + } +yy641: + YYDEBUG(641, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy644; + if (yych == 'g') goto yy644; + goto yy57; +yy642: + YYDEBUG(642, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy643; + if (yych != 'r') goto yy57; +yy643: + YYDEBUG(643, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + if (yych <= '-') goto yy629; + goto yy532; + } + } else { + if (yych <= 'H') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'I') goto yy552; + if (yych == 'i') goto yy552; + goto yy476; + } + } +yy644: + YYDEBUG(644, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + if (yych <= '-') goto yy629; + goto yy532; + } + } else { + if (yych <= 'T') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'U') goto yy554; + if (yych == 'u') goto yy554; + goto yy476; + } + } +yy645: + YYDEBUG(645, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych == 'R') goto yy646; + if (yych <= 'X') goto yy57; + goto yy647; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy57; + } else { + if (yych == 'y') goto yy647; + goto yy57; + } + } +yy646: + YYDEBUG(646, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + if (yych <= '-') goto yy629; + goto yy532; + } + } else { + if (yych <= 'B') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'C') goto yy594; + if (yych == 'c') goto yy594; + goto yy476; + } + } +yy647: + YYDEBUG(647, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy476; + goto yy532; + } else { + if (yych == ' ') goto yy532; + goto yy476; + } + } else { + if (yych <= '.') { + if (yych <= '-') goto yy629; + goto yy532; + } else { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } + } +yy648: + YYDEBUG(648, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy649; + if (yych != 'b') goto yy57; +yy649: + YYDEBUG(649, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + if (yych <= '-') goto yy629; + goto yy532; + } + } else { + if (yych <= 'Q') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'R') goto yy597; + if (yych == 'r') goto yy597; + goto yy476; + } + } +yy650: + YYDEBUG(650, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych == 'L') goto yy654; + if (yych <= 'M') goto yy57; + goto yy653; + } else { + if (yych <= 'l') { + if (yych <= 'k') goto yy57; + goto yy654; + } else { + if (yych == 'n') goto yy653; + goto yy57; + } + } +yy651: + YYDEBUG(651, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy652; + if (yych != 'n') goto yy57; +yy652: + YYDEBUG(652, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + if (yych <= '-') goto yy629; + goto yy532; + } + } else { + if (yych <= 'T') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'U') goto yy559; + if (yych == 'u') goto yy559; + goto yy476; + } + } +yy653: + YYDEBUG(653, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + if (yych <= '-') goto yy629; + goto yy532; + } + } else { + if (yych <= 'D') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'E') goto yy540; + if (yych == 'e') goto yy540; + goto yy476; + } + } +yy654: + YYDEBUG(654, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy532; + goto yy476; + } else { + if (yych <= ' ') goto yy532; + if (yych <= ',') goto yy476; + if (yych <= '-') goto yy629; + goto yy532; + } + } else { + if (yych <= 'X') { + if (yych <= '/') goto yy476; + if (yych <= '9') goto yy534; + goto yy476; + } else { + if (yych <= 'Y') goto yy540; + if (yych == 'y') goto yy540; + goto yy476; + } + } +yy655: + YYDEBUG(655, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '2') goto yy656; + if (yych <= '3') goto yy658; + if (yych <= '9') goto yy659; + goto yy57; +yy656: + YYDEBUG(656, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy657; + if (yych <= '9') goto yy665; + if (yych >= 'n') goto yy661; + } else { + if (yych <= 'r') { + if (yych >= 'r') goto yy662; + } else { + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + } + } +yy657: + YYDEBUG(657, *YYCURSOR); + { + int length = 0; + DEBUG_OUTPUT("gnudateshort"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->d = timelib_get_nr((char **) &ptr, 2); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_ISO_DATE; + } +yy658: + YYDEBUG(658, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '1') { + if (yych <= '/') goto yy657; + goto yy665; + } else { + if (yych <= '9') goto yy604; + if (yych <= 'm') goto yy657; + goto yy661; + } + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy657; + goto yy662; + } else { + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + goto yy657; + } + } +yy659: + YYDEBUG(659, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy657; + if (yych <= '9') goto yy604; + if (yych <= 'm') goto yy657; + goto yy661; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy657; + goto yy662; + } else { + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + goto yy657; + } + } +yy660: + YYDEBUG(660, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 't') goto yy664; + goto yy57; +yy661: + YYDEBUG(661, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'd') goto yy664; + goto yy57; +yy662: + YYDEBUG(662, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'd') goto yy664; + goto yy57; +yy663: + YYDEBUG(663, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != 'h') goto yy57; +yy664: + YYDEBUG(664, *YYCURSOR); + yych = *++YYCURSOR; + goto yy657; +yy665: + YYDEBUG(665, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy657; + if (yych <= '9') goto yy605; + if (yych <= 'm') goto yy657; + goto yy661; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy657; + goto yy662; + } else { + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + goto yy657; + } + } +yy666: + YYDEBUG(666, *YYCURSOR); + yyaccept = 14; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') { + if (yych >= '/') goto yy723; + } else { + if (yych <= '9') goto yy669; + if (yych >= 'n') goto yy720; + } + } else { + if (yych <= 'r') { + if (yych >= 'r') goto yy721; + } else { + if (yych <= 's') goto yy719; + if (yych <= 't') goto yy722; + } + } +yy667: + YYDEBUG(667, *YYCURSOR); + { + int length = 0; + DEBUG_OUTPUT("americanshort | american"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->d = timelib_get_nr((char **) &ptr, 2); + if (*ptr == '/') { + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + } + TIMELIB_DEINIT; + return TIMELIB_AMERICAN; + } +yy668: + YYDEBUG(668, *YYCURSOR); + yyaccept = 14; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') { + if (yych <= '.') goto yy667; + goto yy723; + } else { + if (yych <= '1') goto yy669; + if (yych <= 'm') goto yy667; + goto yy720; + } + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy667; + goto yy721; + } else { + if (yych <= 's') goto yy719; + if (yych <= 't') goto yy722; + goto yy667; + } + } +yy669: + YYDEBUG(669, *YYCURSOR); + yyaccept = 14; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych == '/') goto yy723; + if (yych <= 'm') goto yy667; + goto yy720; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy667; + goto yy721; + } else { + if (yych <= 's') goto yy719; + if (yych <= 't') goto yy722; + goto yy667; + } + } +yy670: + YYDEBUG(670, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'A') goto yy718; + if (yych <= 'T') goto yy57; + goto yy717; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy57; + goto yy718; + } else { + if (yych == 'u') goto yy717; + goto yy57; + } + } +yy671: + YYDEBUG(671, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy716; + if (yych == 'e') goto yy716; + goto yy57; +yy672: + YYDEBUG(672, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy715; + if (yych == 'a') goto yy715; + goto yy57; +yy673: + YYDEBUG(673, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'P') goto yy714; + if (yych <= 'T') goto yy57; + goto yy713; + } else { + if (yych <= 'p') { + if (yych <= 'o') goto yy57; + goto yy714; + } else { + if (yych == 'u') goto yy713; + goto yy57; + } + } +yy674: + YYDEBUG(674, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy711; + if (yych == 'e') goto yy711; + goto yy57; +yy675: + YYDEBUG(675, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy710; + if (yych == 'c') goto yy710; + goto yy57; +yy676: + YYDEBUG(676, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy709; + if (yych == 'o') goto yy709; + goto yy57; +yy677: + YYDEBUG(677, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy678; + if (yych != 'e') goto yy57; +yy678: + YYDEBUG(678, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy679; + if (yych != 'c') goto yy57; +yy679: + YYDEBUG(679, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '/') goto yy57; +yy680: + YYDEBUG(680, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; + YYDEBUG(681, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; + YYDEBUG(682, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; + YYDEBUG(683, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; + YYDEBUG(684, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy57; + YYDEBUG(685, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '1') goto yy686; + if (yych <= '2') goto yy687; + goto yy57; +yy686: + YYDEBUG(686, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy688; + goto yy57; +yy687: + YYDEBUG(687, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= '5') goto yy57; +yy688: + YYDEBUG(688, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy57; + YYDEBUG(689, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= '6') goto yy57; + YYDEBUG(690, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; + YYDEBUG(691, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy57; + YYDEBUG(692, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy693; + if (yych <= '6') goto yy694; + goto yy57; +yy693: + YYDEBUG(693, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy695; + goto yy57; +yy694: + YYDEBUG(694, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '0') goto yy57; +yy695: + YYDEBUG(695, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\t') goto yy696; + if (yych != ' ') goto yy57; +yy696: + YYDEBUG(696, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); + yych = *YYCURSOR; + YYDEBUG(697, *YYCURSOR); + if (yych <= '*') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy57; + goto yy696; + } else { + if (yych == ' ') goto yy696; + goto yy57; + } + } else { + if (yych <= '-') { + if (yych == ',') goto yy57; + goto yy699; + } else { + if (yych != 'G') goto yy57; + } + } + YYDEBUG(698, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy707; + goto yy57; +yy699: + YYDEBUG(699, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '1') goto yy700; + if (yych <= '2') goto yy702; + if (yych <= '9') goto yy703; + goto yy57; +yy700: + YYDEBUG(700, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '/') goto yy701; + if (yych <= '9') goto yy703; + if (yych <= ':') goto yy704; +yy701: + YYDEBUG(701, *YYCURSOR); + { + int tz_not_found; + DEBUG_OUTPUT("clf"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr((char **) &ptr, 2); + s->time->m = timelib_get_month((char **) &ptr); + s->time->y = timelib_get_nr((char **) &ptr, 4); + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + s->time->s = timelib_get_nr((char **) &ptr, 2); + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, "The timezone could not be found in the database"); + } + TIMELIB_DEINIT; + return TIMELIB_CLF; + } +yy702: + YYDEBUG(702, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '5') { + if (yych <= '/') goto yy701; + if (yych >= '5') goto yy705; + } else { + if (yych <= '9') goto yy706; + if (yych <= ':') goto yy704; + goto yy701; + } +yy703: + YYDEBUG(703, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy701; + if (yych <= '5') goto yy705; + if (yych <= '9') goto yy706; + if (yych >= ';') goto yy701; +yy704: + YYDEBUG(704, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy701; + if (yych <= '5') goto yy705; + if (yych <= '9') goto yy706; + goto yy701; +yy705: + YYDEBUG(705, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy701; + if (yych >= ':') goto yy701; +yy706: + YYDEBUG(706, *YYCURSOR); + yych = *++YYCURSOR; + goto yy701; +yy707: + YYDEBUG(707, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != 'T') goto yy57; + YYDEBUG(708, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '+') goto yy699; + if (yych == '-') goto yy699; + goto yy57; +yy709: + YYDEBUG(709, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'V') goto yy679; + if (yych == 'v') goto yy679; + goto yy57; +yy710: + YYDEBUG(710, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy679; + if (yych == 't') goto yy679; + goto yy57; +yy711: + YYDEBUG(711, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy712; + if (yych != 'p') goto yy57; +yy712: + YYDEBUG(712, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych == '/') goto yy680; + goto yy57; + } else { + if (yych <= 'T') goto yy679; + if (yych == 't') goto yy679; + goto yy57; + } +yy713: + YYDEBUG(713, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy679; + if (yych == 'g') goto yy679; + goto yy57; +yy714: + YYDEBUG(714, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy679; + if (yych == 'r') goto yy679; + goto yy57; +yy715: + YYDEBUG(715, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych == 'R') goto yy679; + if (yych <= 'X') goto yy57; + goto yy679; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy57; + goto yy679; + } else { + if (yych == 'y') goto yy679; + goto yy57; + } + } +yy716: + YYDEBUG(716, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy679; + if (yych == 'b') goto yy679; + goto yy57; +yy717: + YYDEBUG(717, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych == 'L') goto yy679; + if (yych <= 'M') goto yy57; + goto yy679; + } else { + if (yych <= 'l') { + if (yych <= 'k') goto yy57; + goto yy679; + } else { + if (yych == 'n') goto yy679; + goto yy57; + } + } +yy718: + YYDEBUG(718, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy679; + if (yych == 'n') goto yy679; + goto yy57; +yy719: + YYDEBUG(719, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 't') goto yy728; + goto yy57; +yy720: + YYDEBUG(720, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'd') goto yy728; + goto yy57; +yy721: + YYDEBUG(721, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'd') goto yy728; + goto yy57; +yy722: + YYDEBUG(722, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'h') goto yy728; + goto yy57; +yy723: + YYDEBUG(723, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; + YYDEBUG(724, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy667; + if (yych >= ':') goto yy667; + YYDEBUG(725, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy667; + if (yych >= ':') goto yy667; + YYDEBUG(726, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy667; + if (yych >= ':') goto yy667; + YYDEBUG(727, *YYCURSOR); + yych = *++YYCURSOR; + goto yy667; +yy728: + YYDEBUG(728, *YYCURSOR); + yyaccept = 14; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '/') goto yy723; + goto yy667; +yy729: + YYDEBUG(729, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ',') { + if (yych == '\t') goto yy731; + goto yy578; + } else { + if (yych <= '-') goto yy732; + if (yych <= '.') goto yy731; + if (yych >= '0') goto yy578; + } +yy730: + YYDEBUG(730, *YYCURSOR); + yych = *++YYCURSOR; + YYDEBUG(-1, yych); + switch (yych) { + case 'A': + case 'a': goto yy673; + case 'D': + case 'd': goto yy677; + case 'F': + case 'f': goto yy671; + case 'J': + case 'j': goto yy670; + case 'M': + case 'm': goto yy672; + case 'N': + case 'n': goto yy676; + case 'O': + case 'o': goto yy675; + case 'S': + case 's': goto yy674; + default: goto yy57; + } +yy731: + YYDEBUG(731, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy578; + if (yych <= '0') goto yy736; + if (yych <= '1') goto yy737; + if (yych <= '9') goto yy738; + goto yy578; +yy732: + YYDEBUG(732, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy578; + if (yych <= '0') goto yy733; + if (yych <= '1') goto yy734; + if (yych <= '9') goto yy735; + goto yy578; +yy733: + YYDEBUG(733, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ',') goto yy57; + if (yych <= '.') goto yy602; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy735; + goto yy57; +yy734: + YYDEBUG(734, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ',') goto yy57; + if (yych <= '.') goto yy602; + if (yych <= '/') goto yy57; + if (yych >= '3') goto yy57; +yy735: + YYDEBUG(735, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ',') goto yy57; + if (yych <= '.') goto yy602; + goto yy57; +yy736: + YYDEBUG(736, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= ',') goto yy57; + if (yych <= '-') goto yy602; + goto yy739; + } else { + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy738; + goto yy57; + } +yy737: + YYDEBUG(737, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= ',') goto yy57; + if (yych <= '-') goto yy602; + goto yy739; + } else { + if (yych <= '/') goto yy57; + if (yych >= '3') goto yy57; + } +yy738: + YYDEBUG(738, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ',') goto yy57; + if (yych <= '-') goto yy602; + if (yych >= '/') goto yy57; +yy739: + YYDEBUG(739, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; + YYDEBUG(740, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy611; + goto yy57; +yy741: + YYDEBUG(741, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy785; + if (yych <= '/') goto yy61; + if (yych <= '9') goto yy783; + goto yy61; +yy742: + YYDEBUG(742, *YYCURSOR); + yych = *++YYCURSOR; + YYDEBUG(-1, yych); + switch (yych) { + case '0': goto yy751; + case '1': goto yy752; + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy753; + case 'A': + case 'a': goto yy746; + case 'D': + case 'd': goto yy750; + case 'F': + case 'f': goto yy744; + case 'J': + case 'j': goto yy743; + case 'M': + case 'm': goto yy745; + case 'N': + case 'n': goto yy749; + case 'O': + case 'o': goto yy748; + case 'S': + case 's': goto yy747; + default: goto yy57; + } +yy743: + YYDEBUG(743, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'A') goto yy782; + if (yych <= 'T') goto yy57; + goto yy781; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy57; + goto yy782; + } else { + if (yych == 'u') goto yy781; + goto yy57; + } + } +yy744: + YYDEBUG(744, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy780; + if (yych == 'e') goto yy780; + goto yy57; +yy745: + YYDEBUG(745, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy779; + if (yych == 'a') goto yy779; + goto yy57; +yy746: + YYDEBUG(746, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'P') goto yy778; + if (yych <= 'T') goto yy57; + goto yy777; + } else { + if (yych <= 'p') { + if (yych <= 'o') goto yy57; + goto yy778; + } else { + if (yych == 'u') goto yy777; + goto yy57; + } + } +yy747: + YYDEBUG(747, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy775; + if (yych == 'e') goto yy775; + goto yy57; +yy748: + YYDEBUG(748, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy774; + if (yych == 'c') goto yy774; + goto yy57; +yy749: + YYDEBUG(749, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy773; + if (yych == 'o') goto yy773; + goto yy57; +yy750: + YYDEBUG(750, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy765; + if (yych == 'e') goto yy765; + goto yy57; +yy751: + YYDEBUG(751, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy754; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy758; + goto yy57; +yy752: + YYDEBUG(752, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy754; + if (yych <= '/') goto yy57; + if (yych <= '2') goto yy758; + goto yy57; +yy753: + YYDEBUG(753, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '-') goto yy57; +yy754: + YYDEBUG(754, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '2') goto yy755; + if (yych <= '3') goto yy756; + if (yych <= '9') goto yy757; + goto yy57; +yy755: + YYDEBUG(755, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy657; + if (yych <= '9') goto yy757; + if (yych <= 'm') goto yy657; + goto yy661; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy657; + goto yy662; + } else { + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + goto yy657; + } + } +yy756: + YYDEBUG(756, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy657; + if (yych <= '1') goto yy757; + if (yych <= 'm') goto yy657; + goto yy661; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy657; + goto yy662; + } else { + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + goto yy657; + } + } +yy757: + YYDEBUG(757, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'q') { + if (yych == 'n') goto yy661; + goto yy657; + } else { + if (yych <= 'r') goto yy662; + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + goto yy657; + } +yy758: + YYDEBUG(758, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '-') goto yy57; + YYDEBUG(759, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '2') { + if (yych <= '/') goto yy57; + if (yych >= '1') goto yy761; + } else { + if (yych <= '3') goto yy762; + if (yych <= '9') goto yy757; + goto yy57; + } + YYDEBUG(760, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy657; + if (yych <= '9') goto yy763; + if (yych <= 'm') goto yy657; + goto yy661; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy657; + goto yy662; + } else { + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + goto yy657; + } + } +yy761: + YYDEBUG(761, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy657; + if (yych <= '9') goto yy763; + if (yych <= 'm') goto yy657; + goto yy661; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy657; + goto yy662; + } else { + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + goto yy657; + } + } +yy762: + YYDEBUG(762, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy657; + if (yych <= '1') goto yy763; + if (yych <= 'm') goto yy657; + goto yy661; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy657; + goto yy662; + } else { + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + goto yy657; + } + } +yy763: + YYDEBUG(763, *YYCURSOR); + yyaccept = 15; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'q') { + if (yych == 'n') goto yy661; + } else { + if (yych <= 'r') goto yy662; + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + } +yy764: + YYDEBUG(764, *YYCURSOR); + { + int length = 0; + DEBUG_OUTPUT("iso8601date2"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->d = timelib_get_nr((char **) &ptr, 2); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_ISO_DATE; + } +yy765: + YYDEBUG(765, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy766; + if (yych != 'c') goto yy57; +yy766: + YYDEBUG(766, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '-') goto yy57; +yy767: + YYDEBUG(767, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '0') goto yy768; + if (yych <= '2') goto yy769; + if (yych <= '3') goto yy770; + goto yy57; +yy768: + YYDEBUG(768, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy771; + goto yy57; +yy769: + YYDEBUG(769, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy771; + goto yy57; +yy770: + YYDEBUG(770, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= '2') goto yy57; +yy771: + YYDEBUG(771, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(772, *YYCURSOR); + { + int length = 0; + DEBUG_OUTPUT("pgtextreverse"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + s->time->m = timelib_get_month((char **) &ptr); + s->time->d = timelib_get_nr((char **) &ptr, 2); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_PG_TEXT; + } +yy773: + YYDEBUG(773, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'V') goto yy766; + if (yych == 'v') goto yy766; + goto yy57; +yy774: + YYDEBUG(774, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy766; + if (yych == 't') goto yy766; + goto yy57; +yy775: + YYDEBUG(775, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy776; + if (yych != 'p') goto yy57; +yy776: + YYDEBUG(776, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych == '-') goto yy767; + goto yy57; + } else { + if (yych <= 'T') goto yy766; + if (yych == 't') goto yy766; + goto yy57; + } +yy777: + YYDEBUG(777, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy766; + if (yych == 'g') goto yy766; + goto yy57; +yy778: + YYDEBUG(778, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy766; + if (yych == 'r') goto yy766; + goto yy57; +yy779: + YYDEBUG(779, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych == 'R') goto yy766; + if (yych <= 'X') goto yy57; + goto yy766; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy57; + goto yy766; + } else { + if (yych == 'y') goto yy766; + goto yy57; + } + } +yy780: + YYDEBUG(780, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy766; + if (yych == 'b') goto yy766; + goto yy57; +yy781: + YYDEBUG(781, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych == 'L') goto yy766; + if (yych <= 'M') goto yy57; + goto yy766; + } else { + if (yych <= 'l') { + if (yych <= 'k') goto yy57; + goto yy766; + } else { + if (yych == 'n') goto yy766; + goto yy57; + } + } +yy782: + YYDEBUG(782, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy766; + if (yych == 'n') goto yy766; + goto yy57; +yy783: + YYDEBUG(783, *YYCURSOR); + yyaccept = 16; + yych = *(YYMARKER = ++YYCURSOR); + YYDEBUG(-1, yych); + switch (yych) { + case '\t': + case ' ': + case 'A': + case 'D': + case 'F': + case 'H': + case 'I': + case 'J': + case 'M': + case 'N': + case 'O': + case 'S': + case 'T': + case 'V': + case 'X': + case 'Y': + case 'a': + case 'd': + case 'f': + case 'h': + case 'j': + case 'm': + case 'n': + case 'o': + case 's': + case 't': + case 'w': + case 'y': goto yy791; + case '-': goto yy788; + case '.': goto yy792; + case '/': goto yy789; + case '0': goto yy805; + case '1': goto yy806; + case '2': goto yy808; + case '3': goto yy809; + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy55; + case ':': goto yy807; + case 'W': goto yy810; + default: goto yy784; + } +yy784: + YYDEBUG(784, *YYCURSOR); + { + DEBUG_OUTPUT("year4"); + TIMELIB_INIT; + s->time->y = timelib_get_nr((char **) &ptr, 4); + TIMELIB_DEINIT; + return TIMELIB_CLF; + } +yy785: + YYDEBUG(785, *YYCURSOR); + yych = *++YYCURSOR; + YYDEBUG(-1, yych); + switch (yych) { + case '0': goto yy786; + case '1': goto yy787; + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy753; + case 'A': + case 'a': goto yy746; + case 'D': + case 'd': goto yy750; + case 'F': + case 'f': goto yy744; + case 'J': + case 'j': goto yy743; + case 'M': + case 'm': goto yy745; + case 'N': + case 'n': goto yy749; + case 'O': + case 'o': goto yy748; + case 'S': + case 's': goto yy747; + default: goto yy57; + } +yy786: + YYDEBUG(786, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy754; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy753; + goto yy57; +yy787: + YYDEBUG(787, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy754; + if (yych <= '/') goto yy57; + if (yych <= '2') goto yy753; + goto yy57; +yy788: + YYDEBUG(788, *YYCURSOR); + yych = *++YYCURSOR; + YYDEBUG(-1, yych); + switch (yych) { + case '0': goto yy973; + case '1': goto yy975; + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy976; + case 'A': + case 'a': goto yy967; + case 'D': + case 'd': goto yy971; + case 'F': + case 'f': goto yy965; + case 'J': + case 'j': goto yy964; + case 'M': + case 'm': goto yy966; + case 'N': + case 'n': goto yy970; + case 'O': + case 'o': goto yy969; + case 'S': + case 's': goto yy968; + case 'W': goto yy972; + default: goto yy939; + } +yy789: + YYDEBUG(789, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '0') goto yy947; + if (yych <= '1') goto yy948; + if (yych <= '9') goto yy949; + goto yy57; +yy790: + YYDEBUG(790, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11); + yych = *YYCURSOR; +yy791: + YYDEBUG(791, *YYCURSOR); + YYDEBUG(-1, yych); + switch (yych) { + case '\t': + case ' ': goto yy790; + case '-': + case '.': goto yy938; + case 'A': + case 'a': goto yy800; + case 'D': + case 'd': goto yy804; + case 'F': + case 'f': goto yy798; + case 'H': + case 'h': goto yy64; + case 'I': goto yy793; + case 'J': + case 'j': goto yy797; + case 'M': + case 'm': goto yy799; + case 'N': + case 'n': goto yy803; + case 'O': + case 'o': goto yy802; + case 'S': + case 's': goto yy801; + case 'T': + case 't': goto yy69; + case 'V': goto yy795; + case 'W': + case 'w': goto yy68; + case 'X': goto yy796; + case 'Y': + case 'y': goto yy67; + default: goto yy57; + } +yy792: + YYDEBUG(792, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy939; + if (yych <= '0') goto yy931; + if (yych <= '2') goto yy932; + if (yych <= '3') goto yy933; + goto yy939; +yy793: + YYDEBUG(793, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= 'U') { + if (yych == 'I') goto yy930; + } else { + if (yych == 'W') goto yy794; + if (yych <= 'X') goto yy884; + } +yy794: + YYDEBUG(794, *YYCURSOR); + { + int length = 0; + DEBUG_OUTPUT("datenodayrev"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + s->time->m = timelib_get_month((char **) &ptr); + s->time->d = 1; + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_NO_DAY; + } +yy795: + YYDEBUG(795, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy928; + goto yy794; +yy796: + YYDEBUG(796, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy927; + goto yy794; +yy797: + YYDEBUG(797, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'A') goto yy920; + if (yych <= 'T') goto yy57; + goto yy919; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy57; + goto yy920; + } else { + if (yych == 'u') goto yy919; + goto yy57; + } + } +yy798: + YYDEBUG(798, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= 'N') { + if (yych == 'E') goto yy913; + goto yy57; + } else { + if (yych <= 'O') goto yy99; + if (yych <= 'Q') goto yy57; + goto yy98; + } + } else { + if (yych <= 'n') { + if (yych == 'e') goto yy913; + goto yy57; + } else { + if (yych <= 'o') goto yy99; + if (yych == 'r') goto yy98; + goto yy57; + } + } +yy799: + YYDEBUG(799, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= 'H') { + if (yych == 'A') goto yy910; + goto yy57; + } else { + if (yych <= 'I') goto yy118; + if (yych <= 'N') goto yy57; + goto yy117; + } + } else { + if (yych <= 'h') { + if (yych == 'a') goto yy910; + goto yy57; + } else { + if (yych <= 'i') goto yy118; + if (yych == 'o') goto yy117; + goto yy57; + } + } +yy800: + YYDEBUG(800, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'P') goto yy904; + if (yych <= 'T') goto yy57; + goto yy903; + } else { + if (yych <= 'p') { + if (yych <= 'o') goto yy57; + goto yy904; + } else { + if (yych == 'u') goto yy903; + goto yy57; + } + } +yy801: + YYDEBUG(801, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= 'D') { + if (yych == 'A') goto yy127; + goto yy57; + } else { + if (yych <= 'E') goto yy896; + if (yych <= 'T') goto yy57; + goto yy126; + } + } else { + if (yych <= 'd') { + if (yych == 'a') goto yy127; + goto yy57; + } else { + if (yych <= 'e') goto yy896; + if (yych == 'u') goto yy126; + goto yy57; + } + } +yy802: + YYDEBUG(802, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy891; + if (yych == 'c') goto yy891; + goto yy57; +yy803: + YYDEBUG(803, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy885; + if (yych == 'o') goto yy885; + goto yy57; +yy804: + YYDEBUG(804, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych == 'A') goto yy114; + if (yych <= 'D') goto yy57; + goto yy878; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy57; + goto yy114; + } else { + if (yych == 'e') goto yy878; + goto yy57; + } + } +yy805: + YYDEBUG(805, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych <= '0') goto yy875; + if (yych <= '9') goto yy876; + goto yy61; +yy806: + YYDEBUG(806, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych <= '2') goto yy844; + if (yych <= '9') goto yy823; + goto yy61; +yy807: + YYDEBUG(807, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '0') goto yy824; + if (yych <= '1') goto yy825; + goto yy57; +yy808: + YYDEBUG(808, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych <= '9') goto yy823; + goto yy61; +yy809: + YYDEBUG(809, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych <= '5') goto yy819; + if (yych <= '6') goto yy820; + if (yych <= '9') goto yy55; + goto yy61; +yy810: + YYDEBUG(810, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '5') { + if (yych <= '/') goto yy57; + if (yych <= '0') goto yy811; + if (yych <= '4') goto yy812; + goto yy813; + } else { + if (yych <= 'E') { + if (yych <= 'D') goto yy57; + goto yy83; + } else { + if (yych == 'e') goto yy83; + goto yy57; + } + } +yy811: + YYDEBUG(811, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '0') goto yy57; + if (yych <= '9') goto yy814; + goto yy57; +yy812: + YYDEBUG(812, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy814; + goto yy57; +yy813: + YYDEBUG(813, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= '4') goto yy57; +yy814: + YYDEBUG(814, *YYCURSOR); + yyaccept = 17; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '-') goto yy816; + if (yych <= '/') goto yy815; + if (yych <= '7') goto yy817; +yy815: + YYDEBUG(815, *YYCURSOR); + { + timelib_sll w, d; + DEBUG_OUTPUT("isoweek"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + TIMELIB_HAVE_RELATIVE(); + + s->time->y = timelib_get_nr((char **) &ptr, 4); + w = timelib_get_nr((char **) &ptr, 2); + d = 1; + s->time->m = 1; + s->time->d = 1; + s->time->relative.d = timelib_daynr_from_weeknr(s->time->y, w, d); + + TIMELIB_DEINIT; + return TIMELIB_ISO_WEEK; + } +yy816: + YYDEBUG(816, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= '8') goto yy57; +yy817: + YYDEBUG(817, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(818, *YYCURSOR); + { + timelib_sll w, d; + DEBUG_OUTPUT("isoweekday"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + TIMELIB_HAVE_RELATIVE(); + + s->time->y = timelib_get_nr((char **) &ptr, 4); + w = timelib_get_nr((char **) &ptr, 2); + d = timelib_get_nr((char **) &ptr, 1); + s->time->m = 1; + s->time->d = 1; + s->time->relative.d = timelib_daynr_from_weeknr(s->time->y, w, d); + + TIMELIB_DEINIT; + return TIMELIB_ISO_WEEK; + } +yy819: + YYDEBUG(819, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych <= '9') goto yy821; + goto yy61; +yy820: + YYDEBUG(820, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych <= '6') goto yy821; + if (yych <= '9') goto yy55; + goto yy61; +yy821: + YYDEBUG(821, *YYCURSOR); + yyaccept = 18; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 2) { + goto yy55; + } + if (yych <= 'W') { + if (yych <= 'F') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych >= ' ') goto yy61; + } else { + if (yych == 'D') goto yy61; + if (yych >= 'F') goto yy61; + } + } else { + if (yych <= 'M') { + if (yych == 'H') goto yy61; + if (yych >= 'M') goto yy61; + } else { + if (yych <= 'R') goto yy822; + if (yych <= 'T') goto yy61; + if (yych >= 'W') goto yy61; + } + } + } else { + if (yych <= 'h') { + if (yych <= 'd') { + if (yych == 'Y') goto yy61; + if (yych >= 'd') goto yy61; + } else { + if (yych == 'f') goto yy61; + if (yych >= 'h') goto yy61; + } + } else { + if (yych <= 't') { + if (yych == 'm') goto yy61; + if (yych >= 's') goto yy61; + } else { + if (yych <= 'w') { + if (yych >= 'w') goto yy61; + } else { + if (yych == 'y') goto yy61; + } + } + } + } +yy822: + YYDEBUG(822, *YYCURSOR); + { + int length = 0; + DEBUG_OUTPUT("pgydotd"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + s->time->d = timelib_get_nr((char **) &ptr, 3); + s->time->m = 1; + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_PG_YEARDAY; + } +yy823: + YYDEBUG(823, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych <= '9') goto yy821; + goto yy61; +yy824: + YYDEBUG(824, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy826; + goto yy57; +yy825: + YYDEBUG(825, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= '3') goto yy57; +yy826: + YYDEBUG(826, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy57; + YYDEBUG(827, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '0') goto yy828; + if (yych <= '2') goto yy829; + if (yych <= '3') goto yy830; + goto yy57; +yy828: + YYDEBUG(828, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy831; + goto yy57; +yy829: + YYDEBUG(829, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy831; + goto yy57; +yy830: + YYDEBUG(830, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= '2') goto yy57; +yy831: + YYDEBUG(831, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ' ') goto yy57; + YYDEBUG(832, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '1') goto yy833; + if (yych <= '2') goto yy834; + goto yy57; +yy833: + YYDEBUG(833, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy835; + goto yy57; +yy834: + YYDEBUG(834, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= '5') goto yy57; +yy835: + YYDEBUG(835, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy57; + YYDEBUG(836, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= '6') goto yy57; + YYDEBUG(837, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; + YYDEBUG(838, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy57; + YYDEBUG(839, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy840; + if (yych <= '6') goto yy841; + goto yy57; +yy840: + YYDEBUG(840, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy842; + goto yy57; +yy841: + YYDEBUG(841, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '0') goto yy57; +yy842: + YYDEBUG(842, *YYCURSOR); + ++YYCURSOR; +yy843: + YYDEBUG(843, *YYCURSOR); + { + int tz_not_found; + DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr((char **) &ptr, 4); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->d = timelib_get_nr((char **) &ptr, 2); + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + s->time->s = timelib_get_nr((char **) &ptr, 2); + if (*ptr == '.') { + s->time->f = timelib_get_frac_nr((char **) &ptr, 9); + if (*ptr) { /* timezone is optional */ + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, "The timezone could not be found in the database"); + } + } + } + TIMELIB_DEINIT; + return TIMELIB_XMLRPC_SOAP; + } +yy844: + YYDEBUG(844, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '2') { + if (yych <= '/') goto yy61; + if (yych >= '1') goto yy846; + } else { + if (yych <= '3') goto yy847; + if (yych <= '9') goto yy821; + goto yy61; + } +yy845: + YYDEBUG(845, *YYCURSOR); + yyaccept = 18; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'V') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy822; + goto yy61; + } else { + if (yych <= '/') goto yy822; + if (yych <= '9') goto yy848; + if (yych <= 'C') goto yy822; + goto yy61; + } + } else { + if (yych <= 'H') { + if (yych == 'F') goto yy61; + if (yych <= 'G') goto yy822; + goto yy61; + } else { + if (yych <= 'M') { + if (yych <= 'L') goto yy822; + goto yy61; + } else { + if (yych <= 'R') goto yy822; + if (yych <= 'T') goto yy61; + goto yy822; + } + } + } + } else { + if (yych <= 'h') { + if (yych <= 'c') { + if (yych == 'X') goto yy822; + if (yych <= 'Y') goto yy61; + goto yy822; + } else { + if (yych <= 'e') { + if (yych <= 'd') goto yy61; + goto yy822; + } else { + if (yych == 'g') goto yy822; + goto yy61; + } + } + } else { + if (yych <= 't') { + if (yych == 'm') goto yy61; + if (yych <= 'r') goto yy822; + goto yy61; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy822; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy822; + } + } + } + } +yy846: + YYDEBUG(846, *YYCURSOR); + yyaccept = 18; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'V') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy822; + goto yy61; + } else { + if (yych <= '/') goto yy822; + if (yych <= '9') goto yy848; + if (yych <= 'C') goto yy822; + goto yy61; + } + } else { + if (yych <= 'H') { + if (yych == 'F') goto yy61; + if (yych <= 'G') goto yy822; + goto yy61; + } else { + if (yych <= 'M') { + if (yych <= 'L') goto yy822; + goto yy61; + } else { + if (yych <= 'R') goto yy822; + if (yych <= 'T') goto yy61; + goto yy822; + } + } + } + } else { + if (yych <= 'h') { + if (yych <= 'c') { + if (yych == 'X') goto yy822; + if (yych <= 'Y') goto yy61; + goto yy822; + } else { + if (yych <= 'e') { + if (yych <= 'd') goto yy61; + goto yy822; + } else { + if (yych == 'g') goto yy822; + goto yy61; + } + } + } else { + if (yych <= 't') { + if (yych == 'm') goto yy61; + if (yych <= 'r') goto yy822; + goto yy61; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy822; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy822; + } + } + } + } +yy847: + YYDEBUG(847, *YYCURSOR); + yyaccept = 18; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'V') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy822; + goto yy61; + } else { + if (yych <= '1') { + if (yych <= '/') goto yy822; + } else { + if (yych <= '9') goto yy55; + if (yych <= 'C') goto yy822; + goto yy61; + } + } + } else { + if (yych <= 'H') { + if (yych == 'F') goto yy61; + if (yych <= 'G') goto yy822; + goto yy61; + } else { + if (yych <= 'M') { + if (yych <= 'L') goto yy822; + goto yy61; + } else { + if (yych <= 'R') goto yy822; + if (yych <= 'T') goto yy61; + goto yy822; + } + } + } + } else { + if (yych <= 'h') { + if (yych <= 'c') { + if (yych == 'X') goto yy822; + if (yych <= 'Y') goto yy61; + goto yy822; + } else { + if (yych <= 'e') { + if (yych <= 'd') goto yy61; + goto yy822; + } else { + if (yych == 'g') goto yy822; + goto yy61; + } + } + } else { + if (yych <= 't') { + if (yych == 'm') goto yy61; + if (yych <= 'r') goto yy822; + goto yy61; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy822; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy822; + } + } + } + } +yy848: + YYDEBUG(848, *YYCURSOR); + yyaccept = 19; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 2) { + goto yy55; + } + if (yych <= 'W') { + if (yych <= 'F') { + if (yych <= ' ') { + if (yych == '\t') goto yy60; + if (yych >= ' ') goto yy60; + } else { + if (yych == 'D') goto yy65; + if (yych >= 'F') goto yy66; + } + } else { + if (yych <= 'M') { + if (yych == 'H') goto yy64; + if (yych >= 'M') goto yy63; + } else { + if (yych <= 'S') { + if (yych >= 'S') goto yy62; + } else { + if (yych <= 'T') goto yy850; + if (yych >= 'W') goto yy68; + } + } + } + } else { + if (yych <= 'l') { + if (yych <= 'd') { + if (yych == 'Y') goto yy67; + if (yych >= 'd') goto yy65; + } else { + if (yych <= 'f') { + if (yych >= 'f') goto yy66; + } else { + if (yych == 'h') goto yy64; + } + } + } else { + if (yych <= 't') { + if (yych <= 'm') goto yy63; + if (yych <= 'r') goto yy849; + if (yych <= 's') goto yy62; + goto yy851; + } else { + if (yych <= 'w') { + if (yych >= 'w') goto yy68; + } else { + if (yych == 'y') goto yy67; + } + } + } + } +yy849: + YYDEBUG(849, *YYCURSOR); + { + DEBUG_OUTPUT("datenocolon"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr((char **) &ptr, 4); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->d = timelib_get_nr((char **) &ptr, 2); + TIMELIB_DEINIT; + return TIMELIB_DATE_NOCOLON; + } +yy850: + YYDEBUG(850, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'H') { + if (yych <= '2') { + if (yych <= '/') goto yy57; + if (yych <= '1') goto yy865; + goto yy866; + } else { + if (yych <= '9') goto yy867; + if (yych <= 'G') goto yy57; + goto yy70; + } + } else { + if (yych <= 'g') { + if (yych == 'U') goto yy71; + goto yy57; + } else { + if (yych <= 'h') goto yy70; + if (yych == 'u') goto yy71; + goto yy57; + } + } +yy851: + YYDEBUG(851, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'H') { + if (yych <= '2') { + if (yych <= '/') goto yy57; + if (yych >= '2') goto yy853; + } else { + if (yych <= '9') goto yy854; + if (yych <= 'G') goto yy57; + goto yy70; + } + } else { + if (yych <= 'g') { + if (yych == 'U') goto yy71; + goto yy57; + } else { + if (yych <= 'h') goto yy70; + if (yych == 'u') goto yy71; + goto yy57; + } + } + YYDEBUG(852, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy859; + if (yych <= '9') goto yy854; + goto yy57; +yy853: + YYDEBUG(853, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '4') goto yy859; + if (yych <= '5') goto yy855; + goto yy57; +yy854: + YYDEBUG(854, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= '6') goto yy57; +yy855: + YYDEBUG(855, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; +yy856: + YYDEBUG(856, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy857; + if (yych <= '6') goto yy858; + goto yy57; +yy857: + YYDEBUG(857, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy842; + goto yy57; +yy858: + YYDEBUG(858, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '0') goto yy842; + goto yy57; +yy859: + YYDEBUG(859, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy860; + if (yych <= '9') goto yy856; + goto yy57; +yy860: + YYDEBUG(860, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy861; + if (yych <= '6') goto yy862; + if (yych <= '9') goto yy856; + goto yy57; +yy861: + YYDEBUG(861, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy863; + if (yych <= '6') goto yy864; + if (yych <= '9') goto yy842; + goto yy57; +yy862: + YYDEBUG(862, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '0') goto yy863; + if (yych <= '5') goto yy857; + if (yych <= '6') goto yy858; + goto yy57; +yy863: + YYDEBUG(863, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy843; + if (yych <= '9') goto yy842; + goto yy843; +yy864: + YYDEBUG(864, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '0') goto yy842; + goto yy843; +yy865: + YYDEBUG(865, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy874; + if (yych <= '9') goto yy867; + if (yych <= ':') goto yy868; + goto yy57; +yy866: + YYDEBUG(866, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '5') { + if (yych <= '/') goto yy57; + if (yych <= '4') goto yy874; + goto yy855; + } else { + if (yych == ':') goto yy868; + goto yy57; + } +yy867: + YYDEBUG(867, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy855; + if (yych != ':') goto yy57; +yy868: + YYDEBUG(868, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= '6') goto yy57; + YYDEBUG(869, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; + YYDEBUG(870, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy57; + YYDEBUG(871, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy872; + if (yych <= '6') goto yy873; + goto yy57; +yy872: + YYDEBUG(872, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy842; + goto yy57; +yy873: + YYDEBUG(873, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '0') goto yy842; + goto yy57; +yy874: + YYDEBUG(874, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy860; + if (yych <= '9') goto yy856; + if (yych <= ':') goto yy868; + goto yy57; +yy875: + YYDEBUG(875, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '2') { + if (yych <= '/') goto yy61; + if (yych <= '0') goto yy877; + goto yy846; + } else { + if (yych <= '3') goto yy847; + if (yych <= '9') goto yy821; + goto yy61; + } +yy876: + YYDEBUG(876, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '2') { + if (yych <= '/') goto yy61; + if (yych <= '0') goto yy845; + goto yy846; + } else { + if (yych <= '3') goto yy847; + if (yych <= '9') goto yy821; + goto yy61; + } +yy877: + YYDEBUG(877, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych <= '9') goto yy848; + goto yy61; +yy878: + YYDEBUG(878, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy879; + if (yych != 'c') goto yy57; +yy879: + YYDEBUG(879, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'E') goto yy880; + if (yych != 'e') goto yy794; +yy880: + YYDEBUG(880, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy881; + if (yych != 'm') goto yy57; +yy881: + YYDEBUG(881, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy882; + if (yych != 'b') goto yy57; +yy882: + YYDEBUG(882, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy883; + if (yych != 'e') goto yy57; +yy883: + YYDEBUG(883, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy884; + if (yych != 'r') goto yy57; +yy884: + YYDEBUG(884, *YYCURSOR); + yych = *++YYCURSOR; + goto yy794; +yy885: + YYDEBUG(885, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'V') goto yy886; + if (yych != 'v') goto yy57; +yy886: + YYDEBUG(886, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'E') goto yy887; + if (yych != 'e') goto yy794; +yy887: + YYDEBUG(887, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy888; + if (yych != 'm') goto yy57; +yy888: + YYDEBUG(888, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy889; + if (yych != 'b') goto yy57; +yy889: + YYDEBUG(889, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy890; + if (yych != 'e') goto yy57; +yy890: + YYDEBUG(890, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy884; + if (yych == 'r') goto yy884; + goto yy57; +yy891: + YYDEBUG(891, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy892; + if (yych != 't') goto yy57; +yy892: + YYDEBUG(892, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'O') goto yy893; + if (yych != 'o') goto yy794; +yy893: + YYDEBUG(893, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy894; + if (yych != 'b') goto yy57; +yy894: + YYDEBUG(894, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy895; + if (yych != 'e') goto yy57; +yy895: + YYDEBUG(895, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy884; + if (yych == 'r') goto yy884; + goto yy57; +yy896: + YYDEBUG(896, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'P') { + if (yych == 'C') goto yy129; + if (yych <= 'O') goto yy57; + } else { + if (yych <= 'c') { + if (yych <= 'b') goto yy57; + goto yy129; + } else { + if (yych != 'p') goto yy57; + } + } +yy897: + YYDEBUG(897, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy898; + if (yych != 't') goto yy794; +yy898: + YYDEBUG(898, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'E') goto yy899; + if (yych != 'e') goto yy794; +yy899: + YYDEBUG(899, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy900; + if (yych != 'm') goto yy57; +yy900: + YYDEBUG(900, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy901; + if (yych != 'b') goto yy57; +yy901: + YYDEBUG(901, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy902; + if (yych != 'e') goto yy57; +yy902: + YYDEBUG(902, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy884; + if (yych == 'r') goto yy884; + goto yy57; +yy903: + YYDEBUG(903, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy907; + if (yych == 'g') goto yy907; + goto yy57; +yy904: + YYDEBUG(904, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy905; + if (yych != 'r') goto yy57; +yy905: + YYDEBUG(905, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'I') goto yy906; + if (yych != 'i') goto yy794; +yy906: + YYDEBUG(906, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy884; + if (yych == 'l') goto yy884; + goto yy57; +yy907: + YYDEBUG(907, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'U') goto yy908; + if (yych != 'u') goto yy794; +yy908: + YYDEBUG(908, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy909; + if (yych != 's') goto yy57; +yy909: + YYDEBUG(909, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy884; + if (yych == 't') goto yy884; + goto yy57; +yy910: + YYDEBUG(910, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych == 'R') goto yy911; + if (yych <= 'X') goto yy57; + goto yy884; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy57; + } else { + if (yych == 'y') goto yy884; + goto yy57; + } + } +yy911: + YYDEBUG(911, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'C') goto yy912; + if (yych != 'c') goto yy794; +yy912: + YYDEBUG(912, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy884; + if (yych == 'h') goto yy884; + goto yy57; +yy913: + YYDEBUG(913, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy914; + if (yych != 'b') goto yy57; +yy914: + YYDEBUG(914, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'R') goto yy915; + if (yych != 'r') goto yy794; +yy915: + YYDEBUG(915, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy916; + if (yych != 'u') goto yy57; +yy916: + YYDEBUG(916, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy917; + if (yych != 'a') goto yy57; +yy917: + YYDEBUG(917, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy918; + if (yych != 'r') goto yy57; +yy918: + YYDEBUG(918, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy884; + if (yych == 'y') goto yy884; + goto yy57; +yy919: + YYDEBUG(919, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych == 'L') goto yy926; + if (yych <= 'M') goto yy57; + goto yy925; + } else { + if (yych <= 'l') { + if (yych <= 'k') goto yy57; + goto yy926; + } else { + if (yych == 'n') goto yy925; + goto yy57; + } + } +yy920: + YYDEBUG(920, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy921; + if (yych != 'n') goto yy57; +yy921: + YYDEBUG(921, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'U') goto yy922; + if (yych != 'u') goto yy794; +yy922: + YYDEBUG(922, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy923; + if (yych != 'a') goto yy57; +yy923: + YYDEBUG(923, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy924; + if (yych != 'r') goto yy57; +yy924: + YYDEBUG(924, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy884; + if (yych == 'y') goto yy884; + goto yy57; +yy925: + YYDEBUG(925, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy884; + if (yych == 'e') goto yy884; + goto yy794; +yy926: + YYDEBUG(926, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy884; + if (yych == 'y') goto yy884; + goto yy794; +yy927: + YYDEBUG(927, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy884; + goto yy794; +yy928: + YYDEBUG(928, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != 'I') goto yy794; + YYDEBUG(929, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy884; + goto yy794; +yy930: + YYDEBUG(930, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy884; + goto yy794; +yy931: + YYDEBUG(931, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '0') goto yy946; + if (yych <= '9') goto yy945; + goto yy57; +yy932: + YYDEBUG(932, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy944; + goto yy57; +yy933: + YYDEBUG(933, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy942; + if (yych <= '6') goto yy941; + goto yy57; +yy934: + YYDEBUG(934, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy913; + if (yych == 'e') goto yy913; + goto yy57; +yy935: + YYDEBUG(935, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy910; + if (yych == 'a') goto yy910; + goto yy57; +yy936: + YYDEBUG(936, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy940; + if (yych == 'e') goto yy940; + goto yy57; +yy937: + YYDEBUG(937, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy878; + if (yych == 'e') goto yy878; + goto yy57; +yy938: + YYDEBUG(938, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); + yych = *YYCURSOR; +yy939: + YYDEBUG(939, *YYCURSOR); + YYDEBUG(-1, yych); + switch (yych) { + case '\t': + case ' ': + case '-': + case '.': goto yy938; + case 'A': + case 'a': goto yy800; + case 'D': + case 'd': goto yy937; + case 'F': + case 'f': goto yy934; + case 'I': goto yy793; + case 'J': + case 'j': goto yy797; + case 'M': + case 'm': goto yy935; + case 'N': + case 'n': goto yy803; + case 'O': + case 'o': goto yy802; + case 'S': + case 's': goto yy936; + case 'V': goto yy795; + case 'X': goto yy796; + default: goto yy57; + } +yy940: + YYDEBUG(940, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy897; + if (yych == 'p') goto yy897; + goto yy57; +yy941: + YYDEBUG(941, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '6') goto yy943; + goto yy57; +yy942: + YYDEBUG(942, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; +yy943: + YYDEBUG(943, *YYCURSOR); + yych = *++YYCURSOR; + goto yy822; +yy944: + YYDEBUG(944, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy943; + goto yy57; +yy945: + YYDEBUG(945, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy943; + goto yy57; +yy946: + YYDEBUG(946, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '0') goto yy57; + if (yych <= '9') goto yy943; + goto yy57; +yy947: + YYDEBUG(947, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') goto yy57; + if (yych <= '/') goto yy950; + if (yych <= '9') goto yy958; + goto yy57; +yy948: + YYDEBUG(948, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') goto yy57; + if (yych <= '/') goto yy950; + if (yych <= '2') goto yy958; + goto yy57; +yy949: + YYDEBUG(949, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '/') goto yy57; +yy950: + YYDEBUG(950, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '2') goto yy951; + if (yych <= '3') goto yy952; + if (yych <= '9') goto yy953; + goto yy57; +yy951: + YYDEBUG(951, *YYCURSOR); + yyaccept = 21; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy455; + if (yych <= '9') goto yy953; + if (yych <= 'm') goto yy455; + goto yy955; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy455; + goto yy956; + } else { + if (yych <= 's') goto yy954; + if (yych <= 't') goto yy957; + goto yy455; + } + } +yy952: + YYDEBUG(952, *YYCURSOR); + yyaccept = 21; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy455; + if (yych <= '1') goto yy953; + if (yych <= 'm') goto yy455; + goto yy955; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy455; + goto yy956; + } else { + if (yych <= 's') goto yy954; + if (yych <= 't') goto yy957; + goto yy455; + } + } +yy953: + YYDEBUG(953, *YYCURSOR); + yyaccept = 21; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'q') { + if (yych == 'n') goto yy955; + goto yy455; + } else { + if (yych <= 'r') goto yy956; + if (yych <= 's') goto yy954; + if (yych <= 't') goto yy957; + goto yy455; + } +yy954: + YYDEBUG(954, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 't') goto yy454; + goto yy57; +yy955: + YYDEBUG(955, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'd') goto yy454; + goto yy57; +yy956: + YYDEBUG(956, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'd') goto yy454; + goto yy57; +yy957: + YYDEBUG(957, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'h') goto yy454; + goto yy57; +yy958: + YYDEBUG(958, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '/') goto yy57; + YYDEBUG(959, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '2') { + if (yych <= '/') goto yy57; + if (yych >= '1') goto yy961; + } else { + if (yych <= '3') goto yy962; + if (yych <= '9') goto yy953; + goto yy57; + } + YYDEBUG(960, *YYCURSOR); + yyaccept = 21; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy455; + if (yych <= '9') goto yy963; + if (yych <= 'm') goto yy455; + goto yy955; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy455; + goto yy956; + } else { + if (yych <= 's') goto yy954; + if (yych <= 't') goto yy957; + goto yy455; + } + } +yy961: + YYDEBUG(961, *YYCURSOR); + yyaccept = 21; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy455; + if (yych <= '9') goto yy963; + if (yych <= 'm') goto yy455; + goto yy955; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy455; + goto yy956; + } else { + if (yych <= 's') goto yy954; + if (yych <= 't') goto yy957; + goto yy455; + } + } +yy962: + YYDEBUG(962, *YYCURSOR); + yyaccept = 21; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy455; + if (yych <= '1') goto yy963; + if (yych <= 'm') goto yy455; + goto yy955; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy455; + goto yy956; + } else { + if (yych <= 's') goto yy954; + if (yych <= 't') goto yy957; + goto yy455; + } + } +yy963: + YYDEBUG(963, *YYCURSOR); + yyaccept = 21; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych == '/') goto yy454; + if (yych <= 'm') goto yy455; + goto yy955; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy455; + goto yy956; + } else { + if (yych <= 's') goto yy954; + if (yych <= 't') goto yy957; + goto yy455; + } + } +yy964: + YYDEBUG(964, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'A') goto yy1044; + if (yych <= 'T') goto yy57; + goto yy1043; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy57; + goto yy1044; + } else { + if (yych == 'u') goto yy1043; + goto yy57; + } + } +yy965: + YYDEBUG(965, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1041; + if (yych == 'e') goto yy1041; + goto yy57; +yy966: + YYDEBUG(966, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1038; + if (yych == 'a') goto yy1038; + goto yy57; +yy967: + YYDEBUG(967, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'P') goto yy1035; + if (yych <= 'T') goto yy57; + goto yy1034; + } else { + if (yych <= 'p') { + if (yych <= 'o') goto yy57; + goto yy1035; + } else { + if (yych == 'u') goto yy1034; + goto yy57; + } + } +yy968: + YYDEBUG(968, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1031; + if (yych == 'e') goto yy1031; + goto yy57; +yy969: + YYDEBUG(969, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy1029; + if (yych == 'c') goto yy1029; + goto yy57; +yy970: + YYDEBUG(970, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy1027; + if (yych == 'o') goto yy1027; + goto yy57; +yy971: + YYDEBUG(971, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1025; + if (yych == 'e') goto yy1025; + goto yy57; +yy972: + YYDEBUG(972, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '0') goto yy811; + if (yych <= '4') goto yy812; + if (yych <= '5') goto yy813; + goto yy57; +yy973: + YYDEBUG(973, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '-') goto yy977; + if (yych <= '/') goto yy974; + if (yych <= '9') goto yy996; +yy974: + YYDEBUG(974, *YYCURSOR); + { + int length = 0; + DEBUG_OUTPUT("gnudateshorter"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->d = 1; + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_ISO_DATE; + } +yy975: + YYDEBUG(975, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '-') goto yy977; + if (yych <= '/') goto yy974; + if (yych <= '2') goto yy996; + goto yy974; +yy976: + YYDEBUG(976, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych != '-') goto yy974; +yy977: + YYDEBUG(977, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '2') goto yy978; + if (yych <= '3') goto yy979; + if (yych <= '9') goto yy980; + goto yy57; +yy978: + YYDEBUG(978, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'm') { + if (yych <= '9') { + if (yych <= '/') goto yy657; + goto yy980; + } else { + if (yych == 'T') goto yy985; + goto yy657; + } + } else { + if (yych <= 'r') { + if (yych <= 'n') goto yy982; + if (yych <= 'q') goto yy657; + goto yy983; + } else { + if (yych <= 's') goto yy981; + if (yych <= 't') goto yy984; + goto yy657; + } + } +yy979: + YYDEBUG(979, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'm') { + if (yych <= '1') { + if (yych <= '/') goto yy657; + } else { + if (yych == 'T') goto yy985; + goto yy657; + } + } else { + if (yych <= 'r') { + if (yych <= 'n') goto yy982; + if (yych <= 'q') goto yy657; + goto yy983; + } else { + if (yych <= 's') goto yy981; + if (yych <= 't') goto yy984; + goto yy657; + } + } +yy980: + YYDEBUG(980, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych == 'T') goto yy985; + if (yych <= 'm') goto yy657; + goto yy982; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy657; + goto yy983; + } else { + if (yych <= 's') goto yy981; + if (yych <= 't') goto yy984; + goto yy657; + } + } +yy981: + YYDEBUG(981, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 't') goto yy995; + goto yy57; +yy982: + YYDEBUG(982, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'd') goto yy995; + goto yy57; +yy983: + YYDEBUG(983, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'd') goto yy995; + goto yy57; +yy984: + YYDEBUG(984, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'h') goto yy995; + goto yy57; +yy985: + YYDEBUG(985, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '1') goto yy986; + if (yych <= '2') goto yy987; + if (yych <= '9') goto yy988; + goto yy57; +yy986: + YYDEBUG(986, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy988; + if (yych <= ':') goto yy989; + goto yy57; +yy987: + YYDEBUG(987, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '4') goto yy988; + if (yych == ':') goto yy989; + goto yy57; +yy988: + YYDEBUG(988, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy57; +yy989: + YYDEBUG(989, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy990; + if (yych <= '9') goto yy991; + goto yy57; +yy990: + YYDEBUG(990, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy991; + if (yych <= ':') goto yy992; + goto yy57; +yy991: + YYDEBUG(991, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy57; +yy992: + YYDEBUG(992, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy993; + if (yych <= '6') goto yy994; + if (yych <= '9') goto yy842; + goto yy57; +yy993: + YYDEBUG(993, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy843; + if (yych <= '9') goto yy842; + goto yy843; +yy994: + YYDEBUG(994, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '0') goto yy842; + goto yy843; +yy995: + YYDEBUG(995, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'T') goto yy985; + goto yy657; +yy996: + YYDEBUG(996, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych != '-') goto yy974; + YYDEBUG(997, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '2') { + if (yych <= '/') goto yy57; + if (yych >= '1') goto yy999; + } else { + if (yych <= '3') goto yy1000; + if (yych <= '9') goto yy980; + goto yy57; + } + YYDEBUG(998, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'm') { + if (yych <= '9') { + if (yych <= '/') goto yy657; + goto yy1001; + } else { + if (yych == 'T') goto yy985; + goto yy657; + } + } else { + if (yych <= 'r') { + if (yych <= 'n') goto yy982; + if (yych <= 'q') goto yy657; + goto yy983; + } else { + if (yych <= 's') goto yy981; + if (yych <= 't') goto yy984; + goto yy657; + } + } +yy999: + YYDEBUG(999, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'm') { + if (yych <= '9') { + if (yych <= '/') goto yy657; + goto yy1001; + } else { + if (yych == 'T') goto yy985; + goto yy657; + } + } else { + if (yych <= 'r') { + if (yych <= 'n') goto yy982; + if (yych <= 'q') goto yy657; + goto yy983; + } else { + if (yych <= 's') goto yy981; + if (yych <= 't') goto yy984; + goto yy657; + } + } +yy1000: + YYDEBUG(1000, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'm') { + if (yych <= '1') { + if (yych <= '/') goto yy657; + } else { + if (yych == 'T') goto yy985; + goto yy657; + } + } else { + if (yych <= 'r') { + if (yych <= 'n') goto yy982; + if (yych <= 'q') goto yy657; + goto yy983; + } else { + if (yych <= 's') goto yy981; + if (yych <= 't') goto yy984; + goto yy657; + } + } +yy1001: + YYDEBUG(1001, *YYCURSOR); + yyaccept = 21; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych == 'T') goto yy1002; + if (yych <= 'm') goto yy455; + goto yy982; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy455; + goto yy983; + } else { + if (yych <= 's') goto yy981; + if (yych <= 't') goto yy984; + goto yy455; + } + } +yy1002: + YYDEBUG(1002, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '1') goto yy1003; + if (yych <= '2') goto yy1004; + if (yych <= '9') goto yy988; + goto yy57; +yy1003: + YYDEBUG(1003, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy1005; + if (yych <= ':') goto yy989; + goto yy57; +yy1004: + YYDEBUG(1004, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '4') goto yy1005; + if (yych == ':') goto yy989; + goto yy57; +yy1005: + YYDEBUG(1005, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy57; + YYDEBUG(1006, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy1007; + if (yych <= '9') goto yy991; + goto yy57; +yy1007: + YYDEBUG(1007, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy1008; + if (yych <= ':') goto yy992; + goto yy57; +yy1008: + YYDEBUG(1008, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy57; + YYDEBUG(1009, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy1010; + if (yych <= '6') goto yy1011; + if (yych <= '9') goto yy842; + goto yy57; +yy1010: + YYDEBUG(1010, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy843; + if (yych <= '9') goto yy1012; + goto yy843; +yy1011: + YYDEBUG(1011, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '0') goto yy843; +yy1012: + YYDEBUG(1012, *YYCURSOR); + yyaccept = 23; + yych = *(YYMARKER = ++YYCURSOR); + if (yych != '.') goto yy843; + YYDEBUG(1013, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; +yy1014: + YYDEBUG(1014, *YYCURSOR); + yyaccept = 23; + YYMARKER = ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); + yych = *YYCURSOR; + YYDEBUG(1015, *YYCURSOR); + if (yych <= '-') { + if (yych == '+') goto yy1017; + if (yych <= ',') goto yy843; + goto yy1017; + } else { + if (yych <= '9') { + if (yych <= '/') goto yy843; + goto yy1014; + } else { + if (yych != 'G') goto yy843; + } + } + YYDEBUG(1016, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy1023; + goto yy57; +yy1017: + YYDEBUG(1017, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '1') goto yy1018; + if (yych <= '2') goto yy1019; + if (yych <= '9') goto yy1020; + goto yy57; +yy1018: + YYDEBUG(1018, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy843; + if (yych <= '9') goto yy1020; + if (yych <= ':') goto yy1021; + goto yy843; +yy1019: + YYDEBUG(1019, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '5') { + if (yych <= '/') goto yy843; + if (yych >= '5') goto yy1022; + } else { + if (yych <= '9') goto yy842; + if (yych <= ':') goto yy1021; + goto yy843; + } +yy1020: + YYDEBUG(1020, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy843; + if (yych <= '5') goto yy1022; + if (yych <= '9') goto yy842; + if (yych >= ';') goto yy843; +yy1021: + YYDEBUG(1021, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy843; + if (yych <= '5') goto yy1022; + if (yych <= '9') goto yy842; + goto yy843; +yy1022: + YYDEBUG(1022, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy843; + if (yych <= '9') goto yy842; + goto yy843; +yy1023: + YYDEBUG(1023, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != 'T') goto yy57; + YYDEBUG(1024, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '+') goto yy1017; + if (yych == '-') goto yy1017; + goto yy57; +yy1025: + YYDEBUG(1025, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy1026; + if (yych != 'c') goto yy57; +yy1026: + YYDEBUG(1026, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych == '-') goto yy767; + goto yy794; + } else { + if (yych <= 'E') goto yy880; + if (yych == 'e') goto yy880; + goto yy794; + } +yy1027: + YYDEBUG(1027, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'V') goto yy1028; + if (yych != 'v') goto yy57; +yy1028: + YYDEBUG(1028, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych == '-') goto yy767; + goto yy794; + } else { + if (yych <= 'E') goto yy887; + if (yych == 'e') goto yy887; + goto yy794; + } +yy1029: + YYDEBUG(1029, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1030; + if (yych != 't') goto yy57; +yy1030: + YYDEBUG(1030, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'N') { + if (yych == '-') goto yy767; + goto yy794; + } else { + if (yych <= 'O') goto yy893; + if (yych == 'o') goto yy893; + goto yy794; + } +yy1031: + YYDEBUG(1031, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy1032; + if (yych != 'p') goto yy57; +yy1032: + YYDEBUG(1032, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych == '-') goto yy767; + goto yy794; + } else { + if (yych <= 'T') goto yy1033; + if (yych != 't') goto yy794; + } +yy1033: + YYDEBUG(1033, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych == '-') goto yy767; + goto yy794; + } else { + if (yych <= 'E') goto yy899; + if (yych == 'e') goto yy899; + goto yy794; + } +yy1034: + YYDEBUG(1034, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy1037; + if (yych == 'g') goto yy1037; + goto yy57; +yy1035: + YYDEBUG(1035, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy1036; + if (yych != 'r') goto yy57; +yy1036: + YYDEBUG(1036, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'H') { + if (yych == '-') goto yy767; + goto yy794; + } else { + if (yych <= 'I') goto yy906; + if (yych == 'i') goto yy906; + goto yy794; + } +yy1037: + YYDEBUG(1037, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych == '-') goto yy767; + goto yy794; + } else { + if (yych <= 'U') goto yy908; + if (yych == 'u') goto yy908; + goto yy794; + } +yy1038: + YYDEBUG(1038, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych == 'R') goto yy1039; + if (yych <= 'X') goto yy57; + goto yy1040; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy57; + } else { + if (yych == 'y') goto yy1040; + goto yy57; + } + } +yy1039: + YYDEBUG(1039, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'B') { + if (yych == '-') goto yy767; + goto yy794; + } else { + if (yych <= 'C') goto yy912; + if (yych == 'c') goto yy912; + goto yy794; + } +yy1040: + YYDEBUG(1040, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '-') goto yy767; + goto yy794; +yy1041: + YYDEBUG(1041, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy1042; + if (yych != 'b') goto yy57; +yy1042: + YYDEBUG(1042, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'Q') { + if (yych == '-') goto yy767; + goto yy794; + } else { + if (yych <= 'R') goto yy915; + if (yych == 'r') goto yy915; + goto yy794; + } +yy1043: + YYDEBUG(1043, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych == 'L') goto yy1047; + if (yych <= 'M') goto yy57; + goto yy1046; + } else { + if (yych <= 'l') { + if (yych <= 'k') goto yy57; + goto yy1047; + } else { + if (yych == 'n') goto yy1046; + goto yy57; + } + } +yy1044: + YYDEBUG(1044, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy1045; + if (yych != 'n') goto yy57; +yy1045: + YYDEBUG(1045, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych == '-') goto yy767; + goto yy794; + } else { + if (yych <= 'U') goto yy922; + if (yych == 'u') goto yy922; + goto yy794; + } +yy1046: + YYDEBUG(1046, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych == '-') goto yy767; + goto yy794; + } else { + if (yych <= 'E') goto yy884; + if (yych == 'e') goto yy884; + goto yy794; + } +yy1047: + YYDEBUG(1047, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych == '-') goto yy767; + goto yy794; + } else { + if (yych <= 'Y') goto yy884; + if (yych == 'y') goto yy884; + goto yy794; + } +yy1048: + YYDEBUG(1048, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy578; + goto yy731; + } else { + if (yych <= ',') goto yy578; + if (yych <= '-') goto yy732; + goto yy731; + } + } else { + if (yych <= 'U') { + if (yych <= '/') goto yy730; + if (yych <= 'T') goto yy578; + goto yy78; + } else { + if (yych == 'u') goto yy78; + goto yy578; + } + } +yy1049: + YYDEBUG(1049, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'P') { + if (yych == 'C') goto yy129; + if (yych <= 'O') goto yy57; + goto yy586; + } else { + if (yych <= 'c') { + if (yych <= 'b') goto yy57; + goto yy129; + } else { + if (yych == 'p') goto yy586; + goto yy57; + } + } +yy1050: + YYDEBUG(1050, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych <= ',') { + if (yych == '\t') goto yy1052; + goto yy1054; + } else { + if (yych <= '-') goto yy1051; + if (yych <= '.') goto yy731; + if (yych <= '/') goto yy730; + goto yy741; + } + } else { + if (yych <= 'q') { + if (yych == 'n') goto yy470; + goto yy1054; + } else { + if (yych <= 'r') goto yy471; + if (yych <= 's') goto yy464; + if (yych <= 't') goto yy468; + goto yy1054; + } + } +yy1051: + YYDEBUG(1051, *YYCURSOR); + yych = *++YYCURSOR; + YYDEBUG(-1, yych); + switch (yych) { + case '0': goto yy1055; + case '1': goto yy1056; + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy618; + case 'A': + case 'a': goto yy622; + case 'D': + case 'd': goto yy626; + case 'F': + case 'f': goto yy620; + case 'J': + case 'j': goto yy619; + case 'M': + case 'm': goto yy621; + case 'N': + case 'n': goto yy625; + case 'O': + case 'o': goto yy624; + case 'S': + case 's': goto yy623; + default: goto yy578; + } +yy1052: + YYDEBUG(1052, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy1054; + if (yych <= '0') goto yy736; + if (yych <= '1') goto yy737; + if (yych <= '9') goto yy738; + goto yy1054; +yy1053: + YYDEBUG(1053, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13); + yych = *YYCURSOR; +yy1054: + YYDEBUG(1054, *YYCURSOR); + YYDEBUG(-1, yych); + switch (yych) { + case '\t': + case ' ': goto yy1053; + case '-': + case '.': goto yy577; + case 'A': + case 'a': goto yy574; + case 'D': + case 'd': goto yy466; + case 'F': + case 'f': goto yy467; + case 'H': + case 'h': goto yy64; + case 'I': goto yy475; + case 'J': + case 'j': goto yy479; + case 'M': + case 'm': goto yy465; + case 'N': + case 'n': goto yy482; + case 'O': + case 'o': goto yy481; + case 'S': + case 's': goto yy463; + case 'T': + case 't': goto yy69; + case 'V': goto yy477; + case 'W': + case 'w': goto yy68; + case 'X': goto yy478; + case 'Y': + case 'y': goto yy67; + default: goto yy57; + } +yy1055: + YYDEBUG(1055, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= ',') goto yy57; + if (yych <= '-') goto yy655; + goto yy602; + } else { + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy1057; + goto yy57; + } +yy1056: + YYDEBUG(1056, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= ',') goto yy57; + if (yych <= '-') goto yy655; + goto yy602; + } else { + if (yych <= '/') goto yy57; + if (yych >= '3') goto yy57; + } +yy1057: + YYDEBUG(1057, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ',') goto yy57; + if (yych <= '-') goto yy1058; + if (yych <= '.') goto yy602; + goto yy57; +yy1058: + YYDEBUG(1058, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '2') { + if (yych <= '/') goto yy57; + if (yych >= '1') goto yy1060; + } else { + if (yych <= '3') goto yy1061; + if (yych <= '9') goto yy659; + goto yy57; + } + YYDEBUG(1059, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy657; + if (yych <= '9') goto yy1062; + if (yych <= 'm') goto yy657; + goto yy661; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy657; + goto yy662; + } else { + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + goto yy657; + } + } +yy1060: + YYDEBUG(1060, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy657; + if (yych <= '9') goto yy1062; + if (yych <= 'm') goto yy657; + goto yy661; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy657; + goto yy662; + } else { + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + goto yy657; + } + } +yy1061: + YYDEBUG(1061, *YYCURSOR); + yyaccept = 13; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '1') { + if (yych <= '/') goto yy657; + } else { + if (yych <= '9') goto yy604; + if (yych <= 'm') goto yy657; + goto yy661; + } + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy657; + goto yy662; + } else { + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + goto yy657; + } + } +yy1062: + YYDEBUG(1062, *YYCURSOR); + yyaccept = 15; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy764; + if (yych <= '9') goto yy605; + if (yych <= 'm') goto yy764; + goto yy661; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy764; + goto yy662; + } else { + if (yych <= 's') goto yy660; + if (yych <= 't') goto yy663; + goto yy764; + } + } +yy1063: + YYDEBUG(1063, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych <= '-') { + if (yych == '\t') goto yy1052; + if (yych <= ',') goto yy1054; + goto yy1051; + } else { + if (yych <= '.') goto yy1064; + if (yych <= '/') goto yy730; + if (yych <= '5') goto yy1066; + goto yy741; + } + } else { + if (yych <= 'q') { + if (yych <= ':') goto yy1065; + if (yych == 'n') goto yy470; + goto yy1054; + } else { + if (yych <= 'r') goto yy471; + if (yych <= 's') goto yy464; + if (yych <= 't') goto yy468; + goto yy1054; + } + } +yy1064: + YYDEBUG(1064, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '1') { + if (yych <= '/') goto yy578; + if (yych <= '0') goto yy1088; + goto yy1089; + } else { + if (yych <= '5') goto yy1090; + if (yych <= '9') goto yy1091; + goto yy578; + } +yy1065: + YYDEBUG(1065, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy1083; + if (yych <= '9') goto yy1084; + goto yy57; +yy1066: + YYDEBUG(1066, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy785; + if (yych <= '/') goto yy61; + if (yych >= ':') goto yy61; + YYDEBUG(1067, *YYCURSOR); + yyaccept = 24; + yych = *(YYMARKER = ++YYCURSOR); + YYDEBUG(-1, yych); + switch (yych) { + case '\t': + case ' ': + case 'A': + case 'D': + case 'F': + case 'H': + case 'I': + case 'J': + case 'M': + case 'N': + case 'O': + case 'S': + case 'T': + case 'V': + case 'X': + case 'Y': + case 'a': + case 'd': + case 'f': + case 'h': + case 'j': + case 'm': + case 'n': + case 'o': + case 's': + case 't': + case 'w': + case 'y': goto yy791; + case '-': goto yy788; + case '.': goto yy792; + case '/': goto yy789; + case '0': goto yy1069; + case '1': goto yy1070; + case '2': goto yy1071; + case '3': goto yy1072; + case '4': + case '5': goto yy1073; + case '6': goto yy1074; + case '7': + case '8': + case '9': goto yy55; + case ':': goto yy807; + case 'W': goto yy810; + default: goto yy1068; + } +yy1068: + YYDEBUG(1068, *YYCURSOR); + { + DEBUG_OUTPUT("gnunocolon"); + TIMELIB_INIT; + switch (s->time->have_time) { + case 0: + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + s->time->s = 0; + break; + case 1: + s->time->y = timelib_get_nr((char **) &ptr, 4); + break; + default: + TIMELIB_DEINIT; + add_error(s, "Double time specification"); + return TIMELIB_ERROR; + } + s->time->have_time++; + TIMELIB_DEINIT; + return TIMELIB_GNU_NOCOLON; + } +yy1069: + YYDEBUG(1069, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych <= '0') goto yy1081; + if (yych <= '9') goto yy1082; + goto yy61; +yy1070: + YYDEBUG(1070, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych <= '2') goto yy1080; + if (yych <= '9') goto yy1079; + goto yy61; +yy1071: + YYDEBUG(1071, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych <= '9') goto yy1079; + goto yy61; +yy1072: + YYDEBUG(1072, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych <= '5') goto yy1077; + if (yych <= '6') goto yy1078; + if (yych <= '9') goto yy1075; + goto yy61; +yy1073: + YYDEBUG(1073, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych <= '9') goto yy1075; + goto yy61; +yy1074: + YYDEBUG(1074, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy61; + if (yych <= '0') goto yy1075; + if (yych <= '9') goto yy55; + goto yy61; +yy1075: + YYDEBUG(1075, *YYCURSOR); + yyaccept = 25; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 2) { + goto yy55; + } + if (yych <= 'W') { + if (yych <= 'F') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych >= ' ') goto yy61; + } else { + if (yych == 'D') goto yy61; + if (yych >= 'F') goto yy61; + } + } else { + if (yych <= 'M') { + if (yych == 'H') goto yy61; + if (yych >= 'M') goto yy61; + } else { + if (yych <= 'R') goto yy1076; + if (yych <= 'T') goto yy61; + if (yych >= 'W') goto yy61; + } + } + } else { + if (yych <= 'h') { + if (yych <= 'd') { + if (yych == 'Y') goto yy61; + if (yych >= 'd') goto yy61; + } else { + if (yych == 'f') goto yy61; + if (yych >= 'h') goto yy61; + } + } else { + if (yych <= 't') { + if (yych == 'm') goto yy61; + if (yych >= 's') goto yy61; + } else { + if (yych <= 'w') { + if (yych >= 'w') goto yy61; + } else { + if (yych == 'y') goto yy61; + } + } + } + } +yy1076: + YYDEBUG(1076, *YYCURSOR); + { + int tz_not_found; + DEBUG_OUTPUT("iso8601nocolon"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + s->time->s = timelib_get_nr((char **) &ptr, 2); + + if (*ptr != '\0') { + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, "The timezone could not be found in the database"); + } + } + TIMELIB_DEINIT; + return TIMELIB_ISO_NOCOLON; + } +yy1077: + YYDEBUG(1077, *YYCURSOR); + yyaccept = 25; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'V') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy1076; + goto yy61; + } else { + if (yych <= '/') goto yy1076; + if (yych <= '9') goto yy821; + if (yych <= 'C') goto yy1076; + goto yy61; + } + } else { + if (yych <= 'H') { + if (yych == 'F') goto yy61; + if (yych <= 'G') goto yy1076; + goto yy61; + } else { + if (yych <= 'M') { + if (yych <= 'L') goto yy1076; + goto yy61; + } else { + if (yych <= 'R') goto yy1076; + if (yych <= 'T') goto yy61; + goto yy1076; + } + } + } + } else { + if (yych <= 'h') { + if (yych <= 'c') { + if (yych == 'X') goto yy1076; + if (yych <= 'Y') goto yy61; + goto yy1076; + } else { + if (yych <= 'e') { + if (yych <= 'd') goto yy61; + goto yy1076; + } else { + if (yych == 'g') goto yy1076; + goto yy61; + } + } + } else { + if (yych <= 't') { + if (yych == 'm') goto yy61; + if (yych <= 'r') goto yy1076; + goto yy61; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy1076; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy1076; + } + } + } + } +yy1078: + YYDEBUG(1078, *YYCURSOR); + yyaccept = 25; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'V') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy1076; + goto yy61; + } else { + if (yych <= '6') { + if (yych <= '/') goto yy1076; + goto yy821; + } else { + if (yych <= '9') goto yy55; + if (yych <= 'C') goto yy1076; + goto yy61; + } + } + } else { + if (yych <= 'H') { + if (yych == 'F') goto yy61; + if (yych <= 'G') goto yy1076; + goto yy61; + } else { + if (yych <= 'M') { + if (yych <= 'L') goto yy1076; + goto yy61; + } else { + if (yych <= 'R') goto yy1076; + if (yych <= 'T') goto yy61; + goto yy1076; + } + } + } + } else { + if (yych <= 'h') { + if (yych <= 'c') { + if (yych == 'X') goto yy1076; + if (yych <= 'Y') goto yy61; + goto yy1076; + } else { + if (yych <= 'e') { + if (yych <= 'd') goto yy61; + goto yy1076; + } else { + if (yych == 'g') goto yy1076; + goto yy61; + } + } + } else { + if (yych <= 't') { + if (yych == 'm') goto yy61; + if (yych <= 'r') goto yy1076; + goto yy61; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy1076; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy1076; + } + } + } + } +yy1079: + YYDEBUG(1079, *YYCURSOR); + yyaccept = 25; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'V') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy1076; + goto yy61; + } else { + if (yych <= '/') goto yy1076; + if (yych <= '9') goto yy821; + if (yych <= 'C') goto yy1076; + goto yy61; + } + } else { + if (yych <= 'H') { + if (yych == 'F') goto yy61; + if (yych <= 'G') goto yy1076; + goto yy61; + } else { + if (yych <= 'M') { + if (yych <= 'L') goto yy1076; + goto yy61; + } else { + if (yych <= 'R') goto yy1076; + if (yych <= 'T') goto yy61; + goto yy1076; + } + } + } + } else { + if (yych <= 'h') { + if (yych <= 'c') { + if (yych == 'X') goto yy1076; + if (yych <= 'Y') goto yy61; + goto yy1076; + } else { + if (yych <= 'e') { + if (yych <= 'd') goto yy61; + goto yy1076; + } else { + if (yych == 'g') goto yy1076; + goto yy61; + } + } + } else { + if (yych <= 't') { + if (yych == 'm') goto yy61; + if (yych <= 'r') goto yy1076; + goto yy61; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy1076; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy1076; + } + } + } + } +yy1080: + YYDEBUG(1080, *YYCURSOR); + yyaccept = 25; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych <= '9') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy1076; + goto yy61; + } else { + if (yych <= '0') { + if (yych <= '/') goto yy1076; + goto yy845; + } else { + if (yych <= '2') goto yy846; + if (yych <= '3') goto yy847; + goto yy821; + } + } + } else { + if (yych <= 'G') { + if (yych <= 'D') { + if (yych <= 'C') goto yy1076; + goto yy61; + } else { + if (yych == 'F') goto yy61; + goto yy1076; + } + } else { + if (yych <= 'L') { + if (yych <= 'H') goto yy61; + goto yy1076; + } else { + if (yych <= 'M') goto yy61; + if (yych <= 'R') goto yy1076; + goto yy61; + } + } + } + } else { + if (yych <= 'g') { + if (yych <= 'Y') { + if (yych == 'W') goto yy61; + if (yych <= 'X') goto yy1076; + goto yy61; + } else { + if (yych <= 'd') { + if (yych <= 'c') goto yy1076; + goto yy61; + } else { + if (yych == 'f') goto yy61; + goto yy1076; + } + } + } else { + if (yych <= 't') { + if (yych <= 'l') { + if (yych <= 'h') goto yy61; + goto yy1076; + } else { + if (yych <= 'm') goto yy61; + if (yych <= 'r') goto yy1076; + goto yy61; + } + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy1076; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy1076; + } + } + } + } +yy1081: + YYDEBUG(1081, *YYCURSOR); + yyaccept = 25; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych <= '9') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy1076; + goto yy61; + } else { + if (yych <= '0') { + if (yych <= '/') goto yy1076; + goto yy877; + } else { + if (yych <= '2') goto yy846; + if (yych <= '3') goto yy847; + goto yy821; + } + } + } else { + if (yych <= 'G') { + if (yych <= 'D') { + if (yych <= 'C') goto yy1076; + goto yy61; + } else { + if (yych == 'F') goto yy61; + goto yy1076; + } + } else { + if (yych <= 'L') { + if (yych <= 'H') goto yy61; + goto yy1076; + } else { + if (yych <= 'M') goto yy61; + if (yych <= 'R') goto yy1076; + goto yy61; + } + } + } + } else { + if (yych <= 'g') { + if (yych <= 'Y') { + if (yych == 'W') goto yy61; + if (yych <= 'X') goto yy1076; + goto yy61; + } else { + if (yych <= 'd') { + if (yych <= 'c') goto yy1076; + goto yy61; + } else { + if (yych == 'f') goto yy61; + goto yy1076; + } + } + } else { + if (yych <= 't') { + if (yych <= 'l') { + if (yych <= 'h') goto yy61; + goto yy1076; + } else { + if (yych <= 'm') goto yy61; + if (yych <= 'r') goto yy1076; + goto yy61; + } + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy1076; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy1076; + } + } + } + } +yy1082: + YYDEBUG(1082, *YYCURSOR); + yyaccept = 25; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych <= '9') { + if (yych <= ' ') { + if (yych == '\t') goto yy61; + if (yych <= 0x1F) goto yy1076; + goto yy61; + } else { + if (yych <= '0') { + if (yych <= '/') goto yy1076; + goto yy845; + } else { + if (yych <= '2') goto yy846; + if (yych <= '3') goto yy847; + goto yy821; + } + } + } else { + if (yych <= 'G') { + if (yych <= 'D') { + if (yych <= 'C') goto yy1076; + goto yy61; + } else { + if (yych == 'F') goto yy61; + goto yy1076; + } + } else { + if (yych <= 'L') { + if (yych <= 'H') goto yy61; + goto yy1076; + } else { + if (yych <= 'M') goto yy61; + if (yych <= 'R') goto yy1076; + goto yy61; + } + } + } + } else { + if (yych <= 'g') { + if (yych <= 'Y') { + if (yych == 'W') goto yy61; + if (yych <= 'X') goto yy1076; + goto yy61; + } else { + if (yych <= 'd') { + if (yych <= 'c') goto yy1076; + goto yy61; + } else { + if (yych == 'f') goto yy61; + goto yy1076; + } + } + } else { + if (yych <= 't') { + if (yych <= 'l') { + if (yych <= 'h') goto yy61; + goto yy1076; + } else { + if (yych <= 'm') goto yy61; + if (yych <= 'r') goto yy1076; + goto yy61; + } + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy1076; + goto yy61; + } else { + if (yych == 'y') goto yy61; + goto yy1076; + } + } + } + } +yy1083: + YYDEBUG(1083, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy1085; + goto yy491; + } else { + if (yych <= '9') goto yy1084; + if (yych <= ':') goto yy1085; + goto yy491; + } +yy1084: + YYDEBUG(1084, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy1085; + if (yych != ':') goto yy491; +yy1085: + YYDEBUG(1085, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy1086; + if (yych <= '6') goto yy1087; + if (yych <= '9') goto yy496; + goto yy57; +yy1086: + YYDEBUG(1086, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy497; + if (yych <= '/') goto yy491; + if (yych <= '9') goto yy496; + goto yy491; +yy1087: + YYDEBUG(1087, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy497; + if (yych == '0') goto yy496; + goto yy491; +yy1088: + YYDEBUG(1088, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ',') goto yy491; + if (yych <= '-') goto yy602; + goto yy1092; + } else { + if (yych <= '/') goto yy491; + if (yych <= '9') goto yy1091; + if (yych <= ':') goto yy1085; + goto yy491; + } +yy1089: + YYDEBUG(1089, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') goto yy491; + if (yych <= '-') goto yy602; + if (yych <= '.') goto yy1092; + goto yy491; + } else { + if (yych <= '2') goto yy1091; + if (yych <= '9') goto yy1084; + if (yych <= ':') goto yy1085; + goto yy491; + } +yy1090: + YYDEBUG(1090, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ',') goto yy491; + if (yych <= '-') goto yy602; + goto yy1092; + } else { + if (yych <= '/') goto yy491; + if (yych <= '9') goto yy1084; + if (yych <= ':') goto yy1085; + goto yy491; + } +yy1091: + YYDEBUG(1091, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ',') goto yy491; + if (yych <= '-') goto yy602; + } else { + if (yych == ':') goto yy1085; + goto yy491; + } +yy1092: + YYDEBUG(1092, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '5') goto yy1093; + if (yych <= '6') goto yy1094; + if (yych <= '9') goto yy610; + goto yy57; +yy1093: + YYDEBUG(1093, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy497; + if (yych <= '/') goto yy491; + if (yych <= '9') goto yy1095; + goto yy491; +yy1094: + YYDEBUG(1094, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy497; + goto yy491; + } else { + if (yych <= '0') goto yy1095; + if (yych <= '9') goto yy611; + goto yy491; + } +yy1095: + YYDEBUG(1095, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy497; + if (yych <= '/') goto yy491; + if (yych <= '9') goto yy605; + goto yy491; +yy1096: + YYDEBUG(1096, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych <= '-') { + if (yych == '\t') goto yy460; + if (yych <= ',') goto yy462; + goto yy1051; + } else { + if (yych <= '.') goto yy474; + if (yych <= '/') goto yy472; + if (yych <= '5') goto yy1066; + goto yy741; + } + } else { + if (yych <= 'q') { + if (yych <= ':') goto yy483; + if (yych == 'n') goto yy470; + goto yy462; + } else { + if (yych <= 'r') goto yy471; + if (yych <= 's') goto yy464; + if (yych <= 't') goto yy468; + goto yy462; + } + } +yy1097: + YYDEBUG(1097, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych <= '-') { + if (yych == '\t') goto yy1052; + if (yych <= ',') goto yy1054; + goto yy1051; + } else { + if (yych <= '.') goto yy1064; + if (yych <= '/') goto yy472; + if (yych <= '5') goto yy1066; + goto yy741; + } + } else { + if (yych <= 'q') { + if (yych <= ':') goto yy1065; + if (yych == 'n') goto yy470; + goto yy1054; + } else { + if (yych <= 'r') goto yy471; + if (yych <= 's') goto yy464; + if (yych <= 't') goto yy468; + goto yy1054; + } + } +yy1098: + YYDEBUG(1098, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy142; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'e') goto yy1099; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1099: + YYDEBUG(1099, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'V') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'U') goto yy143; + } + } else { + if (yych <= 'u') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 'v') goto yy1100; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1100: + YYDEBUG(1100, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'I') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'H') goto yy144; + } + } else { + if (yych <= 'h') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'i') goto yy1101; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1101: + YYDEBUG(1101, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'N') goto yy145; + } + } else { + if (yych <= 'n') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'o') goto yy1102; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1102: + YYDEBUG(1102, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'U') goto yy1103; + if (yych != 'u') goto yy4; + } +yy1103: + YYDEBUG(1103, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy1104; + if (yych != 's') goto yy57; +yy1104: + YYDEBUG(1104, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\t') goto yy1105; + if (yych != ' ') goto yy57; +yy1105: + YYDEBUG(1105, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11); + yych = *YYCURSOR; +yy1106: + YYDEBUG(1106, *YYCURSOR); + if (yych <= 'W') { + if (yych <= 'F') { + if (yych <= ' ') { + if (yych == '\t') goto yy1105; + if (yych <= 0x1F) goto yy57; + goto yy1105; + } else { + if (yych == 'D') goto yy1110; + if (yych <= 'E') goto yy57; + goto yy1111; + } + } else { + if (yych <= 'M') { + if (yych == 'H') goto yy1109; + if (yych <= 'L') goto yy57; + goto yy1108; + } else { + if (yych <= 'S') { + if (yych <= 'R') goto yy57; + } else { + if (yych <= 'T') goto yy1114; + if (yych <= 'V') goto yy57; + goto yy1113; + } + } + } + } else { + if (yych <= 'l') { + if (yych <= 'd') { + if (yych == 'Y') goto yy1112; + if (yych <= 'c') goto yy57; + goto yy1110; + } else { + if (yych <= 'f') { + if (yych <= 'e') goto yy57; + goto yy1111; + } else { + if (yych == 'h') goto yy1109; + goto yy57; + } + } + } else { + if (yych <= 't') { + if (yych <= 'm') goto yy1108; + if (yych <= 'r') goto yy57; + if (yych >= 't') goto yy1114; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy57; + goto yy1113; + } else { + if (yych == 'y') goto yy1112; + goto yy57; + } + } + } + } +yy1107: + YYDEBUG(1107, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= 'D') { + if (yych == 'A') goto yy1179; + goto yy57; + } else { + if (yych <= 'E') goto yy1180; + if (yych <= 'T') goto yy57; + goto yy1178; + } + } else { + if (yych <= 'd') { + if (yych == 'a') goto yy1179; + goto yy57; + } else { + if (yych <= 'e') goto yy1180; + if (yych == 'u') goto yy1178; + goto yy57; + } + } +yy1108: + YYDEBUG(1108, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych == 'I') goto yy1170; + if (yych <= 'N') goto yy57; + goto yy1169; + } else { + if (yych <= 'i') { + if (yych <= 'h') goto yy57; + goto yy1170; + } else { + if (yych == 'o') goto yy1169; + goto yy57; + } + } +yy1109: + YYDEBUG(1109, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy1167; + if (yych == 'o') goto yy1167; + goto yy57; +yy1110: + YYDEBUG(1110, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1166; + if (yych == 'a') goto yy1166; + goto yy57; +yy1111: + YYDEBUG(1111, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych == 'O') goto yy1151; + if (yych <= 'Q') goto yy57; + goto yy1150; + } else { + if (yych <= 'o') { + if (yych <= 'n') goto yy57; + goto yy1151; + } else { + if (yych == 'r') goto yy1150; + goto yy57; + } + } +yy1112: + YYDEBUG(1112, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1147; + if (yych == 'e') goto yy1147; + goto yy57; +yy1113: + YYDEBUG(1113, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1133; + if (yych == 'e') goto yy1133; + goto yy57; +yy1114: + YYDEBUG(1114, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'H') goto yy1115; + if (yych <= 'T') goto yy57; + goto yy1116; + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy57; + } else { + if (yych == 'u') goto yy1116; + goto yy57; + } + } +yy1115: + YYDEBUG(1115, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy1128; + if (yych == 'u') goto yy1128; + goto yy57; +yy1116: + YYDEBUG(1116, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1117; + if (yych != 'e') goto yy57; +yy1117: + YYDEBUG(1117, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ' ') { + if (yych == '\t') goto yy1119; + if (yych >= ' ') goto yy1119; + } else { + if (yych <= 'S') { + if (yych >= 'S') goto yy1121; + } else { + if (yych == 's') goto yy1121; + } + } +yy1118: + YYDEBUG(1118, *YYCURSOR); + { + timelib_sll i; + int behavior = 0; + DEBUG_OUTPUT("relativetext"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + + while(*ptr) { + i = timelib_get_relative_text((char **) &ptr, &behavior); + timelib_eat_spaces((char **) &ptr); + timelib_set_relative((char **) &ptr, i, behavior, s); + } + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +yy1119: + YYDEBUG(1119, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + YYDEBUG(1120, *YYCURSOR); + if (yych <= ' ') { + if (yych == '\t') goto yy1119; + if (yych <= 0x1F) goto yy57; + goto yy1119; + } else { + if (yych <= 'O') { + if (yych <= 'N') goto yy57; + goto yy1125; + } else { + if (yych == 'o') goto yy1125; + goto yy57; + } + } +yy1121: + YYDEBUG(1121, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy1122; + if (yych != 'd') goto yy57; +yy1122: + YYDEBUG(1122, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1123; + if (yych != 'a') goto yy57; +yy1123: + YYDEBUG(1123, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1124; + if (yych != 'y') goto yy57; +yy1124: + YYDEBUG(1124, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '\t') goto yy1119; + if (yych == ' ') goto yy1119; + goto yy1118; +yy1125: + YYDEBUG(1125, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy1126; + if (yych != 'f') goto yy57; +yy1126: + YYDEBUG(1126, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(1127, *YYCURSOR); + { + timelib_sll i; + int behavior = 0; + DEBUG_OUTPUT("weekdayof"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_HAVE_SPECIAL_RELATIVE(); + + i = timelib_get_relative_text((char **) &ptr, &behavior); + timelib_eat_spaces((char **) &ptr); + if (i > 0) { /* first, second... etc */ + s->time->relative.special.type = TIMELIB_SPECIAL_DAY_OF_WEEK_IN_MONTH; + timelib_set_relative((char **) &ptr, i, 1, s); + } else { /* last */ + s->time->relative.special.type = TIMELIB_SPECIAL_LAST_DAY_OF_WEEK_IN_MONTH; + timelib_set_relative((char **) &ptr, i, behavior, s); + } + TIMELIB_DEINIT; + return TIMELIB_WEEK_DAY_OF_MONTH; + } +yy1128: + YYDEBUG(1128, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ' ') { + if (yych == '\t') goto yy1119; + if (yych <= 0x1F) goto yy1118; + goto yy1119; + } else { + if (yych <= 'R') { + if (yych <= 'Q') goto yy1118; + } else { + if (yych != 'r') goto yy1118; + } + } + YYDEBUG(1129, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy1130; + if (yych != 's') goto yy57; +yy1130: + YYDEBUG(1130, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy1131; + if (yych != 'd') goto yy57; +yy1131: + YYDEBUG(1131, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1132; + if (yych != 'a') goto yy57; +yy1132: + YYDEBUG(1132, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1124; + if (yych == 'y') goto yy1124; + goto yy57; +yy1133: + YYDEBUG(1133, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= 'C') goto yy57; + if (yych <= 'D') goto yy1135; + } else { + if (yych <= 'c') goto yy57; + if (yych <= 'd') goto yy1135; + if (yych >= 'f') goto yy57; + } + YYDEBUG(1134, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'K') goto yy1141; + if (yych == 'k') goto yy1141; + goto yy57; +yy1135: + YYDEBUG(1135, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ' ') { + if (yych == '\t') goto yy1119; + if (yych <= 0x1F) goto yy1118; + goto yy1119; + } else { + if (yych <= 'N') { + if (yych <= 'M') goto yy1118; + } else { + if (yych != 'n') goto yy1118; + } + } + YYDEBUG(1136, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1137; + if (yych != 'e') goto yy57; +yy1137: + YYDEBUG(1137, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy1138; + if (yych != 's') goto yy57; +yy1138: + YYDEBUG(1138, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy1139; + if (yych != 'd') goto yy57; +yy1139: + YYDEBUG(1139, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1140; + if (yych != 'a') goto yy57; +yy1140: + YYDEBUG(1140, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1124; + if (yych == 'y') goto yy1124; + goto yy57; +yy1141: + YYDEBUG(1141, *YYCURSOR); + yyaccept = 27; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych == 'D') goto yy1144; + if (yych >= 'S') goto yy1143; + } else { + if (yych <= 'd') { + if (yych >= 'd') goto yy1144; + } else { + if (yych == 's') goto yy1143; + } + } +yy1142: + YYDEBUG(1142, *YYCURSOR); + { + timelib_sll i; + int behavior = 0; + DEBUG_OUTPUT("relativetextweek"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + + while(*ptr) { + i = timelib_get_relative_text((char **) &ptr, &behavior); + timelib_eat_spaces((char **) &ptr); + timelib_set_relative((char **) &ptr, i, behavior, s); + s->time->relative.weekday_behavior = 2; + + /* to handle the format weekday + last/this/next week */ + if (s->time->relative.have_weekday_relative == 0) { + TIMELIB_HAVE_WEEKDAY_RELATIVE(); + s->time->relative.weekday = 1; + } + } + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +yy1143: + YYDEBUG(1143, *YYCURSOR); + yych = *++YYCURSOR; + goto yy1118; +yy1144: + YYDEBUG(1144, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1145; + if (yych != 'a') goto yy57; +yy1145: + YYDEBUG(1145, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1146; + if (yych != 'y') goto yy57; +yy1146: + YYDEBUG(1146, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy1143; + if (yych == 's') goto yy1143; + goto yy1118; +yy1147: + YYDEBUG(1147, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1148; + if (yych != 'a') goto yy57; +yy1148: + YYDEBUG(1148, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy1149; + if (yych != 'r') goto yy57; +yy1149: + YYDEBUG(1149, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy1143; + if (yych == 's') goto yy1143; + goto yy1118; +yy1150: + YYDEBUG(1150, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy1163; + if (yych == 'i') goto yy1163; + goto yy57; +yy1151: + YYDEBUG(1151, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy1152; + if (yych != 'r') goto yy57; +yy1152: + YYDEBUG(1152, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1153; + if (yych != 't') goto yy57; +yy1153: + YYDEBUG(1153, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych == 'H') goto yy1155; + if (yych <= 'M') goto yy57; + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy57; + goto yy1155; + } else { + if (yych != 'n') goto yy57; + } + } + YYDEBUG(1154, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy1160; + if (yych == 'i') goto yy1160; + goto yy57; +yy1155: + YYDEBUG(1155, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy1156; + if (yych != 'n') goto yy57; +yy1156: + YYDEBUG(1156, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy1157; + if (yych != 'i') goto yy57; +yy1157: + YYDEBUG(1157, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy1158; + if (yych != 'g') goto yy57; +yy1158: + YYDEBUG(1158, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy1159; + if (yych != 'h') goto yy57; +yy1159: + YYDEBUG(1159, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1149; + if (yych == 't') goto yy1149; + goto yy57; +yy1160: + YYDEBUG(1160, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy1161; + if (yych != 'g') goto yy57; +yy1161: + YYDEBUG(1161, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy1162; + if (yych != 'h') goto yy57; +yy1162: + YYDEBUG(1162, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1149; + if (yych == 't') goto yy1149; + goto yy57; +yy1163: + YYDEBUG(1163, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ' ') { + if (yych == '\t') goto yy1119; + if (yych <= 0x1F) goto yy1118; + goto yy1119; + } else { + if (yych <= 'D') { + if (yych <= 'C') goto yy1118; + } else { + if (yych != 'd') goto yy1118; + } + } + YYDEBUG(1164, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1165; + if (yych != 'a') goto yy57; +yy1165: + YYDEBUG(1165, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1124; + if (yych == 'y') goto yy1124; + goto yy57; +yy1166: + YYDEBUG(1166, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1149; + if (yych == 'y') goto yy1149; + goto yy57; +yy1167: + YYDEBUG(1167, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy1168; + if (yych != 'u') goto yy57; +yy1168: + YYDEBUG(1168, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy1149; + if (yych == 'r') goto yy1149; + goto yy57; +yy1169: + YYDEBUG(1169, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy1174; + if (yych == 'n') goto yy1174; + goto yy57; +yy1170: + YYDEBUG(1170, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy1171; + if (yych != 'n') goto yy57; +yy1171: + YYDEBUG(1171, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'U') { + if (yych == 'S') goto yy1143; + if (yych <= 'T') goto yy1118; + } else { + if (yych <= 's') { + if (yych <= 'r') goto yy1118; + goto yy1143; + } else { + if (yych != 'u') goto yy1118; + } + } + YYDEBUG(1172, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1173; + if (yych != 't') goto yy57; +yy1173: + YYDEBUG(1173, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1149; + if (yych == 'e') goto yy1149; + goto yy57; +yy1174: + YYDEBUG(1174, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy1119; + goto yy1118; + } else { + if (yych <= ' ') goto yy1119; + if (yych <= 'C') goto yy1118; + } + } else { + if (yych <= 'c') { + if (yych == 'T') goto yy1176; + goto yy1118; + } else { + if (yych <= 'd') goto yy1175; + if (yych == 't') goto yy1176; + goto yy1118; + } + } +yy1175: + YYDEBUG(1175, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1177; + if (yych == 'a') goto yy1177; + goto yy57; +yy1176: + YYDEBUG(1176, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy1149; + if (yych == 'h') goto yy1149; + goto yy57; +yy1177: + YYDEBUG(1177, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1124; + if (yych == 'y') goto yy1124; + goto yy57; +yy1178: + YYDEBUG(1178, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy1189; + if (yych == 'n') goto yy1189; + goto yy57; +yy1179: + YYDEBUG(1179, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1184; + if (yych == 't') goto yy1184; + goto yy57; +yy1180: + YYDEBUG(1180, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy1181; + if (yych != 'c') goto yy57; +yy1181: + YYDEBUG(1181, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych == 'O') goto yy1182; + if (yych <= 'R') goto yy1118; + goto yy1143; + } else { + if (yych <= 'o') { + if (yych <= 'n') goto yy1118; + } else { + if (yych == 's') goto yy1143; + goto yy1118; + } + } +yy1182: + YYDEBUG(1182, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy1183; + if (yych != 'n') goto yy57; +yy1183: + YYDEBUG(1183, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy1149; + if (yych == 'd') goto yy1149; + goto yy57; +yy1184: + YYDEBUG(1184, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ' ') { + if (yych == '\t') goto yy1119; + if (yych <= 0x1F) goto yy1118; + goto yy1119; + } else { + if (yych <= 'U') { + if (yych <= 'T') goto yy1118; + } else { + if (yych != 'u') goto yy1118; + } + } + YYDEBUG(1185, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy1186; + if (yych != 'r') goto yy57; +yy1186: + YYDEBUG(1186, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy1187; + if (yych != 'd') goto yy57; +yy1187: + YYDEBUG(1187, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1188; + if (yych != 'a') goto yy57; +yy1188: + YYDEBUG(1188, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1124; + if (yych == 'y') goto yy1124; + goto yy57; +yy1189: + YYDEBUG(1189, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ' ') { + if (yych == '\t') goto yy1119; + if (yych <= 0x1F) goto yy1118; + goto yy1119; + } else { + if (yych <= 'D') { + if (yych <= 'C') goto yy1118; + } else { + if (yych != 'd') goto yy1118; + } + } + YYDEBUG(1190, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1191; + if (yych != 'a') goto yy57; +yy1191: + YYDEBUG(1191, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1124; + if (yych == 'y') goto yy1124; + goto yy57; +yy1192: + YYDEBUG(1192, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'E') goto yy1099; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'e') goto yy1193; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1193: + YYDEBUG(1193, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'U') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'V') goto yy1100; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'u') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 'v') goto yy1194; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1194: + YYDEBUG(1194, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'H') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'I') goto yy1101; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'h') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'i') goto yy1195; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1195: + YYDEBUG(1195, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'N') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'O') goto yy1102; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'n') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'o') goto yy1196; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1196: + YYDEBUG(1196, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'U') goto yy1103; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'u') goto yy1197; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy1197: + YYDEBUG(1197, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy1104; + if (yych != 's') goto yy155; + YYDEBUG(1198, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy154; + } + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy57; + goto yy1105; + } else { + if (yych == ' ') goto yy1105; + goto yy57; + } + } else { + if (yych <= '/') { + if (yych == '.') goto yy57; + goto yy148; + } else { + if (yych == '_') goto yy148; + goto yy57; + } + } +yy1199: + YYDEBUG(1199, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'G') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'F') goto yy142; + goto yy1213; + } + } else { + if (yych <= 'f') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'g') goto yy1213; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1200: + YYDEBUG(1200, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy142; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'e') goto yy1201; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1201: + YYDEBUG(1201, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'V') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'U') goto yy143; + } + } else { + if (yych <= 'u') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 'v') goto yy1202; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1202: + YYDEBUG(1202, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy144; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'e') goto yy1203; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1203: + YYDEBUG(1203, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'M') goto yy145; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'n') goto yy1204; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1204: + YYDEBUG(1204, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'T') goto yy1205; + if (yych != 't') goto yy4; + } +yy1205: + YYDEBUG(1205, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy1206; + if (yych != 'h') goto yy57; +yy1206: + YYDEBUG(1206, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\t') goto yy1207; + if (yych != ' ') goto yy57; +yy1207: + YYDEBUG(1207, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11); + yych = *YYCURSOR; +yy1208: + YYDEBUG(1208, *YYCURSOR); + if (yych <= 'W') { + if (yych <= 'F') { + if (yych <= ' ') { + if (yych == '\t') goto yy1207; + if (yych <= 0x1F) goto yy57; + goto yy1207; + } else { + if (yych == 'D') goto yy1110; + if (yych <= 'E') goto yy57; + goto yy1111; + } + } else { + if (yych <= 'M') { + if (yych == 'H') goto yy1109; + if (yych <= 'L') goto yy57; + goto yy1108; + } else { + if (yych <= 'S') { + if (yych <= 'R') goto yy57; + goto yy1107; + } else { + if (yych <= 'T') goto yy1114; + if (yych <= 'V') goto yy57; + } + } + } + } else { + if (yych <= 'l') { + if (yych <= 'd') { + if (yych == 'Y') goto yy1112; + if (yych <= 'c') goto yy57; + goto yy1110; + } else { + if (yych <= 'f') { + if (yych <= 'e') goto yy57; + goto yy1111; + } else { + if (yych == 'h') goto yy1109; + goto yy57; + } + } + } else { + if (yych <= 't') { + if (yych <= 'm') goto yy1108; + if (yych <= 'r') goto yy57; + if (yych <= 's') goto yy1107; + goto yy1114; + } else { + if (yych <= 'w') { + if (yych <= 'v') goto yy57; + } else { + if (yych == 'y') goto yy1112; + goto yy57; + } + } + } + } + YYDEBUG(1209, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1210; + if (yych != 'e') goto yy57; +yy1210: + YYDEBUG(1210, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= 'C') goto yy57; + if (yych <= 'D') goto yy1135; + } else { + if (yych <= 'c') goto yy57; + if (yych <= 'd') goto yy1135; + if (yych >= 'f') goto yy57; + } + YYDEBUG(1211, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'K') goto yy1212; + if (yych != 'k') goto yy57; +yy1212: + YYDEBUG(1212, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych == 'D') goto yy1144; + if (yych <= 'R') goto yy57; + goto yy1143; + } else { + if (yych <= 'd') { + if (yych <= 'c') goto yy57; + goto yy1144; + } else { + if (yych == 's') goto yy1143; + goto yy57; + } + } +yy1213: + YYDEBUG(1213, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'H') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'G') goto yy143; + } + } else { + if (yych <= 'g') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 'h') goto yy1214; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1214: + YYDEBUG(1214, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy144; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 't') goto yy1215; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1215: + YYDEBUG(1215, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy1207; + goto yy4; + } else { + if (yych <= ' ') goto yy1207; + if (yych == ')') goto yy140; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych == 'H') goto yy1216; + if (yych <= 'Z') goto yy145; + goto yy4; + } else { + if (yych == 'h') goto yy1216; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1216: + YYDEBUG(1216, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 0x1F) { + if (yych == '\t') goto yy1207; + goto yy4; + } else { + if (yych <= ' ') goto yy1207; + if (yych == ')') goto yy140; + goto yy4; + } +yy1217: + YYDEBUG(1217, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'F') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'G') goto yy1213; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'f') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'g') goto yy1225; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1218: + YYDEBUG(1218, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'E') goto yy1201; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'e') goto yy1219; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1219: + YYDEBUG(1219, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'U') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'V') goto yy1202; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'u') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 'v') goto yy1220; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1220: + YYDEBUG(1220, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'E') goto yy1203; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'e') goto yy1221; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1221: + YYDEBUG(1221, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'N') goto yy1204; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'n') goto yy1222; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1222: + YYDEBUG(1222, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'T') goto yy1205; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 't') goto yy1223; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy1223: + YYDEBUG(1223, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy1206; + if (yych != 'h') goto yy155; +yy1224: + YYDEBUG(1224, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 16) { + goto yy154; + } + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy57; + goto yy1207; + } else { + if (yych == ' ') goto yy1207; + goto yy57; + } + } else { + if (yych <= '/') { + if (yych == '.') goto yy57; + goto yy148; + } else { + if (yych == '_') goto yy148; + goto yy57; + } + } +yy1225: + YYDEBUG(1225, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'H') goto yy1214; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'g') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 'h') goto yy1226; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1226: + YYDEBUG(1226, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy1215; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 't') goto yy1227; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1227: + YYDEBUG(1227, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy4; + goto yy1207; + } else { + if (yych == ' ') goto yy1207; + goto yy4; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + goto yy148; + } + } + } else { + if (yych <= '^') { + if (yych <= 'G') { + if (yych <= '@') goto yy4; + goto yy145; + } else { + if (yych <= 'H') goto yy1216; + if (yych <= 'Z') goto yy145; + goto yy4; + } + } else { + if (yych <= 'g') { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'h') goto yy1228; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1228: + YYDEBUG(1228, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy154; + } + if (yych <= ')') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy1207; + goto yy4; + } else { + if (yych <= ' ') goto yy1207; + if (yych <= '(') goto yy4; + goto yy140; + } + } else { + if (yych <= '.') { + if (yych == '-') goto yy148; + goto yy4; + } else { + if (yych <= '/') goto yy148; + if (yych == '_') goto yy148; + goto yy4; + } + } +yy1229: + YYDEBUG(1229, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'V') { + if (yych <= 'B') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy142; + } else { + if (yych <= 'O') { + if (yych <= 'C') goto yy1245; + goto yy142; + } else { + if (yych <= 'P') goto yy1247; + if (yych <= 'U') goto yy142; + goto yy1246; + } + } + } else { + if (yych <= 'o') { + if (yych <= '`') { + if (yych <= 'Z') goto yy142; + goto yy4; + } else { + if (yych == 'c') goto yy1245; + goto yy142; + } + } else { + if (yych <= 'u') { + if (yych <= 'p') goto yy1247; + goto yy142; + } else { + if (yych <= 'v') goto yy1246; + if (yych <= 'z') goto yy142; + goto yy4; + } + } + } +yy1230: + YYDEBUG(1230, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy142; + goto yy1240; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 't') goto yy1240; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1231: + YYDEBUG(1231, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'X') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'W') goto yy142; + goto yy1237; + } + } else { + if (yych <= 'w') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'x') goto yy1237; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1232: + YYDEBUG(1232, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'M') goto yy142; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'n') goto yy1233; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1233: + YYDEBUG(1233, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy167; + goto yy140; + } else { + if (yych <= '@') goto yy167; + if (yych <= 'C') goto yy143; + } + } else { + if (yych <= 'c') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy167; + goto yy143; + } else { + if (yych <= 'd') goto yy1234; + if (yych <= 'z') goto yy143; + goto yy167; + } + } +yy1234: + YYDEBUG(1234, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy144; + goto yy4; + } else { + if (yych <= 'a') goto yy1235; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1235: + YYDEBUG(1235, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'X') goto yy145; + } + } else { + if (yych <= 'x') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'y') goto yy1236; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1236: + YYDEBUG(1236, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ')') goto yy140; + goto yy167; +yy1237: + YYDEBUG(1237, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy143; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 't') goto yy1238; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1238: + YYDEBUG(1238, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'H') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'G') goto yy144; + } + } else { + if (yych <= 'g') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'h') goto yy1239; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1239: + YYDEBUG(1239, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy4; + goto yy1207; + } else { + if (yych == ' ') goto yy1207; + goto yy4; + } + } else { + if (yych <= 'Z') { + if (yych <= ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy145; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1240: + YYDEBUG(1240, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= ')') { + if (yych <= '(') goto yy167; + goto yy140; + } else { + if (yych <= '@') goto yy167; + if (yych <= 'T') goto yy143; + } + } else { + if (yych <= 't') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy167; + goto yy143; + } else { + if (yych <= 'u') goto yy1241; + if (yych <= 'z') goto yy143; + goto yy167; + } + } +yy1241: + YYDEBUG(1241, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'Q') goto yy144; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'r') goto yy1242; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1242: + YYDEBUG(1242, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'C') goto yy145; + } + } else { + if (yych <= 'c') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'd') goto yy1243; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1243: + YYDEBUG(1243, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'A') goto yy1244; + if (yych != 'a') goto yy4; + } +yy1244: + YYDEBUG(1244, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy173; + if (yych == 'y') goto yy173; + goto yy57; +yy1245: + YYDEBUG(1245, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'N') goto yy143; + goto yy1256; + } + } else { + if (yych <= 'n') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 'o') goto yy1256; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1246: + YYDEBUG(1246, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy143; + goto yy1253; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 'e') goto yy1253; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1247: + YYDEBUG(1247, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy140; + goto yy194; + } else { + if (yych <= '-') goto yy197; + if (yych <= '.') goto yy196; + goto yy194; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy196; + goto yy194; + } else { + if (yych != 'T') goto yy143; + } + } else { + if (yych <= 's') { + if (yych <= '`') goto yy194; + goto yy143; + } else { + if (yych <= 't') goto yy1248; + if (yych <= 'z') goto yy143; + goto yy194; + } + } + } +yy1248: + YYDEBUG(1248, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy140; + goto yy194; + } else { + if (yych <= '-') goto yy197; + if (yych <= '.') goto yy196; + goto yy194; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy196; + goto yy194; + } else { + if (yych != 'E') goto yy144; + } + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy194; + goto yy144; + } else { + if (yych <= 'e') goto yy1249; + if (yych <= 'z') goto yy144; + goto yy194; + } + } + } +yy1249: + YYDEBUG(1249, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'M') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'L') goto yy145; + } + } else { + if (yych <= 'l') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'm') goto yy1250; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1250: + YYDEBUG(1250, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'A') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'B') goto yy1251; + if (yych != 'b') goto yy4; + } +yy1251: + YYDEBUG(1251, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1252; + if (yych != 'e') goto yy57; +yy1252: + YYDEBUG(1252, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy206; + if (yych == 'r') goto yy206; + goto yy57; +yy1253: + YYDEBUG(1253, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'M') goto yy144; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'n') goto yy1254; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1254: + YYDEBUG(1254, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy145; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 't') goto yy1255; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1255: + YYDEBUG(1255, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'H') goto yy1206; + if (yych == 'h') goto yy1206; + goto yy4; + } +yy1256: + YYDEBUG(1256, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'M') goto yy144; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'n') goto yy1257; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1257: + YYDEBUG(1257, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'C') goto yy145; + goto yy1216; + } + } else { + if (yych <= 'c') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'd') goto yy1216; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1258: + YYDEBUG(1258, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'U') { + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + goto yy148; + } + } else { + if (yych <= 'C') { + if (yych <= '@') goto yy4; + if (yych <= 'B') goto yy142; + goto yy1245; + } else { + if (yych == 'P') goto yy1247; + goto yy142; + } + } + } else { + if (yych <= 'b') { + if (yych <= '^') { + if (yych <= 'V') goto yy1246; + if (yych <= 'Z') goto yy142; + goto yy4; + } else { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy4; + goto yy147; + } + } else { + if (yych <= 'p') { + if (yych <= 'c') goto yy1274; + if (yych <= 'o') goto yy147; + goto yy1276; + } else { + if (yych == 'v') goto yy1275; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1259: + YYDEBUG(1259, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy1240; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 't') goto yy1269; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1260: + YYDEBUG(1260, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'W') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'X') goto yy1237; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'w') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'x') goto yy1266; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1261: + YYDEBUG(1261, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'N') goto yy1233; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'n') goto yy1262; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1262: + YYDEBUG(1262, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy167; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy167; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'D') goto yy1234; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy167; + goto yy148; + } else { + if (yych <= 'c') { + if (yych <= '`') goto yy167; + goto yy151; + } else { + if (yych <= 'd') goto yy1263; + if (yych <= 'z') goto yy151; + goto yy167; + } + } + } +yy1263: + YYDEBUG(1263, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '_') { + if (yych <= 'A') goto yy1235; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'a') goto yy1264; + if (yych <= 'z') goto yy152; + goto yy4; + } + } +yy1264: + YYDEBUG(1264, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'Y') goto yy1236; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'x') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'y') goto yy1265; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1265: + YYDEBUG(1265, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy154; + } + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy167; + goto yy148; + } else { + if (yych <= '/') { + if (yych <= '.') goto yy167; + goto yy148; + } else { + if (yych == '_') goto yy148; + goto yy167; + } + } +yy1266: + YYDEBUG(1266, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy1238; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 't') goto yy1267; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1267: + YYDEBUG(1267, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'H') goto yy1239; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'g') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'h') goto yy1268; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1268: + YYDEBUG(1268, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '-') { + if (yych <= ' ') { + if (yych == '\t') goto yy1207; + if (yych <= 0x1F) goto yy4; + goto yy1207; + } else { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } + } else { + if (yych <= 'Z') { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } else { + if (yych <= '_') { + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1269: + YYDEBUG(1269, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy167; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy167; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'U') goto yy1241; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy167; + goto yy148; + } else { + if (yych <= 't') { + if (yych <= '`') goto yy167; + goto yy151; + } else { + if (yych <= 'u') goto yy1270; + if (yych <= 'z') goto yy151; + goto yy167; + } + } + } +yy1270: + YYDEBUG(1270, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'Q') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'R') goto yy1242; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'q') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'r') goto yy1271; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1271: + YYDEBUG(1271, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'D') goto yy1243; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'c') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'd') goto yy1272; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1272: + YYDEBUG(1272, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '_') { + if (yych <= 'A') goto yy1244; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'a') goto yy1273; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy1273: + YYDEBUG(1273, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy173; + if (yych == 'y') goto yy186; + goto yy155; +yy1274: + YYDEBUG(1274, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'N') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'O') goto yy1256; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'n') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 'o') goto yy1285; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1275: + YYDEBUG(1275, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'E') goto yy1253; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 'e') goto yy1282; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1276: + YYDEBUG(1276, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= '-') { + if (yych <= ')') goto yy140; + if (yych <= ',') goto yy194; + goto yy372; + } else { + if (yych == '/') goto yy148; + goto yy196; + } + } + } else { + if (yych <= '^') { + if (yych <= 'S') { + if (yych <= '@') goto yy194; + goto yy143; + } else { + if (yych <= 'T') goto yy1248; + if (yych <= 'Z') goto yy143; + goto yy194; + } + } else { + if (yych <= 's') { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy194; + goto yy151; + } else { + if (yych <= 't') goto yy1277; + if (yych <= 'z') goto yy151; + goto yy194; + } + } + } +yy1277: + YYDEBUG(1277, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= '-') { + if (yych <= ')') goto yy140; + if (yych <= ',') goto yy194; + goto yy372; + } else { + if (yych == '/') goto yy148; + goto yy196; + } + } + } else { + if (yych <= '^') { + if (yych <= 'D') { + if (yych <= '@') goto yy194; + goto yy144; + } else { + if (yych <= 'E') goto yy1249; + if (yych <= 'Z') goto yy144; + goto yy194; + } + } else { + if (yych <= 'd') { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy194; + goto yy152; + } else { + if (yych <= 'e') goto yy1278; + if (yych <= 'z') goto yy152; + goto yy194; + } + } + } +yy1278: + YYDEBUG(1278, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'L') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'M') goto yy1250; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'l') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'm') goto yy1279; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1279: + YYDEBUG(1279, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'A') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'B') goto yy1251; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'b') goto yy1280; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy1280: + YYDEBUG(1280, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1252; + if (yych != 'e') goto yy155; + YYDEBUG(1281, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy206; + if (yych == 'r') goto yy377; + goto yy155; +yy1282: + YYDEBUG(1282, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'N') goto yy1254; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'n') goto yy1283; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1283: + YYDEBUG(1283, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy1255; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 't') goto yy1284; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1284: + YYDEBUG(1284, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'H') goto yy1206; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'h') goto yy1224; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy1285: + YYDEBUG(1285, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'N') goto yy1257; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'n') goto yy1286; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1286: + YYDEBUG(1286, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'D') goto yy1216; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'c') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'd') goto yy1228; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1287: + YYDEBUG(1287, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'C') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'B') goto yy142; + } + } else { + if (yych <= 'b') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'c') goto yy1288; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1288: + YYDEBUG(1288, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'K') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'J') goto yy143; + } + } else { + if (yych <= 'j') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 'k') goto yy1289; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1289: + YYDEBUG(1289, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ')') { + if (yych == ' ') goto yy1290; + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= 'Z') { + if (yych <= '@') goto yy4; + goto yy144; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1290: + YYDEBUG(1290, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy1291; + if (yych != 'o') goto yy57; +yy1291: + YYDEBUG(1291, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy1292; + if (yych != 'f') goto yy57; +yy1292: + YYDEBUG(1292, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ' ') goto yy57; + YYDEBUG(1293, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '1') goto yy1294; + if (yych <= '2') goto yy1296; + if (yych <= '9') goto yy1297; + goto yy57; +yy1294: + YYDEBUG(1294, *YYCURSOR); + yyaccept = 28; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy1298; + if (yych <= '9') goto yy1297; + goto yy1298; +yy1295: + YYDEBUG(1295, *YYCURSOR); + { + DEBUG_OUTPUT("backof | frontof"); + TIMELIB_INIT; + TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TIME(); + + if (*ptr == 'b') { + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = 15; + } else { + s->time->h = timelib_get_nr((char **) &ptr, 2) - 1; + s->time->i = 45; + } + if (*ptr != '\0' ) { + timelib_eat_spaces((char **) &ptr); + s->time->h += timelib_meridian((char **) &ptr, s->time->h); + } + + TIMELIB_DEINIT; + return TIMELIB_LF_DAY_OF_MONTH; + } +yy1296: + YYDEBUG(1296, *YYCURSOR); + yyaccept = 28; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy1298; + if (yych >= '5') goto yy1298; +yy1297: + YYDEBUG(1297, *YYCURSOR); + yyaccept = 28; + YYMARKER = ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; +yy1298: + YYDEBUG(1298, *YYCURSOR); + if (yych <= 'A') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy1297; + goto yy1295; + } else { + if (yych <= ' ') goto yy1297; + if (yych <= '@') goto yy1295; + } + } else { + if (yych <= '`') { + if (yych != 'P') goto yy1295; + } else { + if (yych <= 'a') goto yy1299; + if (yych != 'p') goto yy1295; + } + } +yy1299: + YYDEBUG(1299, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych != '.') goto yy57; + } else { + if (yych <= 'M') goto yy1301; + if (yych == 'm') goto yy1301; + goto yy57; + } + YYDEBUG(1300, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy1301; + if (yych != 'm') goto yy57; +yy1301: + YYDEBUG(1301, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy1303; + if (yych == '\t') goto yy1303; + goto yy57; + } else { + if (yych <= ' ') goto yy1303; + if (yych != '.') goto yy57; + } + YYDEBUG(1302, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\t') { + if (yych <= 0x00) goto yy1303; + if (yych <= 0x08) goto yy57; + } else { + if (yych != ' ') goto yy57; + } +yy1303: + YYDEBUG(1303, *YYCURSOR); + yych = *++YYCURSOR; + goto yy1295; +yy1304: + YYDEBUG(1304, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'B') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'C') goto yy1288; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'b') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'c') goto yy1305; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1305: + YYDEBUG(1305, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'J') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'K') goto yy1289; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'j') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 'k') goto yy1306; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1306: + YYDEBUG(1306, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= '(') { + if (yych == ' ') goto yy1290; + goto yy4; + } else { + if (yych <= ')') goto yy140; + if (yych == '-') goto yy148; + goto yy4; + } + } else { + if (yych <= '^') { + if (yych <= '/') goto yy148; + if (yych <= '@') goto yy4; + if (yych <= 'Z') goto yy144; + goto yy4; + } else { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy152; + goto yy4; + } + } +yy1307: + YYDEBUG(1307, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'R') goto yy142; + } + } else { + if (yych <= 'r') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 's') goto yy1308; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1308: + YYDEBUG(1308, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy143; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 't') goto yy1309; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1309: + YYDEBUG(1309, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy4; + goto yy1105; + } else { + if (yych != ' ') goto yy4; + } + } else { + if (yych <= 'Z') { + if (yych <= ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy144; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1310: + YYDEBUG(1310, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy1311; + if (yych != 'd') goto yy1106; +yy1311: + YYDEBUG(1311, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1312; + if (yych != 'a') goto yy57; +yy1312: + YYDEBUG(1312, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1313; + if (yych != 'y') goto yy57; +yy1313: + YYDEBUG(1313, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'R') { + if (yych != ' ') goto yy1118; + } else { + if (yych <= 'S') goto yy1143; + if (yych == 's') goto yy1143; + goto yy1118; + } + YYDEBUG(1314, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy1315; + if (yych != 'o') goto yy57; +yy1315: + YYDEBUG(1315, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy1316; + if (yych != 'f') goto yy57; +yy1316: + YYDEBUG(1316, *YYCURSOR); + yych = *++YYCURSOR; + goto yy2; +yy1317: + YYDEBUG(1317, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'R') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'S') goto yy1308; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'r') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 's') goto yy1318; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1318: + YYDEBUG(1318, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy1309; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 't') goto yy1319; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1319: + YYDEBUG(1319, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '-') { + if (yych <= ' ') { + if (yych == '\t') goto yy1105; + if (yych <= 0x1F) goto yy4; + goto yy1310; + } else { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } + } else { + if (yych <= 'Z') { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } else { + if (yych <= '_') { + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1320: + YYDEBUG(1320, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'B') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'A') goto yy142; + goto yy1356; + } + } else { + if (yych <= 'a') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'b') goto yy1356; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1321: + YYDEBUG(1321, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == 'F') goto yy1346; + if (yych <= 'Q') goto yy142; + goto yy1345; + } + } else { + if (yych <= 'f') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + if (yych <= 'e') goto yy142; + goto yy1346; + } else { + if (yych == 'r') goto yy1345; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1322: + YYDEBUG(1322, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'T') goto yy142; + goto yy1342; + } + } else { + if (yych <= 't') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'u') goto yy1342; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1323: + YYDEBUG(1323, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == 'I') goto yy1325; + if (yych <= 'N') goto yy142; + } + } else { + if (yych <= 'i') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + if (yych <= 'h') goto yy142; + goto yy1325; + } else { + if (yych == 'o') goto yy1324; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1324: + YYDEBUG(1324, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'M') goto yy143; + goto yy1328; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 'n') goto yy1328; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1325: + YYDEBUG(1325, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy167; + goto yy140; + } else { + if (yych <= '@') goto yy167; + if (yych <= 'C') goto yy143; + } + } else { + if (yych <= 'c') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy167; + goto yy143; + } else { + if (yych <= 'd') goto yy1326; + if (yych <= 'z') goto yy143; + goto yy167; + } + } +yy1326: + YYDEBUG(1326, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy144; + goto yy4; + } else { + if (yych <= 'a') goto yy1327; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1327: + YYDEBUG(1327, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'X') goto yy145; + goto yy1236; + } + } else { + if (yych <= 'x') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'y') goto yy1236; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1328: + YYDEBUG(1328, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy144; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 't') goto yy1329; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1329: + YYDEBUG(1329, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ')') { + if (yych == ' ') goto yy1330; + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= 'Z') { + if (yych <= '@') goto yy4; + goto yy145; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1330: + YYDEBUG(1330, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy1331; + if (yych != 'o') goto yy57; +yy1331: + YYDEBUG(1331, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy1332; + if (yych != 'f') goto yy57; +yy1332: + YYDEBUG(1332, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ' ') goto yy57; + YYDEBUG(1333, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '1') goto yy1334; + if (yych <= '2') goto yy1335; + if (yych <= '9') goto yy1336; + goto yy57; +yy1334: + YYDEBUG(1334, *YYCURSOR); + yyaccept = 28; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy1337; + if (yych <= '9') goto yy1336; + goto yy1337; +yy1335: + YYDEBUG(1335, *YYCURSOR); + yyaccept = 28; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy1337; + if (yych >= '5') goto yy1337; +yy1336: + YYDEBUG(1336, *YYCURSOR); + yyaccept = 28; + YYMARKER = ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; +yy1337: + YYDEBUG(1337, *YYCURSOR); + if (yych <= 'A') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy1336; + goto yy1295; + } else { + if (yych <= ' ') goto yy1336; + if (yych <= '@') goto yy1295; + } + } else { + if (yych <= '`') { + if (yych != 'P') goto yy1295; + } else { + if (yych <= 'a') goto yy1338; + if (yych != 'p') goto yy1295; + } + } +yy1338: + YYDEBUG(1338, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych != '.') goto yy57; + } else { + if (yych <= 'M') goto yy1340; + if (yych == 'm') goto yy1340; + goto yy57; + } + YYDEBUG(1339, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy1340; + if (yych != 'm') goto yy57; +yy1340: + YYDEBUG(1340, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy1303; + if (yych == '\t') goto yy1303; + goto yy57; + } else { + if (yych <= ' ') goto yy1303; + if (yych != '.') goto yy57; + } + YYDEBUG(1341, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\t') { + if (yych <= 0x00) goto yy1303; + if (yych <= 0x08) goto yy57; + goto yy1303; + } else { + if (yych == ' ') goto yy1303; + goto yy57; + } +yy1342: + YYDEBUG(1342, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'Q') goto yy143; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 'r') goto yy1343; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1343: + YYDEBUG(1343, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy144; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 't') goto yy1344; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1344: + YYDEBUG(1344, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'H') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'G') goto yy145; + goto yy1216; + } + } else { + if (yych <= 'g') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'h') goto yy1216; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1345: + YYDEBUG(1345, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'R') goto yy143; + goto yy1348; + } + } else { + if (yych <= 'r') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 's') goto yy1348; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1346: + YYDEBUG(1346, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy143; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 't') goto yy1347; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1347: + YYDEBUG(1347, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'H') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'G') goto yy144; + goto yy1239; + } + } else { + if (yych <= 'g') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'h') goto yy1239; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1348: + YYDEBUG(1348, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy144; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 't') goto yy1349; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1349: + YYDEBUG(1349, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy4; + goto yy1207; + } else { + if (yych != ' ') goto yy4; + } + } else { + if (yych <= 'Z') { + if (yych <= ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy145; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1350: + YYDEBUG(1350, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy1351; + if (yych != 'd') goto yy1208; +yy1351: + YYDEBUG(1351, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1352; + if (yych != 'a') goto yy57; +yy1352: + YYDEBUG(1352, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1353; + if (yych != 'y') goto yy57; +yy1353: + YYDEBUG(1353, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'R') { + if (yych != ' ') goto yy1118; + } else { + if (yych <= 'S') goto yy1143; + if (yych == 's') goto yy1143; + goto yy1118; + } + YYDEBUG(1354, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy1355; + if (yych != 'o') goto yy57; +yy1355: + YYDEBUG(1355, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy1316; + if (yych == 'f') goto yy1316; + goto yy57; +yy1356: + YYDEBUG(1356, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy140; + goto yy194; + } else { + if (yych <= '-') goto yy197; + if (yych <= '.') goto yy196; + goto yy194; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy196; + goto yy194; + } else { + if (yych != 'R') goto yy143; + } + } else { + if (yych <= 'q') { + if (yych <= '`') goto yy194; + goto yy143; + } else { + if (yych <= 'r') goto yy1357; + if (yych <= 'z') goto yy143; + goto yy194; + } + } + } +yy1357: + YYDEBUG(1357, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'T') goto yy144; + } + } else { + if (yych <= 't') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'u') goto yy1358; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1358: + YYDEBUG(1358, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy145; + goto yy4; + } else { + if (yych <= 'a') goto yy1359; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1359: + YYDEBUG(1359, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'Q') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'R') goto yy1360; + if (yych != 'r') goto yy4; + } +yy1360: + YYDEBUG(1360, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy206; + if (yych == 'y') goto yy206; + goto yy57; +yy1361: + YYDEBUG(1361, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'A') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'B') goto yy1356; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'b') goto yy1379; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1362: + YYDEBUG(1362, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'Q') { + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych == '-') goto yy148; + goto yy4; + } + } else { + if (yych <= '@') { + if (yych <= '/') goto yy148; + goto yy4; + } else { + if (yych == 'F') goto yy1346; + goto yy142; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'R') goto yy1345; + goto yy142; + } else { + if (yych == '_') goto yy148; + goto yy4; + } + } else { + if (yych <= 'q') { + if (yych == 'f') goto yy1375; + goto yy147; + } else { + if (yych <= 'r') goto yy1374; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1363: + YYDEBUG(1363, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'U') goto yy1342; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 't') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'u') goto yy1371; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1364: + YYDEBUG(1364, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'N') { + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych == '-') goto yy148; + goto yy4; + } + } else { + if (yych <= '@') { + if (yych <= '/') goto yy148; + goto yy4; + } else { + if (yych == 'I') goto yy1325; + goto yy142; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'O') goto yy1324; + goto yy142; + } else { + if (yych == '_') goto yy148; + goto yy4; + } + } else { + if (yych <= 'n') { + if (yych == 'i') goto yy1366; + goto yy147; + } else { + if (yych <= 'o') goto yy1365; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1365: + YYDEBUG(1365, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'N') goto yy1328; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 'n') goto yy1369; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1366: + YYDEBUG(1366, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy167; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy167; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'D') goto yy1326; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy167; + goto yy148; + } else { + if (yych <= 'c') { + if (yych <= '`') goto yy167; + goto yy151; + } else { + if (yych <= 'd') goto yy1367; + if (yych <= 'z') goto yy151; + goto yy167; + } + } + } +yy1367: + YYDEBUG(1367, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '_') { + if (yych <= 'A') goto yy1327; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'a') goto yy1368; + if (yych <= 'z') goto yy152; + goto yy4; + } + } +yy1368: + YYDEBUG(1368, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'Y') goto yy1236; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'x') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'y') goto yy1265; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1369: + YYDEBUG(1369, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy1329; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 't') goto yy1370; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1370: + YYDEBUG(1370, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= '(') { + if (yych == ' ') goto yy1330; + goto yy4; + } else { + if (yych <= ')') goto yy140; + if (yych == '-') goto yy148; + goto yy4; + } + } else { + if (yych <= '^') { + if (yych <= '/') goto yy148; + if (yych <= '@') goto yy4; + if (yych <= 'Z') goto yy145; + goto yy4; + } else { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy153; + goto yy4; + } + } +yy1371: + YYDEBUG(1371, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'Q') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'R') goto yy1343; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'q') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 'r') goto yy1372; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1372: + YYDEBUG(1372, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy1344; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 't') goto yy1373; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1373: + YYDEBUG(1373, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'H') goto yy1216; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'g') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'h') goto yy1228; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1374: + YYDEBUG(1374, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'R') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'S') goto yy1348; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'r') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 's') goto yy1377; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1375: + YYDEBUG(1375, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy1347; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 't') goto yy1376; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1376: + YYDEBUG(1376, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'H') goto yy1239; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'g') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'h') goto yy1268; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1377: + YYDEBUG(1377, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy1349; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 't') goto yy1378; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1378: + YYDEBUG(1378, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '-') { + if (yych <= ' ') { + if (yych == '\t') goto yy1207; + if (yych <= 0x1F) goto yy4; + goto yy1350; + } else { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } + } else { + if (yych <= 'Z') { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } else { + if (yych <= '_') { + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1379: + YYDEBUG(1379, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= '-') { + if (yych <= ')') goto yy140; + if (yych <= ',') goto yy194; + goto yy372; + } else { + if (yych == '/') goto yy148; + goto yy196; + } + } + } else { + if (yych <= '^') { + if (yych <= 'Q') { + if (yych <= '@') goto yy194; + goto yy143; + } else { + if (yych <= 'R') goto yy1357; + if (yych <= 'Z') goto yy143; + goto yy194; + } + } else { + if (yych <= 'q') { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy194; + goto yy151; + } else { + if (yych <= 'r') goto yy1380; + if (yych <= 'z') goto yy151; + goto yy194; + } + } + } +yy1380: + YYDEBUG(1380, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'U') goto yy1358; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 't') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'u') goto yy1381; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1381: + YYDEBUG(1381, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '_') { + if (yych <= 'A') goto yy1359; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'a') goto yy1382; + if (yych <= 'z') goto yy153; + goto yy4; + } + } +yy1382: + YYDEBUG(1382, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'Q') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'R') goto yy1360; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'r') goto yy1383; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy1383: + YYDEBUG(1383, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy206; + if (yych == 'y') goto yy377; + goto yy155; +yy1384: + YYDEBUG(1384, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; +yy1385: + YYDEBUG(1385, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(1386, *YYCURSOR); + if (yych <= '/') goto yy1387; + if (yych <= '9') goto yy1385; +yy1387: + YYDEBUG(1387, *YYCURSOR); + { + timelib_ull i; + + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_UNHAVE_DATE(); + TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TZ(); + + i = timelib_get_unsigned_nr((char **) &ptr, 24); + s->time->y = 1970; + s->time->m = 1; + s->time->d = 1; + s->time->h = s->time->i = s->time->s = 0; + s->time->f = 0.0; + s->time->relative.s += i; + s->time->is_localtime = 1; + s->time->zone_type = TIMELIB_ZONETYPE_OFFSET; + s->time->z = 0; + s->time->dst = 0; + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +yy1388: + YYDEBUG(1388, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'M') goto yy142; + goto yy1429; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'n') goto yy1429; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1389: + YYDEBUG(1389, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == 'I') goto yy1421; + if (yych <= 'T') goto yy142; + goto yy1422; + } + } else { + if (yych <= 'i') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + if (yych <= 'h') goto yy142; + goto yy1421; + } else { + if (yych == 'u') goto yy1422; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1390: + YYDEBUG(1390, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'M') { + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == 'D') goto yy1410; + if (yych <= 'L') goto yy142; + goto yy1411; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + if (yych <= 'c') goto yy142; + goto yy1410; + } else { + if (yych == 'm') goto yy1411; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1391: + YYDEBUG(1391, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy142; + goto yy1406; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'e') goto yy1406; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1392: + YYDEBUG(1392, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy142; + goto yy1402; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'e') goto yy1402; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1393: + YYDEBUG(1393, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy1065; + goto yy57; + } else { + if (yych <= '9') goto yy1396; + if (yych <= ':') goto yy1065; + goto yy57; + } +yy1394: + YYDEBUG(1394, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy1065; + goto yy57; + } else { + if (yych <= '4') goto yy1396; + if (yych == ':') goto yy1065; + goto yy57; + } +yy1395: + YYDEBUG(1395, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '.') goto yy1065; + if (yych == ':') goto yy1065; + goto yy57; +yy1396: + YYDEBUG(1396, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy1065; + goto yy57; + } else { + if (yych <= '5') goto yy1397; + if (yych == ':') goto yy1065; + goto yy57; + } +yy1397: + YYDEBUG(1397, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych >= ':') goto yy57; + YYDEBUG(1398, *YYCURSOR); + yyaccept = 24; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy1068; + if (yych <= '5') goto yy1399; + if (yych <= '6') goto yy1400; + goto yy1068; +yy1399: + YYDEBUG(1399, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy57; + if (yych <= '9') goto yy1401; + goto yy57; +yy1400: + YYDEBUG(1400, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '0') goto yy57; +yy1401: + YYDEBUG(1401, *YYCURSOR); + yych = *++YYCURSOR; + goto yy1076; +yy1402: + YYDEBUG(1402, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'K') goto yy143; + } + } else { + if (yych <= 'k') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 'l') goto yy1403; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1403: + YYDEBUG(1403, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'F') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'E') goto yy144; + } + } else { + if (yych <= 'e') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'f') goto yy1404; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1404: + YYDEBUG(1404, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy145; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 't') goto yy1405; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1405: + YYDEBUG(1405, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'H') goto yy1206; + if (yych == 'h') goto yy1206; + goto yy4; + } +yy1406: + YYDEBUG(1406, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych <= ')') { + if (yych <= '(') goto yy167; + goto yy140; + } else { + if (yych <= '@') goto yy167; + if (yych <= 'R') goto yy143; + } + } else { + if (yych <= 'r') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy167; + goto yy143; + } else { + if (yych <= 's') goto yy1407; + if (yych <= 'z') goto yy143; + goto yy167; + } + } +yy1407: + YYDEBUG(1407, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'C') goto yy144; + } + } else { + if (yych <= 'c') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'd') goto yy1408; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1408: + YYDEBUG(1408, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy145; + goto yy4; + } else { + if (yych <= 'a') goto yy1409; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1409: + YYDEBUG(1409, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'X') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'Y') goto yy173; + if (yych == 'y') goto yy173; + goto yy4; + } +yy1410: + YYDEBUG(1410, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy1418; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy143; + goto yy4; + } else { + if (yych <= 'a') goto yy1418; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1411: + YYDEBUG(1411, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'N') goto yy143; + } + } else { + if (yych <= 'n') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 'o') goto yy1412; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1412: + YYDEBUG(1412, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'Q') goto yy144; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'r') goto yy1413; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1413: + YYDEBUG(1413, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'Q') goto yy145; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'r') goto yy1414; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1414: + YYDEBUG(1414, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'N') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'O') goto yy1415; + if (yych != 'o') goto yy4; + } +yy1415: + YYDEBUG(1415, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'W') goto yy1416; + if (yych != 'w') goto yy57; +yy1416: + YYDEBUG(1416, *YYCURSOR); + ++YYCURSOR; +yy1417: + YYDEBUG(1417, *YYCURSOR); + { + DEBUG_OUTPUT("tomorrow"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_UNHAVE_TIME(); + + s->time->relative.d = 1; + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +yy1418: + YYDEBUG(1418, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'X') goto yy144; + } + } else { + if (yych <= 'x') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'y') goto yy1419; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1419: + YYDEBUG(1419, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '@') { + if (yych == ')') goto yy140; + } else { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy1420; + if (yych <= 'z') goto yy145; + } +yy1420: + YYDEBUG(1420, *YYCURSOR); + { + DEBUG_OUTPUT("midnight | today"); + TIMELIB_INIT; + TIMELIB_UNHAVE_TIME(); + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +yy1421: + YYDEBUG(1421, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'Q') goto yy143; + if (yych <= 'R') goto yy1427; + goto yy1428; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 'r') goto yy1427; + if (yych <= 's') goto yy1428; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1422: + YYDEBUG(1422, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy167; + goto yy140; + } else { + if (yych <= '@') goto yy167; + if (yych <= 'Q') goto yy143; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy167; + goto yy143; + } else { + if (yych <= 'r') goto yy1423; + if (yych <= 'z') goto yy143; + goto yy167; + } + } +yy1423: + YYDEBUG(1423, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'R') goto yy144; + } + } else { + if (yych <= 'r') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 's') goto yy1424; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1424: + YYDEBUG(1424, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'C') goto yy145; + } + } else { + if (yych <= 'c') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'd') goto yy1425; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1425: + YYDEBUG(1425, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'A') goto yy1426; + if (yych != 'a') goto yy4; + } +yy1426: + YYDEBUG(1426, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy173; + if (yych == 'y') goto yy173; + goto yy57; +yy1427: + YYDEBUG(1427, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'C') goto yy144; + goto yy1239; + } + } else { + if (yych <= 'c') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'd') goto yy1239; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1428: + YYDEBUG(1428, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy4; + goto yy1105; + } else { + if (yych == ' ') goto yy1105; + goto yy4; + } + } else { + if (yych <= 'Z') { + if (yych <= ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy144; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1429: + YYDEBUG(1429, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy143; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 't') goto yy1430; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1430: + YYDEBUG(1430, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'H') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'G') goto yy144; + goto yy1239; + } + } else { + if (yych <= 'g') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'h') goto yy1239; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1431: + YYDEBUG(1431, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'N') goto yy1429; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'n') goto yy1461; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1432: + YYDEBUG(1432, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych == '-') goto yy148; + goto yy4; + } + } else { + if (yych <= '@') { + if (yych <= '/') goto yy148; + goto yy4; + } else { + if (yych == 'I') goto yy1421; + goto yy142; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'U') goto yy1422; + goto yy142; + } else { + if (yych == '_') goto yy148; + goto yy4; + } + } else { + if (yych <= 't') { + if (yych == 'i') goto yy1453; + goto yy147; + } else { + if (yych <= 'u') goto yy1454; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1433: + YYDEBUG(1433, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'L') { + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych == '-') goto yy148; + goto yy4; + } + } else { + if (yych <= '@') { + if (yych <= '/') goto yy148; + goto yy4; + } else { + if (yych == 'D') goto yy1410; + goto yy142; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'M') goto yy1411; + goto yy142; + } else { + if (yych == '_') goto yy148; + goto yy4; + } + } else { + if (yych <= 'l') { + if (yych == 'd') goto yy1444; + goto yy147; + } else { + if (yych <= 'm') goto yy1445; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1434: + YYDEBUG(1434, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'E') goto yy1406; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'e') goto yy1440; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1435: + YYDEBUG(1435, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'E') goto yy1402; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'e') goto yy1436; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1436: + YYDEBUG(1436, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'K') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'L') goto yy1403; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'k') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 'l') goto yy1437; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1437: + YYDEBUG(1437, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'E') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'F') goto yy1404; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'e') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'f') goto yy1438; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1438: + YYDEBUG(1438, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy1405; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 't') goto yy1439; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1439: + YYDEBUG(1439, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'H') goto yy1206; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'h') goto yy1224; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy1440: + YYDEBUG(1440, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'R') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy167; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy167; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'S') goto yy1407; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy167; + goto yy148; + } else { + if (yych <= 'r') { + if (yych <= '`') goto yy167; + goto yy151; + } else { + if (yych <= 's') goto yy1441; + if (yych <= 'z') goto yy151; + goto yy167; + } + } + } +yy1441: + YYDEBUG(1441, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'D') goto yy1408; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'c') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'd') goto yy1442; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1442: + YYDEBUG(1442, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '_') { + if (yych <= 'A') goto yy1409; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'a') goto yy1443; + if (yych <= 'z') goto yy153; + goto yy4; + } + } +yy1443: + YYDEBUG(1443, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'Y') goto yy173; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'y') goto yy186; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy1444: + YYDEBUG(1444, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '_') { + if (yych <= 'A') goto yy1418; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'a') goto yy1451; + if (yych <= 'z') goto yy151; + goto yy4; + } + } +yy1445: + YYDEBUG(1445, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'N') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'O') goto yy1412; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'n') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 'o') goto yy1446; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1446: + YYDEBUG(1446, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'Q') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'R') goto yy1413; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'q') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'r') goto yy1447; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1447: + YYDEBUG(1447, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'Q') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'R') goto yy1414; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'q') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'r') goto yy1448; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1448: + YYDEBUG(1448, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'N') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'O') goto yy1415; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'o') goto yy1449; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy1449: + YYDEBUG(1449, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'W') goto yy1416; + if (yych != 'w') goto yy155; + YYDEBUG(1450, *YYCURSOR); + yyaccept = 29; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy154; + } + if (yych <= '.') { + if (yych == '-') goto yy148; + goto yy1417; + } else { + if (yych <= '/') goto yy148; + if (yych == '_') goto yy148; + goto yy1417; + } +yy1451: + YYDEBUG(1451, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'Y') goto yy1419; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'x') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'y') goto yy1452; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1452: + YYDEBUG(1452, *YYCURSOR); + yyaccept = 30; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy1420; + } else { + if (yych == '.') goto yy1420; + goto yy148; + } + } else { + if (yych <= '^') { + if (yych <= '@') goto yy1420; + if (yych <= 'Z') goto yy145; + goto yy1420; + } else { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy1420; + if (yych <= 'z') goto yy153; + goto yy1420; + } + } +yy1453: + YYDEBUG(1453, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'R') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych <= '/') { + if (yych <= '.') goto yy4; + goto yy148; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'Q') goto yy143; + goto yy1427; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'S') goto yy1428; + goto yy143; + } else { + if (yych == '_') goto yy148; + goto yy4; + } + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy151; + goto yy1459; + } else { + if (yych <= 's') goto yy1460; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1454: + YYDEBUG(1454, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'Q') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy167; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy167; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'R') goto yy1423; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy167; + goto yy148; + } else { + if (yych <= 'q') { + if (yych <= '`') goto yy167; + goto yy151; + } else { + if (yych <= 'r') goto yy1455; + if (yych <= 'z') goto yy151; + goto yy167; + } + } + } +yy1455: + YYDEBUG(1455, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'R') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'S') goto yy1424; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'r') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 's') goto yy1456; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1456: + YYDEBUG(1456, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'D') goto yy1425; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'c') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'd') goto yy1457; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1457: + YYDEBUG(1457, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '_') { + if (yych <= 'A') goto yy1426; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'a') goto yy1458; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy1458: + YYDEBUG(1458, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy173; + if (yych == 'y') goto yy186; + goto yy155; +yy1459: + YYDEBUG(1459, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'D') goto yy1239; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'c') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'd') goto yy1268; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1460: + YYDEBUG(1460, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '-') { + if (yych <= ' ') { + if (yych == '\t') goto yy1105; + if (yych <= 0x1F) goto yy4; + goto yy1105; + } else { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } + } else { + if (yych <= 'Z') { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } else { + if (yych <= '_') { + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1461: + YYDEBUG(1461, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy1430; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 't') goto yy1462; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1462: + YYDEBUG(1462, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'H') goto yy1239; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'g') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'h') goto yy1268; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1463: + YYDEBUG(1463, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych <= '@') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == 'R') goto yy1475; + if (yych <= 'X') goto yy142; + goto yy1476; + } + } else { + if (yych <= 'r') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + if (yych <= 'q') goto yy142; + goto yy1475; + } else { + if (yych == 'y') goto yy1476; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1464: + YYDEBUG(1464, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'C') goto yy142; + goto yy1469; + } + } else { + if (yych <= 'c') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'd') goto yy1469; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1465: + YYDEBUG(1465, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'M') goto yy142; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'n') goto yy1466; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1466: + YYDEBUG(1466, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy167; + goto yy140; + } else { + if (yych <= '@') goto yy167; + if (yych <= 'C') goto yy143; + } + } else { + if (yych <= 'c') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy167; + goto yy143; + } else { + if (yych <= 'd') goto yy1467; + if (yych <= 'z') goto yy143; + goto yy167; + } + } +yy1467: + YYDEBUG(1467, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy144; + goto yy4; + } else { + if (yych <= 'a') goto yy1468; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1468: + YYDEBUG(1468, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'X') goto yy145; + goto yy1236; + } + } else { + if (yych <= 'x') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'y') goto yy1236; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1469: + YYDEBUG(1469, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'M') goto yy143; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 'n') goto yy1470; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1470: + YYDEBUG(1470, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'I') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'H') goto yy144; + } + } else { + if (yych <= 'h') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'i') goto yy1471; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1471: + YYDEBUG(1471, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'G') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'F') goto yy145; + } + } else { + if (yych <= 'f') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'g') goto yy1472; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1472: + YYDEBUG(1472, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'H') goto yy1473; + if (yych != 'h') goto yy4; + } +yy1473: + YYDEBUG(1473, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1474; + if (yych != 't') goto yy57; +yy1474: + YYDEBUG(1474, *YYCURSOR); + yych = *++YYCURSOR; + goto yy1420; +yy1475: + YYDEBUG(1475, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy140; + goto yy194; + } else { + if (yych <= '-') goto yy197; + if (yych <= '.') goto yy196; + goto yy194; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy196; + goto yy194; + } else { + if (yych == 'C') goto yy1477; + goto yy143; + } + } else { + if (yych <= 'b') { + if (yych <= '`') goto yy194; + goto yy143; + } else { + if (yych <= 'c') goto yy1477; + if (yych <= 'z') goto yy143; + goto yy194; + } + } + } +yy1476: + YYDEBUG(1476, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '-') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy194; + goto yy196; + } else { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy194; + goto yy197; + } + } else { + if (yych <= '@') { + if (yych == '/') goto yy194; + if (yych <= '9') goto yy196; + goto yy194; + } else { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy194; + if (yych <= 'z') goto yy143; + goto yy194; + } + } +yy1477: + YYDEBUG(1477, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'H') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'G') goto yy144; + goto yy396; + } + } else { + if (yych <= 'g') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'h') goto yy396; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1478: + YYDEBUG(1478, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych == '-') goto yy148; + goto yy4; + } + } else { + if (yych <= '@') { + if (yych <= '/') goto yy148; + goto yy4; + } else { + if (yych == 'R') goto yy1475; + goto yy142; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'Y') goto yy1476; + goto yy142; + } else { + if (yych == '_') goto yy148; + goto yy4; + } + } else { + if (yych <= 'x') { + if (yych == 'r') goto yy1490; + goto yy147; + } else { + if (yych <= 'y') goto yy1491; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1479: + YYDEBUG(1479, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'D') goto yy1469; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'c') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'd') goto yy1484; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1480: + YYDEBUG(1480, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'N') goto yy1466; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'n') goto yy1481; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1481: + YYDEBUG(1481, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy167; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy167; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'D') goto yy1467; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy167; + goto yy148; + } else { + if (yych <= 'c') { + if (yych <= '`') goto yy167; + goto yy151; + } else { + if (yych <= 'd') goto yy1482; + if (yych <= 'z') goto yy151; + goto yy167; + } + } + } +yy1482: + YYDEBUG(1482, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '_') { + if (yych <= 'A') goto yy1468; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= '`') goto yy4; + if (yych <= 'a') goto yy1483; + if (yych <= 'z') goto yy152; + goto yy4; + } + } +yy1483: + YYDEBUG(1483, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'Y') goto yy1236; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'x') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'y') goto yy1265; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1484: + YYDEBUG(1484, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'N') goto yy1470; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 'n') goto yy1485; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1485: + YYDEBUG(1485, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'H') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'I') goto yy1471; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'h') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'i') goto yy1486; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1486: + YYDEBUG(1486, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'F') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'G') goto yy1472; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'f') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'g') goto yy1487; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1487: + YYDEBUG(1487, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'H') goto yy1473; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'h') goto yy1488; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy1488: + YYDEBUG(1488, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1474; + if (yych != 't') goto yy155; + YYDEBUG(1489, *YYCURSOR); + yyaccept = 30; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy154; + } + if (yych <= '.') { + if (yych == '-') goto yy148; + goto yy1420; + } else { + if (yych <= '/') goto yy148; + if (yych == '_') goto yy148; + goto yy1420; + } +yy1490: + YYDEBUG(1490, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= '-') { + if (yych <= ')') goto yy140; + if (yych <= ',') goto yy194; + goto yy372; + } else { + if (yych == '/') goto yy148; + goto yy196; + } + } + } else { + if (yych <= '^') { + if (yych <= 'B') { + if (yych <= '@') goto yy194; + goto yy143; + } else { + if (yych <= 'C') goto yy1477; + if (yych <= 'Z') goto yy143; + goto yy194; + } + } else { + if (yych <= 'b') { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy194; + goto yy151; + } else { + if (yych <= 'c') goto yy1492; + if (yych <= 'z') goto yy151; + goto yy194; + } + } + } +yy1491: + YYDEBUG(1491, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy194; + goto yy196; + } else { + if (yych <= ')') { + if (yych <= '(') goto yy194; + goto yy140; + } else { + if (yych <= ',') goto yy194; + if (yych <= '-') goto yy372; + goto yy196; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '/') goto yy148; + if (yych <= '9') goto yy196; + if (yych <= '@') goto yy194; + goto yy143; + } else { + if (yych <= '_') { + if (yych <= '^') goto yy194; + goto yy148; + } else { + if (yych <= '`') goto yy194; + if (yych <= 'z') goto yy151; + goto yy194; + } + } + } +yy1492: + YYDEBUG(1492, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'H') goto yy396; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'g') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'h') goto yy407; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1493: + YYDEBUG(1493, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'W') { + if (yych <= 'N') { + if (yych == ')') goto yy140; + if (yych <= '@') goto yy4; + goto yy142; + } else { + if (yych <= 'O') goto yy1501; + if (yych <= 'U') goto yy142; + if (yych <= 'V') goto yy1502; + goto yy1499; + } + } else { + if (yych <= 'o') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + if (yych <= 'n') goto yy142; + goto yy1501; + } else { + if (yych <= 'v') { + if (yych <= 'u') goto yy142; + goto yy1502; + } else { + if (yych <= 'w') goto yy1499; + if (yych <= 'z') goto yy142; + goto yy4; + } + } + } +yy1494: + YYDEBUG(1494, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'X') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'W') goto yy142; + goto yy1498; + } + } else { + if (yych <= 'w') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'x') goto yy1498; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1495: + YYDEBUG(1495, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'M') goto yy142; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 'n') goto yy1496; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1496: + YYDEBUG(1496, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy143; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 't') goto yy1497; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1497: + YYDEBUG(1497, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'H') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'G') goto yy144; + goto yy1239; + } + } else { + if (yych <= 'g') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'h') goto yy1239; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1498: + YYDEBUG(1498, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy143; + goto yy1428; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 't') goto yy1428; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1499: + YYDEBUG(1499, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '@') { + if (yych == ')') goto yy140; + } else { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy1500; + if (yych <= 'z') goto yy143; + } +yy1500: + YYDEBUG(1500, *YYCURSOR); + { + DEBUG_OUTPUT("now"); + TIMELIB_INIT; + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +yy1501: + YYDEBUG(1501, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'M') goto yy143; + goto yy1507; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 'n') goto yy1507; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1502: + YYDEBUG(1502, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy140; + goto yy194; + } else { + if (yych <= '-') goto yy197; + if (yych <= '.') goto yy196; + goto yy194; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy196; + goto yy194; + } else { + if (yych != 'E') goto yy143; + } + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy194; + goto yy143; + } else { + if (yych <= 'e') goto yy1503; + if (yych <= 'z') goto yy143; + goto yy194; + } + } + } +yy1503: + YYDEBUG(1503, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'M') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'L') goto yy144; + } + } else { + if (yych <= 'l') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'm') goto yy1504; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1504: + YYDEBUG(1504, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'B') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'A') goto yy145; + } + } else { + if (yych <= 'a') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'b') goto yy1505; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1505: + YYDEBUG(1505, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'E') goto yy1506; + if (yych != 'e') goto yy4; + } +yy1506: + YYDEBUG(1506, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy206; + if (yych == 'r') goto yy206; + goto yy57; +yy1507: + YYDEBUG(1507, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '@') { + if (yych == ')') goto yy140; + } else { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy1508; + if (yych <= 'z') goto yy144; + } +yy1508: + YYDEBUG(1508, *YYCURSOR); + { + DEBUG_OUTPUT("noon"); + TIMELIB_INIT; + TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TIME(); + s->time->h = 12; + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +yy1509: + YYDEBUG(1509, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'V') { + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych == '-') goto yy148; + goto yy4; + } + } else { + if (yych <= 'N') { + if (yych <= '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } else { + if (yych <= 'O') goto yy1501; + if (yych <= 'U') goto yy142; + goto yy1502; + } + } + } else { + if (yych <= 'n') { + if (yych <= '^') { + if (yych <= 'W') goto yy1499; + if (yych <= 'Z') goto yy142; + goto yy4; + } else { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy4; + goto yy147; + } + } else { + if (yych <= 'v') { + if (yych <= 'o') goto yy1516; + if (yych <= 'u') goto yy147; + goto yy1517; + } else { + if (yych <= 'w') goto yy1515; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1510: + YYDEBUG(1510, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'W') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'X') goto yy1498; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'w') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'x') goto yy1514; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1511: + YYDEBUG(1511, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'N') goto yy1496; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 'n') goto yy1512; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1512: + YYDEBUG(1512, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy1497; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 't') goto yy1513; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1513: + YYDEBUG(1513, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'H') goto yy1239; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'g') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'h') goto yy1268; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1514: + YYDEBUG(1514, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy1428; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 't') goto yy1460; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1515: + YYDEBUG(1515, *YYCURSOR); + yyaccept = 31; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy1500; + } else { + if (yych == '.') goto yy1500; + goto yy148; + } + } else { + if (yych <= '^') { + if (yych <= '@') goto yy1500; + if (yych <= 'Z') goto yy143; + goto yy1500; + } else { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy1500; + if (yych <= 'z') goto yy151; + goto yy1500; + } + } +yy1516: + YYDEBUG(1516, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'N') goto yy1507; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 'n') goto yy1522; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1517: + YYDEBUG(1517, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy194; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy194; + } + } else { + if (yych <= '-') { + if (yych <= ')') goto yy140; + if (yych <= ',') goto yy194; + goto yy372; + } else { + if (yych == '/') goto yy148; + goto yy196; + } + } + } else { + if (yych <= '^') { + if (yych <= 'D') { + if (yych <= '@') goto yy194; + goto yy143; + } else { + if (yych <= 'E') goto yy1503; + if (yych <= 'Z') goto yy143; + goto yy194; + } + } else { + if (yych <= 'd') { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy194; + goto yy151; + } else { + if (yych <= 'e') goto yy1518; + if (yych <= 'z') goto yy151; + goto yy194; + } + } + } +yy1518: + YYDEBUG(1518, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'L') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'M') goto yy1504; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'l') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'm') goto yy1519; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1519: + YYDEBUG(1519, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'A') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'B') goto yy1505; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'b') goto yy1520; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1520: + YYDEBUG(1520, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'E') goto yy1506; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'e') goto yy1521; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy1521: + YYDEBUG(1521, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy206; + if (yych == 'r') goto yy377; + goto yy155; +yy1522: + YYDEBUG(1522, *YYCURSOR); + yyaccept = 32; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy1508; + } else { + if (yych == '.') goto yy1508; + goto yy148; + } + } else { + if (yych <= '^') { + if (yych <= '@') goto yy1508; + if (yych <= 'Z') goto yy144; + goto yy1508; + } else { + if (yych <= '_') goto yy148; + if (yych <= '`') goto yy1508; + if (yych <= 'z') goto yy152; + goto yy1508; + } + } +yy1523: + YYDEBUG(1523, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'R') goto yy142; + } + } else { + if (yych <= 'r') { + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy4; + goto yy142; + } else { + if (yych <= 's') goto yy1524; + if (yych <= 'z') goto yy142; + goto yy4; + } + } +yy1524: + YYDEBUG(1524, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'S') goto yy143; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy4; + goto yy143; + } else { + if (yych <= 't') goto yy1525; + if (yych <= 'z') goto yy143; + goto yy4; + } + } +yy1525: + YYDEBUG(1525, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'D') goto yy144; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy4; + goto yy144; + } else { + if (yych <= 'e') goto yy1526; + if (yych <= 'z') goto yy144; + goto yy4; + } + } +yy1526: + YYDEBUG(1526, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy4; + goto yy140; + } else { + if (yych <= '@') goto yy4; + if (yych <= 'Q') goto yy145; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy145; + if (yych <= '`') goto yy4; + goto yy145; + } else { + if (yych <= 'r') goto yy1527; + if (yych <= 'z') goto yy145; + goto yy4; + } + } +yy1527: + YYDEBUG(1527, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych <= 'D') goto yy1528; + if (yych != 'd') goto yy4; + } +yy1528: + YYDEBUG(1528, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1529; + if (yych != 'a') goto yy57; +yy1529: + YYDEBUG(1529, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1530; + if (yych != 'y') goto yy57; +yy1530: + YYDEBUG(1530, *YYCURSOR); + ++YYCURSOR; +yy1531: + YYDEBUG(1531, *YYCURSOR); + { + DEBUG_OUTPUT("yesterday"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_UNHAVE_TIME(); + + s->time->relative.d = -1; + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +yy1532: + YYDEBUG(1532, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'R') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy142; + } + } else { + if (yych <= '_') { + if (yych <= 'S') goto yy1524; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'r') { + if (yych <= '`') goto yy4; + goto yy147; + } else { + if (yych <= 's') goto yy1533; + if (yych <= 'z') goto yy147; + goto yy4; + } + } + } +yy1533: + YYDEBUG(1533, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy143; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy1525; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy4; + goto yy151; + } else { + if (yych <= 't') goto yy1534; + if (yych <= 'z') goto yy151; + goto yy4; + } + } + } +yy1534: + YYDEBUG(1534, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy144; + } + } else { + if (yych <= '_') { + if (yych <= 'E') goto yy1526; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy4; + goto yy152; + } else { + if (yych <= 'e') goto yy1535; + if (yych <= 'z') goto yy152; + goto yy4; + } + } + } +yy1535: + YYDEBUG(1535, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'Q') { + if (yych <= '-') { + if (yych == ')') goto yy140; + if (yych <= ',') goto yy4; + goto yy148; + } else { + if (yych == '/') goto yy148; + if (yych <= '@') goto yy4; + goto yy145; + } + } else { + if (yych <= '_') { + if (yych <= 'R') goto yy1527; + if (yych <= 'Z') goto yy145; + if (yych <= '^') goto yy4; + goto yy148; + } else { + if (yych <= 'q') { + if (yych <= '`') goto yy4; + goto yy153; + } else { + if (yych <= 'r') goto yy1536; + if (yych <= 'z') goto yy153; + goto yy4; + } + } + } +yy1536: + YYDEBUG(1536, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych <= ',') { + if (yych == ')') goto yy140; + goto yy4; + } else { + if (yych == '.') goto yy4; + if (yych <= '/') goto yy148; + goto yy4; + } + } else { + if (yych <= '`') { + if (yych <= 'D') goto yy1528; + if (yych == '_') goto yy148; + goto yy4; + } else { + if (yych == 'd') goto yy1537; + if (yych <= 'z') goto yy154; + goto yy4; + } + } +yy1537: + YYDEBUG(1537, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1529; + if (yych != 'a') goto yy155; + YYDEBUG(1538, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1530; + if (yych != 'y') goto yy155; + YYDEBUG(1539, *YYCURSOR); + yyaccept = 33; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy154; + } + if (yych <= '.') { + if (yych == '-') goto yy148; + goto yy1531; + } else { + if (yych <= '/') goto yy148; + if (yych == '_') goto yy148; + goto yy1531; + } +} + +} + +#define YYMAXFILL 31 + +timelib_time* timelib_strtotime(char *s, int len, struct timelib_error_container **errors, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_get_wrapper) +{ + Scanner in; + int t; + char *e = s + len - 1; + + memset(&in, 0, sizeof(in)); + in.errors = malloc(sizeof(struct timelib_error_container)); + in.errors->warning_count = 0; + in.errors->warning_messages = NULL; + in.errors->error_count = 0; + in.errors->error_messages = NULL; + + if (len > 0) { + while (isspace(*s) && s < e) { + s++; + } + while (isspace(*e) && e > s) { + e--; + } + } + if (e - s < 0) { + in.time = timelib_time_ctor(); + add_error(&in, "Empty string"); + if (errors) { + *errors = in.errors; + } else { + timelib_error_container_dtor(in.errors); + } + in.time->y = in.time->d = in.time->m = in.time->h = in.time->i = in.time->s = in.time->f = in.time->dst = in.time->z = TIMELIB_UNSET; + in.time->is_localtime = in.time->zone_type = 0; + return in.time; + } + e++; + + in.str = malloc((e - s) + YYMAXFILL); + memset(in.str, 0, (e - s) + YYMAXFILL); + memcpy(in.str, s, (e - s)); + in.lim = in.str + (e - s) + YYMAXFILL; + in.cur = in.str; + in.time = timelib_time_ctor(); + in.time->y = TIMELIB_UNSET; + in.time->d = TIMELIB_UNSET; + in.time->m = TIMELIB_UNSET; + in.time->h = TIMELIB_UNSET; + in.time->i = TIMELIB_UNSET; + in.time->s = TIMELIB_UNSET; + in.time->f = TIMELIB_UNSET; + in.time->z = TIMELIB_UNSET; + in.time->dst = TIMELIB_UNSET; + in.tzdb = tzdb; + in.time->is_localtime = 0; + in.time->zone_type = 0; + + do { + t = scan(&in, tz_get_wrapper); +#ifdef DEBUG_PARSER + printf("%d\n", t); +#endif + } while(t != EOI); + + /* do funky checking whether the parsed time was valid time */ + if (in.time->have_time && !timelib_valid_time( in.time->h, in.time->i, in.time->s)) { + add_warning(&in, "The parsed time was invalid"); + } + /* do funky checking whether the parsed date was valid date */ + if (in.time->have_date && !timelib_valid_date( in.time->y, in.time->m, in.time->d)) { + add_warning(&in, "The parsed date was invalid"); + } + + free(in.str); + if (errors) { + *errors = in.errors; + } else { + timelib_error_container_dtor(in.errors); + } + return in.time; +} + +#define TIMELIB_CHECK_NUMBER \ + if (strchr("0123456789", *ptr) == NULL) \ + { \ + add_pbf_error(s, "Unexpected data found.", string, begin); \ + } + +static void timelib_time_reset_fields(timelib_time *time) +{ + assert(time != NULL); + + time->y = 1970; + time->m = 1; + time->d = 1; + time->h = time->i = time->s = 0; + time->f = 0.0; + time->tz_info = NULL; +} + +static void timelib_time_reset_unset_fields(timelib_time *time) +{ + assert(time != NULL); + + if (time->y == TIMELIB_UNSET ) time->y = 1970; + if (time->m == TIMELIB_UNSET ) time->m = 1; + if (time->d == TIMELIB_UNSET ) time->d = 1; + if (time->h == TIMELIB_UNSET ) time->h = 0; + if (time->i == TIMELIB_UNSET ) time->i = 0; + if (time->s == TIMELIB_UNSET ) time->s = 0; + if (time->f == TIMELIB_UNSET ) time->f = 0.0; +} + +timelib_time *timelib_parse_from_format(char *format, char *string, int len, timelib_error_container **errors, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_get_wrapper) +{ + char *fptr = format; + char *ptr = string; + char *begin; + timelib_sll tmp; + Scanner in; + Scanner *s = ∈ + int allow_extra = 0; + + memset(&in, 0, sizeof(in)); + in.errors = malloc(sizeof(struct timelib_error_container)); + in.errors->warning_count = 0; + in.errors->warning_messages = NULL; + in.errors->error_count = 0; + in.errors->error_messages = NULL; + + in.time = timelib_time_ctor(); + in.time->y = TIMELIB_UNSET; + in.time->d = TIMELIB_UNSET; + in.time->m = TIMELIB_UNSET; + in.time->h = TIMELIB_UNSET; + in.time->i = TIMELIB_UNSET; + in.time->s = TIMELIB_UNSET; + in.time->f = TIMELIB_UNSET; + in.time->z = TIMELIB_UNSET; + in.time->dst = TIMELIB_UNSET; + in.tzdb = tzdb; + in.time->is_localtime = 0; + in.time->zone_type = 0; + + /* Loop over the format string */ + while (*fptr && *ptr) { + begin = ptr; + switch (*fptr) { + case 'D': /* three letter day */ + case 'l': /* full day */ + { + const timelib_relunit* tmprel = 0; + + tmprel = timelib_lookup_relunit((char **) &ptr); + if (!tmprel) { + add_pbf_error(s, "A textual day could not be found", string, begin); + break; + } else { + in.time->have_relative = 1; + in.time->relative.have_weekday_relative = 1; + in.time->relative.weekday = tmprel->multiplier; + in.time->relative.weekday_behavior = 1; + } + } + break; + case 'd': /* two digit day, with leading zero */ + case 'j': /* two digit day, without leading zero */ + TIMELIB_CHECK_NUMBER; + if ((s->time->d = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) { + add_pbf_error(s, "A two digit day could not be found", string, begin); + } + break; + case 'S': /* day suffix, ignored, nor checked */ + timelib_skip_day_suffix((char **) &ptr); + break; + case 'z': /* day of year - resets month (0 based) - also initializes everything else to !TIMELIB_UNSET */ + TIMELIB_CHECK_NUMBER; + if ((tmp = timelib_get_nr((char **) &ptr, 3)) == TIMELIB_UNSET) { + add_pbf_error(s, "A three digit day-of-year could not be found", string, begin); + } else { + s->time->m = 1; + s->time->d = tmp + 1; + timelib_do_normalize(s->time); + } + break; + + case 'm': /* two digit month, with leading zero */ + case 'n': /* two digit month, without leading zero */ + TIMELIB_CHECK_NUMBER; + if ((s->time->m = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) { + add_pbf_error(s, "A two digit month could not be found", string, begin); + } + break; + case 'M': /* three letter month */ + case 'F': /* full month */ + tmp = timelib_lookup_month((char **) &ptr); + if (!tmp) { + add_pbf_error(s, "A textual month could not be found", string, begin); + } else { + s->time->m = tmp; + } + break; + case 'y': /* two digit year */ + { + int length = 0; + TIMELIB_CHECK_NUMBER; + if ((s->time->y = timelib_get_nr_ex((char **) &ptr, 2, &length)) == TIMELIB_UNSET) { + add_pbf_error(s, "A two digit year could not be found", string, begin); + } + TIMELIB_PROCESS_YEAR(s->time->y, length); + } + break; + case 'Y': /* four digit year */ + TIMELIB_CHECK_NUMBER; + if ((s->time->y = timelib_get_nr((char **) &ptr, 4)) == TIMELIB_UNSET) { + add_pbf_error(s, "A four digit year could not be found", string, begin); + } + break; + case 'g': /* two digit hour, with leading zero */ + case 'h': /* two digit hour, without leading zero */ + TIMELIB_CHECK_NUMBER; + if ((s->time->h = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) { + add_pbf_error(s, "A two digit hour could not be found", string, begin); + } + if (s->time->h > 12) { + add_pbf_error(s, "Hour can not be higher than 12", string, begin); + } + break; + case 'G': /* two digit hour, with leading zero */ + case 'H': /* two digit hour, without leading zero */ + TIMELIB_CHECK_NUMBER; + if ((s->time->h = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) { + add_pbf_error(s, "A two digit hour could not be found", string, begin); + } + break; + case 'a': /* am/pm/a.m./p.m. */ + case 'A': /* AM/PM/A.M./P.M. */ + if (s->time->h == TIMELIB_UNSET) { + add_pbf_error(s, "Meridian can only come after an hour has been found", string, begin); + } else if ((tmp = timelib_meridian_with_check((char **) &ptr, s->time->h)) == TIMELIB_UNSET) { + add_pbf_error(s, "A meridian could not be found", string, begin); + } else { + s->time->h += tmp; + } + break; + case 'i': /* two digit minute, with leading zero */ + { + int length; + timelib_sll min; + + TIMELIB_CHECK_NUMBER; + min = timelib_get_nr_ex((char **) &ptr, 2, &length); + if (min == TIMELIB_UNSET || length != 2) { + add_pbf_error(s, "A two digit minute could not be found", string, begin); + } else { + s->time->i = min; + } + } + break; + case 's': /* two digit second, with leading zero */ + { + int length; + timelib_sll sec; + + TIMELIB_CHECK_NUMBER; + sec = timelib_get_nr_ex((char **) &ptr, 2, &length); + if (sec == TIMELIB_UNSET || length != 2) { + add_pbf_error(s, "A two second minute could not be found", string, begin); + } else { + s->time->s = sec; + } + } + break; + case 'u': /* up to six digit millisecond */ + { + double f; + char *tptr; + + TIMELIB_CHECK_NUMBER; + tptr = ptr; + if ((f = timelib_get_nr((char **) &ptr, 6)) == TIMELIB_UNSET || (ptr - tptr < 1)) { + add_pbf_error(s, "A six digit millisecond could not be found", string, begin); + } else { + s->time->f = (f / pow(10, (ptr - tptr))); + } + } + break; + case ' ': /* any sort of whitespace (' ' and \t) */ + timelib_eat_spaces((char **) &ptr); + break; + case 'U': /* epoch seconds */ + TIMELIB_CHECK_NUMBER; + TIMELIB_HAVE_RELATIVE(); + tmp = timelib_get_unsigned_nr((char **) &ptr, 24); + s->time->y = 1970; + s->time->m = 1; + s->time->d = 1; + s->time->h = s->time->i = s->time->s = 0; + s->time->f = 0.0; + s->time->relative.s += tmp; + s->time->is_localtime = 1; + s->time->zone_type = TIMELIB_ZONETYPE_OFFSET; + s->time->z = 0; + s->time->dst = 0; + break; + + case 'e': /* timezone */ + case 'P': /* timezone */ + case 'T': /* timezone */ + case 'O': /* timezone */ + { + int tz_not_found; + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_pbf_error(s, "The timezone could not be found in the database", string, begin); + } + } + break; + + case '#': /* separation symbol */ + if (*ptr == ';' || *ptr == ':' || *ptr == '/' || *ptr == '.' || *ptr == ',' || *ptr == '-' || *ptr == '(' || *ptr == ')') { + ++ptr; + } else { + add_pbf_error(s, "The separation symbol ([;:/.,-]) could not be found", string, begin); + } + break; + + case ';': + case ':': + case '/': + case '.': + case ',': + case '-': + case '(': + case ')': + if (*ptr == *fptr) { + ++ptr; + } else { + add_pbf_error(s, "The separation symbol could not be found", string, begin); + } + break; + + case '!': /* reset all fields to default */ + timelib_time_reset_fields(s->time); + break; /* break intentionally not missing */ + + case '|': /* reset all fields to default when not set */ + timelib_time_reset_unset_fields(s->time); + break; /* break intentionally not missing */ + + case '?': /* random char */ + ++ptr; + break; + + case '\\': /* escaped char */ + *fptr++; + if (*ptr == *fptr) { + ++ptr; + } else { + add_pbf_error(s, "The escaped character could not be found", string, begin); + } + break; + + case '*': /* random chars until a separator or number ([ \t.,:;/-0123456789]) */ + timelib_eat_until_separator((char **) &ptr); + break; + + case '+': /* allow extra chars in the format */ + allow_extra = 1; + break; + + default: + if (*fptr != *ptr) { + add_pbf_error(s, "The format separator does not match", string, begin); + } + ptr++; + } + fptr++; + } + if (*ptr) { + if (allow_extra) { + add_pbf_warning(s, "Trailing data", string, ptr); + } else { + add_pbf_error(s, "Trailing data", string, ptr); + } + } + /* ignore trailing +'s */ + while (*fptr == '+') { + fptr++; + } + if (*fptr) { + /* Trailing | and ! specifiers are valid. */ + int done = 0; + while (*fptr && !done) { + switch (*fptr++) { + case '!': /* reset all fields to default */ + timelib_time_reset_fields(s->time); + break; + + case '|': /* reset all fields to default when not set */ + timelib_time_reset_unset_fields(s->time); + break; + + default: + add_pbf_error(s, "Data missing", string, ptr); + done = 1; + } + } + } + + /* clean up a bit */ + if (s->time->h != TIMELIB_UNSET || s->time->i != TIMELIB_UNSET || s->time->s != TIMELIB_UNSET) { + if (s->time->h == TIMELIB_UNSET ) { + s->time->h = 0; + } + if (s->time->i == TIMELIB_UNSET ) { + s->time->i = 0; + } + if (s->time->s == TIMELIB_UNSET ) { + s->time->s = 0; + } + } + + /* do funky checking whether the parsed time was valid time */ + if (s->time->h != TIMELIB_UNSET && s->time->i != TIMELIB_UNSET && + s->time->s != TIMELIB_UNSET && + !timelib_valid_time( s->time->h, s->time->i, s->time->s)) { + add_pbf_warning(s, "The parsed time was invalid", string, ptr); + } + /* do funky checking whether the parsed date was valid date */ + if (s->time->y != TIMELIB_UNSET && s->time->m != TIMELIB_UNSET && + s->time->d != TIMELIB_UNSET && + !timelib_valid_date( s->time->y, s->time->m, s->time->d)) { + add_pbf_warning(s, "The parsed date was invalid", string, ptr); + } + + if (errors) { + *errors = in.errors; + } else { + timelib_error_container_dtor(in.errors); + } + return in.time; +} + +void timelib_fill_holes(timelib_time *parsed, timelib_time *now, int options) +{ + if (!(options & TIMELIB_OVERRIDE_TIME) && parsed->have_date && !parsed->have_time) { + parsed->h = 0; + parsed->i = 0; + parsed->s = 0; + parsed->f = 0; + } + if (parsed->y == TIMELIB_UNSET) parsed->y = now->y != TIMELIB_UNSET ? now->y : 0; + if (parsed->d == TIMELIB_UNSET) parsed->d = now->d != TIMELIB_UNSET ? now->d : 0; + if (parsed->m == TIMELIB_UNSET) parsed->m = now->m != TIMELIB_UNSET ? now->m : 0; + if (parsed->h == TIMELIB_UNSET) parsed->h = now->h != TIMELIB_UNSET ? now->h : 0; + if (parsed->i == TIMELIB_UNSET) parsed->i = now->i != TIMELIB_UNSET ? now->i : 0; + if (parsed->s == TIMELIB_UNSET) parsed->s = now->s != TIMELIB_UNSET ? now->s : 0; + if (parsed->f == TIMELIB_UNSET) parsed->f = now->f != TIMELIB_UNSET ? now->f : 0; + if (parsed->z == TIMELIB_UNSET) parsed->z = now->z != TIMELIB_UNSET ? now->z : 0; + if (parsed->dst == TIMELIB_UNSET) parsed->dst = now->dst != TIMELIB_UNSET ? now->dst : 0; + + if (!parsed->tz_abbr) { + parsed->tz_abbr = now->tz_abbr ? strdup(now->tz_abbr) : NULL; + } + if (!parsed->tz_info) { + parsed->tz_info = now->tz_info ? (!(options & TIMELIB_NO_CLONE) ? timelib_tzinfo_clone(now->tz_info) : now->tz_info) : NULL; + } + if (parsed->zone_type == 0 && now->zone_type != 0) { + parsed->zone_type = now->zone_type; +/* parsed->tz_abbr = now->tz_abbr ? strdup(now->tz_abbr) : NULL; + parsed->tz_info = now->tz_info ? timelib_tzinfo_clone(now->tz_info) : NULL; +*/ parsed->is_localtime = 1; + } +/* timelib_dump_date(parsed, 2); + timelib_dump_date(now, 2); +*/ +} + +char *timelib_timezone_id_from_abbr(const char *abbr, long gmtoffset, int isdst) +{ + const timelib_tz_lookup_table *tp; + + tp = zone_search(abbr, gmtoffset, isdst); + if (tp) { + return (tp->full_tz_name); + } else { + return NULL; + } +} + +const timelib_tz_lookup_table *timelib_timezone_abbreviations_list(void) +{ + return timelib_timezone_lookup; +} + +#ifdef DEBUG_PARSER_STUB +int main(void) +{ + timelib_time time = timelib_strtotime("May 12"); + + printf ("%04d-%02d-%02d %02d:%02d:%02d.%-5d %+04d %1d", + time.y, time.m, time.d, time.h, time.i, time.s, time.f, time.z, time.dst); + if (time.have_relative) { + printf ("%3dY %3dM %3dD / %3dH %3dM %3dS", + time.relative.y, time.relative.m, time.relative.d, time.relative.h, time.relative.i, time.relative.s); + } + if (time.have_weekday_relative) { + printf (" / %d", time.relative.weekday); + } + if (time.have_weeknr_day) { + printf(" / %dW%d", time.relative.weeknr_day.weeknr, time.relative.weeknr_day.dayofweek); + } + return 0; +} +#endif + +/* + * vim: syntax=c + */ diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re new file mode 100644 index 0000000..8e1972d --- /dev/null +++ b/ext/date/lib/parse_date.re @@ -0,0 +1,2297 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#include "timelib.h" + +#include +#include +#include +#include + +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_STRING_H +#include +#else +#include +#endif + +#if defined(_MSC_VER) +# define strtoll(s, f, b) _atoi64(s) +#elif !defined(HAVE_STRTOLL) +# if defined(HAVE_ATOLL) +# define strtoll(s, f, b) atoll(s) +# else +# define strtoll(s, f, b) strtol(s, f, b) +# endif +#endif + +#define TIMELIB_UNSET -99999 + +#define TIMELIB_SECOND 1 +#define TIMELIB_MINUTE 2 +#define TIMELIB_HOUR 3 +#define TIMELIB_DAY 4 +#define TIMELIB_MONTH 5 +#define TIMELIB_YEAR 6 +#define TIMELIB_WEEKDAY 7 +#define TIMELIB_SPECIAL 8 + +#define EOI 257 +#define TIME 258 +#define DATE 259 + +#define TIMELIB_XMLRPC_SOAP 260 +#define TIMELIB_TIME12 261 +#define TIMELIB_TIME24 262 +#define TIMELIB_GNU_NOCOLON 263 +#define TIMELIB_GNU_NOCOLON_TZ 264 +#define TIMELIB_ISO_NOCOLON 265 + +#define TIMELIB_AMERICAN 266 +#define TIMELIB_ISO_DATE 267 +#define TIMELIB_DATE_FULL 268 +#define TIMELIB_DATE_TEXT 269 +#define TIMELIB_DATE_NOCOLON 270 +#define TIMELIB_PG_YEARDAY 271 +#define TIMELIB_PG_TEXT 272 +#define TIMELIB_PG_REVERSE 273 +#define TIMELIB_CLF 274 +#define TIMELIB_DATE_NO_DAY 275 +#define TIMELIB_SHORTDATE_WITH_TIME 276 +#define TIMELIB_DATE_FULL_POINTED 277 +#define TIMELIB_TIME24_WITH_ZONE 278 +#define TIMELIB_ISO_WEEK 279 +#define TIMELIB_LF_DAY_OF_MONTH 280 +#define TIMELIB_WEEK_DAY_OF_MONTH 281 + +#define TIMELIB_TIMEZONE 300 +#define TIMELIB_AGO 301 + +#define TIMELIB_RELATIVE 310 + +#define TIMELIB_ERROR 999 + +/* Some compilers like AIX, defines uchar in sys/types.h */ +#undef uchar +typedef unsigned char uchar; + +#define BSIZE 8192 + +#define YYCTYPE uchar +#define YYCURSOR cursor +#define YYLIMIT s->lim +#define YYMARKER s->ptr +#define YYFILL(n) return EOI; + +#define RET(i) {s->cur = cursor; return i;} + +#define timelib_string_free free + +#define TIMELIB_HAVE_TIME() { if (s->time->have_time) { add_error(s, "Double time specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_time = 1; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; } } +#define TIMELIB_UNHAVE_TIME() { s->time->have_time = 0; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; } +#define TIMELIB_HAVE_DATE() { if (s->time->have_date) { add_error(s, "Double date specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_date = 1; } } +#define TIMELIB_UNHAVE_DATE() { s->time->have_date = 0; s->time->d = 0; s->time->m = 0; s->time->y = 0; } +#define TIMELIB_HAVE_RELATIVE() { s->time->have_relative = 1; } +#define TIMELIB_HAVE_WEEKDAY_RELATIVE() { s->time->have_relative = 1; s->time->relative.have_weekday_relative = 1; } +#define TIMELIB_HAVE_SPECIAL_RELATIVE() { s->time->have_relative = 1; s->time->relative.have_special_relative = 1; } +#define TIMELIB_HAVE_TZ() { s->cur = cursor; if (s->time->have_zone) { s->time->have_zone > 1 ? add_error(s, "Double timezone specification") : add_warning(s, "Double timezone specification"); timelib_string_free(str); s->time->have_zone++; return TIMELIB_ERROR; } else { s->time->have_zone++; } } + +#define TIMELIB_INIT s->cur = cursor; str = timelib_string(s); ptr = str +#define TIMELIB_DEINIT timelib_string_free(str) +#define TIMELIB_ADJUST_RELATIVE_WEEKDAY() if (in->time.have_weekday_relative && (in.rel.d > 0)) { in.rel.d -= 7; } + +#define TIMELIB_PROCESS_YEAR(x, l) { \ + if (((x) == TIMELIB_UNSET) || ((l) >= 4)) { \ + /* (x) = 0; */ \ + } else if ((x) < 100) { \ + if ((x) < 70) { \ + (x) += 2000; \ + } else { \ + (x) += 1900; \ + } \ + } \ +} + +#ifdef DEBUG_PARSER +#define DEBUG_OUTPUT(s) printf("%s\n", s); +#define YYDEBUG(s,c) { if (s != -1) { printf("state: %d ", s); printf("[%c]\n", c); } } +#else +#define DEBUG_OUTPUT(s) +#define YYDEBUG(s,c) +#endif + +#include "timelib_structs.h" + +typedef struct timelib_elems { + unsigned int c; /* Number of elements */ + char **v; /* Values */ +} timelib_elems; + +typedef struct Scanner { + int fd; + uchar *lim, *str, *ptr, *cur, *tok, *pos; + unsigned int line, len; + struct timelib_error_container *errors; + + struct timelib_time *time; + const timelib_tzdb *tzdb; +} Scanner; + +typedef struct _timelib_lookup_table { + const char *name; + int type; + int value; +} timelib_lookup_table; + +typedef struct _timelib_relunit { + const char *name; + int unit; + int multiplier; +} timelib_relunit; + +#define HOUR(a) (int)(a * 60) + +/* The timezone table. */ +const static timelib_tz_lookup_table timelib_timezone_lookup[] = { +#include "timezonemap.h" + { NULL, 0, 0, NULL }, +}; + +const static timelib_tz_lookup_table timelib_timezone_fallbackmap[] = { +#include "fallbackmap.h" + { NULL, 0, 0, NULL }, +}; + +const static timelib_tz_lookup_table timelib_timezone_utc[] = { + { "utc", 0, 0, "UTC" }, +}; + +static timelib_relunit const timelib_relunit_lookup[] = { + { "sec", TIMELIB_SECOND, 1 }, + { "secs", TIMELIB_SECOND, 1 }, + { "second", TIMELIB_SECOND, 1 }, + { "seconds", TIMELIB_SECOND, 1 }, + { "min", TIMELIB_MINUTE, 1 }, + { "mins", TIMELIB_MINUTE, 1 }, + { "minute", TIMELIB_MINUTE, 1 }, + { "minutes", TIMELIB_MINUTE, 1 }, + { "hour", TIMELIB_HOUR, 1 }, + { "hours", TIMELIB_HOUR, 1 }, + { "day", TIMELIB_DAY, 1 }, + { "days", TIMELIB_DAY, 1 }, + { "week", TIMELIB_DAY, 7 }, + { "weeks", TIMELIB_DAY, 7 }, + { "fortnight", TIMELIB_DAY, 14 }, + { "fortnights", TIMELIB_DAY, 14 }, + { "forthnight", TIMELIB_DAY, 14 }, + { "forthnights", TIMELIB_DAY, 14 }, + { "month", TIMELIB_MONTH, 1 }, + { "months", TIMELIB_MONTH, 1 }, + { "year", TIMELIB_YEAR, 1 }, + { "years", TIMELIB_YEAR, 1 }, + + { "monday", TIMELIB_WEEKDAY, 1 }, + { "mon", TIMELIB_WEEKDAY, 1 }, + { "tuesday", TIMELIB_WEEKDAY, 2 }, + { "tue", TIMELIB_WEEKDAY, 2 }, + { "wednesday", TIMELIB_WEEKDAY, 3 }, + { "wed", TIMELIB_WEEKDAY, 3 }, + { "thursday", TIMELIB_WEEKDAY, 4 }, + { "thu", TIMELIB_WEEKDAY, 4 }, + { "friday", TIMELIB_WEEKDAY, 5 }, + { "fri", TIMELIB_WEEKDAY, 5 }, + { "saturday", TIMELIB_WEEKDAY, 6 }, + { "sat", TIMELIB_WEEKDAY, 6 }, + { "sunday", TIMELIB_WEEKDAY, 0 }, + { "sun", TIMELIB_WEEKDAY, 0 }, + + { "weekday", TIMELIB_SPECIAL, TIMELIB_SPECIAL_WEEKDAY }, + { "weekdays", TIMELIB_SPECIAL, TIMELIB_SPECIAL_WEEKDAY }, + { NULL, 0, 0 } +}; + +/* The relative text table. */ +static timelib_lookup_table const timelib_reltext_lookup[] = { + { "first", 0, 1 }, + { "next", 0, 1 }, + { "second", 0, 2 }, + { "third", 0, 3 }, + { "fourth", 0, 4 }, + { "fifth", 0, 5 }, + { "sixth", 0, 6 }, + { "seventh", 0, 7 }, + { "eight", 0, 8 }, + { "eighth", 0, 8 }, + { "ninth", 0, 9 }, + { "tenth", 0, 10 }, + { "eleventh", 0, 11 }, + { "twelfth", 0, 12 }, + { "last", 0, -1 }, + { "previous", 0, -1 }, + { "this", 1, 0 }, + { NULL, 1, 0 } +}; + +/* The month table. */ +static timelib_lookup_table const timelib_month_lookup[] = { + { "jan", 0, 1 }, + { "feb", 0, 2 }, + { "mar", 0, 3 }, + { "apr", 0, 4 }, + { "may", 0, 5 }, + { "jun", 0, 6 }, + { "jul", 0, 7 }, + { "aug", 0, 8 }, + { "sep", 0, 9 }, + { "sept", 0, 9 }, + { "oct", 0, 10 }, + { "nov", 0, 11 }, + { "dec", 0, 12 }, + { "i", 0, 1 }, + { "ii", 0, 2 }, + { "iii", 0, 3 }, + { "iv", 0, 4 }, + { "v", 0, 5 }, + { "vi", 0, 6 }, + { "vii", 0, 7 }, + { "viii", 0, 8 }, + { "ix", 0, 9 }, + { "x", 0, 10 }, + { "xi", 0, 11 }, + { "xii", 0, 12 }, + + { "january", 0, 1 }, + { "february", 0, 2 }, + { "march", 0, 3 }, + { "april", 0, 4 }, + { "may", 0, 5 }, + { "june", 0, 6 }, + { "july", 0, 7 }, + { "august", 0, 8 }, + { "september", 0, 9 }, + { "october", 0, 10 }, + { "november", 0, 11 }, + { "december", 0, 12 }, + { NULL, 0, 0 } +}; + +#if 0 +static char* timelib_ltrim(char *s) +{ + char *ptr = s; + while (ptr[0] == ' ' || ptr[0] == '\t') { + ptr++; + } + return ptr; +} +#endif + +#if 0 +uchar *fill(Scanner *s, uchar *cursor){ + if(!s->eof){ + unsigned int cnt = s->tok - s->bot; + if(cnt){ + memcpy(s->bot, s->tok, s->lim - s->tok); + s->tok = s->bot; + s->ptr -= cnt; + cursor -= cnt; + s->pos -= cnt; + s->lim -= cnt; + } + if((s->top - s->lim) < BSIZE){ + uchar *buf = (uchar*) malloc(((s->lim - s->bot) + BSIZE)*sizeof(uchar)); + memcpy(buf, s->tok, s->lim - s->tok); + s->tok = buf; + s->ptr = &buf[s->ptr - s->bot]; + cursor = &buf[cursor - s->bot]; + s->pos = &buf[s->pos - s->bot]; + s->lim = &buf[s->lim - s->bot]; + s->top = &s->lim[BSIZE]; + free(s->bot); + s->bot = buf; + } + if((cnt = read(s->fd, (char*) s->lim, BSIZE)) != BSIZE){ + s->eof = &s->lim[cnt]; *(s->eof)++ = '\n'; + } + s->lim += cnt; + } + return cursor; +} +#endif + +static void add_warning(Scanner *s, char *error) +{ + s->errors->warning_count++; + s->errors->warning_messages = realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message)); + s->errors->warning_messages[s->errors->warning_count - 1].position = s->tok ? s->tok - s->str : 0; + s->errors->warning_messages[s->errors->warning_count - 1].character = s->tok ? *s->tok : 0; + s->errors->warning_messages[s->errors->warning_count - 1].message = strdup(error); +} + +static void add_error(Scanner *s, char *error) +{ + s->errors->error_count++; + s->errors->error_messages = realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message)); + s->errors->error_messages[s->errors->error_count - 1].position = s->tok ? s->tok - s->str : 0; + s->errors->error_messages[s->errors->error_count - 1].character = s->tok ? *s->tok : 0; + s->errors->error_messages[s->errors->error_count - 1].message = strdup(error); +} + +static void add_pbf_warning(Scanner *s, char *error, char *sptr, char *cptr) +{ + s->errors->warning_count++; + s->errors->warning_messages = realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message)); + s->errors->warning_messages[s->errors->warning_count - 1].position = cptr - sptr; + s->errors->warning_messages[s->errors->warning_count - 1].character = *cptr; + s->errors->warning_messages[s->errors->warning_count - 1].message = strdup(error); +} + +static void add_pbf_error(Scanner *s, char *error, char *sptr, char *cptr) +{ + s->errors->error_count++; + s->errors->error_messages = realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message)); + s->errors->error_messages[s->errors->error_count - 1].position = cptr - sptr; + s->errors->error_messages[s->errors->error_count - 1].character = *cptr; + s->errors->error_messages[s->errors->error_count - 1].message = strdup(error); +} + +static timelib_sll timelib_meridian(char **ptr, timelib_sll h) +{ + timelib_sll retval = 0; + + while (!strchr("AaPp", **ptr)) { + ++*ptr; + } + if (**ptr == 'a' || **ptr == 'A') { + if (h == 12) { + retval = -12; + } + } else if (h != 12) { + retval = 12; + } + ++*ptr; + if (**ptr == '.') { + *ptr += 3; + } else { + ++*ptr; + } + return retval; +} + +static timelib_sll timelib_meridian_with_check(char **ptr, timelib_sll h) +{ + timelib_sll retval = 0; + + while (!strchr("AaPp", **ptr)) { + ++*ptr; + } + if (**ptr == 'a' || **ptr == 'A') { + if (h == 12) { + retval = -12; + } + } else if (h != 12) { + retval = 12; + } + ++*ptr; + if (**ptr == '.') { + ++*ptr; + if (**ptr != 'm' && **ptr != 'M') { + return TIMELIB_UNSET; + } + ++*ptr; + if (**ptr != '.' ) { + return TIMELIB_UNSET; + } + ++*ptr; + } else if (**ptr == 'm' || **ptr == 'M') { + ++*ptr; + } else { + return TIMELIB_UNSET; + } + return retval; +} + +static char *timelib_string(Scanner *s) +{ + char *tmp = calloc(1, s->cur - s->tok + 1); + memcpy(tmp, s->tok, s->cur - s->tok); + + return tmp; +} + +static timelib_sll timelib_get_nr_ex(char **ptr, int max_length, int *scanned_length) +{ + char *begin, *end, *str; + timelib_sll tmp_nr = TIMELIB_UNSET; + int len = 0; + + while ((**ptr < '0') || (**ptr > '9')) { + if (**ptr == '\0') { + return TIMELIB_UNSET; + } + ++*ptr; + } + begin = *ptr; + while ((**ptr >= '0') && (**ptr <= '9') && len < max_length) { + ++*ptr; + ++len; + } + end = *ptr; + if (scanned_length) { + *scanned_length = end - begin; + } + str = calloc(1, end - begin + 1); + memcpy(str, begin, end - begin); + tmp_nr = strtoll(str, NULL, 10); + free(str); + return tmp_nr; +} + +static timelib_sll timelib_get_nr(char **ptr, int max_length) +{ + return timelib_get_nr_ex(ptr, max_length, NULL); +} + +static void timelib_skip_day_suffix(char **ptr) +{ + if (isspace(**ptr)) { + return; + } + if (!strncasecmp(*ptr, "nd", 2) || !strncasecmp(*ptr, "rd", 2) ||!strncasecmp(*ptr, "st", 2) || !strncasecmp(*ptr, "th", 2)) { + *ptr += 2; + } +} + +static double timelib_get_frac_nr(char **ptr, int max_length) +{ + char *begin, *end, *str; + double tmp_nr = TIMELIB_UNSET; + int len = 0; + + while ((**ptr != '.') && (**ptr != ':') && ((**ptr < '0') || (**ptr > '9'))) { + if (**ptr == '\0') { + return TIMELIB_UNSET; + } + ++*ptr; + } + begin = *ptr; + while (((**ptr == '.') || (**ptr == ':') || ((**ptr >= '0') && (**ptr <= '9'))) && len < max_length) { + ++*ptr; + ++len; + } + end = *ptr; + str = calloc(1, end - begin + 1); + memcpy(str, begin, end - begin); + if (str[0] == ':') { + str[0] = '.'; + } + tmp_nr = strtod(str, NULL); + free(str); + return tmp_nr; +} + +static timelib_ull timelib_get_unsigned_nr(char **ptr, int max_length) +{ + timelib_ull dir = 1; + + while (((**ptr < '0') || (**ptr > '9')) && (**ptr != '+') && (**ptr != '-')) { + if (**ptr == '\0') { + return TIMELIB_UNSET; + } + ++*ptr; + } + + while (**ptr == '+' || **ptr == '-') + { + if (**ptr == '-') { + dir *= -1; + } + ++*ptr; + } + return dir * timelib_get_nr(ptr, max_length); +} + +static long timelib_parse_tz_cor(char **ptr) +{ + char *begin = *ptr, *end; + long tmp; + + while (isdigit(**ptr) || **ptr == ':') { + ++*ptr; + } + end = *ptr; + switch (end - begin) { + case 1: + case 2: + return HOUR(strtol(begin, NULL, 10)); + break; + case 3: + case 4: + if (begin[1] == ':') { + tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 2, NULL, 10); + return tmp; + } else if (begin[2] == ':') { + tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 3, NULL, 10); + return tmp; + } else { + tmp = strtol(begin, NULL, 10); + return HOUR(tmp / 100) + tmp % 100; + } + case 5: + tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 3, NULL, 10); + return tmp; + } + return 0; +} + +static timelib_sll timelib_lookup_relative_text(char **ptr, int *behavior) +{ + char *word; + char *begin = *ptr, *end; + timelib_sll value = 0; + const timelib_lookup_table *tp; + + while ((**ptr >= 'A' && **ptr <= 'Z') || (**ptr >= 'a' && **ptr <= 'z')) { + ++*ptr; + } + end = *ptr; + word = calloc(1, end - begin + 1); + memcpy(word, begin, end - begin); + + for (tp = timelib_reltext_lookup; tp->name; tp++) { + if (strcasecmp(word, tp->name) == 0) { + value = tp->value; + *behavior = tp->type; + } + } + + free(word); + return value; +} + +static timelib_sll timelib_get_relative_text(char **ptr, int *behavior) +{ + while (**ptr == ' ' || **ptr == '\t' || **ptr == '-' || **ptr == '/') { + ++*ptr; + } + return timelib_lookup_relative_text(ptr, behavior); +} + +static long timelib_lookup_month(char **ptr) +{ + char *word; + char *begin = *ptr, *end; + long value = 0; + const timelib_lookup_table *tp; + + while ((**ptr >= 'A' && **ptr <= 'Z') || (**ptr >= 'a' && **ptr <= 'z')) { + ++*ptr; + } + end = *ptr; + word = calloc(1, end - begin + 1); + memcpy(word, begin, end - begin); + + for (tp = timelib_month_lookup; tp->name; tp++) { + if (strcasecmp(word, tp->name) == 0) { + value = tp->value; + } + } + + free(word); + return value; +} + +static long timelib_get_month(char **ptr) +{ + while (**ptr == ' ' || **ptr == '\t' || **ptr == '-' || **ptr == '.' || **ptr == '/') { + ++*ptr; + } + return timelib_lookup_month(ptr); +} + +static void timelib_eat_spaces(char **ptr) +{ + while (**ptr == ' ' || **ptr == '\t') { + ++*ptr; + } +} + +static void timelib_eat_until_separator(char **ptr) +{ + ++*ptr; + while (strchr(" \t.,:;/-0123456789", **ptr) == NULL) { + ++*ptr; + } +} + +static const timelib_relunit* timelib_lookup_relunit(char **ptr) +{ + char *word; + char *begin = *ptr, *end; + const timelib_relunit *tp, *value = NULL; + + while (**ptr != '\0' && **ptr != ' ' && **ptr != ',' && **ptr != '\t') { + ++*ptr; + } + end = *ptr; + word = calloc(1, end - begin + 1); + memcpy(word, begin, end - begin); + + for (tp = timelib_relunit_lookup; tp->name; tp++) { + if (strcasecmp(word, tp->name) == 0) { + value = tp; + break; + } + } + + free(word); + return value; +} + +static void timelib_set_relative(char **ptr, timelib_sll amount, int behavior, Scanner *s) +{ + const timelib_relunit* relunit; + + if (!(relunit = timelib_lookup_relunit(ptr))) { + return; + } + + switch (relunit->unit) { + case TIMELIB_SECOND: s->time->relative.s += amount * relunit->multiplier; break; + case TIMELIB_MINUTE: s->time->relative.i += amount * relunit->multiplier; break; + case TIMELIB_HOUR: s->time->relative.h += amount * relunit->multiplier; break; + case TIMELIB_DAY: s->time->relative.d += amount * relunit->multiplier; break; + case TIMELIB_MONTH: s->time->relative.m += amount * relunit->multiplier; break; + case TIMELIB_YEAR: s->time->relative.y += amount * relunit->multiplier; break; + + case TIMELIB_WEEKDAY: + TIMELIB_HAVE_WEEKDAY_RELATIVE(); + TIMELIB_UNHAVE_TIME(); + s->time->relative.d += (amount > 0 ? amount - 1 : amount) * 7; + s->time->relative.weekday = relunit->multiplier; + s->time->relative.weekday_behavior = behavior; + break; + + case TIMELIB_SPECIAL: + TIMELIB_HAVE_SPECIAL_RELATIVE(); + TIMELIB_UNHAVE_TIME(); + s->time->relative.special.type = relunit->multiplier; + s->time->relative.special.amount = amount; + } +} + +const static timelib_tz_lookup_table* zone_search(const char *word, long gmtoffset, int isdst) +{ + int first_found = 0; + const timelib_tz_lookup_table *tp, *first_found_elem = NULL; + const timelib_tz_lookup_table *fmp; + + if (strcasecmp("utc", word) == 0 || strcasecmp("gmt", word) == 0) { + return timelib_timezone_utc; + } + + for (tp = timelib_timezone_lookup; tp->name; tp++) { + if (strcasecmp(word, tp->name) == 0) { + if (!first_found) { + first_found = 1; + first_found_elem = tp; + if (gmtoffset == -1) { + return tp; + } + } + if (tp->gmtoffset == gmtoffset) { + return tp; + } + } + } + if (first_found) { + return first_found_elem; + } + + for (tp = timelib_timezone_lookup; tp->name; tp++) { + if (tp->full_tz_name && strcasecmp(word, tp->full_tz_name) == 0) { + if (!first_found) { + first_found = 1; + first_found_elem = tp; + if (gmtoffset == -1) { + return tp; + } + } + if (tp->gmtoffset == gmtoffset) { + return tp; + } + } + } + if (first_found) { + return first_found_elem; + } + + + /* Still didn't find anything, let's find the zone solely based on + * offset/isdst then */ + for (fmp = timelib_timezone_fallbackmap; fmp->name; fmp++) { + if ((fmp->gmtoffset * 3600) == gmtoffset && fmp->type == isdst) { + return fmp; + } + } + return NULL; +} + +static long timelib_lookup_zone(char **ptr, int *dst, char **tz_abbr, int *found) +{ + char *word; + char *begin = *ptr, *end; + long value = 0; + const timelib_tz_lookup_table *tp; + + while (**ptr != '\0' && **ptr != ')' && **ptr != ' ') { + ++*ptr; + } + end = *ptr; + word = calloc(1, end - begin + 1); + memcpy(word, begin, end - begin); + + if ((tp = zone_search(word, -1, 0))) { + value = -tp->gmtoffset / 60; + *dst = tp->type; + value += tp->type * 60; + *found = 1; + } else { + *found = 0; + } + + *tz_abbr = word; + return value; +} + +static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_found, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_wrapper) +{ + timelib_tzinfo *res; + long retval = 0; + + *tz_not_found = 0; + + while (**ptr == ' ' || **ptr == '\t' || **ptr == '(') { + ++*ptr; + } + if ((*ptr)[0] == 'G' && (*ptr)[1] == 'M' && (*ptr)[2] == 'T' && ((*ptr)[3] == '+' || (*ptr)[3] == '-')) { + *ptr += 3; + } + if (**ptr == '+') { + ++*ptr; + t->is_localtime = 1; + t->zone_type = TIMELIB_ZONETYPE_OFFSET; + *tz_not_found = 0; + t->dst = 0; + + retval = -1 * timelib_parse_tz_cor(ptr); + } else if (**ptr == '-') { + ++*ptr; + t->is_localtime = 1; + t->zone_type = TIMELIB_ZONETYPE_OFFSET; + *tz_not_found = 0; + t->dst = 0; + + retval = timelib_parse_tz_cor(ptr); + } else { + int found = 0; + long offset; + char *tz_abbr; + + t->is_localtime = 1; + + offset = timelib_lookup_zone(ptr, dst, &tz_abbr, &found); + if (found) { + t->zone_type = TIMELIB_ZONETYPE_ABBR; + } +#if 0 + /* If we found a TimeZone identifier, use it */ + if (tz_name) { + t->tz_info = timelib_parse_tzfile(tz_name); + t->zone_type = TIMELIB_ZONETYPE_ID; + } +#endif + /* If we have a TimeZone identifier to start with, use it */ + if (strstr(tz_abbr, "/") || strcmp(tz_abbr, "UTC") == 0) { + if ((res = tz_wrapper(tz_abbr, tzdb)) != NULL) { + t->tz_info = res; + t->zone_type = TIMELIB_ZONETYPE_ID; + found++; + } + } + if (found && t->zone_type != TIMELIB_ZONETYPE_ID) { + timelib_time_tz_abbr_update(t, tz_abbr); + } + free(tz_abbr); + *tz_not_found = (found == 0); + retval = offset; + } + while (**ptr == ')') { + ++*ptr; + } + return retval; +} + +#define timelib_split_free(arg) { \ + int i; \ + for (i = 0; i < arg.c; i++) { \ + free(arg.v[i]); \ + } \ + if (arg.v) { \ + free(arg.v); \ + } \ +} + +static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) +{ + uchar *cursor = s->cur; + char *str, *ptr = NULL; + +std: + s->tok = cursor; + s->len = 0; +/*!re2c +any = [\000-\377]; + +space = [ \t]+; +frac = "."[0-9]+; + +ago = 'ago'; + +hour24 = [01]?[0-9] | "2"[0-4]; +hour24lz = [01][0-9] | "2"[0-4]; +hour12 = "0"?[1-9] | "1"[0-2]; +minute = [0-5]?[0-9]; +minutelz = [0-5][0-9]; +second = minute | "60"; +secondlz = minutelz | "60"; +meridian = ([AaPp] "."? [Mm] "."?) [\000\t ]; +tz = "("? [A-Za-z]{1,6} ")"? | [A-Z][a-z]+([_/-][A-Za-z]+)+; +tzcorrection = "GMT"? [+-] hour24 ":"? minute?; + +daysuf = "st" | "nd" | "rd" | "th"; + +month = "0"? [0-9] | "1"[0-2]; +day = (([0-2]?[0-9]) | ("3"[01])) daysuf?; +year = [0-9]{1,4}; +year2 = [0-9]{2}; +year4 = [0-9]{4}; +year4withsign = [+-]? [0-9]{4}; + +dayofyear = "00"[1-9] | "0"[1-9][0-9] | [1-2][0-9][0-9] | "3"[0-5][0-9] | "36"[0-6]; +weekofyear = "0"[1-9] | [1-4][0-9] | "5"[0-3]; + +monthlz = "0" [0-9] | "1" [0-2]; +daylz = "0" [0-9] | [1-2][0-9] | "3" [01]; + +dayfull = 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday'; +dayabbr = 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun'; +dayspecial = 'weekday' | 'weekdays'; +daytext = dayfull | dayabbr | dayspecial; + +monthfull = 'january' | 'february' | 'march' | 'april' | 'may' | 'june' | 'july' | 'august' | 'september' | 'october' | 'november' | 'december'; +monthabbr = 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec'; +monthroman = "I" | "II" | "III" | "IV" | "V" | "VI" | "VII" | "VIII" | "IX" | "X" | "XI" | "XII"; +monthtext = monthfull | monthabbr | monthroman; + +/* Time formats */ +timetiny12 = hour12 space? meridian; +timeshort12 = hour12[:.]minutelz space? meridian; +timelong12 = hour12[:.]minute[:.]secondlz space? meridian; + +timeshort24 = 't'? hour24[:.]minute; +timelong24 = 't'? hour24[:.]minute[:.]second; +iso8601long = 't'? hour24 [:.] minute [:.] second frac; + +/* iso8601shorttz = hour24 [:] minutelz space? (tzcorrection | tz); */ +iso8601normtz = 't'? hour24 [:.] minute [:.] secondlz space? (tzcorrection | tz); +/* iso8601longtz = hour24 [:] minute [:] secondlz frac space? (tzcorrection | tz); */ + +gnunocolon = 't'? hour24lz minutelz; +/* gnunocolontz = hour24lz minutelz space? (tzcorrection | tz); */ +iso8601nocolon = 't'? hour24lz minutelz secondlz; +/* iso8601nocolontz = hour24lz minutelz secondlz space? (tzcorrection | tz); */ + +/* Date formats */ +americanshort = month "/" day; +american = month "/" day "/" year; +iso8601dateslash = year4 "/" monthlz "/" daylz "/"?; +dateslash = year4 "/" month "/" day; +iso8601date4 = year4withsign "-" monthlz "-" daylz; +iso8601date2 = year2 "-" monthlz "-" daylz; +gnudateshorter = year4 "-" month; +gnudateshort = year "-" month "-" day; +pointeddate4 = day [.\t-] month [.-] year4; +pointeddate2 = day [.\t] month "." year2; +datefull = day ([ \t.-])* monthtext ([ \t.-])* year; +datenoday = monthtext ([ .\t-])* year4; +datenodayrev = year4 ([ .\t-])* monthtext; +datetextual = monthtext ([ .\t-])* day [,.stndrh\t ]+ year; +datenoyear = monthtext ([ .\t-])* day [,.stndrh\t ]*; +datenoyearrev = day ([ .\t-])* monthtext; +datenocolon = year4 monthlz daylz; + +/* Special formats */ +soap = year4 "-" monthlz "-" daylz "T" hour24lz ":" minutelz ":" secondlz frac tzcorrection?; +xmlrpc = year4 monthlz daylz "T" hour24 ":" minutelz ":" secondlz; +xmlrpcnocolon = year4 monthlz daylz 't' hour24 minutelz secondlz; +wddx = year4 "-" month "-" day "T" hour24 ":" minute ":" second; +pgydotd = year4 "."? dayofyear; +pgtextshort = monthabbr "-" daylz "-" year; +pgtextreverse = year "-" monthabbr "-" daylz; +mssqltime = hour12 ":" minutelz ":" secondlz [:.] [0-9]+ meridian; +isoweekday = year4 "-"? "W" weekofyear "-"? [0-7]; +isoweek = year4 "-"? "W" weekofyear; +exif = year4 ":" monthlz ":" daylz " " hour24lz ":" minutelz ":" secondlz; +firstdayof = 'first day of'?; +lastdayof = 'last day of'?; +backof = 'back of ' hour24 space? meridian?; +frontof = 'front of ' hour24 space? meridian?; + +/* Common Log Format: 10/Oct/2000:13:55:36 -0700 */ +clf = day "/" monthabbr "/" year4 ":" hour24lz ":" minutelz ":" secondlz space tzcorrection; + +/* Timestamp format: @1126396800 */ +timestamp = "@" "-"? [0-9]+; + +/* To fix some ambiguities */ +dateshortwithtimeshort12 = datenoyear timeshort12; +dateshortwithtimelong12 = datenoyear timelong12; +dateshortwithtimeshort = datenoyear timeshort24; +dateshortwithtimelong = datenoyear timelong24; +dateshortwithtimelongtz = datenoyear iso8601normtz; + +/* + * Relative regexps + */ +reltextnumber = 'first'|'second'|'third'|'fourth'|'fifth'|'sixth'|'seventh'|'eight'|'eighth'|'ninth'|'tenth'|'eleventh'|'twelfth'; +reltexttext = 'next'|'last'|'previous'|'this'; +reltextunit = (('sec'|'second'|'min'|'minute'|'hour'|'day'|'fortnight'|'forthnight'|'month'|'year') 's'?) | 'weeks' | daytext; + +relnumber = ([+-]*[ \t]*[0-9]+); +relative = relnumber space? (reltextunit | 'week' ); +relativetext = (reltextnumber|reltexttext) space reltextunit; +relativetextweek = reltexttext space 'week'; + +weekdayof = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of'; + +*/ + +/*!re2c + /* so that vim highlights correctly */ + 'yesterday' + { + DEBUG_OUTPUT("yesterday"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_UNHAVE_TIME(); + + s->time->relative.d = -1; + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } + + 'now' + { + DEBUG_OUTPUT("now"); + TIMELIB_INIT; + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } + + 'noon' + { + DEBUG_OUTPUT("noon"); + TIMELIB_INIT; + TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TIME(); + s->time->h = 12; + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } + + 'midnight' | 'today' + { + DEBUG_OUTPUT("midnight | today"); + TIMELIB_INIT; + TIMELIB_UNHAVE_TIME(); + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } + + 'tomorrow' + { + DEBUG_OUTPUT("tomorrow"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_UNHAVE_TIME(); + + s->time->relative.d = 1; + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } + + timestamp + { + timelib_ull i; + + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_UNHAVE_DATE(); + TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TZ(); + + i = timelib_get_unsigned_nr((char **) &ptr, 24); + s->time->y = 1970; + s->time->m = 1; + s->time->d = 1; + s->time->h = s->time->i = s->time->s = 0; + s->time->f = 0.0; + s->time->relative.s += i; + s->time->is_localtime = 1; + s->time->zone_type = TIMELIB_ZONETYPE_OFFSET; + s->time->z = 0; + s->time->dst = 0; + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } + + firstdayof | lastdayof + { + DEBUG_OUTPUT("firstdayof | lastdayof"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + + /* skip "last day of" or "first day of" */ + if (*ptr == 'l') { + s->time->relative.first_last_day_of = 2; + } else { + s->time->relative.first_last_day_of = 1; + } + + TIMELIB_DEINIT; + return TIMELIB_LF_DAY_OF_MONTH; + } + + backof | frontof + { + DEBUG_OUTPUT("backof | frontof"); + TIMELIB_INIT; + TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TIME(); + + if (*ptr == 'b') { + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = 15; + } else { + s->time->h = timelib_get_nr((char **) &ptr, 2) - 1; + s->time->i = 45; + } + if (*ptr != '\0' ) { + timelib_eat_spaces((char **) &ptr); + s->time->h += timelib_meridian((char **) &ptr, s->time->h); + } + + TIMELIB_DEINIT; + return TIMELIB_LF_DAY_OF_MONTH; + } + + weekdayof + { + timelib_sll i; + int behavior = 0; + DEBUG_OUTPUT("weekdayof"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_HAVE_SPECIAL_RELATIVE(); + + i = timelib_get_relative_text((char **) &ptr, &behavior); + timelib_eat_spaces((char **) &ptr); + if (i > 0) { /* first, second... etc */ + s->time->relative.special.type = TIMELIB_SPECIAL_DAY_OF_WEEK_IN_MONTH; + timelib_set_relative((char **) &ptr, i, 1, s); + } else { /* last */ + s->time->relative.special.type = TIMELIB_SPECIAL_LAST_DAY_OF_WEEK_IN_MONTH; + timelib_set_relative((char **) &ptr, i, behavior, s); + } + TIMELIB_DEINIT; + return TIMELIB_WEEK_DAY_OF_MONTH; + } + + timetiny12 | timeshort12 | timelong12 + { + DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr((char **) &ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->i = timelib_get_nr((char **) &ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->s = timelib_get_nr((char **) &ptr, 2); + } + } + s->time->h += timelib_meridian((char **) &ptr, s->time->h); + TIMELIB_DEINIT; + return TIMELIB_TIME12; + } + + mssqltime + { + DEBUG_OUTPUT("mssqltime"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->s = timelib_get_nr((char **) &ptr, 2); + + if (*ptr == ':' || *ptr == '.') { + s->time->f = timelib_get_frac_nr((char **) &ptr, 8); + } + } + timelib_eat_spaces((char **) &ptr); + s->time->h += timelib_meridian((char **) &ptr, s->time->h); + TIMELIB_DEINIT; + return TIMELIB_TIME24_WITH_ZONE; + } + + timeshort24 | timelong24 /* | iso8601short | iso8601norm */ | iso8601long /*| iso8601shorttz | iso8601normtz | iso8601longtz*/ + { + int tz_not_found; + DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->s = timelib_get_nr((char **) &ptr, 2); + + if (*ptr == '.') { + s->time->f = timelib_get_frac_nr((char **) &ptr, 8); + } + } + + if (*ptr != '\0') { + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, "The timezone could not be found in the database"); + } + } + TIMELIB_DEINIT; + return TIMELIB_TIME24_WITH_ZONE; + } + + gnunocolon + { + DEBUG_OUTPUT("gnunocolon"); + TIMELIB_INIT; + switch (s->time->have_time) { + case 0: + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + s->time->s = 0; + break; + case 1: + s->time->y = timelib_get_nr((char **) &ptr, 4); + break; + default: + TIMELIB_DEINIT; + add_error(s, "Double time specification"); + return TIMELIB_ERROR; + } + s->time->have_time++; + TIMELIB_DEINIT; + return TIMELIB_GNU_NOCOLON; + } +/* + gnunocolontz + { + DEBUG_OUTPUT("gnunocolontz"); + TIMELIB_INIT; + switch (s->time->have_time) { + case 0: + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + s->time->s = 0; + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, s->tzdb, tz_get_wrapper); + break; + case 1: + s->time->y = timelib_get_nr((char **) &ptr, 4); + break; + default: + TIMELIB_DEINIT; + return TIMELIB_ERROR; + } + s->time->have_time++; + TIMELIB_DEINIT; + return TIMELIB_GNU_NOCOLON_TZ; + } +*/ + iso8601nocolon /*| iso8601nocolontz*/ + { + int tz_not_found; + DEBUG_OUTPUT("iso8601nocolon"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + s->time->s = timelib_get_nr((char **) &ptr, 2); + + if (*ptr != '\0') { + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, "The timezone could not be found in the database"); + } + } + TIMELIB_DEINIT; + return TIMELIB_ISO_NOCOLON; + } + + americanshort | american + { + int length = 0; + DEBUG_OUTPUT("americanshort | american"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->d = timelib_get_nr((char **) &ptr, 2); + if (*ptr == '/') { + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + } + TIMELIB_DEINIT; + return TIMELIB_AMERICAN; + } + + iso8601date4 | iso8601dateslash | dateslash + { + DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_unsigned_nr((char **) &ptr, 4); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->d = timelib_get_nr((char **) &ptr, 2); + TIMELIB_DEINIT; + return TIMELIB_ISO_DATE; + } + + iso8601date2 + { + int length = 0; + DEBUG_OUTPUT("iso8601date2"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->d = timelib_get_nr((char **) &ptr, 2); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_ISO_DATE; + } + + gnudateshorter + { + int length = 0; + DEBUG_OUTPUT("gnudateshorter"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->d = 1; + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_ISO_DATE; + } + + gnudateshort + { + int length = 0; + DEBUG_OUTPUT("gnudateshort"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->d = timelib_get_nr((char **) &ptr, 2); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_ISO_DATE; + } + + datefull + { + int length = 0; + DEBUG_OUTPUT("datefull"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr((char **) &ptr, 2); + timelib_skip_day_suffix((char **) &ptr); + s->time->m = timelib_get_month((char **) &ptr); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_FULL; + } + + pointeddate4 + { + DEBUG_OUTPUT("pointed date YYYY"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr((char **) &ptr, 2); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->y = timelib_get_nr((char **) &ptr, 4); + TIMELIB_DEINIT; + return TIMELIB_DATE_FULL_POINTED; + } + + pointeddate2 + { + int length = 0; + DEBUG_OUTPUT("pointed date YY"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr((char **) &ptr, 2); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->y = timelib_get_nr_ex((char **) &ptr, 2, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_FULL_POINTED; + } + + datenoday + { + int length = 0; + DEBUG_OUTPUT("datenoday"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month((char **) &ptr); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + s->time->d = 1; + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_NO_DAY; + } + + datenodayrev + { + int length = 0; + DEBUG_OUTPUT("datenodayrev"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + s->time->m = timelib_get_month((char **) &ptr); + s->time->d = 1; + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_NO_DAY; + } + + datetextual | datenoyear + { + int length = 0; + DEBUG_OUTPUT("datetextual | datenoyear"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month((char **) &ptr); + s->time->d = timelib_get_nr((char **) &ptr, 2); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_TEXT; + } + + datenoyearrev + { + DEBUG_OUTPUT("datenoyearrev"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr((char **) &ptr, 2); + timelib_skip_day_suffix((char **) &ptr); + s->time->m = timelib_get_month((char **) &ptr); + TIMELIB_DEINIT; + return TIMELIB_DATE_TEXT; + } + + datenocolon + { + DEBUG_OUTPUT("datenocolon"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr((char **) &ptr, 4); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->d = timelib_get_nr((char **) &ptr, 2); + TIMELIB_DEINIT; + return TIMELIB_DATE_NOCOLON; + } + + xmlrpc | xmlrpcnocolon | soap | wddx | exif + { + int tz_not_found; + DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr((char **) &ptr, 4); + s->time->m = timelib_get_nr((char **) &ptr, 2); + s->time->d = timelib_get_nr((char **) &ptr, 2); + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + s->time->s = timelib_get_nr((char **) &ptr, 2); + if (*ptr == '.') { + s->time->f = timelib_get_frac_nr((char **) &ptr, 9); + if (*ptr) { /* timezone is optional */ + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, "The timezone could not be found in the database"); + } + } + } + TIMELIB_DEINIT; + return TIMELIB_XMLRPC_SOAP; + } + + pgydotd + { + int length = 0; + DEBUG_OUTPUT("pgydotd"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + s->time->d = timelib_get_nr((char **) &ptr, 3); + s->time->m = 1; + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_PG_YEARDAY; + } + + isoweekday + { + timelib_sll w, d; + DEBUG_OUTPUT("isoweekday"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + TIMELIB_HAVE_RELATIVE(); + + s->time->y = timelib_get_nr((char **) &ptr, 4); + w = timelib_get_nr((char **) &ptr, 2); + d = timelib_get_nr((char **) &ptr, 1); + s->time->m = 1; + s->time->d = 1; + s->time->relative.d = timelib_daynr_from_weeknr(s->time->y, w, d); + + TIMELIB_DEINIT; + return TIMELIB_ISO_WEEK; + } + + isoweek + { + timelib_sll w, d; + DEBUG_OUTPUT("isoweek"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + TIMELIB_HAVE_RELATIVE(); + + s->time->y = timelib_get_nr((char **) &ptr, 4); + w = timelib_get_nr((char **) &ptr, 2); + d = 1; + s->time->m = 1; + s->time->d = 1; + s->time->relative.d = timelib_daynr_from_weeknr(s->time->y, w, d); + + TIMELIB_DEINIT; + return TIMELIB_ISO_WEEK; + } + + pgtextshort + { + int length = 0; + DEBUG_OUTPUT("pgtextshort"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month((char **) &ptr); + s->time->d = timelib_get_nr((char **) &ptr, 2); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_PG_TEXT; + } + + pgtextreverse + { + int length = 0; + DEBUG_OUTPUT("pgtextreverse"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex((char **) &ptr, 4, &length); + s->time->m = timelib_get_month((char **) &ptr); + s->time->d = timelib_get_nr((char **) &ptr, 2); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_PG_TEXT; + } + + clf + { + int tz_not_found; + DEBUG_OUTPUT("clf"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr((char **) &ptr, 2); + s->time->m = timelib_get_month((char **) &ptr); + s->time->y = timelib_get_nr((char **) &ptr, 4); + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + s->time->s = timelib_get_nr((char **) &ptr, 2); + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, "The timezone could not be found in the database"); + } + TIMELIB_DEINIT; + return TIMELIB_CLF; + } + + year4 + { + DEBUG_OUTPUT("year4"); + TIMELIB_INIT; + s->time->y = timelib_get_nr((char **) &ptr, 4); + TIMELIB_DEINIT; + return TIMELIB_CLF; + } + + ago + { + DEBUG_OUTPUT("ago"); + TIMELIB_INIT; + s->time->relative.y = 0 - s->time->relative.y; + s->time->relative.m = 0 - s->time->relative.m; + s->time->relative.d = 0 - s->time->relative.d; + s->time->relative.h = 0 - s->time->relative.h; + s->time->relative.i = 0 - s->time->relative.i; + s->time->relative.s = 0 - s->time->relative.s; + s->time->relative.weekday = 0 - s->time->relative.weekday; + if (s->time->relative.weekday == 0) { + s->time->relative.weekday = -7; + } + if (s->time->relative.have_special_relative && s->time->relative.special.type == TIMELIB_SPECIAL_WEEKDAY) { + s->time->relative.special.amount = 0 - s->time->relative.special.amount; + } + TIMELIB_DEINIT; + return TIMELIB_AGO; + } + + daytext + { + const timelib_relunit* relunit; + DEBUG_OUTPUT("daytext"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_HAVE_WEEKDAY_RELATIVE(); + TIMELIB_UNHAVE_TIME(); + relunit = timelib_lookup_relunit((char**) &ptr); + s->time->relative.weekday = relunit->multiplier; + if (s->time->relative.weekday_behavior != 2) { + s->time->relative.weekday_behavior = 1; + } + + TIMELIB_DEINIT; + return TIMELIB_WEEKDAY; + } + + relativetextweek + { + timelib_sll i; + int behavior = 0; + DEBUG_OUTPUT("relativetextweek"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + + while(*ptr) { + i = timelib_get_relative_text((char **) &ptr, &behavior); + timelib_eat_spaces((char **) &ptr); + timelib_set_relative((char **) &ptr, i, behavior, s); + s->time->relative.weekday_behavior = 2; + + /* to handle the format weekday + last/this/next week */ + if (s->time->relative.have_weekday_relative == 0) { + TIMELIB_HAVE_WEEKDAY_RELATIVE(); + s->time->relative.weekday = 1; + } + } + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } + + relativetext + { + timelib_sll i; + int behavior = 0; + DEBUG_OUTPUT("relativetext"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + + while(*ptr) { + i = timelib_get_relative_text((char **) &ptr, &behavior); + timelib_eat_spaces((char **) &ptr); + timelib_set_relative((char **) &ptr, i, behavior, s); + } + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } + + monthfull | monthabbr + { + DEBUG_OUTPUT("monthtext"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_lookup_month((char **) &ptr); + TIMELIB_DEINIT; + return TIMELIB_DATE_TEXT; + } + + tzcorrection | tz + { + int tz_not_found; + DEBUG_OUTPUT("tzcorrection | tz"); + TIMELIB_INIT; + TIMELIB_HAVE_TZ(); + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, "The timezone could not be found in the database"); + } + TIMELIB_DEINIT; + return TIMELIB_TIMEZONE; + } + + dateshortwithtimeshort12 | dateshortwithtimelong12 + { + DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month((char **) &ptr); + s->time->d = timelib_get_nr((char **) &ptr, 2); + + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->s = timelib_get_nr((char **) &ptr, 2); + + if (*ptr == '.') { + s->time->f = timelib_get_frac_nr((char **) &ptr, 8); + } + } + + s->time->h += timelib_meridian((char **) &ptr, s->time->h); + TIMELIB_DEINIT; + return TIMELIB_SHORTDATE_WITH_TIME; + } + + dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz + { + int tz_not_found; + DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month((char **) &ptr); + s->time->d = timelib_get_nr((char **) &ptr, 2); + + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr((char **) &ptr, 2); + s->time->i = timelib_get_nr((char **) &ptr, 2); + if (*ptr == ':') { + s->time->s = timelib_get_nr((char **) &ptr, 2); + + if (*ptr == '.') { + s->time->f = timelib_get_frac_nr((char **) &ptr, 8); + } + } + + if (*ptr != '\0') { + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, "The timezone could not be found in the database"); + } + } + TIMELIB_DEINIT; + return TIMELIB_SHORTDATE_WITH_TIME; + } + + relative + { + timelib_ull i; + DEBUG_OUTPUT("relative"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + + while(*ptr) { + i = timelib_get_unsigned_nr((char **) &ptr, 24); + timelib_eat_spaces((char **) &ptr); + timelib_set_relative((char **) &ptr, i, 1, s); + } + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } + + [ .,\t] + { + goto std; + } + + "\000"|"\n" + { + s->pos = cursor; s->line++; + goto std; + } + + any + { + add_error(s, "Unexpected character"); + goto std; + } +*/ +} + +/*!max:re2c */ + +timelib_time* timelib_strtotime(char *s, int len, struct timelib_error_container **errors, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_get_wrapper) +{ + Scanner in; + int t; + char *e = s + len - 1; + + memset(&in, 0, sizeof(in)); + in.errors = malloc(sizeof(struct timelib_error_container)); + in.errors->warning_count = 0; + in.errors->warning_messages = NULL; + in.errors->error_count = 0; + in.errors->error_messages = NULL; + + if (len > 0) { + while (isspace(*s) && s < e) { + s++; + } + while (isspace(*e) && e > s) { + e--; + } + } + if (e - s < 0) { + in.time = timelib_time_ctor(); + add_error(&in, "Empty string"); + if (errors) { + *errors = in.errors; + } else { + timelib_error_container_dtor(in.errors); + } + in.time->y = in.time->d = in.time->m = in.time->h = in.time->i = in.time->s = in.time->f = in.time->dst = in.time->z = TIMELIB_UNSET; + in.time->is_localtime = in.time->zone_type = 0; + return in.time; + } + e++; + + in.str = malloc((e - s) + YYMAXFILL); + memset(in.str, 0, (e - s) + YYMAXFILL); + memcpy(in.str, s, (e - s)); + in.lim = in.str + (e - s) + YYMAXFILL; + in.cur = in.str; + in.time = timelib_time_ctor(); + in.time->y = TIMELIB_UNSET; + in.time->d = TIMELIB_UNSET; + in.time->m = TIMELIB_UNSET; + in.time->h = TIMELIB_UNSET; + in.time->i = TIMELIB_UNSET; + in.time->s = TIMELIB_UNSET; + in.time->f = TIMELIB_UNSET; + in.time->z = TIMELIB_UNSET; + in.time->dst = TIMELIB_UNSET; + in.tzdb = tzdb; + in.time->is_localtime = 0; + in.time->zone_type = 0; + + do { + t = scan(&in, tz_get_wrapper); +#ifdef DEBUG_PARSER + printf("%d\n", t); +#endif + } while(t != EOI); + + /* do funky checking whether the parsed time was valid time */ + if (in.time->have_time && !timelib_valid_time( in.time->h, in.time->i, in.time->s)) { + add_warning(&in, "The parsed time was invalid"); + } + /* do funky checking whether the parsed date was valid date */ + if (in.time->have_date && !timelib_valid_date( in.time->y, in.time->m, in.time->d)) { + add_warning(&in, "The parsed date was invalid"); + } + + free(in.str); + if (errors) { + *errors = in.errors; + } else { + timelib_error_container_dtor(in.errors); + } + return in.time; +} + +#define TIMELIB_CHECK_NUMBER \ + if (strchr("0123456789", *ptr) == NULL) \ + { \ + add_pbf_error(s, "Unexpected data found.", string, begin); \ + } + +static void timelib_time_reset_fields(timelib_time *time) +{ + assert(time != NULL); + + time->y = 1970; + time->m = 1; + time->d = 1; + time->h = time->i = time->s = 0; + time->f = 0.0; + time->tz_info = NULL; +} + +static void timelib_time_reset_unset_fields(timelib_time *time) +{ + assert(time != NULL); + + if (time->y == TIMELIB_UNSET ) time->y = 1970; + if (time->m == TIMELIB_UNSET ) time->m = 1; + if (time->d == TIMELIB_UNSET ) time->d = 1; + if (time->h == TIMELIB_UNSET ) time->h = 0; + if (time->i == TIMELIB_UNSET ) time->i = 0; + if (time->s == TIMELIB_UNSET ) time->s = 0; + if (time->f == TIMELIB_UNSET ) time->f = 0.0; +} + +timelib_time *timelib_parse_from_format(char *format, char *string, int len, timelib_error_container **errors, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_get_wrapper) +{ + char *fptr = format; + char *ptr = string; + char *begin; + timelib_sll tmp; + Scanner in; + Scanner *s = ∈ + int allow_extra = 0; + + memset(&in, 0, sizeof(in)); + in.errors = malloc(sizeof(struct timelib_error_container)); + in.errors->warning_count = 0; + in.errors->warning_messages = NULL; + in.errors->error_count = 0; + in.errors->error_messages = NULL; + + in.time = timelib_time_ctor(); + in.time->y = TIMELIB_UNSET; + in.time->d = TIMELIB_UNSET; + in.time->m = TIMELIB_UNSET; + in.time->h = TIMELIB_UNSET; + in.time->i = TIMELIB_UNSET; + in.time->s = TIMELIB_UNSET; + in.time->f = TIMELIB_UNSET; + in.time->z = TIMELIB_UNSET; + in.time->dst = TIMELIB_UNSET; + in.tzdb = tzdb; + in.time->is_localtime = 0; + in.time->zone_type = 0; + + /* Loop over the format string */ + while (*fptr && *ptr) { + begin = ptr; + switch (*fptr) { + case 'D': /* three letter day */ + case 'l': /* full day */ + { + const timelib_relunit* tmprel = 0; + + tmprel = timelib_lookup_relunit((char **) &ptr); + if (!tmprel) { + add_pbf_error(s, "A textual day could not be found", string, begin); + break; + } else { + in.time->have_relative = 1; + in.time->relative.have_weekday_relative = 1; + in.time->relative.weekday = tmprel->multiplier; + in.time->relative.weekday_behavior = 1; + } + } + break; + case 'd': /* two digit day, with leading zero */ + case 'j': /* two digit day, without leading zero */ + TIMELIB_CHECK_NUMBER; + if ((s->time->d = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) { + add_pbf_error(s, "A two digit day could not be found", string, begin); + } + break; + case 'S': /* day suffix, ignored, nor checked */ + timelib_skip_day_suffix((char **) &ptr); + break; + case 'z': /* day of year - resets month (0 based) - also initializes everything else to !TIMELIB_UNSET */ + TIMELIB_CHECK_NUMBER; + if ((tmp = timelib_get_nr((char **) &ptr, 3)) == TIMELIB_UNSET) { + add_pbf_error(s, "A three digit day-of-year could not be found", string, begin); + } else { + s->time->m = 1; + s->time->d = tmp + 1; + timelib_do_normalize(s->time); + } + break; + + case 'm': /* two digit month, with leading zero */ + case 'n': /* two digit month, without leading zero */ + TIMELIB_CHECK_NUMBER; + if ((s->time->m = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) { + add_pbf_error(s, "A two digit month could not be found", string, begin); + } + break; + case 'M': /* three letter month */ + case 'F': /* full month */ + tmp = timelib_lookup_month((char **) &ptr); + if (!tmp) { + add_pbf_error(s, "A textual month could not be found", string, begin); + } else { + s->time->m = tmp; + } + break; + case 'y': /* two digit year */ + { + int length = 0; + TIMELIB_CHECK_NUMBER; + if ((s->time->y = timelib_get_nr_ex((char **) &ptr, 2, &length)) == TIMELIB_UNSET) { + add_pbf_error(s, "A two digit year could not be found", string, begin); + } + TIMELIB_PROCESS_YEAR(s->time->y, length); + } + break; + case 'Y': /* four digit year */ + TIMELIB_CHECK_NUMBER; + if ((s->time->y = timelib_get_nr((char **) &ptr, 4)) == TIMELIB_UNSET) { + add_pbf_error(s, "A four digit year could not be found", string, begin); + } + break; + case 'g': /* two digit hour, with leading zero */ + case 'h': /* two digit hour, without leading zero */ + TIMELIB_CHECK_NUMBER; + if ((s->time->h = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) { + add_pbf_error(s, "A two digit hour could not be found", string, begin); + } + if (s->time->h > 12) { + add_pbf_error(s, "Hour can not be higher than 12", string, begin); + } + break; + case 'G': /* two digit hour, with leading zero */ + case 'H': /* two digit hour, without leading zero */ + TIMELIB_CHECK_NUMBER; + if ((s->time->h = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) { + add_pbf_error(s, "A two digit hour could not be found", string, begin); + } + break; + case 'a': /* am/pm/a.m./p.m. */ + case 'A': /* AM/PM/A.M./P.M. */ + if (s->time->h == TIMELIB_UNSET) { + add_pbf_error(s, "Meridian can only come after an hour has been found", string, begin); + } else if ((tmp = timelib_meridian_with_check((char **) &ptr, s->time->h)) == TIMELIB_UNSET) { + add_pbf_error(s, "A meridian could not be found", string, begin); + } else { + s->time->h += tmp; + } + break; + case 'i': /* two digit minute, with leading zero */ + { + int length; + timelib_sll min; + + TIMELIB_CHECK_NUMBER; + min = timelib_get_nr_ex((char **) &ptr, 2, &length); + if (min == TIMELIB_UNSET || length != 2) { + add_pbf_error(s, "A two digit minute could not be found", string, begin); + } else { + s->time->i = min; + } + } + break; + case 's': /* two digit second, with leading zero */ + { + int length; + timelib_sll sec; + + TIMELIB_CHECK_NUMBER; + sec = timelib_get_nr_ex((char **) &ptr, 2, &length); + if (sec == TIMELIB_UNSET || length != 2) { + add_pbf_error(s, "A two second minute could not be found", string, begin); + } else { + s->time->s = sec; + } + } + break; + case 'u': /* up to six digit millisecond */ + { + double f; + char *tptr; + + TIMELIB_CHECK_NUMBER; + tptr = ptr; + if ((f = timelib_get_nr((char **) &ptr, 6)) == TIMELIB_UNSET || (ptr - tptr < 1)) { + add_pbf_error(s, "A six digit millisecond could not be found", string, begin); + } else { + s->time->f = (f / pow(10, (ptr - tptr))); + } + } + break; + case ' ': /* any sort of whitespace (' ' and \t) */ + timelib_eat_spaces((char **) &ptr); + break; + case 'U': /* epoch seconds */ + TIMELIB_CHECK_NUMBER; + TIMELIB_HAVE_RELATIVE(); + tmp = timelib_get_unsigned_nr((char **) &ptr, 24); + s->time->y = 1970; + s->time->m = 1; + s->time->d = 1; + s->time->h = s->time->i = s->time->s = 0; + s->time->f = 0.0; + s->time->relative.s += tmp; + s->time->is_localtime = 1; + s->time->zone_type = TIMELIB_ZONETYPE_OFFSET; + s->time->z = 0; + s->time->dst = 0; + break; + + case 'e': /* timezone */ + case 'P': /* timezone */ + case 'T': /* timezone */ + case 'O': /* timezone */ + { + int tz_not_found; + s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_pbf_error(s, "The timezone could not be found in the database", string, begin); + } + } + break; + + case '#': /* separation symbol */ + if (*ptr == ';' || *ptr == ':' || *ptr == '/' || *ptr == '.' || *ptr == ',' || *ptr == '-' || *ptr == '(' || *ptr == ')') { + ++ptr; + } else { + add_pbf_error(s, "The separation symbol ([;:/.,-]) could not be found", string, begin); + } + break; + + case ';': + case ':': + case '/': + case '.': + case ',': + case '-': + case '(': + case ')': + if (*ptr == *fptr) { + ++ptr; + } else { + add_pbf_error(s, "The separation symbol could not be found", string, begin); + } + break; + + case '!': /* reset all fields to default */ + timelib_time_reset_fields(s->time); + break; /* break intentionally not missing */ + + case '|': /* reset all fields to default when not set */ + timelib_time_reset_unset_fields(s->time); + break; /* break intentionally not missing */ + + case '?': /* random char */ + ++ptr; + break; + + case '\\': /* escaped char */ + *fptr++; + if (*ptr == *fptr) { + ++ptr; + } else { + add_pbf_error(s, "The escaped character could not be found", string, begin); + } + break; + + case '*': /* random chars until a separator or number ([ \t.,:;/-0123456789]) */ + timelib_eat_until_separator((char **) &ptr); + break; + + case '+': /* allow extra chars in the format */ + allow_extra = 1; + break; + + default: + if (*fptr != *ptr) { + add_pbf_error(s, "The format separator does not match", string, begin); + } + ptr++; + } + fptr++; + } + if (*ptr) { + if (allow_extra) { + add_pbf_warning(s, "Trailing data", string, ptr); + } else { + add_pbf_error(s, "Trailing data", string, ptr); + } + } + /* ignore trailing +'s */ + while (*fptr == '+') { + fptr++; + } + if (*fptr) { + /* Trailing | and ! specifiers are valid. */ + int done = 0; + while (*fptr && !done) { + switch (*fptr++) { + case '!': /* reset all fields to default */ + timelib_time_reset_fields(s->time); + break; + + case '|': /* reset all fields to default when not set */ + timelib_time_reset_unset_fields(s->time); + break; + + default: + add_pbf_error(s, "Data missing", string, ptr); + done = 1; + } + } + } + + /* clean up a bit */ + if (s->time->h != TIMELIB_UNSET || s->time->i != TIMELIB_UNSET || s->time->s != TIMELIB_UNSET) { + if (s->time->h == TIMELIB_UNSET ) { + s->time->h = 0; + } + if (s->time->i == TIMELIB_UNSET ) { + s->time->i = 0; + } + if (s->time->s == TIMELIB_UNSET ) { + s->time->s = 0; + } + } + + /* do funky checking whether the parsed time was valid time */ + if (s->time->h != TIMELIB_UNSET && s->time->i != TIMELIB_UNSET && + s->time->s != TIMELIB_UNSET && + !timelib_valid_time( s->time->h, s->time->i, s->time->s)) { + add_pbf_warning(s, "The parsed time was invalid", string, ptr); + } + /* do funky checking whether the parsed date was valid date */ + if (s->time->y != TIMELIB_UNSET && s->time->m != TIMELIB_UNSET && + s->time->d != TIMELIB_UNSET && + !timelib_valid_date( s->time->y, s->time->m, s->time->d)) { + add_pbf_warning(s, "The parsed date was invalid", string, ptr); + } + + if (errors) { + *errors = in.errors; + } else { + timelib_error_container_dtor(in.errors); + } + return in.time; +} + +void timelib_fill_holes(timelib_time *parsed, timelib_time *now, int options) +{ + if (!(options & TIMELIB_OVERRIDE_TIME) && parsed->have_date && !parsed->have_time) { + parsed->h = 0; + parsed->i = 0; + parsed->s = 0; + parsed->f = 0; + } + if (parsed->y == TIMELIB_UNSET) parsed->y = now->y != TIMELIB_UNSET ? now->y : 0; + if (parsed->d == TIMELIB_UNSET) parsed->d = now->d != TIMELIB_UNSET ? now->d : 0; + if (parsed->m == TIMELIB_UNSET) parsed->m = now->m != TIMELIB_UNSET ? now->m : 0; + if (parsed->h == TIMELIB_UNSET) parsed->h = now->h != TIMELIB_UNSET ? now->h : 0; + if (parsed->i == TIMELIB_UNSET) parsed->i = now->i != TIMELIB_UNSET ? now->i : 0; + if (parsed->s == TIMELIB_UNSET) parsed->s = now->s != TIMELIB_UNSET ? now->s : 0; + if (parsed->f == TIMELIB_UNSET) parsed->f = now->f != TIMELIB_UNSET ? now->f : 0; + if (parsed->z == TIMELIB_UNSET) parsed->z = now->z != TIMELIB_UNSET ? now->z : 0; + if (parsed->dst == TIMELIB_UNSET) parsed->dst = now->dst != TIMELIB_UNSET ? now->dst : 0; + + if (!parsed->tz_abbr) { + parsed->tz_abbr = now->tz_abbr ? strdup(now->tz_abbr) : NULL; + } + if (!parsed->tz_info) { + parsed->tz_info = now->tz_info ? (!(options & TIMELIB_NO_CLONE) ? timelib_tzinfo_clone(now->tz_info) : now->tz_info) : NULL; + } + if (parsed->zone_type == 0 && now->zone_type != 0) { + parsed->zone_type = now->zone_type; +/* parsed->tz_abbr = now->tz_abbr ? strdup(now->tz_abbr) : NULL; + parsed->tz_info = now->tz_info ? timelib_tzinfo_clone(now->tz_info) : NULL; +*/ parsed->is_localtime = 1; + } +/* timelib_dump_date(parsed, 2); + timelib_dump_date(now, 2); +*/ +} + +char *timelib_timezone_id_from_abbr(const char *abbr, long gmtoffset, int isdst) +{ + const timelib_tz_lookup_table *tp; + + tp = zone_search(abbr, gmtoffset, isdst); + if (tp) { + return (tp->full_tz_name); + } else { + return NULL; + } +} + +const timelib_tz_lookup_table *timelib_timezone_abbreviations_list(void) +{ + return timelib_timezone_lookup; +} + +#ifdef DEBUG_PARSER_STUB +int main(void) +{ + timelib_time time = timelib_strtotime("May 12"); + + printf ("%04d-%02d-%02d %02d:%02d:%02d.%-5d %+04d %1d", + time.y, time.m, time.d, time.h, time.i, time.s, time.f, time.z, time.dst); + if (time.have_relative) { + printf ("%3dY %3dM %3dD / %3dH %3dM %3dS", + time.relative.y, time.relative.m, time.relative.d, time.relative.h, time.relative.i, time.relative.s); + } + if (time.have_weekday_relative) { + printf (" / %d", time.relative.weekday); + } + if (time.have_weeknr_day) { + printf(" / %dW%d", time.relative.weeknr_day.weeknr, time.relative.weeknr_day.dayofweek); + } + return 0; +} +#endif + +/* + * vim: syntax=c + */ diff --git a/ext/date/lib/parse_iso_intervals.c b/ext/date/lib/parse_iso_intervals.c new file mode 100644 index 0000000..bd1ad05 --- /dev/null +++ b/ext/date/lib/parse_iso_intervals.c @@ -0,0 +1,1161 @@ +/* Generated by re2c 0.13.5 on Mon Dec 5 22:02:27 2011 */ +#line 1 "ext/date/lib/parse_iso_intervals.re" +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#include "timelib.h" + +#include +#include + +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_STRING_H +#include +#else +#include +#endif + +#if defined(_MSC_VER) +# define strtoll(s, f, b) _atoi64(s) +#elif !defined(HAVE_STRTOLL) +# if defined(HAVE_ATOLL) +# define strtoll(s, f, b) atoll(s) +# else +# define strtoll(s, f, b) strtol(s, f, b) +# endif +#endif + +#define TIMELIB_UNSET -99999 + +#define TIMELIB_SECOND 1 +#define TIMELIB_MINUTE 2 +#define TIMELIB_HOUR 3 +#define TIMELIB_DAY 4 +#define TIMELIB_MONTH 5 +#define TIMELIB_YEAR 6 + +#define EOI 257 + +#define TIMELIB_PERIOD 260 +#define TIMELIB_ISO_DATE 261 +#define TIMELIB_ERROR 999 + +typedef unsigned char uchar; + +#define BSIZE 8192 + +#define YYCTYPE uchar +#define YYCURSOR cursor +#define YYLIMIT s->lim +#define YYMARKER s->ptr +#define YYFILL(n) return EOI; + +#define RET(i) {s->cur = cursor; return i;} + +#define timelib_string_free free + +#define TIMELIB_INIT s->cur = cursor; str = timelib_string(s); ptr = str +#define TIMELIB_DEINIT timelib_string_free(str) + +#ifdef DEBUG_PARSER +#define DEBUG_OUTPUT(s) printf("%s\n", s); +#define YYDEBUG(s,c) { if (s != -1) { printf("state: %d ", s); printf("[%c]\n", c); } } +#else +#define DEBUG_OUTPUT(s) +#define YYDEBUG(s,c) +#endif + +#include "timelib_structs.h" + +typedef struct Scanner { + int fd; + uchar *lim, *str, *ptr, *cur, *tok, *pos; + unsigned int line, len; + struct timelib_error_container *errors; + + struct timelib_time *begin; + struct timelib_time *end; + struct timelib_rel_time *period; + int recurrences; + + int have_period; + int have_recurrences; + int have_date; + int have_begin_date; + int have_end_date; +} Scanner; + +#define HOUR(a) (int)(a * 60) + +static void add_warning(Scanner *s, char *error) +{ + s->errors->warning_count++; + s->errors->warning_messages = realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message)); + s->errors->warning_messages[s->errors->warning_count - 1].position = s->tok ? s->tok - s->str : 0; + s->errors->warning_messages[s->errors->warning_count - 1].character = s->tok ? *s->tok : 0; + s->errors->warning_messages[s->errors->warning_count - 1].message = strdup(error); +} + +static void add_error(Scanner *s, char *error) +{ + s->errors->error_count++; + s->errors->error_messages = realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message)); + s->errors->error_messages[s->errors->error_count - 1].position = s->tok ? s->tok - s->str : 0; + s->errors->error_messages[s->errors->error_count - 1].character = s->tok ? *s->tok : 0; + s->errors->error_messages[s->errors->error_count - 1].message = strdup(error); +} + +static char *timelib_string(Scanner *s) +{ + char *tmp = calloc(1, s->cur - s->tok + 1); + memcpy(tmp, s->tok, s->cur - s->tok); + + return tmp; +} + +static timelib_sll timelib_get_nr(char **ptr, int max_length) +{ + char *begin, *end, *str; + timelib_sll tmp_nr = TIMELIB_UNSET; + int len = 0; + + while ((**ptr < '0') || (**ptr > '9')) { + if (**ptr == '\0') { + return TIMELIB_UNSET; + } + ++*ptr; + } + begin = *ptr; + while ((**ptr >= '0') && (**ptr <= '9') && len < max_length) { + ++*ptr; + ++len; + } + end = *ptr; + str = calloc(1, end - begin + 1); + memcpy(str, begin, end - begin); + tmp_nr = strtoll(str, NULL, 10); + free(str); + return tmp_nr; +} + +static timelib_ull timelib_get_unsigned_nr(char **ptr, int max_length) +{ + timelib_ull dir = 1; + + while (((**ptr < '0') || (**ptr > '9')) && (**ptr != '+') && (**ptr != '-')) { + if (**ptr == '\0') { + return TIMELIB_UNSET; + } + ++*ptr; + } + + while (**ptr == '+' || **ptr == '-') + { + if (**ptr == '-') { + dir *= -1; + } + ++*ptr; + } + return dir * timelib_get_nr(ptr, max_length); +} + +static long timelib_parse_tz_cor(char **ptr) +{ + char *begin = *ptr, *end; + long tmp; + + while (isdigit(**ptr) || **ptr == ':') { + ++*ptr; + } + end = *ptr; + switch (end - begin) { + case 1: + case 2: + return HOUR(strtol(begin, NULL, 10)); + break; + case 3: + case 4: + if (begin[1] == ':') { + tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 2, NULL, 10); + return tmp; + } else if (begin[2] == ':') { + tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 3, NULL, 10); + return tmp; + } else { + tmp = strtol(begin, NULL, 10); + return HOUR(tmp / 100) + tmp % 100; + } + case 5: + tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 3, NULL, 10); + return tmp; + } + return 0; +} + +static void timelib_eat_spaces(char **ptr) +{ + while (**ptr == ' ' || **ptr == '\t') { + ++*ptr; + } +} + +static void timelib_eat_until_separator(char **ptr) +{ + while (strchr(" \t.,:;/-0123456789", **ptr) == NULL) { + ++*ptr; + } +} + +static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_found, const timelib_tzdb *tzdb) +{ + long retval = 0; + + *tz_not_found = 0; + + while (**ptr == ' ' || **ptr == '\t' || **ptr == '(') { + ++*ptr; + } + if ((*ptr)[0] == 'G' && (*ptr)[1] == 'M' && (*ptr)[2] == 'T' && ((*ptr)[3] == '+' || (*ptr)[3] == '-')) { + *ptr += 3; + } + if (**ptr == '+') { + ++*ptr; + t->is_localtime = 1; + t->zone_type = TIMELIB_ZONETYPE_OFFSET; + *tz_not_found = 0; + t->dst = 0; + + retval = -1 * timelib_parse_tz_cor(ptr); + } else if (**ptr == '-') { + ++*ptr; + t->is_localtime = 1; + t->zone_type = TIMELIB_ZONETYPE_OFFSET; + *tz_not_found = 0; + t->dst = 0; + + retval = timelib_parse_tz_cor(ptr); + } + while (**ptr == ')') { + ++*ptr; + } + return retval; +} + +#define timelib_split_free(arg) { \ + int i; \ + for (i = 0; i < arg.c; i++) { \ + free(arg.v[i]); \ + } \ + if (arg.v) { \ + free(arg.v); \ + } \ +} + +/* date parser's scan function too large for VC6 - VC7.x + drop the optimization solves the problem */ +#ifdef PHP_WIN32 +#pragma optimize( "", off ) +#endif +static int scan(Scanner *s) +{ + uchar *cursor = s->cur; + char *str, *ptr = NULL; + +std: + s->tok = cursor; + s->len = 0; +#line 311 "ext/date/lib/parse_iso_intervals.re" + + + +#line 291 "ext/date/lib/parse_iso_intervals.c" +{ + YYCTYPE yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + + YYDEBUG(0, *YYCURSOR); + if ((YYLIMIT - YYCURSOR) < 20) YYFILL(20); + yych = *YYCURSOR; + if (yych <= ',') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy9; + if (yych <= 0x08) goto yy11; + if (yych <= '\t') goto yy7; + goto yy9; + } else { + if (yych == ' ') goto yy7; + if (yych <= '+') goto yy11; + goto yy7; + } + } else { + if (yych <= 'O') { + if (yych <= '-') goto yy11; + if (yych <= '/') goto yy7; + if (yych <= '9') goto yy4; + goto yy11; + } else { + if (yych <= 'P') goto yy5; + if (yych != 'R') goto yy11; + } + } + YYDEBUG(2, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '/') goto yy3; + if (yych <= '9') goto yy98; +yy3: + YYDEBUG(3, *YYCURSOR); +#line 424 "ext/date/lib/parse_iso_intervals.re" + { + add_error(s, "Unexpected character"); + goto std; + } +#line 366 "ext/date/lib/parse_iso_intervals.c" +yy4: + YYDEBUG(4, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy3; + if (yych <= '9') goto yy59; + goto yy3; +yy5: + YYDEBUG(5, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy6; + if (yych <= '9') goto yy12; + if (yych == 'T') goto yy14; +yy6: + YYDEBUG(6, *YYCURSOR); +#line 351 "ext/date/lib/parse_iso_intervals.re" + { + timelib_sll nr; + int in_time = 0; + DEBUG_OUTPUT("period"); + TIMELIB_INIT; + ptr++; + do { + if ( *ptr == 'T' ) { + in_time = 1; + ptr++; + } + if ( *ptr == '\0' ) { + add_error(s, "Missing expected time part"); + break; + } + + nr = timelib_get_unsigned_nr((char **) &ptr, 12); + switch (*ptr) { + case 'Y': s->period->y = nr; break; + case 'W': s->period->d = nr * 7; break; + case 'D': s->period->d = nr; break; + case 'H': s->period->h = nr; break; + case 'S': s->period->s = nr; break; + case 'M': + if (in_time) { + s->period->i = nr; + } else { + s->period->m = nr; + } + break; + default: + add_error(s, "Undefined period specifier"); + break; + } + ptr++; + } while (*ptr); + s->have_period = 1; + TIMELIB_DEINIT; + return TIMELIB_PERIOD; + } +#line 424 "ext/date/lib/parse_iso_intervals.c" +yy7: + YYDEBUG(7, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(8, *YYCURSOR); +#line 413 "ext/date/lib/parse_iso_intervals.re" + { + goto std; + } +#line 433 "ext/date/lib/parse_iso_intervals.c" +yy9: + YYDEBUG(9, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(10, *YYCURSOR); +#line 418 "ext/date/lib/parse_iso_intervals.re" + { + s->pos = cursor; s->line++; + goto std; + } +#line 443 "ext/date/lib/parse_iso_intervals.c" +yy11: + YYDEBUG(11, *YYCURSOR); + yych = *++YYCURSOR; + goto yy3; +yy12: + YYDEBUG(12, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych <= '9') { + if (yych >= '0') goto yy25; + } else { + if (yych == 'D') goto yy24; + } + } else { + if (yych <= 'W') { + if (yych <= 'M') goto yy27; + if (yych >= 'W') goto yy26; + } else { + if (yych == 'Y') goto yy28; + } + } +yy13: + YYDEBUG(13, *YYCURSOR); + YYCURSOR = YYMARKER; + if (yyaccept <= 0) { + goto yy3; + } else { + goto yy6; + } +yy14: + YYDEBUG(14, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy15; + } + goto yy6; +yy15: + YYDEBUG(15, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + YYDEBUG(16, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy15; + } + if (yych <= 'L') { + if (yych == 'H') goto yy19; + goto yy13; + } else { + if (yych <= 'M') goto yy18; + if (yych != 'S') goto yy13; + } +yy17: + YYDEBUG(17, *YYCURSOR); + yych = *++YYCURSOR; + goto yy6; +yy18: + YYDEBUG(18, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy6; + if (yych <= '9') goto yy22; + goto yy6; +yy19: + YYDEBUG(19, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy6; + if (yych >= ':') goto yy6; +yy20: + YYDEBUG(20, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + YYDEBUG(21, *YYCURSOR); + if (yych <= 'L') { + if (yych <= '/') goto yy13; + if (yych <= '9') goto yy20; + goto yy13; + } else { + if (yych <= 'M') goto yy18; + if (yych == 'S') goto yy17; + goto yy13; + } +yy22: + YYDEBUG(22, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(23, *YYCURSOR); + if (yych <= '/') goto yy13; + if (yych <= '9') goto yy22; + if (yych == 'S') goto yy17; + goto yy13; +yy24: + YYDEBUG(24, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy14; + goto yy6; +yy25: + YYDEBUG(25, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych <= '9') { + if (yych <= '/') goto yy13; + goto yy35; + } else { + if (yych == 'D') goto yy24; + goto yy13; + } + } else { + if (yych <= 'W') { + if (yych <= 'M') goto yy27; + if (yych <= 'V') goto yy13; + } else { + if (yych == 'Y') goto yy28; + goto yy13; + } + } +yy26: + YYDEBUG(26, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy6; + if (yych <= '9') goto yy33; + if (yych == 'T') goto yy14; + goto yy6; +yy27: + YYDEBUG(27, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy6; + if (yych <= '9') goto yy31; + if (yych == 'T') goto yy14; + goto yy6; +yy28: + YYDEBUG(28, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy6; + if (yych <= '9') goto yy29; + if (yych == 'T') goto yy14; + goto yy6; +yy29: + YYDEBUG(29, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); + yych = *YYCURSOR; + YYDEBUG(30, *YYCURSOR); + if (yych <= 'D') { + if (yych <= '/') goto yy13; + if (yych <= '9') goto yy29; + if (yych <= 'C') goto yy13; + goto yy24; + } else { + if (yych <= 'M') { + if (yych <= 'L') goto yy13; + goto yy27; + } else { + if (yych == 'W') goto yy26; + goto yy13; + } + } +yy31: + YYDEBUG(31, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); + yych = *YYCURSOR; + YYDEBUG(32, *YYCURSOR); + if (yych <= 'C') { + if (yych <= '/') goto yy13; + if (yych <= '9') goto yy31; + goto yy13; + } else { + if (yych <= 'D') goto yy24; + if (yych == 'W') goto yy26; + goto yy13; + } +yy33: + YYDEBUG(33, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); + yych = *YYCURSOR; + YYDEBUG(34, *YYCURSOR); + if (yych <= '/') goto yy13; + if (yych <= '9') goto yy33; + if (yych == 'D') goto yy24; + goto yy13; +yy35: + YYDEBUG(35, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych <= '9') { + if (yych <= '/') goto yy13; + } else { + if (yych == 'D') goto yy24; + goto yy13; + } + } else { + if (yych <= 'W') { + if (yych <= 'M') goto yy27; + if (yych <= 'V') goto yy13; + goto yy26; + } else { + if (yych == 'Y') goto yy28; + goto yy13; + } + } + YYDEBUG(36, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '-') goto yy39; + YYDEBUG(37, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '0') goto yy40; + if (yych <= '1') goto yy41; + goto yy13; +yy38: + YYDEBUG(38, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); + yych = *YYCURSOR; +yy39: + YYDEBUG(39, *YYCURSOR); + if (yych <= 'L') { + if (yych <= '9') { + if (yych <= '/') goto yy13; + goto yy38; + } else { + if (yych == 'D') goto yy24; + goto yy13; + } + } else { + if (yych <= 'W') { + if (yych <= 'M') goto yy27; + if (yych <= 'V') goto yy13; + goto yy26; + } else { + if (yych == 'Y') goto yy28; + goto yy13; + } + } +yy40: + YYDEBUG(40, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '9') goto yy42; + goto yy13; +yy41: + YYDEBUG(41, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= '3') goto yy13; +yy42: + YYDEBUG(42, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '-') goto yy13; + YYDEBUG(43, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '0') goto yy44; + if (yych <= '2') goto yy45; + if (yych <= '3') goto yy46; + goto yy13; +yy44: + YYDEBUG(44, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '9') goto yy47; + goto yy13; +yy45: + YYDEBUG(45, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '9') goto yy47; + goto yy13; +yy46: + YYDEBUG(46, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= '2') goto yy13; +yy47: + YYDEBUG(47, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != 'T') goto yy13; + YYDEBUG(48, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '1') goto yy49; + if (yych <= '2') goto yy50; + goto yy13; +yy49: + YYDEBUG(49, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '9') goto yy51; + goto yy13; +yy50: + YYDEBUG(50, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= '5') goto yy13; +yy51: + YYDEBUG(51, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy13; + YYDEBUG(52, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= '6') goto yy13; + YYDEBUG(53, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= ':') goto yy13; + YYDEBUG(54, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy13; + YYDEBUG(55, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= '6') goto yy13; + YYDEBUG(56, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= ':') goto yy13; + YYDEBUG(57, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(58, *YYCURSOR); +#line 393 "ext/date/lib/parse_iso_intervals.re" + { + DEBUG_OUTPUT("combinedrep"); + TIMELIB_INIT; + s->period->y = timelib_get_unsigned_nr((char **) &ptr, 4); + ptr++; + s->period->m = timelib_get_unsigned_nr((char **) &ptr, 2); + ptr++; + s->period->d = timelib_get_unsigned_nr((char **) &ptr, 2); + ptr++; + s->period->h = timelib_get_unsigned_nr((char **) &ptr, 2); + ptr++; + s->period->i = timelib_get_unsigned_nr((char **) &ptr, 2); + ptr++; + s->period->s = timelib_get_unsigned_nr((char **) &ptr, 2); + s->have_period = 1; + TIMELIB_DEINIT; + return TIMELIB_PERIOD; + } +#line 792 "ext/date/lib/parse_iso_intervals.c" +yy59: + YYDEBUG(59, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= ':') goto yy13; + YYDEBUG(60, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= ':') goto yy13; + YYDEBUG(61, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '-') goto yy64; + goto yy13; + } else { + if (yych <= '0') goto yy62; + if (yych <= '1') goto yy63; + goto yy13; + } +yy62: + YYDEBUG(62, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '0') goto yy13; + if (yych <= '9') goto yy85; + goto yy13; +yy63: + YYDEBUG(63, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '2') goto yy85; + goto yy13; +yy64: + YYDEBUG(64, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '0') goto yy65; + if (yych <= '1') goto yy66; + goto yy13; +yy65: + YYDEBUG(65, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '0') goto yy13; + if (yych <= '9') goto yy67; + goto yy13; +yy66: + YYDEBUG(66, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= '3') goto yy13; +yy67: + YYDEBUG(67, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '-') goto yy13; + YYDEBUG(68, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '0') goto yy69; + if (yych <= '2') goto yy70; + if (yych <= '3') goto yy71; + goto yy13; +yy69: + YYDEBUG(69, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '0') goto yy13; + if (yych <= '9') goto yy72; + goto yy13; +yy70: + YYDEBUG(70, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '9') goto yy72; + goto yy13; +yy71: + YYDEBUG(71, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= '2') goto yy13; +yy72: + YYDEBUG(72, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != 'T') goto yy13; + YYDEBUG(73, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '1') goto yy74; + if (yych <= '2') goto yy75; + goto yy13; +yy74: + YYDEBUG(74, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '9') goto yy76; + goto yy13; +yy75: + YYDEBUG(75, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= '5') goto yy13; +yy76: + YYDEBUG(76, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy13; + YYDEBUG(77, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= '6') goto yy13; + YYDEBUG(78, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= ':') goto yy13; + YYDEBUG(79, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != ':') goto yy13; + YYDEBUG(80, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= '6') goto yy13; + YYDEBUG(81, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= ':') goto yy13; + YYDEBUG(82, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != 'Z') goto yy13; +yy83: + YYDEBUG(83, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(84, *YYCURSOR); +#line 327 "ext/date/lib/parse_iso_intervals.re" + { + timelib_time *current; + + if (s->have_date || s->have_period) { + current = s->end; + s->have_end_date = 1; + } else { + current = s->begin; + s->have_begin_date = 1; + } + DEBUG_OUTPUT("datetimebasic | datetimeextended"); + TIMELIB_INIT; + current->y = timelib_get_nr((char **) &ptr, 4); + current->m = timelib_get_nr((char **) &ptr, 2); + current->d = timelib_get_nr((char **) &ptr, 2); + current->h = timelib_get_nr((char **) &ptr, 2); + current->i = timelib_get_nr((char **) &ptr, 2); + current->s = timelib_get_nr((char **) &ptr, 2); + s->have_date = 1; + TIMELIB_DEINIT; + return TIMELIB_ISO_DATE; + } +#line 944 "ext/date/lib/parse_iso_intervals.c" +yy85: + YYDEBUG(85, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '0') goto yy86; + if (yych <= '2') goto yy87; + if (yych <= '3') goto yy88; + goto yy13; +yy86: + YYDEBUG(86, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '0') goto yy13; + if (yych <= '9') goto yy89; + goto yy13; +yy87: + YYDEBUG(87, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '9') goto yy89; + goto yy13; +yy88: + YYDEBUG(88, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= '2') goto yy13; +yy89: + YYDEBUG(89, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != 'T') goto yy13; + YYDEBUG(90, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '1') goto yy91; + if (yych <= '2') goto yy92; + goto yy13; +yy91: + YYDEBUG(91, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych <= '9') goto yy93; + goto yy13; +yy92: + YYDEBUG(92, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= '5') goto yy13; +yy93: + YYDEBUG(93, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= '6') goto yy13; + YYDEBUG(94, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= ':') goto yy13; + YYDEBUG(95, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= '6') goto yy13; + YYDEBUG(96, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy13; + if (yych >= ':') goto yy13; + YYDEBUG(97, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Z') goto yy83; + goto yy13; +yy98: + YYDEBUG(98, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(99, *YYCURSOR); + if (yych <= '/') goto yy100; + if (yych <= '9') goto yy98; +yy100: + YYDEBUG(100, *YYCURSOR); +#line 316 "ext/date/lib/parse_iso_intervals.re" + { + DEBUG_OUTPUT("recurrences"); + TIMELIB_INIT; + ptr++; + s->recurrences = timelib_get_unsigned_nr((char **) &ptr, 9); + TIMELIB_DEINIT; + s->have_recurrences = 1; + return TIMELIB_PERIOD; + } +#line 1032 "ext/date/lib/parse_iso_intervals.c" +} +#line 428 "ext/date/lib/parse_iso_intervals.re" + +} +#ifdef PHP_WIN32 +#pragma optimize( "", on ) +#endif + +#define YYMAXFILL 20 + +void timelib_strtointerval(char *s, int len, + timelib_time **begin, timelib_time **end, + timelib_rel_time **period, int *recurrences, + struct timelib_error_container **errors) +{ + Scanner in; + int t; + char *e = s + len - 1; + + memset(&in, 0, sizeof(in)); + in.errors = malloc(sizeof(struct timelib_error_container)); + in.errors->warning_count = 0; + in.errors->warning_messages = NULL; + in.errors->error_count = 0; + in.errors->error_messages = NULL; + + if (len > 0) { + while (isspace(*s) && s < e) { + s++; + } + while (isspace(*e) && e > s) { + e--; + } + } + if (e - s < 0) { + add_error(&in, "Empty string"); + if (errors) { + *errors = in.errors; + } else { + timelib_error_container_dtor(in.errors); + } + return; + } + e++; + + /* init cursor */ + in.str = malloc((e - s) + YYMAXFILL); + memset(in.str, 0, (e - s) + YYMAXFILL); + memcpy(in.str, s, (e - s)); + in.lim = in.str + (e - s) + YYMAXFILL; + in.cur = in.str; + + /* init value containers */ + in.begin = timelib_time_ctor(); + in.begin->y = TIMELIB_UNSET; + in.begin->d = TIMELIB_UNSET; + in.begin->m = TIMELIB_UNSET; + in.begin->h = TIMELIB_UNSET; + in.begin->i = TIMELIB_UNSET; + in.begin->s = TIMELIB_UNSET; + in.begin->f = 0; + in.begin->z = 0; + in.begin->dst = 0; + in.begin->is_localtime = 0; + in.begin->zone_type = TIMELIB_ZONETYPE_OFFSET; + + in.end = timelib_time_ctor(); + in.end->y = TIMELIB_UNSET; + in.end->d = TIMELIB_UNSET; + in.end->m = TIMELIB_UNSET; + in.end->h = TIMELIB_UNSET; + in.end->i = TIMELIB_UNSET; + in.end->s = TIMELIB_UNSET; + in.end->f = 0; + in.end->z = 0; + in.end->dst = 0; + in.end->is_localtime = 0; + in.end->zone_type = TIMELIB_ZONETYPE_OFFSET; + + in.period = timelib_rel_time_ctor(); + in.period->y = 0; + in.period->d = 0; + in.period->m = 0; + in.period->h = 0; + in.period->i = 0; + in.period->s = 0; + in.period->weekday = 0; + in.period->weekday_behavior = 0; + in.period->first_last_day_of = 0; + in.period->days = TIMELIB_UNSET; + + in.recurrences = 1; + + do { + t = scan(&in); +#ifdef DEBUG_PARSER + printf("%d\n", t); +#endif + } while(t != EOI); + + free(in.str); + if (errors) { + *errors = in.errors; + } else { + timelib_error_container_dtor(in.errors); + } + if (in.have_begin_date) { + *begin = in.begin; + } else { + timelib_time_dtor(in.begin); + } + if (in.have_end_date) { + *end = in.end; + } else { + timelib_time_dtor(in.end); + } + if (in.have_period) { + *period = in.period; + } else { + timelib_rel_time_dtor(in.period); + } + if (in.have_recurrences) { + *recurrences = in.recurrences; + } +} + + +/* + * vim: syntax=c + */ diff --git a/ext/date/lib/parse_iso_intervals.re b/ext/date/lib/parse_iso_intervals.re new file mode 100644 index 0000000..56aa34d --- /dev/null +++ b/ext/date/lib/parse_iso_intervals.re @@ -0,0 +1,555 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#include "timelib.h" + +#include +#include + +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_STRING_H +#include +#else +#include +#endif + +#if defined(_MSC_VER) +# define strtoll(s, f, b) _atoi64(s) +#elif !defined(HAVE_STRTOLL) +# if defined(HAVE_ATOLL) +# define strtoll(s, f, b) atoll(s) +# else +# define strtoll(s, f, b) strtol(s, f, b) +# endif +#endif + +#define TIMELIB_UNSET -99999 + +#define TIMELIB_SECOND 1 +#define TIMELIB_MINUTE 2 +#define TIMELIB_HOUR 3 +#define TIMELIB_DAY 4 +#define TIMELIB_MONTH 5 +#define TIMELIB_YEAR 6 + +#define EOI 257 + +#define TIMELIB_PERIOD 260 +#define TIMELIB_ISO_DATE 261 +#define TIMELIB_ERROR 999 + +typedef unsigned char uchar; + +#define BSIZE 8192 + +#define YYCTYPE uchar +#define YYCURSOR cursor +#define YYLIMIT s->lim +#define YYMARKER s->ptr +#define YYFILL(n) return EOI; + +#define RET(i) {s->cur = cursor; return i;} + +#define timelib_string_free free + +#define TIMELIB_INIT s->cur = cursor; str = timelib_string(s); ptr = str +#define TIMELIB_DEINIT timelib_string_free(str) + +#ifdef DEBUG_PARSER +#define DEBUG_OUTPUT(s) printf("%s\n", s); +#define YYDEBUG(s,c) { if (s != -1) { printf("state: %d ", s); printf("[%c]\n", c); } } +#else +#define DEBUG_OUTPUT(s) +#define YYDEBUG(s,c) +#endif + +#include "timelib_structs.h" + +typedef struct Scanner { + int fd; + uchar *lim, *str, *ptr, *cur, *tok, *pos; + unsigned int line, len; + struct timelib_error_container *errors; + + struct timelib_time *begin; + struct timelib_time *end; + struct timelib_rel_time *period; + int recurrences; + + int have_period; + int have_recurrences; + int have_date; + int have_begin_date; + int have_end_date; +} Scanner; + +#define HOUR(a) (int)(a * 60) + +static void add_warning(Scanner *s, char *error) +{ + s->errors->warning_count++; + s->errors->warning_messages = realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message)); + s->errors->warning_messages[s->errors->warning_count - 1].position = s->tok ? s->tok - s->str : 0; + s->errors->warning_messages[s->errors->warning_count - 1].character = s->tok ? *s->tok : 0; + s->errors->warning_messages[s->errors->warning_count - 1].message = strdup(error); +} + +static void add_error(Scanner *s, char *error) +{ + s->errors->error_count++; + s->errors->error_messages = realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message)); + s->errors->error_messages[s->errors->error_count - 1].position = s->tok ? s->tok - s->str : 0; + s->errors->error_messages[s->errors->error_count - 1].character = s->tok ? *s->tok : 0; + s->errors->error_messages[s->errors->error_count - 1].message = strdup(error); +} + +static char *timelib_string(Scanner *s) +{ + char *tmp = calloc(1, s->cur - s->tok + 1); + memcpy(tmp, s->tok, s->cur - s->tok); + + return tmp; +} + +static timelib_sll timelib_get_nr(char **ptr, int max_length) +{ + char *begin, *end, *str; + timelib_sll tmp_nr = TIMELIB_UNSET; + int len = 0; + + while ((**ptr < '0') || (**ptr > '9')) { + if (**ptr == '\0') { + return TIMELIB_UNSET; + } + ++*ptr; + } + begin = *ptr; + while ((**ptr >= '0') && (**ptr <= '9') && len < max_length) { + ++*ptr; + ++len; + } + end = *ptr; + str = calloc(1, end - begin + 1); + memcpy(str, begin, end - begin); + tmp_nr = strtoll(str, NULL, 10); + free(str); + return tmp_nr; +} + +static timelib_ull timelib_get_unsigned_nr(char **ptr, int max_length) +{ + timelib_ull dir = 1; + + while (((**ptr < '0') || (**ptr > '9')) && (**ptr != '+') && (**ptr != '-')) { + if (**ptr == '\0') { + return TIMELIB_UNSET; + } + ++*ptr; + } + + while (**ptr == '+' || **ptr == '-') + { + if (**ptr == '-') { + dir *= -1; + } + ++*ptr; + } + return dir * timelib_get_nr(ptr, max_length); +} + +static long timelib_parse_tz_cor(char **ptr) +{ + char *begin = *ptr, *end; + long tmp; + + while (isdigit(**ptr) || **ptr == ':') { + ++*ptr; + } + end = *ptr; + switch (end - begin) { + case 1: + case 2: + return HOUR(strtol(begin, NULL, 10)); + break; + case 3: + case 4: + if (begin[1] == ':') { + tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 2, NULL, 10); + return tmp; + } else if (begin[2] == ':') { + tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 3, NULL, 10); + return tmp; + } else { + tmp = strtol(begin, NULL, 10); + return HOUR(tmp / 100) + tmp % 100; + } + case 5: + tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 3, NULL, 10); + return tmp; + } + return 0; +} + +static void timelib_eat_spaces(char **ptr) +{ + while (**ptr == ' ' || **ptr == '\t') { + ++*ptr; + } +} + +static void timelib_eat_until_separator(char **ptr) +{ + while (strchr(" \t.,:;/-0123456789", **ptr) == NULL) { + ++*ptr; + } +} + +static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_found, const timelib_tzdb *tzdb) +{ + long retval = 0; + + *tz_not_found = 0; + + while (**ptr == ' ' || **ptr == '\t' || **ptr == '(') { + ++*ptr; + } + if ((*ptr)[0] == 'G' && (*ptr)[1] == 'M' && (*ptr)[2] == 'T' && ((*ptr)[3] == '+' || (*ptr)[3] == '-')) { + *ptr += 3; + } + if (**ptr == '+') { + ++*ptr; + t->is_localtime = 1; + t->zone_type = TIMELIB_ZONETYPE_OFFSET; + *tz_not_found = 0; + t->dst = 0; + + retval = -1 * timelib_parse_tz_cor(ptr); + } else if (**ptr == '-') { + ++*ptr; + t->is_localtime = 1; + t->zone_type = TIMELIB_ZONETYPE_OFFSET; + *tz_not_found = 0; + t->dst = 0; + + retval = timelib_parse_tz_cor(ptr); + } + while (**ptr == ')') { + ++*ptr; + } + return retval; +} + +#define timelib_split_free(arg) { \ + int i; \ + for (i = 0; i < arg.c; i++) { \ + free(arg.v[i]); \ + } \ + if (arg.v) { \ + free(arg.v); \ + } \ +} + +/* date parser's scan function too large for VC6 - VC7.x + drop the optimization solves the problem */ +#ifdef PHP_WIN32 +#pragma optimize( "", off ) +#endif +static int scan(Scanner *s) +{ + uchar *cursor = s->cur; + char *str, *ptr = NULL; + +std: + s->tok = cursor; + s->len = 0; +/*!re2c + +/* */ +any = [\000-\377]; +number = [0-9]+; + +hour24lz = [01][0-9] | "2"[0-4]; +minutelz = [0-5][0-9]; +monthlz = "0" [1-9] | "1" [0-2]; +monthlzz = "0" [0-9] | "1" [0-2]; +daylz = "0" [1-9] | [1-2][0-9] | "3" [01]; +daylzz = "0" [0-9] | [1-2][0-9] | "3" [01]; +secondlz = minutelz; +year4 = [0-9]{4}; +weekofyear = "0"[1-9] | [1-4][0-9] | "5"[0-3]; + +space = [ \t]+; +datetimebasic = year4 monthlz daylz "T" hour24lz minutelz secondlz "Z"; +datetimeextended = year4 "-" monthlz "-" daylz "T" hour24lz ':' minutelz ':' secondlz "Z"; +period = "P" (number "Y")? (number "M")? (number "W")? (number "D")? ("T" (number "H")? (number "M")? (number "S")?)?; +combinedrep = "P" year4 "-" monthlzz "-" daylzz "T" hour24lz ':' minutelz ':' secondlz; + +recurrences = "R" number; + +isoweekday = year4 "-"? "W" weekofyear "-"? [0-7]; +isoweek = year4 "-"? "W" weekofyear; + +*/ + +/*!re2c + /* so that vim highlights correctly */ + recurrences + { + DEBUG_OUTPUT("recurrences"); + TIMELIB_INIT; + ptr++; + s->recurrences = timelib_get_unsigned_nr((char **) &ptr, 9); + TIMELIB_DEINIT; + s->have_recurrences = 1; + return TIMELIB_PERIOD; + } + + datetimebasic| datetimeextended + { + timelib_time *current; + + if (s->have_date || s->have_period) { + current = s->end; + s->have_end_date = 1; + } else { + current = s->begin; + s->have_begin_date = 1; + } + DEBUG_OUTPUT("datetimebasic | datetimeextended"); + TIMELIB_INIT; + current->y = timelib_get_nr((char **) &ptr, 4); + current->m = timelib_get_nr((char **) &ptr, 2); + current->d = timelib_get_nr((char **) &ptr, 2); + current->h = timelib_get_nr((char **) &ptr, 2); + current->i = timelib_get_nr((char **) &ptr, 2); + current->s = timelib_get_nr((char **) &ptr, 2); + s->have_date = 1; + TIMELIB_DEINIT; + return TIMELIB_ISO_DATE; + } + + period + { + timelib_sll nr; + int in_time = 0; + DEBUG_OUTPUT("period"); + TIMELIB_INIT; + ptr++; + do { + if ( *ptr == 'T' ) { + in_time = 1; + ptr++; + } + if ( *ptr == '\0' ) { + add_error(s, "Missing expected time part"); + break; + } + + nr = timelib_get_unsigned_nr((char **) &ptr, 12); + switch (*ptr) { + case 'Y': s->period->y = nr; break; + case 'W': s->period->d = nr * 7; break; + case 'D': s->period->d = nr; break; + case 'H': s->period->h = nr; break; + case 'S': s->period->s = nr; break; + case 'M': + if (in_time) { + s->period->i = nr; + } else { + s->period->m = nr; + } + break; + default: + add_error(s, "Undefined period specifier"); + break; + } + ptr++; + } while (*ptr); + s->have_period = 1; + TIMELIB_DEINIT; + return TIMELIB_PERIOD; + } + + combinedrep + { + DEBUG_OUTPUT("combinedrep"); + TIMELIB_INIT; + s->period->y = timelib_get_unsigned_nr((char **) &ptr, 4); + ptr++; + s->period->m = timelib_get_unsigned_nr((char **) &ptr, 2); + ptr++; + s->period->d = timelib_get_unsigned_nr((char **) &ptr, 2); + ptr++; + s->period->h = timelib_get_unsigned_nr((char **) &ptr, 2); + ptr++; + s->period->i = timelib_get_unsigned_nr((char **) &ptr, 2); + ptr++; + s->period->s = timelib_get_unsigned_nr((char **) &ptr, 2); + s->have_period = 1; + TIMELIB_DEINIT; + return TIMELIB_PERIOD; + } + + [ .,\t/] + { + goto std; + } + + "\000"|"\n" + { + s->pos = cursor; s->line++; + goto std; + } + + any + { + add_error(s, "Unexpected character"); + goto std; + } +*/ +} +#ifdef PHP_WIN32 +#pragma optimize( "", on ) +#endif + +/*!max:re2c */ + +void timelib_strtointerval(char *s, int len, + timelib_time **begin, timelib_time **end, + timelib_rel_time **period, int *recurrences, + struct timelib_error_container **errors) +{ + Scanner in; + int t; + char *e = s + len - 1; + + memset(&in, 0, sizeof(in)); + in.errors = malloc(sizeof(struct timelib_error_container)); + in.errors->warning_count = 0; + in.errors->warning_messages = NULL; + in.errors->error_count = 0; + in.errors->error_messages = NULL; + + if (len > 0) { + while (isspace(*s) && s < e) { + s++; + } + while (isspace(*e) && e > s) { + e--; + } + } + if (e - s < 0) { + add_error(&in, "Empty string"); + if (errors) { + *errors = in.errors; + } else { + timelib_error_container_dtor(in.errors); + } + return; + } + e++; + + /* init cursor */ + in.str = malloc((e - s) + YYMAXFILL); + memset(in.str, 0, (e - s) + YYMAXFILL); + memcpy(in.str, s, (e - s)); + in.lim = in.str + (e - s) + YYMAXFILL; + in.cur = in.str; + + /* init value containers */ + in.begin = timelib_time_ctor(); + in.begin->y = TIMELIB_UNSET; + in.begin->d = TIMELIB_UNSET; + in.begin->m = TIMELIB_UNSET; + in.begin->h = TIMELIB_UNSET; + in.begin->i = TIMELIB_UNSET; + in.begin->s = TIMELIB_UNSET; + in.begin->f = 0; + in.begin->z = 0; + in.begin->dst = 0; + in.begin->is_localtime = 0; + in.begin->zone_type = TIMELIB_ZONETYPE_OFFSET; + + in.end = timelib_time_ctor(); + in.end->y = TIMELIB_UNSET; + in.end->d = TIMELIB_UNSET; + in.end->m = TIMELIB_UNSET; + in.end->h = TIMELIB_UNSET; + in.end->i = TIMELIB_UNSET; + in.end->s = TIMELIB_UNSET; + in.end->f = 0; + in.end->z = 0; + in.end->dst = 0; + in.end->is_localtime = 0; + in.end->zone_type = TIMELIB_ZONETYPE_OFFSET; + + in.period = timelib_rel_time_ctor(); + in.period->y = 0; + in.period->d = 0; + in.period->m = 0; + in.period->h = 0; + in.period->i = 0; + in.period->s = 0; + in.period->weekday = 0; + in.period->weekday_behavior = 0; + in.period->first_last_day_of = 0; + in.period->days = TIMELIB_UNSET; + + in.recurrences = 1; + + do { + t = scan(&in); +#ifdef DEBUG_PARSER + printf("%d\n", t); +#endif + } while(t != EOI); + + free(in.str); + if (errors) { + *errors = in.errors; + } else { + timelib_error_container_dtor(in.errors); + } + if (in.have_begin_date) { + *begin = in.begin; + } else { + timelib_time_dtor(in.begin); + } + if (in.have_end_date) { + *end = in.end; + } else { + timelib_time_dtor(in.end); + } + if (in.have_period) { + *period = in.period; + } else { + timelib_rel_time_dtor(in.period); + } + if (in.have_recurrences) { + *recurrences = in.recurrences; + } +} + + +/* + * vim: syntax=c + */ diff --git a/ext/date/lib/parse_tz.c b/ext/date/lib/parse_tz.c new file mode 100644 index 0000000..d3abf84 --- /dev/null +++ b/ext/date/lib/parse_tz.c @@ -0,0 +1,457 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#include "timelib.h" + +#include + +#ifdef HAVE_LOCALE_H +#include +#endif + +#ifdef HAVE_STRING_H +#include +#else +#include +#endif +#include "timezonedb.h" + +#if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__)) +# if defined(__LITTLE_ENDIAN__) +# undef WORDS_BIGENDIAN +# else +# if defined(__BIG_ENDIAN__) +# define WORDS_BIGENDIAN +# endif +# endif +#endif + +#ifdef WORDS_BIGENDIAN +#define timelib_conv_int(l) (l) +#else +#define timelib_conv_int(l) ((l & 0x000000ff) << 24) + ((l & 0x0000ff00) << 8) + ((l & 0x00ff0000) >> 8) + ((l & 0xff000000) >> 24) +#endif + +static void read_preamble(const unsigned char **tzf, timelib_tzinfo *tz) +{ + /* skip ID */ + *tzf += 4; + + /* read BC flag */ + tz->bc = (**tzf == '\1'); + *tzf += 1; + + /* read country code */ + memcpy(tz->location.country_code, *tzf, 2); + tz->location.country_code[2] = '\0'; + *tzf += 2; + + /* skip read of preamble */ + *tzf += 13; +} + +static void read_header(const unsigned char **tzf, timelib_tzinfo *tz) +{ + uint32_t buffer[6]; + + memcpy(&buffer, *tzf, sizeof(buffer)); + tz->ttisgmtcnt = timelib_conv_int(buffer[0]); + tz->ttisstdcnt = timelib_conv_int(buffer[1]); + tz->leapcnt = timelib_conv_int(buffer[2]); + tz->timecnt = timelib_conv_int(buffer[3]); + tz->typecnt = timelib_conv_int(buffer[4]); + tz->charcnt = timelib_conv_int(buffer[5]); + *tzf += sizeof(buffer); +} + +static void read_transistions(const unsigned char **tzf, timelib_tzinfo *tz) +{ + int32_t *buffer = NULL; + uint32_t i; + unsigned char *cbuffer = NULL; + + if (tz->timecnt) { + buffer = (int32_t*) malloc(tz->timecnt * sizeof(int32_t)); + if (!buffer) { + return; + } + memcpy(buffer, *tzf, sizeof(int32_t) * tz->timecnt); + *tzf += (sizeof(int32_t) * tz->timecnt); + for (i = 0; i < tz->timecnt; i++) { + buffer[i] = timelib_conv_int(buffer[i]); + } + + cbuffer = (unsigned char*) malloc(tz->timecnt * sizeof(unsigned char)); + if (!cbuffer) { + free(buffer); + return; + } + memcpy(cbuffer, *tzf, sizeof(unsigned char) * tz->timecnt); + *tzf += sizeof(unsigned char) * tz->timecnt; + } + + tz->trans = buffer; + tz->trans_idx = cbuffer; +} + +static void read_types(const unsigned char **tzf, timelib_tzinfo *tz) +{ + unsigned char *buffer; + int32_t *leap_buffer; + unsigned int i, j; + + buffer = (unsigned char*) malloc(tz->typecnt * sizeof(unsigned char) * 6); + if (!buffer) { + return; + } + memcpy(buffer, *tzf, sizeof(unsigned char) * 6 * tz->typecnt); + *tzf += sizeof(unsigned char) * 6 * tz->typecnt; + + tz->type = (ttinfo*) malloc(tz->typecnt * sizeof(struct ttinfo)); + if (!tz->type) { + free(buffer); + return; + } + + for (i = 0; i < tz->typecnt; i++) { + j = i * 6; + tz->type[i].offset = (buffer[j] * 16777216) + (buffer[j + 1] * 65536) + (buffer[j + 2] * 256) + buffer[j + 3]; + tz->type[i].isdst = buffer[j + 4]; + tz->type[i].abbr_idx = buffer[j + 5]; + } + free(buffer); + + tz->timezone_abbr = (char*) malloc(tz->charcnt); + if (!tz->timezone_abbr) { + return; + } + memcpy(tz->timezone_abbr, *tzf, sizeof(char) * tz->charcnt); + *tzf += sizeof(char) * tz->charcnt; + + if (tz->leapcnt) { + leap_buffer = (int32_t *) malloc(tz->leapcnt * 2 * sizeof(int32_t)); + if (!leap_buffer) { + return; + } + memcpy(leap_buffer, *tzf, sizeof(int32_t) * tz->leapcnt * 2); + *tzf += sizeof(int32_t) * tz->leapcnt * 2; + + tz->leap_times = (tlinfo*) malloc(tz->leapcnt * sizeof(tlinfo)); + if (!tz->leap_times) { + free(leap_buffer); + return; + } + for (i = 0; i < tz->leapcnt; i++) { + tz->leap_times[i].trans = timelib_conv_int(leap_buffer[i * 2]); + tz->leap_times[i].offset = timelib_conv_int(leap_buffer[i * 2 + 1]); + } + free(leap_buffer); + } + + if (tz->ttisstdcnt) { + buffer = (unsigned char*) malloc(tz->ttisstdcnt * sizeof(unsigned char)); + if (!buffer) { + return; + } + memcpy(buffer, *tzf, sizeof(unsigned char) * tz->ttisstdcnt); + *tzf += sizeof(unsigned char) * tz->ttisstdcnt; + + for (i = 0; i < tz->ttisstdcnt; i++) { + tz->type[i].isstdcnt = buffer[i]; + } + free(buffer); + } + + if (tz->ttisgmtcnt) { + buffer = (unsigned char*) malloc(tz->ttisgmtcnt * sizeof(unsigned char)); + if (!buffer) { + return; + } + memcpy(buffer, *tzf, sizeof(unsigned char) * tz->ttisgmtcnt); + *tzf += sizeof(unsigned char) * tz->ttisgmtcnt; + + for (i = 0; i < tz->ttisgmtcnt; i++) { + tz->type[i].isgmtcnt = buffer[i]; + } + free(buffer); + } +} + +static void read_location(const unsigned char **tzf, timelib_tzinfo *tz) +{ + uint32_t buffer[3]; + uint32_t comments_len; + + memcpy(&buffer, *tzf, sizeof(buffer)); + tz->location.latitude = timelib_conv_int(buffer[0]); + tz->location.latitude = (tz->location.latitude / 100000) - 90; + tz->location.longitude = timelib_conv_int(buffer[1]); + tz->location.longitude = (tz->location.longitude / 100000) - 180; + comments_len = timelib_conv_int(buffer[2]); + *tzf += sizeof(buffer); + + tz->location.comments = malloc(comments_len + 1); + memcpy(tz->location.comments, *tzf, comments_len); + tz->location.comments[comments_len] = '\0'; + *tzf += comments_len; +} + +void timelib_dump_tzinfo(timelib_tzinfo *tz) +{ + uint32_t i; + + printf("Country Code: %s\n", tz->location.country_code); + printf("Geo Location: %f,%f\n", tz->location.latitude, tz->location.longitude); + printf("Comments:\n%s\n", tz->location.comments); + printf("BC: %s\n", tz->bc ? "" : "yes"); + printf("UTC/Local count: %lu\n", (unsigned long) tz->ttisgmtcnt); + printf("Std/Wall count: %lu\n", (unsigned long) tz->ttisstdcnt); + printf("Leap.sec. count: %lu\n", (unsigned long) tz->leapcnt); + printf("Trans. count: %lu\n", (unsigned long) tz->timecnt); + printf("Local types count: %lu\n", (unsigned long) tz->typecnt); + printf("Zone Abbr. count: %lu\n", (unsigned long) tz->charcnt); + + printf ("%8s (%12s) = %3d [%5ld %1d %3d '%s' (%d,%d)]\n", + "", "", 0, + (long int) tz->type[0].offset, + tz->type[0].isdst, + tz->type[0].abbr_idx, + &tz->timezone_abbr[tz->type[0].abbr_idx], + tz->type[0].isstdcnt, + tz->type[0].isgmtcnt + ); + for (i = 0; i < tz->timecnt; i++) { + printf ("%08X (%12d) = %3d [%5ld %1d %3d '%s' (%d,%d)]\n", + tz->trans[i], tz->trans[i], tz->trans_idx[i], + (long int) tz->type[tz->trans_idx[i]].offset, + tz->type[tz->trans_idx[i]].isdst, + tz->type[tz->trans_idx[i]].abbr_idx, + &tz->timezone_abbr[tz->type[tz->trans_idx[i]].abbr_idx], + tz->type[tz->trans_idx[i]].isstdcnt, + tz->type[tz->trans_idx[i]].isgmtcnt + ); + } + for (i = 0; i < tz->leapcnt; i++) { + printf ("%08X (%12ld) = %d\n", + tz->leap_times[i].trans, + (long) tz->leap_times[i].trans, + tz->leap_times[i].offset); + } +} + +static int seek_to_tz_position(const unsigned char **tzf, char *timezone, const timelib_tzdb *tzdb) +{ + int left = 0, right = tzdb->index_size - 1; +#ifdef HAVE_SETLOCALE + char *cur_locale = NULL, *tmp; + + tmp = setlocale(LC_CTYPE, NULL); + if (tmp) { + cur_locale = strdup(tmp); + } + setlocale(LC_CTYPE, "C"); +#endif + + do { + int mid = ((unsigned)left + right) >> 1; + int cmp = strcasecmp(timezone, tzdb->index[mid].id); + + if (cmp < 0) { + right = mid - 1; + } else if (cmp > 0) { + left = mid + 1; + } else { /* (cmp == 0) */ + (*tzf) = &(tzdb->data[tzdb->index[mid].pos]); +#ifdef HAVE_SETLOCALE + setlocale(LC_CTYPE, cur_locale); + if (cur_locale) free(cur_locale); +#endif + return 1; + } + + } while (left <= right); + +#ifdef HAVE_SETLOCALE + setlocale(LC_CTYPE, cur_locale); + if (cur_locale) free(cur_locale); +#endif + return 0; +} + +const timelib_tzdb *timelib_builtin_db(void) +{ + return &timezonedb_builtin; +} + +const timelib_tzdb_index_entry *timelib_timezone_builtin_identifiers_list(int *count) +{ + *count = sizeof(timezonedb_idx_builtin) / sizeof(*timezonedb_idx_builtin); + return timezonedb_idx_builtin; +} + +int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb) +{ + const unsigned char *tzf; + return (seek_to_tz_position(&tzf, timezone, tzdb)); +} + +timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb) +{ + const unsigned char *tzf; + timelib_tzinfo *tmp; + + if (seek_to_tz_position(&tzf, timezone, tzdb)) { + tmp = timelib_tzinfo_ctor(timezone); + + read_preamble(&tzf, tmp); + read_header(&tzf, tmp); + read_transistions(&tzf, tmp); + read_types(&tzf, tmp); + read_location(&tzf, tmp); + } else { + tmp = NULL; + } + + return tmp; +} + +static ttinfo* fetch_timezone_offset(timelib_tzinfo *tz, timelib_sll ts, timelib_sll *transition_time) +{ + uint32_t i; + + /* If there is no transistion time, we pick the first one, if that doesn't + * exist we return NULL */ + if (!tz->timecnt || !tz->trans) { + *transition_time = 0; + if (tz->typecnt == 1) { + return &(tz->type[0]); + } + return NULL; + } + + /* If the TS is lower than the first transistion time, then we scan over + * all the transistion times to find the first non-DST one, or the first + * one in case there are only DST entries. Not sure which smartass came up + * with this idea in the first though :) */ + if (ts < tz->trans[0]) { + uint32_t j; + + *transition_time = 0; + j = 0; + while (j < tz->timecnt && tz->type[j].isdst) { + ++j; + } + if (j == tz->timecnt) { + j = 0; + } + return &(tz->type[j]); + } + + /* In all other cases we loop through the available transtion times to find + * the correct entry */ + for (i = 0; i < tz->timecnt; i++) { + if (ts < tz->trans[i]) { + *transition_time = tz->trans[i - 1]; + return &(tz->type[tz->trans_idx[i - 1]]); + } + } + *transition_time = tz->trans[tz->timecnt - 1]; + return &(tz->type[tz->trans_idx[tz->timecnt - 1]]); +} + +static tlinfo* fetch_leaptime_offset(timelib_tzinfo *tz, timelib_sll ts) +{ + int i; + + if (!tz->leapcnt || !tz->leap_times) { + return NULL; + } + + for (i = tz->leapcnt - 1; i > 0; i--) { + if (ts > tz->leap_times[i].trans) { + return &(tz->leap_times[i]); + } + } + return NULL; +} + +int timelib_timestamp_is_in_dst(timelib_sll ts, timelib_tzinfo *tz) +{ + ttinfo *to; + timelib_sll dummy; + + if ((to = fetch_timezone_offset(tz, ts, &dummy))) { + return to->isdst; + } + return -1; +} + +timelib_time_offset *timelib_get_time_zone_info(timelib_sll ts, timelib_tzinfo *tz) +{ + ttinfo *to; + tlinfo *tl; + int32_t offset = 0, leap_secs = 0; + char *abbr; + timelib_time_offset *tmp = timelib_time_offset_ctor(); + timelib_sll transistion_time; + + if ((to = fetch_timezone_offset(tz, ts, &transistion_time))) { + offset = to->offset; + abbr = &(tz->timezone_abbr[to->abbr_idx]); + tmp->is_dst = to->isdst; + tmp->transistion_time = transistion_time; + } else { + offset = 0; + abbr = tz->timezone_abbr; + tmp->is_dst = 0; + tmp->transistion_time = 0; + } + + if ((tl = fetch_leaptime_offset(tz, ts))) { + leap_secs = -tl->offset; + } + + tmp->offset = offset; + tmp->leap_secs = leap_secs; + tmp->abbr = abbr ? strdup(abbr) : strdup("GMT"); + + return tmp; +} + +timelib_sll timelib_get_current_offset(timelib_time *t) +{ + timelib_time_offset *gmt_offset; + timelib_sll retval; + + switch (t->zone_type) { + case TIMELIB_ZONETYPE_ABBR: + case TIMELIB_ZONETYPE_OFFSET: + return (t->z + t->dst) * -60; + + case TIMELIB_ZONETYPE_ID: + gmt_offset = timelib_get_time_zone_info(t->sse, t->tz_info); + retval = gmt_offset->offset; + timelib_time_offset_dtor(gmt_offset); + return retval; + + default: + return 0; + } +} diff --git a/ext/date/lib/timelib.c b/ext/date/lib/timelib.c new file mode 100644 index 0000000..2f457a9 --- /dev/null +++ b/ext/date/lib/timelib.c @@ -0,0 +1,286 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#include "timelib.h" +#include +#include + +#define TIMELIB_TIME_FREE(m) \ + if (m) { \ + free(m); \ + m = NULL; \ + } \ + +#define TIMELIB_LLABS(y) (y < 0 ? (y * -1) : y) + +timelib_time* timelib_time_ctor(void) +{ + timelib_time *t; + t = calloc(1, sizeof(timelib_time)); + + return t; +} + +timelib_rel_time* timelib_rel_time_ctor(void) +{ + timelib_rel_time *t; + t = calloc(1, sizeof(timelib_rel_time)); + + return t; +} + +timelib_time* timelib_time_clone(timelib_time *orig) +{ + timelib_time *tmp = timelib_time_ctor(); + memcpy(tmp, orig, sizeof(timelib_time)); + if (orig->tz_abbr) { + tmp->tz_abbr = strdup(orig->tz_abbr); + } + if (orig->tz_info) { + tmp->tz_info = orig->tz_info; + } + return tmp; +} + +timelib_rel_time* timelib_rel_time_clone(timelib_rel_time *rel) +{ + timelib_rel_time *tmp = timelib_rel_time_ctor(); + memcpy(tmp, rel, sizeof(timelib_rel_time)); + return tmp; +} + +void timelib_time_tz_abbr_update(timelib_time* tm, char* tz_abbr) +{ + unsigned int i; + + TIMELIB_TIME_FREE(tm->tz_abbr); + tm->tz_abbr = strdup(tz_abbr); + for (i = 0; i < strlen(tz_abbr); i++) { + tm->tz_abbr[i] = toupper(tz_abbr[i]); + } +} + +void timelib_time_dtor(timelib_time* t) +{ + TIMELIB_TIME_FREE(t->tz_abbr); + TIMELIB_TIME_FREE(t); +} + +void timelib_rel_time_dtor(timelib_rel_time* t) +{ + TIMELIB_TIME_FREE(t); +} + +timelib_time_offset* timelib_time_offset_ctor(void) +{ + timelib_time_offset *t; + t = calloc(1, sizeof(timelib_time_offset)); + + return t; +} + +void timelib_time_offset_dtor(timelib_time_offset* t) +{ + TIMELIB_TIME_FREE(t->abbr); + TIMELIB_TIME_FREE(t); +} + +timelib_tzinfo* timelib_tzinfo_ctor(char *name) +{ + timelib_tzinfo *t; + t = calloc(1, sizeof(timelib_tzinfo)); + t->name = strdup(name); + + return t; +} + +timelib_tzinfo *timelib_tzinfo_clone(timelib_tzinfo *tz) +{ + timelib_tzinfo *tmp = timelib_tzinfo_ctor(tz->name); + tmp->ttisgmtcnt = tz->ttisgmtcnt; + tmp->ttisstdcnt = tz->ttisstdcnt; + tmp->leapcnt = tz->leapcnt; + tmp->timecnt = tz->timecnt; + tmp->typecnt = tz->typecnt; + tmp->charcnt = tz->charcnt; + + tmp->trans = (int32_t *) malloc(tz->timecnt * sizeof(int32_t)); + tmp->trans_idx = (unsigned char*) malloc(tz->timecnt * sizeof(unsigned char)); + memcpy(tmp->trans, tz->trans, tz->timecnt * sizeof(int32_t)); + memcpy(tmp->trans_idx, tz->trans_idx, tz->timecnt * sizeof(unsigned char)); + + tmp->type = (ttinfo*) malloc(tz->typecnt * sizeof(struct ttinfo)); + memcpy(tmp->type, tz->type, tz->typecnt * sizeof(struct ttinfo)); + + tmp->timezone_abbr = (char*) malloc(tz->charcnt); + memcpy(tmp->timezone_abbr, tz->timezone_abbr, tz->charcnt); + + tmp->leap_times = (tlinfo*) malloc(tz->leapcnt * sizeof(tlinfo)); + memcpy(tmp->leap_times, tz->leap_times, tz->leapcnt * sizeof(tlinfo)); + + return tmp; +} + +void timelib_tzinfo_dtor(timelib_tzinfo *tz) +{ + TIMELIB_TIME_FREE(tz->name); + TIMELIB_TIME_FREE(tz->trans); + TIMELIB_TIME_FREE(tz->trans_idx); + TIMELIB_TIME_FREE(tz->type); + TIMELIB_TIME_FREE(tz->timezone_abbr); + TIMELIB_TIME_FREE(tz->leap_times); + TIMELIB_TIME_FREE(tz->location.comments); + TIMELIB_TIME_FREE(tz); + tz = NULL; +} + +char *timelib_get_tz_abbr_ptr(timelib_time *t) +{ + if (!t->sse_uptodate) { + timelib_update_ts(t, NULL); + }; + return t->tz_abbr; +} + +void timelib_error_container_dtor(timelib_error_container *errors) +{ + int i; + + for (i = 0; i < errors->warning_count; i++) { + free(errors->warning_messages[i].message); + } + free(errors->warning_messages); + for (i = 0; i < errors->error_count; i++) { + free(errors->error_messages[i].message); + } + free(errors->error_messages); + free(errors); +} + +signed long timelib_date_to_int(timelib_time *d, int *error) +{ + timelib_sll ts; + + ts = d->sse; + + if (ts < LONG_MIN || ts > LONG_MAX) { + if (error) { + *error = 1; + } + return 0; + } + if (error) { + *error = 0; + } + return (signed long) d->sse; +} + +void timelib_decimal_hour_to_hms(double h, int *hour, int *min, int *sec) +{ + *hour = floor(h); + *min = floor((h - *hour) * 60); + *sec = (h - *hour - ((float) *min / 60)) * 3600; +} + +void timelib_dump_date(timelib_time *d, int options) +{ + if ((options & 2) == 2) { + printf("TYPE: %d ", d->zone_type); + } + printf("TS: %lld | %s%04lld-%02lld-%02lld %02lld:%02lld:%02lld", + d->sse, d->y < 0 ? "-" : "", TIMELIB_LLABS(d->y), d->m, d->d, d->h, d->i, d->s); + if (d->f > +0.0) { + printf(" %.5f", d->f); + } + + if (d->is_localtime) { + switch (d->zone_type) { + case TIMELIB_ZONETYPE_OFFSET: /* Only offset */ + printf(" GMT %05d%s", d->z, d->dst == 1 ? " (DST)" : ""); + break; + case TIMELIB_ZONETYPE_ID: /* Timezone struct */ + /* Show abbreviation if wanted */ + if (d->tz_abbr) { + printf(" %s", d->tz_abbr); + } + /* Do we have a TimeZone struct? */ + if (d->tz_info) { + printf(" %s", d->tz_info->name); + } + break; + case TIMELIB_ZONETYPE_ABBR: + printf(" %s", d->tz_abbr); + printf(" %05d%s", d->z, d->dst == 1 ? " (DST)" : ""); + break; + } + } + + if ((options & 1) == 1) { + if (d->have_relative) { + printf("%3lldY %3lldM %3lldD / %3lldH %3lldM %3lldS", + d->relative.y, d->relative.m, d->relative.d, d->relative.h, d->relative.i, d->relative.s); + if (d->relative.first_last_day_of != 0) { + switch (d->relative.first_last_day_of) { + case 1: + printf(" / first day of"); + break; + case 2: + printf(" / last day of"); + break; + } + } + if (d->relative.have_weekday_relative) { + printf(" / %d.%d", d->relative.weekday, d->relative.weekday_behavior); + } + if (d->relative.have_special_relative) { + switch (d->relative.special.type) { + case TIMELIB_SPECIAL_WEEKDAY: + printf(" / %lld weekday", d->relative.special.amount); + break; + case TIMELIB_SPECIAL_DAY_OF_WEEK_IN_MONTH: + printf(" / x y of z month"); + break; + case TIMELIB_SPECIAL_LAST_DAY_OF_WEEK_IN_MONTH: + printf(" / last y of z month"); + break; + } + } + } + } + printf("\n"); +} + +void timelib_dump_rel_time(timelib_rel_time *d) +{ + printf("%3lldY %3lldM %3lldD / %3lldH %3lldM %3lldS (days: %lld)%s", + d->y, d->m, d->d, d->h, d->i, d->s, d->days, d->invert ? " inverted" : ""); + if (d->first_last_day_of != 0) { + switch (d->first_last_day_of) { + case 1: + printf(" / first day of"); + break; + case 2: + printf(" / last day of"); + break; + } + } + printf("\n"); +} + diff --git a/ext/date/lib/timelib.h b/ext/date/lib/timelib.h new file mode 100644 index 0000000..478dec3 --- /dev/null +++ b/ext/date/lib/timelib.h @@ -0,0 +1,140 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#ifndef __TIMELIB_H__ +#define __TIMELIB_H__ + +#include "timelib_structs.h" +#if HAVE_LIMITS_H +#include +#endif + +#define TIMELIB_VERSION 201102 + +#define TIMELIB_NONE 0x00 +#define TIMELIB_OVERRIDE_TIME 0x01 +#define TIMELIB_NO_CLONE 0x02 + +#define TIMELIB_UNSET -99999 + +#define TIMELIB_SPECIAL_WEEKDAY 0x01 +#define TIMELIB_SPECIAL_DAY_OF_WEEK_IN_MONTH 0x02 +#define TIMELIB_SPECIAL_LAST_DAY_OF_WEEK_IN_MONTH 0x03 + +#ifndef LONG_MAX +#define LONG_MAX 2147483647L +#endif + +#ifndef LONG_MIN +#define LONG_MIN (- LONG_MAX - 1) +#endif + +#if defined(_MSC_VER) && !defined(strcasecmp) +#define strcasecmp stricmp +#endif + +#if defined(_MSC_VER) && !defined(strncasecmp) +#define strncasecmp strnicmp +#endif + +/* Function pointers */ +typedef timelib_tzinfo* (*timelib_tz_get_wrapper)(char *tzname, const timelib_tzdb *tzdb); + +/* From dow.c */ +timelib_sll timelib_day_of_week(timelib_sll y, timelib_sll m, timelib_sll d); +timelib_sll timelib_iso_day_of_week(timelib_sll y, timelib_sll m, timelib_sll d); +timelib_sll timelib_day_of_year(timelib_sll y, timelib_sll m, timelib_sll d); +timelib_sll timelib_daynr_from_weeknr(timelib_sll y, timelib_sll w, timelib_sll d); +timelib_sll timelib_days_in_month(timelib_sll y, timelib_sll m); +void timelib_isoweek_from_date(timelib_sll y, timelib_sll m, timelib_sll d, timelib_sll *iw, timelib_sll *iy); +int timelib_valid_time(timelib_sll h, timelib_sll i, timelib_sll s); +int timelib_valid_date(timelib_sll y, timelib_sll m, timelib_sll d); + +/* From parse_date.re */ +timelib_time *timelib_strtotime(char *s, int len, timelib_error_container **errors, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_get_wrapper); +timelib_time *timelib_parse_from_format(char *format, char *s, int len, timelib_error_container **errors, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_get_wrapper); +void timelib_fill_holes(timelib_time *parsed, timelib_time *now, int options); +char *timelib_timezone_id_from_abbr(const char *abbr, long gmtoffset, int isdst); +const timelib_tz_lookup_table *timelib_timezone_abbreviations_list(void); + +/* From parse_iso_intervals.re */ +void timelib_strtointerval(char *s, int len, + timelib_time **begin, timelib_time **end, + timelib_rel_time **period, int *recurrences, + struct timelib_error_container **errors); + + +/* From tm2unixtime.c */ +void timelib_update_ts(timelib_time* time, timelib_tzinfo* tzi); +void timelib_do_normalize(timelib_time *base); +void timelib_do_rel_normalize(timelib_time *base, timelib_rel_time *rt); + +/* From unixtime2tm.c */ +int timelib_apply_localtime(timelib_time *t, unsigned int localtime); +void timelib_unixtime2gmt(timelib_time* tm, timelib_sll ts); +void timelib_unixtime2local(timelib_time *tm, timelib_sll ts); +void timelib_update_from_sse(timelib_time *tm); +void timelib_set_timezone(timelib_time *t, timelib_tzinfo *tz); + +/* From parse_tz.c */ +int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb); +timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb); +int timelib_timestamp_is_in_dst(timelib_sll ts, timelib_tzinfo *tz); +timelib_time_offset *timelib_get_time_zone_info(timelib_sll ts, timelib_tzinfo *tz); +timelib_sll timelib_get_current_offset(timelib_time *t); +void timelib_dump_tzinfo(timelib_tzinfo *tz); +const timelib_tzdb *timelib_builtin_db(void); +const timelib_tzdb_index_entry *timelib_timezone_builtin_identifiers_list(int *count); + +/* From timelib.c */ +timelib_tzinfo* timelib_tzinfo_ctor(char *name); +void timelib_time_tz_abbr_update(timelib_time* tm, char* tz_abbr); +void timelib_time_tz_name_update(timelib_time* tm, char* tz_name); +void timelib_tzinfo_dtor(timelib_tzinfo *tz); +timelib_tzinfo* timelib_tzinfo_clone(timelib_tzinfo *tz); + +timelib_rel_time* timelib_rel_time_ctor(void); +void timelib_rel_time_dtor(timelib_rel_time* t); +timelib_rel_time* timelib_rel_time_clone(timelib_rel_time *tz); + +timelib_time* timelib_time_ctor(void); +void timelib_time_set_option(timelib_time* tm, int option, void* option_value); +void timelib_time_dtor(timelib_time* t); +timelib_time* timelib_time_clone(timelib_time* orig); + +timelib_time_offset* timelib_time_offset_ctor(void); +void timelib_time_offset_dtor(timelib_time_offset* t); + +void timelib_error_container_dtor(timelib_error_container *errors); + +signed long timelib_date_to_int(timelib_time *d, int *error); +void timelib_dump_date(timelib_time *d, int options); +void timelib_dump_rel_time(timelib_rel_time *d); + +void timelib_decimal_hour_to_hms(double h, int *hour, int *min, int *sec); + +/* from astro.c */ +double timelib_ts_to_juliandate(timelib_sll ts); +int timelib_astro_rise_set_altitude(timelib_time *time, double lon, double lat, double altit, int upper_limb, double *h_rise, double *h_set, timelib_sll *ts_rise, timelib_sll *ts_set, timelib_sll *ts_transit); + +/* from interval.c */ +timelib_rel_time *timelib_diff(timelib_time *one, timelib_time *two); + +#endif diff --git a/ext/date/lib/timelib.m4 b/ext/date/lib/timelib.m4 new file mode 100644 index 0000000..c725572 --- /dev/null +++ b/ext/date/lib/timelib.m4 @@ -0,0 +1,80 @@ +dnl +dnl $Id$ +dnl +dnl +dnl TL_DEF_HAVE(what [, why]) +dnl +dnl Generates 'AC_DEFINE(HAVE_WHAT, 1, [WHY])' +dnl +AC_DEFUN([TL_DEF_HAVE],[AC_DEFINE([HAVE_]translit($1,a-z_.-,A-Z___),1,[ $2 ])])dnl + +dnl +dnl TL_CHECK_INT_TYPE(type) +dnl +AC_DEFUN([TL_CHECK_INT_TYPE],[ +AC_CACHE_CHECK([for $1], ac_cv_int_type_$1, [ +AC_TRY_COMPILE([ +#if HAVE_SYS_TYPES_H +# include +#endif +#if HAVE_INTTYPES_H +# include +#elif HAVE_STDINT_H +# include +#endif], +[if (($1 *) 0) + return 0; +if (sizeof ($1)) + return 0; +], [ac_cv_int_type_$1=yes], [ac_cv_int_type_$1=no]) +]) +if test "$ac_cv_int_type_$1" = "yes"; then + TL_DEF_HAVE($1, [Define if $1 type is present.]) +fi +])dnl + +dnl +dnl AC_TIMELIB_C_BIGENDIAN +dnl Replacement macro for AC_C_BIGENDIAN +dnl +AC_DEFUN([AC_TIMELIB_C_BIGENDIAN], +[AC_CACHE_CHECK([whether byte ordering is bigendian], ac_cv_c_bigendian_php, + [ + ac_cv_c_bigendian_php=unknown + AC_TRY_RUN( + [ +int main(void) +{ + short one = 1; + char *cp = (char *)&one; + + if (*cp == 0) { + return(0); + } else { + return(1); + } +} + ], [ac_cv_c_bigendian_php=yes], [ac_cv_c_bigendian_php=no], [ac_cv_c_bigendian_php=unknown]) + ]) + if test $ac_cv_c_bigendian_php = yes; then + AC_DEFINE(WORDS_BIGENDIAN, [], [Define if processor uses big-endian word]) + fi +])dnl + +dnl Check for types, sizes, etc. needed by timelib +AC_CHECK_SIZEOF(long, 8) +AC_CHECK_SIZEOF(int, 4) +TL_CHECK_INT_TYPE(int32_t) +TL_CHECK_INT_TYPE(uint32_t) + +dnl Check for headers needed by timelib +AC_CHECK_HEADERS([ \ +sys/types.h \ +inttypes.h \ +stdint.h \ +string.h \ +stdlib.h +]) + +dnl Check for strtoll, atoll +AC_CHECK_FUNCS(strtoll atoll strftime) diff --git a/ext/date/lib/timelib_config.h.win32 b/ext/date/lib/timelib_config.h.win32 new file mode 100755 index 0000000..379b390 --- /dev/null +++ b/ext/date/lib/timelib_config.h.win32 @@ -0,0 +1 @@ +# include "config.w32.h" diff --git a/ext/date/lib/timelib_structs.h b/ext/date/lib/timelib_structs.h new file mode 100644 index 0000000..a3d7793 --- /dev/null +++ b/ext/date/lib/timelib_structs.h @@ -0,0 +1,223 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#ifndef __TIMELIB_STRUCTS_H__ +#define __TIMELIB_STRUCTS_H__ + +#include "timelib_config.h" + +#ifdef HAVE_SYS_TYPES_H +#include +#endif + +#if defined(HAVE_INTTYPES_H) +#include +#elif defined(HAVE_STDINT_H) +#include +#endif + +#ifdef PHP_WIN32 +/* TODO: Remove these hacks/defs once we have the int definitions in main/ + rathen than in each 2nd extension and win32/ */ +# include "win32/php_stdint.h" +#else +# ifndef HAVE_INT32_T +# if SIZEOF_INT == 4 +typedef int int32_t; +# elif SIZEOF_LONG == 4 +typedef long int int32_t; +# endif +# endif + +# ifndef HAVE_UINT32_T +# if SIZEOF_INT == 4 +typedef unsigned int uint32_t; +# elif SIZEOF_LONG == 4 +typedef unsigned long int uint32_t; +# endif +# endif +#endif + +#include + +#ifdef HAVE_STDLIB_H +#include +#endif + +#ifdef HAVE_STRING_H +#include +#else +#include +#endif + +#if defined(_MSC_VER) +typedef uint64_t timelib_ull; +typedef int64_t timelib_sll; +# define TIMELIB_LL_CONST(n) n ## i64 +#else +typedef unsigned long long timelib_ull; +typedef signed long long timelib_sll; +# define TIMELIB_LL_CONST(n) n ## ll +#endif + +typedef struct ttinfo +{ + int32_t offset; + int isdst; + unsigned int abbr_idx; + + unsigned int isstdcnt; + unsigned int isgmtcnt; +} ttinfo; + +typedef struct tlinfo +{ + int32_t trans; + int32_t offset; +} tlinfo; + +typedef struct tlocinfo +{ + char country_code[3]; + double latitude; + double longitude; + char *comments; +} tlocinfo; + +typedef struct timelib_tzinfo +{ + char *name; + uint32_t ttisgmtcnt; + uint32_t ttisstdcnt; + uint32_t leapcnt; + uint32_t timecnt; + uint32_t typecnt; + uint32_t charcnt; + + int32_t *trans; + unsigned char *trans_idx; + + ttinfo *type; + char *timezone_abbr; + + tlinfo *leap_times; + unsigned char bc; + tlocinfo location; +} timelib_tzinfo; + +typedef struct timelib_special { + unsigned int type; + timelib_sll amount; +} timelib_special; + +typedef struct timelib_rel_time { + timelib_sll y, m, d; /* Years, Months and Days */ + timelib_sll h, i, s; /* Hours, mInutes and Seconds */ + + int weekday; /* Stores the day in 'next monday' */ + int weekday_behavior; /* 0: the current day should *not* be counted when advancing forwards; 1: the current day *should* be counted */ + + int first_last_day_of; + int invert; /* Whether the difference should be inverted */ + timelib_sll days; /* Contains the number of *days*, instead of Y-M-D differences */ + + timelib_special special; + unsigned int have_weekday_relative, have_special_relative; +} timelib_rel_time; + +typedef struct timelib_time_offset { + int32_t offset; + unsigned int leap_secs; + unsigned int is_dst; + char *abbr; + timelib_sll transistion_time; +} timelib_time_offset; + +typedef struct timelib_time { + timelib_sll y, m, d; /* Year, Month, Day */ + timelib_sll h, i, s; /* Hour, mInute, Second */ + double f; /* Fraction */ + int z; /* GMT offset in minutes */ + char *tz_abbr; /* Timezone abbreviation (display only) */ + timelib_tzinfo *tz_info; /* Timezone structure */ + signed int dst; /* Flag if we were parsing a DST zone */ + timelib_rel_time relative; + + timelib_sll sse; /* Seconds since epoch */ + + unsigned int have_time, have_date, have_zone, have_relative, have_weeknr_day; + + unsigned int sse_uptodate; /* !0 if the sse member is up to date with the date/time members */ + unsigned int tim_uptodate; /* !0 if the date/time members are up to date with the sse member */ + unsigned int is_localtime; /* 1 if the current struct represents localtime, 0 if it is in GMT */ + unsigned int zone_type; /* 1 time offset, + * 3 TimeZone identifier, + * 2 TimeZone abbreviation */ +} timelib_time; + +typedef struct timelib_error_message { + int position; + char character; + char *message; +} timelib_error_message; + +typedef struct timelib_error_container { + int warning_count; + struct timelib_error_message *warning_messages; + int error_count; + struct timelib_error_message *error_messages; +} timelib_error_container; + +typedef struct _timelib_tz_lookup_table { + char *name; + int type; + float gmtoffset; + char *full_tz_name; +} timelib_tz_lookup_table; + +typedef struct _timelib_tzdb_index_entry { + char *id; + unsigned int pos; +} timelib_tzdb_index_entry; + +typedef struct _timelib_tzdb { + char *version; + int index_size; + const timelib_tzdb_index_entry *index; + const unsigned char *data; +} timelib_tzdb; + +#define TIMELIB_ZONETYPE_OFFSET 1 +#define TIMELIB_ZONETYPE_ABBR 2 +#define TIMELIB_ZONETYPE_ID 3 + +#define SECS_PER_ERA TIMELIB_LL_CONST(12622780800) +#define SECS_PER_DAY 86400 +#define DAYS_PER_YEAR 365 +#define DAYS_PER_LYEAR 366 +/* 400*365 days + 97 leap days */ +#define DAYS_PER_LYEAR_PERIOD 146097 +#define YEARS_PER_LYEAR_PERIOD 400 + +#define timelib_is_leap(y) ((y) % 4 == 0 && ((y) % 100 != 0 || (y) % 400 == 0)) + +#define TIMELIB_DEBUG(s) if (0) { s } + +#endif diff --git a/ext/date/lib/timezonedb.h b/ext/date/lib/timezonedb.h new file mode 100644 index 0000000..9cb5a9c --- /dev/null +++ b/ext/date/lib/timezonedb.h @@ -0,0 +1,18241 @@ +const timelib_tzdb_index_entry timezonedb_idx_builtin[576] = { + { "Africa/Abidjan" , 0x000000 }, + { "Africa/Accra" , 0x000055 }, + { "Africa/Addis_Ababa" , 0x0000FD }, + { "Africa/Algiers" , 0x000153 }, + { "Africa/Asmara" , 0x00027E }, + { "Africa/Asmera" , 0x0002D4 }, + { "Africa/Bamako" , 0x00032A }, + { "Africa/Bangui" , 0x000395 }, + { "Africa/Banjul" , 0x0003EA }, + { "Africa/Bissau" , 0x000461 }, + { "Africa/Blantyre" , 0x0004C7 }, + { "Africa/Brazzaville" , 0x00051C }, + { "Africa/Bujumbura" , 0x000571 }, + { "Africa/Cairo" , 0x0005B5 }, + { "Africa/Casablanca" , 0x000878 }, + { "Africa/Ceuta" , 0x000A76 }, + { "Africa/Conakry" , 0x000D7D }, + { "Africa/Dakar" , 0x000DE8 }, + { "Africa/Dar_es_Salaam" , 0x000E4E }, + { "Africa/Djibouti" , 0x000EBB }, + { "Africa/Douala" , 0x000F10 }, + { "Africa/El_Aaiun" , 0x000F65 }, + { "Africa/Freetown" , 0x000FCB }, + { "Africa/Gaborone" , 0x0010DA }, + { "Africa/Harare" , 0x001135 }, + { "Africa/Johannesburg" , 0x00118A }, + { "Africa/Juba" , 0x0011F8 }, + { "Africa/Kampala" , 0x00130B }, + { "Africa/Khartoum" , 0x00138A }, + { "Africa/Kigali" , 0x00149D }, + { "Africa/Kinshasa" , 0x0014F2 }, + { "Africa/Lagos" , 0x00154D }, + { "Africa/Libreville" , 0x0015A2 }, + { "Africa/Lome" , 0x0015F7 }, + { "Africa/Luanda" , 0x00163B }, + { "Africa/Lubumbashi" , 0x001690 }, + { "Africa/Lusaka" , 0x0016EB }, + { "Africa/Malabo" , 0x001740 }, + { "Africa/Maputo" , 0x0017A6 }, + { "Africa/Maseru" , 0x0017FB }, + { "Africa/Mbabane" , 0x001863 }, + { "Africa/Mogadishu" , 0x0018B9 }, + { "Africa/Monrovia" , 0x001914 }, + { "Africa/Nairobi" , 0x00197A }, + { "Africa/Ndjamena" , 0x0019F9 }, + { "Africa/Niamey" , 0x001A65 }, + { "Africa/Nouakchott" , 0x001AD8 }, + { "Africa/Ouagadougou" , 0x001B43 }, + { "Africa/Porto-Novo" , 0x001B98 }, + { "Africa/Sao_Tome" , 0x001BFE }, + { "Africa/Timbuktu" , 0x001C53 }, + { "Africa/Tripoli" , 0x001CBE }, + { "Africa/Tunis" , 0x001EB7 }, + { "Africa/Windhoek" , 0x001FC9 }, + { "America/Adak" , 0x002210 }, + { "America/Anchorage" , 0x002586 }, + { "America/Anguilla" , 0x0028FA }, + { "America/Antigua" , 0x00294F }, + { "America/Araguaina" , 0x0029B5 }, + { "America/Argentina/Buenos_Aires" , 0x002C0F }, + { "America/Argentina/Catamarca" , 0x002DBD }, + { "America/Argentina/ComodRivadavia" , 0x002F7E }, + { "America/Argentina/Cordoba" , 0x003124 }, + { "America/Argentina/Jujuy" , 0x0032F9 }, + { "America/Argentina/La_Rioja" , 0x0034AD }, + { "America/Argentina/Mendoza" , 0x003665 }, + { "America/Argentina/Rio_Gallegos" , 0x003825 }, + { "America/Argentina/Salta" , 0x0039DA }, + { "America/Argentina/San_Juan" , 0x003B86 }, + { "America/Argentina/San_Luis" , 0x003D3E }, + { "America/Argentina/Tucuman" , 0x003F04 }, + { "America/Argentina/Ushuaia" , 0x0040C0 }, + { "America/Aruba" , 0x00427B }, + { "America/Asuncion" , 0x0042E1 }, + { "America/Atikokan" , 0x0045C6 }, + { "America/Atka" , 0x00469C }, + { "America/Bahia" , 0x004A02 }, + { "America/Bahia_Banderas" , 0x004B95 }, + { "America/Barbados" , 0x004E0E }, + { "America/Belem" , 0x004EA8 }, + { "America/Belize" , 0x004FA3 }, + { "America/Blanc-Sablon" , 0x00511F }, + { "America/Boa_Vista" , 0x0051D3 }, + { "America/Bogota" , 0x0052DC }, + { "America/Boise" , 0x005348 }, + { "America/Buenos_Aires" , 0x0056DF }, + { "America/Cambridge_Bay" , 0x005878 }, + { "America/Campo_Grande" , 0x005BA0 }, + { "America/Cancun" , 0x005E8F }, + { "America/Caracas" , 0x0060D1 }, + { "America/Catamarca" , 0x006138 }, + { "America/Cayenne" , 0x0062DE }, + { "America/Cayman" , 0x006340 }, + { "America/Chicago" , 0x006395 }, + { "America/Chihuahua" , 0x0068AC }, + { "America/Coral_Harbour" , 0x006B17 }, + { "America/Cordoba" , 0x006BA9 }, + { "America/Costa_Rica" , 0x006D4F }, + { "America/Creston" , 0x006DD9 }, + { "America/Cuiaba" , 0x006E65 }, + { "America/Curacao" , 0x007143 }, + { "America/Danmarkshavn" , 0x0071A9 }, + { "America/Dawson" , 0x0072ED }, + { "America/Dawson_Creek" , 0x00760A }, + { "America/Denver" , 0x0077E4 }, + { "America/Detroit" , 0x007B6A }, + { "America/Dominica" , 0x007EC9 }, + { "America/Edmonton" , 0x007F1E }, + { "America/Eirunepe" , 0x0082D6 }, + { "America/El_Salvador" , 0x0083E9 }, + { "America/Ensenada" , 0x00845E }, + { "America/Fort_Wayne" , 0x008905 }, + { "America/Fortaleza" , 0x0087C7 }, + { "America/Glace_Bay" , 0x008B6F }, + { "America/Godthab" , 0x008EE6 }, + { "America/Goose_Bay" , 0x0091AA }, + { "America/Grand_Turk" , 0x009667 }, + { "America/Grenada" , 0x009916 }, + { "America/Guadeloupe" , 0x00996B }, + { "America/Guatemala" , 0x0099C0 }, + { "America/Guayaquil" , 0x009A49 }, + { "America/Guyana" , 0x009AA6 }, + { "America/Halifax" , 0x009B27 }, + { "America/Havana" , 0x00A03D }, + { "America/Hermosillo" , 0x00A3B0 }, + { "America/Indiana/Indianapolis" , 0x00A48E }, + { "America/Indiana/Knox" , 0x00A71F }, + { "America/Indiana/Marengo" , 0x00AAB6 }, + { "America/Indiana/Petersburg" , 0x00AD5C }, + { "America/Indiana/Tell_City" , 0x00B2A9 }, + { "America/Indiana/Vevay" , 0x00B542 }, + { "America/Indiana/Vincennes" , 0x00B77D }, + { "America/Indiana/Winamac" , 0x00BA31 }, + { "America/Indianapolis" , 0x00B03F }, + { "America/Inuvik" , 0x00BCEA }, + { "America/Iqaluit" , 0x00BFE1 }, + { "America/Jamaica" , 0x00C303 }, + { "America/Jujuy" , 0x00C3C8 }, + { "America/Juneau" , 0x00C572 }, + { "America/Kentucky/Louisville" , 0x00C8F0 }, + { "America/Kentucky/Monticello" , 0x00CD0E }, + { "America/Knox_IN" , 0x00D093 }, + { "America/Kralendijk" , 0x00D404 }, + { "America/La_Paz" , 0x00D46A }, + { "America/Lima" , 0x00D4D1 }, + { "America/Los_Angeles" , 0x00D579 }, + { "America/Louisville" , 0x00D98A }, + { "America/Lower_Princes" , 0x00DD7F }, + { "America/Maceio" , 0x00DDE5 }, + { "America/Managua" , 0x00DF1F }, + { "America/Manaus" , 0x00DFD2 }, + { "America/Marigot" , 0x00E0D4 }, + { "America/Martinique" , 0x00E129 }, + { "America/Matamoros" , 0x00E195 }, + { "America/Mazatlan" , 0x00E3EE }, + { "America/Mendoza" , 0x00E65B }, + { "America/Menominee" , 0x00E80F }, + { "America/Merida" , 0x00EB90 }, + { "America/Metlakatla" , 0x00EDCB }, + { "America/Mexico_City" , 0x00EF05 }, + { "America/Miquelon" , 0x00F180 }, + { "America/Moncton" , 0x00F3F2 }, + { "America/Monterrey" , 0x00F889 }, + { "America/Montevideo" , 0x00FAEC }, + { "America/Montreal" , 0x00FDFE }, + { "America/Montserrat" , 0x010314 }, + { "America/Nassau" , 0x010369 }, + { "America/New_York" , 0x0106AE }, + { "America/Nipigon" , 0x010BB9 }, + { "America/Nome" , 0x010F0A }, + { "America/Noronha" , 0x011288 }, + { "America/North_Dakota/Beulah" , 0x0113B8 }, + { "America/North_Dakota/Center" , 0x01174C }, + { "America/North_Dakota/New_Salem" , 0x011AE0 }, + { "America/Ojinaga" , 0x011E89 }, + { "America/Panama" , 0x0120EA }, + { "America/Pangnirtung" , 0x01213F }, + { "America/Paramaribo" , 0x012475 }, + { "America/Phoenix" , 0x012507 }, + { "America/Port-au-Prince" , 0x0125B5 }, + { "America/Port_of_Spain" , 0x0127DA }, + { "America/Porto_Acre" , 0x0126DB }, + { "America/Porto_Velho" , 0x01282F }, + { "America/Puerto_Rico" , 0x012925 }, + { "America/Rainy_River" , 0x012990 }, + { "America/Rankin_Inlet" , 0x012CC8 }, + { "America/Recife" , 0x012FAE }, + { "America/Regina" , 0x0130D8 }, + { "America/Resolute" , 0x013296 }, + { "America/Rio_Branco" , 0x013587 }, + { "America/Rosario" , 0x01368A }, + { "America/Santa_Isabel" , 0x013830 }, + { "America/Santarem" , 0x013BD3 }, + { "America/Santiago" , 0x013CD8 }, + { "America/Santo_Domingo" , 0x014081 }, + { "America/Sao_Paulo" , 0x014147 }, + { "America/Scoresbysund" , 0x014456 }, + { "America/Shiprock" , 0x014744 }, + { "America/Sitka" , 0x014AD3 }, + { "America/St_Barthelemy" , 0x014E5B }, + { "America/St_Johns" , 0x014EB0 }, + { "America/St_Kitts" , 0x015403 }, + { "America/St_Lucia" , 0x015458 }, + { "America/St_Thomas" , 0x0154AD }, + { "America/St_Vincent" , 0x015502 }, + { "America/Swift_Current" , 0x015557 }, + { "America/Tegucigalpa" , 0x015678 }, + { "America/Thule" , 0x0156F7 }, + { "America/Thunder_Bay" , 0x01593E }, + { "America/Tijuana" , 0x015C87 }, + { "America/Toronto" , 0x016020 }, + { "America/Tortola" , 0x016537 }, + { "America/Vancouver" , 0x01658C }, + { "America/Virgin" , 0x0169C9 }, + { "America/Whitehorse" , 0x016A1E }, + { "America/Winnipeg" , 0x016D3B }, + { "America/Yakutat" , 0x01717B }, + { "America/Yellowknife" , 0x0174E6 }, + { "Antarctica/Casey" , 0x0177F6 }, + { "Antarctica/Davis" , 0x017893 }, + { "Antarctica/DumontDUrville" , 0x017934 }, + { "Antarctica/Macquarie" , 0x0179C6 }, + { "Antarctica/Mawson" , 0x017C40 }, + { "Antarctica/McMurdo" , 0x017CBC }, + { "Antarctica/Palmer" , 0x017FBE }, + { "Antarctica/Rothera" , 0x0182DA }, + { "Antarctica/South_Pole" , 0x018350 }, + { "Antarctica/Syowa" , 0x018658 }, + { "Antarctica/Vostok" , 0x0186C6 }, + { "Arctic/Longyearbyen" , 0x018737 }, + { "Asia/Aden" , 0x018A69 }, + { "Asia/Almaty" , 0x018ABE }, + { "Asia/Amman" , 0x018C3D }, + { "Asia/Anadyr" , 0x018EF3 }, + { "Asia/Aqtau" , 0x0190D8 }, + { "Asia/Aqtobe" , 0x0192D7 }, + { "Asia/Ashgabat" , 0x01948F }, + { "Asia/Ashkhabad" , 0x0195AC }, + { "Asia/Baghdad" , 0x0196C9 }, + { "Asia/Bahrain" , 0x01983E }, + { "Asia/Baku" , 0x0198A4 }, + { "Asia/Bangkok" , 0x019B8C }, + { "Asia/Beirut" , 0x019BE1 }, + { "Asia/Bishkek" , 0x019EEE }, + { "Asia/Brunei" , 0x01A09A }, + { "Asia/Calcutta" , 0x01A0FC }, + { "Asia/Choibalsan" , 0x01A175 }, + { "Asia/Chongqing" , 0x01A2EE }, + { "Asia/Chungking" , 0x01A3DD }, + { "Asia/Colombo" , 0x01A48C }, + { "Asia/Dacca" , 0x01A528 }, + { "Asia/Damascus" , 0x01A5CE }, + { "Asia/Dhaka" , 0x01A91E }, + { "Asia/Dili" , 0x01A9C4 }, + { "Asia/Dubai" , 0x01AA4D }, + { "Asia/Dushanbe" , 0x01AAA2 }, + { "Asia/Gaza" , 0x01ABA5 }, + { "Asia/Harbin" , 0x01ADFE }, + { "Asia/Hebron" , 0x01AEE5 }, + { "Asia/Ho_Chi_Minh" , 0x01B147 }, + { "Asia/Hong_Kong" , 0x01B1BF }, + { "Asia/Hovd" , 0x01B381 }, + { "Asia/Irkutsk" , 0x01B4F9 }, + { "Asia/Istanbul" , 0x01B6DF }, + { "Asia/Jakarta" , 0x01BACC }, + { "Asia/Jayapura" , 0x01BB76 }, + { "Asia/Jerusalem" , 0x01BC12 }, + { "Asia/Kabul" , 0x01BF41 }, + { "Asia/Kamchatka" , 0x01BF92 }, + { "Asia/Karachi" , 0x01C16E }, + { "Asia/Kashgar" , 0x01C223 }, + { "Asia/Kathmandu" , 0x01C2F4 }, + { "Asia/Katmandu" , 0x01C35A }, + { "Asia/Kolkata" , 0x01C3C0 }, + { "Asia/Krasnoyarsk" , 0x01C439 }, + { "Asia/Kuala_Lumpur" , 0x01C621 }, + { "Asia/Kuching" , 0x01C6DE }, + { "Asia/Kuwait" , 0x01C7CC }, + { "Asia/Macao" , 0x01C821 }, + { "Asia/Macau" , 0x01C95C }, + { "Asia/Magadan" , 0x01CA97 }, + { "Asia/Makassar" , 0x01CC79 }, + { "Asia/Manila" , 0x01CD3D }, + { "Asia/Muscat" , 0x01CDC2 }, + { "Asia/Nicosia" , 0x01CE17 }, + { "Asia/Novokuznetsk" , 0x01D0FF }, + { "Asia/Novosibirsk" , 0x01D301 }, + { "Asia/Omsk" , 0x01D4EC }, + { "Asia/Oral" , 0x01D6D3 }, + { "Asia/Phnom_Penh" , 0x01D8A3 }, + { "Asia/Pontianak" , 0x01D91B }, + { "Asia/Pyongyang" , 0x01D9DC }, + { "Asia/Qatar" , 0x01DA49 }, + { "Asia/Qyzylorda" , 0x01DAAF }, + { "Asia/Rangoon" , 0x01DC85 }, + { "Asia/Riyadh" , 0x01DCFD }, + { "Asia/Saigon" , 0x01DD52 }, + { "Asia/Sakhalin" , 0x01DDCA }, + { "Asia/Samarkand" , 0x01DFC1 }, + { "Asia/Seoul" , 0x01E0F7 }, + { "Asia/Shanghai" , 0x01E19B }, + { "Asia/Singapore" , 0x01E27B }, + { "Asia/Taipei" , 0x01E332 }, + { "Asia/Tashkent" , 0x01E44A }, + { "Asia/Tbilisi" , 0x01E57B }, + { "Asia/Tehran" , 0x01E735 }, + { "Asia/Tel_Aviv" , 0x01E9A3 }, + { "Asia/Thimbu" , 0x01ECD2 }, + { "Asia/Thimphu" , 0x01ED38 }, + { "Asia/Tokyo" , 0x01ED9E }, + { "Asia/Ujung_Pandang" , 0x01EE27 }, + { "Asia/Ulaanbaatar" , 0x01EEA3 }, + { "Asia/Ulan_Bator" , 0x01EFFE }, + { "Asia/Urumqi" , 0x01F14B }, + { "Asia/Vientiane" , 0x01F212 }, + { "Asia/Vladivostok" , 0x01F28A }, + { "Asia/Yakutsk" , 0x01F476 }, + { "Asia/Yekaterinburg" , 0x01F65B }, + { "Asia/Yerevan" , 0x01F866 }, + { "Atlantic/Azores" , 0x01FA66 }, + { "Atlantic/Bermuda" , 0x01FF69 }, + { "Atlantic/Canary" , 0x02024A }, + { "Atlantic/Cape_Verde" , 0x020520 }, + { "Atlantic/Faeroe" , 0x020599 }, + { "Atlantic/Faroe" , 0x02083D }, + { "Atlantic/Jan_Mayen" , 0x020AE1 }, + { "Atlantic/Madeira" , 0x020E13 }, + { "Atlantic/Reykjavik" , 0x02131C }, + { "Atlantic/South_Georgia" , 0x0214D5 }, + { "Atlantic/St_Helena" , 0x0216E7 }, + { "Atlantic/Stanley" , 0x021519 }, + { "Australia/ACT" , 0x02173C }, + { "Australia/Adelaide" , 0x021A59 }, + { "Australia/Brisbane" , 0x021D85 }, + { "Australia/Broken_Hill" , 0x021E4C }, + { "Australia/Canberra" , 0x02218A }, + { "Australia/Currie" , 0x0224A7 }, + { "Australia/Darwin" , 0x0227DA }, + { "Australia/Eucla" , 0x022860 }, + { "Australia/Hobart" , 0x022935 }, + { "Australia/LHI" , 0x022C93 }, + { "Australia/Lindeman" , 0x022F2E }, + { "Australia/Lord_Howe" , 0x02300F }, + { "Australia/Melbourne" , 0x0232BA }, + { "Australia/North" , 0x0235DF }, + { "Australia/NSW" , 0x023653 }, + { "Australia/Perth" , 0x023970 }, + { "Australia/Queensland" , 0x023A48 }, + { "Australia/South" , 0x023AF4 }, + { "Australia/Sydney" , 0x023E11 }, + { "Australia/Tasmania" , 0x02414E }, + { "Australia/Victoria" , 0x024493 }, + { "Australia/West" , 0x0247B0 }, + { "Australia/Yancowinna" , 0x024866 }, + { "Brazil/Acre" , 0x024B88 }, + { "Brazil/DeNoronha" , 0x024C87 }, + { "Brazil/East" , 0x024DA7 }, + { "Brazil/West" , 0x025084 }, + { "Canada/Atlantic" , 0x02517C }, + { "Canada/Central" , 0x025664 }, + { "Canada/East-Saskatchewan" , 0x025F6E }, + { "Canada/Eastern" , 0x025A7E }, + { "Canada/Mountain" , 0x0260F7 }, + { "Canada/Newfoundland" , 0x02646D }, + { "Canada/Pacific" , 0x026998 }, + { "Canada/Saskatchewan" , 0x026DB1 }, + { "Canada/Yukon" , 0x026F3A }, + { "CET" , 0x02723D }, + { "Chile/Continental" , 0x027546 }, + { "Chile/EasterIsland" , 0x0278E1 }, + { "CST6CDT" , 0x027C23 }, + { "Cuba" , 0x027F74 }, + { "EET" , 0x0282E7 }, + { "Egypt" , 0x02859A }, + { "Eire" , 0x02885D }, + { "EST" , 0x028D6E }, + { "EST5EDT" , 0x028DB2 }, + { "Etc/GMT" , 0x029103 }, + { "Etc/GMT+0" , 0x0291CF }, + { "Etc/GMT+1" , 0x029259 }, + { "Etc/GMT+10" , 0x0292E6 }, + { "Etc/GMT+11" , 0x029374 }, + { "Etc/GMT+12" , 0x029402 }, + { "Etc/GMT+2" , 0x02951D }, + { "Etc/GMT+3" , 0x0295A9 }, + { "Etc/GMT+4" , 0x029635 }, + { "Etc/GMT+5" , 0x0296C1 }, + { "Etc/GMT+6" , 0x02974D }, + { "Etc/GMT+7" , 0x0297D9 }, + { "Etc/GMT+8" , 0x029865 }, + { "Etc/GMT+9" , 0x0298F1 }, + { "Etc/GMT-0" , 0x02918B }, + { "Etc/GMT-1" , 0x029213 }, + { "Etc/GMT-10" , 0x02929F }, + { "Etc/GMT-11" , 0x02932D }, + { "Etc/GMT-12" , 0x0293BB }, + { "Etc/GMT-13" , 0x029449 }, + { "Etc/GMT-14" , 0x029490 }, + { "Etc/GMT-2" , 0x0294D7 }, + { "Etc/GMT-3" , 0x029563 }, + { "Etc/GMT-4" , 0x0295EF }, + { "Etc/GMT-5" , 0x02967B }, + { "Etc/GMT-6" , 0x029707 }, + { "Etc/GMT-7" , 0x029793 }, + { "Etc/GMT-8" , 0x02981F }, + { "Etc/GMT-9" , 0x0298AB }, + { "Etc/GMT0" , 0x029147 }, + { "Etc/Greenwich" , 0x029937 }, + { "Etc/UCT" , 0x02997B }, + { "Etc/Universal" , 0x0299BF }, + { "Etc/UTC" , 0x029A03 }, + { "Etc/Zulu" , 0x029A47 }, + { "Europe/Amsterdam" , 0x029A8B }, + { "Europe/Andorra" , 0x029EC9 }, + { "Europe/Athens" , 0x02A145 }, + { "Europe/Belfast" , 0x02A488 }, + { "Europe/Belgrade" , 0x02A9BF }, + { "Europe/Berlin" , 0x02AC88 }, + { "Europe/Bratislava" , 0x02AFDE }, + { "Europe/Brussels" , 0x02B310 }, + { "Europe/Bucharest" , 0x02B747 }, + { "Europe/Budapest" , 0x02BA71 }, + { "Europe/Chisinau" , 0x02BDE4 }, + { "Europe/Copenhagen" , 0x02C172 }, + { "Europe/Dublin" , 0x02C47C }, + { "Europe/Gibraltar" , 0x02C98D }, + { "Europe/Guernsey" , 0x02CDE4 }, + { "Europe/Helsinki" , 0x02D31B }, + { "Europe/Isle_of_Man" , 0x02D5D1 }, + { "Europe/Istanbul" , 0x02DB08 }, + { "Europe/Jersey" , 0x02DEF5 }, + { "Europe/Kaliningrad" , 0x02E42C }, + { "Europe/Kiev" , 0x02E692 }, + { "Europe/Lisbon" , 0x02E9A9 }, + { "Europe/Ljubljana" , 0x02EEAD }, + { "Europe/London" , 0x02F176 }, + { "Europe/Luxembourg" , 0x02F6AD }, + { "Europe/Madrid" , 0x02FB03 }, + { "Europe/Malta" , 0x02FEC9 }, + { "Europe/Mariehamn" , 0x030282 }, + { "Europe/Minsk" , 0x030538 }, + { "Europe/Monaco" , 0x030746 }, + { "Europe/Moscow" , 0x030B81 }, + { "Europe/Nicosia" , 0x030DD2 }, + { "Europe/Oslo" , 0x0310BA }, + { "Europe/Paris" , 0x0313EC }, + { "Europe/Podgorica" , 0x031832 }, + { "Europe/Prague" , 0x031AFB }, + { "Europe/Riga" , 0x031E2D }, + { "Europe/Rome" , 0x032172 }, + { "Europe/Samara" , 0x032535 }, + { "Europe/San_Marino" , 0x032768 }, + { "Europe/Sarajevo" , 0x032B2B }, + { "Europe/Simferopol" , 0x032DF4 }, + { "Europe/Skopje" , 0x03311F }, + { "Europe/Sofia" , 0x0333E8 }, + { "Europe/Stockholm" , 0x0336F0 }, + { "Europe/Tallinn" , 0x03399F }, + { "Europe/Tirane" , 0x033CD9 }, + { "Europe/Tiraspol" , 0x033FDF }, + { "Europe/Uzhgorod" , 0x03436D }, + { "Europe/Vaduz" , 0x034684 }, + { "Europe/Vatican" , 0x034917 }, + { "Europe/Vienna" , 0x034CDA }, + { "Europe/Vilnius" , 0x035007 }, + { "Europe/Volgograd" , 0x035346 }, + { "Europe/Warsaw" , 0x035546 }, + { "Europe/Zagreb" , 0x035927 }, + { "Europe/Zaporozhye" , 0x035BF0 }, + { "Europe/Zurich" , 0x035F31 }, + { "Factory" , 0x0361E0 }, + { "GB" , 0x036251 }, + { "GB-Eire" , 0x036788 }, + { "GMT" , 0x036CBF }, + { "GMT+0" , 0x036D8B }, + { "GMT-0" , 0x036D47 }, + { "GMT0" , 0x036D03 }, + { "Greenwich" , 0x036DCF }, + { "Hongkong" , 0x036E13 }, + { "HST" , 0x036FD5 }, + { "Iceland" , 0x037019 }, + { "Indian/Antananarivo" , 0x0371D2 }, + { "Indian/Chagos" , 0x037246 }, + { "Indian/Christmas" , 0x0372A8 }, + { "Indian/Cocos" , 0x0372EC }, + { "Indian/Comoro" , 0x037330 }, + { "Indian/Kerguelen" , 0x037385 }, + { "Indian/Mahe" , 0x0373DA }, + { "Indian/Maldives" , 0x03742F }, + { "Indian/Mauritius" , 0x037484 }, + { "Indian/Mayotte" , 0x0374FA }, + { "Indian/Reunion" , 0x03754F }, + { "Iran" , 0x0375A4 }, + { "Israel" , 0x037812 }, + { "Jamaica" , 0x037B41 }, + { "Japan" , 0x037C06 }, + { "Kwajalein" , 0x037C8F }, + { "Libya" , 0x037CF2 }, + { "MET" , 0x037EEB }, + { "Mexico/BajaNorte" , 0x0381F4 }, + { "Mexico/BajaSur" , 0x03855D }, + { "Mexico/General" , 0x0387A2 }, + { "MST" , 0x038A00 }, + { "MST7MDT" , 0x038A44 }, + { "Navajo" , 0x038D95 }, + { "NZ" , 0x03910E }, + { "NZ-CHAT" , 0x03948C }, + { "Pacific/Apia" , 0x039774 }, + { "Pacific/Auckland" , 0x039910 }, + { "Pacific/Chatham" , 0x039C9C }, + { "Pacific/Chuuk" , 0x039F93 }, + { "Pacific/Easter" , 0x039FEC }, + { "Pacific/Efate" , 0x03A34A }, + { "Pacific/Enderbury" , 0x03A410 }, + { "Pacific/Fakaofo" , 0x03A47E }, + { "Pacific/Fiji" , 0x03A4CF }, + { "Pacific/Funafuti" , 0x03A662 }, + { "Pacific/Galapagos" , 0x03A6A6 }, + { "Pacific/Gambier" , 0x03A71E }, + { "Pacific/Guadalcanal" , 0x03A783 }, + { "Pacific/Guam" , 0x03A7D8 }, + { "Pacific/Honolulu" , 0x03A82E }, + { "Pacific/Johnston" , 0x03A8A5 }, + { "Pacific/Kiritimati" , 0x03A8F7 }, + { "Pacific/Kosrae" , 0x03A962 }, + { "Pacific/Kwajalein" , 0x03A9BF }, + { "Pacific/Majuro" , 0x03AA2B }, + { "Pacific/Marquesas" , 0x03AA8A }, + { "Pacific/Midway" , 0x03AAF1 }, + { "Pacific/Nauru" , 0x03AB7B }, + { "Pacific/Niue" , 0x03ABF3 }, + { "Pacific/Norfolk" , 0x03AC51 }, + { "Pacific/Noumea" , 0x03ACA6 }, + { "Pacific/Pago_Pago" , 0x03AD36 }, + { "Pacific/Palau" , 0x03ADBF }, + { "Pacific/Pitcairn" , 0x03AE03 }, + { "Pacific/Pohnpei" , 0x03AE58 }, + { "Pacific/Ponape" , 0x03AEAD }, + { "Pacific/Port_Moresby" , 0x03AEF2 }, + { "Pacific/Rarotonga" , 0x03AF36 }, + { "Pacific/Saipan" , 0x03B012 }, + { "Pacific/Samoa" , 0x03B075 }, + { "Pacific/Tahiti" , 0x03B0FE }, + { "Pacific/Tarawa" , 0x03B163 }, + { "Pacific/Tongatapu" , 0x03B1B7 }, + { "Pacific/Truk" , 0x03B243 }, + { "Pacific/Wake" , 0x03B288 }, + { "Pacific/Wallis" , 0x03B2D8 }, + { "Pacific/Yap" , 0x03B31C }, + { "Poland" , 0x03B361 }, + { "Portugal" , 0x03B742 }, + { "PRC" , 0x03BC3E }, + { "PST8PDT" , 0x03BCEF }, + { "ROC" , 0x03C040 }, + { "ROK" , 0x03C158 }, + { "Singapore" , 0x03C1FC }, + { "Turkey" , 0x03C2B3 }, + { "UCT" , 0x03C6A0 }, + { "Universal" , 0x03C6E4 }, + { "US/Alaska" , 0x03C728 }, + { "US/Aleutian" , 0x03CA91 }, + { "US/Arizona" , 0x03CDF7 }, + { "US/Central" , 0x03CE85 }, + { "US/East-Indiana" , 0x03D88F }, + { "US/Eastern" , 0x03D390 }, + { "US/Hawaii" , 0x03DAF9 }, + { "US/Indiana-Starke" , 0x03DB6A }, + { "US/Michigan" , 0x03DEDB }, + { "US/Mountain" , 0x03E212 }, + { "US/Pacific" , 0x03E58B }, + { "US/Pacific-New" , 0x03E990 }, + { "US/Samoa" , 0x03ED95 }, + { "UTC" , 0x03EE1E }, + { "W-SU" , 0x03F115 }, + { "WET" , 0x03EE62 }, + { "Zulu" , 0x03F34F }, +}; +/* This is a generated file, do not modify */ +const unsigned char timelib_timezone_db_data_builtin[258963] = { + + +/* Africa/Abidjan */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x92, 0xE6, 0x92, 0x48, +0x01, 0xFF, 0xFF, 0xFC, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x71, 0x12, 0x01, 0x0C, 0x80, +0xFA, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Accra */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x9E, 0x30, 0x66, 0xB4, +0xC1, 0x4C, 0xF9, 0x80, 0xC1, 0xEC, 0x7A, 0x50, 0xC3, 0x2E, 0x2D, 0x00, 0xC3, 0xCD, 0xAD, 0xD0, +0xC5, 0x0F, 0x60, 0x80, 0xC5, 0xAE, 0xE1, 0x50, 0xC6, 0xF0, 0x94, 0x00, 0xC7, 0x90, 0x14, 0xD0, +0xC8, 0xD3, 0x19, 0x00, 0xC9, 0x72, 0x99, 0xD0, 0xCA, 0xB4, 0x4C, 0x80, 0xCB, 0x53, 0xCD, 0x50, +0xCC, 0x95, 0x80, 0x00, 0xCD, 0x35, 0x00, 0xD0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xFF, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x04, +0xB0, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x47, 0x48, 0x53, +0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0xCC, 0x38, +0x01, 0x12, 0x53, 0xDD, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Addis_Ababa */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0xC0, 0xAF, 0xF2, 0x98, +0x01, 0x00, 0x00, 0x24, 0x68, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x05, 0x41, 0x44, 0x4D, +0x54, 0x00, 0x45, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x1C, 0xE5, 0x01, 0x4D, +0xB5, 0xB0, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Algiers */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x44, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x16, 0x91, 0x60, 0x50, 0x4F, +0x9B, 0x47, 0x78, 0xF0, 0x9B, 0xD7, 0x2C, 0x70, 0x9C, 0xBC, 0x91, 0x70, 0x9D, 0xC0, 0x48, 0xF0, +0x9E, 0x89, 0xFE, 0x70, 0x9F, 0xA0, 0x2A, 0xF0, 0xA0, 0x60, 0xA5, 0xF0, 0xA1, 0x80, 0x0C, 0xF0, +0xA2, 0x2E, 0x12, 0xF0, 0xA3, 0x7A, 0x4C, 0xF0, 0xA4, 0x35, 0x81, 0xF0, 0xA4, 0xB8, 0x06, 0x70, +0xC6, 0xFF, 0x06, 0x70, 0xC7, 0x58, 0xBA, 0x80, 0xC7, 0xDA, 0x09, 0xA0, 0xCF, 0x92, 0x34, 0x10, +0xD0, 0x8A, 0x00, 0x00, 0xD1, 0x72, 0x16, 0x10, 0xD2, 0x4E, 0x24, 0x70, 0xD4, 0x4B, 0x07, 0x70, +0xE5, 0xCE, 0xD3, 0x00, 0xF3, 0x5C, 0xB0, 0xF0, 0x02, 0x78, 0xC1, 0xF0, 0x03, 0x43, 0xC8, 0xF0, +0x0D, 0xCF, 0xD7, 0x00, 0x0E, 0xAD, 0x44, 0xF0, 0x0F, 0x78, 0x5A, 0x00, 0x10, 0x68, 0x59, 0x10, +0x12, 0x76, 0x43, 0x70, 0x13, 0x66, 0x42, 0x80, 0x14, 0x5F, 0x7C, 0x10, 0x15, 0x4F, 0x5F, 0x00, +0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x05, +0x04, 0x05, 0x04, 0x05, 0x03, 0x05, 0x03, 0x01, 0x02, 0x06, 0x05, 0x04, 0x05, 0x03, 0x06, 0x03, +0x05, 0x00, 0x00, 0x02, 0x31, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, +0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x0D, 0x00, +0x00, 0x0E, 0x10, 0x00, 0x12, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x50, 0x4D, 0x54, 0x00, 0x57, +0x45, 0x53, 0x54, 0x00, 0x57, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, +0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xC1, 0x74, 0xBD, 0x01, 0x17, 0x4F, 0xE8, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Asmara */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x45, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0xC0, 0xAF, 0xF2, 0x98, +0x01, 0x00, 0x00, 0x24, 0x68, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x05, 0x41, 0x44, 0x4D, +0x54, 0x00, 0x45, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xB9, 0xD5, 0x01, 0x4D, +0xFD, 0x4D, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Asmera */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0xC0, 0xAF, 0xF2, 0x98, +0x01, 0x00, 0x00, 0x24, 0x68, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x05, 0x41, 0x44, 0x4D, +0x54, 0x00, 0x45, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Bamako */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x92, 0xE6, 0x96, 0x00, +0xBC, 0x92, 0xB8, 0x80, 0xEE, 0x11, 0x87, 0x10, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xF8, 0x80, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x08, 0x4C, 0x4D, 0x54, +0x00, 0x47, 0x4D, 0x54, 0x00, 0x57, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x9C, 0xA1, 0xA8, 0x01, 0x06, 0x73, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Bangui */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x92, 0xE6, 0x7D, 0x14, +0x01, 0x00, 0x00, 0x11, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x57, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8F, 0xFD, 0xFA, 0x01, 0x2F, 0x03, +0x9D, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Banjul */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x92, 0xE6, 0x9E, 0x1C, +0xBE, 0x2A, 0x27, 0x9C, 0xF4, 0xB6, 0x36, 0x10, 0x01, 0x02, 0x03, 0xFF, 0xFF, 0xF0, 0x64, 0x00, +0x00, 0xFF, 0xFF, 0xF0, 0x64, 0x00, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x08, 0x00, 0x00, 0x00, +0x00, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x4D, 0x54, 0x00, 0x57, 0x41, 0x54, 0x00, 0x47, +0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xE0, 0xAA, 0x00, +0xF9, 0x40, 0x98, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Bissau */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x91, 0xC4, 0x93, 0x1C, +0x09, 0x67, 0x61, 0x10, 0x01, 0x02, 0xFF, 0xFF, 0xF1, 0x64, 0x00, 0x00, 0xFF, 0xFF, 0xF1, 0xF0, +0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x57, 0x41, 0x54, 0x00, +0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0x69, 0x28, 0x00, 0xFA, +0xE1, 0x42, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Blantyre */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x82, 0x46, 0xC3, 0xB0, +0x01, 0x00, 0x00, 0x20, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x43, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x3E, 0xE2, 0x01, 0x48, 0x10, +0x60, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Brazzaville */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x92, 0xE6, 0x80, 0x2C, +0x01, 0x00, 0x00, 0x0E, 0x54, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x57, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0xD1, 0x95, 0x01, 0x29, 0xFA, +0x8D, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Bujumbura */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, +0x00, 0x00, 0x43, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x84, 0x2A, 0xA2, 0x01, 0x3F, 0x77, 0xDA, +0x00, 0x00, 0x00, 0x00, + +/* Africa/Cairo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x45, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0xC8, 0x93, 0xB4, 0xE0, +0xC8, 0xFA, 0x7B, 0xD0, 0xC9, 0xFC, 0xEF, 0xE0, 0xCA, 0xC7, 0xE8, 0xD0, 0xCB, 0xCB, 0xAE, 0x60, +0xCC, 0xDF, 0x29, 0xD0, 0xCD, 0xAC, 0xE1, 0xE0, 0xCE, 0xC6, 0xF4, 0xD0, 0xCF, 0x8F, 0x66, 0xE0, +0xD0, 0xA9, 0x79, 0xD0, 0xD1, 0x84, 0x60, 0xE0, 0xD2, 0x8A, 0xAD, 0x50, 0xE8, 0x36, 0x63, 0x60, +0xE8, 0xF4, 0x2D, 0x50, 0xEA, 0x0B, 0xB9, 0x60, 0xEA, 0xD5, 0x60, 0xD0, 0xEB, 0xEC, 0xFA, 0xF0, +0xEC, 0xB5, 0x6D, 0x00, 0xED, 0xCF, 0x7F, 0xF0, 0xEE, 0x97, 0xF2, 0x00, 0xEF, 0xB0, 0xB3, 0x70, +0xF0, 0x79, 0x25, 0x80, 0xF1, 0x91, 0xE6, 0xF0, 0xF2, 0x5A, 0x59, 0x00, 0xF3, 0x73, 0x1A, 0x70, +0xF4, 0x3B, 0x8C, 0x80, 0xF5, 0x55, 0x9F, 0x70, 0xF6, 0x1E, 0x11, 0x80, 0xF7, 0x36, 0xD2, 0xF0, +0xF7, 0xFF, 0x45, 0x00, 0xF9, 0x18, 0x06, 0x70, 0xF9, 0xE1, 0xCA, 0x00, 0xFA, 0xF9, 0x39, 0xF0, +0xFB, 0xC2, 0xFD, 0x80, 0xFC, 0xDB, 0xBE, 0xF0, 0xFD, 0xA5, 0x82, 0x80, 0xFE, 0xBC, 0xF2, 0x70, +0xFF, 0x86, 0xB6, 0x00, 0x00, 0x9E, 0x25, 0xF0, 0x01, 0x67, 0xE9, 0x80, 0x02, 0x7F, 0x59, 0x70, +0x03, 0x49, 0x1D, 0x00, 0x04, 0x61, 0xDE, 0x70, 0x05, 0x2B, 0xA2, 0x00, 0x06, 0x43, 0x11, 0xF0, +0x07, 0x0C, 0xD5, 0x80, 0x08, 0x24, 0x45, 0x70, 0x08, 0xEE, 0x09, 0x00, 0x0A, 0x05, 0x78, 0xF0, +0x0A, 0xCF, 0x3C, 0x80, 0x0B, 0xE7, 0xFD, 0xF0, 0x0C, 0xB1, 0xC1, 0x80, 0x0D, 0xC9, 0x31, 0x70, +0x0E, 0x92, 0xF5, 0x00, 0x0F, 0xAA, 0x64, 0xF0, 0x10, 0x74, 0x28, 0x80, 0x11, 0x8B, 0x98, 0x70, +0x12, 0x55, 0x5C, 0x00, 0x13, 0x6E, 0x1D, 0x70, 0x14, 0x37, 0xE1, 0x00, 0x15, 0x4F, 0x50, 0xF0, +0x16, 0x19, 0x14, 0x80, 0x17, 0xA0, 0x93, 0xF0, 0x17, 0xFA, 0x48, 0x00, 0x19, 0x70, 0xA3, 0xF0, +0x19, 0xDB, 0x7B, 0x80, 0x1A, 0xF4, 0x3C, 0xF0, 0x1B, 0xBE, 0x00, 0x80, 0x1C, 0xD5, 0x70, 0x70, +0x1D, 0x9F, 0x34, 0x00, 0x1E, 0xB6, 0xA3, 0xF0, 0x1F, 0x80, 0x67, 0x80, 0x20, 0x97, 0xD7, 0x70, +0x21, 0x61, 0x9B, 0x00, 0x22, 0x7A, 0x5C, 0x70, 0x23, 0x44, 0x20, 0x00, 0x24, 0x62, 0x27, 0x70, +0x25, 0x25, 0x53, 0x80, 0x26, 0x3C, 0xC3, 0x70, 0x27, 0x06, 0x87, 0x00, 0x28, 0x1D, 0xF6, 0xF0, +0x28, 0xE7, 0xBA, 0x80, 0x2A, 0x00, 0x7B, 0xF0, 0x2A, 0xCA, 0x3F, 0x80, 0x2B, 0xE1, 0xAF, 0x70, +0x2C, 0xAB, 0x73, 0x00, 0x2D, 0xC2, 0xE2, 0xF0, 0x2E, 0x8C, 0xA6, 0x80, 0x2F, 0xA0, 0x13, 0xE0, +0x30, 0x6B, 0x0C, 0xD0, 0x31, 0x7F, 0xF5, 0xE0, 0x32, 0x4A, 0xEE, 0xD0, 0x33, 0x5F, 0xD7, 0xE0, +0x34, 0x2A, 0xD0, 0xD0, 0x35, 0x3F, 0xB9, 0xE0, 0x36, 0x0A, 0xB2, 0xD0, 0x37, 0x28, 0xD6, 0x60, +0x37, 0xF3, 0xCF, 0x50, 0x39, 0x08, 0xB8, 0x60, 0x39, 0xD3, 0xB1, 0x50, 0x3A, 0xE8, 0x9A, 0x60, +0x3B, 0xB3, 0x93, 0x50, 0x3C, 0xC8, 0x7C, 0x60, 0x3D, 0x93, 0x75, 0x50, 0x3E, 0xA8, 0x5E, 0x60, +0x3F, 0x73, 0x57, 0x50, 0x40, 0x91, 0x7A, 0xE0, 0x41, 0x5C, 0x73, 0xD0, 0x42, 0x71, 0x5C, 0xE0, +0x43, 0x3C, 0x55, 0xD0, 0x44, 0x51, 0x3E, 0xE0, 0x45, 0x12, 0xFD, 0x50, 0x46, 0x31, 0x20, 0xE0, +0x46, 0xE0, 0x6A, 0x50, 0x48, 0x11, 0x02, 0xE0, 0x48, 0xB7, 0x11, 0xD0, 0x49, 0xF0, 0xE4, 0xE0, +0x4A, 0x8D, 0xB9, 0x50, 0x4B, 0xDA, 0x01, 0x60, 0x4C, 0x61, 0xBD, 0xD0, 0x4C, 0x89, 0x58, 0xE0, +0x4C, 0xA4, 0xFA, 0x50, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x01, 0x00, 0x03, 0x00, 0x00, +0x2A, 0x30, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x05, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00, +0x00, 0x00, 0x1C, 0x20, 0x00, 0x05, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x00, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB7, 0x2E, 0x88, 0x01, 0x42, 0x57, 0x88, 0x00, +0x00, 0x00, 0x00, + +/* Africa/Casablanca */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0x51, 0xF9, 0x9C, +0xC6, 0xFF, 0x14, 0x80, 0xC7, 0x58, 0xAC, 0x70, 0xC7, 0xD9, 0xED, 0x80, 0xD2, 0xA1, 0x32, 0xF0, +0xDB, 0x35, 0xA4, 0x00, 0xDB, 0xEE, 0x27, 0xF0, 0xFB, 0x25, 0x72, 0x40, 0xFB, 0xC2, 0xEF, 0x70, +0x08, 0x6B, 0x84, 0x80, 0x08, 0xC6, 0x6D, 0xF0, 0x0B, 0xE8, 0x0C, 0x00, 0x0C, 0x61, 0x47, 0xF0, +0x0D, 0xC9, 0x3F, 0x80, 0x0E, 0x8E, 0xF2, 0x70, 0x0F, 0xD3, 0x51, 0x80, 0x10, 0x27, 0xA3, 0x70, +0x1A, 0xB7, 0xA6, 0x00, 0x1E, 0x18, 0x6F, 0xF0, 0x48, 0x41, 0xE6, 0x80, 0x48, 0xBB, 0x22, 0x70, +0x4A, 0x23, 0x1A, 0x00, 0x4A, 0x8D, 0xD5, 0x70, 0x4B, 0xDC, 0xC0, 0x80, 0x4C, 0x5D, 0xE5, 0x70, +0x4D, 0x97, 0xB8, 0x80, 0x4E, 0x34, 0x8C, 0xF0, 0x4F, 0x9C, 0xA0, 0xA0, 0x50, 0x08, 0xBB, 0xA0, +0x50, 0x31, 0x9A, 0x20, 0x50, 0x67, 0xA7, 0xA0, 0x51, 0x7C, 0x82, 0xA0, 0x52, 0x47, 0x89, 0xA0, +0x53, 0x5C, 0x64, 0xA0, 0x54, 0x27, 0x6B, 0xA0, 0x55, 0x3C, 0x46, 0xA0, 0x56, 0x07, 0x4D, 0xA0, +0x57, 0x1C, 0x28, 0xA0, 0x57, 0xE7, 0x2F, 0xA0, 0x59, 0x05, 0x45, 0x20, 0x59, 0xC7, 0x11, 0xA0, +0x5A, 0xE5, 0x27, 0x20, 0x5B, 0xB0, 0x2E, 0x20, 0x5C, 0xC5, 0x09, 0x20, 0x5D, 0x90, 0x10, 0x20, +0x5E, 0xA4, 0xEB, 0x20, 0x5F, 0x6F, 0xF2, 0x20, 0x60, 0x84, 0xCD, 0x20, 0x61, 0x4F, 0xD4, 0x20, +0x62, 0x64, 0xAF, 0x20, 0x63, 0x2F, 0xB6, 0x20, 0x64, 0x4D, 0xCB, 0xA0, 0x65, 0x0F, 0x98, 0x20, +0x66, 0x2D, 0xAD, 0xA0, 0x66, 0xF8, 0xB4, 0xA0, 0x68, 0x0D, 0x8F, 0xA0, 0x68, 0xD8, 0x96, 0xA0, +0x69, 0xED, 0x71, 0xA0, 0x6A, 0xB8, 0x78, 0xA0, 0x6B, 0xCD, 0x53, 0xA0, 0x6C, 0x98, 0x5A, 0xA0, +0x6D, 0xB6, 0x70, 0x20, 0x6E, 0x78, 0x3C, 0xA0, 0x6F, 0x96, 0x52, 0x20, 0x70, 0x61, 0x59, 0x20, +0x71, 0x76, 0x34, 0x20, 0x72, 0x41, 0x3B, 0x20, 0x73, 0x56, 0x16, 0x20, 0x74, 0x21, 0x1D, 0x20, +0x75, 0x35, 0xF8, 0x20, 0x76, 0x00, 0xFF, 0x20, 0x77, 0x15, 0xDA, 0x20, 0x77, 0xE0, 0xE1, 0x20, +0x78, 0xFE, 0xF6, 0xA0, 0x79, 0xC0, 0xC3, 0x20, 0x7A, 0xDE, 0xD8, 0xA0, 0x7B, 0xA9, 0xDF, 0xA0, +0x7C, 0xBE, 0xBA, 0xA0, 0x7D, 0x89, 0xC1, 0xA0, 0x7E, 0x9E, 0x9C, 0xA0, 0x7F, 0x69, 0xA3, 0xA0, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0xFF, 0xFF, 0xF8, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, +0x00, 0x00, 0x09, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x57, 0x45, 0x53, +0x54, 0x00, 0x57, 0x45, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xBC, 0xAC, 0xC8, 0x01, 0x07, 0x16, 0x42, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Ceuta */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x45, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x12, 0x9E, 0xD6, 0x75, 0x70, +0x9F, 0xA1, 0x6E, 0x60, 0xAA, 0x05, 0xEF, 0x70, 0xAA, 0xE7, 0x5F, 0xF0, 0xAD, 0xC9, 0xA7, 0xF0, +0xAE, 0xA7, 0x23, 0xF0, 0xAF, 0xA0, 0x4F, 0x70, 0xB0, 0x87, 0x05, 0xF0, 0xB1, 0x89, 0x6B, 0xF0, +0xB2, 0x70, 0x22, 0x70, 0xB2, 0xE1, 0x91, 0x80, 0xFB, 0x25, 0x72, 0x40, 0xFB, 0xC2, 0xEF, 0x70, +0x08, 0x6B, 0x84, 0x80, 0x08, 0xC6, 0x6D, 0xF0, 0x0B, 0xE8, 0x0C, 0x00, 0x0C, 0x61, 0x47, 0xF0, +0x0D, 0xC9, 0x3F, 0x80, 0x0E, 0x8E, 0xF2, 0x70, 0x0F, 0xD3, 0x51, 0x80, 0x10, 0x27, 0xA3, 0x70, +0x1A, 0xB7, 0xA6, 0x00, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, +0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, +0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, +0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, +0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, +0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x00, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, +0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x0D, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, 0x57, 0x45, 0x54, 0x00, +0x57, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, +0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xC0, 0x15, 0x2D, +0x01, 0x0A, 0x8B, 0xAD, 0x00, 0x00, 0x00, 0x0F, 0x43, 0x65, 0x75, 0x74, 0x61, 0x20, 0x26, 0x20, +0x4D, 0x65, 0x6C, 0x69, 0x6C, 0x6C, 0x61, + +/* Africa/Conakry */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x92, 0xE6, 0x9B, 0x5C, +0xBC, 0x92, 0xB8, 0x80, 0xED, 0x30, 0x16, 0x90, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xF3, 0x24, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x08, 0x4C, 0x4D, 0x54, +0x00, 0x47, 0x4D, 0x54, 0x00, 0x57, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x97, 0xD9, 0xB2, 0x00, 0xFD, 0xBA, 0x6D, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Dakar */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x92, 0xE6, 0x9E, 0xD8, +0xCA, 0x3B, 0x10, 0x90, 0x01, 0x02, 0xFF, 0xFF, 0xEF, 0xA8, 0x00, 0x00, 0xFF, 0xFF, 0xF1, 0xF0, +0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x57, 0x41, 0x54, 0x00, +0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F, 0xB5, 0x6A, 0x00, 0xF8, +0x0E, 0x9A, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Dar_es_Salaam */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0E, 0xB6, 0xA3, 0xD3, 0xAC, +0xD6, 0x9D, 0x7F, 0xD0, 0xEF, 0x12, 0x66, 0xD4, 0x01, 0x02, 0x01, 0x00, 0x00, 0x24, 0xD4, 0x00, +0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x00, 0x00, 0x26, 0xAC, 0x00, 0x08, 0x4C, 0x4D, 0x54, +0x00, 0x45, 0x41, 0x54, 0x00, 0x42, 0x45, 0x41, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7E, 0xF4, 0x00, 0x01, 0x4E, 0x99, 0x8D, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Djibouti */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x44, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x91, 0xF3, 0xD2, 0x0C, +0x01, 0x00, 0x00, 0x28, 0x74, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x45, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0x07, 0x80, 0x01, 0x54, 0x7F, +0xF8, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Douala */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x92, 0xE6, 0x85, 0x68, +0x01, 0x00, 0x00, 0x09, 0x18, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x57, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x82, 0x48, 0x01, 0x21, 0x75, +0x90, 0x00, 0x00, 0x00, 0x00, + +/* Africa/El_Aaiun */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x45, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xBC, 0x48, 0xF0, 0xE0, +0x0B, 0xD1, 0xB0, 0x90, 0x01, 0x02, 0xFF, 0xFF, 0xF3, 0xA0, 0x00, 0x00, 0xFF, 0xFF, 0xF1, 0xF0, +0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x57, 0x41, 0x54, 0x00, +0x57, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, 0xC1, 0xB8, 0x00, 0xFE, +0x84, 0x40, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Freetown */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x95, 0x90, 0x32, 0x6C, +0xBE, 0xF1, 0x38, 0x90, 0xBF, 0x92, 0x06, 0x30, 0xC0, 0xD3, 0xBD, 0x90, 0xC1, 0x74, 0x8B, 0x30, +0xC2, 0xB4, 0xF1, 0x10, 0xC3, 0x55, 0xBE, 0xB0, 0xC4, 0x96, 0x24, 0x90, 0xC5, 0x36, 0xF2, 0x30, +0xC6, 0x77, 0x58, 0x10, 0xC7, 0x18, 0x25, 0xB0, 0xC8, 0x59, 0xDD, 0x10, 0xC8, 0xFA, 0xAA, 0xB0, +0xCA, 0x3B, 0x10, 0x90, 0xCA, 0xDB, 0xDE, 0x30, 0xCC, 0x1C, 0x44, 0x10, 0xCC, 0xBD, 0x11, 0xB0, +0xE7, 0x8C, 0x7C, 0x10, 0xE8, 0x53, 0x80, 0x80, 0xE8, 0xCC, 0xBC, 0x70, 0xEA, 0x34, 0xB4, 0x00, +0xEA, 0xAD, 0xEF, 0xF0, 0xEC, 0x15, 0xE7, 0x80, 0xEC, 0x8F, 0x23, 0x70, 0xED, 0xF8, 0x6C, 0x80, +0xEE, 0x71, 0xA8, 0x70, 0xEF, 0xD9, 0xA0, 0x00, 0xF0, 0x52, 0xDB, 0xF0, 0xF1, 0xBA, 0xD3, 0x80, +0xF2, 0x34, 0x0F, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0xFF, 0xFF, 0xF3, 0x94, 0x00, 0x00, 0xFF, 0xFF, 0xFB, 0x50, 0x01, 0x04, 0xFF, 0xFF, +0xF1, 0xF0, 0x00, 0x09, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, +0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x46, 0x4D, 0x54, 0x00, 0x53, 0x4C, 0x53, 0x54, 0x00, 0x57, +0x41, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x96, 0x4C, 0x90, 0x00, 0xFE, 0x70, 0xB8, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Gaborone */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0xCE, 0x8E, 0x6E, 0x80, +0xCF, 0x7E, 0x51, 0x70, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, +0x01, 0x04, 0x43, 0x41, 0x54, 0x00, 0x43, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x63, 0xB7, 0x57, 0x01, 0x3A, 0x34, 0x32, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Harare */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x5A, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x82, 0x46, 0xC7, 0x64, +0x01, 0x00, 0x00, 0x1D, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x43, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x1E, 0x1A, 0x01, 0x42, 0x09, +0x68, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Johannesburg */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x5A, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x82, 0x46, 0xCF, 0x68, +0xCC, 0xAE, 0x8C, 0x80, 0xCD, 0x9E, 0x6F, 0x70, 0xCE, 0x8E, 0x6E, 0x80, 0xCF, 0x7E, 0x51, 0x70, +0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x15, 0x18, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, +0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x53, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x61, 0x46, 0x58, 0x01, 0x3D, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Juba */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0xB6, 0xA3, 0xDA, 0xE0, +0x00, 0x9E, 0x17, 0xE0, 0x01, 0x7A, 0x34, 0x50, 0x02, 0x7D, 0xF9, 0xE0, 0x03, 0x5B, 0x67, 0xD0, +0x04, 0x60, 0x7E, 0xE0, 0x05, 0x3D, 0xEC, 0xD0, 0x06, 0x40, 0x60, 0xE0, 0x07, 0x1F, 0x20, 0x50, +0x08, 0x20, 0x42, 0xE0, 0x09, 0x00, 0x53, 0xD0, 0x0A, 0x00, 0x24, 0xE0, 0x0A, 0xE1, 0x87, 0x50, +0x0B, 0xE0, 0x06, 0xE0, 0x0C, 0xC4, 0x0C, 0x50, 0x0D, 0xBF, 0xE8, 0xE0, 0x0E, 0xA5, 0x3F, 0xD0, +0x0F, 0xA9, 0x05, 0x60, 0x10, 0x86, 0x73, 0x50, 0x11, 0x88, 0xE7, 0x60, 0x12, 0x67, 0xA6, 0xD0, +0x13, 0x68, 0xC9, 0x60, 0x14, 0x4A, 0x2B, 0xD0, 0x15, 0x48, 0xAB, 0x60, 0x16, 0x2B, 0x5F, 0x50, +0x17, 0x28, 0x8D, 0x60, 0x18, 0x0C, 0x92, 0xD0, 0x19, 0x08, 0x6F, 0x60, 0x19, 0xED, 0xC6, 0x50, +0x1A, 0xF1, 0x8B, 0xE0, 0x1B, 0xD0, 0x4B, 0x50, 0x1C, 0xD1, 0x6D, 0xE0, 0x1D, 0xB1, 0x7E, 0xD0, +0x38, 0x80, 0x45, 0x20, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x00, 0x00, 0x1D, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, +0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0D, 0x4C, 0x4D, +0x54, 0x00, 0x43, 0x41, 0x53, 0x54, 0x00, 0x43, 0x41, 0x54, 0x00, 0x45, 0x41, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xBA, 0xC8, 0x01, 0x42, 0xE0, 0x40, 0x00, +0x00, 0x00, 0x00, + +/* Africa/Kampala */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x13, 0xB1, 0xEE, 0xDF, 0x1C, +0xB4, 0xC2, 0x9A, 0xD0, 0xD6, 0x9D, 0x86, 0xD8, 0xE7, 0x8C, 0x47, 0x54, 0x01, 0x02, 0x03, 0x01, +0x00, 0x00, 0x1E, 0x64, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x00, 0x00, 0x23, 0x28, +0x00, 0x08, 0x00, 0x00, 0x26, 0xAC, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x41, 0x54, 0x00, +0x42, 0x45, 0x41, 0x54, 0x00, 0x42, 0x45, 0x41, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x89, 0xCF, 0xF2, 0x01, 0x44, 0x1F, 0x42, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Khartoum */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0xB6, 0xA3, 0xDA, 0x00, +0x00, 0x9E, 0x17, 0xE0, 0x01, 0x7A, 0x34, 0x50, 0x02, 0x7D, 0xF9, 0xE0, 0x03, 0x5B, 0x67, 0xD0, +0x04, 0x60, 0x7E, 0xE0, 0x05, 0x3D, 0xEC, 0xD0, 0x06, 0x40, 0x60, 0xE0, 0x07, 0x1F, 0x20, 0x50, +0x08, 0x20, 0x42, 0xE0, 0x09, 0x00, 0x53, 0xD0, 0x0A, 0x00, 0x24, 0xE0, 0x0A, 0xE1, 0x87, 0x50, +0x0B, 0xE0, 0x06, 0xE0, 0x0C, 0xC4, 0x0C, 0x50, 0x0D, 0xBF, 0xE8, 0xE0, 0x0E, 0xA5, 0x3F, 0xD0, +0x0F, 0xA9, 0x05, 0x60, 0x10, 0x86, 0x73, 0x50, 0x11, 0x88, 0xE7, 0x60, 0x12, 0x67, 0xA6, 0xD0, +0x13, 0x68, 0xC9, 0x60, 0x14, 0x4A, 0x2B, 0xD0, 0x15, 0x48, 0xAB, 0x60, 0x16, 0x2B, 0x5F, 0x50, +0x17, 0x28, 0x8D, 0x60, 0x18, 0x0C, 0x92, 0xD0, 0x19, 0x08, 0x6F, 0x60, 0x19, 0xED, 0xC6, 0x50, +0x1A, 0xF1, 0x8B, 0xE0, 0x1B, 0xD0, 0x4B, 0x50, 0x1C, 0xD1, 0x6D, 0xE0, 0x1D, 0xB1, 0x7E, 0xD0, +0x38, 0x80, 0x45, 0x20, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x00, 0x00, 0x1E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, +0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0D, 0x4C, 0x4D, +0x54, 0x00, 0x43, 0x41, 0x53, 0x54, 0x00, 0x43, 0x41, 0x54, 0x00, 0x45, 0x41, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x22, 0x00, 0x01, 0x44, 0x4C, 0xD5, 0x00, +0x00, 0x00, 0x00, + +/* Africa/Kigali */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xBE, 0xF1, 0x0E, 0x50, +0x01, 0x00, 0x00, 0x1C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x43, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x5A, 0x88, 0x01, 0x40, 0x89, +0x4A, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Kinshasa */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0E, 0x10, +0x00, 0x00, 0x57, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x82, 0xC4, 0x90, 0x01, 0x2A, 0x01, 0x10, +0x00, 0x00, 0x00, 0x17, 0x77, 0x65, 0x73, 0x74, 0x20, 0x44, 0x65, 0x6D, 0x2E, 0x20, 0x52, 0x65, +0x70, 0x2E, 0x20, 0x6F, 0x66, 0x20, 0x43, 0x6F, 0x6E, 0x67, 0x6F, + +/* Africa/Lagos */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4E, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xA1, 0x51, 0xF3, 0x50, +0x01, 0x00, 0x00, 0x03, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x57, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x2B, 0xC8, 0x01, 0x17, 0xD8, +0xA0, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Libreville */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x92, 0xE6, 0x85, 0xA4, +0x01, 0x00, 0x00, 0x08, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x57, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0xE9, 0xFD, 0x01, 0x21, 0x13, +0xE8, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Lome */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x92, 0xB0, 0x15, 0x01, 0x14, 0x83, 0xC2, +0x00, 0x00, 0x00, 0x00, + +/* Africa/Luanda */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x91, 0xC4, 0x78, 0x4C, +0x01, 0x00, 0x00, 0x0C, 0x34, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x41, 0x4F, 0x54, +0x00, 0x57, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xE6, 0xC0, 0x01, 0x26, 0xD9, +0xC5, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Lubumbashi */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, +0x00, 0x00, 0x43, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x77, 0x86, 0xF5, 0x01, 0x3C, 0x91, 0xAA, +0x00, 0x00, 0x00, 0x17, 0x65, 0x61, 0x73, 0x74, 0x20, 0x44, 0x65, 0x6D, 0x2E, 0x20, 0x52, 0x65, +0x70, 0x2E, 0x20, 0x6F, 0x66, 0x20, 0x43, 0x6F, 0x6E, 0x67, 0x6F, + +/* Africa/Lusaka */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x5A, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x82, 0x46, 0xC9, 0xFC, +0x01, 0x00, 0x00, 0x1A, 0x84, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x43, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0xCE, 0x1D, 0x01, 0x3D, 0xD0, +0xAD, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Malabo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x92, 0xE6, 0x86, 0x44, +0xF4, 0x9F, 0xBE, 0x80, 0x01, 0x02, 0x00, 0x00, 0x08, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, +0x57, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x0D, 0x18, 0x01, 0x20, +0x0F, 0x7D, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Maputo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x82, 0x46, 0xC5, 0xF4, +0x01, 0x00, 0x00, 0x1E, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x43, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xB5, 0x05, 0x01, 0x44, 0x60, +0x5D, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Maseru */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4C, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x09, 0x82, 0x46, 0xCA, 0xB8, +0xCE, 0x8E, 0x6E, 0x80, 0xCF, 0x7E, 0x51, 0x70, 0x01, 0x02, 0x01, 0x00, 0x00, 0x19, 0xC8, 0x00, +0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x53, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x5D, 0xD5, +0x01, 0x3C, 0x9E, 0xB0, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Mbabane */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x82, 0x46, 0xC7, 0x58, +0x01, 0x00, 0x00, 0x1D, 0x28, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x53, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x32, 0xD0, 0x01, 0x42, +0x1C, 0xF0, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Mogadishu */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0xB6, 0xA3, 0xCE, 0x50, +0xE7, 0x8C, 0x4A, 0xD8, 0x01, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x00, 0x00, 0x00, 0x23, 0x28, +0x00, 0x04, 0x45, 0x41, 0x54, 0x00, 0x42, 0x45, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x8C, 0x7B, 0x8A, 0x01, 0x57, 0xE1, 0xDA, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Monrovia */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4C, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xA0, 0x5F, 0x6C, 0x9C, +0x04, 0x61, 0xF6, 0xEE, 0x01, 0x02, 0xFF, 0xFF, 0xF5, 0xE4, 0x00, 0x00, 0xFF, 0xFF, 0xF5, 0x92, +0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x4D, 0x4D, 0x54, 0x00, 0x4C, 0x52, 0x54, 0x00, +0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0xF1, 0x30, 0x01, 0x02, +0x34, 0x42, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Nairobi */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x13, 0xB1, 0xEE, 0xDA, 0xFC, +0xB4, 0xC2, 0x9A, 0xD0, 0xC7, 0x91, 0x47, 0xD8, 0xED, 0x2F, 0xE1, 0xD4, 0x01, 0x02, 0x03, 0x01, +0x00, 0x00, 0x22, 0x84, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x00, 0x00, 0x23, 0x28, +0x00, 0x08, 0x00, 0x00, 0x26, 0xAC, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x41, 0x54, 0x00, +0x42, 0x45, 0x41, 0x54, 0x00, 0x42, 0x45, 0x41, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x87, 0x5E, 0xF2, 0x01, 0x4A, 0xD6, 0x02, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Ndjamena */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x92, 0xE6, 0x80, 0x64, +0x12, 0x66, 0x71, 0x70, 0x13, 0x26, 0xDE, 0x60, 0x01, 0x02, 0x01, 0x00, 0x00, 0x0E, 0x1C, 0x00, +0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x4C, 0x4D, 0x54, +0x00, 0x57, 0x41, 0x54, 0x00, 0x57, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x9B, 0xD1, 0x52, 0x01, 0x29, 0x9F, 0x68, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Niamey */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4E, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0x92, 0xE6, 0x8C, 0x84, +0xBC, 0x92, 0xC6, 0x90, 0xED, 0x30, 0x08, 0x80, 0x01, 0x02, 0x03, 0x00, 0x00, 0x01, 0xFC, 0x00, +0x00, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x0E, +0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x57, 0x41, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xF4, 0x32, 0x01, 0x15, 0xE3, 0x52, 0x00, +0x00, 0x00, 0x00, + +/* Africa/Nouakchott */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x92, 0xE6, 0x9D, 0x74, +0xBC, 0x92, 0xB8, 0x80, 0xEE, 0xE5, 0xC8, 0x90, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xF1, 0x0C, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x08, 0x4C, 0x4D, 0x54, +0x00, 0x47, 0x4D, 0x54, 0x00, 0x57, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xA4, 0xF2, 0x90, 0x00, 0xFA, 0x52, 0x08, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Ouagadougou */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x92, 0xE6, 0x8F, 0xEC, +0x01, 0xFF, 0xFF, 0xFE, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x32, 0xFA, 0x01, 0x10, 0x58, +0x0D, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Porto-Novo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x92, 0xE6, 0x8C, 0x0C, +0xBC, 0x92, 0xB8, 0x80, 0x01, 0x02, 0x00, 0x00, 0x02, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, +0x57, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x38, 0xCD, 0x01, 0x16, +0xA6, 0xA2, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Sao_Tome */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x92, 0xE6, 0x97, 0x10, +0x01, 0xFF, 0xFF, 0xF7, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0xD6, 0x75, 0x01, 0x1C, 0xEE, +0xB5, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Timbuktu */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x92, 0xE6, 0x96, 0x00, +0xBC, 0x92, 0xB8, 0x80, 0xEE, 0x11, 0x87, 0x10, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xF8, 0x80, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x08, 0x4C, 0x4D, 0x54, +0x00, 0x47, 0x4D, 0x54, 0x00, 0x57, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Tripoli */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4C, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0xA1, 0xF2, 0xC1, 0x24, +0xDD, 0xBB, 0xB1, 0x10, 0xDE, 0x23, 0xAD, 0x60, 0xE1, 0x78, 0xD2, 0x10, 0xE1, 0xE7, 0x65, 0xE0, +0xE5, 0x2F, 0x3F, 0x70, 0xE5, 0xA9, 0xCC, 0xE0, 0xEB, 0x4E, 0xC6, 0xF0, 0x16, 0x92, 0x42, 0x60, +0x17, 0x08, 0xF7, 0x70, 0x17, 0xFA, 0x2B, 0xE0, 0x18, 0xEA, 0x2A, 0xF0, 0x19, 0xDB, 0x5F, 0x60, +0x1A, 0xCC, 0xAF, 0xF0, 0x1B, 0xBD, 0xE4, 0x60, 0x1C, 0xB4, 0x7A, 0xF0, 0x1D, 0x9F, 0x17, 0xE0, +0x1E, 0x93, 0x0B, 0x70, 0x1F, 0x82, 0xEE, 0x60, 0x20, 0x70, 0x4A, 0x70, 0x21, 0x61, 0x7E, 0xE0, +0x22, 0x52, 0xCF, 0x70, 0x23, 0x44, 0x03, 0xE0, 0x24, 0x34, 0x02, 0xF0, 0x25, 0x25, 0x37, 0x60, +0x26, 0x40, 0xB7, 0xF0, 0x32, 0x4E, 0xF1, 0x60, 0x33, 0x44, 0x36, 0x70, 0x34, 0x35, 0x6A, 0xE0, +0x50, 0x9D, 0x99, 0x00, 0x51, 0x54, 0xD9, 0x80, 0x52, 0x69, 0xB4, 0x80, 0x53, 0x34, 0xBB, 0x80, +0x54, 0x52, 0xD1, 0x00, 0x55, 0x14, 0x9D, 0x80, 0x56, 0x32, 0xB3, 0x00, 0x56, 0xF4, 0x7F, 0x80, +0x58, 0x12, 0x95, 0x00, 0x58, 0xDD, 0x9C, 0x00, 0x59, 0xF2, 0x77, 0x00, 0x5A, 0xBD, 0x7E, 0x00, +0x5B, 0xD2, 0x59, 0x00, 0x5C, 0x9D, 0x60, 0x00, 0x5D, 0xB2, 0x3B, 0x00, 0x5E, 0x7D, 0x42, 0x00, +0x5F, 0x9B, 0x57, 0x80, 0x60, 0x5D, 0x24, 0x00, 0x61, 0x7B, 0x39, 0x80, 0x62, 0x3D, 0x06, 0x00, +0x63, 0x5B, 0x1B, 0x80, 0x64, 0x26, 0x22, 0x80, 0x65, 0x3A, 0xFD, 0x80, 0x66, 0x06, 0x04, 0x80, +0x67, 0x1A, 0xDF, 0x80, 0x67, 0xE5, 0xE6, 0x80, 0x69, 0x03, 0xFC, 0x00, 0x69, 0xC5, 0xC8, 0x80, +0x6A, 0xE3, 0xDE, 0x00, 0x6B, 0xA5, 0xAA, 0x80, 0x6C, 0xC3, 0xC0, 0x00, 0x6D, 0x8E, 0xC7, 0x00, +0x6E, 0xA3, 0xA2, 0x00, 0x6F, 0x6E, 0xA9, 0x00, 0x70, 0x83, 0x84, 0x00, 0x71, 0x4E, 0x8B, 0x00, +0x72, 0x63, 0x66, 0x00, 0x73, 0x2E, 0x6D, 0x00, 0x74, 0x4C, 0x82, 0x80, 0x75, 0x0E, 0x4F, 0x00, +0x76, 0x2C, 0x64, 0x80, 0x76, 0xEE, 0x31, 0x00, 0x78, 0x0C, 0x46, 0x80, 0x78, 0xD7, 0x4D, 0x80, +0x79, 0xEC, 0x28, 0x80, 0x7A, 0xB7, 0x2F, 0x80, 0x7B, 0xCC, 0x0A, 0x80, 0x7C, 0x97, 0x11, 0x80, +0x7D, 0xB5, 0x27, 0x00, 0x7E, 0x76, 0xF3, 0x80, 0x7F, 0x95, 0x09, 0x00, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x0C, 0x5C, +0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, +0x1C, 0x20, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, +0x00, 0x45, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x87, +0xD0, 0x01, 0x26, 0xC6, 0x3D, 0x00, 0x00, 0x00, 0x00, + +/* Africa/Tunis */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D, 0x91, 0x60, 0x50, 0x4F, +0xC6, 0x3A, 0x88, 0xE0, 0xC7, 0x58, 0x9E, 0x60, 0xC7, 0xDB, 0x22, 0xE0, 0xCA, 0xE2, 0x54, 0xE0, +0xCB, 0xAD, 0x69, 0xF0, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, 0xCD, 0xC2, 0x16, 0x00, +0xCD, 0xCC, 0xB0, 0x10, 0xCE, 0xA2, 0x35, 0x00, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x89, 0xE3, 0xE0, +0xD1, 0x72, 0x16, 0x10, 0xD2, 0x4E, 0x16, 0x60, 0x0D, 0xC7, 0xDF, 0xF0, 0x0E, 0x89, 0xAC, 0x70, +0x0F, 0xAA, 0x64, 0xF0, 0x10, 0x74, 0x1A, 0x70, 0x22, 0xA3, 0x3A, 0xF0, 0x23, 0x3C, 0x28, 0xF0, +0x24, 0x2C, 0x19, 0xF0, 0x25, 0x1C, 0x0A, 0xF0, 0x26, 0x3C, 0xC3, 0x70, 0x27, 0x05, 0x27, 0x70, +0x42, 0x74, 0x0D, 0xF0, 0x43, 0x3C, 0x80, 0x00, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x03, 0x01, 0x02, 0x01, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x00, 0x00, 0x02, 0x31, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, +0x10, 0x00, 0x09, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x50, +0x4D, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x7B, 0x40, 0x01, 0x22, 0x32, 0x5D, 0x00, 0x00, +0x00, 0x00, + +/* Africa/Windhoek */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4E, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x82, 0x46, 0xCF, 0x68, +0xCC, 0xAE, 0x8C, 0x80, 0xCD, 0x9E, 0x6F, 0x70, 0x26, 0x06, 0xA7, 0xE0, 0x2D, 0x9D, 0xEA, 0xE0, +0x2E, 0x69, 0x1C, 0x10, 0x2F, 0x7D, 0xE9, 0x00, 0x30, 0x48, 0xFE, 0x10, 0x31, 0x67, 0x05, 0x80, +0x32, 0x28, 0xE0, 0x10, 0x33, 0x46, 0xE7, 0x80, 0x34, 0x11, 0xFC, 0x90, 0x35, 0x26, 0xC9, 0x80, +0x35, 0xF1, 0xDE, 0x90, 0x37, 0x06, 0xAB, 0x80, 0x37, 0xD1, 0xC0, 0x90, 0x38, 0xE6, 0x8D, 0x80, +0x39, 0xB1, 0xA2, 0x90, 0x3A, 0xC6, 0x6F, 0x80, 0x3B, 0x91, 0x84, 0x90, 0x3C, 0xAF, 0x8C, 0x00, +0x3D, 0x71, 0x66, 0x90, 0x3E, 0x8F, 0x6E, 0x00, 0x3F, 0x5A, 0x83, 0x10, 0x40, 0x6F, 0x50, 0x00, +0x41, 0x3A, 0x65, 0x10, 0x42, 0x4F, 0x32, 0x00, 0x43, 0x1A, 0x47, 0x10, 0x44, 0x2F, 0x14, 0x00, +0x44, 0xFA, 0x29, 0x10, 0x46, 0x0E, 0xF6, 0x00, 0x46, 0xDA, 0x0B, 0x10, 0x47, 0xF8, 0x12, 0x80, +0x48, 0xC3, 0x27, 0x90, 0x49, 0xD7, 0xF4, 0x80, 0x4A, 0xA3, 0x09, 0x90, 0x4B, 0xB7, 0xD6, 0x80, +0x4C, 0x82, 0xEB, 0x90, 0x4D, 0x97, 0xB8, 0x80, 0x4E, 0x62, 0xCD, 0x90, 0x4F, 0x77, 0x9A, 0x80, +0x50, 0x42, 0xAF, 0x90, 0x51, 0x60, 0xB7, 0x00, 0x52, 0x22, 0x91, 0x90, 0x53, 0x40, 0x99, 0x00, +0x54, 0x0B, 0xAE, 0x10, 0x55, 0x20, 0x7B, 0x00, 0x55, 0xEB, 0x90, 0x10, 0x57, 0x00, 0x5D, 0x00, +0x57, 0xCB, 0x72, 0x10, 0x58, 0xE0, 0x3F, 0x00, 0x59, 0xAB, 0x54, 0x10, 0x5A, 0xC0, 0x21, 0x00, +0x5B, 0x8B, 0x36, 0x10, 0x5C, 0xA9, 0x3D, 0x80, 0x5D, 0x6B, 0x18, 0x10, 0x5E, 0x89, 0x1F, 0x80, +0x5F, 0x54, 0x34, 0x90, 0x60, 0x69, 0x01, 0x80, 0x61, 0x34, 0x16, 0x90, 0x62, 0x48, 0xE3, 0x80, +0x63, 0x13, 0xF8, 0x90, 0x64, 0x28, 0xC5, 0x80, 0x64, 0xF3, 0xDA, 0x90, 0x66, 0x11, 0xE2, 0x00, +0x66, 0xD3, 0xBC, 0x90, 0x67, 0xF1, 0xC4, 0x00, 0x68, 0xBC, 0xD9, 0x10, 0x69, 0xD1, 0xA6, 0x00, +0x6A, 0x9C, 0xBB, 0x10, 0x6B, 0xB1, 0x88, 0x00, 0x6C, 0x7C, 0x9D, 0x10, 0x6D, 0x91, 0x6A, 0x00, +0x6E, 0x5C, 0x7F, 0x10, 0x6F, 0x71, 0x4C, 0x00, 0x70, 0x3C, 0x61, 0x10, 0x71, 0x5A, 0x68, 0x80, +0x72, 0x1C, 0x43, 0x10, 0x73, 0x3A, 0x4A, 0x80, 0x74, 0x05, 0x5F, 0x90, 0x75, 0x1A, 0x2C, 0x80, +0x75, 0xE5, 0x41, 0x90, 0x76, 0xFA, 0x0E, 0x80, 0x77, 0xC5, 0x23, 0x90, 0x78, 0xD9, 0xF0, 0x80, +0x79, 0xA5, 0x05, 0x90, 0x7A, 0xB9, 0xD2, 0x80, 0x7B, 0x84, 0xE7, 0x90, 0x7C, 0xA2, 0xEF, 0x00, +0x7D, 0x6E, 0x04, 0x10, 0x7E, 0x82, 0xD1, 0x00, 0x7F, 0x4D, 0xE6, 0x10, 0x01, 0x02, 0x01, 0x03, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x00, 0x00, 0x15, 0x18, 0x00, 0x00, 0x00, 0x00, +0x1C, 0x20, 0x00, 0x05, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0A, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x0E, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x01, 0x53, 0x57, 0x41, 0x54, +0x00, 0x53, 0x41, 0x53, 0x54, 0x00, 0x43, 0x41, 0x54, 0x00, 0x57, 0x41, 0x53, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0xE5, 0x25, 0x01, +0x2C, 0xC0, 0x30, 0x00, 0x00, 0x00, 0x00, + +/* America/Adak */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x23, 0xCB, 0x89, 0x44, 0xD0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x50, 0x40, 0xFA, 0xD2, 0x55, 0xB0, 0xFE, 0xB8, 0x71, 0x50, +0xFF, 0xA8, 0x54, 0x40, 0x00, 0x98, 0x53, 0x50, 0x01, 0x88, 0x36, 0x40, 0x02, 0x78, 0x35, 0x50, +0x03, 0x71, 0x52, 0xC0, 0x04, 0x61, 0x51, 0xD0, 0x05, 0x51, 0x34, 0xC0, 0x06, 0x41, 0x33, 0xD0, +0x07, 0x31, 0x16, 0xC0, 0x07, 0x8D, 0x6D, 0xD0, 0x09, 0x10, 0xF8, 0xC0, 0x09, 0xAD, 0xE9, 0x50, +0x0A, 0xF0, 0xDA, 0xC0, 0x0B, 0xE0, 0xD9, 0xD0, 0x0C, 0xD9, 0xF7, 0x40, 0x0D, 0xC0, 0xBB, 0xD0, +0x0E, 0xB9, 0xD9, 0x40, 0x0F, 0xA9, 0xD8, 0x50, 0x10, 0x99, 0xBB, 0x40, 0x11, 0x89, 0xBA, 0x50, +0x12, 0x79, 0x9D, 0x40, 0x13, 0x69, 0x9C, 0x50, 0x14, 0x59, 0x7F, 0x40, 0x15, 0x49, 0x7E, 0x50, +0x16, 0x39, 0x61, 0x40, 0x17, 0x29, 0x60, 0x50, 0x18, 0x22, 0x7D, 0xC0, 0x19, 0x09, 0x42, 0x50, +0x1A, 0x02, 0x5F, 0xC0, 0x1A, 0x2B, 0x22, 0x20, 0x1A, 0xF2, 0x50, 0xC0, 0x1B, 0xE2, 0x33, 0xB0, +0x1C, 0xD2, 0x32, 0xC0, 0x1D, 0xC2, 0x15, 0xB0, 0x1E, 0xB2, 0x14, 0xC0, 0x1F, 0xA1, 0xF7, 0xB0, +0x20, 0x76, 0x47, 0x40, 0x21, 0x81, 0xD9, 0xB0, 0x22, 0x56, 0x29, 0x40, 0x23, 0x6A, 0xF6, 0x30, +0x24, 0x36, 0x0B, 0x40, 0x25, 0x4A, 0xD8, 0x30, 0x26, 0x15, 0xED, 0x40, 0x27, 0x2A, 0xBA, 0x30, +0x27, 0xFF, 0x09, 0xC0, 0x29, 0x0A, 0x9C, 0x30, 0x29, 0xDE, 0xEB, 0xC0, 0x2A, 0xEA, 0x7E, 0x30, +0x2B, 0xBE, 0xCD, 0xC0, 0x2C, 0xD3, 0x9A, 0xB0, 0x2D, 0x9E, 0xAF, 0xC0, 0x2E, 0xB3, 0x7C, 0xB0, +0x2F, 0x7E, 0x91, 0xC0, 0x30, 0x93, 0x5E, 0xB0, 0x31, 0x67, 0xAE, 0x40, 0x32, 0x73, 0x40, 0xB0, +0x33, 0x47, 0x90, 0x40, 0x34, 0x53, 0x22, 0xB0, 0x35, 0x27, 0x72, 0x40, 0x36, 0x33, 0x04, 0xB0, +0x37, 0x07, 0x54, 0x40, 0x38, 0x1C, 0x21, 0x30, 0x38, 0xE7, 0x36, 0x40, 0x39, 0xFC, 0x03, 0x30, +0x3A, 0xC7, 0x18, 0x40, 0x3B, 0xDB, 0xE5, 0x30, 0x3C, 0xB0, 0x34, 0xC0, 0x3D, 0xBB, 0xC7, 0x30, +0x3E, 0x90, 0x16, 0xC0, 0x3F, 0x9B, 0xA9, 0x30, 0x40, 0x6F, 0xF8, 0xC0, 0x41, 0x84, 0xC5, 0xB0, +0x42, 0x4F, 0xDA, 0xC0, 0x43, 0x64, 0xA7, 0xB0, 0x44, 0x2F, 0xBC, 0xC0, 0x45, 0x44, 0x89, 0xB0, +0x45, 0xF3, 0xEF, 0x40, 0x47, 0x2D, 0xA6, 0x30, 0x47, 0xD3, 0xD1, 0x40, 0x49, 0x0D, 0x88, 0x30, +0x49, 0xB3, 0xB3, 0x40, 0x4A, 0xED, 0x6A, 0x30, 0x4B, 0x9C, 0xCF, 0xC0, 0x4C, 0xD6, 0x86, 0xB0, +0x4D, 0x7C, 0xB1, 0xC0, 0x4E, 0xB6, 0x68, 0xB0, 0x4F, 0x5C, 0x93, 0xC0, 0x50, 0x96, 0x4A, 0xB0, +0x51, 0x3C, 0x75, 0xC0, 0x52, 0x76, 0x2C, 0xB0, 0x53, 0x1C, 0x57, 0xC0, 0x54, 0x56, 0x0E, 0xB0, +0x54, 0xFC, 0x39, 0xC0, 0x56, 0x35, 0xF0, 0xB0, 0x56, 0xE5, 0x56, 0x40, 0x58, 0x1F, 0x0D, 0x30, +0x58, 0xC5, 0x38, 0x40, 0x59, 0xFE, 0xEF, 0x30, 0x5A, 0xA5, 0x1A, 0x40, 0x5B, 0xDE, 0xD1, 0x30, +0x5C, 0x84, 0xFC, 0x40, 0x5D, 0xBE, 0xB3, 0x30, 0x5E, 0x64, 0xDE, 0x40, 0x5F, 0x9E, 0x95, 0x30, +0x60, 0x4D, 0xFA, 0xC0, 0x61, 0x87, 0xB1, 0xB0, 0x62, 0x2D, 0xDC, 0xC0, 0x63, 0x67, 0x93, 0xB0, +0x64, 0x0D, 0xBE, 0xC0, 0x65, 0x47, 0x75, 0xB0, 0x65, 0xED, 0xA0, 0xC0, 0x67, 0x27, 0x57, 0xB0, +0x67, 0xCD, 0x82, 0xC0, 0x69, 0x07, 0x39, 0xB0, 0x69, 0xAD, 0x64, 0xC0, 0x6A, 0xE7, 0x1B, 0xB0, +0x6B, 0x96, 0x81, 0x40, 0x6C, 0xD0, 0x38, 0x30, 0x6D, 0x76, 0x63, 0x40, 0x6E, 0xB0, 0x1A, 0x30, +0x6F, 0x56, 0x45, 0x40, 0x70, 0x8F, 0xFC, 0x30, 0x71, 0x36, 0x27, 0x40, 0x72, 0x6F, 0xDE, 0x30, +0x73, 0x16, 0x09, 0x40, 0x74, 0x4F, 0xC0, 0x30, 0x74, 0xFF, 0x25, 0xC0, 0x76, 0x38, 0xDC, 0xB0, +0x76, 0xDF, 0x07, 0xC0, 0x78, 0x18, 0xBE, 0xB0, 0x78, 0xBE, 0xE9, 0xC0, 0x79, 0xF8, 0xA0, 0xB0, +0x7A, 0x9E, 0xCB, 0xC0, 0x7B, 0xD8, 0x82, 0xB0, 0x7C, 0x7E, 0xAD, 0xC0, 0x7D, 0xB8, 0x64, 0xB0, +0x7E, 0x5E, 0x8F, 0xC0, 0x7F, 0x98, 0x46, 0xB0, 0x01, 0x02, 0x00, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x05, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x00, 0xFF, 0xFF, 0x73, +0x60, 0x01, 0x04, 0xFF, 0xFF, 0x73, 0x60, 0x01, 0x08, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x0C, 0xFF, +0xFF, 0x73, 0x60, 0x01, 0x10, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x14, 0xFF, 0xFF, 0x81, 0x70, 0x01, +0x19, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x1E, 0x4E, 0x53, 0x54, 0x00, 0x4E, 0x57, 0x54, 0x00, 0x4E, +0x50, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x42, 0x44, 0x54, 0x00, 0x41, 0x48, 0x53, 0x54, 0x00, +0x48, 0x41, 0x44, 0x54, 0x00, 0x48, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x7D, 0xE0, 0x00, 0x05, +0x19, 0x72, 0x00, 0x00, 0x00, 0x10, 0x41, 0x6C, 0x65, 0x75, 0x74, 0x69, 0x61, 0x6E, 0x20, 0x49, +0x73, 0x6C, 0x61, 0x6E, 0x64, 0x73, + +/* America/Anchorage */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x26, 0xCB, 0x89, 0x36, 0xC0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x42, 0x30, 0xFA, 0xD2, 0x47, 0xA0, 0xFE, 0xB8, 0x63, 0x40, +0xFF, 0xA8, 0x46, 0x30, 0x00, 0x98, 0x45, 0x40, 0x01, 0x88, 0x28, 0x30, 0x02, 0x78, 0x27, 0x40, +0x03, 0x71, 0x44, 0xB0, 0x04, 0x61, 0x43, 0xC0, 0x05, 0x51, 0x26, 0xB0, 0x06, 0x41, 0x25, 0xC0, +0x07, 0x31, 0x08, 0xB0, 0x07, 0x8D, 0x5F, 0xC0, 0x09, 0x10, 0xEA, 0xB0, 0x09, 0xAD, 0xDB, 0x40, +0x0A, 0xF0, 0xCC, 0xB0, 0x0B, 0xE0, 0xCB, 0xC0, 0x0C, 0xD9, 0xE9, 0x30, 0x0D, 0xC0, 0xAD, 0xC0, +0x0E, 0xB9, 0xCB, 0x30, 0x0F, 0xA9, 0xCA, 0x40, 0x10, 0x99, 0xAD, 0x30, 0x11, 0x89, 0xAC, 0x40, +0x12, 0x79, 0x8F, 0x30, 0x13, 0x69, 0x8E, 0x40, 0x14, 0x59, 0x71, 0x30, 0x15, 0x49, 0x70, 0x40, +0x16, 0x39, 0x53, 0x30, 0x17, 0x29, 0x52, 0x40, 0x18, 0x22, 0x6F, 0xB0, 0x19, 0x09, 0x34, 0x40, +0x1A, 0x02, 0x51, 0xB0, 0x1A, 0x2B, 0x14, 0x10, 0x1A, 0xF2, 0x42, 0xB0, 0x1B, 0xE2, 0x25, 0xA0, +0x1C, 0xD2, 0x24, 0xB0, 0x1D, 0xC2, 0x07, 0xA0, 0x1E, 0xB2, 0x06, 0xB0, 0x1F, 0xA1, 0xE9, 0xA0, +0x20, 0x76, 0x39, 0x30, 0x21, 0x81, 0xCB, 0xA0, 0x22, 0x56, 0x1B, 0x30, 0x23, 0x6A, 0xE8, 0x20, +0x24, 0x35, 0xFD, 0x30, 0x25, 0x4A, 0xCA, 0x20, 0x26, 0x15, 0xDF, 0x30, 0x27, 0x2A, 0xAC, 0x20, +0x27, 0xFE, 0xFB, 0xB0, 0x29, 0x0A, 0x8E, 0x20, 0x29, 0xDE, 0xDD, 0xB0, 0x2A, 0xEA, 0x70, 0x20, +0x2B, 0xBE, 0xBF, 0xB0, 0x2C, 0xD3, 0x8C, 0xA0, 0x2D, 0x9E, 0xA1, 0xB0, 0x2E, 0xB3, 0x6E, 0xA0, +0x2F, 0x7E, 0x83, 0xB0, 0x30, 0x93, 0x50, 0xA0, 0x31, 0x67, 0xA0, 0x30, 0x32, 0x73, 0x32, 0xA0, +0x33, 0x47, 0x82, 0x30, 0x34, 0x53, 0x14, 0xA0, 0x35, 0x27, 0x64, 0x30, 0x36, 0x32, 0xF6, 0xA0, +0x37, 0x07, 0x46, 0x30, 0x38, 0x1C, 0x13, 0x20, 0x38, 0xE7, 0x28, 0x30, 0x39, 0xFB, 0xF5, 0x20, +0x3A, 0xC7, 0x0A, 0x30, 0x3B, 0xDB, 0xD7, 0x20, 0x3C, 0xB0, 0x26, 0xB0, 0x3D, 0xBB, 0xB9, 0x20, +0x3E, 0x90, 0x08, 0xB0, 0x3F, 0x9B, 0x9B, 0x20, 0x40, 0x6F, 0xEA, 0xB0, 0x41, 0x84, 0xB7, 0xA0, +0x42, 0x4F, 0xCC, 0xB0, 0x43, 0x64, 0x99, 0xA0, 0x44, 0x2F, 0xAE, 0xB0, 0x45, 0x44, 0x7B, 0xA0, +0x45, 0xF3, 0xE1, 0x30, 0x47, 0x2D, 0x98, 0x20, 0x47, 0xD3, 0xC3, 0x30, 0x49, 0x0D, 0x7A, 0x20, +0x49, 0xB3, 0xA5, 0x30, 0x4A, 0xED, 0x5C, 0x20, 0x4B, 0x9C, 0xC1, 0xB0, 0x4C, 0xD6, 0x78, 0xA0, +0x4D, 0x7C, 0xA3, 0xB0, 0x4E, 0xB6, 0x5A, 0xA0, 0x4F, 0x5C, 0x85, 0xB0, 0x50, 0x96, 0x3C, 0xA0, +0x51, 0x3C, 0x67, 0xB0, 0x52, 0x76, 0x1E, 0xA0, 0x53, 0x1C, 0x49, 0xB0, 0x54, 0x56, 0x00, 0xA0, +0x54, 0xFC, 0x2B, 0xB0, 0x56, 0x35, 0xE2, 0xA0, 0x56, 0xE5, 0x48, 0x30, 0x58, 0x1E, 0xFF, 0x20, +0x58, 0xC5, 0x2A, 0x30, 0x59, 0xFE, 0xE1, 0x20, 0x5A, 0xA5, 0x0C, 0x30, 0x5B, 0xDE, 0xC3, 0x20, +0x5C, 0x84, 0xEE, 0x30, 0x5D, 0xBE, 0xA5, 0x20, 0x5E, 0x64, 0xD0, 0x30, 0x5F, 0x9E, 0x87, 0x20, +0x60, 0x4D, 0xEC, 0xB0, 0x61, 0x87, 0xA3, 0xA0, 0x62, 0x2D, 0xCE, 0xB0, 0x63, 0x67, 0x85, 0xA0, +0x64, 0x0D, 0xB0, 0xB0, 0x65, 0x47, 0x67, 0xA0, 0x65, 0xED, 0x92, 0xB0, 0x67, 0x27, 0x49, 0xA0, +0x67, 0xCD, 0x74, 0xB0, 0x69, 0x07, 0x2B, 0xA0, 0x69, 0xAD, 0x56, 0xB0, 0x6A, 0xE7, 0x0D, 0xA0, +0x6B, 0x96, 0x73, 0x30, 0x6C, 0xD0, 0x2A, 0x20, 0x6D, 0x76, 0x55, 0x30, 0x6E, 0xB0, 0x0C, 0x20, +0x6F, 0x56, 0x37, 0x30, 0x70, 0x8F, 0xEE, 0x20, 0x71, 0x36, 0x19, 0x30, 0x72, 0x6F, 0xD0, 0x20, +0x73, 0x15, 0xFB, 0x30, 0x74, 0x4F, 0xB2, 0x20, 0x74, 0xFF, 0x17, 0xB0, 0x76, 0x38, 0xCE, 0xA0, +0x76, 0xDE, 0xF9, 0xB0, 0x78, 0x18, 0xB0, 0xA0, 0x78, 0xBE, 0xDB, 0xB0, 0x79, 0xF8, 0x92, 0xA0, +0x7A, 0x9E, 0xBD, 0xB0, 0x7B, 0xD8, 0x74, 0xA0, 0x7C, 0x7E, 0x9F, 0xB0, 0x7D, 0xB8, 0x56, 0xA0, +0x7E, 0x5E, 0x81, 0xB0, 0x7F, 0x98, 0x38, 0xA0, 0x01, 0x02, 0x00, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x05, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x00, 0xFF, 0xFF, 0x81, +0x70, 0x01, 0x04, 0xFF, 0xFF, 0x81, 0x70, 0x01, 0x09, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x0E, 0xFF, +0xFF, 0x81, 0x70, 0x01, 0x13, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x18, 0xFF, 0xFF, 0x8F, 0x80, 0x01, +0x1C, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x21, 0x43, 0x41, 0x54, 0x00, 0x43, 0x41, 0x57, 0x54, 0x00, +0x43, 0x41, 0x50, 0x54, 0x00, 0x41, 0x48, 0x53, 0x54, 0x00, 0x41, 0x48, 0x44, 0x54, 0x00, 0x59, +0x53, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00, 0x41, 0x4B, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE6, 0xBD, +0x8D, 0x00, 0x2D, 0xED, 0xB4, 0x00, 0x00, 0x00, 0x0B, 0x41, 0x6C, 0x61, 0x73, 0x6B, 0x61, 0x20, +0x54, 0x69, 0x6D, 0x65, + +/* America/Anguilla */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x93, 0x37, 0x35, 0x20, +0x01, 0xFF, 0xFF, 0xC4, 0xE0, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x19, 0xA0, 0x00, 0xB2, 0x6D, +0x15, 0x00, 0x00, 0x00, 0x00, + +/* America/Antigua */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x93, 0x37, 0x33, 0xF0, +0xDC, 0x42, 0xDC, 0x50, 0x01, 0x02, 0xFF, 0xFF, 0xC6, 0x10, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, +0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, +0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x58, 0x68, 0x00, 0xB4, +0x5B, 0xE0, 0x00, 0x00, 0x00, 0x00, + +/* America/Araguaina */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x74, 0x30, +0xB8, 0x0F, 0x49, 0xE0, 0xB8, 0xFD, 0x40, 0xA0, 0xB9, 0xF1, 0x34, 0x30, 0xBA, 0xDE, 0x74, 0x20, +0xDA, 0x38, 0xAE, 0x30, 0xDA, 0xEB, 0xFA, 0x30, 0xDC, 0x19, 0xE1, 0xB0, 0xDC, 0xB9, 0x59, 0x20, +0xDD, 0xFB, 0x15, 0x30, 0xDE, 0x9B, 0xDE, 0x20, 0xDF, 0xDD, 0x9A, 0x30, 0xE0, 0x54, 0x33, 0x20, +0xF4, 0x97, 0xFF, 0xB0, 0xF5, 0x05, 0x5E, 0x20, 0xF6, 0xC0, 0x64, 0x30, 0xF7, 0x0E, 0x1E, 0xA0, +0xF8, 0x51, 0x2C, 0x30, 0xF8, 0xC7, 0xC5, 0x20, 0xFA, 0x0A, 0xD2, 0xB0, 0xFA, 0xA8, 0xF8, 0xA0, +0xFB, 0xEC, 0x06, 0x30, 0xFC, 0x8B, 0x7D, 0xA0, 0x1D, 0xC9, 0x8E, 0x30, 0x1E, 0x78, 0xD7, 0xA0, +0x1F, 0xA0, 0x35, 0xB0, 0x20, 0x33, 0xCF, 0xA0, 0x21, 0x81, 0x69, 0x30, 0x22, 0x0B, 0xC8, 0xA0, +0x23, 0x58, 0x10, 0xB0, 0x23, 0xE2, 0x70, 0x20, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xD4, 0xC7, 0x20, +0x30, 0x80, 0x79, 0x30, 0x31, 0x1D, 0x4D, 0xA0, 0x32, 0x57, 0x20, 0xB0, 0x33, 0x06, 0x6A, 0x20, +0x34, 0x38, 0x54, 0x30, 0x34, 0xF8, 0xC1, 0x20, 0x36, 0x20, 0x1F, 0x30, 0x36, 0xCF, 0x68, 0xA0, +0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xB8, 0x85, 0x20, 0x39, 0xDF, 0xE3, 0x30, 0x3A, 0x8F, 0x2C, 0xA0, +0x3B, 0xC8, 0xFF, 0xB0, 0x3C, 0x6F, 0x0E, 0xA0, 0x3D, 0xC4, 0x91, 0x30, 0x3E, 0x4E, 0xF0, 0xA0, +0x50, 0x83, 0x65, 0x30, 0x51, 0x20, 0x39, 0xA0, 0x52, 0x63, 0x47, 0x30, 0x53, 0x00, 0x1B, 0xA0, +0x54, 0x43, 0x29, 0x30, 0x54, 0xE9, 0x38, 0x20, 0x56, 0x23, 0x0B, 0x30, 0x56, 0xC9, 0x1A, 0x20, +0x58, 0x02, 0xED, 0x30, 0x58, 0xA8, 0xFC, 0x20, 0x59, 0xE2, 0xCF, 0x30, 0x5A, 0x88, 0xDE, 0x20, +0x5B, 0xCB, 0xEB, 0xB0, 0x5C, 0x68, 0xC0, 0x20, 0x5D, 0xAB, 0xCD, 0xB0, 0x5E, 0x48, 0xA2, 0x20, +0x5F, 0x8B, 0xAF, 0xB0, 0x60, 0x31, 0xBE, 0xA0, 0x61, 0x6B, 0x91, 0xB0, 0x62, 0x11, 0xA0, 0xA0, +0x63, 0x4B, 0x73, 0xB0, 0x63, 0xFA, 0xBD, 0x20, 0x65, 0x2B, 0x55, 0xB0, 0x65, 0xD1, 0x64, 0xA0, +0x67, 0x14, 0x72, 0x30, 0x67, 0xB1, 0x46, 0xA0, 0x68, 0xF4, 0x54, 0x30, 0x69, 0x9A, 0x63, 0x20, +0x6A, 0xD4, 0x36, 0x30, 0x6B, 0x7A, 0x45, 0x20, 0x6C, 0xB4, 0x18, 0x30, 0x6D, 0x5A, 0x27, 0x20, +0x6E, 0x93, 0xFA, 0x30, 0x6F, 0x3A, 0x09, 0x20, 0x70, 0x7D, 0x16, 0xB0, 0x71, 0x19, 0xEB, 0x20, +0x72, 0x5C, 0xF8, 0xB0, 0x72, 0xF9, 0xCD, 0x20, 0x74, 0x3C, 0xDA, 0xB0, 0x74, 0xD9, 0xAF, 0x20, +0x76, 0x1C, 0xBC, 0xB0, 0x76, 0xC2, 0xCB, 0xA0, 0x77, 0xFC, 0x9E, 0xB0, 0x78, 0xAB, 0xE8, 0x20, +0x79, 0xDC, 0x80, 0xB0, 0x7A, 0x82, 0x8F, 0xA0, 0x7B, 0xC5, 0x9D, 0x30, 0x7C, 0x62, 0x71, 0xA0, +0x7D, 0xA5, 0x7F, 0x30, 0x7E, 0x4B, 0x8E, 0x20, 0x7F, 0x85, 0x61, 0x30, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0xFF, 0xFF, 0xD2, 0xD0, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, +0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x52, 0x53, 0x54, 0x00, 0x42, 0x52, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x57, 0xC0, 0x00, 0xC9, 0x1C, 0x60, 0x00, 0x00, 0x00, +0x09, 0x54, 0x6F, 0x63, 0x61, 0x6E, 0x74, 0x69, 0x6E, 0x73, + +/* America/Argentina/Buenos_Aires */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, +0x27, 0xD0, 0x58, 0xA0, 0x29, 0x00, 0xF1, 0x30, 0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x47, 0x77, 0x09, 0xB0, +0x47, 0xDC, 0x7F, 0x20, 0x48, 0xFA, 0xA2, 0xB0, 0x49, 0xBC, 0x61, 0x20, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0xFF, 0xFF, 0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0x43, 0x4D, 0x54, 0x00, 0x41, 0x52, 0x54, 0x00, 0x41, 0x52, +0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x88, +0xA0, 0x00, 0xB9, 0x78, 0x78, 0x00, 0x00, 0x00, 0x15, 0x42, 0x75, 0x65, 0x6E, 0x6F, 0x73, 0x20, +0x41, 0x69, 0x72, 0x65, 0x73, 0x20, 0x28, 0x42, 0x41, 0x2C, 0x20, 0x43, 0x46, 0x29, + +/* America/Argentina/Catamarca */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, +0x27, 0xD0, 0x58, 0xA0, 0x29, 0x00, 0xFF, 0x40, 0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x40, 0xBB, 0xF1, 0x30, +0x40, 0xD5, 0x0B, 0xC0, 0x47, 0x77, 0x09, 0xB0, 0x47, 0xDC, 0x7F, 0x20, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, +0x03, 0x04, 0x02, 0x04, 0x05, 0x04, 0x03, 0x04, 0xFF, 0xFF, 0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x43, 0x4D, 0x54, 0x00, +0x41, 0x52, 0x54, 0x00, 0x41, 0x52, 0x53, 0x54, 0x00, 0x57, 0x41, 0x52, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xE4, 0x75, 0x00, 0xAE, +0x47, 0xE2, 0x00, 0x00, 0x00, 0x1B, 0x43, 0x61, 0x74, 0x61, 0x6D, 0x61, 0x72, 0x63, 0x61, 0x20, +0x28, 0x43, 0x54, 0x29, 0x2C, 0x20, 0x43, 0x68, 0x75, 0x62, 0x75, 0x74, 0x20, 0x28, 0x43, 0x48, +0x29, + +/* America/Argentina/ComodRivadavia */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, +0x27, 0xD0, 0x58, 0xA0, 0x29, 0x00, 0xFF, 0x40, 0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x40, 0xBB, 0xF1, 0x30, +0x40, 0xD5, 0x0B, 0xC0, 0x47, 0x77, 0x09, 0xB0, 0x47, 0xDC, 0x7F, 0x20, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, +0x03, 0x04, 0x02, 0x04, 0x05, 0x04, 0x03, 0x04, 0xFF, 0xFF, 0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x43, 0x4D, 0x54, 0x00, +0x41, 0x52, 0x54, 0x00, 0x41, 0x52, 0x53, 0x54, 0x00, 0x57, 0x41, 0x52, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* America/Argentina/Cordoba */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, +0x27, 0xD0, 0x58, 0xA0, 0x29, 0x00, 0xFF, 0x40, 0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x47, 0x77, 0x09, 0xB0, +0x47, 0xDC, 0x7F, 0x20, 0x48, 0xFA, 0xA2, 0xB0, 0x49, 0xBC, 0x61, 0x20, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, +0x03, 0x04, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0xFF, 0xFF, 0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x43, 0x4D, 0x54, 0x00, +0x41, 0x52, 0x54, 0x00, 0x41, 0x52, 0x53, 0x54, 0x00, 0x57, 0x41, 0x52, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x6A, 0xA0, 0x00, 0xB0, +0xB8, 0xE2, 0x00, 0x00, 0x00, 0x2F, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, +0x69, 0x6F, 0x6E, 0x73, 0x20, 0x28, 0x43, 0x42, 0x2C, 0x20, 0x43, 0x43, 0x2C, 0x20, 0x43, 0x4E, +0x2C, 0x20, 0x45, 0x52, 0x2C, 0x20, 0x46, 0x4D, 0x2C, 0x20, 0x4D, 0x4E, 0x2C, 0x20, 0x53, 0x45, +0x2C, 0x20, 0x53, 0x46, 0x29, + +/* America/Argentina/Jujuy */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x18, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x2A, 0x57, 0xC0, +0x27, 0xE2, 0xDB, 0xB0, 0x28, 0xEE, 0x8A, 0x40, 0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x47, 0x77, 0x09, 0xB0, +0x47, 0xDC, 0x7F, 0x20, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x05, 0x06, 0x05, 0x03, 0x04, 0x03, 0x04, 0x02, 0x04, 0x03, 0x04, 0xFF, 0xFF, +0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, +0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, +0x00, 0x0D, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x12, 0x43, 0x4D, 0x54, 0x00, 0x41, 0x52, 0x54, 0x00, +0x41, 0x52, 0x53, 0x54, 0x00, 0x57, 0x41, 0x52, 0x54, 0x00, 0x57, 0x41, 0x52, 0x53, 0x54, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, +0x6D, 0xA2, 0x00, 0xAF, 0x04, 0xB0, 0x00, 0x00, 0x00, 0x0A, 0x4A, 0x75, 0x6A, 0x75, 0x79, 0x20, +0x28, 0x4A, 0x59, 0x29, + +/* America/Argentina/La_Rioja */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, +0x27, 0xCD, 0xB5, 0xA0, 0x28, 0x26, 0x26, 0x40, 0x29, 0x00, 0xF1, 0x30, 0x29, 0xB0, 0x3A, 0xA0, +0x2A, 0xE0, 0xD3, 0x30, 0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, +0x40, 0xBB, 0xF1, 0x30, 0x40, 0xD5, 0x0B, 0xC0, 0x47, 0x77, 0x09, 0xB0, 0x47, 0xDC, 0x7F, 0x20, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x05, 0x04, 0x03, 0x04, 0x03, 0x04, 0x02, 0x04, 0x05, 0x04, 0x03, 0x04, 0xFF, 0xFF, 0xC3, +0xD0, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, +0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, +0x0D, 0x43, 0x4D, 0x54, 0x00, 0x41, 0x52, 0x54, 0x00, 0x41, 0x52, 0x53, 0x54, 0x00, 0x57, 0x41, +0x52, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x5C, 0x6A, 0xDA, 0x00, 0xAC, 0xA7, 0x38, 0x00, 0x00, 0x00, 0x0D, 0x4C, 0x61, 0x20, 0x52, 0x69, +0x6F, 0x6A, 0x61, 0x20, 0x28, 0x4C, 0x52, 0x29, + +/* America/Argentina/Mendoza */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x18, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x19, 0x34, 0x40, +0x27, 0xCD, 0xC3, 0xB0, 0x28, 0xFA, 0x67, 0xC0, 0x29, 0xB0, 0x48, 0xB0, 0x2A, 0xE0, 0xE1, 0x40, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x40, 0xB0, 0x13, 0xB0, +0x41, 0x56, 0x3E, 0xC0, 0x47, 0x77, 0x09, 0xB0, 0x47, 0xDC, 0x7F, 0x20, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, +0x03, 0x04, 0x02, 0x04, 0x05, 0x04, 0x03, 0x04, 0xFF, 0xFF, 0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0xFF, 0xFF, 0xD5, 0xD0, +0x01, 0x12, 0x43, 0x4D, 0x54, 0x00, 0x41, 0x52, 0x54, 0x00, 0x41, 0x52, 0x53, 0x54, 0x00, 0x57, +0x41, 0x52, 0x54, 0x00, 0x57, 0x41, 0x52, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x27, 0x32, 0x00, 0xA9, 0xA6, 0xFD, +0x00, 0x00, 0x00, 0x0C, 0x4D, 0x65, 0x6E, 0x64, 0x6F, 0x7A, 0x61, 0x20, 0x28, 0x4D, 0x5A, 0x29, + + +/* America/Argentina/Rio_Gallegos */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, +0x27, 0xD0, 0x58, 0xA0, 0x29, 0x00, 0xF1, 0x30, 0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x40, 0xBB, 0xF1, 0x30, +0x40, 0xD5, 0x0B, 0xC0, 0x47, 0x77, 0x09, 0xB0, 0x47, 0xDC, 0x7F, 0x20, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x02, 0x04, 0x05, 0x04, 0x03, 0x04, 0xFF, 0xFF, 0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x43, 0x4D, 0x54, 0x00, +0x41, 0x52, 0x54, 0x00, 0x41, 0x52, 0x53, 0x54, 0x00, 0x57, 0x41, 0x52, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x8A, 0xFA, 0x00, 0xA9, +0x0A, 0xBD, 0x00, 0x00, 0x00, 0x0F, 0x53, 0x61, 0x6E, 0x74, 0x61, 0x20, 0x43, 0x72, 0x75, 0x7A, +0x20, 0x28, 0x53, 0x43, 0x29, + +/* America/Argentina/Salta */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, +0x27, 0xD0, 0x58, 0xA0, 0x29, 0x00, 0xFF, 0x40, 0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x47, 0x77, 0x09, 0xB0, +0x47, 0xDC, 0x7F, 0x20, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, 0x03, 0x04, 0x02, 0x04, 0x03, 0x04, 0xFF, 0xFF, +0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, +0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, +0x00, 0x0D, 0x43, 0x4D, 0x54, 0x00, 0x41, 0x52, 0x54, 0x00, 0x41, 0x52, 0x53, 0x54, 0x00, 0x57, +0x41, 0x52, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x63, 0x83, 0x42, 0x00, 0xAE, 0xD7, 0x1D, 0x00, 0x00, 0x00, 0x10, 0x28, 0x53, 0x41, 0x2C, +0x20, 0x4C, 0x50, 0x2C, 0x20, 0x4E, 0x51, 0x2C, 0x20, 0x52, 0x4E, 0x29, + +/* America/Argentina/San_Juan */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, +0x27, 0xCD, 0xB5, 0xA0, 0x28, 0x26, 0x26, 0x40, 0x29, 0x00, 0xF1, 0x30, 0x29, 0xB0, 0x3A, 0xA0, +0x2A, 0xE0, 0xD3, 0x30, 0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, +0x40, 0xBA, 0x9F, 0xB0, 0x41, 0x03, 0x30, 0x40, 0x47, 0x77, 0x09, 0xB0, 0x47, 0xDC, 0x7F, 0x20, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x05, 0x04, 0x03, 0x04, 0x03, 0x04, 0x02, 0x04, 0x05, 0x04, 0x03, 0x04, 0xFF, 0xFF, 0xC3, +0xD0, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, +0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, +0x0D, 0x43, 0x4D, 0x54, 0x00, 0x41, 0x52, 0x54, 0x00, 0x41, 0x52, 0x53, 0x54, 0x00, 0x57, 0x41, +0x52, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x59, 0x36, 0x8A, 0x00, 0xAA, 0x1C, 0x2D, 0x00, 0x00, 0x00, 0x0D, 0x53, 0x61, 0x6E, 0x20, 0x4A, +0x75, 0x61, 0x6E, 0x20, 0x28, 0x53, 0x4A, 0x29, + +/* America/Argentina/San_Luis */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x18, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xFD, 0xA5, 0xA0, 0x27, 0x19, 0x34, 0x40, +0x27, 0xCD, 0xC3, 0xB0, 0x28, 0x47, 0x1B, 0xC0, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, +0x40, 0xBA, 0x9F, 0xB0, 0x41, 0x03, 0x30, 0x40, 0x47, 0x77, 0x09, 0xB0, 0x47, 0x93, 0xFC, 0xA0, +0x47, 0xD3, 0x52, 0xB0, 0x48, 0xF1, 0x76, 0x40, 0x49, 0xB3, 0x34, 0xB0, 0x4A, 0xD1, 0x58, 0x40, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, +0x06, 0x05, 0x04, 0x06, 0x04, 0x05, 0x04, 0x03, 0x06, 0x05, 0x06, 0x05, 0x06, 0xFF, 0xFF, 0xC3, +0xD0, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, +0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, +0x0D, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x12, 0x43, 0x4D, 0x54, 0x00, 0x41, 0x52, 0x54, 0x00, 0x41, +0x52, 0x53, 0x54, 0x00, 0x57, 0x41, 0x52, 0x54, 0x00, 0x57, 0x41, 0x52, 0x53, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x7D, +0xED, 0x00, 0xAD, 0x6A, 0x88, 0x00, 0x00, 0x00, 0x0D, 0x53, 0x61, 0x6E, 0x20, 0x4C, 0x75, 0x69, +0x73, 0x20, 0x28, 0x53, 0x4C, 0x29, + +/* America/Argentina/Tucuman */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, +0x27, 0xD0, 0x58, 0xA0, 0x29, 0x00, 0xFF, 0x40, 0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x40, 0xBB, 0xF1, 0x30, +0x40, 0xCB, 0xD1, 0x40, 0x47, 0x77, 0x09, 0xB0, 0x47, 0xDC, 0x7F, 0x20, 0x48, 0xFA, 0xA2, 0xB0, +0x49, 0xBC, 0x61, 0x20, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, 0x03, 0x04, 0x02, 0x04, 0x05, 0x04, 0x03, 0x04, +0x03, 0x04, 0xFF, 0xFF, 0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, +0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, +0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x43, 0x4D, 0x54, 0x00, 0x41, 0x52, 0x54, 0x00, 0x41, 0x52, +0x53, 0x54, 0x00, 0x57, 0x41, 0x52, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x68, 0xFD, 0x00, 0xAF, 0x25, 0x3D, 0x00, 0x00, 0x00, 0x0C, +0x54, 0x75, 0x63, 0x75, 0x6D, 0x61, 0x6E, 0x20, 0x28, 0x54, 0x4D, 0x29, + +/* America/Argentina/Ushuaia */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, +0x27, 0xD0, 0x58, 0xA0, 0x29, 0x00, 0xF1, 0x30, 0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x40, 0xB9, 0x4E, 0x30, +0x40, 0xD5, 0x0B, 0xC0, 0x47, 0x77, 0x09, 0xB0, 0x47, 0xDC, 0x7F, 0x20, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x02, 0x04, 0x05, 0x04, 0x03, 0x04, 0xFF, 0xFF, 0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x43, 0x4D, 0x54, 0x00, +0x41, 0x52, 0x54, 0x00, 0x41, 0x52, 0x53, 0x54, 0x00, 0x57, 0x41, 0x52, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0xB6, 0x00, 0x00, 0xAA, +0x70, 0xD0, 0x00, 0x00, 0x00, 0x15, 0x54, 0x69, 0x65, 0x72, 0x72, 0x61, 0x20, 0x64, 0x65, 0x6C, +0x20, 0x46, 0x75, 0x65, 0x67, 0x6F, 0x20, 0x28, 0x54, 0x46, 0x29, + +/* America/Aruba */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x93, 0x1E, 0x2F, 0x38, +0xF6, 0x98, 0xEC, 0x48, 0x01, 0x02, 0xFF, 0xFF, 0xBE, 0x48, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0xB8, +0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x4E, 0x54, 0x00, +0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x67, 0x10, 0x00, 0xA7, +0xE5, 0xC5, 0x00, 0x00, 0x00, 0x00, + +/* America/Asuncion */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0D, 0xB8, 0x17, 0xF5, 0x90, +0x05, 0x2B, 0xDA, 0x40, 0x07, 0xFC, 0xF0, 0xB0, 0x0A, 0xCF, 0x74, 0xC0, 0x0B, 0x97, 0xCA, 0xB0, +0x0C, 0xB1, 0xF9, 0xC0, 0x0D, 0x78, 0xFE, 0x30, 0x0E, 0x93, 0x2D, 0x40, 0x0F, 0x5A, 0x31, 0xB0, +0x10, 0x74, 0x60, 0xC0, 0x11, 0x64, 0x43, 0xB0, 0x12, 0x55, 0x94, 0x40, 0x13, 0x46, 0xC8, 0xB0, +0x14, 0x38, 0x19, 0x40, 0x15, 0x27, 0xFC, 0x30, 0x16, 0x19, 0x4C, 0xC0, 0x17, 0x09, 0x2F, 0xB0, +0x17, 0xFA, 0x80, 0x40, 0x18, 0xEA, 0x63, 0x30, 0x19, 0xDB, 0xB3, 0xC0, 0x1A, 0xCC, 0xE8, 0x30, +0x1B, 0xBE, 0x38, 0xC0, 0x1C, 0xAE, 0x1B, 0xB0, 0x1D, 0x9F, 0x6C, 0x40, 0x1E, 0x8F, 0x4F, 0x30, +0x1F, 0x80, 0x9F, 0xC0, 0x20, 0x70, 0x82, 0xB0, 0x21, 0x61, 0xD3, 0x40, 0x22, 0x53, 0x07, 0xB0, +0x23, 0x44, 0x58, 0x40, 0x24, 0x34, 0x3B, 0x30, 0x25, 0x41, 0x3B, 0x40, 0x26, 0x15, 0x6E, 0xB0, +0x27, 0x06, 0xBF, 0x40, 0x27, 0xF6, 0xA2, 0x30, 0x28, 0xEE, 0x8A, 0x40, 0x29, 0xB0, 0x48, 0xB0, +0x2A, 0xCF, 0xBD, 0xC0, 0x2B, 0xB9, 0x09, 0x30, 0x2C, 0xAB, 0xAB, 0x40, 0x2D, 0x70, 0x0C, 0xB0, +0x2E, 0x8C, 0xDE, 0xC0, 0x2F, 0x4F, 0xEE, 0xB0, 0x30, 0x6E, 0x12, 0x40, 0x31, 0x36, 0x68, 0x30, +0x32, 0x57, 0x2E, 0xC0, 0x33, 0x0F, 0xB2, 0xB0, 0x34, 0x37, 0x10, 0xC0, 0x34, 0xF8, 0xCF, 0x30, +0x36, 0x16, 0xF2, 0xC0, 0x36, 0xE1, 0xEB, 0xB0, 0x37, 0xF6, 0xD4, 0xC0, 0x38, 0xC1, 0xCD, 0xB0, +0x39, 0xD6, 0xB6, 0xC0, 0x3A, 0xA1, 0xAF, 0xB0, 0x3B, 0xBF, 0xD3, 0x40, 0x3C, 0xAF, 0xB6, 0x30, +0x3D, 0x71, 0x90, 0xC0, 0x3E, 0x8F, 0x98, 0x30, 0x3F, 0x5A, 0xAD, 0x40, 0x40, 0x6F, 0x7A, 0x30, +0x41, 0x71, 0xEE, 0x40, 0x42, 0x33, 0xAC, 0xB0, 0x43, 0x51, 0xD0, 0x40, 0x44, 0x13, 0x8E, 0xB0, +0x45, 0x31, 0xB2, 0x40, 0x45, 0xF3, 0x70, 0xB0, 0x47, 0x1A, 0xCE, 0xC0, 0x47, 0xD3, 0x52, 0xB0, +0x48, 0xFA, 0xB0, 0xC0, 0x49, 0xB3, 0x34, 0xB0, 0x4A, 0xDA, 0x92, 0xC0, 0x4B, 0xC1, 0x3B, 0x30, +0x4C, 0xA7, 0xFF, 0xC0, 0x4D, 0xA1, 0x1D, 0x30, 0x4E, 0x87, 0xE1, 0xC0, 0x4F, 0x80, 0xFF, 0x30, +0x50, 0x70, 0xFE, 0x40, 0x51, 0x6A, 0x1B, 0xB0, 0x52, 0x50, 0xE0, 0x40, 0x53, 0x49, 0xFD, 0xB0, +0x54, 0x30, 0xC2, 0x40, 0x55, 0x29, 0xDF, 0xB0, 0x56, 0x10, 0xA4, 0x40, 0x57, 0x09, 0xC1, 0xB0, +0x57, 0xF0, 0x86, 0x40, 0x58, 0xE9, 0xA3, 0xB0, 0x59, 0xD0, 0x68, 0x40, 0x5A, 0xC9, 0x85, 0xB0, +0x5B, 0xB9, 0x84, 0xC0, 0x5C, 0xB2, 0xA2, 0x30, 0x5D, 0x99, 0x66, 0xC0, 0x5E, 0x92, 0x84, 0x30, +0x5F, 0x79, 0x48, 0xC0, 0x60, 0x72, 0x66, 0x30, 0x61, 0x59, 0x2A, 0xC0, 0x62, 0x52, 0x48, 0x30, +0x63, 0x39, 0x0C, 0xC0, 0x64, 0x32, 0x2A, 0x30, 0x65, 0x18, 0xEE, 0xC0, 0x66, 0x1B, 0x46, 0xB0, +0x67, 0x02, 0x0B, 0x40, 0x67, 0xFB, 0x28, 0xB0, 0x68, 0xE1, 0xED, 0x40, 0x69, 0xDB, 0x0A, 0xB0, +0x6A, 0xC1, 0xCF, 0x40, 0x6B, 0xBA, 0xEC, 0xB0, 0x6C, 0xA1, 0xB1, 0x40, 0x6D, 0x9A, 0xCE, 0xB0, +0x6E, 0x81, 0x93, 0x40, 0x6F, 0x7A, 0xB0, 0xB0, 0x70, 0x6A, 0xAF, 0xC0, 0x71, 0x63, 0xCD, 0x30, +0x72, 0x4A, 0x91, 0xC0, 0x73, 0x43, 0xAF, 0x30, 0x74, 0x2A, 0x73, 0xC0, 0x75, 0x23, 0x91, 0x30, +0x76, 0x0A, 0x55, 0xC0, 0x77, 0x03, 0x73, 0x30, 0x77, 0xEA, 0x37, 0xC0, 0x78, 0xE3, 0x55, 0x30, +0x79, 0xCA, 0x19, 0xC0, 0x7A, 0xC3, 0x37, 0x30, 0x7B, 0xB3, 0x36, 0x40, 0x7C, 0xAC, 0x53, 0xB0, +0x7D, 0x93, 0x18, 0x40, 0x7E, 0x8C, 0x35, 0xB0, 0x7F, 0x72, 0xFA, 0x40, 0x01, 0x02, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0xFF, 0xFF, 0xC9, 0xF0, +0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, +0xD5, 0xD0, 0x01, 0x08, 0x41, 0x4D, 0x54, 0x00, 0x50, 0x59, 0x54, 0x00, 0x50, 0x59, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0xC6, 0x75, 0x00, 0xBA, 0xAA, +0x75, 0x00, 0x00, 0x00, 0x00, + +/* America/Atikokan */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x9E, 0xB8, 0xA1, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xC8, 0xF8, 0x57, 0x60, 0xCB, 0x88, 0xFE, 0x80, 0xD2, 0x23, 0xF4, 0x70, +0xD2, 0x61, 0x09, 0xF0, 0x00, 0x01, 0x00, 0x02, 0x03, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, +0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, +0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, +0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xD3, 0xBA, 0x95, 0x00, 0x86, 0xDA, 0xC9, 0x00, 0x00, +0x00, 0x44, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x53, 0x74, 0x61, 0x6E, 0x64, 0x61, +0x72, 0x64, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x41, 0x74, 0x69, 0x6B, 0x6F, 0x6B, +0x61, 0x6E, 0x2C, 0x20, 0x4F, 0x6E, 0x74, 0x61, 0x72, 0x69, 0x6F, 0x20, 0x61, 0x6E, 0x64, 0x20, +0x53, 0x6F, 0x75, 0x74, 0x68, 0x61, 0x6D, 0x70, 0x74, 0x6F, 0x6E, 0x20, 0x49, 0x2C, 0x20, 0x4E, +0x75, 0x6E, 0x61, 0x76, 0x75, 0x74, + +/* America/Atka */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x23, 0xCB, 0x89, 0x44, 0xD0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x50, 0x40, 0xFA, 0xD2, 0x55, 0xB0, 0xFE, 0xB8, 0x71, 0x50, +0xFF, 0xA8, 0x54, 0x40, 0x00, 0x98, 0x53, 0x50, 0x01, 0x88, 0x36, 0x40, 0x02, 0x78, 0x35, 0x50, +0x03, 0x71, 0x52, 0xC0, 0x04, 0x61, 0x51, 0xD0, 0x05, 0x51, 0x34, 0xC0, 0x06, 0x41, 0x33, 0xD0, +0x07, 0x31, 0x16, 0xC0, 0x07, 0x8D, 0x6D, 0xD0, 0x09, 0x10, 0xF8, 0xC0, 0x09, 0xAD, 0xE9, 0x50, +0x0A, 0xF0, 0xDA, 0xC0, 0x0B, 0xE0, 0xD9, 0xD0, 0x0C, 0xD9, 0xF7, 0x40, 0x0D, 0xC0, 0xBB, 0xD0, +0x0E, 0xB9, 0xD9, 0x40, 0x0F, 0xA9, 0xD8, 0x50, 0x10, 0x99, 0xBB, 0x40, 0x11, 0x89, 0xBA, 0x50, +0x12, 0x79, 0x9D, 0x40, 0x13, 0x69, 0x9C, 0x50, 0x14, 0x59, 0x7F, 0x40, 0x15, 0x49, 0x7E, 0x50, +0x16, 0x39, 0x61, 0x40, 0x17, 0x29, 0x60, 0x50, 0x18, 0x22, 0x7D, 0xC0, 0x19, 0x09, 0x42, 0x50, +0x1A, 0x02, 0x5F, 0xC0, 0x1A, 0x2B, 0x22, 0x20, 0x1A, 0xF2, 0x50, 0xC0, 0x1B, 0xE2, 0x33, 0xB0, +0x1C, 0xD2, 0x32, 0xC0, 0x1D, 0xC2, 0x15, 0xB0, 0x1E, 0xB2, 0x14, 0xC0, 0x1F, 0xA1, 0xF7, 0xB0, +0x20, 0x76, 0x47, 0x40, 0x21, 0x81, 0xD9, 0xB0, 0x22, 0x56, 0x29, 0x40, 0x23, 0x6A, 0xF6, 0x30, +0x24, 0x36, 0x0B, 0x40, 0x25, 0x4A, 0xD8, 0x30, 0x26, 0x15, 0xED, 0x40, 0x27, 0x2A, 0xBA, 0x30, +0x27, 0xFF, 0x09, 0xC0, 0x29, 0x0A, 0x9C, 0x30, 0x29, 0xDE, 0xEB, 0xC0, 0x2A, 0xEA, 0x7E, 0x30, +0x2B, 0xBE, 0xCD, 0xC0, 0x2C, 0xD3, 0x9A, 0xB0, 0x2D, 0x9E, 0xAF, 0xC0, 0x2E, 0xB3, 0x7C, 0xB0, +0x2F, 0x7E, 0x91, 0xC0, 0x30, 0x93, 0x5E, 0xB0, 0x31, 0x67, 0xAE, 0x40, 0x32, 0x73, 0x40, 0xB0, +0x33, 0x47, 0x90, 0x40, 0x34, 0x53, 0x22, 0xB0, 0x35, 0x27, 0x72, 0x40, 0x36, 0x33, 0x04, 0xB0, +0x37, 0x07, 0x54, 0x40, 0x38, 0x1C, 0x21, 0x30, 0x38, 0xE7, 0x36, 0x40, 0x39, 0xFC, 0x03, 0x30, +0x3A, 0xC7, 0x18, 0x40, 0x3B, 0xDB, 0xE5, 0x30, 0x3C, 0xB0, 0x34, 0xC0, 0x3D, 0xBB, 0xC7, 0x30, +0x3E, 0x90, 0x16, 0xC0, 0x3F, 0x9B, 0xA9, 0x30, 0x40, 0x6F, 0xF8, 0xC0, 0x41, 0x84, 0xC5, 0xB0, +0x42, 0x4F, 0xDA, 0xC0, 0x43, 0x64, 0xA7, 0xB0, 0x44, 0x2F, 0xBC, 0xC0, 0x45, 0x44, 0x89, 0xB0, +0x45, 0xF3, 0xEF, 0x40, 0x47, 0x2D, 0xA6, 0x30, 0x47, 0xD3, 0xD1, 0x40, 0x49, 0x0D, 0x88, 0x30, +0x49, 0xB3, 0xB3, 0x40, 0x4A, 0xED, 0x6A, 0x30, 0x4B, 0x9C, 0xCF, 0xC0, 0x4C, 0xD6, 0x86, 0xB0, +0x4D, 0x7C, 0xB1, 0xC0, 0x4E, 0xB6, 0x68, 0xB0, 0x4F, 0x5C, 0x93, 0xC0, 0x50, 0x96, 0x4A, 0xB0, +0x51, 0x3C, 0x75, 0xC0, 0x52, 0x76, 0x2C, 0xB0, 0x53, 0x1C, 0x57, 0xC0, 0x54, 0x56, 0x0E, 0xB0, +0x54, 0xFC, 0x39, 0xC0, 0x56, 0x35, 0xF0, 0xB0, 0x56, 0xE5, 0x56, 0x40, 0x58, 0x1F, 0x0D, 0x30, +0x58, 0xC5, 0x38, 0x40, 0x59, 0xFE, 0xEF, 0x30, 0x5A, 0xA5, 0x1A, 0x40, 0x5B, 0xDE, 0xD1, 0x30, +0x5C, 0x84, 0xFC, 0x40, 0x5D, 0xBE, 0xB3, 0x30, 0x5E, 0x64, 0xDE, 0x40, 0x5F, 0x9E, 0x95, 0x30, +0x60, 0x4D, 0xFA, 0xC0, 0x61, 0x87, 0xB1, 0xB0, 0x62, 0x2D, 0xDC, 0xC0, 0x63, 0x67, 0x93, 0xB0, +0x64, 0x0D, 0xBE, 0xC0, 0x65, 0x47, 0x75, 0xB0, 0x65, 0xED, 0xA0, 0xC0, 0x67, 0x27, 0x57, 0xB0, +0x67, 0xCD, 0x82, 0xC0, 0x69, 0x07, 0x39, 0xB0, 0x69, 0xAD, 0x64, 0xC0, 0x6A, 0xE7, 0x1B, 0xB0, +0x6B, 0x96, 0x81, 0x40, 0x6C, 0xD0, 0x38, 0x30, 0x6D, 0x76, 0x63, 0x40, 0x6E, 0xB0, 0x1A, 0x30, +0x6F, 0x56, 0x45, 0x40, 0x70, 0x8F, 0xFC, 0x30, 0x71, 0x36, 0x27, 0x40, 0x72, 0x6F, 0xDE, 0x30, +0x73, 0x16, 0x09, 0x40, 0x74, 0x4F, 0xC0, 0x30, 0x74, 0xFF, 0x25, 0xC0, 0x76, 0x38, 0xDC, 0xB0, +0x76, 0xDF, 0x07, 0xC0, 0x78, 0x18, 0xBE, 0xB0, 0x78, 0xBE, 0xE9, 0xC0, 0x79, 0xF8, 0xA0, 0xB0, +0x7A, 0x9E, 0xCB, 0xC0, 0x7B, 0xD8, 0x82, 0xB0, 0x7C, 0x7E, 0xAD, 0xC0, 0x7D, 0xB8, 0x64, 0xB0, +0x7E, 0x5E, 0x8F, 0xC0, 0x7F, 0x98, 0x46, 0xB0, 0x01, 0x02, 0x00, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x05, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x00, 0xFF, 0xFF, 0x73, +0x60, 0x01, 0x04, 0xFF, 0xFF, 0x73, 0x60, 0x01, 0x08, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x0C, 0xFF, +0xFF, 0x73, 0x60, 0x01, 0x10, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x14, 0xFF, 0xFF, 0x81, 0x70, 0x01, +0x19, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x1E, 0x4E, 0x53, 0x54, 0x00, 0x4E, 0x57, 0x54, 0x00, 0x4E, +0x50, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x42, 0x44, 0x54, 0x00, 0x41, 0x48, 0x53, 0x54, 0x00, +0x48, 0x41, 0x44, 0x54, 0x00, 0x48, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* America/Bahia */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x6B, 0x1C, +0xB8, 0x0F, 0x49, 0xE0, 0xB8, 0xFD, 0x40, 0xA0, 0xB9, 0xF1, 0x34, 0x30, 0xBA, 0xDE, 0x74, 0x20, +0xDA, 0x38, 0xAE, 0x30, 0xDA, 0xEB, 0xFA, 0x30, 0xDC, 0x19, 0xE1, 0xB0, 0xDC, 0xB9, 0x59, 0x20, +0xDD, 0xFB, 0x15, 0x30, 0xDE, 0x9B, 0xDE, 0x20, 0xDF, 0xDD, 0x9A, 0x30, 0xE0, 0x54, 0x33, 0x20, +0xF4, 0x97, 0xFF, 0xB0, 0xF5, 0x05, 0x5E, 0x20, 0xF6, 0xC0, 0x64, 0x30, 0xF7, 0x0E, 0x1E, 0xA0, +0xF8, 0x51, 0x2C, 0x30, 0xF8, 0xC7, 0xC5, 0x20, 0xFA, 0x0A, 0xD2, 0xB0, 0xFA, 0xA8, 0xF8, 0xA0, +0xFB, 0xEC, 0x06, 0x30, 0xFC, 0x8B, 0x7D, 0xA0, 0x1D, 0xC9, 0x8E, 0x30, 0x1E, 0x78, 0xD7, 0xA0, +0x1F, 0xA0, 0x35, 0xB0, 0x20, 0x33, 0xCF, 0xA0, 0x21, 0x81, 0x69, 0x30, 0x22, 0x0B, 0xC8, 0xA0, +0x23, 0x58, 0x10, 0xB0, 0x23, 0xE2, 0x70, 0x20, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xD4, 0xC7, 0x20, +0x27, 0x21, 0x0F, 0x30, 0x27, 0xBD, 0xE3, 0xA0, 0x29, 0x00, 0xF1, 0x30, 0x29, 0x94, 0x8B, 0x20, +0x2A, 0xEA, 0x0D, 0xB0, 0x2B, 0x6B, 0x32, 0xA0, 0x2C, 0xC0, 0xB5, 0x30, 0x2D, 0x66, 0xC4, 0x20, +0x2E, 0xA0, 0x97, 0x30, 0x2F, 0x46, 0xA6, 0x20, 0x30, 0x80, 0x79, 0x30, 0x31, 0x1D, 0x4D, 0xA0, +0x32, 0x57, 0x20, 0xB0, 0x33, 0x06, 0x6A, 0x20, 0x34, 0x38, 0x54, 0x30, 0x34, 0xF8, 0xC1, 0x20, +0x36, 0x20, 0x1F, 0x30, 0x36, 0xCF, 0x68, 0xA0, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xB8, 0x85, 0x20, +0x39, 0xDF, 0xE3, 0x30, 0x3A, 0x8F, 0x2C, 0xA0, 0x3B, 0xC8, 0xFF, 0xB0, 0x3C, 0x6F, 0x0E, 0xA0, +0x3D, 0xC4, 0x91, 0x30, 0x3E, 0x4E, 0xF0, 0xA0, 0x4E, 0x9A, 0x48, 0xB0, 0x4F, 0x49, 0x92, 0x20, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xDB, +0xE4, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x09, 0x4C, +0x4D, 0x54, 0x00, 0x42, 0x52, 0x53, 0x54, 0x00, 0x42, 0x52, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x75, 0x84, 0xA2, 0x00, 0xD7, 0xE2, 0xED, 0x00, 0x00, 0x00, 0x05, 0x42, 0x61, +0x68, 0x69, 0x61, + +/* America/Bahia_Banderas */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0xA5, 0xB6, 0xE8, 0x70, +0xAF, 0xF2, 0x6E, 0xE0, 0xB6, 0x66, 0x56, 0x60, 0xB7, 0x43, 0xD2, 0x60, 0xB8, 0x0C, 0x36, 0x60, +0xB8, 0xFD, 0x86, 0xF0, 0xCB, 0xEA, 0x71, 0x60, 0xD8, 0x91, 0xB4, 0xF0, 0x00, 0x00, 0x70, 0x80, +0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, +0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, +0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xF5, 0x12, 0x90, 0x3B, 0xB6, 0xD1, 0x00, +0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, +0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, +0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x46, 0x0F, 0x74, 0x90, 0x47, 0x24, 0x41, 0x80, +0x47, 0xF8, 0x91, 0x10, 0x49, 0x04, 0x23, 0x80, 0x49, 0xD8, 0x73, 0x10, 0x4A, 0xE4, 0x05, 0x80, +0x4B, 0xB8, 0x55, 0x10, 0x4C, 0xCD, 0x13, 0xF0, 0x4D, 0x98, 0x29, 0x00, 0x4E, 0xAC, 0xF5, 0xF0, +0x4F, 0x78, 0x0B, 0x00, 0x50, 0x8C, 0xD7, 0xF0, 0x51, 0x61, 0x27, 0x80, 0x52, 0x6C, 0xB9, 0xF0, +0x53, 0x41, 0x09, 0x80, 0x54, 0x4C, 0x9B, 0xF0, 0x55, 0x20, 0xEB, 0x80, 0x56, 0x2C, 0x7D, 0xF0, +0x57, 0x00, 0xCD, 0x80, 0x58, 0x15, 0x9A, 0x70, 0x58, 0xE0, 0xAF, 0x80, 0x59, 0xF5, 0x7C, 0x70, +0x5A, 0xC0, 0x91, 0x80, 0x5B, 0xD5, 0x5E, 0x70, 0x5C, 0xA9, 0xAE, 0x00, 0x5D, 0xB5, 0x40, 0x70, +0x5E, 0x89, 0x90, 0x00, 0x5F, 0x95, 0x22, 0x70, 0x60, 0x69, 0x72, 0x00, 0x61, 0x7E, 0x3E, 0xF0, +0x62, 0x49, 0x54, 0x00, 0x63, 0x5E, 0x20, 0xF0, 0x64, 0x29, 0x36, 0x00, 0x65, 0x3E, 0x02, 0xF0, +0x66, 0x12, 0x52, 0x80, 0x67, 0x1D, 0xE4, 0xF0, 0x67, 0xF2, 0x34, 0x80, 0x68, 0xFD, 0xC6, 0xF0, +0x69, 0xD2, 0x16, 0x80, 0x6A, 0xDD, 0xA8, 0xF0, 0x6B, 0xB1, 0xF8, 0x80, 0x6C, 0xC6, 0xC5, 0x70, +0x6D, 0x91, 0xDA, 0x80, 0x6E, 0xA6, 0xA7, 0x70, 0x6F, 0x71, 0xBC, 0x80, 0x70, 0x86, 0x89, 0x70, +0x71, 0x5A, 0xD9, 0x00, 0x72, 0x66, 0x6B, 0x70, 0x73, 0x3A, 0xBB, 0x00, 0x74, 0x46, 0x4D, 0x70, +0x75, 0x1A, 0x9D, 0x00, 0x76, 0x2F, 0x69, 0xF0, 0x76, 0xFA, 0x7F, 0x00, 0x78, 0x0F, 0x4B, 0xF0, +0x78, 0xDA, 0x61, 0x00, 0x79, 0xEF, 0x2D, 0xF0, 0x7A, 0xBA, 0x43, 0x00, 0x7B, 0xCF, 0x0F, 0xF0, +0x7C, 0xA3, 0x5F, 0x80, 0x7D, 0xAE, 0xF1, 0xF0, 0x7E, 0x83, 0x41, 0x80, 0x7F, 0x8E, 0xD3, 0xF0, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0xFF, 0xFF, 0x9D, +0x54, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, +0xFF, 0x8F, 0x80, 0x00, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, +0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x50, 0x53, 0x54, +0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA9, 0x11, 0x40, 0x00, 0x72, 0x0F, 0x38, 0x00, 0x00, 0x00, +0x28, 0x4D, 0x65, 0x78, 0x69, 0x63, 0x61, 0x6E, 0x20, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, +0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x42, 0x61, 0x68, 0x69, 0x61, 0x20, 0x64, 0x65, +0x20, 0x42, 0x61, 0x6E, 0x64, 0x65, 0x72, 0x61, 0x73, + +/* America/Barbados */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xA9, 0x79, 0x24, 0xE4, +0xB8, 0x85, 0x63, 0xE4, 0x0E, 0x00, 0xF2, 0xE0, 0x0E, 0x94, 0x8C, 0xD0, 0x0F, 0x97, 0x00, 0xE0, +0x10, 0x74, 0x6E, 0xD0, 0x11, 0x76, 0xE2, 0xE0, 0x12, 0x54, 0x50, 0xD0, 0x13, 0x5F, 0xFF, 0x60, +0x14, 0x30, 0x3E, 0x50, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0xFF, 0xFF, +0xC8, 0x1C, 0x00, 0x00, 0xFF, 0xFF, 0xC8, 0x1C, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, +0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x4D, 0x54, 0x00, 0x41, 0x44, +0x54, 0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, +0x51, 0x70, 0x00, 0xB7, 0xB0, 0xBD, 0x00, 0x00, 0x00, 0x00, + +/* America/Belem */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x74, 0x74, +0xB8, 0x0F, 0x49, 0xE0, 0xB8, 0xFD, 0x40, 0xA0, 0xB9, 0xF1, 0x34, 0x30, 0xBA, 0xDE, 0x74, 0x20, +0xDA, 0x38, 0xAE, 0x30, 0xDA, 0xEB, 0xFA, 0x30, 0xDC, 0x19, 0xE1, 0xB0, 0xDC, 0xB9, 0x59, 0x20, +0xDD, 0xFB, 0x15, 0x30, 0xDE, 0x9B, 0xDE, 0x20, 0xDF, 0xDD, 0x9A, 0x30, 0xE0, 0x54, 0x33, 0x20, +0xF4, 0x97, 0xFF, 0xB0, 0xF5, 0x05, 0x5E, 0x20, 0xF6, 0xC0, 0x64, 0x30, 0xF7, 0x0E, 0x1E, 0xA0, +0xF8, 0x51, 0x2C, 0x30, 0xF8, 0xC7, 0xC5, 0x20, 0xFA, 0x0A, 0xD2, 0xB0, 0xFA, 0xA8, 0xF8, 0xA0, +0xFB, 0xEC, 0x06, 0x30, 0xFC, 0x8B, 0x7D, 0xA0, 0x1D, 0xC9, 0x8E, 0x30, 0x1E, 0x78, 0xD7, 0xA0, +0x1F, 0xA0, 0x35, 0xB0, 0x20, 0x33, 0xCF, 0xA0, 0x21, 0x81, 0x69, 0x30, 0x22, 0x0B, 0xC8, 0xA0, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xD2, +0x8C, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x09, 0x4C, +0x4D, 0x54, 0x00, 0x42, 0x52, 0x53, 0x54, 0x00, 0x42, 0x52, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x87, 0x1D, 0xD8, 0x00, 0xC8, 0xAD, 0xB2, 0x00, 0x00, 0x00, 0x0D, 0x41, 0x6D, +0x61, 0x70, 0x61, 0x2C, 0x20, 0x45, 0x20, 0x50, 0x61, 0x72, 0x61, + +/* America/Belize */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x93, 0x5E, 0xD9, 0xB0, +0x9F, 0x9F, 0x3B, 0xE0, 0xA0, 0x45, 0x51, 0xD8, 0xA1, 0x7F, 0x1D, 0xE0, 0xA2, 0x2E, 0x6E, 0x58, +0xA3, 0x5E, 0xFF, 0xE0, 0xA4, 0x0E, 0x50, 0x58, 0xA5, 0x3E, 0xE1, 0xE0, 0xA5, 0xEE, 0x32, 0x58, +0xA7, 0x27, 0xFE, 0x60, 0xA7, 0xCE, 0x14, 0x58, 0xA9, 0x07, 0xE0, 0x60, 0xA9, 0xAD, 0xF6, 0x58, +0xAA, 0xE7, 0xC2, 0x60, 0xAB, 0x97, 0x12, 0xD8, 0xAC, 0xC7, 0xA4, 0x60, 0xAD, 0x76, 0xF4, 0xD8, +0xAE, 0xA7, 0x86, 0x60, 0xAF, 0x56, 0xD6, 0xD8, 0xB0, 0x87, 0x68, 0x60, 0xB1, 0x36, 0xB8, 0xD8, +0xB2, 0x70, 0x84, 0xE0, 0xB3, 0x16, 0x9A, 0xD8, 0xB4, 0x50, 0x66, 0xE0, 0xB4, 0xF6, 0x7C, 0xD8, +0xB6, 0x30, 0x48, 0xE0, 0xB6, 0xDF, 0x99, 0x58, 0xB8, 0x10, 0x2A, 0xE0, 0xB8, 0xBF, 0x7B, 0x58, +0xB9, 0xF0, 0x0C, 0xE0, 0xBA, 0x9F, 0x5D, 0x58, 0xBB, 0xD9, 0x29, 0x60, 0xBC, 0x7F, 0x3F, 0x58, +0xBD, 0xB9, 0x0B, 0x60, 0xBE, 0x5F, 0x21, 0x58, 0xBF, 0x98, 0xED, 0x60, 0xC0, 0x3F, 0x03, 0x58, +0xC1, 0x78, 0xCF, 0x60, 0xC2, 0x28, 0x1F, 0xD8, 0xC3, 0x58, 0xB1, 0x60, 0xC4, 0x08, 0x01, 0xD8, +0xC5, 0x38, 0x93, 0x60, 0xC5, 0xE7, 0xE3, 0xD8, 0xC7, 0x21, 0xAF, 0xE0, 0xC7, 0xC7, 0xC5, 0xD8, +0xC9, 0x01, 0x91, 0xE0, 0xC9, 0xA7, 0xA7, 0xD8, 0xCA, 0xE1, 0x73, 0xE0, 0xCB, 0x90, 0xC4, 0x58, +0xCC, 0xC1, 0x55, 0xE0, 0xCD, 0x70, 0xA6, 0x58, 0x07, 0x62, 0xDB, 0x60, 0x07, 0xB9, 0xD0, 0x50, +0x18, 0x61, 0x71, 0x60, 0x18, 0xAB, 0x37, 0x50, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0xFF, +0xFF, 0xAD, 0x50, 0x00, 0x00, 0xFF, 0xFF, 0xB2, 0xA8, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, +0x09, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x48, 0x44, 0x54, 0x00, +0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xA4, 0x08, 0x30, 0x00, 0x8C, 0x13, 0x60, 0x00, 0x00, 0x00, 0x00, + +/* America/Blanc-Sablon */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xB8, 0x85, 0x60, +0x9F, 0xBA, 0xDD, 0x50, 0xCB, 0x88, 0xE2, 0x60, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xED, 0xD0, +0x00, 0x01, 0x02, 0x03, 0x01, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, +0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x0C, 0x41, 0x44, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x57, 0x54, 0x00, 0x41, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xD7, 0xC8, 0xE2, 0x00, 0xBB, 0x81, 0x4D, 0x00, 0x00, 0x00, +0x33, 0x41, 0x74, 0x6C, 0x61, 0x6E, 0x74, 0x69, 0x63, 0x20, 0x53, 0x74, 0x61, 0x6E, 0x64, 0x61, +0x72, 0x64, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x51, 0x75, 0x65, 0x62, 0x65, 0x63, +0x20, 0x2D, 0x20, 0x4C, 0x6F, 0x77, 0x65, 0x72, 0x20, 0x4E, 0x6F, 0x72, 0x74, 0x68, 0x20, 0x53, +0x68, 0x6F, 0x72, 0x65, + +/* America/Boa_Vista */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x7F, 0xE0, +0xB8, 0x0F, 0x57, 0xF0, 0xB8, 0xFD, 0x4E, 0xB0, 0xB9, 0xF1, 0x42, 0x40, 0xBA, 0xDE, 0x82, 0x30, +0xDA, 0x38, 0xBC, 0x40, 0xDA, 0xEC, 0x08, 0x40, 0xDC, 0x19, 0xEF, 0xC0, 0xDC, 0xB9, 0x67, 0x30, +0xDD, 0xFB, 0x23, 0x40, 0xDE, 0x9B, 0xEC, 0x30, 0xDF, 0xDD, 0xA8, 0x40, 0xE0, 0x54, 0x41, 0x30, +0xF4, 0x98, 0x0D, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0xC0, 0x72, 0x40, 0xF7, 0x0E, 0x2C, 0xB0, +0xF8, 0x51, 0x3A, 0x40, 0xF8, 0xC7, 0xD3, 0x30, 0xFA, 0x0A, 0xE0, 0xC0, 0xFA, 0xA9, 0x06, 0xB0, +0xFB, 0xEC, 0x14, 0x40, 0xFC, 0x8B, 0x8B, 0xB0, 0x1D, 0xC9, 0x9C, 0x40, 0x1E, 0x78, 0xE5, 0xB0, +0x1F, 0xA0, 0x43, 0xC0, 0x20, 0x33, 0xDD, 0xB0, 0x21, 0x81, 0x77, 0x40, 0x22, 0x0B, 0xD6, 0xB0, +0x37, 0xF6, 0xD4, 0xC0, 0x38, 0xB8, 0x93, 0x30, 0x39, 0xDF, 0xF1, 0x40, 0x39, 0xE9, 0x1D, 0xB0, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0xFF, 0xFF, 0xC7, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xC7, +0xC0, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x4D, 0x53, 0x54, 0x00, 0x41, 0x4D, 0x54, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8D, 0xA0, 0x82, 0x00, 0xB6, 0x16, 0x95, 0x00, 0x00, +0x00, 0x07, 0x52, 0x6F, 0x72, 0x61, 0x69, 0x6D, 0x61, + +/* America/Bogota */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x98, 0x58, 0x55, 0x74, +0x2A, 0x03, 0x73, 0x50, 0x2B, 0xBE, 0x5D, 0x40, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xBA, 0x8C, 0x00, +0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x09, 0x42, 0x4D, 0x54, +0x00, 0x43, 0x4F, 0x53, 0x54, 0x00, 0x43, 0x4F, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x90, 0x59, 0x20, 0x00, 0xA1, 0x9D, 0xB2, 0x00, 0x00, 0x00, 0x00, + +/* America/Boise */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x48, 0xA0, +0x9F, 0xBB, 0x15, 0x90, 0xA0, 0x86, 0x2A, 0xA0, 0xA1, 0x9A, 0xF7, 0x90, 0xA8, 0x46, 0x4C, 0x20, +0xCB, 0x89, 0x0C, 0x90, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xFA, 0xF8, 0x75, 0x10, +0xFB, 0xE8, 0x58, 0x00, 0xFC, 0xD8, 0x57, 0x10, 0xFD, 0xC8, 0x3A, 0x00, 0xFE, 0xB8, 0x39, 0x10, +0xFF, 0xA8, 0x1C, 0x00, 0x00, 0x98, 0x1B, 0x10, 0x01, 0x87, 0xFE, 0x00, 0x02, 0x77, 0xFD, 0x10, +0x03, 0x71, 0x1A, 0x80, 0x04, 0x61, 0x19, 0x90, 0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90, +0x07, 0x30, 0xDE, 0x80, 0x07, 0xB2, 0x1F, 0x90, 0x09, 0x10, 0xC0, 0x80, 0x09, 0xAD, 0xB1, 0x10, +0x0A, 0xF0, 0xA2, 0x80, 0x0B, 0xE0, 0xA1, 0x90, 0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90, +0x0E, 0xB9, 0xA1, 0x00, 0x0F, 0xA9, 0xA0, 0x10, 0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10, +0x12, 0x79, 0x65, 0x00, 0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, +0x16, 0x39, 0x29, 0x00, 0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, +0x1A, 0x02, 0x27, 0x80, 0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, +0x1D, 0xC1, 0xEB, 0x80, 0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, +0x21, 0x81, 0xAF, 0x80, 0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, +0x25, 0x4A, 0xAE, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, +0x29, 0x0A, 0x72, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, +0x2C, 0xD3, 0x70, 0x80, 0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, +0x30, 0x93, 0x34, 0x80, 0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, +0x34, 0x52, 0xF8, 0x80, 0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, +0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, +0x3B, 0xDB, 0xBB, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, +0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, +0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, +0x47, 0x2D, 0x7C, 0x00, 0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, +0x4A, 0xED, 0x40, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, +0x4E, 0xB6, 0x3E, 0x80, 0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, +0x52, 0x76, 0x02, 0x80, 0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, +0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, +0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, +0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, +0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, +0x65, 0x47, 0x4B, 0x80, 0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, +0x69, 0x07, 0x0F, 0x80, 0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, +0x6C, 0xD0, 0x0E, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, +0x70, 0x8F, 0xD2, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, +0x74, 0x4F, 0x96, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, +0x78, 0x18, 0x94, 0x80, 0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, +0x7B, 0xD8, 0x58, 0x80, 0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, +0x7F, 0x98, 0x1C, 0x80, 0x00, 0x01, 0x00, 0x01, 0x04, 0x02, 0x03, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x00, +0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, +0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x14, 0x50, 0x44, +0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x4D, 0x53, +0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0xCB, 0xE0, 0xD1, 0x00, 0x61, 0x58, 0xE6, 0x00, 0x00, 0x00, 0x29, 0x4D, 0x6F, +0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x73, 0x6F, +0x75, 0x74, 0x68, 0x20, 0x49, 0x64, 0x61, 0x68, 0x6F, 0x20, 0x26, 0x20, 0x65, 0x61, 0x73, 0x74, +0x20, 0x4F, 0x72, 0x65, 0x67, 0x6F, 0x6E, + +/* America/Buenos_Aires */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, +0x27, 0xD0, 0x58, 0xA0, 0x29, 0x00, 0xF1, 0x30, 0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x47, 0x77, 0x09, 0xB0, +0x47, 0xDC, 0x7F, 0x20, 0x48, 0xFA, 0xA2, 0xB0, 0x49, 0xBC, 0x61, 0x20, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0xFF, 0xFF, 0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0x43, 0x4D, 0x54, 0x00, 0x41, 0x52, 0x54, 0x00, 0x41, 0x52, +0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* America/Cambridge_Bay */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x25, 0xA1, 0xF2, 0xCD, 0x80, +0xCB, 0x89, 0x0C, 0x90, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xF7, 0x2F, 0x5A, 0x70, +0xF8, 0x28, 0x85, 0xF0, 0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, +0x16, 0x39, 0x29, 0x00, 0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, +0x1A, 0x02, 0x27, 0x80, 0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, +0x1D, 0xC1, 0xEB, 0x80, 0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, +0x21, 0x81, 0xAF, 0x80, 0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, +0x25, 0x4A, 0xAE, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, +0x29, 0x0A, 0x72, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, +0x2C, 0xD3, 0x70, 0x80, 0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, +0x30, 0x93, 0x34, 0x80, 0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, +0x34, 0x52, 0xF8, 0x80, 0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, +0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0x04, 0xE9, 0x50, +0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, +0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, +0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, +0x45, 0xF3, 0xC5, 0x10, 0x47, 0x2D, 0x7C, 0x00, 0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, +0x49, 0xB3, 0x89, 0x10, 0x4A, 0xED, 0x40, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, +0x4D, 0x7C, 0x87, 0x90, 0x4E, 0xB6, 0x3E, 0x80, 0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, +0x51, 0x3C, 0x4B, 0x90, 0x52, 0x76, 0x02, 0x80, 0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, +0x54, 0xFC, 0x0F, 0x90, 0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, +0x58, 0xC5, 0x0E, 0x10, 0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, +0x5C, 0x84, 0xD2, 0x10, 0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, +0x60, 0x4D, 0xD0, 0x90, 0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, +0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80, 0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, +0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80, 0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, +0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, +0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, +0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, +0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80, 0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, +0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80, 0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, +0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80, 0x03, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x03, +0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, +0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, +0x05, 0x03, 0x05, 0x03, 0x05, 0x07, 0x06, 0x08, 0x07, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, +0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, +0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, +0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, +0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, +0x03, 0x05, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, +0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, +0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x15, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x19, 0xFF, 0xFF, 0xAB, +0xA0, 0x00, 0x1D, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x21, 0x7A, 0x7A, 0x7A, 0x00, 0x4D, 0x57, 0x54, +0x00, 0x4D, 0x50, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x44, 0x54, 0x00, 0x4D, 0x44, +0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF2, 0xC9, 0xDC, 0x00, 0x72, 0x5C, 0x42, 0x00, 0x00, 0x00, 0x1C, 0x4D, 0x6F, 0x75, 0x6E, +0x74, 0x61, 0x69, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x77, 0x65, 0x73, 0x74, +0x20, 0x4E, 0x75, 0x6E, 0x61, 0x76, 0x75, 0x74, + +/* America/Campo_Grande */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x7A, 0x34, +0xB8, 0x0F, 0x57, 0xF0, 0xB8, 0xFD, 0x4E, 0xB0, 0xB9, 0xF1, 0x42, 0x40, 0xBA, 0xDE, 0x82, 0x30, +0xDA, 0x38, 0xBC, 0x40, 0xDA, 0xEC, 0x08, 0x40, 0xDC, 0x19, 0xEF, 0xC0, 0xDC, 0xB9, 0x67, 0x30, +0xDD, 0xFB, 0x23, 0x40, 0xDE, 0x9B, 0xEC, 0x30, 0xDF, 0xDD, 0xA8, 0x40, 0xE0, 0x54, 0x41, 0x30, +0xF4, 0x98, 0x0D, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0xC0, 0x72, 0x40, 0xF7, 0x0E, 0x2C, 0xB0, +0xF8, 0x51, 0x3A, 0x40, 0xF8, 0xC7, 0xD3, 0x30, 0xFA, 0x0A, 0xE0, 0xC0, 0xFA, 0xA9, 0x06, 0xB0, +0xFB, 0xEC, 0x14, 0x40, 0xFC, 0x8B, 0x8B, 0xB0, 0x1D, 0xC9, 0x9C, 0x40, 0x1E, 0x78, 0xE5, 0xB0, +0x1F, 0xA0, 0x43, 0xC0, 0x20, 0x33, 0xDD, 0xB0, 0x21, 0x81, 0x77, 0x40, 0x22, 0x0B, 0xD6, 0xB0, +0x23, 0x58, 0x1E, 0xC0, 0x23, 0xE2, 0x7E, 0x30, 0x25, 0x38, 0x00, 0xC0, 0x25, 0xD4, 0xD5, 0x30, +0x27, 0x21, 0x1D, 0x40, 0x27, 0xBD, 0xF1, 0xB0, 0x29, 0x00, 0xFF, 0x40, 0x29, 0x94, 0x99, 0x30, +0x2A, 0xEA, 0x1B, 0xC0, 0x2B, 0x6B, 0x40, 0xB0, 0x2C, 0xC0, 0xC3, 0x40, 0x2D, 0x66, 0xD2, 0x30, +0x2E, 0xA0, 0xA5, 0x40, 0x2F, 0x46, 0xB4, 0x30, 0x30, 0x80, 0x87, 0x40, 0x31, 0x1D, 0x5B, 0xB0, +0x32, 0x57, 0x2E, 0xC0, 0x33, 0x06, 0x78, 0x30, 0x34, 0x38, 0x62, 0x40, 0x34, 0xF8, 0xCF, 0x30, +0x36, 0x20, 0x2D, 0x40, 0x36, 0xCF, 0x76, 0xB0, 0x37, 0xF6, 0xD4, 0xC0, 0x38, 0xB8, 0x93, 0x30, +0x39, 0xDF, 0xF1, 0x40, 0x3A, 0x8F, 0x3A, 0xB0, 0x3B, 0xC9, 0x0D, 0xC0, 0x3C, 0x6F, 0x1C, 0xB0, +0x3D, 0xC4, 0x9F, 0x40, 0x3E, 0x4E, 0xFE, 0xB0, 0x3F, 0x92, 0x0C, 0x40, 0x40, 0x2E, 0xE0, 0xB0, +0x41, 0x87, 0x06, 0x40, 0x42, 0x17, 0xFD, 0x30, 0x43, 0x51, 0xD0, 0x40, 0x43, 0xF7, 0xDF, 0x30, +0x45, 0x4D, 0x61, 0xC0, 0x45, 0xE0, 0xFB, 0xB0, 0x47, 0x11, 0x94, 0x40, 0x47, 0xB7, 0xA3, 0x30, +0x48, 0xFA, 0xB0, 0xC0, 0x49, 0x97, 0x85, 0x30, 0x4A, 0xDA, 0x92, 0xC0, 0x4B, 0x80, 0xA1, 0xB0, +0x4C, 0xBA, 0x74, 0xC0, 0x4D, 0x60, 0x83, 0xB0, 0x4E, 0x9A, 0x56, 0xC0, 0x4F, 0x49, 0xA0, 0x30, +0x50, 0x83, 0x73, 0x40, 0x51, 0x20, 0x47, 0xB0, 0x52, 0x63, 0x55, 0x40, 0x53, 0x00, 0x29, 0xB0, +0x54, 0x43, 0x37, 0x40, 0x54, 0xE9, 0x46, 0x30, 0x56, 0x23, 0x19, 0x40, 0x56, 0xC9, 0x28, 0x30, +0x58, 0x02, 0xFB, 0x40, 0x58, 0xA9, 0x0A, 0x30, 0x59, 0xE2, 0xDD, 0x40, 0x5A, 0x88, 0xEC, 0x30, +0x5B, 0xCB, 0xF9, 0xC0, 0x5C, 0x68, 0xCE, 0x30, 0x5D, 0xAB, 0xDB, 0xC0, 0x5E, 0x48, 0xB0, 0x30, +0x5F, 0x8B, 0xBD, 0xC0, 0x60, 0x31, 0xCC, 0xB0, 0x61, 0x6B, 0x9F, 0xC0, 0x62, 0x11, 0xAE, 0xB0, +0x63, 0x4B, 0x81, 0xC0, 0x63, 0xFA, 0xCB, 0x30, 0x65, 0x2B, 0x63, 0xC0, 0x65, 0xD1, 0x72, 0xB0, +0x67, 0x14, 0x80, 0x40, 0x67, 0xB1, 0x54, 0xB0, 0x68, 0xF4, 0x62, 0x40, 0x69, 0x9A, 0x71, 0x30, +0x6A, 0xD4, 0x44, 0x40, 0x6B, 0x7A, 0x53, 0x30, 0x6C, 0xB4, 0x26, 0x40, 0x6D, 0x5A, 0x35, 0x30, +0x6E, 0x94, 0x08, 0x40, 0x6F, 0x3A, 0x17, 0x30, 0x70, 0x7D, 0x24, 0xC0, 0x71, 0x19, 0xF9, 0x30, +0x72, 0x5D, 0x06, 0xC0, 0x72, 0xF9, 0xDB, 0x30, 0x74, 0x3C, 0xE8, 0xC0, 0x74, 0xD9, 0xBD, 0x30, +0x76, 0x1C, 0xCA, 0xC0, 0x76, 0xC2, 0xD9, 0xB0, 0x77, 0xFC, 0xAC, 0xC0, 0x78, 0xAB, 0xF6, 0x30, +0x79, 0xDC, 0x8E, 0xC0, 0x7A, 0x82, 0x9D, 0xB0, 0x7B, 0xC5, 0xAB, 0x40, 0x7C, 0x62, 0x7F, 0xB0, +0x7D, 0xA5, 0x8D, 0x40, 0x7E, 0x4B, 0x9C, 0x30, 0x7F, 0x85, 0x6F, 0x40, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xCC, 0xCC, +0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x09, 0x4C, 0x4D, +0x54, 0x00, 0x41, 0x4D, 0x53, 0x54, 0x00, 0x41, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x6A, 0x1F, 0xF8, 0x00, 0xBF, 0x51, 0xDD, 0x00, 0x00, 0x00, 0x12, 0x4D, 0x61, 0x74, +0x6F, 0x20, 0x47, 0x72, 0x6F, 0x73, 0x73, 0x6F, 0x20, 0x64, 0x6F, 0x20, 0x53, 0x75, 0x6C, + +/* America/Cancun */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xA5, 0xB6, 0xDA, 0x60, +0x16, 0x86, 0xD5, 0x60, 0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, 0x33, 0x47, 0x49, 0xF0, +0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, 0x35, 0xC4, 0x00, 0x60, 0x36, 0x32, 0xCC, 0x70, +0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, +0x3A, 0xF5, 0x04, 0x80, 0x3B, 0xB6, 0xC2, 0xF0, 0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, +0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x70, 0xF0, 0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, +0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, +0x46, 0x0F, 0x66, 0x80, 0x47, 0x24, 0x33, 0x70, 0x47, 0xF8, 0x83, 0x00, 0x49, 0x04, 0x15, 0x70, +0x49, 0xD8, 0x65, 0x00, 0x4A, 0xE3, 0xF7, 0x70, 0x4B, 0xB8, 0x47, 0x00, 0x4C, 0xCD, 0x13, 0xF0, +0x4D, 0x98, 0x29, 0x00, 0x4E, 0xAC, 0xF5, 0xF0, 0x4F, 0x78, 0x0B, 0x00, 0x50, 0x8C, 0xD7, 0xF0, +0x51, 0x61, 0x27, 0x80, 0x52, 0x6C, 0xB9, 0xF0, 0x53, 0x41, 0x09, 0x80, 0x54, 0x4C, 0x9B, 0xF0, +0x55, 0x20, 0xEB, 0x80, 0x56, 0x2C, 0x7D, 0xF0, 0x57, 0x00, 0xCD, 0x80, 0x58, 0x15, 0x9A, 0x70, +0x58, 0xE0, 0xAF, 0x80, 0x59, 0xF5, 0x7C, 0x70, 0x5A, 0xC0, 0x91, 0x80, 0x5B, 0xD5, 0x5E, 0x70, +0x5C, 0xA9, 0xAE, 0x00, 0x5D, 0xB5, 0x40, 0x70, 0x5E, 0x89, 0x90, 0x00, 0x5F, 0x95, 0x22, 0x70, +0x60, 0x69, 0x72, 0x00, 0x61, 0x7E, 0x3E, 0xF0, 0x62, 0x49, 0x54, 0x00, 0x63, 0x5E, 0x20, 0xF0, +0x64, 0x29, 0x36, 0x00, 0x65, 0x3E, 0x02, 0xF0, 0x66, 0x12, 0x52, 0x80, 0x67, 0x1D, 0xE4, 0xF0, +0x67, 0xF2, 0x34, 0x80, 0x68, 0xFD, 0xC6, 0xF0, 0x69, 0xD2, 0x16, 0x80, 0x6A, 0xDD, 0xA8, 0xF0, +0x6B, 0xB1, 0xF8, 0x80, 0x6C, 0xC6, 0xC5, 0x70, 0x6D, 0x91, 0xDA, 0x80, 0x6E, 0xA6, 0xA7, 0x70, +0x6F, 0x71, 0xBC, 0x80, 0x70, 0x86, 0x89, 0x70, 0x71, 0x5A, 0xD9, 0x00, 0x72, 0x66, 0x6B, 0x70, +0x73, 0x3A, 0xBB, 0x00, 0x74, 0x46, 0x4D, 0x70, 0x75, 0x1A, 0x9D, 0x00, 0x76, 0x2F, 0x69, 0xF0, +0x76, 0xFA, 0x7F, 0x00, 0x78, 0x0F, 0x4B, 0xF0, 0x78, 0xDA, 0x61, 0x00, 0x79, 0xEF, 0x2D, 0xF0, +0x7A, 0xBA, 0x43, 0x00, 0x7B, 0xCF, 0x0F, 0xF0, 0x7C, 0xA3, 0x5F, 0x80, 0x7D, 0xAE, 0xF1, 0xF0, +0x7E, 0x83, 0x41, 0x80, 0x7F, 0x8E, 0xD3, 0xF0, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0xFF, +0xFF, 0xAE, 0xA8, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, +0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0x4C, 0x4D, 0x54, +0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA9, 0x7F, 0xED, 0x00, +0x8E, 0x43, 0x45, 0x00, 0x00, 0x00, 0x1B, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x54, +0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x51, 0x75, 0x69, 0x6E, 0x74, 0x61, 0x6E, 0x61, 0x20, 0x52, +0x6F, 0x6F, + +/* America/Caracas */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x56, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x93, 0x1E, 0x2C, 0x3C, +0xF6, 0x98, 0xEC, 0x48, 0x47, 0x5B, 0x92, 0x70, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xC1, 0x44, 0x00, +0x00, 0xFF, 0xFF, 0xC0, 0xB8, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x43, 0x4D, 0x54, +0x00, 0x56, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x59, 0xD0, 0x00, +0xAC, 0x86, 0xAA, 0x00, 0x00, 0x00, 0x00, + +/* America/Catamarca */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, +0x27, 0xD0, 0x58, 0xA0, 0x29, 0x00, 0xFF, 0x40, 0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x40, 0xBB, 0xF1, 0x30, +0x40, 0xD5, 0x0B, 0xC0, 0x47, 0x77, 0x09, 0xB0, 0x47, 0xDC, 0x7F, 0x20, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, +0x03, 0x04, 0x02, 0x04, 0x05, 0x04, 0x03, 0x04, 0xFF, 0xFF, 0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x43, 0x4D, 0x54, 0x00, +0x41, 0x52, 0x54, 0x00, 0x41, 0x52, 0x53, 0x54, 0x00, 0x57, 0x41, 0x52, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* America/Cayenne */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x91, 0xF4, 0x2B, 0x90, +0xFB, 0xC3, 0x35, 0xC0, 0x01, 0x02, 0xFF, 0xFF, 0xCE, 0xF0, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, +0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x47, 0x46, 0x54, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xDB, 0x55, 0x00, 0xC2, 0xCD, 0xCA, 0x00, 0x00, +0x00, 0x00, + +/* America/Cayman */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x93, 0x0F, 0xB5, 0x00, +0x01, 0xFF, 0xFF, 0xB8, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0x4B, 0x4D, 0x54, +0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xC7, 0x50, 0x00, 0x96, 0x7A, +0x22, 0x00, 0x00, 0x00, 0x00, + +/* America/Chicago */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xA2, 0xCB, 0x74, 0x00, +0xA3, 0x83, 0xF7, 0xF0, 0xA4, 0x45, 0xD2, 0x80, 0xA5, 0x63, 0xD9, 0xF0, 0xA6, 0x53, 0xD9, 0x00, +0xA7, 0x15, 0x97, 0x70, 0xA8, 0x33, 0xBB, 0x00, 0xA8, 0xFE, 0xB3, 0xF0, 0xAA, 0x13, 0x9D, 0x00, +0xAA, 0xDE, 0x95, 0xF0, 0xAB, 0xF3, 0x7F, 0x00, 0xAC, 0xBE, 0x77, 0xF0, 0xAD, 0xD3, 0x61, 0x00, +0xAE, 0x9E, 0x59, 0xF0, 0xAF, 0xB3, 0x43, 0x00, 0xB0, 0x7E, 0x3B, 0xF0, 0xB1, 0x9C, 0x5F, 0x80, +0xB2, 0x67, 0x58, 0x70, 0xB3, 0x7C, 0x41, 0x80, 0xB4, 0x47, 0x3A, 0x70, 0xB5, 0x5C, 0x23, 0x80, +0xB6, 0x27, 0x1C, 0x70, 0xB7, 0x3C, 0x05, 0x80, 0xB8, 0x06, 0xFE, 0x70, 0xB9, 0x1B, 0xE7, 0x80, +0xB9, 0xE6, 0xE0, 0x70, 0xBB, 0x05, 0x04, 0x00, 0xBB, 0xC6, 0xC2, 0x70, 0xBC, 0xE4, 0xE6, 0x00, +0xBD, 0xAF, 0xDE, 0xF0, 0xBE, 0xC4, 0xC8, 0x00, 0xBF, 0x8F, 0xC0, 0xF0, 0xC0, 0x5A, 0xD6, 0x00, +0xC1, 0xB0, 0x3C, 0x70, 0xC2, 0x84, 0x8C, 0x00, 0xC3, 0x4F, 0x84, 0xF0, 0xC4, 0x64, 0x6E, 0x00, +0xC5, 0x2F, 0x66, 0xF0, 0xC6, 0x4D, 0x8A, 0x80, 0xC7, 0x0F, 0x48, 0xF0, 0xC8, 0x2D, 0x6C, 0x80, +0xC8, 0xF8, 0x65, 0x70, 0xCA, 0x0D, 0x4E, 0x80, 0xCA, 0xD8, 0x47, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD3, 0x75, 0xF3, 0x00, 0xD4, 0x40, 0xEB, 0xF0, +0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0, 0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, +0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0, 0xDA, 0xFE, 0xB5, 0x80, 0xDB, 0xC0, 0x73, 0xF0, +0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, 0xDE, 0xBE, 0x79, 0x80, 0xDF, 0x89, 0x72, 0x70, +0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, 0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, +0xE4, 0x5E, 0x1F, 0x80, 0xE5, 0x57, 0x3C, 0xF0, 0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x37, 0x1E, 0xF0, +0xE8, 0x27, 0x1E, 0x00, 0xE9, 0x17, 0x00, 0xF0, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0xF6, 0xE2, 0xF0, +0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xD6, 0xC4, 0xF0, 0xED, 0xC6, 0xC4, 0x00, 0xEE, 0xBF, 0xE1, 0x70, +0xEF, 0xAF, 0xE0, 0x80, 0xF0, 0x9F, 0xC3, 0x70, 0xF1, 0x8F, 0xC2, 0x80, 0xF2, 0x7F, 0xA5, 0x70, +0xF3, 0x6F, 0xA4, 0x80, 0xF4, 0x5F, 0x87, 0x70, 0xF5, 0x4F, 0x86, 0x80, 0xF6, 0x3F, 0x69, 0x70, +0xF7, 0x2F, 0x68, 0x80, 0xF8, 0x28, 0x85, 0xF0, 0xF9, 0x0F, 0x4A, 0x80, 0xFA, 0x08, 0x67, 0xF0, +0xFA, 0xF8, 0x67, 0x00, 0xFB, 0xE8, 0x49, 0xF0, 0xFC, 0xD8, 0x49, 0x00, 0xFD, 0xC8, 0x2B, 0xF0, +0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xA8, 0x0D, 0xF0, 0x00, 0x98, 0x0D, 0x00, 0x01, 0x87, 0xEF, 0xF0, +0x02, 0x77, 0xEF, 0x00, 0x03, 0x71, 0x0C, 0x70, 0x04, 0x61, 0x0B, 0x80, 0x05, 0x50, 0xEE, 0x70, +0x06, 0x40, 0xED, 0x80, 0x07, 0x30, 0xD0, 0x70, 0x07, 0x8D, 0x27, 0x80, 0x09, 0x10, 0xB2, 0x70, +0x09, 0xAD, 0xA3, 0x00, 0x0A, 0xF0, 0x94, 0x70, 0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xB0, 0xF0, +0x0D, 0xC0, 0x75, 0x80, 0x0E, 0xB9, 0x92, 0xF0, 0x0F, 0xA9, 0x92, 0x00, 0x10, 0x99, 0x74, 0xF0, +0x11, 0x89, 0x74, 0x00, 0x12, 0x79, 0x56, 0xF0, 0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, +0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x1A, 0xF0, 0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, +0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x19, 0x70, 0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, +0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xDD, 0x70, 0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, +0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70, 0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, +0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0, 0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, +0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0, 0x29, 0xDE, 0xB3, 0x80, 0x2A, 0xEA, 0x45, 0xF0, +0x2B, 0xBE, 0x95, 0x80, 0x2C, 0xD3, 0x62, 0x70, 0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x44, 0x70, +0x2F, 0x7E, 0x59, 0x80, 0x30, 0x93, 0x26, 0x70, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, +0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, +0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, +0x3A, 0xC6, 0xE0, 0x00, 0x3B, 0xDB, 0xAC, 0xF0, 0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, +0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x70, 0xF0, 0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, +0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, +0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, +0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, +0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, 0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, +0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, 0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, +0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, 0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, +0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, +0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, +0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, +0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, +0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, +0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, +0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, +0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, +0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, +0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, +0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x03, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, +0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, +0x10, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, +0x00, 0x43, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, +0xC9, 0x2F, 0xE8, 0x00, 0x8C, 0xEA, 0x38, 0x00, 0x00, 0x00, 0x0C, 0x43, 0x65, 0x6E, 0x74, 0x72, +0x61, 0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, + +/* America/Chihuahua */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xA5, 0xB6, 0xE8, 0x70, +0xAF, 0xF2, 0x6E, 0xE0, 0xB6, 0x66, 0x56, 0x60, 0xB7, 0x43, 0xD2, 0x60, 0xB8, 0x0C, 0x36, 0x60, +0xB8, 0xFD, 0x86, 0xF0, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, 0x33, 0x47, 0x58, 0x00, +0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, +0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xF5, 0x12, 0x90, +0x3B, 0xB6, 0xD1, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, +0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, +0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x46, 0x0F, 0x74, 0x90, +0x47, 0x24, 0x41, 0x80, 0x47, 0xF8, 0x91, 0x10, 0x49, 0x04, 0x23, 0x80, 0x49, 0xD8, 0x73, 0x10, +0x4A, 0xE4, 0x05, 0x80, 0x4B, 0xB8, 0x55, 0x10, 0x4C, 0xCD, 0x22, 0x00, 0x4D, 0x98, 0x37, 0x10, +0x4E, 0xAD, 0x04, 0x00, 0x4F, 0x78, 0x19, 0x10, 0x50, 0x8C, 0xE6, 0x00, 0x51, 0x61, 0x35, 0x90, +0x52, 0x6C, 0xC8, 0x00, 0x53, 0x41, 0x17, 0x90, 0x54, 0x4C, 0xAA, 0x00, 0x55, 0x20, 0xF9, 0x90, +0x56, 0x2C, 0x8C, 0x00, 0x57, 0x00, 0xDB, 0x90, 0x58, 0x15, 0xA8, 0x80, 0x58, 0xE0, 0xBD, 0x90, +0x59, 0xF5, 0x8A, 0x80, 0x5A, 0xC0, 0x9F, 0x90, 0x5B, 0xD5, 0x6C, 0x80, 0x5C, 0xA9, 0xBC, 0x10, +0x5D, 0xB5, 0x4E, 0x80, 0x5E, 0x89, 0x9E, 0x10, 0x5F, 0x95, 0x30, 0x80, 0x60, 0x69, 0x80, 0x10, +0x61, 0x7E, 0x4D, 0x00, 0x62, 0x49, 0x62, 0x10, 0x63, 0x5E, 0x2F, 0x00, 0x64, 0x29, 0x44, 0x10, +0x65, 0x3E, 0x11, 0x00, 0x66, 0x12, 0x60, 0x90, 0x67, 0x1D, 0xF3, 0x00, 0x67, 0xF2, 0x42, 0x90, +0x68, 0xFD, 0xD5, 0x00, 0x69, 0xD2, 0x24, 0x90, 0x6A, 0xDD, 0xB7, 0x00, 0x6B, 0xB2, 0x06, 0x90, +0x6C, 0xC6, 0xD3, 0x80, 0x6D, 0x91, 0xE8, 0x90, 0x6E, 0xA6, 0xB5, 0x80, 0x6F, 0x71, 0xCA, 0x90, +0x70, 0x86, 0x97, 0x80, 0x71, 0x5A, 0xE7, 0x10, 0x72, 0x66, 0x79, 0x80, 0x73, 0x3A, 0xC9, 0x10, +0x74, 0x46, 0x5B, 0x80, 0x75, 0x1A, 0xAB, 0x10, 0x76, 0x2F, 0x78, 0x00, 0x76, 0xFA, 0x8D, 0x10, +0x78, 0x0F, 0x5A, 0x00, 0x78, 0xDA, 0x6F, 0x10, 0x79, 0xEF, 0x3C, 0x00, 0x7A, 0xBA, 0x51, 0x10, +0x7B, 0xCF, 0x1E, 0x00, 0x7C, 0xA3, 0x6D, 0x90, 0x7D, 0xAF, 0x00, 0x00, 0x7E, 0x83, 0x4F, 0x90, +0x7F, 0x8E, 0xE2, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0xFF, 0xFF, +0x9C, 0x8C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, +0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, +0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB5, 0x05, 0x25, 0x00, 0x70, +0xC9, 0xB2, 0x00, 0x00, 0x00, 0x35, 0x4D, 0x65, 0x78, 0x69, 0x63, 0x61, 0x6E, 0x20, 0x4D, 0x6F, +0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x43, 0x68, +0x69, 0x68, 0x75, 0x61, 0x68, 0x75, 0x61, 0x20, 0x61, 0x77, 0x61, 0x79, 0x20, 0x66, 0x72, 0x6F, +0x6D, 0x20, 0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, + +/* America/Coral_Harbour */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x9E, 0xB8, 0xA1, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xC8, 0xF8, 0x57, 0x60, 0xCB, 0x88, 0xFE, 0x80, 0xD2, 0x23, 0xF4, 0x70, +0xD2, 0x61, 0x09, 0xF0, 0x00, 0x01, 0x00, 0x02, 0x03, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, +0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, +0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, +0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, +0x00, 0x00, + +/* America/Cordoba */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, +0x27, 0xD0, 0x58, 0xA0, 0x29, 0x00, 0xFF, 0x40, 0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x47, 0x77, 0x09, 0xB0, +0x47, 0xDC, 0x7F, 0x20, 0x48, 0xFA, 0xA2, 0xB0, 0x49, 0xBC, 0x61, 0x20, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, +0x03, 0x04, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0xFF, 0xFF, 0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x43, 0x4D, 0x54, 0x00, +0x41, 0x52, 0x54, 0x00, 0x41, 0x52, 0x53, 0x54, 0x00, 0x57, 0x41, 0x52, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* America/Costa_Rica */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0xA3, 0xE8, 0x16, 0x54, +0x11, 0x36, 0x49, 0x60, 0x11, 0xB7, 0x6E, 0x50, 0x13, 0x16, 0x2B, 0x60, 0x13, 0x97, 0x50, 0x50, +0x27, 0x97, 0xE0, 0x60, 0x28, 0x6E, 0xB6, 0xD0, 0x29, 0x77, 0xC2, 0x60, 0x29, 0xC2, 0xD9, 0xD0, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xB1, 0x2C, 0x00, 0x00, 0xFF, +0xFF, 0xB9, 0xB0, 0x01, 0x05, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x09, 0x53, 0x4A, 0x4D, 0x54, 0x00, +0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, +0x7C, 0x75, 0x00, 0x92, 0x5B, 0x72, 0x00, 0x00, 0x00, 0x00, + +/* America/Creston */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x9B, 0xD6, 0x4B, 0x70, +0x9E, 0xF9, 0x3B, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x00, 0xFF, 0xFF, 0x8F, 0x80, +0x00, 0x04, 0x4D, 0x53, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD4, +0x3F, 0xF0, 0x00, 0x60, 0xDE, 0x2D, 0x00, 0x00, 0x00, 0x32, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, +0x69, 0x6E, 0x20, 0x53, 0x74, 0x61, 0x6E, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6D, 0x65, +0x20, 0x2D, 0x20, 0x43, 0x72, 0x65, 0x73, 0x74, 0x6F, 0x6E, 0x2C, 0x20, 0x42, 0x72, 0x69, 0x74, +0x69, 0x73, 0x68, 0x20, 0x43, 0x6F, 0x6C, 0x75, 0x6D, 0x62, 0x69, 0x61, + +/* America/Cuiaba */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x7B, 0x94, +0xB8, 0x0F, 0x57, 0xF0, 0xB8, 0xFD, 0x4E, 0xB0, 0xB9, 0xF1, 0x42, 0x40, 0xBA, 0xDE, 0x82, 0x30, +0xDA, 0x38, 0xBC, 0x40, 0xDA, 0xEC, 0x08, 0x40, 0xDC, 0x19, 0xEF, 0xC0, 0xDC, 0xB9, 0x67, 0x30, +0xDD, 0xFB, 0x23, 0x40, 0xDE, 0x9B, 0xEC, 0x30, 0xDF, 0xDD, 0xA8, 0x40, 0xE0, 0x54, 0x41, 0x30, +0xF4, 0x98, 0x0D, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0xC0, 0x72, 0x40, 0xF7, 0x0E, 0x2C, 0xB0, +0xF8, 0x51, 0x3A, 0x40, 0xF8, 0xC7, 0xD3, 0x30, 0xFA, 0x0A, 0xE0, 0xC0, 0xFA, 0xA9, 0x06, 0xB0, +0xFB, 0xEC, 0x14, 0x40, 0xFC, 0x8B, 0x8B, 0xB0, 0x1D, 0xC9, 0x9C, 0x40, 0x1E, 0x78, 0xE5, 0xB0, +0x1F, 0xA0, 0x43, 0xC0, 0x20, 0x33, 0xDD, 0xB0, 0x21, 0x81, 0x77, 0x40, 0x22, 0x0B, 0xD6, 0xB0, +0x23, 0x58, 0x1E, 0xC0, 0x23, 0xE2, 0x7E, 0x30, 0x25, 0x38, 0x00, 0xC0, 0x25, 0xD4, 0xD5, 0x30, +0x27, 0x21, 0x1D, 0x40, 0x27, 0xBD, 0xF1, 0xB0, 0x29, 0x00, 0xFF, 0x40, 0x29, 0x94, 0x99, 0x30, +0x2A, 0xEA, 0x1B, 0xC0, 0x2B, 0x6B, 0x40, 0xB0, 0x2C, 0xC0, 0xC3, 0x40, 0x2D, 0x66, 0xD2, 0x30, +0x2E, 0xA0, 0xA5, 0x40, 0x2F, 0x46, 0xB4, 0x30, 0x30, 0x80, 0x87, 0x40, 0x31, 0x1D, 0x5B, 0xB0, +0x32, 0x57, 0x2E, 0xC0, 0x33, 0x06, 0x78, 0x30, 0x34, 0x38, 0x62, 0x40, 0x34, 0xF8, 0xCF, 0x30, +0x36, 0x20, 0x2D, 0x40, 0x36, 0xCF, 0x76, 0xB0, 0x37, 0xF6, 0xD4, 0xC0, 0x38, 0xB8, 0x93, 0x30, +0x39, 0xDF, 0xF1, 0x40, 0x3A, 0x8F, 0x3A, 0xB0, 0x3B, 0xC9, 0x0D, 0xC0, 0x3C, 0x6F, 0x1C, 0xB0, +0x3D, 0xC4, 0x9F, 0x40, 0x3E, 0x4E, 0xFE, 0xB0, 0x41, 0x87, 0x06, 0x40, 0x42, 0x17, 0xFD, 0x30, +0x43, 0x51, 0xD0, 0x40, 0x43, 0xF7, 0xDF, 0x30, 0x45, 0x4D, 0x61, 0xC0, 0x45, 0xE0, 0xFB, 0xB0, +0x47, 0x11, 0x94, 0x40, 0x47, 0xB7, 0xA3, 0x30, 0x48, 0xFA, 0xB0, 0xC0, 0x49, 0x97, 0x85, 0x30, +0x4A, 0xDA, 0x92, 0xC0, 0x4B, 0x80, 0xA1, 0xB0, 0x4C, 0xBA, 0x74, 0xC0, 0x4D, 0x60, 0x83, 0xB0, +0x4E, 0x9A, 0x56, 0xC0, 0x4F, 0x49, 0xA0, 0x30, 0x50, 0x83, 0x73, 0x40, 0x51, 0x20, 0x47, 0xB0, +0x52, 0x63, 0x55, 0x40, 0x53, 0x00, 0x29, 0xB0, 0x54, 0x43, 0x37, 0x40, 0x54, 0xE9, 0x46, 0x30, +0x56, 0x23, 0x19, 0x40, 0x56, 0xC9, 0x28, 0x30, 0x58, 0x02, 0xFB, 0x40, 0x58, 0xA9, 0x0A, 0x30, +0x59, 0xE2, 0xDD, 0x40, 0x5A, 0x88, 0xEC, 0x30, 0x5B, 0xCB, 0xF9, 0xC0, 0x5C, 0x68, 0xCE, 0x30, +0x5D, 0xAB, 0xDB, 0xC0, 0x5E, 0x48, 0xB0, 0x30, 0x5F, 0x8B, 0xBD, 0xC0, 0x60, 0x31, 0xCC, 0xB0, +0x61, 0x6B, 0x9F, 0xC0, 0x62, 0x11, 0xAE, 0xB0, 0x63, 0x4B, 0x81, 0xC0, 0x63, 0xFA, 0xCB, 0x30, +0x65, 0x2B, 0x63, 0xC0, 0x65, 0xD1, 0x72, 0xB0, 0x67, 0x14, 0x80, 0x40, 0x67, 0xB1, 0x54, 0xB0, +0x68, 0xF4, 0x62, 0x40, 0x69, 0x9A, 0x71, 0x30, 0x6A, 0xD4, 0x44, 0x40, 0x6B, 0x7A, 0x53, 0x30, +0x6C, 0xB4, 0x26, 0x40, 0x6D, 0x5A, 0x35, 0x30, 0x6E, 0x94, 0x08, 0x40, 0x6F, 0x3A, 0x17, 0x30, +0x70, 0x7D, 0x24, 0xC0, 0x71, 0x19, 0xF9, 0x30, 0x72, 0x5D, 0x06, 0xC0, 0x72, 0xF9, 0xDB, 0x30, +0x74, 0x3C, 0xE8, 0xC0, 0x74, 0xD9, 0xBD, 0x30, 0x76, 0x1C, 0xCA, 0xC0, 0x76, 0xC2, 0xD9, 0xB0, +0x77, 0xFC, 0xAC, 0xC0, 0x78, 0xAB, 0xF6, 0x30, 0x79, 0xDC, 0x8E, 0xC0, 0x7A, 0x82, 0x9D, 0xB0, +0x7B, 0xC5, 0xAB, 0x40, 0x7C, 0x62, 0x7F, 0xB0, 0x7D, 0xA5, 0x8D, 0x40, 0x7E, 0x4B, 0x9C, 0x30, +0x7F, 0x85, 0x6F, 0x40, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0xFF, 0xFF, 0xCB, 0x6C, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x4D, 0x53, 0x54, 0x00, 0x41, 0x4D, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x8D, 0x02, 0x00, 0xBD, 0x14, 0xF2, 0x00, +0x00, 0x00, 0x0B, 0x4D, 0x61, 0x74, 0x6F, 0x20, 0x47, 0x72, 0x6F, 0x73, 0x73, 0x6F, + +/* America/Curacao */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x93, 0x1E, 0x2E, 0x20, +0xF6, 0x98, 0xEC, 0x48, 0x01, 0x02, 0xFF, 0xFF, 0xBF, 0x60, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0xB8, +0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x4E, 0x54, 0x00, +0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xEB, 0x5D, 0x00, 0xA9, +0x5F, 0x60, 0x00, 0x00, 0x00, 0x00, + +/* America/Danmarkshavn */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x9B, 0x80, 0x49, 0x00, +0x13, 0x4D, 0x7C, 0x50, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x30, 0xE7, 0x4E, 0x30, 0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x05, 0xFF, 0xFF, 0xEE, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, +0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, +0xE3, 0xE0, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x57, 0x47, +0x54, 0x00, 0x57, 0x47, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0xFE, 0x77, 0x3A, 0x00, 0xF6, 0x2C, 0xD5, 0x00, +0x00, 0x00, 0x21, 0x65, 0x61, 0x73, 0x74, 0x20, 0x63, 0x6F, 0x61, 0x73, 0x74, 0x2C, 0x20, 0x6E, +0x6F, 0x72, 0x74, 0x68, 0x20, 0x6F, 0x66, 0x20, 0x53, 0x63, 0x6F, 0x72, 0x65, 0x73, 0x62, 0x79, +0x73, 0x75, 0x6E, 0x64, + +/* America/Dawson */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1D, 0x9E, 0xB8, 0xCB, 0xB0, +0x9F, 0xBB, 0x23, 0xA0, 0xA0, 0xD0, 0x0C, 0xB0, 0xA1, 0xA2, 0xD2, 0x80, 0xCB, 0x89, 0x28, 0xB0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x34, 0x20, 0xF7, 0x2F, 0x76, 0x90, 0xF8, 0x28, 0xA2, 0x10, +0x07, 0x30, 0xEC, 0x90, 0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, +0x16, 0x39, 0x37, 0x10, 0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, +0x1A, 0x02, 0x35, 0x90, 0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, +0x1D, 0xC1, 0xF9, 0x90, 0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20, +0x21, 0x81, 0xBD, 0x90, 0x22, 0x56, 0x0D, 0x20, 0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20, +0x25, 0x4A, 0xBC, 0x10, 0x26, 0x15, 0xD1, 0x20, 0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0, +0x29, 0x0A, 0x80, 0x10, 0x29, 0xDE, 0xCF, 0xA0, 0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0, +0x2C, 0xD3, 0x7E, 0x90, 0x2D, 0x9E, 0x93, 0xA0, 0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0, +0x30, 0x93, 0x42, 0x90, 0x31, 0x67, 0x92, 0x20, 0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20, +0x34, 0x53, 0x06, 0x90, 0x35, 0x27, 0x56, 0x20, 0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20, +0x38, 0x1C, 0x05, 0x10, 0x38, 0xE7, 0x1A, 0x20, 0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20, +0x3B, 0xDB, 0xC9, 0x10, 0x3C, 0xB0, 0x18, 0xA0, 0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0, +0x3F, 0x9B, 0x8D, 0x10, 0x40, 0x6F, 0xDC, 0xA0, 0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0, +0x43, 0x64, 0x8B, 0x90, 0x44, 0x2F, 0xA0, 0xA0, 0x45, 0x44, 0x6D, 0x90, 0x45, 0xF3, 0xD3, 0x20, +0x47, 0x2D, 0x8A, 0x10, 0x47, 0xD3, 0xB5, 0x20, 0x49, 0x0D, 0x6C, 0x10, 0x49, 0xB3, 0x97, 0x20, +0x4A, 0xED, 0x4E, 0x10, 0x4B, 0x9C, 0xB3, 0xA0, 0x4C, 0xD6, 0x6A, 0x90, 0x4D, 0x7C, 0x95, 0xA0, +0x4E, 0xB6, 0x4C, 0x90, 0x4F, 0x5C, 0x77, 0xA0, 0x50, 0x96, 0x2E, 0x90, 0x51, 0x3C, 0x59, 0xA0, +0x52, 0x76, 0x10, 0x90, 0x53, 0x1C, 0x3B, 0xA0, 0x54, 0x55, 0xF2, 0x90, 0x54, 0xFC, 0x1D, 0xA0, +0x56, 0x35, 0xD4, 0x90, 0x56, 0xE5, 0x3A, 0x20, 0x58, 0x1E, 0xF1, 0x10, 0x58, 0xC5, 0x1C, 0x20, +0x59, 0xFE, 0xD3, 0x10, 0x5A, 0xA4, 0xFE, 0x20, 0x5B, 0xDE, 0xB5, 0x10, 0x5C, 0x84, 0xE0, 0x20, +0x5D, 0xBE, 0x97, 0x10, 0x5E, 0x64, 0xC2, 0x20, 0x5F, 0x9E, 0x79, 0x10, 0x60, 0x4D, 0xDE, 0xA0, +0x61, 0x87, 0x95, 0x90, 0x62, 0x2D, 0xC0, 0xA0, 0x63, 0x67, 0x77, 0x90, 0x64, 0x0D, 0xA2, 0xA0, +0x65, 0x47, 0x59, 0x90, 0x65, 0xED, 0x84, 0xA0, 0x67, 0x27, 0x3B, 0x90, 0x67, 0xCD, 0x66, 0xA0, +0x69, 0x07, 0x1D, 0x90, 0x69, 0xAD, 0x48, 0xA0, 0x6A, 0xE6, 0xFF, 0x90, 0x6B, 0x96, 0x65, 0x20, +0x6C, 0xD0, 0x1C, 0x10, 0x6D, 0x76, 0x47, 0x20, 0x6E, 0xAF, 0xFE, 0x10, 0x6F, 0x56, 0x29, 0x20, +0x70, 0x8F, 0xE0, 0x10, 0x71, 0x36, 0x0B, 0x20, 0x72, 0x6F, 0xC2, 0x10, 0x73, 0x15, 0xED, 0x20, +0x74, 0x4F, 0xA4, 0x10, 0x74, 0xFF, 0x09, 0xA0, 0x76, 0x38, 0xC0, 0x90, 0x76, 0xDE, 0xEB, 0xA0, +0x78, 0x18, 0xA2, 0x90, 0x78, 0xBE, 0xCD, 0xA0, 0x79, 0xF8, 0x84, 0x90, 0x7A, 0x9E, 0xAF, 0xA0, +0x7B, 0xD8, 0x66, 0x90, 0x7C, 0x7E, 0x91, 0xA0, 0x7D, 0xB8, 0x48, 0x90, 0x7E, 0x5E, 0x73, 0xA0, +0x7F, 0x98, 0x2A, 0x90, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x04, 0x01, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x00, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x04, 0xFF, 0xFF, +0x8F, 0x80, 0x01, 0x08, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, +0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x15, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x19, 0x59, 0x44, 0x54, 0x00, +0x59, 0x53, 0x54, 0x00, 0x59, 0x57, 0x54, 0x00, 0x59, 0x50, 0x54, 0x00, 0x59, 0x44, 0x44, 0x54, +0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xEB, 0x16, 0x4A, 0x00, 0x3D, 0xEC, 0xDD, 0x00, +0x00, 0x00, 0x1A, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, +0x2D, 0x20, 0x6E, 0x6F, 0x72, 0x74, 0x68, 0x20, 0x59, 0x75, 0x6B, 0x6F, 0x6E, + +/* America/Dawson_Creek */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x9E, 0xB8, 0xBD, 0xA0, +0x9F, 0xBB, 0x15, 0x90, 0xCB, 0x89, 0x1A, 0xA0, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x26, 0x10, +0xD5, 0x55, 0xF1, 0x20, 0xD6, 0x20, 0xEA, 0x10, 0xD7, 0x35, 0xD3, 0x20, 0xD8, 0x00, 0xCC, 0x10, +0xD9, 0x15, 0xB5, 0x20, 0xD9, 0xE0, 0xAE, 0x10, 0xDA, 0xFE, 0xD1, 0xA0, 0xDB, 0xC0, 0x90, 0x10, +0xDC, 0xDE, 0xB3, 0xA0, 0xDD, 0xA9, 0xAC, 0x90, 0xDE, 0xBE, 0x95, 0xA0, 0xDF, 0x89, 0x8E, 0x90, +0xE0, 0x9E, 0x77, 0xA0, 0xE1, 0x69, 0x70, 0x90, 0xE2, 0x7E, 0x59, 0xA0, 0xE3, 0x49, 0x52, 0x90, +0xE4, 0x5E, 0x3B, 0xA0, 0xE5, 0x29, 0x34, 0x90, 0xE6, 0x47, 0x58, 0x20, 0xE7, 0x12, 0x51, 0x10, +0xE8, 0x27, 0x3A, 0x20, 0xE8, 0xF2, 0x33, 0x10, 0xEA, 0x07, 0x1C, 0x20, 0xEA, 0xD2, 0x15, 0x10, +0xEB, 0xE6, 0xFE, 0x20, 0xEC, 0xB1, 0xF7, 0x10, 0xED, 0xC6, 0xE0, 0x20, 0xEE, 0x91, 0xD9, 0x10, +0xEF, 0xAF, 0xFC, 0xA0, 0xF0, 0x71, 0xBB, 0x10, 0xF1, 0x8F, 0xDE, 0xA0, 0xF2, 0x7F, 0xC1, 0x90, +0xF3, 0x6F, 0xC0, 0xA0, 0xF4, 0x5F, 0xA3, 0x90, 0xF5, 0x4F, 0xA2, 0xA0, 0xF6, 0x3F, 0x85, 0x90, +0xF7, 0x2F, 0x84, 0xA0, 0xF8, 0x28, 0xA2, 0x10, 0xF9, 0x0F, 0x66, 0xA0, 0xFA, 0x08, 0x84, 0x10, +0xFA, 0xF8, 0x83, 0x20, 0xFB, 0xE8, 0x66, 0x10, 0xFC, 0xD8, 0x65, 0x20, 0xFD, 0xC8, 0x48, 0x10, +0xFE, 0xB8, 0x47, 0x20, 0xFF, 0xA8, 0x2A, 0x10, 0x00, 0x98, 0x29, 0x20, 0x01, 0x88, 0x0C, 0x10, +0x02, 0x78, 0x0B, 0x20, 0x03, 0x71, 0x28, 0x90, 0x04, 0x61, 0x27, 0xA0, 0x05, 0x01, 0xF0, 0x90, +0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x00, 0xFF, +0xFF, 0x8F, 0x80, 0x00, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, +0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x10, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, +0x57, 0x54, 0x00, 0x50, 0x50, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xE4, 0x86, 0x9A, 0x00, 0x5B, 0x32, 0x5A, 0x00, 0x00, 0x00, +0x49, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x53, 0x74, 0x61, 0x6E, 0x64, 0x61, +0x72, 0x64, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x44, 0x61, 0x77, 0x73, 0x6F, 0x6E, +0x20, 0x43, 0x72, 0x65, 0x65, 0x6B, 0x20, 0x26, 0x20, 0x46, 0x6F, 0x72, 0x74, 0x20, 0x53, 0x61, +0x69, 0x6E, 0x74, 0x20, 0x4A, 0x6F, 0x68, 0x6E, 0x2C, 0x20, 0x42, 0x72, 0x69, 0x74, 0x69, 0x73, +0x68, 0x20, 0x43, 0x6F, 0x6C, 0x75, 0x6D, 0x62, 0x69, 0x61, + +/* America/Denver */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xA6, 0x3A, 0x90, +0x9F, 0xBB, 0x07, 0x80, 0xA0, 0x86, 0x1C, 0x90, 0xA1, 0x9A, 0xE9, 0x80, 0xA2, 0x65, 0xFE, 0x90, +0xA3, 0x84, 0x06, 0x00, 0xA4, 0x45, 0xE0, 0x90, 0xA4, 0x8F, 0xA6, 0x80, 0xCB, 0x89, 0x0C, 0x90, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xF7, 0x2F, 0x76, 0x90, 0xF8, 0x28, 0x94, 0x00, +0xF9, 0x0F, 0x58, 0x90, 0xFA, 0x08, 0x76, 0x00, 0xFA, 0xF8, 0x75, 0x10, 0xFB, 0xE8, 0x58, 0x00, +0xFC, 0xD8, 0x57, 0x10, 0xFD, 0xC8, 0x3A, 0x00, 0xFE, 0xB8, 0x39, 0x10, 0xFF, 0xA8, 0x1C, 0x00, +0x00, 0x98, 0x1B, 0x10, 0x01, 0x87, 0xFE, 0x00, 0x02, 0x77, 0xFD, 0x10, 0x03, 0x71, 0x1A, 0x80, +0x04, 0x61, 0x19, 0x90, 0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90, 0x07, 0x30, 0xDE, 0x80, +0x07, 0x8D, 0x35, 0x90, 0x09, 0x10, 0xC0, 0x80, 0x09, 0xAD, 0xB1, 0x10, 0x0A, 0xF0, 0xA2, 0x80, +0x0B, 0xE0, 0xA1, 0x90, 0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x0E, 0xB9, 0xA1, 0x00, +0x0F, 0xA9, 0xA0, 0x10, 0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10, 0x12, 0x79, 0x65, 0x00, +0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, 0x16, 0x39, 0x29, 0x00, +0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, 0x1A, 0x02, 0x27, 0x80, +0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, 0x1D, 0xC1, 0xEB, 0x80, +0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, 0x21, 0x81, 0xAF, 0x80, +0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x25, 0x4A, 0xAE, 0x00, +0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x29, 0x0A, 0x72, 0x00, +0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x2C, 0xD3, 0x70, 0x80, +0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, 0x30, 0x93, 0x34, 0x80, +0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, +0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, +0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, +0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, +0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, +0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, 0x47, 0x2D, 0x7C, 0x00, +0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x4A, 0xED, 0x40, 0x00, +0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, 0x4E, 0xB6, 0x3E, 0x80, +0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, 0x52, 0x76, 0x02, 0x80, +0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, 0x56, 0x35, 0xC6, 0x80, +0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x59, 0xFE, 0xC5, 0x00, +0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x5D, 0xBE, 0x89, 0x00, +0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x61, 0x87, 0x87, 0x80, +0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80, +0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80, +0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00, +0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00, +0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00, +0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80, +0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80, +0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xAB, +0xA0, 0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, +0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, +0x00, 0x4D, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC5, 0xF7, +0x5C, 0x00, 0x72, 0x77, 0x0F, 0x00, 0x00, 0x00, 0x0D, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, +0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, + +/* America/Detroit */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x85, 0xBD, 0x22, 0x5B, +0x99, 0x3C, 0x94, 0x00, 0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, +0xD7, 0x35, 0xA8, 0xF0, 0xD8, 0x00, 0xA1, 0xE0, 0xFB, 0x33, 0xAC, 0x70, 0xFB, 0xE8, 0x3B, 0xE0, +0x06, 0x40, 0xDF, 0x70, 0x07, 0x30, 0xC2, 0x60, 0x07, 0x8D, 0x19, 0x70, 0x09, 0x10, 0xA4, 0x60, +0x0A, 0x00, 0xA3, 0x70, 0x0A, 0xF0, 0x86, 0x60, 0x0B, 0xE0, 0x85, 0x70, 0x0C, 0xD9, 0xA2, 0xE0, +0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, 0x0F, 0xA9, 0x83, 0xF0, 0x10, 0x99, 0x66, 0xE0, +0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, 0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, +0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, 0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, +0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, 0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, +0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, 0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, +0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, 0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, +0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, 0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, +0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, 0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, +0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, 0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, +0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, +0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, +0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, 0x38, 0xE6, 0xEF, 0xF0, 0x39, 0xFB, 0xBC, 0xE0, +0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, +0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, +0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, +0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, +0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, +0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, +0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, +0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, +0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, +0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, +0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, +0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, +0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, +0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, +0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, +0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, +0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, +0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, +0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x01, 0x02, 0x03, 0x04, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0xFF, 0xFF, 0xB2, 0x25, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, +0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, +0x10, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, +0x53, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x45, 0x50, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xC9, 0xEB, 0xF2, 0x00, +0x93, 0xF0, 0xB8, 0x00, 0x00, 0x00, 0x28, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, +0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x4D, 0x69, 0x63, 0x68, 0x69, 0x67, 0x61, 0x6E, 0x20, 0x2D, +0x20, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* America/Dominica */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x44, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x91, 0xF4, 0x34, 0x4C, +0x01, 0xFF, 0xFF, 0xC6, 0x70, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xAC, 0xD0, 0x00, 0xB4, 0xF8, +0x20, 0x00, 0x00, 0x00, 0x00, + +/* America/Edmonton */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x88, 0xDE, 0xCE, 0xE0, +0x9E, 0xB8, 0xAF, 0x90, 0x9F, 0xBB, 0x07, 0x80, 0xA0, 0x98, 0x91, 0x90, 0xA0, 0xD2, 0x85, 0x80, +0xA2, 0x8A, 0xE8, 0x90, 0xA3, 0x84, 0x06, 0x00, 0xA4, 0x6A, 0xCA, 0x90, 0xA5, 0x35, 0xC3, 0x80, +0xA6, 0x53, 0xE7, 0x10, 0xA7, 0x15, 0xA5, 0x80, 0xA8, 0x33, 0xC9, 0x10, 0xA8, 0xFE, 0xC2, 0x00, +0xCB, 0x89, 0x0C, 0x90, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xD5, 0x55, 0xE3, 0x10, +0xD6, 0x20, 0xDC, 0x00, 0xFA, 0xF8, 0x75, 0x10, 0xFB, 0xE8, 0x58, 0x00, 0xFE, 0xB8, 0x39, 0x10, +0xFF, 0xA8, 0x1C, 0x00, 0x04, 0x61, 0x19, 0x90, 0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90, +0x07, 0x30, 0xDE, 0x80, 0x08, 0x20, 0xDD, 0x90, 0x09, 0x10, 0xC0, 0x80, 0x0A, 0x00, 0xBF, 0x90, +0x0A, 0xF0, 0xA2, 0x80, 0x0B, 0xE0, 0xA1, 0x90, 0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90, +0x0E, 0xB9, 0xA1, 0x00, 0x0F, 0xA9, 0xA0, 0x10, 0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10, +0x12, 0x79, 0x65, 0x00, 0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, +0x16, 0x39, 0x29, 0x00, 0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, +0x1A, 0x02, 0x27, 0x80, 0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, +0x1D, 0xC1, 0xEB, 0x80, 0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, +0x21, 0x81, 0xAF, 0x80, 0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, +0x25, 0x4A, 0xAE, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, +0x29, 0x0A, 0x72, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, +0x2C, 0xD3, 0x70, 0x80, 0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, +0x30, 0x93, 0x34, 0x80, 0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, +0x34, 0x52, 0xF8, 0x80, 0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, +0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, +0x3B, 0xDB, 0xBB, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, +0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, +0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, +0x47, 0x2D, 0x7C, 0x00, 0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, +0x4A, 0xED, 0x40, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, +0x4E, 0xB6, 0x3E, 0x80, 0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, +0x52, 0x76, 0x02, 0x80, 0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, +0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, +0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, +0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, +0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, +0x65, 0x47, 0x4B, 0x80, 0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, +0x69, 0x07, 0x0F, 0x80, 0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, +0x6C, 0xD0, 0x0E, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, +0x70, 0x8F, 0xD2, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, +0x74, 0x4F, 0x96, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, +0x78, 0x18, 0x94, 0x80, 0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, +0x7B, 0xD8, 0x58, 0x80, 0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, +0x7F, 0x98, 0x1C, 0x80, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, +0x95, 0xA0, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x08, +0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, +0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xDB, 0x0A, 0x38, 0x00, 0x65, +0x85, 0x95, 0x00, 0x00, 0x00, 0x42, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x54, +0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x41, 0x6C, 0x62, 0x65, 0x72, 0x74, 0x61, 0x2C, 0x20, 0x65, +0x61, 0x73, 0x74, 0x20, 0x42, 0x72, 0x69, 0x74, 0x69, 0x73, 0x68, 0x20, 0x43, 0x6F, 0x6C, 0x75, +0x6D, 0x62, 0x69, 0x61, 0x20, 0x26, 0x20, 0x77, 0x65, 0x73, 0x74, 0x20, 0x53, 0x61, 0x73, 0x6B, +0x61, 0x74, 0x63, 0x68, 0x65, 0x77, 0x61, 0x6E, + +/* America/Eirunepe */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0xAA, 0x88, 0x80, +0xB8, 0x0F, 0x66, 0x00, 0xB8, 0xFD, 0x5C, 0xC0, 0xB9, 0xF1, 0x50, 0x50, 0xBA, 0xDE, 0x90, 0x40, +0xDA, 0x38, 0xCA, 0x50, 0xDA, 0xEC, 0x16, 0x50, 0xDC, 0x19, 0xFD, 0xD0, 0xDC, 0xB9, 0x75, 0x40, +0xDD, 0xFB, 0x31, 0x50, 0xDE, 0x9B, 0xFA, 0x40, 0xDF, 0xDD, 0xB6, 0x50, 0xE0, 0x54, 0x4F, 0x40, +0xF4, 0x98, 0x1B, 0xD0, 0xF5, 0x05, 0x7A, 0x40, 0xF6, 0xC0, 0x80, 0x50, 0xF7, 0x0E, 0x3A, 0xC0, +0xF8, 0x51, 0x48, 0x50, 0xF8, 0xC7, 0xE1, 0x40, 0xFA, 0x0A, 0xEE, 0xD0, 0xFA, 0xA9, 0x14, 0xC0, +0xFB, 0xEC, 0x22, 0x50, 0xFC, 0x8B, 0x99, 0xC0, 0x1D, 0xC9, 0xAA, 0x50, 0x1E, 0x78, 0xF3, 0xC0, +0x1F, 0xA0, 0x51, 0xD0, 0x20, 0x33, 0xEB, 0xC0, 0x21, 0x81, 0x85, 0x50, 0x22, 0x0B, 0xE4, 0xC0, +0x2C, 0xC0, 0xD1, 0x50, 0x2D, 0x66, 0xE0, 0x40, 0x48, 0x60, 0x7F, 0x50, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0xFF, 0xFF, 0xBE, 0x80, +0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x09, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x43, 0x53, 0x54, 0x00, 0x41, 0x43, 0x54, +0x00, 0x41, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x28, +0x15, 0x00, 0xA8, 0x0C, 0xD5, 0x00, 0x00, 0x00, 0x0A, 0x57, 0x20, 0x41, 0x6D, 0x61, 0x7A, 0x6F, +0x6E, 0x61, 0x73, + +/* America/El_Salvador */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xA3, 0xD5, 0xA6, 0x20, +0x20, 0x9A, 0xDC, 0xE0, 0x21, 0x5C, 0x9B, 0x50, 0x22, 0x7A, 0xBE, 0xE0, 0x23, 0x3C, 0x7D, 0x50, +0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xAC, 0x60, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, +0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, +0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x3B, 0xD0, 0x00, 0x8A, 0x8C, +0xC0, 0x00, 0x00, 0x00, 0x00, + +/* America/Ensenada */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0xA5, 0xB6, 0xF6, 0x80, +0xA9, 0x79, 0x4F, 0x70, 0xAF, 0xF2, 0x7C, 0xF0, 0xB6, 0x66, 0x64, 0x70, 0xB7, 0x1B, 0x10, 0x00, +0xB8, 0x0A, 0xF2, 0xF0, 0xCB, 0xEA, 0x8D, 0x80, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x99, 0xBA, 0x70, +0xD7, 0x1B, 0x59, 0x00, 0xD8, 0x91, 0xB4, 0xF0, 0xE2, 0x7E, 0x59, 0xA0, 0xE3, 0x49, 0x52, 0x90, +0xE4, 0x5E, 0x3B, 0xA0, 0xE5, 0x29, 0x34, 0x90, 0xE6, 0x47, 0x58, 0x20, 0xE7, 0x12, 0x51, 0x10, +0xE8, 0x27, 0x3A, 0x20, 0xE8, 0xF2, 0x33, 0x10, 0xEA, 0x07, 0x1C, 0x20, 0xEA, 0xD2, 0x15, 0x10, +0xEB, 0xE6, 0xFE, 0x20, 0xEC, 0xB1, 0xF7, 0x10, 0xED, 0xC6, 0xE0, 0x20, 0xEE, 0x91, 0xD9, 0x10, +0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, +0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x73, 0x10, +0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, +0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, +0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, 0x1D, 0xC1, 0xF9, 0x90, +0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20, 0x21, 0x81, 0xBD, 0x90, +0x22, 0x56, 0x0D, 0x20, 0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20, 0x25, 0x4A, 0xBC, 0x10, +0x26, 0x15, 0xD1, 0x20, 0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0, 0x29, 0x0A, 0x80, 0x10, +0x29, 0xDE, 0xCF, 0xA0, 0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0, 0x2C, 0xD3, 0x7E, 0x90, +0x2D, 0x9E, 0x93, 0xA0, 0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0, 0x30, 0x93, 0x42, 0x90, +0x31, 0x67, 0x92, 0x20, 0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20, 0x34, 0x53, 0x06, 0x90, +0x35, 0x27, 0x56, 0x20, 0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20, 0x38, 0x1C, 0x05, 0x10, +0x38, 0xE7, 0x1A, 0x20, 0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20, 0x3B, 0xDB, 0xC9, 0x10, +0x3C, 0xB0, 0x18, 0xA0, 0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0, 0x3F, 0x9B, 0x8D, 0x10, +0x40, 0x6F, 0xDC, 0xA0, 0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0, 0x43, 0x64, 0x8B, 0x90, +0x44, 0x2F, 0xA0, 0xA0, 0x45, 0x44, 0x6D, 0x90, 0x46, 0x0F, 0x82, 0xA0, 0x47, 0x24, 0x4F, 0x90, +0x47, 0xF8, 0x9F, 0x20, 0x49, 0x04, 0x31, 0x90, 0x49, 0xD8, 0x81, 0x20, 0x4A, 0xE4, 0x13, 0x90, +0x4B, 0x9C, 0xB3, 0xA0, 0x4C, 0xD6, 0x6A, 0x90, 0x4D, 0x7C, 0x95, 0xA0, 0x4E, 0xB6, 0x4C, 0x90, +0x4F, 0x5C, 0x77, 0xA0, 0x50, 0x96, 0x2E, 0x90, 0x51, 0x3C, 0x59, 0xA0, 0x52, 0x76, 0x10, 0x90, +0x53, 0x1C, 0x3B, 0xA0, 0x54, 0x55, 0xF2, 0x90, 0x54, 0xFC, 0x1D, 0xA0, 0x56, 0x35, 0xD4, 0x90, +0x56, 0xE5, 0x3A, 0x20, 0x58, 0x1E, 0xF1, 0x10, 0x58, 0xC5, 0x1C, 0x20, 0x59, 0xFE, 0xD3, 0x10, +0x5A, 0xA4, 0xFE, 0x20, 0x5B, 0xDE, 0xB5, 0x10, 0x5C, 0x84, 0xE0, 0x20, 0x5D, 0xBE, 0x97, 0x10, +0x5E, 0x64, 0xC2, 0x20, 0x5F, 0x9E, 0x79, 0x10, 0x60, 0x4D, 0xDE, 0xA0, 0x61, 0x87, 0x95, 0x90, +0x62, 0x2D, 0xC0, 0xA0, 0x63, 0x67, 0x77, 0x90, 0x64, 0x0D, 0xA2, 0xA0, 0x65, 0x47, 0x59, 0x90, +0x65, 0xED, 0x84, 0xA0, 0x67, 0x27, 0x3B, 0x90, 0x67, 0xCD, 0x66, 0xA0, 0x69, 0x07, 0x1D, 0x90, +0x69, 0xAD, 0x48, 0xA0, 0x6A, 0xE6, 0xFF, 0x90, 0x6B, 0x96, 0x65, 0x20, 0x6C, 0xD0, 0x1C, 0x10, +0x6D, 0x76, 0x47, 0x20, 0x6E, 0xAF, 0xFE, 0x10, 0x6F, 0x56, 0x29, 0x20, 0x70, 0x8F, 0xE0, 0x10, +0x71, 0x36, 0x0B, 0x20, 0x72, 0x6F, 0xC2, 0x10, 0x73, 0x15, 0xED, 0x20, 0x74, 0x4F, 0xA4, 0x10, +0x74, 0xFF, 0x09, 0xA0, 0x76, 0x38, 0xC0, 0x90, 0x76, 0xDE, 0xEB, 0xA0, 0x78, 0x18, 0xA2, 0x90, +0x78, 0xBE, 0xCD, 0xA0, 0x79, 0xF8, 0x84, 0x90, 0x7A, 0x9E, 0xAF, 0xA0, 0x7B, 0xD8, 0x66, 0x90, +0x7C, 0x7E, 0x91, 0xA0, 0x7D, 0xB8, 0x48, 0x90, 0x7E, 0x5E, 0x73, 0xA0, 0x7F, 0x98, 0x2A, 0x90, +0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x04, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0xFF, 0xFF, 0x92, 0x4C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, +0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, +0x90, 0x01, 0x10, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, +0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* America/Fortaleza */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x6B, 0x18, +0xB8, 0x0F, 0x49, 0xE0, 0xB8, 0xFD, 0x40, 0xA0, 0xB9, 0xF1, 0x34, 0x30, 0xBA, 0xDE, 0x74, 0x20, +0xDA, 0x38, 0xAE, 0x30, 0xDA, 0xEB, 0xFA, 0x30, 0xDC, 0x19, 0xE1, 0xB0, 0xDC, 0xB9, 0x59, 0x20, +0xDD, 0xFB, 0x15, 0x30, 0xDE, 0x9B, 0xDE, 0x20, 0xDF, 0xDD, 0x9A, 0x30, 0xE0, 0x54, 0x33, 0x20, +0xF4, 0x97, 0xFF, 0xB0, 0xF5, 0x05, 0x5E, 0x20, 0xF6, 0xC0, 0x64, 0x30, 0xF7, 0x0E, 0x1E, 0xA0, +0xF8, 0x51, 0x2C, 0x30, 0xF8, 0xC7, 0xC5, 0x20, 0xFA, 0x0A, 0xD2, 0xB0, 0xFA, 0xA8, 0xF8, 0xA0, +0xFB, 0xEC, 0x06, 0x30, 0xFC, 0x8B, 0x7D, 0xA0, 0x1D, 0xC9, 0x8E, 0x30, 0x1E, 0x78, 0xD7, 0xA0, +0x1F, 0xA0, 0x35, 0xB0, 0x20, 0x33, 0xCF, 0xA0, 0x21, 0x81, 0x69, 0x30, 0x22, 0x0B, 0xC8, 0xA0, +0x23, 0x58, 0x10, 0xB0, 0x23, 0xE2, 0x70, 0x20, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xD4, 0xC7, 0x20, +0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xB8, 0x85, 0x20, 0x39, 0xDF, 0xE3, 0x30, 0x39, 0xF2, 0x4A, 0x20, +0x3B, 0xC8, 0xFF, 0xB0, 0x3C, 0x6F, 0x0E, 0xA0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, +0xFF, 0xDB, 0xE8, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, +0x09, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x52, 0x53, 0x54, 0x00, 0x42, 0x52, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xA8, 0x6D, 0x00, 0xD7, 0xE9, 0x70, 0x00, 0x00, 0x00, 0x1E, +0x4E, 0x45, 0x20, 0x42, 0x72, 0x61, 0x7A, 0x69, 0x6C, 0x20, 0x28, 0x4D, 0x41, 0x2C, 0x20, 0x50, +0x49, 0x2C, 0x20, 0x43, 0x45, 0x2C, 0x20, 0x52, 0x4E, 0x2C, 0x20, 0x50, 0x42, 0x29, + +/* America/Fort_Wayne */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCA, 0x57, 0x22, 0x80, +0xCA, 0xD8, 0x47, 0x70, 0xCB, 0x88, 0xFE, 0x80, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, +0xD3, 0x75, 0xF3, 0x00, 0xD4, 0x40, 0xEB, 0xF0, 0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0, +0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, 0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0, +0xDA, 0xFE, 0xB5, 0x80, 0xDB, 0xC0, 0x73, 0xF0, 0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, +0xDE, 0xBE, 0x79, 0x80, 0xDF, 0x89, 0x72, 0x70, 0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, +0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, 0xE4, 0x5E, 0x1F, 0x80, 0xE8, 0xF2, 0x16, 0xF0, +0xEA, 0x07, 0x00, 0x00, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, +0x01, 0x87, 0xE1, 0xE0, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, +0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, +0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, +0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, +0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, +0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, +0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, +0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, +0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, +0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, +0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, +0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, +0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, +0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, +0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, +0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, +0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, +0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, +0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, +0xB9, 0xB0, 0x00, 0x10, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x14, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, +0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x44, +0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x89, +0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* America/Glace_Bay */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x80, 0xF1, 0xA8, 0x34, +0x9E, 0xB8, 0x85, 0x60, 0x9F, 0xBA, 0xDD, 0x50, 0xCB, 0x88, 0xE2, 0x60, 0xD2, 0x23, 0xF4, 0x70, +0xD2, 0x60, 0xED, 0xD0, 0xE0, 0x9E, 0x3F, 0x60, 0xE1, 0x69, 0x38, 0x50, 0x04, 0x60, 0xEF, 0x60, +0x05, 0x50, 0xD2, 0x50, 0x06, 0x40, 0xD1, 0x60, 0x07, 0x30, 0xB4, 0x50, 0x08, 0x20, 0xB3, 0x60, +0x09, 0x10, 0x96, 0x50, 0x0A, 0x00, 0x95, 0x60, 0x0A, 0xF0, 0x78, 0x50, 0x0B, 0xE0, 0x77, 0x60, +0x0C, 0xD9, 0x94, 0xD0, 0x0D, 0xC0, 0x59, 0x60, 0x0E, 0xB9, 0x76, 0xD0, 0x0F, 0xA9, 0x75, 0xE0, +0x10, 0x99, 0x58, 0xD0, 0x11, 0x89, 0x57, 0xE0, 0x12, 0x79, 0x3A, 0xD0, 0x13, 0x69, 0x39, 0xE0, +0x14, 0x59, 0x1C, 0xD0, 0x15, 0x49, 0x1B, 0xE0, 0x16, 0x38, 0xFE, 0xD0, 0x17, 0x28, 0xFD, 0xE0, +0x18, 0x22, 0x1B, 0x50, 0x19, 0x08, 0xDF, 0xE0, 0x1A, 0x01, 0xFD, 0x50, 0x1A, 0xF1, 0xFC, 0x60, +0x1B, 0xE1, 0xDF, 0x50, 0x1C, 0xD1, 0xDE, 0x60, 0x1D, 0xC1, 0xC1, 0x50, 0x1E, 0xB1, 0xC0, 0x60, +0x1F, 0xA1, 0xA3, 0x50, 0x20, 0x75, 0xF2, 0xE0, 0x21, 0x81, 0x85, 0x50, 0x22, 0x55, 0xD4, 0xE0, +0x23, 0x6A, 0xA1, 0xD0, 0x24, 0x35, 0xB6, 0xE0, 0x25, 0x4A, 0x83, 0xD0, 0x26, 0x15, 0x98, 0xE0, +0x27, 0x2A, 0x65, 0xD0, 0x27, 0xFE, 0xB5, 0x60, 0x29, 0x0A, 0x47, 0xD0, 0x29, 0xDE, 0x97, 0x60, +0x2A, 0xEA, 0x29, 0xD0, 0x2B, 0xBE, 0x79, 0x60, 0x2C, 0xD3, 0x46, 0x50, 0x2D, 0x9E, 0x5B, 0x60, +0x2E, 0xB3, 0x28, 0x50, 0x2F, 0x7E, 0x3D, 0x60, 0x30, 0x93, 0x0A, 0x50, 0x31, 0x67, 0x59, 0xE0, +0x32, 0x72, 0xEC, 0x50, 0x33, 0x47, 0x3B, 0xE0, 0x34, 0x52, 0xCE, 0x50, 0x35, 0x27, 0x1D, 0xE0, +0x36, 0x32, 0xB0, 0x50, 0x37, 0x06, 0xFF, 0xE0, 0x38, 0x1B, 0xCC, 0xD0, 0x38, 0xE6, 0xE1, 0xE0, +0x39, 0xFB, 0xAE, 0xD0, 0x3A, 0xC6, 0xC3, 0xE0, 0x3B, 0xDB, 0x90, 0xD0, 0x3C, 0xAF, 0xE0, 0x60, +0x3D, 0xBB, 0x72, 0xD0, 0x3E, 0x8F, 0xC2, 0x60, 0x3F, 0x9B, 0x54, 0xD0, 0x40, 0x6F, 0xA4, 0x60, +0x41, 0x84, 0x71, 0x50, 0x42, 0x4F, 0x86, 0x60, 0x43, 0x64, 0x53, 0x50, 0x44, 0x2F, 0x68, 0x60, +0x45, 0x44, 0x35, 0x50, 0x45, 0xF3, 0x9A, 0xE0, 0x47, 0x2D, 0x51, 0xD0, 0x47, 0xD3, 0x7C, 0xE0, +0x49, 0x0D, 0x33, 0xD0, 0x49, 0xB3, 0x5E, 0xE0, 0x4A, 0xED, 0x15, 0xD0, 0x4B, 0x9C, 0x7B, 0x60, +0x4C, 0xD6, 0x32, 0x50, 0x4D, 0x7C, 0x5D, 0x60, 0x4E, 0xB6, 0x14, 0x50, 0x4F, 0x5C, 0x3F, 0x60, +0x50, 0x95, 0xF6, 0x50, 0x51, 0x3C, 0x21, 0x60, 0x52, 0x75, 0xD8, 0x50, 0x53, 0x1C, 0x03, 0x60, +0x54, 0x55, 0xBA, 0x50, 0x54, 0xFB, 0xE5, 0x60, 0x56, 0x35, 0x9C, 0x50, 0x56, 0xE5, 0x01, 0xE0, +0x58, 0x1E, 0xB8, 0xD0, 0x58, 0xC4, 0xE3, 0xE0, 0x59, 0xFE, 0x9A, 0xD0, 0x5A, 0xA4, 0xC5, 0xE0, +0x5B, 0xDE, 0x7C, 0xD0, 0x5C, 0x84, 0xA7, 0xE0, 0x5D, 0xBE, 0x5E, 0xD0, 0x5E, 0x64, 0x89, 0xE0, +0x5F, 0x9E, 0x40, 0xD0, 0x60, 0x4D, 0xA6, 0x60, 0x61, 0x87, 0x5D, 0x50, 0x62, 0x2D, 0x88, 0x60, +0x63, 0x67, 0x3F, 0x50, 0x64, 0x0D, 0x6A, 0x60, 0x65, 0x47, 0x21, 0x50, 0x65, 0xED, 0x4C, 0x60, +0x67, 0x27, 0x03, 0x50, 0x67, 0xCD, 0x2E, 0x60, 0x69, 0x06, 0xE5, 0x50, 0x69, 0xAD, 0x10, 0x60, +0x6A, 0xE6, 0xC7, 0x50, 0x6B, 0x96, 0x2C, 0xE0, 0x6C, 0xCF, 0xE3, 0xD0, 0x6D, 0x76, 0x0E, 0xE0, +0x6E, 0xAF, 0xC5, 0xD0, 0x6F, 0x55, 0xF0, 0xE0, 0x70, 0x8F, 0xA7, 0xD0, 0x71, 0x35, 0xD2, 0xE0, +0x72, 0x6F, 0x89, 0xD0, 0x73, 0x15, 0xB4, 0xE0, 0x74, 0x4F, 0x6B, 0xD0, 0x74, 0xFE, 0xD1, 0x60, +0x76, 0x38, 0x88, 0x50, 0x76, 0xDE, 0xB3, 0x60, 0x78, 0x18, 0x6A, 0x50, 0x78, 0xBE, 0x95, 0x60, +0x79, 0xF8, 0x4C, 0x50, 0x7A, 0x9E, 0x77, 0x60, 0x7B, 0xD8, 0x2E, 0x50, 0x7C, 0x7E, 0x59, 0x60, +0x7D, 0xB8, 0x10, 0x50, 0x7E, 0x5E, 0x3B, 0x60, 0x7F, 0x97, 0xF2, 0x50, 0x02, 0x01, 0x02, 0x03, +0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xC7, 0xCC, 0x00, 0x00, 0xFF, 0xFF, +0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x0C, +0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x44, 0x54, 0x00, 0x41, 0x53, +0x54, 0x00, 0x41, 0x57, 0x54, 0x00, 0x41, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0xCF, 0xD3, 0x1F, 0x00, 0xB7, 0x2E, 0x88, 0x00, 0x00, 0x00, 0x47, +0x41, 0x74, 0x6C, 0x61, 0x6E, 0x74, 0x69, 0x63, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, +0x4E, 0x6F, 0x76, 0x61, 0x20, 0x53, 0x63, 0x6F, 0x74, 0x69, 0x61, 0x20, 0x2D, 0x20, 0x70, 0x6C, +0x61, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x64, 0x69, 0x64, 0x20, 0x6E, 0x6F, +0x74, 0x20, 0x6F, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x20, 0x44, 0x53, 0x54, 0x20, 0x31, 0x39, +0x36, 0x36, 0x2D, 0x31, 0x39, 0x37, 0x31, + +/* America/Godthab */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D, 0x9B, 0x80, 0x68, 0x00, +0x13, 0x4D, 0x7C, 0x50, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, +0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, +0xE0, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x57, 0x47, 0x54, 0x00, 0x57, 0x47, 0x53, 0x54, 0x00, +0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xEB, 0x43, 0xDD, 0x00, 0xC3, +0xB8, 0x2A, 0x00, 0x00, 0x00, 0x0E, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, +0x69, 0x6F, 0x6E, 0x73, + +/* America/Goose_Bay */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1D, 0x9E, 0xB8, 0x7E, 0x8C, +0x9F, 0xBA, 0xD6, 0x7C, 0xBE, 0x9E, 0x4D, 0x6C, 0xC0, 0xB8, 0x31, 0x38, 0xC1, 0x79, 0xEF, 0xA8, +0xC2, 0x98, 0x13, 0x38, 0xC3, 0x59, 0xD1, 0xA8, 0xC4, 0x77, 0xF5, 0x38, 0xC5, 0x39, 0xB3, 0xA8, +0xC6, 0x61, 0x11, 0xB8, 0xC7, 0x19, 0x95, 0xA8, 0xC8, 0x40, 0xF3, 0xB8, 0xC9, 0x02, 0xB2, 0x28, +0xCA, 0x20, 0xD5, 0xB8, 0xCA, 0xE2, 0x94, 0x28, 0xCC, 0x00, 0xB7, 0xB8, 0xD2, 0x23, 0xF4, 0x70, +0xD2, 0x60, 0xE6, 0xC8, 0xD3, 0x88, 0x44, 0xD8, 0xD4, 0x4A, 0x03, 0x48, 0xD5, 0x68, 0x26, 0xD8, +0xD6, 0x29, 0xE5, 0x48, 0xD7, 0x48, 0x08, 0xD8, 0xD8, 0x09, 0xC7, 0x48, 0xD9, 0x27, 0xEA, 0xD8, +0xD9, 0xE9, 0xA9, 0x48, 0xDB, 0x11, 0x07, 0x58, 0xDB, 0xD2, 0xC5, 0xC8, 0xDC, 0xDE, 0x74, 0x58, +0xDD, 0xA9, 0x6D, 0x48, 0xDE, 0xBE, 0x56, 0x58, 0xDF, 0x89, 0x4F, 0x48, 0xE0, 0x9E, 0x38, 0x58, +0xE1, 0x69, 0x31, 0x48, 0xE2, 0x7E, 0x1A, 0x58, 0xE3, 0x49, 0x13, 0x48, 0xE4, 0x5D, 0xFC, 0x58, +0xE5, 0x28, 0xF5, 0x48, 0xE6, 0x47, 0x18, 0xD8, 0xE7, 0x12, 0x11, 0xC8, 0xE8, 0x26, 0xFA, 0xD8, +0xE8, 0xF1, 0xF3, 0xC8, 0xEA, 0x06, 0xDC, 0xD8, 0xEA, 0xD1, 0xD5, 0xC8, 0xEB, 0xE6, 0xBE, 0xD8, +0xEC, 0xB1, 0xB7, 0xC8, 0xED, 0xC6, 0xA0, 0xD8, 0xEE, 0xBF, 0xBE, 0x48, 0xEF, 0xAF, 0xBD, 0x58, +0xF0, 0x9F, 0xA0, 0x48, 0xF1, 0x8F, 0x9F, 0x58, 0xF2, 0x7F, 0x82, 0x48, 0xF3, 0x6F, 0x81, 0x58, +0xF4, 0x5F, 0x64, 0x48, 0xF5, 0x4F, 0x63, 0x58, 0xF6, 0x3F, 0x46, 0x48, 0xF7, 0x2F, 0x45, 0x58, +0xF8, 0x28, 0x62, 0xC8, 0xF8, 0xDA, 0x6B, 0x58, 0xF9, 0x0F, 0x2E, 0x60, 0xFA, 0x08, 0x4B, 0xD0, +0xFA, 0xF8, 0x4A, 0xE0, 0xFB, 0xE8, 0x2D, 0xD0, 0xFC, 0xD8, 0x2C, 0xE0, 0xFD, 0xC8, 0x0F, 0xD0, +0xFE, 0xB8, 0x0E, 0xE0, 0xFF, 0xA7, 0xF1, 0xD0, 0x00, 0x97, 0xF0, 0xE0, 0x01, 0x87, 0xD3, 0xD0, +0x02, 0x77, 0xD2, 0xE0, 0x03, 0x70, 0xF0, 0x50, 0x04, 0x60, 0xEF, 0x60, 0x05, 0x50, 0xD2, 0x50, +0x06, 0x40, 0xD1, 0x60, 0x07, 0x30, 0xB4, 0x50, 0x08, 0x20, 0xB3, 0x60, 0x09, 0x10, 0x96, 0x50, +0x0A, 0x00, 0x95, 0x60, 0x0A, 0xF0, 0x78, 0x50, 0x0B, 0xE0, 0x77, 0x60, 0x0C, 0xD9, 0x94, 0xD0, +0x0D, 0xC0, 0x59, 0x60, 0x0E, 0xB9, 0x76, 0xD0, 0x0F, 0xA9, 0x75, 0xE0, 0x10, 0x99, 0x58, 0xD0, +0x11, 0x89, 0x57, 0xE0, 0x12, 0x79, 0x3A, 0xD0, 0x13, 0x69, 0x39, 0xE0, 0x14, 0x59, 0x1C, 0xD0, +0x15, 0x49, 0x1B, 0xE0, 0x16, 0x38, 0xFE, 0xD0, 0x17, 0x28, 0xFD, 0xE0, 0x18, 0x22, 0x1B, 0x50, +0x19, 0x08, 0xDF, 0xE0, 0x1A, 0x01, 0xFD, 0x50, 0x1A, 0xF1, 0xFC, 0x60, 0x1B, 0xE1, 0xDF, 0x50, +0x1C, 0xD1, 0xDE, 0x60, 0x1D, 0xC1, 0xC1, 0x50, 0x1E, 0xB1, 0xC0, 0x60, 0x1F, 0xA1, 0xA3, 0x50, +0x20, 0x75, 0xD6, 0xFC, 0x21, 0x81, 0x69, 0x6C, 0x22, 0x55, 0xB8, 0xFC, 0x23, 0x6A, 0x77, 0xDC, +0x24, 0x35, 0x9A, 0xFC, 0x25, 0x4A, 0x67, 0xEC, 0x26, 0x15, 0x7C, 0xFC, 0x27, 0x2A, 0x49, 0xEC, +0x27, 0xFE, 0x99, 0x7C, 0x29, 0x0A, 0x2B, 0xEC, 0x29, 0xDE, 0x7B, 0x7C, 0x2A, 0xEA, 0x0D, 0xEC, +0x2B, 0xBE, 0x5D, 0x7C, 0x2C, 0xD3, 0x2A, 0x6C, 0x2D, 0x9E, 0x3F, 0x7C, 0x2E, 0xB3, 0x0C, 0x6C, +0x2F, 0x7E, 0x21, 0x7C, 0x30, 0x92, 0xEE, 0x6C, 0x31, 0x67, 0x3D, 0xFC, 0x32, 0x72, 0xD0, 0x6C, +0x33, 0x47, 0x1F, 0xFC, 0x34, 0x52, 0xB2, 0x6C, 0x35, 0x27, 0x01, 0xFC, 0x36, 0x32, 0x94, 0x6C, +0x37, 0x06, 0xE3, 0xFC, 0x38, 0x1B, 0xB0, 0xEC, 0x38, 0xE6, 0xC5, 0xFC, 0x39, 0xFB, 0x92, 0xEC, +0x3A, 0xC6, 0xA7, 0xFC, 0x3B, 0xDB, 0x74, 0xEC, 0x3C, 0xAF, 0xC4, 0x7C, 0x3D, 0xBB, 0x56, 0xEC, +0x3E, 0x8F, 0xA6, 0x7C, 0x3F, 0x9B, 0x38, 0xEC, 0x40, 0x6F, 0x88, 0x7C, 0x41, 0x84, 0x55, 0x6C, +0x42, 0x4F, 0x6A, 0x7C, 0x43, 0x64, 0x37, 0x6C, 0x44, 0x2F, 0x4C, 0x7C, 0x45, 0x44, 0x19, 0x6C, +0x45, 0xF3, 0x7E, 0xFC, 0x47, 0x2D, 0x35, 0xEC, 0x47, 0xD3, 0x60, 0xFC, 0x49, 0x0D, 0x17, 0xEC, +0x49, 0xB3, 0x42, 0xFC, 0x4A, 0xEC, 0xF9, 0xEC, 0x4B, 0x9C, 0x5F, 0x7C, 0x4C, 0xD6, 0x16, 0x6C, +0x4D, 0x7C, 0x41, 0x7C, 0x4E, 0xB6, 0x14, 0x50, 0x4F, 0x5C, 0x3F, 0x60, 0x50, 0x95, 0xF6, 0x50, +0x51, 0x3C, 0x21, 0x60, 0x52, 0x75, 0xD8, 0x50, 0x53, 0x1C, 0x03, 0x60, 0x54, 0x55, 0xBA, 0x50, +0x54, 0xFB, 0xE5, 0x60, 0x56, 0x35, 0x9C, 0x50, 0x56, 0xE5, 0x01, 0xE0, 0x58, 0x1E, 0xB8, 0xD0, +0x58, 0xC4, 0xE3, 0xE0, 0x59, 0xFE, 0x9A, 0xD0, 0x5A, 0xA4, 0xC5, 0xE0, 0x5B, 0xDE, 0x7C, 0xD0, +0x5C, 0x84, 0xA7, 0xE0, 0x5D, 0xBE, 0x5E, 0xD0, 0x5E, 0x64, 0x89, 0xE0, 0x5F, 0x9E, 0x40, 0xD0, +0x60, 0x4D, 0xA6, 0x60, 0x61, 0x87, 0x5D, 0x50, 0x62, 0x2D, 0x88, 0x60, 0x63, 0x67, 0x3F, 0x50, +0x64, 0x0D, 0x6A, 0x60, 0x65, 0x47, 0x21, 0x50, 0x65, 0xED, 0x4C, 0x60, 0x67, 0x27, 0x03, 0x50, +0x67, 0xCD, 0x2E, 0x60, 0x69, 0x06, 0xE5, 0x50, 0x69, 0xAD, 0x10, 0x60, 0x6A, 0xE6, 0xC7, 0x50, +0x6B, 0x96, 0x2C, 0xE0, 0x6C, 0xCF, 0xE3, 0xD0, 0x6D, 0x76, 0x0E, 0xE0, 0x6E, 0xAF, 0xC5, 0xD0, +0x6F, 0x55, 0xF0, 0xE0, 0x70, 0x8F, 0xA7, 0xD0, 0x71, 0x35, 0xD2, 0xE0, 0x72, 0x6F, 0x89, 0xD0, +0x73, 0x15, 0xB4, 0xE0, 0x74, 0x4F, 0x6B, 0xD0, 0x74, 0xFE, 0xD1, 0x60, 0x76, 0x38, 0x88, 0x50, +0x76, 0xDE, 0xB3, 0x60, 0x78, 0x18, 0x6A, 0x50, 0x78, 0xBE, 0x95, 0x60, 0x79, 0xF8, 0x4C, 0x50, +0x7A, 0x9E, 0x77, 0x60, 0x7B, 0xD8, 0x2E, 0x50, 0x7C, 0x7E, 0x59, 0x60, 0x7D, 0xB8, 0x10, 0x50, +0x7E, 0x5E, 0x3B, 0x60, 0x7F, 0x97, 0xF2, 0x50, 0x01, 0x00, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x05, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x08, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x00, 0xFF, 0xFF, 0xDC, 0xA4, 0x01, 0x04, 0xFF, +0xFF, 0xCE, 0xC8, 0x00, 0x00, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x04, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, +0x08, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x0C, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x10, 0xFF, 0xFF, 0xC7, +0xC0, 0x00, 0x14, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x18, 0x4E, 0x53, 0x54, 0x00, 0x4E, 0x44, 0x54, +0x00, 0x4E, 0x50, 0x54, 0x00, 0x4E, 0x57, 0x54, 0x00, 0x41, 0x44, 0x54, 0x00, 0x41, 0x53, 0x54, +0x00, 0x41, 0x44, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xB5, 0x95, 0x00, 0xB6, 0x78, 0x3D, +0x00, 0x00, 0x00, 0x29, 0x41, 0x74, 0x6C, 0x61, 0x6E, 0x74, 0x69, 0x63, 0x20, 0x54, 0x69, 0x6D, +0x65, 0x20, 0x2D, 0x20, 0x4C, 0x61, 0x62, 0x72, 0x61, 0x64, 0x6F, 0x72, 0x20, 0x2D, 0x20, 0x6D, +0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* America/Grand_Turk */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x93, 0x0F, 0xB5, 0x00, +0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, 0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, +0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, 0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, +0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, 0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, +0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, 0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, +0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, 0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, +0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, 0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, +0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, 0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, +0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, 0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, +0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, +0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, +0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, 0x38, 0xE6, 0xEF, 0xF0, 0x39, 0xFB, 0xBC, 0xE0, +0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, +0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, +0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, +0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, +0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, +0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, +0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, +0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, +0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, +0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, +0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, +0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, +0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, +0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, +0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, +0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, +0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, +0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, +0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, +0xFF, 0xB8, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, +0x08, 0x4B, 0x4D, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xAA, 0x15, 0xAA, 0x00, 0xA6, 0x1E, 0x0A, 0x00, 0x00, 0x00, 0x00, + +/* America/Grenada */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x91, 0xF4, 0x34, 0x64, +0x01, 0xFF, 0xFF, 0xC6, 0x1C, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xB7, 0x48, 0x00, 0xB4, 0x6F, +0x68, 0x00, 0x00, 0x00, 0x00, + +/* America/Guadeloupe */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x91, 0xD5, 0xE1, 0xB0, +0x01, 0xFF, 0xFF, 0xC6, 0x50, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x19, 0x65, 0x00, 0xB4, 0xC4, +0x0A, 0x00, 0x00, 0x00, 0x00, + +/* America/Guatemala */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x9F, 0x9D, 0xEA, 0xDC, +0x07, 0x55, 0xAC, 0x60, 0x07, 0xCD, 0x96, 0xD0, 0x19, 0x2C, 0x78, 0x60, 0x19, 0xCF, 0xE4, 0x50, +0x27, 0xEA, 0xEE, 0xE0, 0x28, 0xC8, 0x5C, 0xD0, 0x44, 0x54, 0x52, 0x60, 0x45, 0x1F, 0x4B, 0x50, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xAB, 0x24, 0x00, 0x00, 0xFF, +0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, +0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F, 0xA8, +0x65, 0x00, 0x88, 0x8A, 0x6D, 0x00, 0x00, 0x00, 0x00, + +/* America/Guayaquil */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x45, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xB6, 0xA4, 0x42, 0x18, +0x01, 0xFF, 0xFF, 0xB6, 0x68, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0x51, 0x4D, 0x54, +0x00, 0x45, 0x43, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x05, 0xE5, 0x00, 0x98, 0xD7, +0x9A, 0x00, 0x00, 0x00, 0x08, 0x6D, 0x61, 0x69, 0x6E, 0x6C, 0x61, 0x6E, 0x64, + +/* America/Guyana */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D, 0x98, 0xD9, 0x79, 0x88, +0xF9, 0x39, 0x3E, 0xBC, 0x0A, 0x7D, 0xB4, 0x3C, 0x27, 0x7F, 0xFB, 0x30, 0x01, 0x02, 0x03, 0x04, +0xFF, 0xFF, 0xC9, 0x78, 0x00, 0x00, 0xFF, 0xFF, 0xCB, 0x44, 0x00, 0x04, 0xFF, 0xFF, 0xCB, 0x44, +0x00, 0x09, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x09, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x09, 0x4C, 0x4D, +0x54, 0x00, 0x47, 0x42, 0x47, 0x54, 0x00, 0x47, 0x59, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0xB4, 0x80, 0x00, 0xB9, 0xE7, 0x25, 0x00, 0x00, 0x00, +0x00, + +/* America/Halifax */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x80, 0xF1, 0xAB, 0xA0, +0x9A, 0xE4, 0xDE, 0xC0, 0x9B, 0xD6, 0x13, 0x30, 0x9E, 0xB8, 0x85, 0x60, 0x9F, 0xBA, 0xDD, 0x50, +0xA2, 0x9D, 0x17, 0x40, 0xA3, 0x30, 0xB1, 0x30, 0xA4, 0x7A, 0x56, 0x40, 0xA5, 0x1B, 0x1F, 0x30, +0xA6, 0x53, 0xA0, 0xC0, 0xA6, 0xFC, 0x52, 0xB0, 0xA8, 0x3C, 0xBD, 0x40, 0xA8, 0xDC, 0x34, 0xB0, +0xAA, 0x1C, 0x9F, 0x40, 0xAA, 0xCD, 0x3A, 0x30, 0xAB, 0xFC, 0x81, 0x40, 0xAC, 0xBF, 0x91, 0x30, +0xAD, 0xEE, 0xD8, 0x40, 0xAE, 0x8C, 0xFE, 0x30, 0xAF, 0xBC, 0x45, 0x40, 0xB0, 0x7F, 0x55, 0x30, +0xB1, 0xAE, 0x9C, 0x40, 0xB2, 0x4B, 0x70, 0xB0, 0xB3, 0x8E, 0x7E, 0x40, 0xB4, 0x24, 0xBB, 0x30, +0xB5, 0x6E, 0x60, 0x40, 0xB6, 0x15, 0xC0, 0xB0, 0xB7, 0x4E, 0x42, 0x40, 0xB8, 0x08, 0x17, 0xB0, +0xB9, 0x24, 0xE9, 0xC0, 0xB9, 0xE7, 0xF9, 0xB0, 0xBB, 0x04, 0xCB, 0xC0, 0xBB, 0xD1, 0x16, 0x30, +0xBD, 0x00, 0x5D, 0x40, 0xBD, 0x9D, 0x31, 0xB0, 0xBE, 0xF2, 0xB4, 0x40, 0xBF, 0x90, 0xDA, 0x30, +0xC0, 0xD3, 0xE7, 0xC0, 0xC1, 0x5E, 0x47, 0x30, 0xC2, 0x8D, 0x8E, 0x40, 0xC3, 0x50, 0x9E, 0x30, +0xC4, 0x6D, 0x70, 0x40, 0xC5, 0x30, 0x80, 0x30, 0xC6, 0x72, 0x3C, 0x40, 0xC7, 0x10, 0x62, 0x30, +0xC8, 0x36, 0x6E, 0xC0, 0xC8, 0xF9, 0x7E, 0xB0, 0xCA, 0x16, 0x50, 0xC0, 0xCA, 0xD9, 0x60, 0xB0, +0xCB, 0x88, 0xE2, 0x60, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xED, 0xD0, 0xD3, 0x75, 0xD6, 0xE0, +0xD4, 0x40, 0xCF, 0xD0, 0xD5, 0x55, 0xB8, 0xE0, 0xD6, 0x20, 0xB1, 0xD0, 0xD7, 0x35, 0x9A, 0xE0, +0xD8, 0x00, 0x93, 0xD0, 0xD9, 0x15, 0x7C, 0xE0, 0xD9, 0xE0, 0x75, 0xD0, 0xDC, 0xDE, 0x7B, 0x60, +0xDD, 0xA9, 0x74, 0x50, 0xDE, 0xBE, 0x5D, 0x60, 0xDF, 0x89, 0x56, 0x50, 0xE0, 0x9E, 0x3F, 0x60, +0xE1, 0x69, 0x38, 0x50, 0xE2, 0x7E, 0x21, 0x60, 0xE3, 0x49, 0x1A, 0x50, 0xE6, 0x47, 0x1F, 0xE0, +0xE7, 0x12, 0x18, 0xD0, 0xE8, 0x27, 0x01, 0xE0, 0xE8, 0xF1, 0xFA, 0xD0, 0xEA, 0x06, 0xE3, 0xE0, +0xEA, 0xD1, 0xDC, 0xD0, 0xEB, 0xE6, 0xC5, 0xE0, 0xEC, 0xB1, 0xBE, 0xD0, 0xF1, 0x8F, 0xA6, 0x60, +0xF2, 0x7F, 0x89, 0x50, 0xF3, 0x6F, 0x88, 0x60, 0xF4, 0x5F, 0x6B, 0x50, 0xF5, 0x4F, 0x6A, 0x60, +0xF6, 0x3F, 0x4D, 0x50, 0xF7, 0x2F, 0x4C, 0x60, 0xF8, 0x28, 0x69, 0xD0, 0xF9, 0x0F, 0x2E, 0x60, +0xFA, 0x08, 0x4B, 0xD0, 0xFA, 0xF8, 0x4A, 0xE0, 0xFB, 0xE8, 0x2D, 0xD0, 0xFC, 0xD8, 0x2C, 0xE0, +0xFD, 0xC8, 0x0F, 0xD0, 0xFE, 0xB8, 0x0E, 0xE0, 0xFF, 0xA7, 0xF1, 0xD0, 0x00, 0x97, 0xF0, 0xE0, +0x01, 0x87, 0xD3, 0xD0, 0x02, 0x77, 0xD2, 0xE0, 0x03, 0x70, 0xF0, 0x50, 0x04, 0x60, 0xEF, 0x60, +0x05, 0x50, 0xD2, 0x50, 0x06, 0x40, 0xD1, 0x60, 0x07, 0x30, 0xB4, 0x50, 0x08, 0x20, 0xB3, 0x60, +0x09, 0x10, 0x96, 0x50, 0x0A, 0x00, 0x95, 0x60, 0x0A, 0xF0, 0x78, 0x50, 0x0B, 0xE0, 0x77, 0x60, +0x0C, 0xD9, 0x94, 0xD0, 0x0D, 0xC0, 0x59, 0x60, 0x0E, 0xB9, 0x76, 0xD0, 0x0F, 0xA9, 0x75, 0xE0, +0x10, 0x99, 0x58, 0xD0, 0x11, 0x89, 0x57, 0xE0, 0x12, 0x79, 0x3A, 0xD0, 0x13, 0x69, 0x39, 0xE0, +0x14, 0x59, 0x1C, 0xD0, 0x15, 0x49, 0x1B, 0xE0, 0x16, 0x38, 0xFE, 0xD0, 0x17, 0x28, 0xFD, 0xE0, +0x18, 0x22, 0x1B, 0x50, 0x19, 0x08, 0xDF, 0xE0, 0x1A, 0x01, 0xFD, 0x50, 0x1A, 0xF1, 0xFC, 0x60, +0x1B, 0xE1, 0xDF, 0x50, 0x1C, 0xD1, 0xDE, 0x60, 0x1D, 0xC1, 0xC1, 0x50, 0x1E, 0xB1, 0xC0, 0x60, +0x1F, 0xA1, 0xA3, 0x50, 0x20, 0x75, 0xF2, 0xE0, 0x21, 0x81, 0x85, 0x50, 0x22, 0x55, 0xD4, 0xE0, +0x23, 0x6A, 0xA1, 0xD0, 0x24, 0x35, 0xB6, 0xE0, 0x25, 0x4A, 0x83, 0xD0, 0x26, 0x15, 0x98, 0xE0, +0x27, 0x2A, 0x65, 0xD0, 0x27, 0xFE, 0xB5, 0x60, 0x29, 0x0A, 0x47, 0xD0, 0x29, 0xDE, 0x97, 0x60, +0x2A, 0xEA, 0x29, 0xD0, 0x2B, 0xBE, 0x79, 0x60, 0x2C, 0xD3, 0x46, 0x50, 0x2D, 0x9E, 0x5B, 0x60, +0x2E, 0xB3, 0x28, 0x50, 0x2F, 0x7E, 0x3D, 0x60, 0x30, 0x93, 0x0A, 0x50, 0x31, 0x67, 0x59, 0xE0, +0x32, 0x72, 0xEC, 0x50, 0x33, 0x47, 0x3B, 0xE0, 0x34, 0x52, 0xCE, 0x50, 0x35, 0x27, 0x1D, 0xE0, +0x36, 0x32, 0xB0, 0x50, 0x37, 0x06, 0xFF, 0xE0, 0x38, 0x1B, 0xCC, 0xD0, 0x38, 0xE6, 0xE1, 0xE0, +0x39, 0xFB, 0xAE, 0xD0, 0x3A, 0xC6, 0xC3, 0xE0, 0x3B, 0xDB, 0x90, 0xD0, 0x3C, 0xAF, 0xE0, 0x60, +0x3D, 0xBB, 0x72, 0xD0, 0x3E, 0x8F, 0xC2, 0x60, 0x3F, 0x9B, 0x54, 0xD0, 0x40, 0x6F, 0xA4, 0x60, +0x41, 0x84, 0x71, 0x50, 0x42, 0x4F, 0x86, 0x60, 0x43, 0x64, 0x53, 0x50, 0x44, 0x2F, 0x68, 0x60, +0x45, 0x44, 0x35, 0x50, 0x45, 0xF3, 0x9A, 0xE0, 0x47, 0x2D, 0x51, 0xD0, 0x47, 0xD3, 0x7C, 0xE0, +0x49, 0x0D, 0x33, 0xD0, 0x49, 0xB3, 0x5E, 0xE0, 0x4A, 0xED, 0x15, 0xD0, 0x4B, 0x9C, 0x7B, 0x60, +0x4C, 0xD6, 0x32, 0x50, 0x4D, 0x7C, 0x5D, 0x60, 0x4E, 0xB6, 0x14, 0x50, 0x4F, 0x5C, 0x3F, 0x60, +0x50, 0x95, 0xF6, 0x50, 0x51, 0x3C, 0x21, 0x60, 0x52, 0x75, 0xD8, 0x50, 0x53, 0x1C, 0x03, 0x60, +0x54, 0x55, 0xBA, 0x50, 0x54, 0xFB, 0xE5, 0x60, 0x56, 0x35, 0x9C, 0x50, 0x56, 0xE5, 0x01, 0xE0, +0x58, 0x1E, 0xB8, 0xD0, 0x58, 0xC4, 0xE3, 0xE0, 0x59, 0xFE, 0x9A, 0xD0, 0x5A, 0xA4, 0xC5, 0xE0, +0x5B, 0xDE, 0x7C, 0xD0, 0x5C, 0x84, 0xA7, 0xE0, 0x5D, 0xBE, 0x5E, 0xD0, 0x5E, 0x64, 0x89, 0xE0, +0x5F, 0x9E, 0x40, 0xD0, 0x60, 0x4D, 0xA6, 0x60, 0x61, 0x87, 0x5D, 0x50, 0x62, 0x2D, 0x88, 0x60, +0x63, 0x67, 0x3F, 0x50, 0x64, 0x0D, 0x6A, 0x60, 0x65, 0x47, 0x21, 0x50, 0x65, 0xED, 0x4C, 0x60, +0x67, 0x27, 0x03, 0x50, 0x67, 0xCD, 0x2E, 0x60, 0x69, 0x06, 0xE5, 0x50, 0x69, 0xAD, 0x10, 0x60, +0x6A, 0xE6, 0xC7, 0x50, 0x6B, 0x96, 0x2C, 0xE0, 0x6C, 0xCF, 0xE3, 0xD0, 0x6D, 0x76, 0x0E, 0xE0, +0x6E, 0xAF, 0xC5, 0xD0, 0x6F, 0x55, 0xF0, 0xE0, 0x70, 0x8F, 0xA7, 0xD0, 0x71, 0x35, 0xD2, 0xE0, +0x72, 0x6F, 0x89, 0xD0, 0x73, 0x15, 0xB4, 0xE0, 0x74, 0x4F, 0x6B, 0xD0, 0x74, 0xFE, 0xD1, 0x60, +0x76, 0x38, 0x88, 0x50, 0x76, 0xDE, 0xB3, 0x60, 0x78, 0x18, 0x6A, 0x50, 0x78, 0xBE, 0x95, 0x60, +0x79, 0xF8, 0x4C, 0x50, 0x7A, 0x9E, 0x77, 0x60, 0x7B, 0xD8, 0x2E, 0x50, 0x7C, 0x7E, 0x59, 0x60, +0x7D, 0xB8, 0x10, 0x50, 0x7E, 0x5E, 0x3B, 0x60, 0x7F, 0x97, 0xF2, 0x50, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0xFF, 0xFF, 0xC4, 0x60, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, +0x00, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x0C, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x10, 0x4C, 0x4D, +0x54, 0x00, 0x41, 0x44, 0x54, 0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x57, 0x54, 0x00, 0x41, 0x50, +0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xCD, 0x75, 0xA8, +0x00, 0xB1, 0x9C, 0xC0, 0x00, 0x00, 0x00, 0x2E, 0x41, 0x74, 0x6C, 0x61, 0x6E, 0x74, 0x69, 0x63, +0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x4E, 0x6F, 0x76, 0x61, 0x20, 0x53, 0x63, 0x6F, +0x74, 0x69, 0x61, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x70, 0x6C, 0x61, 0x63, 0x65, 0x73, +0x29, 0x2C, 0x20, 0x50, 0x45, 0x49, + +/* America/Havana */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0C, 0xAC, 0x62, 0xC2, 0x80, +0xB1, 0xD3, 0x94, 0x50, 0xB2, 0x74, 0x5D, 0x40, 0xC8, 0x5B, 0x66, 0xD0, 0xC8, 0xD3, 0x51, 0x40, +0xCA, 0x3B, 0x48, 0xD0, 0xCA, 0xBC, 0x6D, 0xC0, 0xCC, 0x24, 0x65, 0x50, 0xCC, 0x9C, 0x4F, 0xC0, +0xD1, 0xC4, 0x0B, 0x50, 0xD2, 0x3B, 0xF5, 0xC0, 0xD3, 0xA3, 0xED, 0x50, 0xD4, 0x1B, 0xD7, 0xC0, +0xF7, 0x60, 0x05, 0xD0, 0xF7, 0xFF, 0x7D, 0x40, 0xF9, 0x3D, 0x44, 0xD0, 0xF9, 0xE3, 0x53, 0xC0, +0xFA, 0xDB, 0x3B, 0xD0, 0xFB, 0xA7, 0x86, 0x40, 0xFC, 0xC5, 0xA9, 0xD0, 0xFD, 0x87, 0x68, 0x40, +0xFE, 0xB8, 0x00, 0xD0, 0xFF, 0xA7, 0xE3, 0xC0, 0x00, 0x97, 0xE2, 0xD0, 0x01, 0x87, 0xC5, 0xC0, +0x02, 0x77, 0xC4, 0xD0, 0x03, 0x70, 0xE2, 0x40, 0x04, 0x60, 0xE1, 0x50, 0x05, 0x35, 0x14, 0xC0, +0x06, 0x40, 0xC3, 0x50, 0x07, 0x16, 0x48, 0x40, 0x08, 0x20, 0xA5, 0x50, 0x08, 0xF7, 0x7B, 0xC0, +0x0A, 0x00, 0x87, 0x50, 0x0A, 0xF0, 0x6A, 0x40, 0x0B, 0xE0, 0x69, 0x50, 0x0C, 0xD9, 0x86, 0xC0, +0x0D, 0xC0, 0x4B, 0x50, 0x0E, 0xB9, 0x68, 0xC0, 0x0F, 0xB2, 0xA2, 0x50, 0x10, 0x7D, 0x9B, 0x40, +0x11, 0x51, 0xEA, 0xD0, 0x12, 0x66, 0xB7, 0xC0, 0x13, 0x31, 0xCC, 0xD0, 0x14, 0x46, 0x99, 0xC0, +0x15, 0x5B, 0x82, 0xD0, 0x16, 0x26, 0x7B, 0xC0, 0x17, 0x3B, 0x64, 0xD0, 0x18, 0x06, 0x5D, 0xC0, +0x19, 0x1B, 0x46, 0xD0, 0x19, 0xE6, 0x3F, 0xC0, 0x1A, 0xFB, 0x28, 0xD0, 0x1B, 0xCF, 0x5C, 0x40, +0x1C, 0xDB, 0x0A, 0xD0, 0x1D, 0xAF, 0x3E, 0x40, 0x1E, 0x7A, 0x53, 0x50, 0x1F, 0x8F, 0x20, 0x40, +0x20, 0x5A, 0x35, 0x50, 0x21, 0x6F, 0x02, 0x40, 0x22, 0x43, 0x51, 0xD0, 0x23, 0x4E, 0xE4, 0x40, +0x24, 0x23, 0x33, 0xD0, 0x25, 0x2E, 0xC6, 0x40, 0x26, 0x15, 0x8A, 0xD0, 0x27, 0x17, 0xE2, 0xC0, +0x27, 0xFE, 0xA7, 0x50, 0x28, 0xF7, 0xD2, 0xD0, 0x29, 0xDE, 0x89, 0x50, 0x2A, 0xD7, 0xB4, 0xD0, +0x2B, 0xBE, 0x6B, 0x50, 0x2C, 0xB7, 0x96, 0xD0, 0x2D, 0x9E, 0x4D, 0x50, 0x2E, 0x97, 0x78, 0xD0, +0x2F, 0x7E, 0x2F, 0x50, 0x30, 0x77, 0x5A, 0xD0, 0x31, 0x67, 0x4B, 0xD0, 0x32, 0x57, 0x3C, 0xD0, +0x33, 0x47, 0x2D, 0xD0, 0x34, 0x40, 0x59, 0x50, 0x35, 0x1D, 0xD5, 0x50, 0x36, 0x32, 0xB0, 0x50, +0x36, 0xFD, 0xB7, 0x50, 0x38, 0x1B, 0xCC, 0xD0, 0x38, 0xE6, 0xD3, 0xD0, 0x39, 0xFB, 0xAE, 0xD0, +0x3A, 0xC6, 0xB5, 0xD0, 0x3B, 0xDB, 0x90, 0xD0, 0x3C, 0xAF, 0xD2, 0x50, 0x3D, 0xBB, 0x72, 0xD0, +0x3E, 0x8F, 0xB4, 0x50, 0x3F, 0x9B, 0x54, 0xD0, 0x40, 0x6F, 0x96, 0x50, 0x45, 0x44, 0x35, 0x50, +0x45, 0xF3, 0x8C, 0xD0, 0x47, 0x24, 0x17, 0x50, 0x47, 0xDC, 0xA9, 0x50, 0x49, 0x03, 0xF9, 0x50, +0x49, 0xB3, 0x50, 0xD0, 0x4A, 0xE3, 0xDB, 0x50, 0x4B, 0x9C, 0x6D, 0x50, 0x4C, 0xCC, 0xF7, 0xD0, +0x4D, 0x85, 0x89, 0xD0, 0x4E, 0xBF, 0x4E, 0xD0, 0x4F, 0x77, 0xE0, 0xD0, 0x50, 0x95, 0xF6, 0x50, +0x51, 0x3C, 0x13, 0x50, 0x52, 0x75, 0xD8, 0x50, 0x53, 0x1B, 0xF5, 0x50, 0x54, 0x55, 0xBA, 0x50, +0x54, 0xFB, 0xD7, 0x50, 0x56, 0x35, 0x9C, 0x50, 0x56, 0xE4, 0xF3, 0xD0, 0x58, 0x1E, 0xB8, 0xD0, +0x58, 0xC4, 0xD5, 0xD0, 0x59, 0xFE, 0x9A, 0xD0, 0x5A, 0xA4, 0xB7, 0xD0, 0x5B, 0xDE, 0x7C, 0xD0, +0x5C, 0x84, 0x99, 0xD0, 0x5D, 0xBE, 0x5E, 0xD0, 0x5E, 0x64, 0x7B, 0xD0, 0x5F, 0x9E, 0x40, 0xD0, +0x60, 0x4D, 0x98, 0x50, 0x61, 0x87, 0x5D, 0x50, 0x62, 0x2D, 0x7A, 0x50, 0x63, 0x67, 0x3F, 0x50, +0x64, 0x0D, 0x5C, 0x50, 0x65, 0x47, 0x21, 0x50, 0x65, 0xED, 0x3E, 0x50, 0x67, 0x27, 0x03, 0x50, +0x67, 0xCD, 0x20, 0x50, 0x69, 0x06, 0xE5, 0x50, 0x69, 0xAD, 0x02, 0x50, 0x6A, 0xE6, 0xC7, 0x50, +0x6B, 0x96, 0x1E, 0xD0, 0x6C, 0xCF, 0xE3, 0xD0, 0x6D, 0x76, 0x00, 0xD0, 0x6E, 0xAF, 0xC5, 0xD0, +0x6F, 0x55, 0xE2, 0xD0, 0x70, 0x8F, 0xA7, 0xD0, 0x71, 0x35, 0xC4, 0xD0, 0x72, 0x6F, 0x89, 0xD0, +0x73, 0x15, 0xA6, 0xD0, 0x74, 0x4F, 0x6B, 0xD0, 0x74, 0xFE, 0xC3, 0x50, 0x76, 0x38, 0x88, 0x50, +0x76, 0xDE, 0xA5, 0x50, 0x78, 0x18, 0x6A, 0x50, 0x78, 0xBE, 0x87, 0x50, 0x79, 0xF8, 0x4C, 0x50, +0x7A, 0x9E, 0x69, 0x50, 0x7B, 0xD8, 0x2E, 0x50, 0x7C, 0x7E, 0x4B, 0x50, 0x7D, 0xB8, 0x10, 0x50, +0x7E, 0x5E, 0x2D, 0x50, 0x7F, 0x97, 0xF2, 0x50, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, +0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0xFF, 0xFF, 0xB2, 0xC0, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, +0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, +0x04, 0x48, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, +0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xA0, 0xB5, 0x00, 0x94, 0xFA, 0x05, 0x00, +0x00, 0x00, 0x00, + +/* America/Hermosillo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xA5, 0xB6, 0xE8, 0x70, +0xAF, 0xF2, 0x6E, 0xE0, 0xB6, 0x66, 0x56, 0x60, 0xB7, 0x43, 0xD2, 0x60, 0xB8, 0x0C, 0x36, 0x60, +0xB8, 0xFD, 0x86, 0xF0, 0xCB, 0xEA, 0x71, 0x60, 0xD8, 0x91, 0xB4, 0xF0, 0x00, 0x00, 0x70, 0x80, +0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, +0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0xFF, 0xFF, 0x97, 0xF8, 0x00, 0x00, 0xFF, 0xFF, 0x9D, +0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x0C, 0xFF, +0xFF, 0xAB, 0xA0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, +0x00, 0x50, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xB5, 0xAE, 0x6A, 0x00, 0x69, 0x56, 0x25, 0x00, 0x00, 0x00, 0x1F, 0x4D, +0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x53, 0x74, 0x61, 0x6E, 0x64, 0x61, 0x72, 0x64, +0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x53, 0x6F, 0x6E, 0x6F, 0x72, 0x61, + +/* America/Indiana/Indianapolis */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCA, 0x57, 0x22, 0x80, +0xCA, 0xD8, 0x47, 0x70, 0xCB, 0x88, 0xFE, 0x80, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, +0xD3, 0x75, 0xF3, 0x00, 0xD4, 0x40, 0xEB, 0xF0, 0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0, +0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, 0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0, +0xDA, 0xFE, 0xB5, 0x80, 0xDB, 0xC0, 0x73, 0xF0, 0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, +0xDE, 0xBE, 0x79, 0x80, 0xDF, 0x89, 0x72, 0x70, 0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, +0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, 0xE4, 0x5E, 0x1F, 0x80, 0xE8, 0xF2, 0x16, 0xF0, +0xEA, 0x07, 0x00, 0x00, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, +0x01, 0x87, 0xE1, 0xE0, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, +0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, +0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, +0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, +0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, +0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, +0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, +0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, +0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, +0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, +0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, +0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, +0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, +0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, +0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, +0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, +0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, +0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, +0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, +0xB9, 0xB0, 0x00, 0x10, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x14, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, +0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x44, +0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xC6, +0x02, 0xC1, 0x00, 0x8F, 0x31, 0x02, 0x00, 0x00, 0x00, 0x27, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, +0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x49, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x61, +0x20, 0x2D, 0x20, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, +0x73, + +/* America/Indiana/Knox */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0, +0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, 0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0, +0xDA, 0xFE, 0xB5, 0x80, 0xDB, 0xC0, 0x73, 0xF0, 0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, +0xDE, 0xBE, 0x79, 0x80, 0xDF, 0x89, 0x72, 0x70, 0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, +0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, 0xE4, 0x5E, 0x1F, 0x80, 0xE5, 0x57, 0x3C, 0xF0, +0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x37, 0x1E, 0xF0, 0xE8, 0x27, 0x1E, 0x00, 0xE8, 0xF2, 0x16, 0xF0, +0xEA, 0x07, 0x00, 0x00, 0xEA, 0xD1, 0xF8, 0xF0, 0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xD6, 0xC4, 0xF0, +0xED, 0xC6, 0xC4, 0x00, 0xEE, 0xBF, 0xE1, 0x70, 0xEF, 0xAF, 0xE0, 0x80, 0xF0, 0x9F, 0xC3, 0x70, +0xF1, 0x8F, 0xC2, 0x80, 0xF4, 0x5F, 0x87, 0x70, 0xFA, 0xF8, 0x67, 0x00, 0xFB, 0xE8, 0x49, 0xF0, +0xFC, 0xD8, 0x49, 0x00, 0xFD, 0xC8, 0x2B, 0xF0, 0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xA8, 0x0D, 0xF0, +0x00, 0x98, 0x0D, 0x00, 0x01, 0x87, 0xEF, 0xF0, 0x02, 0x77, 0xEF, 0x00, 0x03, 0x71, 0x0C, 0x70, +0x04, 0x61, 0x0B, 0x80, 0x05, 0x50, 0xEE, 0x70, 0x06, 0x40, 0xED, 0x80, 0x07, 0x30, 0xD0, 0x70, +0x07, 0x8D, 0x27, 0x80, 0x09, 0x10, 0xB2, 0x70, 0x09, 0xAD, 0xA3, 0x00, 0x0A, 0xF0, 0x94, 0x70, +0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xB0, 0xF0, 0x0D, 0xC0, 0x75, 0x80, 0x0E, 0xB9, 0x92, 0xF0, +0x0F, 0xA9, 0x92, 0x00, 0x10, 0x99, 0x74, 0xF0, 0x11, 0x89, 0x74, 0x00, 0x12, 0x79, 0x56, 0xF0, +0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, 0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x1A, 0xF0, +0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, 0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x19, 0x70, +0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, 0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xDD, 0x70, +0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, 0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70, +0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0, +0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0, +0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, +0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, +0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, +0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, +0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, +0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, +0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, +0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, +0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, +0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, +0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, +0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, +0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, +0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, +0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, +0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, +0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, +0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, +0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xC8, 0x57, 0x6F, 0x00, 0x8E, 0x7A, 0x9C, 0x00, 0x00, 0x00, +0x26, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, +0x49, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x61, 0x20, 0x2D, 0x20, 0x53, 0x74, 0x61, 0x72, 0x6B, 0x65, +0x20, 0x43, 0x6F, 0x75, 0x6E, 0x74, 0x79, + +/* America/Indiana/Marengo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, +0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, 0xE4, 0x5E, 0x1F, 0x80, 0xE5, 0x29, 0x18, 0x70, +0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x12, 0x34, 0xF0, 0xE8, 0x27, 0x1E, 0x00, 0xE8, 0xF2, 0x16, 0xF0, +0xEA, 0x07, 0x00, 0x00, 0xEA, 0xD1, 0xF8, 0xF0, 0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xB1, 0xDA, 0xF0, +0xED, 0xC6, 0xC4, 0x00, 0xEE, 0x91, 0xBC, 0xF0, 0xEF, 0xAF, 0xE0, 0x80, 0xFE, 0xB8, 0x1C, 0xF0, +0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, 0x01, 0x87, 0xE1, 0xE0, 0x02, 0x77, 0xE0, 0xF0, +0x03, 0x70, 0xFE, 0x60, 0x04, 0x60, 0xFD, 0x70, 0x05, 0x50, 0xE0, 0x60, 0x06, 0x40, 0xDF, 0x70, +0x07, 0x30, 0xC2, 0x60, 0x07, 0x8D, 0x19, 0x70, 0x09, 0x10, 0xB2, 0x70, 0x09, 0xAD, 0x94, 0xF0, +0x0A, 0xF0, 0x86, 0x60, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, +0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, +0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, +0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, +0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, +0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, +0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, +0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, +0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, +0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, +0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, +0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, +0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, +0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, +0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, +0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, +0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, +0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, +0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x14, 0x43, 0x44, +0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, +0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0xC3, 0xE2, 0xB3, 0x00, 0x8E, 0xE8, 0x17, 0x00, 0x00, 0x00, 0x28, 0x45, 0x61, +0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x49, 0x6E, 0x64, +0x69, 0x61, 0x6E, 0x61, 0x20, 0x2D, 0x20, 0x43, 0x72, 0x61, 0x77, 0x66, 0x6F, 0x72, 0x64, 0x20, +0x43, 0x6F, 0x75, 0x6E, 0x74, 0x79, + +/* America/Indiana/Petersburg */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xE4, 0x67, 0x3D, 0xE0, 0xE5, 0x29, 0x18, 0x70, +0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x12, 0x34, 0xF0, 0xE8, 0x27, 0x1E, 0x00, 0xE8, 0xF2, 0x16, 0xF0, +0xEA, 0x07, 0x00, 0x00, 0xEA, 0xD1, 0xF8, 0xF0, 0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xB1, 0xDA, 0xF0, +0xED, 0xC6, 0xC4, 0x00, 0xEE, 0x91, 0xBC, 0xF0, 0xEF, 0xAF, 0xE0, 0x80, 0xF0, 0x9F, 0xC3, 0x70, +0xF1, 0x8F, 0xC2, 0x80, 0xF2, 0x7F, 0xA5, 0x70, 0xF3, 0x6F, 0xA4, 0x80, 0xF4, 0x5F, 0x87, 0x70, +0xF5, 0x4F, 0x86, 0x80, 0xF6, 0x3F, 0x69, 0x70, 0xF7, 0x2F, 0x68, 0x80, 0xFA, 0x08, 0x67, 0xF0, +0xFA, 0xF8, 0x67, 0x00, 0xFB, 0xE8, 0x49, 0xF0, 0xFC, 0xD8, 0x49, 0x00, 0xFD, 0xC8, 0x2B, 0xF0, +0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xA8, 0x0D, 0xF0, 0x00, 0x98, 0x0D, 0x00, 0x01, 0x87, 0xEF, 0xF0, +0x02, 0x77, 0xEF, 0x00, 0x03, 0x71, 0x0C, 0x70, 0x04, 0x61, 0x0B, 0x80, 0x05, 0x50, 0xEE, 0x70, +0x06, 0x40, 0xED, 0x80, 0x07, 0x30, 0xD0, 0x70, 0x07, 0x8D, 0x27, 0x80, 0x09, 0x10, 0xB2, 0x70, +0x09, 0xAD, 0xA3, 0x00, 0x0A, 0xF0, 0x94, 0x70, 0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xB0, 0xF0, +0x0D, 0xC0, 0x75, 0x80, 0x0E, 0xB9, 0x92, 0xF0, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x51, 0x70, +0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, +0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, +0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, +0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, +0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, +0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, +0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, +0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, +0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, +0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, +0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, +0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, +0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, +0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, +0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, +0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, +0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, +0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x14, 0x43, +0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, +0x53, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0xC4, 0x10, 0x2A, 0x00, 0x8D, 0x7B, 0x4A, 0x00, 0x00, 0x00, 0x24, 0x45, +0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x49, 0x6E, +0x64, 0x69, 0x61, 0x6E, 0x61, 0x20, 0x2D, 0x20, 0x50, 0x69, 0x6B, 0x65, 0x20, 0x43, 0x6F, 0x75, +0x6E, 0x74, 0x79, + +/* America/Indianapolis */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCA, 0x57, 0x22, 0x80, +0xCA, 0xD8, 0x47, 0x70, 0xCB, 0x88, 0xFE, 0x80, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, +0xD3, 0x75, 0xF3, 0x00, 0xD4, 0x40, 0xEB, 0xF0, 0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0, +0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, 0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0, +0xDA, 0xFE, 0xB5, 0x80, 0xDB, 0xC0, 0x73, 0xF0, 0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, +0xDE, 0xBE, 0x79, 0x80, 0xDF, 0x89, 0x72, 0x70, 0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, +0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, 0xE4, 0x5E, 0x1F, 0x80, 0xE8, 0xF2, 0x16, 0xF0, +0xEA, 0x07, 0x00, 0x00, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, +0x01, 0x87, 0xE1, 0xE0, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, +0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, +0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, +0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, +0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, +0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, +0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, +0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, +0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, +0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, +0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, +0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, +0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, +0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, +0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, +0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, +0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, +0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, +0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, +0xB9, 0xB0, 0x00, 0x10, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x14, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, +0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x44, +0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x89, +0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* America/Indiana/Tell_City */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD3, 0x75, 0xF3, 0x00, 0xD4, 0x40, 0xEB, 0xF0, +0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, 0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, +0xE4, 0x67, 0x3D, 0xE0, 0xE5, 0x29, 0x18, 0x70, 0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x12, 0x34, 0xF0, +0xE8, 0x27, 0x1E, 0x00, 0xE8, 0xF2, 0x16, 0xF0, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0xD1, 0xF8, 0xF0, +0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xB1, 0xDA, 0xF0, 0xED, 0xC6, 0xC4, 0x00, 0xEE, 0xBF, 0xE1, 0x70, +0xEF, 0xAF, 0xE0, 0x80, 0xF0, 0x71, 0x9E, 0xF0, 0xF1, 0x8F, 0xC2, 0x80, 0xF2, 0x7F, 0xA5, 0x70, +0xF3, 0x6F, 0xA4, 0x80, 0xF4, 0x5F, 0x87, 0x70, 0xF5, 0x4F, 0x86, 0x80, 0xFE, 0xB8, 0x1C, 0xF0, +0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, 0x01, 0x87, 0xE1, 0xE0, 0x44, 0x2F, 0x76, 0x70, +0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x99, 0x00, +0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x4B, 0x9C, 0x97, 0x80, +0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, 0x4F, 0x5C, 0x5B, 0x80, +0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, 0x53, 0x1C, 0x1F, 0x80, +0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, 0x56, 0xE5, 0x1E, 0x00, +0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x5A, 0xA4, 0xE2, 0x00, +0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, +0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, +0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, +0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, +0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, +0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, +0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, +0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, +0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, +0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, +0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0xFF, 0xFF, +0xC7, 0xC0, 0x01, 0x14, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, +0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xC3, 0x3D, 0xA9, 0x00, 0x8E, 0x45, 0x55, +0x00, 0x00, 0x00, 0x25, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, +0x20, 0x2D, 0x20, 0x49, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x61, 0x20, 0x2D, 0x20, 0x50, 0x65, 0x72, +0x72, 0x79, 0x20, 0x43, 0x6F, 0x75, 0x6E, 0x74, 0x79, + +/* America/Indiana/Vevay */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xE2, 0x7E, 0x3D, 0x80, 0xFE, 0xB8, 0x1C, 0xF0, +0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, 0x01, 0x87, 0xE1, 0xE0, 0x02, 0x77, 0xE0, 0xF0, +0x03, 0x70, 0xFE, 0x60, 0x04, 0x60, 0xFD, 0x70, 0x05, 0x50, 0xE0, 0x60, 0x44, 0x2F, 0x76, 0x70, +0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, +0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, +0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, +0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, +0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, +0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, +0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, +0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, +0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, +0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, +0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, +0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, +0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, +0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, +0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, +0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, +0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, +0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x14, +0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, +0x45, 0x53, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x01, 0x00, 0x00, 0x00, 0xC4, 0x74, 0x19, 0x00, 0x90, 0xDB, 0x1D, 0x00, 0x00, 0x00, 0x2B, +0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x49, +0x6E, 0x64, 0x69, 0x61, 0x6E, 0x61, 0x20, 0x2D, 0x20, 0x53, 0x77, 0x69, 0x74, 0x7A, 0x65, 0x72, +0x6C, 0x61, 0x6E, 0x64, 0x20, 0x43, 0x6F, 0x75, 0x6E, 0x74, 0x79, + +/* America/Indiana/Vincennes */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD3, 0x75, 0xF3, 0x00, 0xD4, 0x40, 0xEB, 0xF0, +0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, 0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, +0xE4, 0x67, 0x3D, 0xE0, 0xE5, 0x29, 0x18, 0x70, 0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x12, 0x34, 0xF0, +0xE8, 0x27, 0x1E, 0x00, 0xE8, 0xF2, 0x16, 0xF0, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0xD1, 0xF8, 0xF0, +0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xB1, 0xDA, 0xF0, 0xED, 0xC6, 0xC4, 0x00, 0xEE, 0xBF, 0xE1, 0x70, +0xEF, 0xAF, 0xE0, 0x80, 0xF0, 0x71, 0x9E, 0xF0, 0xF1, 0x8F, 0xC2, 0x80, 0xF2, 0x7F, 0xA5, 0x70, +0xF3, 0x6F, 0xA4, 0x80, 0xF4, 0x5F, 0x87, 0x70, 0xF5, 0x4F, 0x86, 0x80, 0xFE, 0xB8, 0x1C, 0xF0, +0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, 0x01, 0x87, 0xE1, 0xE0, 0x44, 0x2F, 0x76, 0x70, +0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x8A, 0xF0, +0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, +0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, +0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, +0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, +0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, +0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, +0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, +0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, +0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, +0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, +0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, +0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, +0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, +0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, +0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, +0x00, 0x01, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, +0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0xFF, 0xFF, +0xC7, 0xC0, 0x01, 0x14, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, +0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xC4, 0x58, 0x8A, 0x00, 0x8D, 0x19, 0xA2, +0x00, 0x00, 0x00, 0x40, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, +0x20, 0x2D, 0x20, 0x49, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x61, 0x20, 0x2D, 0x20, 0x44, 0x61, 0x76, +0x69, 0x65, 0x73, 0x73, 0x2C, 0x20, 0x44, 0x75, 0x62, 0x6F, 0x69, 0x73, 0x2C, 0x20, 0x4B, 0x6E, +0x6F, 0x78, 0x20, 0x26, 0x20, 0x4D, 0x61, 0x72, 0x74, 0x69, 0x6E, 0x20, 0x43, 0x6F, 0x75, 0x6E, +0x74, 0x69, 0x65, 0x73, + +/* America/Indiana/Winamac */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD3, 0x75, 0xF3, 0x00, 0xD4, 0x40, 0xEB, 0xF0, +0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0, 0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, +0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0, 0xDA, 0xFE, 0xB5, 0x80, 0xDB, 0xC0, 0x73, 0xF0, +0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, 0xDE, 0xBE, 0x79, 0x80, 0xDF, 0x89, 0x72, 0x70, +0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, 0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, +0xE4, 0x5E, 0x1F, 0x80, 0xE5, 0x57, 0x3C, 0xF0, 0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x37, 0x1E, 0xF0, +0xE8, 0x27, 0x1E, 0x00, 0xE8, 0xF2, 0x16, 0xF0, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0xD1, 0xF8, 0xF0, +0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xB1, 0xDA, 0xF0, 0xED, 0xC6, 0xC4, 0x00, 0xEE, 0x91, 0xBC, 0xF0, +0xEF, 0xAF, 0xE0, 0x80, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, +0x01, 0x87, 0xE1, 0xE0, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, +0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, +0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, +0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, +0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, +0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, +0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, +0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, +0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, +0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, +0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, +0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, +0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, +0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, +0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, +0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, +0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x00, 0x01, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, +0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, +0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0xFF, 0xFF, 0xC7, 0xC0, +0x01, 0x14, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, +0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xC7, 0xF7, 0xF2, 0x00, 0x8E, 0x83, 0x2E, 0x00, 0x00, +0x00, 0x27, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, +0x20, 0x49, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x61, 0x20, 0x2D, 0x20, 0x50, 0x75, 0x6C, 0x61, 0x73, +0x6B, 0x69, 0x20, 0x43, 0x6F, 0x75, 0x6E, 0x74, 0x79, + +/* America/Inuvik */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xE0, 0x06, 0x4E, 0x80, +0xF7, 0x2F, 0x68, 0x80, 0xF8, 0x28, 0x94, 0x00, 0x11, 0x89, 0x90, 0x20, 0x13, 0x69, 0x64, 0x10, +0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, 0x16, 0x39, 0x29, 0x00, 0x17, 0x29, 0x28, 0x10, +0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, 0x1A, 0x02, 0x27, 0x80, 0x1A, 0xF2, 0x26, 0x90, +0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, 0x1D, 0xC1, 0xEB, 0x80, 0x1E, 0xB1, 0xEA, 0x90, +0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, 0x21, 0x81, 0xAF, 0x80, 0x22, 0x55, 0xFF, 0x10, +0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x25, 0x4A, 0xAE, 0x00, 0x26, 0x15, 0xC3, 0x10, +0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x29, 0x0A, 0x72, 0x00, 0x29, 0xDE, 0xC1, 0x90, +0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x2C, 0xD3, 0x70, 0x80, 0x2D, 0x9E, 0x85, 0x90, +0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, 0x30, 0x93, 0x34, 0x80, 0x31, 0x67, 0x84, 0x10, +0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, 0x35, 0x27, 0x48, 0x10, +0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE7, 0x0C, 0x10, +0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, 0x3C, 0xB0, 0x0A, 0x90, +0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90, +0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90, +0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, 0x47, 0x2D, 0x7C, 0x00, 0x47, 0xD3, 0xA7, 0x10, +0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x4A, 0xED, 0x40, 0x00, 0x4B, 0x9C, 0xA5, 0x90, +0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, 0x4E, 0xB6, 0x3E, 0x80, 0x4F, 0x5C, 0x69, 0x90, +0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, 0x52, 0x76, 0x02, 0x80, 0x53, 0x1C, 0x2D, 0x90, +0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, 0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10, +0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10, +0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10, +0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, +0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80, 0x65, 0xED, 0x76, 0x90, +0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80, 0x69, 0xAD, 0x3A, 0x90, +0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00, 0x6D, 0x76, 0x39, 0x10, +0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00, 0x71, 0x35, 0xFD, 0x10, +0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00, 0x74, 0xFE, 0xFB, 0x90, +0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80, 0x78, 0xBE, 0xBF, 0x90, +0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80, 0x7C, 0x7E, 0x83, 0x90, +0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80, 0x02, 0x01, 0x02, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, +0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x09, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0D, 0xFF, 0xFF, 0xAB, 0xA0, +0x01, 0x11, 0x7A, 0x7A, 0x7A, 0x00, 0x50, 0x44, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x4D, +0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xF1, 0x9F, 0x5C, 0x00, 0x46, 0x9F, 0x6D, 0x00, 0x00, 0x00, 0x2A, 0x4D, 0x6F, 0x75, +0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x77, 0x65, 0x73, +0x74, 0x20, 0x4E, 0x6F, 0x72, 0x74, 0x68, 0x77, 0x65, 0x73, 0x74, 0x20, 0x54, 0x65, 0x72, 0x72, +0x69, 0x74, 0x6F, 0x72, 0x69, 0x65, 0x73, + +/* America/Iqaluit */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x21, 0xCC, 0x6C, 0xA1, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, 0xF7, 0x2F, 0x3E, 0x50, 0xF8, 0x28, 0x69, 0xD0, +0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, 0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, +0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, 0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, +0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, 0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, +0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, 0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, +0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, 0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, +0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, 0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, +0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, 0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, +0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, 0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, +0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, 0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, +0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, 0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, +0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, +0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, 0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, +0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, 0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, +0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, +0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, +0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, +0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, +0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, +0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, +0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, +0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, +0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, +0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, +0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, +0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, +0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, +0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, +0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, +0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, +0x05, 0x01, 0x02, 0x03, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, +0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, +0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x06, 0x07, 0x02, 0x04, +0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, +0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, +0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, +0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, +0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, +0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, +0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x11, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x15, 0xFF, 0xFF, 0xAB, +0xA0, 0x00, 0x19, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x1D, 0x7A, 0x7A, 0x7A, 0x00, 0x45, 0x50, 0x54, +0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x44, 0x44, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x45, 0x57, +0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x94, 0x15, 0x00, 0xAA, +0x2F, 0xB5, 0x00, 0x00, 0x00, 0x2C, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x69, +0x6D, 0x65, 0x20, 0x2D, 0x20, 0x65, 0x61, 0x73, 0x74, 0x20, 0x4E, 0x75, 0x6E, 0x61, 0x76, 0x75, +0x74, 0x20, 0x2D, 0x20, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, +0x6E, 0x73, + +/* America/Jamaica */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4A, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x93, 0x0F, 0xB5, 0x00, +0x08, 0x20, 0xC1, 0x70, 0x09, 0x10, 0xA4, 0x60, 0x09, 0xAD, 0x94, 0xF0, 0x0A, 0xF0, 0x86, 0x60, +0x0B, 0xE0, 0x85, 0x70, 0x0C, 0xD9, 0xA2, 0xE0, 0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, +0x0F, 0xA9, 0x83, 0xF0, 0x10, 0x99, 0x66, 0xE0, 0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, +0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, 0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, +0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, 0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xB8, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, +0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0x4B, 0x4D, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, +0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0xCB, 0x80, 0x00, 0x9D, 0x78, +0x80, 0x00, 0x00, 0x00, 0x00, + +/* America/Jujuy */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x18, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x2A, 0x57, 0xC0, +0x27, 0xE2, 0xDB, 0xB0, 0x28, 0xEE, 0x8A, 0x40, 0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x47, 0x77, 0x09, 0xB0, +0x47, 0xDC, 0x7F, 0x20, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x05, 0x06, 0x05, 0x03, 0x04, 0x03, 0x04, 0x02, 0x04, 0x03, 0x04, 0xFF, 0xFF, +0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, +0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, +0x00, 0x0D, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x12, 0x43, 0x4D, 0x54, 0x00, 0x41, 0x52, 0x54, 0x00, +0x41, 0x52, 0x53, 0x54, 0x00, 0x57, 0x41, 0x52, 0x54, 0x00, 0x57, 0x41, 0x52, 0x53, 0x54, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, +0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* America/Juneau */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x22, 0xCB, 0x89, 0x1A, 0xA0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x26, 0x10, 0xFE, 0xB8, 0x47, 0x20, 0xFF, 0xA8, 0x2A, 0x10, +0x00, 0x98, 0x29, 0x20, 0x01, 0x88, 0x0C, 0x10, 0x02, 0x78, 0x0B, 0x20, 0x03, 0x71, 0x28, 0x90, +0x04, 0x61, 0x27, 0xA0, 0x05, 0x51, 0x0A, 0x90, 0x06, 0x41, 0x09, 0xA0, 0x07, 0x30, 0xEC, 0x90, +0x07, 0x8D, 0x43, 0xA0, 0x09, 0x10, 0xCE, 0x90, 0x09, 0xAD, 0xBF, 0x20, 0x0A, 0xF0, 0xB0, 0x90, +0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, +0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x73, 0x10, +0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x63, 0x20, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, +0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, +0x1A, 0x2B, 0x14, 0x10, 0x1A, 0xF2, 0x42, 0xB0, 0x1B, 0xE2, 0x25, 0xA0, 0x1C, 0xD2, 0x24, 0xB0, +0x1D, 0xC2, 0x07, 0xA0, 0x1E, 0xB2, 0x06, 0xB0, 0x1F, 0xA1, 0xE9, 0xA0, 0x20, 0x76, 0x39, 0x30, +0x21, 0x81, 0xCB, 0xA0, 0x22, 0x56, 0x1B, 0x30, 0x23, 0x6A, 0xE8, 0x20, 0x24, 0x35, 0xFD, 0x30, +0x25, 0x4A, 0xCA, 0x20, 0x26, 0x15, 0xDF, 0x30, 0x27, 0x2A, 0xAC, 0x20, 0x27, 0xFE, 0xFB, 0xB0, +0x29, 0x0A, 0x8E, 0x20, 0x29, 0xDE, 0xDD, 0xB0, 0x2A, 0xEA, 0x70, 0x20, 0x2B, 0xBE, 0xBF, 0xB0, +0x2C, 0xD3, 0x8C, 0xA0, 0x2D, 0x9E, 0xA1, 0xB0, 0x2E, 0xB3, 0x6E, 0xA0, 0x2F, 0x7E, 0x83, 0xB0, +0x30, 0x93, 0x50, 0xA0, 0x31, 0x67, 0xA0, 0x30, 0x32, 0x73, 0x32, 0xA0, 0x33, 0x47, 0x82, 0x30, +0x34, 0x53, 0x14, 0xA0, 0x35, 0x27, 0x64, 0x30, 0x36, 0x32, 0xF6, 0xA0, 0x37, 0x07, 0x46, 0x30, +0x38, 0x1C, 0x13, 0x20, 0x38, 0xE7, 0x28, 0x30, 0x39, 0xFB, 0xF5, 0x20, 0x3A, 0xC7, 0x0A, 0x30, +0x3B, 0xDB, 0xD7, 0x20, 0x3C, 0xB0, 0x26, 0xB0, 0x3D, 0xBB, 0xB9, 0x20, 0x3E, 0x90, 0x08, 0xB0, +0x3F, 0x9B, 0x9B, 0x20, 0x40, 0x6F, 0xEA, 0xB0, 0x41, 0x84, 0xB7, 0xA0, 0x42, 0x4F, 0xCC, 0xB0, +0x43, 0x64, 0x99, 0xA0, 0x44, 0x2F, 0xAE, 0xB0, 0x45, 0x44, 0x7B, 0xA0, 0x45, 0xF3, 0xE1, 0x30, +0x47, 0x2D, 0x98, 0x20, 0x47, 0xD3, 0xC3, 0x30, 0x49, 0x0D, 0x7A, 0x20, 0x49, 0xB3, 0xA5, 0x30, +0x4A, 0xED, 0x5C, 0x20, 0x4B, 0x9C, 0xC1, 0xB0, 0x4C, 0xD6, 0x78, 0xA0, 0x4D, 0x7C, 0xA3, 0xB0, +0x4E, 0xB6, 0x5A, 0xA0, 0x4F, 0x5C, 0x85, 0xB0, 0x50, 0x96, 0x3C, 0xA0, 0x51, 0x3C, 0x67, 0xB0, +0x52, 0x76, 0x1E, 0xA0, 0x53, 0x1C, 0x49, 0xB0, 0x54, 0x56, 0x00, 0xA0, 0x54, 0xFC, 0x2B, 0xB0, +0x56, 0x35, 0xE2, 0xA0, 0x56, 0xE5, 0x48, 0x30, 0x58, 0x1E, 0xFF, 0x20, 0x58, 0xC5, 0x2A, 0x30, +0x59, 0xFE, 0xE1, 0x20, 0x5A, 0xA5, 0x0C, 0x30, 0x5B, 0xDE, 0xC3, 0x20, 0x5C, 0x84, 0xEE, 0x30, +0x5D, 0xBE, 0xA5, 0x20, 0x5E, 0x64, 0xD0, 0x30, 0x5F, 0x9E, 0x87, 0x20, 0x60, 0x4D, 0xEC, 0xB0, +0x61, 0x87, 0xA3, 0xA0, 0x62, 0x2D, 0xCE, 0xB0, 0x63, 0x67, 0x85, 0xA0, 0x64, 0x0D, 0xB0, 0xB0, +0x65, 0x47, 0x67, 0xA0, 0x65, 0xED, 0x92, 0xB0, 0x67, 0x27, 0x49, 0xA0, 0x67, 0xCD, 0x74, 0xB0, +0x69, 0x07, 0x2B, 0xA0, 0x69, 0xAD, 0x56, 0xB0, 0x6A, 0xE7, 0x0D, 0xA0, 0x6B, 0x96, 0x73, 0x30, +0x6C, 0xD0, 0x2A, 0x20, 0x6D, 0x76, 0x55, 0x30, 0x6E, 0xB0, 0x0C, 0x20, 0x6F, 0x56, 0x37, 0x30, +0x70, 0x8F, 0xEE, 0x20, 0x71, 0x36, 0x19, 0x30, 0x72, 0x6F, 0xD0, 0x20, 0x73, 0x15, 0xFB, 0x30, +0x74, 0x4F, 0xB2, 0x20, 0x74, 0xFF, 0x17, 0xB0, 0x76, 0x38, 0xCE, 0xA0, 0x76, 0xDE, 0xF9, 0xB0, +0x78, 0x18, 0xB0, 0xA0, 0x78, 0xBE, 0xDB, 0xB0, 0x79, 0xF8, 0x92, 0xA0, 0x7A, 0x9E, 0xBD, 0xB0, +0x7B, 0xD8, 0x74, 0xA0, 0x7C, 0x7E, 0x9F, 0xB0, 0x7D, 0xB8, 0x56, 0xA0, 0x7E, 0x5E, 0x81, 0xB0, +0x7F, 0x98, 0x38, 0xA0, 0x01, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, +0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, +0x00, 0x03, 0x00, 0x03, 0x05, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x04, 0xFF, 0xFF, +0x9D, 0x90, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x10, +0xFF, 0xFF, 0x81, 0x70, 0x00, 0x14, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x18, 0xFF, 0xFF, 0x81, 0x70, +0x00, 0x1D, 0x50, 0x53, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, 0x00, 0x50, 0x44, +0x54, 0x00, 0x59, 0x44, 0x54, 0x00, 0x59, 0x53, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00, 0x41, +0x4B, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0x4A, 0x72, 0x00, 0x45, 0x8C, 0xCB, 0x00, 0x00, 0x00, 0x1E, +0x41, 0x6C, 0x61, 0x73, 0x6B, 0x61, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x41, 0x6C, +0x61, 0x73, 0x6B, 0x61, 0x20, 0x70, 0x61, 0x6E, 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, + +/* America/Kentucky/Louisville */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xA4, 0x73, 0xF7, 0x00, +0xA5, 0x16, 0x11, 0x70, 0xCA, 0x0D, 0x4E, 0x80, 0xCA, 0xD8, 0x47, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD2, 0xDB, 0x97, 0x60, 0xD3, 0xA4, 0x09, 0x70, +0xD5, 0x55, 0xD5, 0x00, 0xDB, 0xC0, 0x73, 0xF0, 0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, +0xDE, 0xBE, 0x79, 0x80, 0xDF, 0x89, 0x72, 0x70, 0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, +0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, 0xE4, 0x5E, 0x1F, 0x80, 0xE5, 0x29, 0x18, 0x70, +0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x37, 0x1E, 0xF0, 0xE8, 0x27, 0x1E, 0x00, 0xE9, 0x17, 0x00, 0xF0, +0xEA, 0x07, 0x00, 0x00, 0xEA, 0xF6, 0xE2, 0xF0, 0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xD6, 0xC4, 0xF0, +0xED, 0xC6, 0xC4, 0x00, 0xEE, 0xBF, 0xE1, 0x70, 0xEF, 0xAF, 0xE0, 0x80, 0xF0, 0x1E, 0x90, 0x70, +0xFC, 0xD8, 0x3A, 0xF0, 0xFD, 0xC8, 0x1D, 0xE0, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, +0x00, 0x97, 0xFE, 0xF0, 0x01, 0x87, 0xE1, 0xE0, 0x02, 0x77, 0xE0, 0xF0, 0x03, 0x70, 0xFE, 0x60, +0x04, 0x60, 0xFD, 0x70, 0x05, 0x50, 0xE0, 0x60, 0x06, 0x40, 0xDF, 0x70, 0x07, 0x30, 0xC2, 0x60, +0x07, 0x8D, 0x19, 0x70, 0x09, 0x10, 0xB2, 0x70, 0x09, 0xAD, 0x94, 0xF0, 0x0A, 0xF0, 0x86, 0x60, +0x0B, 0xE0, 0x85, 0x70, 0x0C, 0xD9, 0xA2, 0xE0, 0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, +0x0F, 0xA9, 0x83, 0xF0, 0x10, 0x99, 0x66, 0xE0, 0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, +0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, 0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, +0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, 0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, +0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, 0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, +0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, 0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, +0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, 0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, +0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, 0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, +0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, 0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, +0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, 0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, +0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, 0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, +0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, 0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, +0x38, 0xE6, 0xEF, 0xF0, 0x39, 0xFB, 0xBC, 0xE0, 0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, +0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, 0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, +0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, 0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, +0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, +0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, +0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, +0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, +0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, +0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, +0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, +0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, +0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, +0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, +0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, +0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, +0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, +0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, +0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, +0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, +0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0xFF, +0xFF, 0xC7, 0xC0, 0x01, 0x14, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, +0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xC3, 0xB3, 0x48, 0x00, 0x8F, 0xCC, +0xB7, 0x00, 0x00, 0x00, 0x29, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x69, 0x6D, +0x65, 0x20, 0x2D, 0x20, 0x4B, 0x65, 0x6E, 0x74, 0x75, 0x63, 0x6B, 0x79, 0x20, 0x2D, 0x20, 0x4C, +0x6F, 0x75, 0x69, 0x73, 0x76, 0x69, 0x6C, 0x6C, 0x65, 0x20, 0x61, 0x72, 0x65, 0x61, + +/* America/Kentucky/Monticello */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xFC, 0xD8, 0x49, 0x00, 0xFD, 0xC8, 0x2B, 0xF0, +0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xA8, 0x0D, 0xF0, 0x00, 0x98, 0x0D, 0x00, 0x01, 0x87, 0xEF, 0xF0, +0x02, 0x77, 0xEF, 0x00, 0x03, 0x71, 0x0C, 0x70, 0x04, 0x61, 0x0B, 0x80, 0x05, 0x50, 0xEE, 0x70, +0x06, 0x40, 0xED, 0x80, 0x07, 0x30, 0xD0, 0x70, 0x07, 0x8D, 0x27, 0x80, 0x09, 0x10, 0xB2, 0x70, +0x09, 0xAD, 0xA3, 0x00, 0x0A, 0xF0, 0x94, 0x70, 0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xB0, 0xF0, +0x0D, 0xC0, 0x75, 0x80, 0x0E, 0xB9, 0x92, 0xF0, 0x0F, 0xA9, 0x92, 0x00, 0x10, 0x99, 0x74, 0xF0, +0x11, 0x89, 0x74, 0x00, 0x12, 0x79, 0x56, 0xF0, 0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, +0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x1A, 0xF0, 0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, +0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x19, 0x70, 0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, +0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xDD, 0x70, 0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, +0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70, 0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, +0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0, 0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, +0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0, 0x29, 0xDE, 0xB3, 0x80, 0x2A, 0xEA, 0x45, 0xF0, +0x2B, 0xBE, 0x95, 0x80, 0x2C, 0xD3, 0x62, 0x70, 0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x44, 0x70, +0x2F, 0x7E, 0x59, 0x80, 0x30, 0x93, 0x26, 0x70, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, +0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, +0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, +0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, +0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, +0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, +0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, +0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, +0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, +0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, +0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, +0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, +0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, +0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, +0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, +0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, +0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, +0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, +0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, +0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, +0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, +0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, +0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, +0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x14, 0x43, +0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, +0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0xC1, 0x86, 0xDC, 0x00, 0x91, 0x30, 0x4B, 0x00, 0x00, 0x00, 0x26, 0x45, +0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x4B, 0x65, +0x6E, 0x74, 0x75, 0x63, 0x6B, 0x79, 0x20, 0x2D, 0x20, 0x57, 0x61, 0x79, 0x6E, 0x65, 0x20, 0x43, +0x6F, 0x75, 0x6E, 0x74, 0x79, + +/* America/Knox_IN */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0, +0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, 0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0, +0xDA, 0xFE, 0xB5, 0x80, 0xDB, 0xC0, 0x73, 0xF0, 0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, +0xDE, 0xBE, 0x79, 0x80, 0xDF, 0x89, 0x72, 0x70, 0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, +0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, 0xE4, 0x5E, 0x1F, 0x80, 0xE5, 0x57, 0x3C, 0xF0, +0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x37, 0x1E, 0xF0, 0xE8, 0x27, 0x1E, 0x00, 0xE8, 0xF2, 0x16, 0xF0, +0xEA, 0x07, 0x00, 0x00, 0xEA, 0xD1, 0xF8, 0xF0, 0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xD6, 0xC4, 0xF0, +0xED, 0xC6, 0xC4, 0x00, 0xEE, 0xBF, 0xE1, 0x70, 0xEF, 0xAF, 0xE0, 0x80, 0xF0, 0x9F, 0xC3, 0x70, +0xF1, 0x8F, 0xC2, 0x80, 0xF4, 0x5F, 0x87, 0x70, 0xFA, 0xF8, 0x67, 0x00, 0xFB, 0xE8, 0x49, 0xF0, +0xFC, 0xD8, 0x49, 0x00, 0xFD, 0xC8, 0x2B, 0xF0, 0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xA8, 0x0D, 0xF0, +0x00, 0x98, 0x0D, 0x00, 0x01, 0x87, 0xEF, 0xF0, 0x02, 0x77, 0xEF, 0x00, 0x03, 0x71, 0x0C, 0x70, +0x04, 0x61, 0x0B, 0x80, 0x05, 0x50, 0xEE, 0x70, 0x06, 0x40, 0xED, 0x80, 0x07, 0x30, 0xD0, 0x70, +0x07, 0x8D, 0x27, 0x80, 0x09, 0x10, 0xB2, 0x70, 0x09, 0xAD, 0xA3, 0x00, 0x0A, 0xF0, 0x94, 0x70, +0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xB0, 0xF0, 0x0D, 0xC0, 0x75, 0x80, 0x0E, 0xB9, 0x92, 0xF0, +0x0F, 0xA9, 0x92, 0x00, 0x10, 0x99, 0x74, 0xF0, 0x11, 0x89, 0x74, 0x00, 0x12, 0x79, 0x56, 0xF0, +0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, 0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x1A, 0xF0, +0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, 0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x19, 0x70, +0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, 0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xDD, 0x70, +0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, 0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70, +0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0, +0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0, +0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, +0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, +0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, +0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, +0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, +0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, +0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, +0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, +0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, +0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, +0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, +0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, +0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, +0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, +0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, +0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, +0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, +0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, +0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, +0x00, + +/* America/Kralendijk */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x93, 0x1E, 0x2E, 0x20, +0xF6, 0x98, 0xEC, 0x48, 0x01, 0x02, 0xFF, 0xFF, 0xBF, 0x60, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0xB8, +0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x4E, 0x54, 0x00, +0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xDE, 0xAB, 0x00, 0xAA, +0x79, 0xED, 0x00, 0x00, 0x00, 0x00, + +/* America/La_Paz */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0xB8, 0x1E, 0x96, 0xE4, +0xB8, 0xEE, 0xD5, 0xD4, 0x01, 0x02, 0xFF, 0xFF, 0xC0, 0x1C, 0x00, 0x00, 0xFF, 0xFF, 0xCE, 0x2C, +0x01, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x09, 0x43, 0x4D, 0x54, 0x00, 0x42, 0x4F, 0x53, 0x54, +0x00, 0x42, 0x4F, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x26, 0xF0, 0x00, +0xAA, 0xAB, 0x68, 0x00, 0x00, 0x00, 0x00, + +/* America/Lima */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x8C, 0x74, 0x40, 0xD4, +0xC3, 0xCF, 0x4A, 0x50, 0xC4, 0x45, 0xE3, 0x40, 0xC5, 0x2F, 0x4A, 0xD0, 0xC6, 0x1F, 0x2D, 0xC0, +0xC7, 0x0F, 0x2C, 0xD0, 0xC7, 0xFF, 0x0F, 0xC0, 0x1E, 0x18, 0xC4, 0x50, 0x1E, 0x8F, 0x5D, 0x40, +0x1F, 0xF9, 0xF7, 0xD0, 0x20, 0x70, 0x90, 0xC0, 0x25, 0x9E, 0xE3, 0xD0, 0x26, 0x15, 0x7C, 0xC0, +0x2D, 0x25, 0x03, 0x50, 0x2D, 0x9B, 0x9C, 0x40, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xB7, 0xAC, 0x00, 0x00, 0xFF, 0xFF, 0xC7, +0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x50, 0x45, 0x53, +0x54, 0x00, 0x50, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xF1, 0x38, +0x00, 0x9D, 0x16, 0xD8, 0x00, 0x00, 0x00, 0x00, + +/* America/Los_Angeles */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xA6, 0x48, 0xA0, +0x9F, 0xBB, 0x15, 0x90, 0xA0, 0x86, 0x2A, 0xA0, 0xA1, 0x9A, 0xF7, 0x90, 0xCB, 0x89, 0x1A, 0xA0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x26, 0x10, 0xD6, 0xFE, 0x74, 0x20, 0xD8, 0x80, 0xAD, 0x90, +0xDA, 0xFE, 0xD1, 0xA0, 0xDB, 0xC0, 0x90, 0x10, 0xDC, 0xDE, 0xB3, 0xA0, 0xDD, 0xA9, 0xAC, 0x90, +0xDE, 0xBE, 0x95, 0xA0, 0xDF, 0x89, 0x8E, 0x90, 0xE0, 0x9E, 0x77, 0xA0, 0xE1, 0x69, 0x70, 0x90, +0xE2, 0x7E, 0x59, 0xA0, 0xE3, 0x49, 0x52, 0x90, 0xE4, 0x5E, 0x3B, 0xA0, 0xE5, 0x29, 0x34, 0x90, +0xE6, 0x47, 0x58, 0x20, 0xE7, 0x12, 0x51, 0x10, 0xE8, 0x27, 0x3A, 0x20, 0xE8, 0xF2, 0x33, 0x10, +0xEA, 0x07, 0x1C, 0x20, 0xEA, 0xD2, 0x15, 0x10, 0xEB, 0xE6, 0xFE, 0x20, 0xEC, 0xB1, 0xF7, 0x10, +0xED, 0xC6, 0xE0, 0x20, 0xEE, 0x91, 0xD9, 0x10, 0xEF, 0xAF, 0xFC, 0xA0, 0xF0, 0x71, 0xBB, 0x10, +0xF1, 0x8F, 0xDE, 0xA0, 0xF2, 0x7F, 0xC1, 0x90, 0xF3, 0x6F, 0xC0, 0xA0, 0xF4, 0x5F, 0xA3, 0x90, +0xF5, 0x4F, 0xA2, 0xA0, 0xF6, 0x3F, 0x85, 0x90, 0xF7, 0x2F, 0x84, 0xA0, 0xF8, 0x28, 0xA2, 0x10, +0xF9, 0x0F, 0x66, 0xA0, 0xFA, 0x08, 0x84, 0x10, 0xFA, 0xF8, 0x83, 0x20, 0xFB, 0xE8, 0x66, 0x10, +0xFC, 0xD8, 0x65, 0x20, 0xFD, 0xC8, 0x48, 0x10, 0xFE, 0xB8, 0x47, 0x20, 0xFF, 0xA8, 0x2A, 0x10, +0x00, 0x98, 0x29, 0x20, 0x01, 0x88, 0x0C, 0x10, 0x02, 0x78, 0x0B, 0x20, 0x03, 0x71, 0x28, 0x90, +0x04, 0x61, 0x27, 0xA0, 0x05, 0x51, 0x0A, 0x90, 0x06, 0x41, 0x09, 0xA0, 0x07, 0x30, 0xEC, 0x90, +0x07, 0x8D, 0x43, 0xA0, 0x09, 0x10, 0xCE, 0x90, 0x09, 0xAD, 0xBF, 0x20, 0x0A, 0xF0, 0xB0, 0x90, +0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, +0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x73, 0x10, +0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, +0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, +0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, 0x1D, 0xC1, 0xF9, 0x90, +0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20, 0x21, 0x81, 0xBD, 0x90, +0x22, 0x56, 0x0D, 0x20, 0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20, 0x25, 0x4A, 0xBC, 0x10, +0x26, 0x15, 0xD1, 0x20, 0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0, 0x29, 0x0A, 0x80, 0x10, +0x29, 0xDE, 0xCF, 0xA0, 0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0, 0x2C, 0xD3, 0x7E, 0x90, +0x2D, 0x9E, 0x93, 0xA0, 0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0, 0x30, 0x93, 0x42, 0x90, +0x31, 0x67, 0x92, 0x20, 0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20, 0x34, 0x53, 0x06, 0x90, +0x35, 0x27, 0x56, 0x20, 0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20, 0x38, 0x1C, 0x05, 0x10, +0x38, 0xE7, 0x1A, 0x20, 0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20, 0x3B, 0xDB, 0xC9, 0x10, +0x3C, 0xB0, 0x18, 0xA0, 0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0, 0x3F, 0x9B, 0x8D, 0x10, +0x40, 0x6F, 0xDC, 0xA0, 0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0, 0x43, 0x64, 0x8B, 0x90, +0x44, 0x2F, 0xA0, 0xA0, 0x45, 0x44, 0x6D, 0x90, 0x45, 0xF3, 0xD3, 0x20, 0x47, 0x2D, 0x8A, 0x10, +0x47, 0xD3, 0xB5, 0x20, 0x49, 0x0D, 0x6C, 0x10, 0x49, 0xB3, 0x97, 0x20, 0x4A, 0xED, 0x4E, 0x10, +0x4B, 0x9C, 0xB3, 0xA0, 0x4C, 0xD6, 0x6A, 0x90, 0x4D, 0x7C, 0x95, 0xA0, 0x4E, 0xB6, 0x4C, 0x90, +0x4F, 0x5C, 0x77, 0xA0, 0x50, 0x96, 0x2E, 0x90, 0x51, 0x3C, 0x59, 0xA0, 0x52, 0x76, 0x10, 0x90, +0x53, 0x1C, 0x3B, 0xA0, 0x54, 0x55, 0xF2, 0x90, 0x54, 0xFC, 0x1D, 0xA0, 0x56, 0x35, 0xD4, 0x90, +0x56, 0xE5, 0x3A, 0x20, 0x58, 0x1E, 0xF1, 0x10, 0x58, 0xC5, 0x1C, 0x20, 0x59, 0xFE, 0xD3, 0x10, +0x5A, 0xA4, 0xFE, 0x20, 0x5B, 0xDE, 0xB5, 0x10, 0x5C, 0x84, 0xE0, 0x20, 0x5D, 0xBE, 0x97, 0x10, +0x5E, 0x64, 0xC2, 0x20, 0x5F, 0x9E, 0x79, 0x10, 0x60, 0x4D, 0xDE, 0xA0, 0x61, 0x87, 0x95, 0x90, +0x62, 0x2D, 0xC0, 0xA0, 0x63, 0x67, 0x77, 0x90, 0x64, 0x0D, 0xA2, 0xA0, 0x65, 0x47, 0x59, 0x90, +0x65, 0xED, 0x84, 0xA0, 0x67, 0x27, 0x3B, 0x90, 0x67, 0xCD, 0x66, 0xA0, 0x69, 0x07, 0x1D, 0x90, +0x69, 0xAD, 0x48, 0xA0, 0x6A, 0xE6, 0xFF, 0x90, 0x6B, 0x96, 0x65, 0x20, 0x6C, 0xD0, 0x1C, 0x10, +0x6D, 0x76, 0x47, 0x20, 0x6E, 0xAF, 0xFE, 0x10, 0x6F, 0x56, 0x29, 0x20, 0x70, 0x8F, 0xE0, 0x10, +0x71, 0x36, 0x0B, 0x20, 0x72, 0x6F, 0xC2, 0x10, 0x73, 0x15, 0xED, 0x20, 0x74, 0x4F, 0xA4, 0x10, +0x74, 0xFF, 0x09, 0xA0, 0x76, 0x38, 0xC0, 0x90, 0x76, 0xDE, 0xEB, 0xA0, 0x78, 0x18, 0xA2, 0x90, +0x78, 0xBE, 0xCD, 0xA0, 0x79, 0xF8, 0x84, 0x90, 0x7A, 0x9E, 0xAF, 0xA0, 0x7B, 0xD8, 0x66, 0x90, +0x7C, 0x7E, 0x91, 0xA0, 0x7D, 0xB8, 0x48, 0x90, 0x7E, 0x5E, 0x73, 0xA0, 0x7F, 0x98, 0x2A, 0x90, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x00, 0xFF, +0xFF, 0x8F, 0x80, 0x00, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, +0x0C, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xBD, 0x49, 0xE6, 0x00, 0x5E, 0x3B, +0xEA, 0x00, 0x00, 0x00, 0x0C, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x54, 0x69, 0x6D, +0x65, + +/* America/Louisville */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xA4, 0x73, 0xF7, 0x00, +0xA5, 0x16, 0x11, 0x70, 0xCA, 0x0D, 0x4E, 0x80, 0xCA, 0xD8, 0x47, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD2, 0xDB, 0x97, 0x60, 0xD3, 0xA4, 0x09, 0x70, +0xD5, 0x55, 0xD5, 0x00, 0xDB, 0xC0, 0x73, 0xF0, 0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, +0xDE, 0xBE, 0x79, 0x80, 0xDF, 0x89, 0x72, 0x70, 0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, +0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, 0xE4, 0x5E, 0x1F, 0x80, 0xE5, 0x29, 0x18, 0x70, +0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x37, 0x1E, 0xF0, 0xE8, 0x27, 0x1E, 0x00, 0xE9, 0x17, 0x00, 0xF0, +0xEA, 0x07, 0x00, 0x00, 0xEA, 0xF6, 0xE2, 0xF0, 0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xD6, 0xC4, 0xF0, +0xED, 0xC6, 0xC4, 0x00, 0xEE, 0xBF, 0xE1, 0x70, 0xEF, 0xAF, 0xE0, 0x80, 0xF0, 0x1E, 0x90, 0x70, +0xFC, 0xD8, 0x3A, 0xF0, 0xFD, 0xC8, 0x1D, 0xE0, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, +0x00, 0x97, 0xFE, 0xF0, 0x01, 0x87, 0xE1, 0xE0, 0x02, 0x77, 0xE0, 0xF0, 0x03, 0x70, 0xFE, 0x60, +0x04, 0x60, 0xFD, 0x70, 0x05, 0x50, 0xE0, 0x60, 0x06, 0x40, 0xDF, 0x70, 0x07, 0x30, 0xC2, 0x60, +0x07, 0x8D, 0x19, 0x70, 0x09, 0x10, 0xB2, 0x70, 0x09, 0xAD, 0x94, 0xF0, 0x0A, 0xF0, 0x86, 0x60, +0x0B, 0xE0, 0x85, 0x70, 0x0C, 0xD9, 0xA2, 0xE0, 0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, +0x0F, 0xA9, 0x83, 0xF0, 0x10, 0x99, 0x66, 0xE0, 0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, +0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, 0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, +0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, 0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, +0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, 0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, +0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, 0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, +0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, 0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, +0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, 0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, +0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, 0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, +0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, 0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, +0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, 0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, +0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, 0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, +0x38, 0xE6, 0xEF, 0xF0, 0x39, 0xFB, 0xBC, 0xE0, 0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, +0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, 0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, +0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, 0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, +0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, +0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, +0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, +0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, +0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, +0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, +0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, +0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, +0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, +0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, +0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, +0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, +0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, +0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, +0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, +0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, +0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0xFF, +0xFF, 0xC7, 0xC0, 0x01, 0x14, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, +0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, +0x80, 0x00, 0x00, 0x00, 0x00, + +/* America/Lower_Princes */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x93, 0x1E, 0x2E, 0x20, +0xF6, 0x98, 0xEC, 0x48, 0x01, 0x02, 0xFF, 0xFF, 0xBF, 0x60, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0xB8, +0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x4E, 0x54, 0x00, +0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0xDF, 0x92, 0x00, 0xB2, +0x74, 0xAD, 0x00, 0x00, 0x00, 0x00, + +/* America/Maceio */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x68, 0x7C, +0xB8, 0x0F, 0x49, 0xE0, 0xB8, 0xFD, 0x40, 0xA0, 0xB9, 0xF1, 0x34, 0x30, 0xBA, 0xDE, 0x74, 0x20, +0xDA, 0x38, 0xAE, 0x30, 0xDA, 0xEB, 0xFA, 0x30, 0xDC, 0x19, 0xE1, 0xB0, 0xDC, 0xB9, 0x59, 0x20, +0xDD, 0xFB, 0x15, 0x30, 0xDE, 0x9B, 0xDE, 0x20, 0xDF, 0xDD, 0x9A, 0x30, 0xE0, 0x54, 0x33, 0x20, +0xF4, 0x97, 0xFF, 0xB0, 0xF5, 0x05, 0x5E, 0x20, 0xF6, 0xC0, 0x64, 0x30, 0xF7, 0x0E, 0x1E, 0xA0, +0xF8, 0x51, 0x2C, 0x30, 0xF8, 0xC7, 0xC5, 0x20, 0xFA, 0x0A, 0xD2, 0xB0, 0xFA, 0xA8, 0xF8, 0xA0, +0xFB, 0xEC, 0x06, 0x30, 0xFC, 0x8B, 0x7D, 0xA0, 0x1D, 0xC9, 0x8E, 0x30, 0x1E, 0x78, 0xD7, 0xA0, +0x1F, 0xA0, 0x35, 0xB0, 0x20, 0x33, 0xCF, 0xA0, 0x21, 0x81, 0x69, 0x30, 0x22, 0x0B, 0xC8, 0xA0, +0x23, 0x58, 0x10, 0xB0, 0x23, 0xE2, 0x70, 0x20, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xD4, 0xC7, 0x20, +0x30, 0x80, 0x79, 0x30, 0x31, 0x1D, 0x4D, 0xA0, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xB8, 0x85, 0x20, +0x39, 0xDF, 0xE3, 0x30, 0x39, 0xF2, 0x4A, 0x20, 0x3B, 0xC8, 0xFF, 0xB0, 0x3C, 0x6F, 0x0E, 0xA0, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xDE, 0x84, 0x00, 0x00, 0xFF, +0xFF, 0xE3, 0xE0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x42, +0x52, 0x53, 0x54, 0x00, 0x42, 0x52, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7A, +0x94, 0x35, 0x00, 0xDC, 0x28, 0xAD, 0x00, 0x00, 0x00, 0x10, 0x41, 0x6C, 0x61, 0x67, 0x6F, 0x61, +0x73, 0x2C, 0x20, 0x53, 0x65, 0x72, 0x67, 0x69, 0x70, 0x65, + +/* America/Managua */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4E, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xBD, 0x2D, 0x48, 0xE8, +0x06, 0x43, 0x74, 0x60, 0x09, 0xA4, 0x3E, 0x50, 0x11, 0x51, 0xF8, 0xE0, 0x11, 0xD4, 0x6F, 0x50, +0x13, 0x31, 0xDA, 0xE0, 0x13, 0xB4, 0x51, 0x50, 0x29, 0x61, 0x91, 0x20, 0x2A, 0xC1, 0x4B, 0x50, +0x2B, 0x43, 0xDD, 0xE0, 0x32, 0xC9, 0xEF, 0x50, 0x42, 0x58, 0xC0, 0xE0, 0x43, 0x3F, 0x69, 0x50, +0x44, 0x54, 0x6E, 0x80, 0x45, 0x1F, 0x59, 0x60, 0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x02, +0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0xFF, 0xFF, 0xAF, 0x18, 0x00, 0x00, 0xFF, 0xFF, 0xAB, +0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0x4D, +0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xDE, 0x58, 0x00, 0x8F, 0x00, 0x12, 0x00, +0x00, 0x00, 0x00, + +/* America/Manaus */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x7F, 0x44, +0xB8, 0x0F, 0x57, 0xF0, 0xB8, 0xFD, 0x4E, 0xB0, 0xB9, 0xF1, 0x42, 0x40, 0xBA, 0xDE, 0x82, 0x30, +0xDA, 0x38, 0xBC, 0x40, 0xDA, 0xEC, 0x08, 0x40, 0xDC, 0x19, 0xEF, 0xC0, 0xDC, 0xB9, 0x67, 0x30, +0xDD, 0xFB, 0x23, 0x40, 0xDE, 0x9B, 0xEC, 0x30, 0xDF, 0xDD, 0xA8, 0x40, 0xE0, 0x54, 0x41, 0x30, +0xF4, 0x98, 0x0D, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0xC0, 0x72, 0x40, 0xF7, 0x0E, 0x2C, 0xB0, +0xF8, 0x51, 0x3A, 0x40, 0xF8, 0xC7, 0xD3, 0x30, 0xFA, 0x0A, 0xE0, 0xC0, 0xFA, 0xA9, 0x06, 0xB0, +0xFB, 0xEC, 0x14, 0x40, 0xFC, 0x8B, 0x8B, 0xB0, 0x1D, 0xC9, 0x9C, 0x40, 0x1E, 0x78, 0xE5, 0xB0, +0x1F, 0xA0, 0x43, 0xC0, 0x20, 0x33, 0xDD, 0xB0, 0x21, 0x81, 0x77, 0x40, 0x22, 0x0B, 0xD6, 0xB0, +0x2C, 0xC0, 0xC3, 0x40, 0x2D, 0x66, 0xD2, 0x30, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xC7, 0xBC, 0x00, 0x00, 0xFF, 0xFF, 0xD5, +0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x4D, 0x53, +0x54, 0x00, 0x41, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x8C, 0x4A, +0x00, 0xB7, 0x14, 0x7D, 0x00, 0x00, 0x00, 0x0A, 0x45, 0x20, 0x41, 0x6D, 0x61, 0x7A, 0x6F, 0x6E, +0x61, 0x73, + +/* America/Marigot */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x91, 0xD5, 0xE1, 0xB0, +0x01, 0xFF, 0xFF, 0xC6, 0x50, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0xE5, 0x8A, 0x00, 0xB2, 0x66, +0x92, 0x00, 0x00, 0x00, 0x00, + +/* America/Martinique */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x91, 0xA3, 0xC8, 0x44, +0x13, 0x4D, 0x6E, 0x40, 0x14, 0x34, 0x16, 0xB0, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xC6, 0xBC, 0x00, +0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x05, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x09, 0x46, 0x46, 0x4D, +0x54, 0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x9F, 0x9B, 0x60, 0x00, 0xB5, 0x73, 0xD2, 0x00, 0x00, 0x00, 0x00, + +/* America/Matamoros */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xA5, 0xB6, 0xDA, 0x60, +0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, +0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, +0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, +0x3A, 0xF5, 0x04, 0x80, 0x3B, 0xB6, 0xC2, 0xF0, 0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, +0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x70, 0xF0, 0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, +0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, +0x46, 0x0F, 0x66, 0x80, 0x47, 0x24, 0x33, 0x70, 0x47, 0xF8, 0x83, 0x00, 0x49, 0x04, 0x15, 0x70, +0x49, 0xD8, 0x65, 0x00, 0x4A, 0xE3, 0xF7, 0x70, 0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, +0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, 0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, +0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, 0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, +0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, 0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, +0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, +0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, +0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, +0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, +0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, +0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, +0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, +0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, +0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, +0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, +0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, +0xFF, 0xA2, 0x40, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, +0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xB0, 0xBF, 0x65, 0x00, 0x7D, 0xE2, 0x90, 0x00, 0x00, 0x00, 0x4A, 0x55, +0x53, 0x20, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, +0x20, 0x43, 0x6F, 0x61, 0x68, 0x75, 0x69, 0x6C, 0x61, 0x2C, 0x20, 0x44, 0x75, 0x72, 0x61, 0x6E, +0x67, 0x6F, 0x2C, 0x20, 0x4E, 0x75, 0x65, 0x76, 0x6F, 0x20, 0x4C, 0x65, 0x6F, 0x6E, 0x2C, 0x20, +0x54, 0x61, 0x6D, 0x61, 0x75, 0x6C, 0x69, 0x70, 0x61, 0x73, 0x20, 0x6E, 0x65, 0x61, 0x72, 0x20, +0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, + +/* America/Mazatlan */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xA5, 0xB6, 0xE8, 0x70, +0xAF, 0xF2, 0x6E, 0xE0, 0xB6, 0x66, 0x56, 0x60, 0xB7, 0x43, 0xD2, 0x60, 0xB8, 0x0C, 0x36, 0x60, +0xB8, 0xFD, 0x86, 0xF0, 0xCB, 0xEA, 0x71, 0x60, 0xD8, 0x91, 0xB4, 0xF0, 0x00, 0x00, 0x70, 0x80, +0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, +0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, +0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xF5, 0x12, 0x90, 0x3B, 0xB6, 0xD1, 0x00, +0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, +0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, +0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x46, 0x0F, 0x74, 0x90, 0x47, 0x24, 0x41, 0x80, +0x47, 0xF8, 0x91, 0x10, 0x49, 0x04, 0x23, 0x80, 0x49, 0xD8, 0x73, 0x10, 0x4A, 0xE4, 0x05, 0x80, +0x4B, 0xB8, 0x55, 0x10, 0x4C, 0xCD, 0x22, 0x00, 0x4D, 0x98, 0x37, 0x10, 0x4E, 0xAD, 0x04, 0x00, +0x4F, 0x78, 0x19, 0x10, 0x50, 0x8C, 0xE6, 0x00, 0x51, 0x61, 0x35, 0x90, 0x52, 0x6C, 0xC8, 0x00, +0x53, 0x41, 0x17, 0x90, 0x54, 0x4C, 0xAA, 0x00, 0x55, 0x20, 0xF9, 0x90, 0x56, 0x2C, 0x8C, 0x00, +0x57, 0x00, 0xDB, 0x90, 0x58, 0x15, 0xA8, 0x80, 0x58, 0xE0, 0xBD, 0x90, 0x59, 0xF5, 0x8A, 0x80, +0x5A, 0xC0, 0x9F, 0x90, 0x5B, 0xD5, 0x6C, 0x80, 0x5C, 0xA9, 0xBC, 0x10, 0x5D, 0xB5, 0x4E, 0x80, +0x5E, 0x89, 0x9E, 0x10, 0x5F, 0x95, 0x30, 0x80, 0x60, 0x69, 0x80, 0x10, 0x61, 0x7E, 0x4D, 0x00, +0x62, 0x49, 0x62, 0x10, 0x63, 0x5E, 0x2F, 0x00, 0x64, 0x29, 0x44, 0x10, 0x65, 0x3E, 0x11, 0x00, +0x66, 0x12, 0x60, 0x90, 0x67, 0x1D, 0xF3, 0x00, 0x67, 0xF2, 0x42, 0x90, 0x68, 0xFD, 0xD5, 0x00, +0x69, 0xD2, 0x24, 0x90, 0x6A, 0xDD, 0xB7, 0x00, 0x6B, 0xB2, 0x06, 0x90, 0x6C, 0xC6, 0xD3, 0x80, +0x6D, 0x91, 0xE8, 0x90, 0x6E, 0xA6, 0xB5, 0x80, 0x6F, 0x71, 0xCA, 0x90, 0x70, 0x86, 0x97, 0x80, +0x71, 0x5A, 0xE7, 0x10, 0x72, 0x66, 0x79, 0x80, 0x73, 0x3A, 0xC9, 0x10, 0x74, 0x46, 0x5B, 0x80, +0x75, 0x1A, 0xAB, 0x10, 0x76, 0x2F, 0x78, 0x00, 0x76, 0xFA, 0x8D, 0x10, 0x78, 0x0F, 0x5A, 0x00, +0x78, 0xDA, 0x6F, 0x10, 0x79, 0xEF, 0x3C, 0x00, 0x7A, 0xBA, 0x51, 0x10, 0x7B, 0xCF, 0x1E, 0x00, +0x7C, 0xA3, 0x6D, 0x90, 0x7D, 0xAF, 0x00, 0x00, 0x7E, 0x83, 0x4F, 0x90, 0x7F, 0x8E, 0xE2, 0x00, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0xFF, 0xFF, 0x9C, +0x3C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, +0xFF, 0x8F, 0x80, 0x00, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, +0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xC1, 0x42, 0x00, 0x70, 0x47, +0x7D, 0x00, 0x00, 0x00, 0x28, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x54, 0x69, +0x6D, 0x65, 0x20, 0x2D, 0x20, 0x53, 0x20, 0x42, 0x61, 0x6A, 0x61, 0x2C, 0x20, 0x4E, 0x61, 0x79, +0x61, 0x72, 0x69, 0x74, 0x2C, 0x20, 0x53, 0x69, 0x6E, 0x61, 0x6C, 0x6F, 0x61, + +/* America/Mendoza */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x18, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x19, 0x34, 0x40, +0x27, 0xCD, 0xC3, 0xB0, 0x28, 0xFA, 0x67, 0xC0, 0x29, 0xB0, 0x48, 0xB0, 0x2A, 0xE0, 0xE1, 0x40, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x40, 0xB0, 0x13, 0xB0, +0x41, 0x56, 0x3E, 0xC0, 0x47, 0x77, 0x09, 0xB0, 0x47, 0xDC, 0x7F, 0x20, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, +0x03, 0x04, 0x02, 0x04, 0x05, 0x04, 0x03, 0x04, 0xFF, 0xFF, 0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0xFF, 0xFF, 0xD5, 0xD0, +0x01, 0x12, 0x43, 0x4D, 0x54, 0x00, 0x41, 0x52, 0x54, 0x00, 0x41, 0x52, 0x53, 0x54, 0x00, 0x57, +0x41, 0x52, 0x54, 0x00, 0x57, 0x41, 0x52, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* America/Menominee */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD3, 0x75, 0xF3, 0x00, 0xD4, 0x40, 0xEB, 0xF0, +0xF9, 0x0F, 0x4A, 0x80, 0xFA, 0x08, 0x67, 0xF0, 0xFE, 0xB8, 0x2B, 0x00, 0x06, 0x40, 0xDF, 0x70, +0x07, 0x30, 0xD0, 0x70, 0x07, 0x8D, 0x27, 0x80, 0x09, 0x10, 0xB2, 0x70, 0x09, 0xAD, 0xA3, 0x00, +0x0A, 0xF0, 0x94, 0x70, 0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xB0, 0xF0, 0x0D, 0xC0, 0x75, 0x80, +0x0E, 0xB9, 0x92, 0xF0, 0x0F, 0xA9, 0x92, 0x00, 0x10, 0x99, 0x74, 0xF0, 0x11, 0x89, 0x74, 0x00, +0x12, 0x79, 0x56, 0xF0, 0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, 0x15, 0x49, 0x38, 0x00, +0x16, 0x39, 0x1A, 0xF0, 0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, 0x19, 0x08, 0xFC, 0x00, +0x1A, 0x02, 0x19, 0x70, 0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, 0x1C, 0xD1, 0xFA, 0x80, +0x1D, 0xC1, 0xDD, 0x70, 0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, 0x20, 0x76, 0x0F, 0x00, +0x21, 0x81, 0xA1, 0x70, 0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x24, 0x35, 0xD3, 0x00, +0x25, 0x4A, 0x9F, 0xF0, 0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x27, 0xFE, 0xD1, 0x80, +0x29, 0x0A, 0x63, 0xF0, 0x29, 0xDE, 0xB3, 0x80, 0x2A, 0xEA, 0x45, 0xF0, 0x2B, 0xBE, 0x95, 0x80, +0x2C, 0xD3, 0x62, 0x70, 0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x44, 0x70, 0x2F, 0x7E, 0x59, 0x80, +0x30, 0x93, 0x26, 0x70, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, 0x33, 0x47, 0x58, 0x00, +0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, 0x37, 0x07, 0x1C, 0x00, +0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0xC6, 0xE0, 0x00, +0x3B, 0xDB, 0xAC, 0xF0, 0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, 0x3E, 0x8F, 0xDE, 0x80, +0x3F, 0x9B, 0x70, 0xF0, 0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, 0x42, 0x4F, 0xA2, 0x80, +0x43, 0x64, 0x6F, 0x70, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, +0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, +0x4A, 0xED, 0x31, 0xF0, 0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, +0x4E, 0xB6, 0x30, 0x70, 0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, +0x52, 0x75, 0xF4, 0x70, 0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, +0x56, 0x35, 0xB8, 0x70, 0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, +0x59, 0xFE, 0xB6, 0xF0, 0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, +0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, +0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, +0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, +0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, +0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, +0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, +0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, +0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, +0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, +0x7F, 0x98, 0x0E, 0x70, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, +0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, +0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, +0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xCE, +0x28, 0x79, 0x00, 0x8C, 0xF8, 0x37, 0x00, 0x00, 0x00, 0x47, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, +0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x4D, 0x69, 0x63, 0x68, 0x69, 0x67, 0x61, +0x6E, 0x20, 0x2D, 0x20, 0x44, 0x69, 0x63, 0x6B, 0x69, 0x6E, 0x73, 0x6F, 0x6E, 0x2C, 0x20, 0x47, +0x6F, 0x67, 0x65, 0x62, 0x69, 0x63, 0x2C, 0x20, 0x49, 0x72, 0x6F, 0x6E, 0x20, 0x26, 0x20, 0x4D, +0x65, 0x6E, 0x6F, 0x6D, 0x69, 0x6E, 0x65, 0x65, 0x20, 0x43, 0x6F, 0x75, 0x6E, 0x74, 0x69, 0x65, +0x73, + +/* America/Merida */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xA5, 0xB6, 0xDA, 0x60, +0x16, 0x86, 0xD5, 0x60, 0x18, 0x4C, 0x4B, 0x50, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, +0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, +0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, +0x3A, 0xF5, 0x04, 0x80, 0x3B, 0xB6, 0xC2, 0xF0, 0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, +0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x70, 0xF0, 0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, +0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, +0x46, 0x0F, 0x66, 0x80, 0x47, 0x24, 0x33, 0x70, 0x47, 0xF8, 0x83, 0x00, 0x49, 0x04, 0x15, 0x70, +0x49, 0xD8, 0x65, 0x00, 0x4A, 0xE3, 0xF7, 0x70, 0x4B, 0xB8, 0x47, 0x00, 0x4C, 0xCD, 0x13, 0xF0, +0x4D, 0x98, 0x29, 0x00, 0x4E, 0xAC, 0xF5, 0xF0, 0x4F, 0x78, 0x0B, 0x00, 0x50, 0x8C, 0xD7, 0xF0, +0x51, 0x61, 0x27, 0x80, 0x52, 0x6C, 0xB9, 0xF0, 0x53, 0x41, 0x09, 0x80, 0x54, 0x4C, 0x9B, 0xF0, +0x55, 0x20, 0xEB, 0x80, 0x56, 0x2C, 0x7D, 0xF0, 0x57, 0x00, 0xCD, 0x80, 0x58, 0x15, 0x9A, 0x70, +0x58, 0xE0, 0xAF, 0x80, 0x59, 0xF5, 0x7C, 0x70, 0x5A, 0xC0, 0x91, 0x80, 0x5B, 0xD5, 0x5E, 0x70, +0x5C, 0xA9, 0xAE, 0x00, 0x5D, 0xB5, 0x40, 0x70, 0x5E, 0x89, 0x90, 0x00, 0x5F, 0x95, 0x22, 0x70, +0x60, 0x69, 0x72, 0x00, 0x61, 0x7E, 0x3E, 0xF0, 0x62, 0x49, 0x54, 0x00, 0x63, 0x5E, 0x20, 0xF0, +0x64, 0x29, 0x36, 0x00, 0x65, 0x3E, 0x02, 0xF0, 0x66, 0x12, 0x52, 0x80, 0x67, 0x1D, 0xE4, 0xF0, +0x67, 0xF2, 0x34, 0x80, 0x68, 0xFD, 0xC6, 0xF0, 0x69, 0xD2, 0x16, 0x80, 0x6A, 0xDD, 0xA8, 0xF0, +0x6B, 0xB1, 0xF8, 0x80, 0x6C, 0xC6, 0xC5, 0x70, 0x6D, 0x91, 0xDA, 0x80, 0x6E, 0xA6, 0xA7, 0x70, +0x6F, 0x71, 0xBC, 0x80, 0x70, 0x86, 0x89, 0x70, 0x71, 0x5A, 0xD9, 0x00, 0x72, 0x66, 0x6B, 0x70, +0x73, 0x3A, 0xBB, 0x00, 0x74, 0x46, 0x4D, 0x70, 0x75, 0x1A, 0x9D, 0x00, 0x76, 0x2F, 0x69, 0xF0, +0x76, 0xFA, 0x7F, 0x00, 0x78, 0x0F, 0x4B, 0xF0, 0x78, 0xDA, 0x61, 0x00, 0x79, 0xEF, 0x2D, 0xF0, +0x7A, 0xBA, 0x43, 0x00, 0x7B, 0xCF, 0x0F, 0xF0, 0x7C, 0xA3, 0x5F, 0x80, 0x7D, 0xAE, 0xF1, 0xF0, +0x7E, 0x83, 0x41, 0x80, 0x7F, 0x8E, 0xD3, 0xF0, 0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0xFF, +0xFF, 0xAB, 0xFC, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, +0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, +0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xA9, 0x52, 0x5A, 0x00, 0x89, 0xE9, 0xFD, 0x00, 0x00, 0x00, 0x20, 0x43, 0x65, 0x6E, 0x74, 0x72, +0x61, 0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x43, 0x61, 0x6D, 0x70, 0x65, 0x63, +0x68, 0x65, 0x2C, 0x20, 0x59, 0x75, 0x63, 0x61, 0x74, 0x61, 0x6E, + +/* America/Metlakatla */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xCB, 0x89, 0x1A, 0xA0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x26, 0x10, 0xFE, 0xB8, 0x47, 0x20, 0xFF, 0xA8, 0x2A, 0x10, +0x00, 0x98, 0x29, 0x20, 0x01, 0x88, 0x0C, 0x10, 0x02, 0x78, 0x0B, 0x20, 0x03, 0x71, 0x28, 0x90, +0x04, 0x61, 0x27, 0xA0, 0x05, 0x51, 0x0A, 0x90, 0x06, 0x41, 0x09, 0xA0, 0x07, 0x30, 0xEC, 0x90, +0x07, 0x8D, 0x43, 0xA0, 0x09, 0x10, 0xCE, 0x90, 0x09, 0xAD, 0xBF, 0x20, 0x0A, 0xF0, 0xB0, 0x90, +0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, +0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x73, 0x10, +0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, +0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, +0x01, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, +0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, +0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x04, 0xFF, 0xFF, 0x9D, +0x90, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x10, 0x50, +0x53, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x4D, +0x65, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xDD, +0x72, 0x36, 0x00, 0x49, 0xE3, 0x79, 0x00, 0x00, 0x00, 0x20, 0x4D, 0x65, 0x74, 0x6C, 0x61, 0x6B, +0x61, 0x74, 0x6C, 0x61, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x41, 0x6E, 0x6E, 0x65, +0x74, 0x74, 0x65, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, + +/* America/Mexico_City */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xA5, 0xB6, 0xE8, 0x70, +0xAF, 0xF2, 0x6E, 0xE0, 0xB6, 0x66, 0x56, 0x60, 0xB7, 0x43, 0xD2, 0x60, 0xB8, 0x0C, 0x36, 0x60, +0xB8, 0xFD, 0x86, 0xF0, 0xC5, 0xDE, 0xB0, 0x60, 0xC6, 0x97, 0x34, 0x50, 0xC9, 0x55, 0xF1, 0xE0, +0xC9, 0xEA, 0xDD, 0x50, 0xCF, 0x02, 0xC6, 0xE0, 0xCF, 0xB7, 0x56, 0x50, 0xDA, 0x99, 0x15, 0xE0, +0xDB, 0x76, 0x83, 0xD0, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, 0x33, 0x47, 0x58, 0x00, +0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, 0x37, 0x07, 0x1C, 0x00, +0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0xF5, 0x04, 0x80, +0x3B, 0xB6, 0xC2, 0xF0, 0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, 0x3E, 0x8F, 0xDE, 0x80, +0x3F, 0x9B, 0x70, 0xF0, 0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, 0x42, 0x4F, 0xA2, 0x80, +0x43, 0x64, 0x6F, 0x70, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, 0x46, 0x0F, 0x66, 0x80, +0x47, 0x24, 0x33, 0x70, 0x47, 0xF8, 0x83, 0x00, 0x49, 0x04, 0x15, 0x70, 0x49, 0xD8, 0x65, 0x00, +0x4A, 0xE3, 0xF7, 0x70, 0x4B, 0xB8, 0x47, 0x00, 0x4C, 0xCD, 0x13, 0xF0, 0x4D, 0x98, 0x29, 0x00, +0x4E, 0xAC, 0xF5, 0xF0, 0x4F, 0x78, 0x0B, 0x00, 0x50, 0x8C, 0xD7, 0xF0, 0x51, 0x61, 0x27, 0x80, +0x52, 0x6C, 0xB9, 0xF0, 0x53, 0x41, 0x09, 0x80, 0x54, 0x4C, 0x9B, 0xF0, 0x55, 0x20, 0xEB, 0x80, +0x56, 0x2C, 0x7D, 0xF0, 0x57, 0x00, 0xCD, 0x80, 0x58, 0x15, 0x9A, 0x70, 0x58, 0xE0, 0xAF, 0x80, +0x59, 0xF5, 0x7C, 0x70, 0x5A, 0xC0, 0x91, 0x80, 0x5B, 0xD5, 0x5E, 0x70, 0x5C, 0xA9, 0xAE, 0x00, +0x5D, 0xB5, 0x40, 0x70, 0x5E, 0x89, 0x90, 0x00, 0x5F, 0x95, 0x22, 0x70, 0x60, 0x69, 0x72, 0x00, +0x61, 0x7E, 0x3E, 0xF0, 0x62, 0x49, 0x54, 0x00, 0x63, 0x5E, 0x20, 0xF0, 0x64, 0x29, 0x36, 0x00, +0x65, 0x3E, 0x02, 0xF0, 0x66, 0x12, 0x52, 0x80, 0x67, 0x1D, 0xE4, 0xF0, 0x67, 0xF2, 0x34, 0x80, +0x68, 0xFD, 0xC6, 0xF0, 0x69, 0xD2, 0x16, 0x80, 0x6A, 0xDD, 0xA8, 0xF0, 0x6B, 0xB1, 0xF8, 0x80, +0x6C, 0xC6, 0xC5, 0x70, 0x6D, 0x91, 0xDA, 0x80, 0x6E, 0xA6, 0xA7, 0x70, 0x6F, 0x71, 0xBC, 0x80, +0x70, 0x86, 0x89, 0x70, 0x71, 0x5A, 0xD9, 0x00, 0x72, 0x66, 0x6B, 0x70, 0x73, 0x3A, 0xBB, 0x00, +0x74, 0x46, 0x4D, 0x70, 0x75, 0x1A, 0x9D, 0x00, 0x76, 0x2F, 0x69, 0xF0, 0x76, 0xFA, 0x7F, 0x00, +0x78, 0x0F, 0x4B, 0xF0, 0x78, 0xDA, 0x61, 0x00, 0x79, 0xEF, 0x2D, 0xF0, 0x7A, 0xBA, 0x43, 0x00, +0x7B, 0xCF, 0x0F, 0xF0, 0x7C, 0xA3, 0x5F, 0x80, 0x7D, 0xAE, 0xF1, 0xF0, 0x7E, 0x83, 0x41, 0x80, +0x7F, 0x8E, 0xD3, 0xF0, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0xFF, 0xFF, 0xA3, 0x0C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, +0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, +0xB9, 0xB0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, +0x43, 0x44, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xA6, 0xEE, 0x60, 0x00, 0x7B, 0x5E, 0x07, 0x00, 0x00, 0x00, 0x1D, 0x43, 0x65, +0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x6D, 0x6F, 0x73, +0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* America/Miquelon */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x12, 0x91, 0xB6, 0x38, 0xA8, +0x13, 0x6E, 0x63, 0xC0, 0x20, 0x75, 0xE4, 0xD0, 0x21, 0x81, 0x77, 0x40, 0x22, 0x55, 0xC6, 0xD0, +0x23, 0x6A, 0x93, 0xC0, 0x24, 0x35, 0xA8, 0xD0, 0x25, 0x4A, 0x75, 0xC0, 0x26, 0x15, 0x8A, 0xD0, +0x27, 0x2A, 0x57, 0xC0, 0x27, 0xFE, 0xA7, 0x50, 0x29, 0x0A, 0x39, 0xC0, 0x29, 0xDE, 0x89, 0x50, +0x2A, 0xEA, 0x1B, 0xC0, 0x2B, 0xBE, 0x6B, 0x50, 0x2C, 0xD3, 0x38, 0x40, 0x2D, 0x9E, 0x4D, 0x50, +0x2E, 0xB3, 0x1A, 0x40, 0x2F, 0x7E, 0x2F, 0x50, 0x30, 0x92, 0xFC, 0x40, 0x31, 0x67, 0x4B, 0xD0, +0x32, 0x72, 0xDE, 0x40, 0x33, 0x47, 0x2D, 0xD0, 0x34, 0x52, 0xC0, 0x40, 0x35, 0x27, 0x0F, 0xD0, +0x36, 0x32, 0xA2, 0x40, 0x37, 0x06, 0xF1, 0xD0, 0x38, 0x1B, 0xBE, 0xC0, 0x38, 0xE6, 0xD3, 0xD0, +0x39, 0xFB, 0xA0, 0xC0, 0x3A, 0xC6, 0xB5, 0xD0, 0x3B, 0xDB, 0x82, 0xC0, 0x3C, 0xAF, 0xD2, 0x50, +0x3D, 0xBB, 0x64, 0xC0, 0x3E, 0x8F, 0xB4, 0x50, 0x3F, 0x9B, 0x46, 0xC0, 0x40, 0x6F, 0x96, 0x50, +0x41, 0x84, 0x63, 0x40, 0x42, 0x4F, 0x78, 0x50, 0x43, 0x64, 0x45, 0x40, 0x44, 0x2F, 0x5A, 0x50, +0x45, 0x44, 0x27, 0x40, 0x45, 0xF3, 0x8C, 0xD0, 0x47, 0x2D, 0x43, 0xC0, 0x47, 0xD3, 0x6E, 0xD0, +0x49, 0x0D, 0x25, 0xC0, 0x49, 0xB3, 0x50, 0xD0, 0x4A, 0xED, 0x07, 0xC0, 0x4B, 0x9C, 0x6D, 0x50, +0x4C, 0xD6, 0x24, 0x40, 0x4D, 0x7C, 0x4F, 0x50, 0x4E, 0xB6, 0x06, 0x40, 0x4F, 0x5C, 0x31, 0x50, +0x50, 0x95, 0xE8, 0x40, 0x51, 0x3C, 0x13, 0x50, 0x52, 0x75, 0xCA, 0x40, 0x53, 0x1B, 0xF5, 0x50, +0x54, 0x55, 0xAC, 0x40, 0x54, 0xFB, 0xD7, 0x50, 0x56, 0x35, 0x8E, 0x40, 0x56, 0xE4, 0xF3, 0xD0, +0x58, 0x1E, 0xAA, 0xC0, 0x58, 0xC4, 0xD5, 0xD0, 0x59, 0xFE, 0x8C, 0xC0, 0x5A, 0xA4, 0xB7, 0xD0, +0x5B, 0xDE, 0x6E, 0xC0, 0x5C, 0x84, 0x99, 0xD0, 0x5D, 0xBE, 0x50, 0xC0, 0x5E, 0x64, 0x7B, 0xD0, +0x5F, 0x9E, 0x32, 0xC0, 0x60, 0x4D, 0x98, 0x50, 0x61, 0x87, 0x4F, 0x40, 0x62, 0x2D, 0x7A, 0x50, +0x63, 0x67, 0x31, 0x40, 0x64, 0x0D, 0x5C, 0x50, 0x65, 0x47, 0x13, 0x40, 0x65, 0xED, 0x3E, 0x50, +0x67, 0x26, 0xF5, 0x40, 0x67, 0xCD, 0x20, 0x50, 0x69, 0x06, 0xD7, 0x40, 0x69, 0xAD, 0x02, 0x50, +0x6A, 0xE6, 0xB9, 0x40, 0x6B, 0x96, 0x1E, 0xD0, 0x6C, 0xCF, 0xD5, 0xC0, 0x6D, 0x76, 0x00, 0xD0, +0x6E, 0xAF, 0xB7, 0xC0, 0x6F, 0x55, 0xE2, 0xD0, 0x70, 0x8F, 0x99, 0xC0, 0x71, 0x35, 0xC4, 0xD0, +0x72, 0x6F, 0x7B, 0xC0, 0x73, 0x15, 0xA6, 0xD0, 0x74, 0x4F, 0x5D, 0xC0, 0x74, 0xFE, 0xC3, 0x50, +0x76, 0x38, 0x7A, 0x40, 0x76, 0xDE, 0xA5, 0x50, 0x78, 0x18, 0x5C, 0x40, 0x78, 0xBE, 0x87, 0x50, +0x79, 0xF8, 0x3E, 0x40, 0x7A, 0x9E, 0x69, 0x50, 0x7B, 0xD8, 0x20, 0x40, 0x7C, 0x7E, 0x4B, 0x50, +0x7D, 0xB8, 0x02, 0x40, 0x7E, 0x5E, 0x2D, 0x50, 0x7F, 0x97, 0xE4, 0x40, 0x01, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0xFF, 0xFF, 0xCB, 0x58, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x0D, 0x4C, 0x4D, 0x54, 0x00, +0x41, 0x53, 0x54, 0x00, 0x50, 0x4D, 0x53, 0x54, 0x00, 0x50, 0x4D, 0x44, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x1F, 0x28, 0x00, 0xBC, 0xB3, 0x4A, 0x00, 0x00, +0x00, 0x00, + +/* America/Moncton */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xCE, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x80, 0xF1, 0xB6, 0x50, +0x9E, 0xB8, 0x85, 0x60, 0x9F, 0xBA, 0xDD, 0x50, 0xBB, 0x3C, 0x38, 0xD0, 0xBB, 0xB4, 0x23, 0x40, +0xBD, 0x1C, 0x1A, 0xD0, 0xBD, 0x94, 0x05, 0x40, 0xBE, 0xFB, 0xFC, 0xD0, 0xBF, 0x73, 0xE7, 0x40, +0xC0, 0xDB, 0xDE, 0xD0, 0xC1, 0x53, 0xC9, 0x40, 0xC2, 0xBB, 0xC0, 0xD0, 0xC3, 0x33, 0xAB, 0x40, +0xC4, 0x9B, 0xA2, 0xD0, 0xC5, 0x13, 0x8D, 0x40, 0xC6, 0x70, 0xF8, 0xD0, 0xC7, 0x0D, 0xCD, 0x40, +0xC8, 0x48, 0xF1, 0xD0, 0xC8, 0xED, 0xAF, 0x40, 0xCA, 0x16, 0x5E, 0xD0, 0xCA, 0xD6, 0xCB, 0xC0, +0xCB, 0x88, 0xE2, 0x60, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xED, 0xD0, 0xD3, 0x75, 0xD6, 0xE0, +0xD4, 0x40, 0xCF, 0xD0, 0xD5, 0x55, 0xB8, 0xE0, 0xD6, 0x20, 0xB1, 0xD0, 0xD7, 0x35, 0x9A, 0xE0, +0xD8, 0x00, 0x93, 0xD0, 0xD9, 0x15, 0x7C, 0xE0, 0xD9, 0xE0, 0x75, 0xD0, 0xDA, 0xFE, 0x99, 0x60, +0xDB, 0xC0, 0x57, 0xD0, 0xDC, 0xDE, 0x7B, 0x60, 0xDD, 0xA9, 0x74, 0x50, 0xDE, 0xBE, 0x5D, 0x60, +0xDF, 0x89, 0x56, 0x50, 0xE0, 0x9E, 0x3F, 0x60, 0xE1, 0x69, 0x38, 0x50, 0xE2, 0x7E, 0x21, 0x60, +0xE3, 0x49, 0x1A, 0x50, 0xE4, 0x5E, 0x03, 0x60, 0xE5, 0x28, 0xFC, 0x50, 0xE6, 0x47, 0x1F, 0xE0, +0xE7, 0x12, 0x18, 0xD0, 0xE8, 0x27, 0x01, 0xE0, 0xE9, 0x16, 0xE4, 0xD0, 0xEA, 0x06, 0xE3, 0xE0, +0xEA, 0xF6, 0xC6, 0xD0, 0xEB, 0xE6, 0xC5, 0xE0, 0xEC, 0xD6, 0xA8, 0xD0, 0xED, 0xC6, 0xA7, 0xE0, +0xEE, 0xBF, 0xC5, 0x50, 0xEF, 0xAF, 0xC4, 0x60, 0xF0, 0x9F, 0xA7, 0x50, 0xF1, 0x8F, 0xA6, 0x60, +0xF2, 0x7F, 0x89, 0x50, 0xF3, 0x6F, 0x88, 0x60, 0xF4, 0x5F, 0x6B, 0x50, 0xF5, 0x4F, 0x6A, 0x60, +0xF6, 0x3F, 0x4D, 0x50, 0xF7, 0x2F, 0x4C, 0x60, 0xF8, 0x28, 0x69, 0xD0, 0xF9, 0x0F, 0x2E, 0x60, +0xFA, 0x08, 0x4B, 0xD0, 0xFA, 0xF8, 0x4A, 0xE0, 0xFB, 0xE8, 0x2D, 0xD0, 0xFC, 0xD8, 0x2C, 0xE0, +0xFD, 0xC8, 0x0F, 0xD0, 0xFE, 0xB8, 0x0E, 0xE0, 0xFF, 0xA7, 0xF1, 0xD0, 0x00, 0x97, 0xF0, 0xE0, +0x01, 0x87, 0xD3, 0xD0, 0x02, 0x77, 0xD2, 0xE0, 0x03, 0x70, 0xF0, 0x50, 0x04, 0x60, 0xEF, 0x60, +0x05, 0x50, 0xD2, 0x50, 0x08, 0x20, 0xB3, 0x60, 0x09, 0x10, 0x96, 0x50, 0x0A, 0x00, 0x95, 0x60, +0x0A, 0xF0, 0x78, 0x50, 0x0B, 0xE0, 0x77, 0x60, 0x0C, 0xD9, 0x94, 0xD0, 0x0D, 0xC0, 0x59, 0x60, +0x0E, 0xB9, 0x76, 0xD0, 0x0F, 0xA9, 0x75, 0xE0, 0x10, 0x99, 0x58, 0xD0, 0x11, 0x89, 0x57, 0xE0, +0x12, 0x79, 0x3A, 0xD0, 0x13, 0x69, 0x39, 0xE0, 0x14, 0x59, 0x1C, 0xD0, 0x15, 0x49, 0x1B, 0xE0, +0x16, 0x38, 0xFE, 0xD0, 0x17, 0x28, 0xFD, 0xE0, 0x18, 0x22, 0x1B, 0x50, 0x19, 0x08, 0xDF, 0xE0, +0x1A, 0x01, 0xFD, 0x50, 0x1A, 0xF1, 0xFC, 0x60, 0x1B, 0xE1, 0xDF, 0x50, 0x1C, 0xD1, 0xDE, 0x60, +0x1D, 0xC1, 0xC1, 0x50, 0x1E, 0xB1, 0xC0, 0x60, 0x1F, 0xA1, 0xA3, 0x50, 0x20, 0x75, 0xF2, 0xE0, +0x21, 0x81, 0x85, 0x50, 0x22, 0x55, 0xD4, 0xE0, 0x23, 0x6A, 0xA1, 0xD0, 0x24, 0x35, 0xB6, 0xE0, +0x25, 0x4A, 0x83, 0xD0, 0x26, 0x15, 0x98, 0xE0, 0x27, 0x2A, 0x65, 0xD0, 0x27, 0xFE, 0xB5, 0x60, +0x29, 0x0A, 0x47, 0xD0, 0x29, 0xDE, 0x97, 0x60, 0x2A, 0xEA, 0x29, 0xD0, 0x2B, 0xBE, 0x5D, 0x7C, +0x2C, 0xD3, 0x2A, 0x6C, 0x2D, 0x9E, 0x3F, 0x7C, 0x2E, 0xB3, 0x0C, 0x6C, 0x2F, 0x7E, 0x21, 0x7C, +0x30, 0x92, 0xEE, 0x6C, 0x31, 0x67, 0x3D, 0xFC, 0x32, 0x72, 0xD0, 0x6C, 0x33, 0x47, 0x1F, 0xFC, +0x34, 0x52, 0xB2, 0x6C, 0x35, 0x27, 0x01, 0xFC, 0x36, 0x32, 0x94, 0x6C, 0x37, 0x06, 0xE3, 0xFC, +0x38, 0x1B, 0xB0, 0xEC, 0x38, 0xE6, 0xC5, 0xFC, 0x39, 0xFB, 0x92, 0xEC, 0x3A, 0xC6, 0xA7, 0xFC, +0x3B, 0xDB, 0x74, 0xEC, 0x3C, 0xAF, 0xC4, 0x7C, 0x3D, 0xBB, 0x56, 0xEC, 0x3E, 0x8F, 0xA6, 0x7C, +0x3F, 0x9B, 0x38, 0xEC, 0x40, 0x6F, 0x88, 0x7C, 0x41, 0x84, 0x55, 0x6C, 0x42, 0x4F, 0x6A, 0x7C, +0x43, 0x64, 0x37, 0x6C, 0x44, 0x2F, 0x4C, 0x7C, 0x45, 0x44, 0x19, 0x6C, 0x45, 0xF3, 0x9A, 0xE0, +0x47, 0x2D, 0x51, 0xD0, 0x47, 0xD3, 0x7C, 0xE0, 0x49, 0x0D, 0x33, 0xD0, 0x49, 0xB3, 0x5E, 0xE0, +0x4A, 0xED, 0x15, 0xD0, 0x4B, 0x9C, 0x7B, 0x60, 0x4C, 0xD6, 0x32, 0x50, 0x4D, 0x7C, 0x5D, 0x60, +0x4E, 0xB6, 0x14, 0x50, 0x4F, 0x5C, 0x3F, 0x60, 0x50, 0x95, 0xF6, 0x50, 0x51, 0x3C, 0x21, 0x60, +0x52, 0x75, 0xD8, 0x50, 0x53, 0x1C, 0x03, 0x60, 0x54, 0x55, 0xBA, 0x50, 0x54, 0xFB, 0xE5, 0x60, +0x56, 0x35, 0x9C, 0x50, 0x56, 0xE5, 0x01, 0xE0, 0x58, 0x1E, 0xB8, 0xD0, 0x58, 0xC4, 0xE3, 0xE0, +0x59, 0xFE, 0x9A, 0xD0, 0x5A, 0xA4, 0xC5, 0xE0, 0x5B, 0xDE, 0x7C, 0xD0, 0x5C, 0x84, 0xA7, 0xE0, +0x5D, 0xBE, 0x5E, 0xD0, 0x5E, 0x64, 0x89, 0xE0, 0x5F, 0x9E, 0x40, 0xD0, 0x60, 0x4D, 0xA6, 0x60, +0x61, 0x87, 0x5D, 0x50, 0x62, 0x2D, 0x88, 0x60, 0x63, 0x67, 0x3F, 0x50, 0x64, 0x0D, 0x6A, 0x60, +0x65, 0x47, 0x21, 0x50, 0x65, 0xED, 0x4C, 0x60, 0x67, 0x27, 0x03, 0x50, 0x67, 0xCD, 0x2E, 0x60, +0x69, 0x06, 0xE5, 0x50, 0x69, 0xAD, 0x10, 0x60, 0x6A, 0xE6, 0xC7, 0x50, 0x6B, 0x96, 0x2C, 0xE0, +0x6C, 0xCF, 0xE3, 0xD0, 0x6D, 0x76, 0x0E, 0xE0, 0x6E, 0xAF, 0xC5, 0xD0, 0x6F, 0x55, 0xF0, 0xE0, +0x70, 0x8F, 0xA7, 0xD0, 0x71, 0x35, 0xD2, 0xE0, 0x72, 0x6F, 0x89, 0xD0, 0x73, 0x15, 0xB4, 0xE0, +0x74, 0x4F, 0x6B, 0xD0, 0x74, 0xFE, 0xD1, 0x60, 0x76, 0x38, 0x88, 0x50, 0x76, 0xDE, 0xB3, 0x60, +0x78, 0x18, 0x6A, 0x50, 0x78, 0xBE, 0x95, 0x60, 0x79, 0xF8, 0x4C, 0x50, 0x7A, 0x9E, 0x77, 0x60, +0x7B, 0xD8, 0x2E, 0x50, 0x7C, 0x7E, 0x59, 0x60, 0x7D, 0xB8, 0x10, 0x50, 0x7E, 0x5E, 0x3B, 0x60, +0x7F, 0x97, 0xF2, 0x50, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x0C, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x10, +0x45, 0x53, 0x54, 0x00, 0x41, 0x44, 0x54, 0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x57, 0x54, 0x00, +0x41, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xCF, +0xAC, 0x10, 0x00, 0xAF, 0xCE, 0x82, 0x00, 0x00, 0x00, 0x1D, 0x41, 0x74, 0x6C, 0x61, 0x6E, 0x74, +0x69, 0x63, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x4E, 0x65, 0x77, 0x20, 0x42, 0x72, +0x75, 0x6E, 0x73, 0x77, 0x69, 0x63, 0x6B, + +/* America/Monterrey */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xA5, 0xB6, 0xDA, 0x60, +0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, +0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, +0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, +0x3A, 0xF5, 0x04, 0x80, 0x3B, 0xB6, 0xC2, 0xF0, 0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, +0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x70, 0xF0, 0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, +0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, +0x46, 0x0F, 0x66, 0x80, 0x47, 0x24, 0x33, 0x70, 0x47, 0xF8, 0x83, 0x00, 0x49, 0x04, 0x15, 0x70, +0x49, 0xD8, 0x65, 0x00, 0x4A, 0xE3, 0xF7, 0x70, 0x4B, 0xB8, 0x47, 0x00, 0x4C, 0xCD, 0x13, 0xF0, +0x4D, 0x98, 0x29, 0x00, 0x4E, 0xAC, 0xF5, 0xF0, 0x4F, 0x78, 0x0B, 0x00, 0x50, 0x8C, 0xD7, 0xF0, +0x51, 0x61, 0x27, 0x80, 0x52, 0x6C, 0xB9, 0xF0, 0x53, 0x41, 0x09, 0x80, 0x54, 0x4C, 0x9B, 0xF0, +0x55, 0x20, 0xEB, 0x80, 0x56, 0x2C, 0x7D, 0xF0, 0x57, 0x00, 0xCD, 0x80, 0x58, 0x15, 0x9A, 0x70, +0x58, 0xE0, 0xAF, 0x80, 0x59, 0xF5, 0x7C, 0x70, 0x5A, 0xC0, 0x91, 0x80, 0x5B, 0xD5, 0x5E, 0x70, +0x5C, 0xA9, 0xAE, 0x00, 0x5D, 0xB5, 0x40, 0x70, 0x5E, 0x89, 0x90, 0x00, 0x5F, 0x95, 0x22, 0x70, +0x60, 0x69, 0x72, 0x00, 0x61, 0x7E, 0x3E, 0xF0, 0x62, 0x49, 0x54, 0x00, 0x63, 0x5E, 0x20, 0xF0, +0x64, 0x29, 0x36, 0x00, 0x65, 0x3E, 0x02, 0xF0, 0x66, 0x12, 0x52, 0x80, 0x67, 0x1D, 0xE4, 0xF0, +0x67, 0xF2, 0x34, 0x80, 0x68, 0xFD, 0xC6, 0xF0, 0x69, 0xD2, 0x16, 0x80, 0x6A, 0xDD, 0xA8, 0xF0, +0x6B, 0xB1, 0xF8, 0x80, 0x6C, 0xC6, 0xC5, 0x70, 0x6D, 0x91, 0xDA, 0x80, 0x6E, 0xA6, 0xA7, 0x70, +0x6F, 0x71, 0xBC, 0x80, 0x70, 0x86, 0x89, 0x70, 0x71, 0x5A, 0xD9, 0x00, 0x72, 0x66, 0x6B, 0x70, +0x73, 0x3A, 0xBB, 0x00, 0x74, 0x46, 0x4D, 0x70, 0x75, 0x1A, 0x9D, 0x00, 0x76, 0x2F, 0x69, 0xF0, +0x76, 0xFA, 0x7F, 0x00, 0x78, 0x0F, 0x4B, 0xF0, 0x78, 0xDA, 0x61, 0x00, 0x79, 0xEF, 0x2D, 0xF0, +0x7A, 0xBA, 0x43, 0x00, 0x7B, 0xCF, 0x0F, 0xF0, 0x7C, 0xA3, 0x5F, 0x80, 0x7D, 0xAE, 0xF1, 0xF0, +0x7E, 0x83, 0x41, 0x80, 0x7F, 0x8E, 0xD3, 0xF0, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, +0xFF, 0xA1, 0xF4, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, +0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xB0, 0x7E, 0x4A, 0x00, 0x79, 0x96, 0x4D, 0x00, 0x00, 0x00, 0x54, 0x4D, +0x65, 0x78, 0x69, 0x63, 0x61, 0x6E, 0x20, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x54, +0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x43, 0x6F, 0x61, 0x68, 0x75, 0x69, 0x6C, 0x61, 0x2C, 0x20, +0x44, 0x75, 0x72, 0x61, 0x6E, 0x67, 0x6F, 0x2C, 0x20, 0x4E, 0x75, 0x65, 0x76, 0x6F, 0x20, 0x4C, +0x65, 0x6F, 0x6E, 0x2C, 0x20, 0x54, 0x61, 0x6D, 0x61, 0x75, 0x6C, 0x69, 0x70, 0x61, 0x73, 0x20, +0x61, 0x77, 0x61, 0x79, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, +0x64, 0x65, 0x72, + +/* America/Montevideo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x13, 0xA2, 0x92, 0x87, 0xAC, +0xA9, 0x01, 0x25, 0xB8, 0xA9, 0xF1, 0x0F, 0xB0, 0xAA, 0xE2, 0x59, 0x38, 0xAB, 0xD2, 0x43, 0x30, +0xAC, 0xC3, 0x8C, 0xB8, 0xAD, 0xB3, 0x76, 0xB0, 0xBB, 0xF4, 0xB5, 0xB8, 0xBC, 0xBF, 0xB5, 0xB0, +0xBD, 0xD4, 0x97, 0xB8, 0xBE, 0x9F, 0x97, 0xB0, 0xBF, 0xB4, 0x79, 0xB8, 0xC0, 0x7F, 0x79, 0xB0, +0xC1, 0x9D, 0x96, 0x38, 0xC2, 0x5F, 0x5B, 0xB0, 0xC3, 0x7D, 0x78, 0x38, 0xC4, 0x3F, 0x3D, 0xB0, +0xC5, 0x5D, 0x5A, 0x38, 0xC6, 0x1F, 0x1F, 0xB0, 0xC7, 0x3D, 0x3C, 0x38, 0xC8, 0x08, 0x3C, 0x30, +0xC9, 0x1D, 0x1E, 0x38, 0xC9, 0xE8, 0x1E, 0x30, 0xCA, 0x8B, 0x9F, 0x38, 0xCB, 0x55, 0x4D, 0xB0, +0xCD, 0x1E, 0xCD, 0x38, 0xCD, 0x95, 0x5F, 0x20, 0xEC, 0x0B, 0x85, 0xB0, 0xEC, 0xF2, 0x2E, 0x20, +0xED, 0x45, 0x4A, 0xB0, 0xED, 0x85, 0xD6, 0x20, 0xF7, 0x13, 0x72, 0xB0, 0xF7, 0xFA, 0x1B, 0x20, +0xF8, 0xF3, 0x54, 0xB0, 0xFA, 0x09, 0x73, 0x20, 0xFA, 0xD3, 0x36, 0xB0, 0xFB, 0xEA, 0xA6, 0xA0, +0xFC, 0xFE, 0x3E, 0x30, 0xFD, 0xF7, 0x62, 0xA8, 0xFE, 0xDF, 0x71, 0xB0, 0xFF, 0xD8, 0x96, 0x28, +0x00, 0xC0, 0xA5, 0x30, 0x01, 0xB9, 0xC9, 0xA8, 0x04, 0x58, 0xDC, 0x30, 0x04, 0xED, 0xC7, 0xA0, +0x07, 0xDF, 0xEF, 0xB0, 0x09, 0x5A, 0x47, 0x28, 0x0C, 0xB1, 0xDD, 0xA0, 0x0E, 0xE7, 0x7F, 0x30, +0x0F, 0x83, 0x02, 0x20, 0x12, 0x55, 0x86, 0x30, 0x13, 0x6E, 0x47, 0xA0, 0x21, 0xC3, 0x54, 0x30, +0x22, 0x3B, 0x3E, 0xA0, 0x23, 0xA1, 0xE4, 0xB0, 0x24, 0x19, 0xCF, 0x20, 0x25, 0x4A, 0x67, 0xB0, +0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, 0x27, 0xD0, 0x58, 0xA0, 0x29, 0x0A, 0x2B, 0xB0, +0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, 0x2B, 0x90, 0x1C, 0xA0, 0x41, 0x4C, 0xF6, 0x30, +0x42, 0x46, 0x2F, 0xC0, 0x43, 0x48, 0xA3, 0xD0, 0x44, 0x13, 0x9C, 0xC0, 0x45, 0x1F, 0x4B, 0x50, +0x45, 0xF3, 0x7E, 0xC0, 0x47, 0x08, 0x67, 0xD0, 0x47, 0xD3, 0x60, 0xC0, 0x48, 0xE8, 0x49, 0xD0, +0x49, 0xB3, 0x42, 0xC0, 0x4A, 0xC8, 0x2B, 0xD0, 0x4B, 0x9C, 0x5F, 0x40, 0x4C, 0xA8, 0x0D, 0xD0, +0x4D, 0x7C, 0x41, 0x40, 0x4E, 0x87, 0xEF, 0xD0, 0x4F, 0x5C, 0x23, 0x40, 0x50, 0x71, 0x0C, 0x50, +0x51, 0x3C, 0x05, 0x40, 0x52, 0x50, 0xEE, 0x50, 0x53, 0x1B, 0xE7, 0x40, 0x54, 0x30, 0xD0, 0x50, +0x54, 0xFB, 0xC9, 0x40, 0x56, 0x10, 0xB2, 0x50, 0x56, 0xE4, 0xE5, 0xC0, 0x57, 0xF0, 0x94, 0x50, +0x58, 0xC4, 0xC7, 0xC0, 0x59, 0xD0, 0x76, 0x50, 0x5A, 0xA4, 0xA9, 0xC0, 0x5B, 0xB9, 0x92, 0xD0, +0x5C, 0x84, 0x8B, 0xC0, 0x5D, 0x99, 0x74, 0xD0, 0x5E, 0x64, 0x6D, 0xC0, 0x5F, 0x79, 0x56, 0xD0, +0x60, 0x4D, 0x8A, 0x40, 0x61, 0x59, 0x38, 0xD0, 0x62, 0x2D, 0x6C, 0x40, 0x63, 0x39, 0x1A, 0xD0, +0x64, 0x0D, 0x4E, 0x40, 0x65, 0x18, 0xFC, 0xD0, 0x65, 0xED, 0x30, 0x40, 0x67, 0x02, 0x19, 0x50, +0x67, 0xCD, 0x12, 0x40, 0x68, 0xE1, 0xFB, 0x50, 0x69, 0xAC, 0xF4, 0x40, 0x6A, 0xC1, 0xDD, 0x50, +0x6B, 0x96, 0x10, 0xC0, 0x6C, 0xA1, 0xBF, 0x50, 0x6D, 0x75, 0xF2, 0xC0, 0x6E, 0x81, 0xA1, 0x50, +0x6F, 0x55, 0xD4, 0xC0, 0x70, 0x6A, 0xBD, 0xD0, 0x71, 0x35, 0xB6, 0xC0, 0x72, 0x4A, 0x9F, 0xD0, +0x73, 0x15, 0x98, 0xC0, 0x74, 0x2A, 0x81, 0xD0, 0x74, 0xFE, 0xB5, 0x40, 0x76, 0x0A, 0x63, 0xD0, +0x76, 0xDE, 0x97, 0x40, 0x77, 0xEA, 0x45, 0xD0, 0x78, 0xBE, 0x79, 0x40, 0x79, 0xCA, 0x27, 0xD0, +0x7A, 0x9E, 0x5B, 0x40, 0x7B, 0xB3, 0x44, 0x50, 0x7C, 0x7E, 0x3D, 0x40, 0x7D, 0x93, 0x26, 0x50, +0x7E, 0x5E, 0x1F, 0x40, 0x7F, 0x73, 0x08, 0x50, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x06, 0x04, 0x06, +0x04, 0x06, 0x04, 0x05, 0x04, 0x06, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0xFF, 0xFF, 0xCB, 0x54, 0x00, +0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xCE, 0xC8, 0x00, 0x0A, 0xFF, 0xFF, 0xCE, +0xC8, 0x00, 0x0A, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x0A, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x0E, 0xFF, +0xFF, 0xDC, 0xD8, 0x01, 0x04, 0x4D, 0x4D, 0x54, 0x00, 0x55, 0x59, 0x48, 0x53, 0x54, 0x00, 0x55, +0x59, 0x54, 0x00, 0x55, 0x59, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x19, 0xF2, 0x00, 0xBC, 0xED, 0xE2, 0x00, 0x00, +0x00, 0x00, + +/* America/Montreal */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9C, 0xBD, 0x01, 0xF0, +0x9C, 0xE4, 0x64, 0xC0, 0x9E, 0xB8, 0x93, 0x70, 0x9F, 0xBA, 0xEB, 0x60, 0xA0, 0x87, 0x58, 0xF8, +0xA1, 0x99, 0x82, 0xE8, 0xA2, 0x94, 0x0D, 0xF8, 0xA3, 0x5F, 0x06, 0xE8, 0xA4, 0x73, 0xE8, 0xF0, +0xA5, 0x3E, 0xE8, 0xE8, 0xA6, 0x53, 0xCA, 0xF0, 0xA7, 0x1E, 0xCA, 0xE8, 0xAA, 0x2D, 0xEC, 0xF0, +0xAA, 0xDE, 0x8E, 0xE8, 0xAB, 0xFC, 0xAB, 0x70, 0xAC, 0xBE, 0x70, 0xE8, 0xAD, 0xDC, 0x8D, 0x70, +0xAE, 0x9E, 0x52, 0xE8, 0xAF, 0xBC, 0x53, 0x50, 0xB0, 0x7E, 0x11, 0xC0, 0xB1, 0x9C, 0x35, 0x50, +0xB2, 0x67, 0x2E, 0x40, 0xB3, 0x7C, 0x17, 0x50, 0xB4, 0x47, 0x10, 0x40, 0xB5, 0x5B, 0xF9, 0x50, +0xB6, 0x26, 0xF2, 0x40, 0xB7, 0x3B, 0xDB, 0x50, 0xB8, 0x06, 0xD4, 0x40, 0xB9, 0x24, 0xF7, 0xD0, +0xB9, 0xE6, 0xB6, 0x40, 0xBB, 0x04, 0xD9, 0xD0, 0xBB, 0xCF, 0xD2, 0xC0, 0xBC, 0xE4, 0xBB, 0xD0, +0xBD, 0xAF, 0xB4, 0xC0, 0xBE, 0xC4, 0x9D, 0xD0, 0xBF, 0x8F, 0x96, 0xC0, 0xC0, 0xA4, 0x7F, 0xD0, +0xC1, 0x6F, 0x78, 0xC0, 0xC2, 0x84, 0x61, 0xD0, 0xC3, 0x4F, 0x5A, 0xC0, 0xC4, 0x64, 0x43, 0xD0, +0xC5, 0x2F, 0x3C, 0xC0, 0xC6, 0x4D, 0x60, 0x50, 0xC7, 0x0F, 0x1E, 0xC0, 0xC8, 0x2D, 0x42, 0x50, +0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, 0xD3, 0x75, 0xE4, 0xF0, +0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xC6, 0xF0, 0xD6, 0x20, 0xBF, 0xE0, 0xD7, 0x35, 0xA8, 0xF0, +0xD8, 0x00, 0xA1, 0xE0, 0xD9, 0x15, 0x8A, 0xF0, 0xDA, 0x0E, 0xA8, 0x60, 0xDA, 0xFE, 0xA7, 0x70, +0xDB, 0xEE, 0x8A, 0x60, 0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, +0xDF, 0x89, 0x64, 0x60, 0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, +0xE3, 0x49, 0x28, 0x60, 0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x29, 0x0A, 0x60, 0xE6, 0x47, 0x2D, 0xF0, +0xE7, 0x12, 0x26, 0xE0, 0xE8, 0x27, 0x0F, 0xF0, 0xE9, 0x16, 0xF2, 0xE0, 0xEA, 0x06, 0xF1, 0xF0, +0xEA, 0xF6, 0xD4, 0xE0, 0xEB, 0xE6, 0xD3, 0xF0, 0xEC, 0xD6, 0xB6, 0xE0, 0xED, 0xC6, 0xB5, 0xF0, +0xEE, 0xBF, 0xD3, 0x60, 0xEF, 0xAF, 0xD2, 0x70, 0xF0, 0x9F, 0xB5, 0x60, 0xF1, 0x8F, 0xB4, 0x70, +0xF2, 0x7F, 0x97, 0x60, 0xF3, 0x6F, 0x96, 0x70, 0xF4, 0x5F, 0x79, 0x60, 0xF5, 0x4F, 0x78, 0x70, +0xF6, 0x3F, 0x5B, 0x60, 0xF7, 0x2F, 0x5A, 0x70, 0xF8, 0x28, 0x77, 0xE0, 0xF9, 0x0F, 0x3C, 0x70, +0xFA, 0x08, 0x59, 0xE0, 0xFA, 0xF8, 0x58, 0xF0, 0xFB, 0xE8, 0x3B, 0xE0, 0xFC, 0xD8, 0x3A, 0xF0, +0xFD, 0xC8, 0x1D, 0xE0, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, +0x01, 0x87, 0xE1, 0xE0, 0x02, 0x77, 0xE0, 0xF0, 0x03, 0x70, 0xFE, 0x60, 0x04, 0x60, 0xFD, 0x70, +0x05, 0x50, 0xE0, 0x60, 0x06, 0x40, 0xDF, 0x70, 0x07, 0x30, 0xC2, 0x60, 0x08, 0x20, 0xC1, 0x70, +0x09, 0x10, 0xA4, 0x60, 0x0A, 0x00, 0xA3, 0x70, 0x0A, 0xF0, 0x86, 0x60, 0x0B, 0xE0, 0x85, 0x70, +0x0C, 0xD9, 0xA2, 0xE0, 0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, 0x0F, 0xA9, 0x83, 0xF0, +0x10, 0x99, 0x66, 0xE0, 0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, 0x13, 0x69, 0x47, 0xF0, +0x14, 0x59, 0x2A, 0xE0, 0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, 0x17, 0x29, 0x0B, 0xF0, +0x18, 0x22, 0x29, 0x60, 0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, 0x1A, 0xF2, 0x0A, 0x70, +0x1B, 0xE1, 0xED, 0x60, 0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, 0x1E, 0xB1, 0xCE, 0x70, +0x1F, 0xA1, 0xB1, 0x60, 0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, 0x22, 0x55, 0xE2, 0xF0, +0x23, 0x6A, 0xAF, 0xE0, 0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, 0x26, 0x15, 0xA6, 0xF0, +0x27, 0x2A, 0x73, 0xE0, 0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, 0x29, 0xDE, 0xA5, 0x70, +0x2A, 0xEA, 0x37, 0xE0, 0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, 0x2D, 0x9E, 0x69, 0x70, +0x2E, 0xB3, 0x36, 0x60, 0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x67, 0xF0, +0x32, 0x72, 0xFA, 0x60, 0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, +0x36, 0x32, 0xBE, 0x60, 0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, 0x38, 0xE6, 0xEF, 0xF0, +0x39, 0xFB, 0xBC, 0xE0, 0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, +0x3D, 0xBB, 0x80, 0xE0, 0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, +0x41, 0x84, 0x7F, 0x60, 0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, +0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, +0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, +0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, +0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, +0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, +0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, +0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, +0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, +0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, +0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, +0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, +0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, +0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, +0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, +0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, +0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, +0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0x45, 0x44, 0x54, 0x00, +0x45, 0x53, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x45, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x01, 0x00, 0xCE, 0xC8, 0x32, 0x00, 0xA2, 0x67, 0x85, 0x00, 0x00, 0x00, 0x26, +0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x51, +0x75, 0x65, 0x62, 0x65, 0x63, 0x20, 0x2D, 0x20, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, 0x63, +0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* America/Montserrat */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x91, 0xF4, 0x35, 0x10, +0x01, 0xFF, 0xFF, 0xC5, 0xAC, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2, 0xD6, 0x32, 0x00, 0xB3, 0xB9, +0x1D, 0x00, 0x00, 0x00, 0x00, + +/* America/Nassau */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x93, 0x37, 0x42, 0x84, +0xF5, 0x4F, 0x78, 0x70, 0xF6, 0x3F, 0x5B, 0x60, 0xF7, 0x2F, 0x5A, 0x70, 0xF8, 0x28, 0x77, 0xE0, +0xF9, 0x0F, 0x3C, 0x70, 0xFA, 0x08, 0x59, 0xE0, 0xFA, 0xF8, 0x58, 0xF0, 0xFB, 0xE8, 0x3B, 0xE0, +0xFC, 0xD8, 0x3A, 0xF0, 0xFD, 0xC8, 0x1D, 0xE0, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, +0x00, 0x97, 0xFE, 0xF0, 0x01, 0x87, 0xE1, 0xE0, 0x02, 0x77, 0xE0, 0xF0, 0x03, 0x70, 0xFE, 0x60, +0x04, 0x60, 0xFD, 0x70, 0x05, 0x50, 0xE0, 0x60, 0x06, 0x40, 0xDF, 0x70, 0x07, 0x30, 0xC2, 0x60, +0x08, 0x20, 0xC1, 0x70, 0x09, 0x10, 0xA4, 0x60, 0x0A, 0x00, 0xA3, 0x70, 0x0A, 0xF0, 0x86, 0x60, +0x0B, 0xE0, 0x85, 0x70, 0x0C, 0xD9, 0xA2, 0xE0, 0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, +0x0F, 0xA9, 0x83, 0xF0, 0x10, 0x99, 0x66, 0xE0, 0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, +0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, 0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, +0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, 0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, +0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, 0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, +0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, 0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, +0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, 0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, +0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, 0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, +0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, 0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, +0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, 0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, +0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, 0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, +0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, 0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, +0x38, 0xE6, 0xEF, 0xF0, 0x39, 0xFB, 0xBC, 0xE0, 0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, +0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, 0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, +0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, 0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, +0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, +0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, +0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, +0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, +0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, +0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, +0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, +0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, +0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, +0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, +0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, +0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, +0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, +0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, +0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, +0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xB7, 0x7C, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, +0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x45, +0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAF, 0x9A, 0x6D, 0x00, 0x9C, 0xA1, +0xA8, 0x00, 0x00, 0x00, 0x00, + +/* America/New_York */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xA6, 0x1E, 0x70, +0x9F, 0xBA, 0xEB, 0x60, 0xA0, 0x86, 0x00, 0x70, 0xA1, 0x9A, 0xCD, 0x60, 0xA2, 0x65, 0xE2, 0x70, +0xA3, 0x83, 0xE9, 0xE0, 0xA4, 0x6A, 0xAE, 0x70, 0xA5, 0x35, 0xA7, 0x60, 0xA6, 0x53, 0xCA, 0xF0, +0xA7, 0x15, 0x89, 0x60, 0xA8, 0x33, 0xAC, 0xF0, 0xA8, 0xFE, 0xA5, 0xE0, 0xAA, 0x13, 0x8E, 0xF0, +0xAA, 0xDE, 0x87, 0xE0, 0xAB, 0xF3, 0x70, 0xF0, 0xAC, 0xBE, 0x69, 0xE0, 0xAD, 0xD3, 0x52, 0xF0, +0xAE, 0x9E, 0x4B, 0xE0, 0xAF, 0xB3, 0x34, 0xF0, 0xB0, 0x7E, 0x2D, 0xE0, 0xB1, 0x9C, 0x51, 0x70, +0xB2, 0x67, 0x4A, 0x60, 0xB3, 0x7C, 0x33, 0x70, 0xB4, 0x47, 0x2C, 0x60, 0xB5, 0x5C, 0x15, 0x70, +0xB6, 0x27, 0x0E, 0x60, 0xB7, 0x3B, 0xF7, 0x70, 0xB8, 0x06, 0xF0, 0x60, 0xB9, 0x1B, 0xD9, 0x70, +0xB9, 0xE6, 0xD2, 0x60, 0xBB, 0x04, 0xF5, 0xF0, 0xBB, 0xC6, 0xB4, 0x60, 0xBC, 0xE4, 0xD7, 0xF0, +0xBD, 0xAF, 0xD0, 0xE0, 0xBE, 0xC4, 0xB9, 0xF0, 0xBF, 0x8F, 0xB2, 0xE0, 0xC0, 0xA4, 0x9B, 0xF0, +0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0, 0xC4, 0x64, 0x5F, 0xF0, +0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0, 0xC8, 0x2D, 0x5E, 0x70, +0xC8, 0xF8, 0x57, 0x60, 0xCA, 0x0D, 0x40, 0x70, 0xCA, 0xD8, 0x39, 0x60, 0xCB, 0x88, 0xF0, 0x70, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, 0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, +0xD5, 0x55, 0xC6, 0xF0, 0xD6, 0x20, 0xBF, 0xE0, 0xD7, 0x35, 0xA8, 0xF0, 0xD8, 0x00, 0xA1, 0xE0, +0xD9, 0x15, 0x8A, 0xF0, 0xD9, 0xE0, 0x83, 0xE0, 0xDA, 0xFE, 0xA7, 0x70, 0xDB, 0xC0, 0x65, 0xE0, +0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, 0xDF, 0x89, 0x64, 0x60, +0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, 0xE3, 0x49, 0x28, 0x60, +0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x57, 0x2E, 0xE0, 0xE6, 0x47, 0x2D, 0xF0, 0xE7, 0x37, 0x10, 0xE0, +0xE8, 0x27, 0x0F, 0xF0, 0xE9, 0x16, 0xF2, 0xE0, 0xEA, 0x06, 0xF1, 0xF0, 0xEA, 0xF6, 0xD4, 0xE0, +0xEB, 0xE6, 0xD3, 0xF0, 0xEC, 0xD6, 0xB6, 0xE0, 0xED, 0xC6, 0xB5, 0xF0, 0xEE, 0xBF, 0xD3, 0x60, +0xEF, 0xAF, 0xD2, 0x70, 0xF0, 0x9F, 0xB5, 0x60, 0xF1, 0x8F, 0xB4, 0x70, 0xF2, 0x7F, 0x97, 0x60, +0xF3, 0x6F, 0x96, 0x70, 0xF4, 0x5F, 0x79, 0x60, 0xF5, 0x4F, 0x78, 0x70, 0xF6, 0x3F, 0x5B, 0x60, +0xF7, 0x2F, 0x5A, 0x70, 0xF8, 0x28, 0x77, 0xE0, 0xF9, 0x0F, 0x3C, 0x70, 0xFA, 0x08, 0x59, 0xE0, +0xFA, 0xF8, 0x58, 0xF0, 0xFB, 0xE8, 0x3B, 0xE0, 0xFC, 0xD8, 0x3A, 0xF0, 0xFD, 0xC8, 0x1D, 0xE0, +0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, 0x01, 0x87, 0xE1, 0xE0, +0x02, 0x77, 0xE0, 0xF0, 0x03, 0x70, 0xFE, 0x60, 0x04, 0x60, 0xFD, 0x70, 0x05, 0x50, 0xE0, 0x60, +0x06, 0x40, 0xDF, 0x70, 0x07, 0x30, 0xC2, 0x60, 0x07, 0x8D, 0x19, 0x70, 0x09, 0x10, 0xA4, 0x60, +0x09, 0xAD, 0x94, 0xF0, 0x0A, 0xF0, 0x86, 0x60, 0x0B, 0xE0, 0x85, 0x70, 0x0C, 0xD9, 0xA2, 0xE0, +0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, 0x0F, 0xA9, 0x83, 0xF0, 0x10, 0x99, 0x66, 0xE0, +0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, 0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, +0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, 0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, +0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, 0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, +0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, 0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, +0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, 0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, +0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, 0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, +0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, 0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, +0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, 0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, +0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, +0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, +0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, 0x38, 0xE6, 0xEF, 0xF0, 0x39, 0xFB, 0xBC, 0xE0, +0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, +0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, +0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, +0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, +0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, +0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, +0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, +0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, +0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, +0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, +0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, +0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, +0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, +0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, +0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, +0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, +0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, +0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, +0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0xFF, +0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0x45, 0x44, 0x54, 0x00, 0x45, +0x53, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x45, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, +0x00, 0x00, 0x01, 0x00, 0xC7, 0x74, 0x38, 0x00, 0xA1, 0xBB, 0xC1, 0x00, 0x00, 0x00, 0x0C, 0x45, +0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, + +/* America/Nipigon */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xB8, 0x93, 0x70, +0x9F, 0xBA, 0xEB, 0x60, 0xC8, 0xF8, 0x49, 0x50, 0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, +0xD2, 0x60, 0xFB, 0xE0, 0x08, 0x20, 0xC1, 0x70, 0x09, 0x10, 0xA4, 0x60, 0x0A, 0x00, 0xA3, 0x70, +0x0A, 0xF0, 0x86, 0x60, 0x0B, 0xE0, 0x85, 0x70, 0x0C, 0xD9, 0xA2, 0xE0, 0x0D, 0xC0, 0x67, 0x70, +0x0E, 0xB9, 0x84, 0xE0, 0x0F, 0xA9, 0x83, 0xF0, 0x10, 0x99, 0x66, 0xE0, 0x11, 0x89, 0x65, 0xF0, +0x12, 0x79, 0x48, 0xE0, 0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, 0x15, 0x49, 0x29, 0xF0, +0x16, 0x39, 0x0C, 0xE0, 0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, 0x19, 0x08, 0xED, 0xF0, +0x1A, 0x02, 0x0B, 0x60, 0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, 0x1C, 0xD1, 0xEC, 0x70, +0x1D, 0xC1, 0xCF, 0x60, 0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, 0x20, 0x76, 0x00, 0xF0, +0x21, 0x81, 0x93, 0x60, 0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, 0x24, 0x35, 0xC4, 0xF0, +0x25, 0x4A, 0x91, 0xE0, 0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, 0x27, 0xFE, 0xC3, 0x70, +0x29, 0x0A, 0x55, 0xE0, 0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, 0x2B, 0xBE, 0x87, 0x70, +0x2C, 0xD3, 0x54, 0x60, 0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, 0x2F, 0x7E, 0x4B, 0x70, +0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, 0x33, 0x47, 0x49, 0xF0, +0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, 0x37, 0x07, 0x0D, 0xF0, +0x38, 0x1B, 0xDA, 0xE0, 0x38, 0xE6, 0xEF, 0xF0, 0x39, 0xFB, 0xBC, 0xE0, 0x3A, 0xC6, 0xD1, 0xF0, +0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, 0x3E, 0x8F, 0xD0, 0x70, +0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, 0x42, 0x4F, 0x94, 0x70, +0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, +0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, +0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, +0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, +0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, +0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, +0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, +0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, +0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, +0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, +0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, +0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, +0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, +0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, +0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, +0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, +0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x00, +0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, +0x01, 0x0C, 0x45, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x45, 0x50, +0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xD4, 0x1F, 0x62, 0x00, 0x8B, +0xF9, 0x55, 0x00, 0x00, 0x00, 0x4B, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x69, +0x6D, 0x65, 0x20, 0x2D, 0x20, 0x4F, 0x6E, 0x74, 0x61, 0x72, 0x69, 0x6F, 0x20, 0x26, 0x20, 0x51, +0x75, 0x65, 0x62, 0x65, 0x63, 0x20, 0x2D, 0x20, 0x70, 0x6C, 0x61, 0x63, 0x65, 0x73, 0x20, 0x74, +0x68, 0x61, 0x74, 0x20, 0x64, 0x69, 0x64, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x6F, 0x62, 0x73, 0x65, +0x72, 0x76, 0x65, 0x20, 0x44, 0x53, 0x54, 0x20, 0x31, 0x39, 0x36, 0x37, 0x2D, 0x31, 0x39, 0x37, +0x33, + +/* America/Nome */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x22, 0xCB, 0x89, 0x44, 0xD0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x50, 0x40, 0xFA, 0xD2, 0x55, 0xB0, 0xFE, 0xB8, 0x71, 0x50, +0xFF, 0xA8, 0x54, 0x40, 0x00, 0x98, 0x53, 0x50, 0x01, 0x88, 0x36, 0x40, 0x02, 0x78, 0x35, 0x50, +0x03, 0x71, 0x52, 0xC0, 0x04, 0x61, 0x51, 0xD0, 0x05, 0x51, 0x34, 0xC0, 0x06, 0x41, 0x33, 0xD0, +0x07, 0x31, 0x16, 0xC0, 0x07, 0x8D, 0x6D, 0xD0, 0x09, 0x10, 0xF8, 0xC0, 0x09, 0xAD, 0xE9, 0x50, +0x0A, 0xF0, 0xDA, 0xC0, 0x0B, 0xE0, 0xD9, 0xD0, 0x0C, 0xD9, 0xF7, 0x40, 0x0D, 0xC0, 0xBB, 0xD0, +0x0E, 0xB9, 0xD9, 0x40, 0x0F, 0xA9, 0xD8, 0x50, 0x10, 0x99, 0xBB, 0x40, 0x11, 0x89, 0xBA, 0x50, +0x12, 0x79, 0x9D, 0x40, 0x13, 0x69, 0x9C, 0x50, 0x14, 0x59, 0x7F, 0x40, 0x15, 0x49, 0x7E, 0x50, +0x16, 0x39, 0x61, 0x40, 0x17, 0x29, 0x60, 0x50, 0x18, 0x22, 0x7D, 0xC0, 0x19, 0x09, 0x42, 0x50, +0x1A, 0x02, 0x5F, 0xC0, 0x1A, 0x2B, 0x14, 0x10, 0x1A, 0xF2, 0x42, 0xB0, 0x1B, 0xE2, 0x25, 0xA0, +0x1C, 0xD2, 0x24, 0xB0, 0x1D, 0xC2, 0x07, 0xA0, 0x1E, 0xB2, 0x06, 0xB0, 0x1F, 0xA1, 0xE9, 0xA0, +0x20, 0x76, 0x39, 0x30, 0x21, 0x81, 0xCB, 0xA0, 0x22, 0x56, 0x1B, 0x30, 0x23, 0x6A, 0xE8, 0x20, +0x24, 0x35, 0xFD, 0x30, 0x25, 0x4A, 0xCA, 0x20, 0x26, 0x15, 0xDF, 0x30, 0x27, 0x2A, 0xAC, 0x20, +0x27, 0xFE, 0xFB, 0xB0, 0x29, 0x0A, 0x8E, 0x20, 0x29, 0xDE, 0xDD, 0xB0, 0x2A, 0xEA, 0x70, 0x20, +0x2B, 0xBE, 0xBF, 0xB0, 0x2C, 0xD3, 0x8C, 0xA0, 0x2D, 0x9E, 0xA1, 0xB0, 0x2E, 0xB3, 0x6E, 0xA0, +0x2F, 0x7E, 0x83, 0xB0, 0x30, 0x93, 0x50, 0xA0, 0x31, 0x67, 0xA0, 0x30, 0x32, 0x73, 0x32, 0xA0, +0x33, 0x47, 0x82, 0x30, 0x34, 0x53, 0x14, 0xA0, 0x35, 0x27, 0x64, 0x30, 0x36, 0x32, 0xF6, 0xA0, +0x37, 0x07, 0x46, 0x30, 0x38, 0x1C, 0x13, 0x20, 0x38, 0xE7, 0x28, 0x30, 0x39, 0xFB, 0xF5, 0x20, +0x3A, 0xC7, 0x0A, 0x30, 0x3B, 0xDB, 0xD7, 0x20, 0x3C, 0xB0, 0x26, 0xB0, 0x3D, 0xBB, 0xB9, 0x20, +0x3E, 0x90, 0x08, 0xB0, 0x3F, 0x9B, 0x9B, 0x20, 0x40, 0x6F, 0xEA, 0xB0, 0x41, 0x84, 0xB7, 0xA0, +0x42, 0x4F, 0xCC, 0xB0, 0x43, 0x64, 0x99, 0xA0, 0x44, 0x2F, 0xAE, 0xB0, 0x45, 0x44, 0x7B, 0xA0, +0x45, 0xF3, 0xE1, 0x30, 0x47, 0x2D, 0x98, 0x20, 0x47, 0xD3, 0xC3, 0x30, 0x49, 0x0D, 0x7A, 0x20, +0x49, 0xB3, 0xA5, 0x30, 0x4A, 0xED, 0x5C, 0x20, 0x4B, 0x9C, 0xC1, 0xB0, 0x4C, 0xD6, 0x78, 0xA0, +0x4D, 0x7C, 0xA3, 0xB0, 0x4E, 0xB6, 0x5A, 0xA0, 0x4F, 0x5C, 0x85, 0xB0, 0x50, 0x96, 0x3C, 0xA0, +0x51, 0x3C, 0x67, 0xB0, 0x52, 0x76, 0x1E, 0xA0, 0x53, 0x1C, 0x49, 0xB0, 0x54, 0x56, 0x00, 0xA0, +0x54, 0xFC, 0x2B, 0xB0, 0x56, 0x35, 0xE2, 0xA0, 0x56, 0xE5, 0x48, 0x30, 0x58, 0x1E, 0xFF, 0x20, +0x58, 0xC5, 0x2A, 0x30, 0x59, 0xFE, 0xE1, 0x20, 0x5A, 0xA5, 0x0C, 0x30, 0x5B, 0xDE, 0xC3, 0x20, +0x5C, 0x84, 0xEE, 0x30, 0x5D, 0xBE, 0xA5, 0x20, 0x5E, 0x64, 0xD0, 0x30, 0x5F, 0x9E, 0x87, 0x20, +0x60, 0x4D, 0xEC, 0xB0, 0x61, 0x87, 0xA3, 0xA0, 0x62, 0x2D, 0xCE, 0xB0, 0x63, 0x67, 0x85, 0xA0, +0x64, 0x0D, 0xB0, 0xB0, 0x65, 0x47, 0x67, 0xA0, 0x65, 0xED, 0x92, 0xB0, 0x67, 0x27, 0x49, 0xA0, +0x67, 0xCD, 0x74, 0xB0, 0x69, 0x07, 0x2B, 0xA0, 0x69, 0xAD, 0x56, 0xB0, 0x6A, 0xE7, 0x0D, 0xA0, +0x6B, 0x96, 0x73, 0x30, 0x6C, 0xD0, 0x2A, 0x20, 0x6D, 0x76, 0x55, 0x30, 0x6E, 0xB0, 0x0C, 0x20, +0x6F, 0x56, 0x37, 0x30, 0x70, 0x8F, 0xEE, 0x20, 0x71, 0x36, 0x19, 0x30, 0x72, 0x6F, 0xD0, 0x20, +0x73, 0x15, 0xFB, 0x30, 0x74, 0x4F, 0xB2, 0x20, 0x74, 0xFF, 0x17, 0xB0, 0x76, 0x38, 0xCE, 0xA0, +0x76, 0xDE, 0xF9, 0xB0, 0x78, 0x18, 0xB0, 0xA0, 0x78, 0xBE, 0xDB, 0xB0, 0x79, 0xF8, 0x92, 0xA0, +0x7A, 0x9E, 0xBD, 0xB0, 0x7B, 0xD8, 0x74, 0xA0, 0x7C, 0x7E, 0x9F, 0xB0, 0x7D, 0xB8, 0x56, 0xA0, +0x7E, 0x5E, 0x81, 0xB0, 0x7F, 0x98, 0x38, 0xA0, 0x01, 0x02, 0x00, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x05, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x00, 0xFF, 0xFF, 0x73, +0x60, 0x01, 0x04, 0xFF, 0xFF, 0x73, 0x60, 0x01, 0x08, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x0C, 0xFF, +0xFF, 0x73, 0x60, 0x01, 0x10, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x14, 0xFF, 0xFF, 0x8F, 0x80, 0x01, +0x18, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x1D, 0x4E, 0x53, 0x54, 0x00, 0x4E, 0x57, 0x54, 0x00, 0x4E, +0x50, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x42, 0x44, 0x54, 0x00, 0x59, 0x53, 0x54, 0x00, 0x41, +0x4B, 0x44, 0x54, 0x00, 0x41, 0x4B, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEB, 0xBF, 0xFF, 0x00, 0x16, 0x44, +0xA1, 0x00, 0x00, 0x00, 0x19, 0x41, 0x6C, 0x61, 0x73, 0x6B, 0x61, 0x20, 0x54, 0x69, 0x6D, 0x65, +0x20, 0x2D, 0x20, 0x77, 0x65, 0x73, 0x74, 0x20, 0x41, 0x6C, 0x61, 0x73, 0x6B, 0x61, + +/* America/Noronha */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x65, 0x64, +0xB8, 0x0F, 0x3B, 0xD0, 0xB8, 0xFD, 0x32, 0x90, 0xB9, 0xF1, 0x26, 0x20, 0xBA, 0xDE, 0x66, 0x10, +0xDA, 0x38, 0xA0, 0x20, 0xDA, 0xEB, 0xEC, 0x20, 0xDC, 0x19, 0xD3, 0xA0, 0xDC, 0xB9, 0x4B, 0x10, +0xDD, 0xFB, 0x07, 0x20, 0xDE, 0x9B, 0xD0, 0x10, 0xDF, 0xDD, 0x8C, 0x20, 0xE0, 0x54, 0x25, 0x10, +0xF4, 0x97, 0xF1, 0xA0, 0xF5, 0x05, 0x50, 0x10, 0xF6, 0xC0, 0x56, 0x20, 0xF7, 0x0E, 0x10, 0x90, +0xF8, 0x51, 0x1E, 0x20, 0xF8, 0xC7, 0xB7, 0x10, 0xFA, 0x0A, 0xC4, 0xA0, 0xFA, 0xA8, 0xEA, 0x90, +0xFB, 0xEB, 0xF8, 0x20, 0xFC, 0x8B, 0x6F, 0x90, 0x1D, 0xC9, 0x80, 0x20, 0x1E, 0x78, 0xC9, 0x90, +0x1F, 0xA0, 0x27, 0xA0, 0x20, 0x33, 0xC1, 0x90, 0x21, 0x81, 0x5B, 0x20, 0x22, 0x0B, 0xBA, 0x90, +0x23, 0x58, 0x02, 0xA0, 0x23, 0xE2, 0x62, 0x10, 0x25, 0x37, 0xE4, 0xA0, 0x25, 0xD4, 0xB9, 0x10, +0x37, 0xF6, 0xB8, 0xA0, 0x38, 0xB8, 0x77, 0x10, 0x39, 0xDF, 0xD5, 0x20, 0x39, 0xE9, 0x01, 0x90, +0x3B, 0xC8, 0xF1, 0xA0, 0x3C, 0x6F, 0x00, 0x90, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, +0xFF, 0xE1, 0x9C, 0x00, 0x00, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, +0x09, 0x4C, 0x4D, 0x54, 0x00, 0x46, 0x4E, 0x53, 0x54, 0x00, 0x46, 0x4E, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x74, 0x58, 0x00, 0xE1, 0x31, 0xBD, 0x00, 0x00, 0x00, 0x10, +0x41, 0x74, 0x6C, 0x61, 0x6E, 0x74, 0x69, 0x63, 0x20, 0x69, 0x73, 0x6C, 0x61, 0x6E, 0x64, 0x73, + + +/* America/North_Dakota/Beulah */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x3A, 0x90, +0x9F, 0xBB, 0x07, 0x80, 0xA0, 0x86, 0x1C, 0x90, 0xA1, 0x9A, 0xE9, 0x80, 0xCB, 0x89, 0x0C, 0x90, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xFA, 0xF8, 0x75, 0x10, 0xFB, 0xE8, 0x58, 0x00, +0xFC, 0xD8, 0x57, 0x10, 0xFD, 0xC8, 0x3A, 0x00, 0xFE, 0xB8, 0x39, 0x10, 0xFF, 0xA8, 0x1C, 0x00, +0x00, 0x98, 0x1B, 0x10, 0x01, 0x87, 0xFE, 0x00, 0x02, 0x77, 0xFD, 0x10, 0x03, 0x71, 0x1A, 0x80, +0x04, 0x61, 0x19, 0x90, 0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90, 0x07, 0x30, 0xDE, 0x80, +0x07, 0x8D, 0x35, 0x90, 0x09, 0x10, 0xC0, 0x80, 0x09, 0xAD, 0xB1, 0x10, 0x0A, 0xF0, 0xA2, 0x80, +0x0B, 0xE0, 0xA1, 0x90, 0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x0E, 0xB9, 0xA1, 0x00, +0x0F, 0xA9, 0xA0, 0x10, 0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10, 0x12, 0x79, 0x65, 0x00, +0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, 0x16, 0x39, 0x29, 0x00, +0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, 0x1A, 0x02, 0x27, 0x80, +0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, 0x1D, 0xC1, 0xEB, 0x80, +0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, 0x21, 0x81, 0xAF, 0x80, +0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x25, 0x4A, 0xAE, 0x00, +0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x29, 0x0A, 0x72, 0x00, +0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x2C, 0xD3, 0x70, 0x80, +0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, 0x30, 0x93, 0x34, 0x80, +0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, +0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, +0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, +0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, +0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, +0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, 0x47, 0x2D, 0x7C, 0x00, +0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x4A, 0xED, 0x40, 0x00, +0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, +0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, +0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, +0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, +0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, +0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, +0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, +0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, +0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, +0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, +0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, +0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, +0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, +0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, +0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, +0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x14, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, +0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD1, 0x72, +0xD0, 0x00, 0x77, 0x5B, 0x8E, 0x00, 0x00, 0x00, 0x2B, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, +0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x4E, 0x6F, 0x72, 0x74, 0x68, 0x20, 0x44, 0x61, +0x6B, 0x6F, 0x74, 0x61, 0x20, 0x2D, 0x20, 0x4D, 0x65, 0x72, 0x63, 0x65, 0x72, 0x20, 0x43, 0x6F, +0x75, 0x6E, 0x74, 0x79, + +/* America/North_Dakota/Center */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x3A, 0x90, +0x9F, 0xBB, 0x07, 0x80, 0xA0, 0x86, 0x1C, 0x90, 0xA1, 0x9A, 0xE9, 0x80, 0xCB, 0x89, 0x0C, 0x90, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xFA, 0xF8, 0x75, 0x10, 0xFB, 0xE8, 0x58, 0x00, +0xFC, 0xD8, 0x57, 0x10, 0xFD, 0xC8, 0x3A, 0x00, 0xFE, 0xB8, 0x39, 0x10, 0xFF, 0xA8, 0x1C, 0x00, +0x00, 0x98, 0x1B, 0x10, 0x01, 0x87, 0xFE, 0x00, 0x02, 0x77, 0xFD, 0x10, 0x03, 0x71, 0x1A, 0x80, +0x04, 0x61, 0x19, 0x90, 0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90, 0x07, 0x30, 0xDE, 0x80, +0x07, 0x8D, 0x35, 0x90, 0x09, 0x10, 0xC0, 0x80, 0x09, 0xAD, 0xB1, 0x10, 0x0A, 0xF0, 0xA2, 0x80, +0x0B, 0xE0, 0xA1, 0x90, 0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x0E, 0xB9, 0xA1, 0x00, +0x0F, 0xA9, 0xA0, 0x10, 0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10, 0x12, 0x79, 0x65, 0x00, +0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, 0x16, 0x39, 0x29, 0x00, +0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, 0x1A, 0x02, 0x27, 0x80, +0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, 0x1D, 0xC1, 0xEB, 0x80, +0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, 0x21, 0x81, 0xAF, 0x80, +0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x25, 0x4A, 0xAE, 0x00, +0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x29, 0x0A, 0x72, 0x00, +0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0x95, 0x80, 0x2C, 0xD3, 0x62, 0x70, +0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x44, 0x70, 0x2F, 0x7E, 0x59, 0x80, 0x30, 0x93, 0x26, 0x70, +0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, 0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, +0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, 0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, +0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0xC6, 0xE0, 0x00, 0x3B, 0xDB, 0xAC, 0xF0, +0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, 0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x70, 0xF0, +0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, 0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, +0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, +0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, +0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, +0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, +0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, +0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, +0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, +0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, +0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, +0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, +0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, +0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, +0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, +0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, +0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, +0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, +0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, +0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x14, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, +0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD1, 0x39, +0x16, 0x00, 0x78, 0x16, 0x83, 0x00, 0x00, 0x00, 0x2B, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, +0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x4E, 0x6F, 0x72, 0x74, 0x68, 0x20, 0x44, 0x61, +0x6B, 0x6F, 0x74, 0x61, 0x20, 0x2D, 0x20, 0x4F, 0x6C, 0x69, 0x76, 0x65, 0x72, 0x20, 0x43, 0x6F, +0x75, 0x6E, 0x74, 0x79, + +/* America/North_Dakota/New_Salem */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x3A, 0x90, +0x9F, 0xBB, 0x07, 0x80, 0xA0, 0x86, 0x1C, 0x90, 0xA1, 0x9A, 0xE9, 0x80, 0xCB, 0x89, 0x0C, 0x90, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xFA, 0xF8, 0x75, 0x10, 0xFB, 0xE8, 0x58, 0x00, +0xFC, 0xD8, 0x57, 0x10, 0xFD, 0xC8, 0x3A, 0x00, 0xFE, 0xB8, 0x39, 0x10, 0xFF, 0xA8, 0x1C, 0x00, +0x00, 0x98, 0x1B, 0x10, 0x01, 0x87, 0xFE, 0x00, 0x02, 0x77, 0xFD, 0x10, 0x03, 0x71, 0x1A, 0x80, +0x04, 0x61, 0x19, 0x90, 0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90, 0x07, 0x30, 0xDE, 0x80, +0x07, 0x8D, 0x35, 0x90, 0x09, 0x10, 0xC0, 0x80, 0x09, 0xAD, 0xB1, 0x10, 0x0A, 0xF0, 0xA2, 0x80, +0x0B, 0xE0, 0xA1, 0x90, 0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x0E, 0xB9, 0xA1, 0x00, +0x0F, 0xA9, 0xA0, 0x10, 0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10, 0x12, 0x79, 0x65, 0x00, +0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, 0x16, 0x39, 0x29, 0x00, +0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, 0x1A, 0x02, 0x27, 0x80, +0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, 0x1D, 0xC1, 0xEB, 0x80, +0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, 0x21, 0x81, 0xAF, 0x80, +0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x25, 0x4A, 0xAE, 0x00, +0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x29, 0x0A, 0x72, 0x00, +0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x2C, 0xD3, 0x70, 0x80, +0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, 0x30, 0x93, 0x34, 0x80, +0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, +0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, +0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, +0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, +0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, 0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, +0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, +0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, +0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, +0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, +0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, +0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, +0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, +0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, +0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, +0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, +0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, +0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, +0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, +0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, +0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, +0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, +0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, +0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x14, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, +0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD0, 0xCF, +0x14, 0x00, 0x77, 0xEA, 0xE4, 0x00, 0x00, 0x00, 0x40, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, +0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x4E, 0x6F, 0x72, 0x74, 0x68, 0x20, 0x44, 0x61, +0x6B, 0x6F, 0x74, 0x61, 0x20, 0x2D, 0x20, 0x4D, 0x6F, 0x72, 0x74, 0x6F, 0x6E, 0x20, 0x43, 0x6F, +0x75, 0x6E, 0x74, 0x79, 0x20, 0x28, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x20, 0x4D, 0x61, 0x6E, +0x64, 0x61, 0x6E, 0x20, 0x61, 0x72, 0x65, 0x61, 0x29, + +/* America/Ojinaga */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xA5, 0xB6, 0xE8, 0x70, +0xAF, 0xF2, 0x6E, 0xE0, 0xB6, 0x66, 0x56, 0x60, 0xB7, 0x43, 0xD2, 0x60, 0xB8, 0x0C, 0x36, 0x60, +0xB8, 0xFD, 0x86, 0xF0, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, 0x33, 0x47, 0x58, 0x00, +0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, +0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xF5, 0x12, 0x90, +0x3B, 0xB6, 0xD1, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, +0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, +0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x46, 0x0F, 0x74, 0x90, +0x47, 0x24, 0x41, 0x80, 0x47, 0xF8, 0x91, 0x10, 0x49, 0x04, 0x23, 0x80, 0x49, 0xD8, 0x73, 0x10, +0x4A, 0xE4, 0x05, 0x80, 0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, +0x4E, 0xB6, 0x3E, 0x80, 0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, +0x52, 0x76, 0x02, 0x80, 0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, +0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, +0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, +0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, +0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, +0x65, 0x47, 0x4B, 0x80, 0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, +0x69, 0x07, 0x0F, 0x80, 0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, +0x6C, 0xD0, 0x0E, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, +0x70, 0x8F, 0xD2, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, +0x74, 0x4F, 0x96, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, +0x78, 0x18, 0x94, 0x80, 0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, +0x7B, 0xD8, 0x58, 0x80, 0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, +0x7F, 0x98, 0x1C, 0x80, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0xFF, 0xFF, +0x9E, 0x1C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, +0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, +0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB6, 0x71, 0xBA, 0x00, 0x73, +0x54, 0xBD, 0x00, 0x00, 0x00, 0x2B, 0x55, 0x53, 0x20, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, +0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, 0x68, +0x75, 0x61, 0x20, 0x6E, 0x65, 0x61, 0x72, 0x20, 0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, 0x64, 0x65, +0x72, + +/* America/Panama */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x8B, 0xF4, 0x61, 0xE8, +0x01, 0xFF, 0xFF, 0xB5, 0x18, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0x43, 0x4D, 0x54, +0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x02, 0xDA, 0x00, 0x99, 0x4C, +0xCA, 0x00, 0x00, 0x00, 0x00, + +/* America/Pangnirtung */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x29, 0xA3, 0xD5, 0x52, 0x80, +0xCB, 0x88, 0xE2, 0x60, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xED, 0xD0, 0xF7, 0x2F, 0x30, 0x40, +0xF8, 0x28, 0x5B, 0xC0, 0x13, 0x69, 0x39, 0xE0, 0x14, 0x59, 0x1C, 0xD0, 0x15, 0x49, 0x1B, 0xE0, +0x16, 0x38, 0xFE, 0xD0, 0x17, 0x28, 0xFD, 0xE0, 0x18, 0x22, 0x1B, 0x50, 0x19, 0x08, 0xDF, 0xE0, +0x1A, 0x01, 0xFD, 0x50, 0x1A, 0xF1, 0xFC, 0x60, 0x1B, 0xE1, 0xDF, 0x50, 0x1C, 0xD1, 0xDE, 0x60, +0x1D, 0xC1, 0xC1, 0x50, 0x1E, 0xB1, 0xC0, 0x60, 0x1F, 0xA1, 0xA3, 0x50, 0x20, 0x75, 0xF2, 0xE0, +0x21, 0x81, 0x85, 0x50, 0x22, 0x55, 0xD4, 0xE0, 0x23, 0x6A, 0xA1, 0xD0, 0x24, 0x35, 0xB6, 0xE0, +0x25, 0x4A, 0x83, 0xD0, 0x26, 0x15, 0x98, 0xE0, 0x27, 0x2A, 0x65, 0xD0, 0x27, 0xFE, 0xB5, 0x60, +0x29, 0x0A, 0x47, 0xD0, 0x29, 0xDE, 0x97, 0x60, 0x2A, 0xEA, 0x29, 0xD0, 0x2B, 0xBE, 0x79, 0x60, +0x2C, 0xD3, 0x46, 0x50, 0x2D, 0x9E, 0x5B, 0x60, 0x2E, 0xB3, 0x28, 0x50, 0x2F, 0x7E, 0x3D, 0x60, +0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, 0x33, 0x47, 0x49, 0xF0, +0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, 0x37, 0x07, 0x0D, 0xF0, +0x38, 0x1B, 0xDA, 0xE0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0xC6, 0xD1, 0xF0, +0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, 0x3E, 0x8F, 0xD0, 0x70, +0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, 0x42, 0x4F, 0x94, 0x70, +0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, +0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, +0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, +0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, +0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, +0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, +0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, +0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, +0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, +0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, +0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, +0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, +0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, +0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, +0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, +0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, +0x7F, 0x98, 0x00, 0x60, 0x03, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, +0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, +0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x08, 0x09, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, +0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0C, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x10, 0xFF, 0xFF, 0xD5, 0xD0, +0x01, 0x15, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x19, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x1D, 0xFF, 0xFF, +0xAB, 0xA0, 0x00, 0x21, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x25, 0x7A, 0x7A, 0x7A, 0x00, 0x41, 0x57, +0x54, 0x00, 0x41, 0x50, 0x54, 0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x44, 0x44, 0x54, 0x00, 0x41, +0x44, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, +0x44, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0x3D, 0x95, 0x00, 0xAE, 0x5B, 0x6A, 0x00, +0x00, 0x00, 0x23, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, +0x2D, 0x20, 0x50, 0x61, 0x6E, 0x67, 0x6E, 0x69, 0x72, 0x74, 0x75, 0x6E, 0x67, 0x2C, 0x20, 0x4E, +0x75, 0x6E, 0x61, 0x76, 0x75, 0x74, + +/* America/Paramaribo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x91, 0x05, 0x8E, 0xB8, +0xBE, 0x2A, 0x4B, 0xC4, 0xD2, 0x62, 0x2C, 0xB4, 0x0B, 0x11, 0x58, 0xB8, 0x1B, 0xBE, 0x31, 0xB8, +0x01, 0x02, 0x03, 0x04, 0x05, 0xFF, 0xFF, 0xCC, 0x48, 0x00, 0x00, 0xFF, 0xFF, 0xCC, 0x3C, 0x00, +0x04, 0xFF, 0xFF, 0xCC, 0x4C, 0x00, 0x04, 0xFF, 0xFF, 0xCE, 0xC8, 0x00, 0x08, 0xFF, 0xFF, 0xCE, +0xC8, 0x00, 0x0D, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x50, 0x4D, 0x54, +0x00, 0x4E, 0x45, 0x47, 0x54, 0x00, 0x53, 0x52, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x3A, 0xE5, 0x00, 0xBE, 0x7B, 0x05, 0x00, 0x00, +0x00, 0x00, + +/* America/Phoenix */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x9E, 0xA6, 0x3A, 0x90, +0x9F, 0xBB, 0x07, 0x80, 0xA0, 0x86, 0x1C, 0x90, 0xA1, 0x9A, 0xE9, 0x80, 0xCB, 0x89, 0x0C, 0x90, +0xCF, 0x17, 0xDF, 0x1C, 0xCF, 0x8F, 0xE5, 0xAC, 0xD0, 0x81, 0x1A, 0x1C, 0xFA, 0xF8, 0x75, 0x10, +0xFB, 0xE8, 0x58, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x01, 0xFF, 0xFF, +0xAB, 0xA0, 0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, +0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xBC, 0x5E, 0x01, 0x00, 0x67, 0xA5, 0xDA, 0x00, 0x00, 0x00, 0x20, 0x4D, 0x6F, +0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x53, 0x74, 0x61, 0x6E, 0x64, 0x61, 0x72, 0x64, 0x20, +0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x41, 0x72, 0x69, 0x7A, 0x6F, 0x6E, 0x61, + +/* America/Port-au-Prince */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x48, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D, 0x9C, 0x6E, 0x71, 0xFC, +0x19, 0x1B, 0x46, 0xD0, 0x1A, 0x01, 0xEF, 0x40, 0x1A, 0xF1, 0xEE, 0x50, 0x1B, 0xE1, 0xD1, 0x40, +0x1C, 0xD1, 0xD0, 0x50, 0x1D, 0xC1, 0xB3, 0x40, 0x1E, 0xB1, 0xB2, 0x50, 0x1F, 0xA1, 0x95, 0x40, +0x20, 0x91, 0x94, 0x50, 0x21, 0x81, 0x77, 0x40, 0x22, 0x55, 0xD4, 0xE0, 0x23, 0x6A, 0xAF, 0xE0, +0x24, 0x35, 0xB6, 0xE0, 0x25, 0x4A, 0x91, 0xE0, 0x26, 0x15, 0x98, 0xE0, 0x27, 0x2A, 0x73, 0xE0, +0x27, 0xFE, 0xB5, 0x60, 0x29, 0x0A, 0x55, 0xE0, 0x29, 0xDE, 0x97, 0x60, 0x2A, 0xEA, 0x37, 0xE0, +0x2B, 0xBE, 0x79, 0x60, 0x2C, 0xD3, 0x54, 0x60, 0x2D, 0x9E, 0x5B, 0x60, 0x2E, 0xB3, 0x36, 0x60, +0x2F, 0x7E, 0x3D, 0x60, 0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x59, 0xE0, 0x32, 0x72, 0xFA, 0x60, +0x33, 0x47, 0x3B, 0xE0, 0x34, 0x52, 0xDC, 0x60, 0x42, 0x4F, 0x78, 0x50, 0x43, 0x64, 0x45, 0x40, +0x44, 0x2F, 0x5A, 0x50, 0x45, 0x44, 0x27, 0x40, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xBC, 0x44, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, +0x05, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x09, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x05, 0xFF, 0xFF, 0xB9, +0xB0, 0x00, 0x09, 0x50, 0x50, 0x4D, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x9B, 0xD5, 0x00, 0xA4, +0x49, 0x4A, 0x00, 0x00, 0x00, 0x00, + +/* America/Porto_Acre */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0xAA, 0x86, 0x90, +0xB8, 0x0F, 0x66, 0x00, 0xB8, 0xFD, 0x5C, 0xC0, 0xB9, 0xF1, 0x50, 0x50, 0xBA, 0xDE, 0x90, 0x40, +0xDA, 0x38, 0xCA, 0x50, 0xDA, 0xEC, 0x16, 0x50, 0xDC, 0x19, 0xFD, 0xD0, 0xDC, 0xB9, 0x75, 0x40, +0xDD, 0xFB, 0x31, 0x50, 0xDE, 0x9B, 0xFA, 0x40, 0xDF, 0xDD, 0xB6, 0x50, 0xE0, 0x54, 0x4F, 0x40, +0xF4, 0x98, 0x1B, 0xD0, 0xF5, 0x05, 0x7A, 0x40, 0xF6, 0xC0, 0x80, 0x50, 0xF7, 0x0E, 0x3A, 0xC0, +0xF8, 0x51, 0x48, 0x50, 0xF8, 0xC7, 0xE1, 0x40, 0xFA, 0x0A, 0xEE, 0xD0, 0xFA, 0xA9, 0x14, 0xC0, +0xFB, 0xEC, 0x22, 0x50, 0xFC, 0x8B, 0x99, 0xC0, 0x1D, 0xC9, 0xAA, 0x50, 0x1E, 0x78, 0xF3, 0xC0, +0x1F, 0xA0, 0x51, 0xD0, 0x20, 0x33, 0xEB, 0xC0, 0x21, 0x81, 0x85, 0x50, 0x22, 0x0B, 0xE4, 0xC0, +0x48, 0x60, 0x7F, 0x50, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x03, 0xFF, 0xFF, 0xC0, 0x70, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, +0xB9, 0xB0, 0x00, 0x09, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x43, +0x53, 0x54, 0x00, 0x41, 0x43, 0x54, 0x00, 0x41, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* America/Port_of_Spain */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x93, 0x37, 0x33, 0xAC, +0x01, 0xFF, 0xFF, 0xC6, 0x54, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x94, 0x68, 0x00, 0xB4, 0xCA, +0x8D, 0x00, 0x00, 0x00, 0x00, + +/* America/Porto_Velho */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x82, 0xE8, +0xB8, 0x0F, 0x57, 0xF0, 0xB8, 0xFD, 0x4E, 0xB0, 0xB9, 0xF1, 0x42, 0x40, 0xBA, 0xDE, 0x82, 0x30, +0xDA, 0x38, 0xBC, 0x40, 0xDA, 0xEC, 0x08, 0x40, 0xDC, 0x19, 0xEF, 0xC0, 0xDC, 0xB9, 0x67, 0x30, +0xDD, 0xFB, 0x23, 0x40, 0xDE, 0x9B, 0xEC, 0x30, 0xDF, 0xDD, 0xA8, 0x40, 0xE0, 0x54, 0x41, 0x30, +0xF4, 0x98, 0x0D, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0xC0, 0x72, 0x40, 0xF7, 0x0E, 0x2C, 0xB0, +0xF8, 0x51, 0x3A, 0x40, 0xF8, 0xC7, 0xD3, 0x30, 0xFA, 0x0A, 0xE0, 0xC0, 0xFA, 0xA9, 0x06, 0xB0, +0xFB, 0xEC, 0x14, 0x40, 0xFC, 0x8B, 0x8B, 0xB0, 0x1D, 0xC9, 0x9C, 0x40, 0x1E, 0x78, 0xE5, 0xB0, +0x1F, 0xA0, 0x43, 0xC0, 0x20, 0x33, 0xDD, 0xB0, 0x21, 0x81, 0x77, 0x40, 0x22, 0x0B, 0xD6, 0xB0, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xC4, +0x18, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x09, 0x4C, +0x4D, 0x54, 0x00, 0x41, 0x4D, 0x53, 0x54, 0x00, 0x41, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7B, 0xF3, 0xC5, 0x00, 0xB1, 0x27, 0x90, 0x00, 0x00, 0x00, 0x08, 0x52, 0x6F, +0x6E, 0x64, 0x6F, 0x6E, 0x69, 0x61, + +/* America/Puerto_Rico */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xCB, 0xF6, 0x32, 0xC0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xED, 0xD0, 0x02, 0x01, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, +0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0x41, 0x53, 0x54, +0x00, 0x41, 0x50, 0x54, 0x00, 0x41, 0x57, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, +0xA5, 0x82, 0x71, 0x00, 0xAD, 0xC9, 0xCC, 0x00, 0x00, 0x00, 0x00, + +/* America/Rainy_River */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xB8, 0xA1, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xC8, 0xF8, 0x57, 0x60, 0xCB, 0x88, 0xFE, 0x80, 0xD2, 0x23, 0xF4, 0x70, +0xD2, 0x61, 0x09, 0xF0, 0x08, 0x20, 0xCF, 0x80, 0x09, 0x10, 0xB2, 0x70, 0x0A, 0x00, 0xB1, 0x80, +0x0A, 0xF0, 0x94, 0x70, 0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xB0, 0xF0, 0x0D, 0xC0, 0x75, 0x80, +0x0E, 0xB9, 0x92, 0xF0, 0x0F, 0xA9, 0x92, 0x00, 0x10, 0x99, 0x74, 0xF0, 0x11, 0x89, 0x74, 0x00, +0x12, 0x79, 0x56, 0xF0, 0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, 0x15, 0x49, 0x38, 0x00, +0x16, 0x39, 0x1A, 0xF0, 0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, 0x19, 0x08, 0xFC, 0x00, +0x1A, 0x02, 0x19, 0x70, 0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, 0x1C, 0xD1, 0xFA, 0x80, +0x1D, 0xC1, 0xDD, 0x70, 0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, 0x20, 0x76, 0x0F, 0x00, +0x21, 0x81, 0xA1, 0x70, 0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x24, 0x35, 0xD3, 0x00, +0x25, 0x4A, 0x9F, 0xF0, 0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x27, 0xFE, 0xD1, 0x80, +0x29, 0x0A, 0x63, 0xF0, 0x29, 0xDE, 0xB3, 0x80, 0x2A, 0xEA, 0x45, 0xF0, 0x2B, 0xBE, 0x95, 0x80, +0x2C, 0xD3, 0x62, 0x70, 0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x44, 0x70, 0x2F, 0x7E, 0x59, 0x80, +0x30, 0x93, 0x26, 0x70, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, 0x33, 0x47, 0x58, 0x00, +0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, 0x37, 0x07, 0x1C, 0x00, +0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0xC6, 0xE0, 0x00, +0x3B, 0xDB, 0xAC, 0xF0, 0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, 0x3E, 0x8F, 0xDE, 0x80, +0x3F, 0x9B, 0x70, 0xF0, 0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, 0x42, 0x4F, 0xA2, 0x80, +0x43, 0x64, 0x6F, 0x70, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, +0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, +0x4A, 0xED, 0x31, 0xF0, 0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, +0x4E, 0xB6, 0x30, 0x70, 0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, +0x52, 0x75, 0xF4, 0x70, 0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, +0x56, 0x35, 0xB8, 0x70, 0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, +0x59, 0xFE, 0xB6, 0xF0, 0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, +0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, +0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, +0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, +0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, +0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, +0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, +0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, +0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, +0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, +0x7F, 0x98, 0x0E, 0x70, 0x00, 0x01, 0x00, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, +0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, +0x01, 0x0C, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, +0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xD3, 0xAA, 0x32, 0x00, 0x82, +0x5C, 0x65, 0x00, 0x00, 0x00, 0x32, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x54, 0x69, +0x6D, 0x65, 0x20, 0x2D, 0x20, 0x52, 0x61, 0x69, 0x6E, 0x79, 0x20, 0x52, 0x69, 0x76, 0x65, 0x72, +0x20, 0x26, 0x20, 0x46, 0x6F, 0x72, 0x74, 0x20, 0x46, 0x72, 0x61, 0x6E, 0x63, 0x65, 0x73, 0x2C, +0x20, 0x4F, 0x6E, 0x74, 0x61, 0x72, 0x69, 0x6F, + +/* America/Rankin_Inlet */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xE7, 0x8C, 0x6E, 0x00, +0xF7, 0x2F, 0x4C, 0x60, 0xF8, 0x28, 0x77, 0xE0, 0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, +0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x1A, 0xF0, 0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, +0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x19, 0x70, 0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, +0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xDD, 0x70, 0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, +0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70, 0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, +0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0, 0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, +0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0, 0x29, 0xDE, 0xB3, 0x80, 0x2A, 0xEA, 0x45, 0xF0, +0x2B, 0xBE, 0x95, 0x80, 0x2C, 0xD3, 0x62, 0x70, 0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x44, 0x70, +0x2F, 0x7E, 0x59, 0x80, 0x30, 0x93, 0x26, 0x70, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, +0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, +0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, +0x3A, 0xC6, 0xE0, 0x00, 0x3B, 0xDB, 0xAC, 0xF0, 0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, +0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x70, 0xF0, 0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, +0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, +0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, +0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, +0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, 0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, +0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, 0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, +0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, 0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, +0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, +0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, +0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, +0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, +0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, +0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, +0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, +0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, +0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, +0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, +0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, +0x09, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0D, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x11, 0x7A, 0x7A, 0x7A, +0x00, 0x43, 0x44, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x45, 0x53, +0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE9, 0x2E, 0x02, +0x00, 0x86, 0x26, 0x8E, 0x00, 0x00, 0x00, 0x1E, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, +0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x63, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x4E, +0x75, 0x6E, 0x61, 0x76, 0x75, 0x74, + +/* America/Recife */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x67, 0xB8, +0xB8, 0x0F, 0x49, 0xE0, 0xB8, 0xFD, 0x40, 0xA0, 0xB9, 0xF1, 0x34, 0x30, 0xBA, 0xDE, 0x74, 0x20, +0xDA, 0x38, 0xAE, 0x30, 0xDA, 0xEB, 0xFA, 0x30, 0xDC, 0x19, 0xE1, 0xB0, 0xDC, 0xB9, 0x59, 0x20, +0xDD, 0xFB, 0x15, 0x30, 0xDE, 0x9B, 0xDE, 0x20, 0xDF, 0xDD, 0x9A, 0x30, 0xE0, 0x54, 0x33, 0x20, +0xF4, 0x97, 0xFF, 0xB0, 0xF5, 0x05, 0x5E, 0x20, 0xF6, 0xC0, 0x64, 0x30, 0xF7, 0x0E, 0x1E, 0xA0, +0xF8, 0x51, 0x2C, 0x30, 0xF8, 0xC7, 0xC5, 0x20, 0xFA, 0x0A, 0xD2, 0xB0, 0xFA, 0xA8, 0xF8, 0xA0, +0xFB, 0xEC, 0x06, 0x30, 0xFC, 0x8B, 0x7D, 0xA0, 0x1D, 0xC9, 0x8E, 0x30, 0x1E, 0x78, 0xD7, 0xA0, +0x1F, 0xA0, 0x35, 0xB0, 0x20, 0x33, 0xCF, 0xA0, 0x21, 0x81, 0x69, 0x30, 0x22, 0x0B, 0xC8, 0xA0, +0x23, 0x58, 0x10, 0xB0, 0x23, 0xE2, 0x70, 0x20, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xD4, 0xC7, 0x20, +0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xB8, 0x85, 0x20, 0x39, 0xDF, 0xE3, 0x30, 0x39, 0xE9, 0x0F, 0xA0, +0x3B, 0xC8, 0xFF, 0xB0, 0x3C, 0x6F, 0x0E, 0xA0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, +0xFF, 0xDF, 0x48, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, +0x09, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x52, 0x53, 0x54, 0x00, 0x42, 0x52, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0x0B, 0xB8, 0x00, 0xDD, 0x67, 0xB0, 0x00, 0x00, 0x00, 0x0A, +0x50, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x62, 0x75, 0x63, 0x6F, + +/* America/Regina */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x86, 0xFD, 0x93, 0x1C, +0x9E, 0xB8, 0xAF, 0x90, 0x9F, 0xBB, 0x07, 0x80, 0xB5, 0x65, 0x4F, 0xF0, 0xB6, 0x30, 0x48, 0xE0, +0xB7, 0x45, 0x31, 0xF0, 0xB8, 0x10, 0x2A, 0xE0, 0xB9, 0x25, 0x13, 0xF0, 0xB9, 0xF0, 0x0C, 0xE0, +0xBB, 0x0E, 0x30, 0x70, 0xBB, 0xCF, 0xEE, 0xE0, 0xBC, 0xEE, 0x12, 0x70, 0xBD, 0xB9, 0x0B, 0x60, +0xC2, 0x72, 0x08, 0xF0, 0xC3, 0x61, 0xEB, 0xE0, 0xC4, 0x51, 0xEA, 0xF0, 0xC5, 0x38, 0x93, 0x60, +0xC6, 0x31, 0xCC, 0xF0, 0xC7, 0x21, 0xAF, 0xE0, 0xC8, 0x1A, 0xE9, 0x70, 0xC9, 0x0A, 0xCC, 0x60, +0xC9, 0xFA, 0xCB, 0x70, 0xCA, 0xEA, 0xAE, 0x60, 0xCB, 0x89, 0x0C, 0x90, 0xD2, 0x23, 0xF4, 0x70, +0xD2, 0x61, 0x18, 0x00, 0xD3, 0x63, 0x8C, 0x10, 0xD4, 0x53, 0x6F, 0x00, 0xD5, 0x55, 0xE3, 0x10, +0xD6, 0x20, 0xDC, 0x00, 0xD7, 0x35, 0xC5, 0x10, 0xD8, 0x00, 0xBE, 0x00, 0xD9, 0x15, 0xA7, 0x10, +0xD9, 0xE0, 0xA0, 0x00, 0xDA, 0xFE, 0xC3, 0x90, 0xDB, 0xC0, 0x82, 0x00, 0xDC, 0xDE, 0xA5, 0x90, +0xDD, 0xA9, 0x9E, 0x80, 0xDE, 0xBE, 0x87, 0x90, 0xDF, 0x89, 0x80, 0x80, 0xE0, 0x9E, 0x69, 0x90, +0xE1, 0x69, 0x62, 0x80, 0xE2, 0x7E, 0x4B, 0x90, 0xE3, 0x49, 0x44, 0x80, 0xE4, 0x5E, 0x2D, 0x90, +0xE5, 0x29, 0x26, 0x80, 0xE6, 0x47, 0x4A, 0x10, 0xE7, 0x12, 0x43, 0x00, 0xE8, 0x27, 0x2C, 0x10, +0xE8, 0xF2, 0x25, 0x00, 0xEB, 0xE6, 0xF0, 0x10, 0xEC, 0xD6, 0xD3, 0x00, 0xED, 0xC6, 0xD2, 0x10, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x05, 0xFF, 0xFF, 0x9D, 0xE4, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, +0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xAB, +0xA0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x44, 0x54, +0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x43, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xD6, 0x3B, +0xC0, 0x00, 0x72, 0xF9, 0x97, 0x00, 0x00, 0x00, 0x35, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, +0x20, 0x53, 0x74, 0x61, 0x6E, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, +0x20, 0x53, 0x61, 0x73, 0x6B, 0x61, 0x74, 0x63, 0x68, 0x65, 0x77, 0x61, 0x6E, 0x20, 0x2D, 0x20, +0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* America/Resolute */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xD5, 0xFB, 0x81, 0x80, +0xF7, 0x2F, 0x4C, 0x60, 0xF8, 0x28, 0x77, 0xE0, 0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, +0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x1A, 0xF0, 0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, +0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x19, 0x70, 0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, +0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xDD, 0x70, 0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, +0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70, 0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, +0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0, 0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, +0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0, 0x29, 0xDE, 0xB3, 0x80, 0x2A, 0xEA, 0x45, 0xF0, +0x2B, 0xBE, 0x95, 0x80, 0x2C, 0xD3, 0x62, 0x70, 0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x44, 0x70, +0x2F, 0x7E, 0x59, 0x80, 0x30, 0x93, 0x26, 0x70, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, +0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, +0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, +0x3A, 0xC6, 0xE0, 0x00, 0x3B, 0xDB, 0xAC, 0xF0, 0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, +0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x70, 0xF0, 0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, +0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, +0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, +0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, +0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, 0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, +0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, 0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, +0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, 0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, +0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, +0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, +0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, +0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, +0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, +0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, +0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, +0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, +0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, +0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, +0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, +0x09, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0D, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x11, 0x7A, 0x7A, 0x7A, +0x00, 0x43, 0x44, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x45, 0x53, +0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x4E, 0x33, +0x00, 0x81, 0xF5, 0xDB, 0x00, 0x00, 0x00, 0x29, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, +0x53, 0x74, 0x61, 0x6E, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, +0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x65, 0x2C, 0x20, 0x4E, 0x75, 0x6E, 0x61, 0x76, 0x75, +0x74, + +/* America/Rio_Branco */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0xAA, 0x86, 0x90, +0xB8, 0x0F, 0x66, 0x00, 0xB8, 0xFD, 0x5C, 0xC0, 0xB9, 0xF1, 0x50, 0x50, 0xBA, 0xDE, 0x90, 0x40, +0xDA, 0x38, 0xCA, 0x50, 0xDA, 0xEC, 0x16, 0x50, 0xDC, 0x19, 0xFD, 0xD0, 0xDC, 0xB9, 0x75, 0x40, +0xDD, 0xFB, 0x31, 0x50, 0xDE, 0x9B, 0xFA, 0x40, 0xDF, 0xDD, 0xB6, 0x50, 0xE0, 0x54, 0x4F, 0x40, +0xF4, 0x98, 0x1B, 0xD0, 0xF5, 0x05, 0x7A, 0x40, 0xF6, 0xC0, 0x80, 0x50, 0xF7, 0x0E, 0x3A, 0xC0, +0xF8, 0x51, 0x48, 0x50, 0xF8, 0xC7, 0xE1, 0x40, 0xFA, 0x0A, 0xEE, 0xD0, 0xFA, 0xA9, 0x14, 0xC0, +0xFB, 0xEC, 0x22, 0x50, 0xFC, 0x8B, 0x99, 0xC0, 0x1D, 0xC9, 0xAA, 0x50, 0x1E, 0x78, 0xF3, 0xC0, +0x1F, 0xA0, 0x51, 0xD0, 0x20, 0x33, 0xEB, 0xC0, 0x21, 0x81, 0x85, 0x50, 0x22, 0x0B, 0xE4, 0xC0, +0x48, 0x60, 0x7F, 0x50, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x03, 0xFF, 0xFF, 0xC0, 0x70, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, +0xB9, 0xB0, 0x00, 0x09, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x43, +0x53, 0x54, 0x00, 0x41, 0x43, 0x54, 0x00, 0x41, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x7A, 0x1F, 0x05, 0x00, 0xAB, 0x34, 0x20, 0x00, 0x00, 0x00, 0x04, 0x41, +0x63, 0x72, 0x65, + +/* America/Rosario */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0xA2, 0x92, 0x8F, 0x30, +0xB6, 0x7B, 0x52, 0x40, 0xB7, 0x1A, 0xC9, 0xB0, 0xB8, 0x1E, 0x8F, 0x40, 0xB8, 0xD4, 0x70, 0x30, +0xBA, 0x17, 0x7D, 0xC0, 0xBA, 0xB5, 0xA3, 0xB0, 0xBB, 0xF8, 0xB1, 0x40, 0xBC, 0x96, 0xD7, 0x30, +0xBD, 0xD9, 0xE4, 0xC0, 0xBE, 0x78, 0x0A, 0xB0, 0xBF, 0xBB, 0x18, 0x40, 0xC0, 0x5A, 0x8F, 0xB0, +0xC1, 0x9D, 0x9D, 0x40, 0xC2, 0x3B, 0xC3, 0x30, 0xC3, 0x7E, 0xD0, 0xC0, 0xC4, 0x1C, 0xF6, 0xB0, +0xC5, 0x60, 0x04, 0x40, 0xC5, 0xFE, 0x2A, 0x30, 0xC7, 0x41, 0x37, 0xC0, 0xC7, 0xE0, 0xAF, 0x30, +0xC8, 0x81, 0x94, 0x40, 0xCA, 0x4D, 0xA1, 0xB0, 0xCA, 0xEE, 0x86, 0xC0, 0xCE, 0x4D, 0xFF, 0x30, +0xCE, 0xB0, 0xED, 0xC0, 0xD3, 0x29, 0x35, 0xB0, 0xD4, 0x43, 0x64, 0xC0, 0xF4, 0x3D, 0x08, 0x30, +0xF4, 0x9F, 0xF6, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0x32, 0x10, 0x40, 0xF6, 0xE6, 0x9F, 0xB0, +0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, 0xFA, 0xD3, 0x36, 0xB0, +0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, 0xFE, 0x9C, 0x35, 0x30, +0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, 0x23, 0x94, 0xB5, 0xB0, +0x24, 0x10, 0x94, 0xA0, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xF0, 0x76, 0xA0, 0x27, 0x21, 0x0F, 0x30, +0x27, 0xD0, 0x58, 0xA0, 0x29, 0x00, 0xFF, 0x40, 0x29, 0xB0, 0x3A, 0xA0, 0x2A, 0xE0, 0xD3, 0x30, +0x2B, 0x99, 0x57, 0x20, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xBF, 0x2A, 0xB0, 0x47, 0x77, 0x09, 0xB0, +0x47, 0xDC, 0x7F, 0x20, 0x48, 0xFA, 0xA2, 0xB0, 0x49, 0xBC, 0x61, 0x20, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, +0x03, 0x04, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0xFF, 0xFF, 0xC3, 0xD0, 0x00, 0x00, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x43, 0x4D, 0x54, 0x00, +0x41, 0x52, 0x54, 0x00, 0x41, 0x52, 0x53, 0x54, 0x00, 0x57, 0x41, 0x52, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* America/Santa_Isabel */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0xA5, 0xB6, 0xF6, 0x80, +0xA9, 0x79, 0x4F, 0x70, 0xAF, 0xF2, 0x7C, 0xF0, 0xB6, 0x66, 0x64, 0x70, 0xB7, 0x1B, 0x10, 0x00, +0xB8, 0x0A, 0xF2, 0xF0, 0xCB, 0xEA, 0x8D, 0x80, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x99, 0xBA, 0x70, +0xD7, 0x1B, 0x59, 0x00, 0xD8, 0x91, 0xB4, 0xF0, 0xE2, 0x7E, 0x59, 0xA0, 0xE3, 0x49, 0x52, 0x90, +0xE4, 0x5E, 0x3B, 0xA0, 0xE5, 0x29, 0x34, 0x90, 0xE6, 0x47, 0x58, 0x20, 0xE7, 0x12, 0x51, 0x10, +0xE8, 0x27, 0x3A, 0x20, 0xE8, 0xF2, 0x33, 0x10, 0xEA, 0x07, 0x1C, 0x20, 0xEA, 0xD2, 0x15, 0x10, +0xEB, 0xE6, 0xFE, 0x20, 0xEC, 0xB1, 0xF7, 0x10, 0xED, 0xC6, 0xE0, 0x20, 0xEE, 0x91, 0xD9, 0x10, +0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, +0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x73, 0x10, +0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, +0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, +0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, 0x1D, 0xC1, 0xF9, 0x90, +0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20, 0x21, 0x81, 0xBD, 0x90, +0x22, 0x56, 0x0D, 0x20, 0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20, 0x25, 0x4A, 0xBC, 0x10, +0x26, 0x15, 0xD1, 0x20, 0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0, 0x29, 0x0A, 0x80, 0x10, +0x29, 0xDE, 0xCF, 0xA0, 0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0, 0x2C, 0xD3, 0x7E, 0x90, +0x2D, 0x9E, 0x93, 0xA0, 0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0, 0x30, 0x93, 0x42, 0x90, +0x31, 0x67, 0x92, 0x20, 0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20, 0x34, 0x53, 0x06, 0x90, +0x35, 0x27, 0x56, 0x20, 0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20, 0x38, 0x1C, 0x05, 0x10, +0x38, 0xE7, 0x1A, 0x20, 0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20, 0x3B, 0xDB, 0xC9, 0x10, +0x3C, 0xB0, 0x18, 0xA0, 0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0, 0x3F, 0x9B, 0x8D, 0x10, +0x40, 0x6F, 0xDC, 0xA0, 0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0, 0x43, 0x64, 0x8B, 0x90, +0x44, 0x2F, 0xA0, 0xA0, 0x45, 0x44, 0x6D, 0x90, 0x46, 0x0F, 0x82, 0xA0, 0x47, 0x24, 0x4F, 0x90, +0x47, 0xF8, 0x9F, 0x20, 0x49, 0x04, 0x31, 0x90, 0x49, 0xD8, 0x81, 0x20, 0x4A, 0xE4, 0x13, 0x90, +0x4B, 0xB8, 0x63, 0x20, 0x4C, 0xCD, 0x30, 0x10, 0x4D, 0x98, 0x45, 0x20, 0x4E, 0xAD, 0x12, 0x10, +0x4F, 0x78, 0x27, 0x20, 0x50, 0x8C, 0xF4, 0x10, 0x51, 0x61, 0x43, 0xA0, 0x52, 0x6C, 0xD6, 0x10, +0x53, 0x41, 0x25, 0xA0, 0x54, 0x4C, 0xB8, 0x10, 0x55, 0x21, 0x07, 0xA0, 0x56, 0x2C, 0x9A, 0x10, +0x57, 0x00, 0xE9, 0xA0, 0x58, 0x15, 0xB6, 0x90, 0x58, 0xE0, 0xCB, 0xA0, 0x59, 0xF5, 0x98, 0x90, +0x5A, 0xC0, 0xAD, 0xA0, 0x5B, 0xD5, 0x7A, 0x90, 0x5C, 0xA9, 0xCA, 0x20, 0x5D, 0xB5, 0x5C, 0x90, +0x5E, 0x89, 0xAC, 0x20, 0x5F, 0x95, 0x3E, 0x90, 0x60, 0x69, 0x8E, 0x20, 0x61, 0x7E, 0x5B, 0x10, +0x62, 0x49, 0x70, 0x20, 0x63, 0x5E, 0x3D, 0x10, 0x64, 0x29, 0x52, 0x20, 0x65, 0x3E, 0x1F, 0x10, +0x66, 0x12, 0x6E, 0xA0, 0x67, 0x1E, 0x01, 0x10, 0x67, 0xF2, 0x50, 0xA0, 0x68, 0xFD, 0xE3, 0x10, +0x69, 0xD2, 0x32, 0xA0, 0x6A, 0xDD, 0xC5, 0x10, 0x6B, 0xB2, 0x14, 0xA0, 0x6C, 0xC6, 0xE1, 0x90, +0x6D, 0x91, 0xF6, 0xA0, 0x6E, 0xA6, 0xC3, 0x90, 0x6F, 0x71, 0xD8, 0xA0, 0x70, 0x86, 0xA5, 0x90, +0x71, 0x5A, 0xF5, 0x20, 0x72, 0x66, 0x87, 0x90, 0x73, 0x3A, 0xD7, 0x20, 0x74, 0x46, 0x69, 0x90, +0x75, 0x1A, 0xB9, 0x20, 0x76, 0x2F, 0x86, 0x10, 0x76, 0xFA, 0x9B, 0x20, 0x78, 0x0F, 0x68, 0x10, +0x78, 0xDA, 0x7D, 0x20, 0x79, 0xEF, 0x4A, 0x10, 0x7A, 0xBA, 0x5F, 0x20, 0x7B, 0xCF, 0x2C, 0x10, +0x7C, 0xA3, 0x7B, 0xA0, 0x7D, 0xAF, 0x0E, 0x10, 0x7E, 0x83, 0x5D, 0xA0, 0x7F, 0x8E, 0xF0, 0x10, +0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x04, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0xFF, 0xFF, 0x94, 0x50, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, +0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, +0x90, 0x01, 0x10, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, +0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xB7, 0x90, +0x30, 0x00, 0x63, 0x62, 0xB5, 0x00, 0x00, 0x00, 0x3A, 0x4D, 0x65, 0x78, 0x69, 0x63, 0x61, 0x6E, +0x20, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, +0x42, 0x61, 0x6A, 0x61, 0x20, 0x43, 0x61, 0x6C, 0x69, 0x66, 0x6F, 0x72, 0x6E, 0x69, 0x61, 0x20, +0x61, 0x77, 0x61, 0x79, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, +0x64, 0x65, 0x72, + +/* America/Santarem */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0xAA, 0x7A, 0x48, +0xB8, 0x0F, 0x57, 0xF0, 0xB8, 0xFD, 0x4E, 0xB0, 0xB9, 0xF1, 0x42, 0x40, 0xBA, 0xDE, 0x82, 0x30, +0xDA, 0x38, 0xBC, 0x40, 0xDA, 0xEC, 0x08, 0x40, 0xDC, 0x19, 0xEF, 0xC0, 0xDC, 0xB9, 0x67, 0x30, +0xDD, 0xFB, 0x23, 0x40, 0xDE, 0x9B, 0xEC, 0x30, 0xDF, 0xDD, 0xA8, 0x40, 0xE0, 0x54, 0x41, 0x30, +0xF4, 0x98, 0x0D, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0xC0, 0x72, 0x40, 0xF7, 0x0E, 0x2C, 0xB0, +0xF8, 0x51, 0x3A, 0x40, 0xF8, 0xC7, 0xD3, 0x30, 0xFA, 0x0A, 0xE0, 0xC0, 0xFA, 0xA9, 0x06, 0xB0, +0xFB, 0xEC, 0x14, 0x40, 0xFC, 0x8B, 0x8B, 0xB0, 0x1D, 0xC9, 0x9C, 0x40, 0x1E, 0x78, 0xE5, 0xB0, +0x1F, 0xA0, 0x43, 0xC0, 0x20, 0x33, 0xDD, 0xB0, 0x21, 0x81, 0x77, 0x40, 0x22, 0x0B, 0xD6, 0xB0, +0x48, 0x60, 0x71, 0x40, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x03, 0xFF, 0xFF, 0xCC, 0xB8, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x09, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x4D, +0x53, 0x54, 0x00, 0x41, 0x4D, 0x54, 0x00, 0x42, 0x52, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x85, 0x9D, 0xBA, 0x00, 0xBE, 0xF0, 0x35, 0x00, 0x00, 0x00, 0x06, 0x57, +0x20, 0x50, 0x61, 0x72, 0x61, + +/* America/Santiago */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0D, 0x8F, 0x24, 0x69, 0xC6, +0x9B, 0x5C, 0xE5, 0x50, 0x9F, 0x71, 0x05, 0x46, 0xA1, 0x00, 0x71, 0xC0, 0xB0, 0x5E, 0x77, 0xC6, +0xB1, 0x77, 0x3D, 0x40, 0xB2, 0x41, 0x00, 0xD0, 0xB3, 0x58, 0x70, 0xC0, 0xB4, 0x22, 0x34, 0x50, +0xB5, 0x39, 0xA4, 0x40, 0xB6, 0x03, 0x67, 0xD0, 0xB7, 0x1A, 0xD7, 0xC0, 0xB7, 0xE4, 0x9B, 0x50, +0xB8, 0xFD, 0x5C, 0xC0, 0xB9, 0xC7, 0x20, 0x50, 0xCC, 0x1C, 0x6E, 0x40, 0xCC, 0x6C, 0xE7, 0xD0, +0xD4, 0x1B, 0xC9, 0xB0, 0xD5, 0x76, 0xA0, 0x50, 0xFD, 0xD1, 0x3C, 0x40, 0xFE, 0x92, 0xFA, 0xB0, +0xFF, 0xCC, 0xCD, 0xC0, 0x00, 0x72, 0xDC, 0xB0, 0x01, 0x75, 0x50, 0xC0, 0x02, 0x40, 0x49, 0xB0, +0x03, 0x55, 0x32, 0xC0, 0x04, 0x20, 0x2B, 0xB0, 0x05, 0x3E, 0x4F, 0x40, 0x06, 0x00, 0x0D, 0xB0, +0x07, 0x0B, 0xBC, 0x40, 0x07, 0xDF, 0xEF, 0xB0, 0x08, 0xFE, 0x13, 0x40, 0x09, 0xBF, 0xD1, 0xB0, +0x0A, 0xDD, 0xF5, 0x40, 0x0B, 0xA8, 0xEE, 0x30, 0x0C, 0xBD, 0xD7, 0x40, 0x0D, 0x88, 0xD0, 0x30, +0x0E, 0x9D, 0xB9, 0x40, 0x0F, 0x68, 0xB2, 0x30, 0x10, 0x86, 0xD5, 0xC0, 0x11, 0x48, 0x94, 0x30, +0x12, 0x66, 0xB7, 0xC0, 0x13, 0x28, 0x76, 0x30, 0x14, 0x46, 0x99, 0xC0, 0x15, 0x11, 0x92, 0xB0, +0x16, 0x26, 0x7B, 0xC0, 0x16, 0xF1, 0x74, 0xB0, 0x18, 0x06, 0x5D, 0xC0, 0x18, 0xD1, 0x56, 0xB0, +0x19, 0xE6, 0x3F, 0xC0, 0x1A, 0xB1, 0x38, 0xB0, 0x1B, 0xCF, 0x5C, 0x40, 0x1C, 0x91, 0x1A, 0xB0, +0x1D, 0xAF, 0x3E, 0x40, 0x1E, 0x70, 0xFC, 0xB0, 0x1F, 0x8F, 0x20, 0x40, 0x20, 0x7F, 0x03, 0x30, +0x21, 0x6F, 0x02, 0x40, 0x22, 0x39, 0xFB, 0x30, 0x23, 0x45, 0xA9, 0xC0, 0x24, 0x19, 0xDD, 0x30, +0x25, 0x38, 0x00, 0xC0, 0x26, 0x02, 0xF9, 0xB0, 0x26, 0xF2, 0xF8, 0xC0, 0x27, 0xD9, 0xA1, 0x30, +0x28, 0xF7, 0xC4, 0xC0, 0x29, 0xC2, 0xBD, 0xB0, 0x2A, 0xD7, 0xA6, 0xC0, 0x2B, 0xA2, 0x9F, 0xB0, +0x2C, 0xB7, 0x88, 0xC0, 0x2D, 0x82, 0x81, 0xB0, 0x2E, 0x97, 0x6A, 0xC0, 0x2F, 0x62, 0x63, 0xB0, +0x30, 0x80, 0x87, 0x40, 0x31, 0x42, 0x45, 0xB0, 0x32, 0x60, 0x69, 0x40, 0x33, 0x3D, 0xD7, 0x30, +0x34, 0x40, 0x4B, 0x40, 0x35, 0x0B, 0x44, 0x30, 0x36, 0x0D, 0xB8, 0x40, 0x37, 0x06, 0xD5, 0xB0, +0x38, 0x00, 0x0F, 0x40, 0x38, 0xCB, 0x08, 0x30, 0x39, 0xE9, 0x2B, 0xC0, 0x3A, 0xAA, 0xEA, 0x30, +0x3B, 0xC9, 0x0D, 0xC0, 0x3C, 0x8A, 0xCC, 0x30, 0x3D, 0xA8, 0xEF, 0xC0, 0x3E, 0x6A, 0xAE, 0x30, +0x3F, 0x88, 0xD1, 0xC0, 0x40, 0x53, 0xCA, 0xB0, 0x41, 0x68, 0xB3, 0xC0, 0x42, 0x33, 0xAC, 0xB0, +0x43, 0x48, 0x95, 0xC0, 0x44, 0x13, 0x8E, 0xB0, 0x45, 0x31, 0xB2, 0x40, 0x45, 0xF3, 0x70, 0xB0, +0x47, 0x11, 0x94, 0x40, 0x47, 0xEF, 0x02, 0x30, 0x48, 0xF1, 0x76, 0x40, 0x49, 0xBC, 0x6F, 0x30, +0x4A, 0xD1, 0x58, 0x40, 0x4B, 0xB8, 0x00, 0xB0, 0x4C, 0xB1, 0x3A, 0x40, 0x4D, 0xC6, 0x07, 0x30, +0x4E, 0x50, 0x82, 0xC0, 0x4F, 0x9C, 0xAE, 0xB0, 0x50, 0x42, 0xD9, 0xC0, 0x51, 0x3B, 0xF7, 0x30, +0x52, 0x5A, 0x1A, 0xC0, 0x53, 0x1B, 0xD9, 0x30, 0x54, 0x39, 0xFC, 0xC0, 0x55, 0x04, 0xF5, 0xB0, +0x56, 0x19, 0xDE, 0xC0, 0x56, 0xE4, 0xD7, 0xB0, 0x57, 0xF9, 0xC0, 0xC0, 0x58, 0xC4, 0xB9, 0xB0, +0x59, 0xE2, 0xDD, 0x40, 0x5A, 0xA4, 0x9B, 0xB0, 0x5B, 0xC2, 0xBF, 0x40, 0x5C, 0x84, 0x7D, 0xB0, +0x5D, 0xA2, 0xA1, 0x40, 0x5E, 0x6D, 0x9A, 0x30, 0x5F, 0x82, 0x83, 0x40, 0x60, 0x4D, 0x7C, 0x30, +0x61, 0x62, 0x65, 0x40, 0x62, 0x2D, 0x5E, 0x30, 0x63, 0x42, 0x47, 0x40, 0x64, 0x0D, 0x40, 0x30, +0x65, 0x2B, 0x63, 0xC0, 0x65, 0xED, 0x22, 0x30, 0x67, 0x0B, 0x45, 0xC0, 0x67, 0xCD, 0x04, 0x30, +0x68, 0xEB, 0x27, 0xC0, 0x69, 0xB6, 0x20, 0xB0, 0x6A, 0xCB, 0x09, 0xC0, 0x6B, 0x96, 0x02, 0xB0, +0x6C, 0xAA, 0xEB, 0xC0, 0x6D, 0x75, 0xE4, 0xB0, 0x6E, 0x94, 0x08, 0x40, 0x6F, 0x55, 0xC6, 0xB0, +0x70, 0x73, 0xEA, 0x40, 0x71, 0x35, 0xA8, 0xB0, 0x72, 0x53, 0xCC, 0x40, 0x73, 0x15, 0x8A, 0xB0, +0x74, 0x33, 0xAE, 0x40, 0x74, 0xFE, 0xA7, 0x30, 0x76, 0x13, 0x90, 0x40, 0x76, 0xDE, 0x89, 0x30, +0x77, 0xF3, 0x72, 0x40, 0x78, 0xBE, 0x6B, 0x30, 0x79, 0xDC, 0x8E, 0xC0, 0x7A, 0x9E, 0x4D, 0x30, +0x7B, 0xBC, 0x70, 0xC0, 0x7C, 0x7E, 0x2F, 0x30, 0x7D, 0x9C, 0x52, 0xC0, 0x7E, 0x67, 0x4B, 0xB0, +0x7F, 0x7C, 0x34, 0xC0, 0x01, 0x00, 0x02, 0x00, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, +0x03, 0x01, 0x03, 0x04, 0x05, 0x04, 0x02, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0xFF, 0xFF, 0xBD, 0xBA, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, +0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, +0x00, 0x04, 0x53, 0x4D, 0x54, 0x00, 0x43, 0x4C, 0x54, 0x00, 0x43, 0x4C, 0x53, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, +0x56, 0x49, 0xD8, 0x00, 0xA6, 0xD4, 0x55, 0x00, 0x00, 0x00, 0x0E, 0x6D, 0x6F, 0x73, 0x74, 0x20, +0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* America/Santo_Domingo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x44, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x16, 0xBA, 0xDF, 0x42, 0x60, +0xFA, 0x08, 0x4B, 0xD0, 0xFA, 0xA7, 0xC3, 0x40, 0xFF, 0xA7, 0xF1, 0xD0, 0x00, 0x43, 0x7B, 0xC8, +0x01, 0x87, 0xD3, 0xD0, 0x01, 0xFA, 0x7F, 0x48, 0x03, 0x70, 0xF0, 0x50, 0x03, 0xDD, 0x04, 0x48, +0x05, 0x50, 0xD2, 0x50, 0x05, 0xBF, 0x89, 0x48, 0x07, 0x30, 0xB4, 0x50, 0x07, 0xA0, 0xBC, 0xC8, +0x09, 0x10, 0x96, 0x50, 0x39, 0xFB, 0xBC, 0xE0, 0x3A, 0x29, 0xE1, 0x60, 0x02, 0x01, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x02, 0x04, 0xFF, 0xFF, 0xBE, 0x60, +0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x05, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x09, 0xFF, 0xFF, +0xC0, 0xB8, 0x01, 0x0D, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x12, 0x53, 0x44, 0x4D, 0x54, 0x00, 0x45, +0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x48, 0x44, 0x54, 0x00, 0x41, 0x53, 0x54, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x81, 0xCA, 0x00, 0xA7, +0xFF, 0xD0, 0x00, 0x00, 0x00, 0x00, + +/* America/Sao_Paulo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x72, 0xB4, +0xB8, 0x0F, 0x49, 0xE0, 0xB8, 0xFD, 0x40, 0xA0, 0xB9, 0xF1, 0x34, 0x30, 0xBA, 0xDE, 0x74, 0x20, +0xDA, 0x38, 0xAE, 0x30, 0xDA, 0xEB, 0xFA, 0x30, 0xDC, 0x19, 0xE1, 0xB0, 0xDC, 0xB9, 0x59, 0x20, +0xDD, 0xFB, 0x15, 0x30, 0xDE, 0x9B, 0xDE, 0x20, 0xDF, 0xDD, 0x9A, 0x30, 0xE0, 0x54, 0x33, 0x20, +0xF4, 0x5A, 0x09, 0x30, 0xF5, 0x05, 0x5E, 0x20, 0xF6, 0xC0, 0x64, 0x30, 0xF7, 0x0E, 0x1E, 0xA0, +0xF8, 0x51, 0x2C, 0x30, 0xF8, 0xC7, 0xC5, 0x20, 0xFA, 0x0A, 0xD2, 0xB0, 0xFA, 0xA8, 0xF8, 0xA0, +0xFB, 0xEC, 0x06, 0x30, 0xFC, 0x8B, 0x7D, 0xA0, 0x1D, 0xC9, 0x8E, 0x30, 0x1E, 0x78, 0xD7, 0xA0, +0x1F, 0xA0, 0x35, 0xB0, 0x20, 0x33, 0xCF, 0xA0, 0x21, 0x81, 0x69, 0x30, 0x22, 0x0B, 0xC8, 0xA0, +0x23, 0x58, 0x10, 0xB0, 0x23, 0xE2, 0x70, 0x20, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xD4, 0xC7, 0x20, +0x27, 0x21, 0x0F, 0x30, 0x27, 0xBD, 0xE3, 0xA0, 0x29, 0x00, 0xF1, 0x30, 0x29, 0x94, 0x8B, 0x20, +0x2A, 0xEA, 0x0D, 0xB0, 0x2B, 0x6B, 0x32, 0xA0, 0x2C, 0xC0, 0xB5, 0x30, 0x2D, 0x66, 0xC4, 0x20, +0x2E, 0xA0, 0x97, 0x30, 0x2F, 0x46, 0xA6, 0x20, 0x30, 0x80, 0x79, 0x30, 0x31, 0x1D, 0x4D, 0xA0, +0x32, 0x57, 0x20, 0xB0, 0x33, 0x06, 0x6A, 0x20, 0x34, 0x38, 0x54, 0x30, 0x34, 0xF8, 0xC1, 0x20, +0x36, 0x20, 0x1F, 0x30, 0x36, 0xCF, 0x68, 0xA0, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xB8, 0x85, 0x20, +0x39, 0xDF, 0xE3, 0x30, 0x3A, 0x8F, 0x2C, 0xA0, 0x3B, 0xC8, 0xFF, 0xB0, 0x3C, 0x6F, 0x0E, 0xA0, +0x3D, 0xC4, 0x91, 0x30, 0x3E, 0x4E, 0xF0, 0xA0, 0x3F, 0x91, 0xFE, 0x30, 0x40, 0x2E, 0xD2, 0xA0, +0x41, 0x86, 0xF8, 0x30, 0x42, 0x17, 0xEF, 0x20, 0x43, 0x51, 0xC2, 0x30, 0x43, 0xF7, 0xD1, 0x20, +0x45, 0x4D, 0x53, 0xB0, 0x45, 0xE0, 0xED, 0xA0, 0x47, 0x11, 0x86, 0x30, 0x47, 0xB7, 0x95, 0x20, +0x48, 0xFA, 0xA2, 0xB0, 0x49, 0x97, 0x77, 0x20, 0x4A, 0xDA, 0x84, 0xB0, 0x4B, 0x80, 0x93, 0xA0, +0x4C, 0xBA, 0x66, 0xB0, 0x4D, 0x60, 0x75, 0xA0, 0x4E, 0x9A, 0x48, 0xB0, 0x4F, 0x49, 0x92, 0x20, +0x50, 0x83, 0x65, 0x30, 0x51, 0x20, 0x39, 0xA0, 0x52, 0x63, 0x47, 0x30, 0x53, 0x00, 0x1B, 0xA0, +0x54, 0x43, 0x29, 0x30, 0x54, 0xE9, 0x38, 0x20, 0x56, 0x23, 0x0B, 0x30, 0x56, 0xC9, 0x1A, 0x20, +0x58, 0x02, 0xED, 0x30, 0x58, 0xA8, 0xFC, 0x20, 0x59, 0xE2, 0xCF, 0x30, 0x5A, 0x88, 0xDE, 0x20, +0x5B, 0xCB, 0xEB, 0xB0, 0x5C, 0x68, 0xC0, 0x20, 0x5D, 0xAB, 0xCD, 0xB0, 0x5E, 0x48, 0xA2, 0x20, +0x5F, 0x8B, 0xAF, 0xB0, 0x60, 0x31, 0xBE, 0xA0, 0x61, 0x6B, 0x91, 0xB0, 0x62, 0x11, 0xA0, 0xA0, +0x63, 0x4B, 0x73, 0xB0, 0x63, 0xFA, 0xBD, 0x20, 0x65, 0x2B, 0x55, 0xB0, 0x65, 0xD1, 0x64, 0xA0, +0x67, 0x14, 0x72, 0x30, 0x67, 0xB1, 0x46, 0xA0, 0x68, 0xF4, 0x54, 0x30, 0x69, 0x9A, 0x63, 0x20, +0x6A, 0xD4, 0x36, 0x30, 0x6B, 0x7A, 0x45, 0x20, 0x6C, 0xB4, 0x18, 0x30, 0x6D, 0x5A, 0x27, 0x20, +0x6E, 0x93, 0xFA, 0x30, 0x6F, 0x3A, 0x09, 0x20, 0x70, 0x7D, 0x16, 0xB0, 0x71, 0x19, 0xEB, 0x20, +0x72, 0x5C, 0xF8, 0xB0, 0x72, 0xF9, 0xCD, 0x20, 0x74, 0x3C, 0xDA, 0xB0, 0x74, 0xD9, 0xAF, 0x20, +0x76, 0x1C, 0xBC, 0xB0, 0x76, 0xC2, 0xCB, 0xA0, 0x77, 0xFC, 0x9E, 0xB0, 0x78, 0xAB, 0xE8, 0x20, +0x79, 0xDC, 0x80, 0xB0, 0x7A, 0x82, 0x8F, 0xA0, 0x7B, 0xC5, 0x9D, 0x30, 0x7C, 0x62, 0x71, 0xA0, +0x7D, 0xA5, 0x7F, 0x30, 0x7E, 0x4B, 0x8E, 0x20, 0x7F, 0x85, 0x61, 0x30, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xD4, 0x4C, +0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x09, 0x4C, 0x4D, +0x54, 0x00, 0x42, 0x52, 0x53, 0x54, 0x00, 0x42, 0x52, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x65, 0x6B, 0x8A, 0x00, 0xCB, 0x86, 0xDD, 0x00, 0x00, 0x00, 0x32, 0x53, 0x20, 0x26, +0x20, 0x53, 0x45, 0x20, 0x42, 0x72, 0x61, 0x7A, 0x69, 0x6C, 0x20, 0x28, 0x47, 0x4F, 0x2C, 0x20, +0x44, 0x46, 0x2C, 0x20, 0x4D, 0x47, 0x2C, 0x20, 0x45, 0x53, 0x2C, 0x20, 0x52, 0x4A, 0x2C, 0x20, +0x53, 0x50, 0x2C, 0x20, 0x50, 0x52, 0x2C, 0x20, 0x53, 0x43, 0x2C, 0x20, 0x52, 0x53, 0x29, + +/* America/Scoresbysund */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x16, 0x9B, 0x80, 0x4C, 0x18, +0x13, 0x4D, 0x6E, 0x40, 0x14, 0x34, 0x24, 0xC0, 0x15, 0x23, 0xF9, 0xA0, 0x16, 0x13, 0xDC, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x01, 0x02, 0x03, 0x06, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xEB, 0x68, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, +0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0xFF, 0xFF, 0xF1, +0xF0, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x4C, +0x4D, 0x54, 0x00, 0x43, 0x47, 0x54, 0x00, 0x43, 0x47, 0x53, 0x54, 0x00, 0x45, 0x47, 0x54, 0x00, +0x45, 0x47, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x01, 0x01, 0x00, 0x00, 0xF4, 0xE0, 0xCD, 0x00, 0xF1, 0x23, 0xC5, 0x00, 0x00, 0x00, 0x1F, 0x53, +0x63, 0x6F, 0x72, 0x65, 0x73, 0x62, 0x79, 0x73, 0x75, 0x6E, 0x64, 0x20, 0x2F, 0x20, 0x49, 0x74, +0x74, 0x6F, 0x71, 0x71, 0x6F, 0x72, 0x74, 0x6F, 0x6F, 0x72, 0x6D, 0x69, 0x69, 0x74, + +/* America/Shiprock */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xA6, 0x3A, 0x90, +0x9F, 0xBB, 0x07, 0x80, 0xA0, 0x86, 0x1C, 0x90, 0xA1, 0x9A, 0xE9, 0x80, 0xA2, 0x65, 0xFE, 0x90, +0xA3, 0x84, 0x06, 0x00, 0xA4, 0x45, 0xE0, 0x90, 0xA4, 0x8F, 0xA6, 0x80, 0xCB, 0x89, 0x0C, 0x90, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xF7, 0x2F, 0x76, 0x90, 0xF8, 0x28, 0x94, 0x00, +0xF9, 0x0F, 0x58, 0x90, 0xFA, 0x08, 0x76, 0x00, 0xFA, 0xF8, 0x75, 0x10, 0xFB, 0xE8, 0x58, 0x00, +0xFC, 0xD8, 0x57, 0x10, 0xFD, 0xC8, 0x3A, 0x00, 0xFE, 0xB8, 0x39, 0x10, 0xFF, 0xA8, 0x1C, 0x00, +0x00, 0x98, 0x1B, 0x10, 0x01, 0x87, 0xFE, 0x00, 0x02, 0x77, 0xFD, 0x10, 0x03, 0x71, 0x1A, 0x80, +0x04, 0x61, 0x19, 0x90, 0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90, 0x07, 0x30, 0xDE, 0x80, +0x07, 0x8D, 0x35, 0x90, 0x09, 0x10, 0xC0, 0x80, 0x09, 0xAD, 0xB1, 0x10, 0x0A, 0xF0, 0xA2, 0x80, +0x0B, 0xE0, 0xA1, 0x90, 0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x0E, 0xB9, 0xA1, 0x00, +0x0F, 0xA9, 0xA0, 0x10, 0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10, 0x12, 0x79, 0x65, 0x00, +0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, 0x16, 0x39, 0x29, 0x00, +0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, 0x1A, 0x02, 0x27, 0x80, +0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, 0x1D, 0xC1, 0xEB, 0x80, +0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, 0x21, 0x81, 0xAF, 0x80, +0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x25, 0x4A, 0xAE, 0x00, +0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x29, 0x0A, 0x72, 0x00, +0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x2C, 0xD3, 0x70, 0x80, +0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, 0x30, 0x93, 0x34, 0x80, +0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, +0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, +0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, +0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, +0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, +0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, 0x47, 0x2D, 0x7C, 0x00, +0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x4A, 0xED, 0x40, 0x00, +0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, 0x4E, 0xB6, 0x3E, 0x80, +0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, 0x52, 0x76, 0x02, 0x80, +0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, 0x56, 0x35, 0xC6, 0x80, +0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x59, 0xFE, 0xC5, 0x00, +0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x5D, 0xBE, 0x89, 0x00, +0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x61, 0x87, 0x87, 0x80, +0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80, +0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80, +0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00, +0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00, +0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00, +0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80, +0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80, +0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xAB, +0xA0, 0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, +0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, +0x00, 0x4D, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC1, 0x75, +0x9B, 0x00, 0x6C, 0xD0, 0xE1, 0x00, 0x00, 0x00, 0x16, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, +0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x4E, 0x61, 0x76, 0x61, 0x6A, 0x6F, + +/* America/Sitka */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x22, 0xCB, 0x89, 0x1A, 0xA0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x26, 0x10, 0xFE, 0xB8, 0x47, 0x20, 0xFF, 0xA8, 0x2A, 0x10, +0x00, 0x98, 0x29, 0x20, 0x01, 0x88, 0x0C, 0x10, 0x02, 0x78, 0x0B, 0x20, 0x03, 0x71, 0x28, 0x90, +0x04, 0x61, 0x27, 0xA0, 0x05, 0x51, 0x0A, 0x90, 0x06, 0x41, 0x09, 0xA0, 0x07, 0x30, 0xEC, 0x90, +0x07, 0x8D, 0x43, 0xA0, 0x09, 0x10, 0xCE, 0x90, 0x09, 0xAD, 0xBF, 0x20, 0x0A, 0xF0, 0xB0, 0x90, +0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, +0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x73, 0x10, +0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, +0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, +0x1A, 0x2B, 0x14, 0x10, 0x1A, 0xF2, 0x42, 0xB0, 0x1B, 0xE2, 0x25, 0xA0, 0x1C, 0xD2, 0x24, 0xB0, +0x1D, 0xC2, 0x07, 0xA0, 0x1E, 0xB2, 0x06, 0xB0, 0x1F, 0xA1, 0xE9, 0xA0, 0x20, 0x76, 0x39, 0x30, +0x21, 0x81, 0xCB, 0xA0, 0x22, 0x56, 0x1B, 0x30, 0x23, 0x6A, 0xE8, 0x20, 0x24, 0x35, 0xFD, 0x30, +0x25, 0x4A, 0xCA, 0x20, 0x26, 0x15, 0xDF, 0x30, 0x27, 0x2A, 0xAC, 0x20, 0x27, 0xFE, 0xFB, 0xB0, +0x29, 0x0A, 0x8E, 0x20, 0x29, 0xDE, 0xDD, 0xB0, 0x2A, 0xEA, 0x70, 0x20, 0x2B, 0xBE, 0xBF, 0xB0, +0x2C, 0xD3, 0x8C, 0xA0, 0x2D, 0x9E, 0xA1, 0xB0, 0x2E, 0xB3, 0x6E, 0xA0, 0x2F, 0x7E, 0x83, 0xB0, +0x30, 0x93, 0x50, 0xA0, 0x31, 0x67, 0xA0, 0x30, 0x32, 0x73, 0x32, 0xA0, 0x33, 0x47, 0x82, 0x30, +0x34, 0x53, 0x14, 0xA0, 0x35, 0x27, 0x64, 0x30, 0x36, 0x32, 0xF6, 0xA0, 0x37, 0x07, 0x46, 0x30, +0x38, 0x1C, 0x13, 0x20, 0x38, 0xE7, 0x28, 0x30, 0x39, 0xFB, 0xF5, 0x20, 0x3A, 0xC7, 0x0A, 0x30, +0x3B, 0xDB, 0xD7, 0x20, 0x3C, 0xB0, 0x26, 0xB0, 0x3D, 0xBB, 0xB9, 0x20, 0x3E, 0x90, 0x08, 0xB0, +0x3F, 0x9B, 0x9B, 0x20, 0x40, 0x6F, 0xEA, 0xB0, 0x41, 0x84, 0xB7, 0xA0, 0x42, 0x4F, 0xCC, 0xB0, +0x43, 0x64, 0x99, 0xA0, 0x44, 0x2F, 0xAE, 0xB0, 0x45, 0x44, 0x7B, 0xA0, 0x45, 0xF3, 0xE1, 0x30, +0x47, 0x2D, 0x98, 0x20, 0x47, 0xD3, 0xC3, 0x30, 0x49, 0x0D, 0x7A, 0x20, 0x49, 0xB3, 0xA5, 0x30, +0x4A, 0xED, 0x5C, 0x20, 0x4B, 0x9C, 0xC1, 0xB0, 0x4C, 0xD6, 0x78, 0xA0, 0x4D, 0x7C, 0xA3, 0xB0, +0x4E, 0xB6, 0x5A, 0xA0, 0x4F, 0x5C, 0x85, 0xB0, 0x50, 0x96, 0x3C, 0xA0, 0x51, 0x3C, 0x67, 0xB0, +0x52, 0x76, 0x1E, 0xA0, 0x53, 0x1C, 0x49, 0xB0, 0x54, 0x56, 0x00, 0xA0, 0x54, 0xFC, 0x2B, 0xB0, +0x56, 0x35, 0xE2, 0xA0, 0x56, 0xE5, 0x48, 0x30, 0x58, 0x1E, 0xFF, 0x20, 0x58, 0xC5, 0x2A, 0x30, +0x59, 0xFE, 0xE1, 0x20, 0x5A, 0xA5, 0x0C, 0x30, 0x5B, 0xDE, 0xC3, 0x20, 0x5C, 0x84, 0xEE, 0x30, +0x5D, 0xBE, 0xA5, 0x20, 0x5E, 0x64, 0xD0, 0x30, 0x5F, 0x9E, 0x87, 0x20, 0x60, 0x4D, 0xEC, 0xB0, +0x61, 0x87, 0xA3, 0xA0, 0x62, 0x2D, 0xCE, 0xB0, 0x63, 0x67, 0x85, 0xA0, 0x64, 0x0D, 0xB0, 0xB0, +0x65, 0x47, 0x67, 0xA0, 0x65, 0xED, 0x92, 0xB0, 0x67, 0x27, 0x49, 0xA0, 0x67, 0xCD, 0x74, 0xB0, +0x69, 0x07, 0x2B, 0xA0, 0x69, 0xAD, 0x56, 0xB0, 0x6A, 0xE7, 0x0D, 0xA0, 0x6B, 0x96, 0x73, 0x30, +0x6C, 0xD0, 0x2A, 0x20, 0x6D, 0x76, 0x55, 0x30, 0x6E, 0xB0, 0x0C, 0x20, 0x6F, 0x56, 0x37, 0x30, +0x70, 0x8F, 0xEE, 0x20, 0x71, 0x36, 0x19, 0x30, 0x72, 0x6F, 0xD0, 0x20, 0x73, 0x15, 0xFB, 0x30, +0x74, 0x4F, 0xB2, 0x20, 0x74, 0xFF, 0x17, 0xB0, 0x76, 0x38, 0xCE, 0xA0, 0x76, 0xDE, 0xF9, 0xB0, +0x78, 0x18, 0xB0, 0xA0, 0x78, 0xBE, 0xDB, 0xB0, 0x79, 0xF8, 0x92, 0xA0, 0x7A, 0x9E, 0xBD, 0xB0, +0x7B, 0xD8, 0x74, 0xA0, 0x7C, 0x7E, 0x9F, 0xB0, 0x7D, 0xB8, 0x56, 0xA0, 0x7E, 0x5E, 0x81, 0xB0, +0x7F, 0x98, 0x38, 0xA0, 0x01, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, +0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, +0x00, 0x03, 0x00, 0x03, 0x04, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x04, 0xFF, 0xFF, +0x9D, 0x90, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x10, +0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x14, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x18, 0xFF, 0xFF, 0x81, 0x70, +0x00, 0x1D, 0x50, 0x53, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, 0x00, 0x50, 0x44, +0x54, 0x00, 0x59, 0x53, 0x54, 0x00, 0x59, 0x44, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00, 0x41, +0x4B, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x92, 0xC6, 0x00, 0x44, 0x34, 0x2D, 0x00, 0x00, 0x00, 0x28, +0x41, 0x6C, 0x61, 0x73, 0x6B, 0x61, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x73, 0x6F, +0x75, 0x74, 0x68, 0x65, 0x61, 0x73, 0x74, 0x20, 0x41, 0x6C, 0x61, 0x73, 0x6B, 0x61, 0x20, 0x70, +0x61, 0x6E, 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, + +/* America/St_Barthelemy */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x91, 0xD5, 0xE1, 0xB0, +0x01, 0xFF, 0xFF, 0xC6, 0x50, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x9D, 0xED, 0x00, 0xB2, 0xC1, +0xB8, 0x00, 0x00, 0x00, 0x00, + +/* America/St_Johns */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xEE, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x9C, 0xCF, 0x62, 0x0C, +0x9D, 0xA4, 0xE6, 0xFC, 0x9E, 0xB8, 0x7E, 0x8C, 0x9F, 0xBA, 0xD6, 0x7C, 0xA0, 0xB6, 0x88, 0xDC, +0xA1, 0x38, 0xFF, 0x4C, 0xA2, 0x95, 0x19, 0x5C, 0xA3, 0x84, 0xFC, 0x4C, 0xA4, 0x74, 0xFB, 0x5C, +0xA5, 0x64, 0xDE, 0x4C, 0xA6, 0x5E, 0x17, 0xDC, 0xA7, 0x44, 0xC0, 0x4C, 0xA8, 0x3D, 0xF9, 0xDC, +0xA9, 0x24, 0xA2, 0x4C, 0xAA, 0x1D, 0xDB, 0xDC, 0xAB, 0x04, 0x84, 0x4C, 0xAB, 0xFD, 0xBD, 0xDC, +0xAC, 0xE4, 0x66, 0x4C, 0xAD, 0xDD, 0x9F, 0xDC, 0xAE, 0xCD, 0x82, 0xCC, 0xAF, 0xBD, 0x81, 0xDC, +0xB0, 0xAD, 0x64, 0xCC, 0xB1, 0xA6, 0x9E, 0x5C, 0xB2, 0x8D, 0x46, 0xCC, 0xB3, 0x86, 0x80, 0x5C, +0xB4, 0x6D, 0x28, 0xCC, 0xB5, 0x66, 0x62, 0x5C, 0xB6, 0x4D, 0x0A, 0xCC, 0xB7, 0x46, 0x44, 0x5C, +0xB8, 0x2C, 0xEC, 0xCC, 0xB9, 0x26, 0x26, 0x5C, 0xBA, 0x16, 0x09, 0x4C, 0xBB, 0x0F, 0x42, 0xDC, +0xBB, 0xF5, 0xEB, 0x4C, 0xBC, 0xEF, 0x24, 0xDC, 0xBD, 0xD5, 0xCD, 0x4C, 0xBE, 0x9E, 0x4D, 0x6C, +0xBE, 0xCF, 0x06, 0xA8, 0xBF, 0xB5, 0xAF, 0x18, 0xC0, 0xB8, 0x31, 0x38, 0xC1, 0x79, 0xEF, 0xA8, +0xC2, 0x98, 0x13, 0x38, 0xC3, 0x59, 0xD1, 0xA8, 0xC4, 0x77, 0xF5, 0x38, 0xC5, 0x39, 0xB3, 0xA8, +0xC6, 0x61, 0x11, 0xB8, 0xC7, 0x19, 0x95, 0xA8, 0xC8, 0x40, 0xF3, 0xB8, 0xC9, 0x02, 0xB2, 0x28, +0xCA, 0x20, 0xD5, 0xB8, 0xCA, 0xE2, 0x94, 0x28, 0xCC, 0x00, 0xB7, 0xB8, 0xD2, 0x23, 0xF4, 0x70, +0xD2, 0x60, 0xE6, 0xC8, 0xD3, 0x88, 0x44, 0xD8, 0xD4, 0x4A, 0x03, 0x48, 0xD5, 0x68, 0x26, 0xD8, +0xD6, 0x29, 0xE5, 0x48, 0xD7, 0x48, 0x08, 0xD8, 0xD8, 0x09, 0xC7, 0x48, 0xD9, 0x27, 0xEA, 0xD8, +0xD9, 0xE9, 0xA9, 0x48, 0xDB, 0x11, 0x07, 0x58, 0xDB, 0xD2, 0xC5, 0xC8, 0xDC, 0xDE, 0x74, 0x58, +0xDD, 0xA9, 0x6D, 0x48, 0xDE, 0xBE, 0x56, 0x58, 0xDF, 0x89, 0x4F, 0x48, 0xE0, 0x9E, 0x38, 0x58, +0xE1, 0x69, 0x31, 0x48, 0xE2, 0x7E, 0x1A, 0x58, 0xE3, 0x49, 0x13, 0x48, 0xE4, 0x5D, 0xFC, 0x58, +0xE5, 0x28, 0xF5, 0x48, 0xE6, 0x47, 0x18, 0xD8, 0xE7, 0x12, 0x11, 0xC8, 0xE8, 0x26, 0xFA, 0xD8, +0xE8, 0xF1, 0xF3, 0xC8, 0xEA, 0x06, 0xDC, 0xD8, 0xEA, 0xD1, 0xD5, 0xC8, 0xEB, 0xE6, 0xBE, 0xD8, +0xEC, 0xB1, 0xB7, 0xC8, 0xED, 0xC6, 0xA0, 0xD8, 0xEE, 0xBF, 0xBE, 0x48, 0xEF, 0xAF, 0xBD, 0x58, +0xF0, 0x9F, 0xA0, 0x48, 0xF1, 0x8F, 0x9F, 0x58, 0xF2, 0x7F, 0x82, 0x48, 0xF3, 0x6F, 0x81, 0x58, +0xF4, 0x5F, 0x64, 0x48, 0xF5, 0x4F, 0x63, 0x58, 0xF6, 0x3F, 0x46, 0x48, 0xF7, 0x2F, 0x45, 0x58, +0xF8, 0x28, 0x62, 0xC8, 0xF9, 0x0F, 0x27, 0x58, 0xFA, 0x08, 0x44, 0xC8, 0xFA, 0xF8, 0x43, 0xD8, +0xFB, 0xE8, 0x26, 0xC8, 0xFC, 0xD8, 0x25, 0xD8, 0xFD, 0xC8, 0x08, 0xC8, 0xFE, 0xB8, 0x07, 0xD8, +0xFF, 0xA7, 0xEA, 0xC8, 0x00, 0x97, 0xE9, 0xD8, 0x01, 0x87, 0xCC, 0xC8, 0x02, 0x77, 0xCB, 0xD8, +0x03, 0x70, 0xE9, 0x48, 0x04, 0x60, 0xE8, 0x58, 0x05, 0x50, 0xCB, 0x48, 0x06, 0x40, 0xCA, 0x58, +0x07, 0x30, 0xAD, 0x48, 0x08, 0x20, 0xAC, 0x58, 0x09, 0x10, 0x8F, 0x48, 0x0A, 0x00, 0x8E, 0x58, +0x0A, 0xF0, 0x71, 0x48, 0x0B, 0xE0, 0x70, 0x58, 0x0C, 0xD9, 0x8D, 0xC8, 0x0D, 0xC0, 0x52, 0x58, +0x0E, 0xB9, 0x6F, 0xC8, 0x0F, 0xA9, 0x6E, 0xD8, 0x10, 0x99, 0x51, 0xC8, 0x11, 0x89, 0x50, 0xD8, +0x12, 0x79, 0x33, 0xC8, 0x13, 0x69, 0x32, 0xD8, 0x14, 0x59, 0x15, 0xC8, 0x15, 0x49, 0x14, 0xD8, +0x16, 0x38, 0xF7, 0xC8, 0x17, 0x28, 0xF6, 0xD8, 0x18, 0x22, 0x14, 0x48, 0x19, 0x08, 0xD8, 0xD8, +0x1A, 0x01, 0xF6, 0x48, 0x1A, 0xF1, 0xF5, 0x58, 0x1B, 0xE1, 0xD8, 0x48, 0x1C, 0xD1, 0xD7, 0x58, +0x1D, 0xC1, 0xBA, 0x48, 0x1E, 0xB1, 0xB9, 0x58, 0x1F, 0xA1, 0x9C, 0x48, 0x20, 0x75, 0xCF, 0xF4, +0x21, 0x81, 0x62, 0x64, 0x22, 0x55, 0xB1, 0xF4, 0x23, 0x6A, 0x70, 0xD4, 0x24, 0x35, 0x93, 0xF4, +0x25, 0x4A, 0x60, 0xE4, 0x26, 0x15, 0x75, 0xF4, 0x27, 0x2A, 0x42, 0xE4, 0x27, 0xFE, 0x92, 0x74, +0x29, 0x0A, 0x24, 0xE4, 0x29, 0xDE, 0x74, 0x74, 0x2A, 0xEA, 0x06, 0xE4, 0x2B, 0xBE, 0x56, 0x74, +0x2C, 0xD3, 0x23, 0x64, 0x2D, 0x9E, 0x38, 0x74, 0x2E, 0xB3, 0x05, 0x64, 0x2F, 0x7E, 0x1A, 0x74, +0x30, 0x92, 0xE7, 0x64, 0x31, 0x67, 0x36, 0xF4, 0x32, 0x72, 0xC9, 0x64, 0x33, 0x47, 0x18, 0xF4, +0x34, 0x52, 0xAB, 0x64, 0x35, 0x26, 0xFA, 0xF4, 0x36, 0x32, 0x8D, 0x64, 0x37, 0x06, 0xDC, 0xF4, +0x38, 0x1B, 0xA9, 0xE4, 0x38, 0xE6, 0xBE, 0xF4, 0x39, 0xFB, 0x8B, 0xE4, 0x3A, 0xC6, 0xA0, 0xF4, +0x3B, 0xDB, 0x6D, 0xE4, 0x3C, 0xAF, 0xBD, 0x74, 0x3D, 0xBB, 0x4F, 0xE4, 0x3E, 0x8F, 0x9F, 0x74, +0x3F, 0x9B, 0x31, 0xE4, 0x40, 0x6F, 0x81, 0x74, 0x41, 0x84, 0x4E, 0x64, 0x42, 0x4F, 0x63, 0x74, +0x43, 0x64, 0x30, 0x64, 0x44, 0x2F, 0x45, 0x74, 0x45, 0x44, 0x12, 0x64, 0x45, 0xF3, 0x77, 0xF4, +0x47, 0x2D, 0x2E, 0xE4, 0x47, 0xD3, 0x59, 0xF4, 0x49, 0x0D, 0x10, 0xE4, 0x49, 0xB3, 0x3B, 0xF4, +0x4A, 0xEC, 0xF2, 0xE4, 0x4B, 0x9C, 0x58, 0x74, 0x4C, 0xD6, 0x0F, 0x64, 0x4D, 0x7C, 0x3A, 0x74, +0x4E, 0xB6, 0x0D, 0x48, 0x4F, 0x5C, 0x38, 0x58, 0x50, 0x95, 0xEF, 0x48, 0x51, 0x3C, 0x1A, 0x58, +0x52, 0x75, 0xD1, 0x48, 0x53, 0x1B, 0xFC, 0x58, 0x54, 0x55, 0xB3, 0x48, 0x54, 0xFB, 0xDE, 0x58, +0x56, 0x35, 0x95, 0x48, 0x56, 0xE4, 0xFA, 0xD8, 0x58, 0x1E, 0xB1, 0xC8, 0x58, 0xC4, 0xDC, 0xD8, +0x59, 0xFE, 0x93, 0xC8, 0x5A, 0xA4, 0xBE, 0xD8, 0x5B, 0xDE, 0x75, 0xC8, 0x5C, 0x84, 0xA0, 0xD8, +0x5D, 0xBE, 0x57, 0xC8, 0x5E, 0x64, 0x82, 0xD8, 0x5F, 0x9E, 0x39, 0xC8, 0x60, 0x4D, 0x9F, 0x58, +0x61, 0x87, 0x56, 0x48, 0x62, 0x2D, 0x81, 0x58, 0x63, 0x67, 0x38, 0x48, 0x64, 0x0D, 0x63, 0x58, +0x65, 0x47, 0x1A, 0x48, 0x65, 0xED, 0x45, 0x58, 0x67, 0x26, 0xFC, 0x48, 0x67, 0xCD, 0x27, 0x58, +0x69, 0x06, 0xDE, 0x48, 0x69, 0xAD, 0x09, 0x58, 0x6A, 0xE6, 0xC0, 0x48, 0x6B, 0x96, 0x25, 0xD8, +0x6C, 0xCF, 0xDC, 0xC8, 0x6D, 0x76, 0x07, 0xD8, 0x6E, 0xAF, 0xBE, 0xC8, 0x6F, 0x55, 0xE9, 0xD8, +0x70, 0x8F, 0xA0, 0xC8, 0x71, 0x35, 0xCB, 0xD8, 0x72, 0x6F, 0x82, 0xC8, 0x73, 0x15, 0xAD, 0xD8, +0x74, 0x4F, 0x64, 0xC8, 0x74, 0xFE, 0xCA, 0x58, 0x76, 0x38, 0x81, 0x48, 0x76, 0xDE, 0xAC, 0x58, +0x78, 0x18, 0x63, 0x48, 0x78, 0xBE, 0x8E, 0x58, 0x79, 0xF8, 0x45, 0x48, 0x7A, 0x9E, 0x70, 0x58, +0x7B, 0xD8, 0x27, 0x48, 0x7C, 0x7E, 0x52, 0x58, 0x7D, 0xB8, 0x09, 0x48, 0x7E, 0x5E, 0x34, 0x58, +0x7F, 0x97, 0xEB, 0x48, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x06, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0xFF, 0xFF, 0xDC, 0xA4, 0x01, 0x00, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x04, 0xFF, 0xFF, +0xDC, 0xD8, 0x01, 0x00, 0xFF, 0xFF, 0xCE, 0xC8, 0x00, 0x04, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x08, +0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x0C, 0xFF, 0xFF, 0xEA, 0xE8, 0x01, 0x10, 0x4E, 0x44, 0x54, 0x00, +0x4E, 0x53, 0x54, 0x00, 0x4E, 0x50, 0x54, 0x00, 0x4E, 0x57, 0x54, 0x00, 0x4E, 0x44, 0x44, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0xD1, 0xE8, 0xFA, 0x00, 0xC2, 0x38, 0x0D, 0x00, 0x00, 0x00, 0x28, 0x4E, 0x65, 0x77, 0x66, 0x6F, +0x75, 0x6E, 0x64, 0x6C, 0x61, 0x6E, 0x64, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x2C, 0x20, 0x69, 0x6E, +0x63, 0x6C, 0x75, 0x64, 0x69, 0x6E, 0x67, 0x20, 0x53, 0x45, 0x20, 0x4C, 0x61, 0x62, 0x72, 0x61, +0x64, 0x6F, 0x72, + +/* America/St_Kitts */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x93, 0x37, 0x34, 0xCC, +0x01, 0xFF, 0xFF, 0xC5, 0x34, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA3, 0xBA, 0x10, 0x00, 0xB2, 0xF5, +0xCD, 0x00, 0x00, 0x00, 0x00, + +/* America/St_Lucia */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4C, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x92, 0xE6, 0xC7, 0xB0, +0x01, 0xFF, 0xFF, 0xC6, 0xD0, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x43, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9E, 0xB7, 0x82, 0x00, 0xB5, 0x94, +0x60, 0x00, 0x00, 0x00, 0x00, + +/* America/St_Thomas */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x56, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x91, 0xF4, 0x37, 0x60, +0x01, 0xFF, 0xFF, 0xC3, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x54, 0x38, 0x00, 0xAF, 0x93, +0xEA, 0x00, 0x00, 0x00, 0x00, + +/* America/St_Vincent */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x56, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x92, 0xE6, 0xC7, 0xE8, +0x01, 0xFF, 0xFF, 0xC6, 0x98, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x4B, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0x64, 0xF8, 0x00, 0xB5, 0x39, +0x3A, 0x00, 0x00, 0x00, 0x00, + +/* America/Swift_Current */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x86, 0xFD, 0x96, 0x18, +0x9E, 0xB8, 0xAF, 0x90, 0x9F, 0xBB, 0x07, 0x80, 0xCB, 0x89, 0x0C, 0x90, 0xD2, 0x23, 0xF4, 0x70, +0xD2, 0x61, 0x18, 0x00, 0xD3, 0x76, 0x01, 0x10, 0xD4, 0x53, 0x6F, 0x00, 0xD5, 0x55, 0xE3, 0x10, +0xD6, 0x20, 0xDC, 0x00, 0xD7, 0x35, 0xC5, 0x10, 0xD8, 0x00, 0xBE, 0x00, 0xD9, 0x15, 0xA7, 0x10, +0xD9, 0xE0, 0xA0, 0x00, 0xE8, 0x27, 0x2C, 0x10, 0xE9, 0x17, 0x0F, 0x00, 0xEB, 0xE6, 0xF0, 0x10, +0xEC, 0xD6, 0xD3, 0x00, 0xED, 0xC6, 0xD2, 0x10, 0xEE, 0x91, 0xCB, 0x00, 0xEF, 0xAF, 0xEE, 0x90, +0xF0, 0x71, 0xAD, 0x00, 0x04, 0x61, 0x19, 0x90, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0xFF, +0xFF, 0x9A, 0xE8, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x00, +0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, +0xA0, 0x00, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, +0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xD6, 0x0E, 0x2D, 0x00, 0x6E, 0x1E, 0x1A, 0x00, +0x00, 0x00, 0x2E, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x53, 0x74, 0x61, 0x6E, 0x64, +0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x53, 0x61, 0x73, 0x6B, 0x61, +0x74, 0x63, 0x68, 0x65, 0x77, 0x61, 0x6E, 0x20, 0x2D, 0x20, 0x6D, 0x69, 0x64, 0x77, 0x65, 0x73, +0x74, + +/* America/Tegucigalpa */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x48, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xA4, 0x4C, 0x4B, 0x44, +0x20, 0x9A, 0xDC, 0xE0, 0x21, 0x5C, 0x9B, 0x50, 0x22, 0x7A, 0xBE, 0xE0, 0x23, 0x3C, 0x7D, 0x50, +0x44, 0x5D, 0x8C, 0xE0, 0x44, 0xD6, 0xC8, 0xD0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, +0xFF, 0xAE, 0x3C, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, +0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x9E, 0xD8, 0x10, 0x00, 0x8D, 0x93, 0x7D, 0x00, 0x00, 0x00, 0x00, + +/* America/Thule */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x9B, 0x80, 0x77, 0xFC, +0x27, 0xF5, 0x7A, 0xE0, 0x28, 0xE5, 0x5D, 0xD0, 0x29, 0xD5, 0x5C, 0xE0, 0x2A, 0xC5, 0x3F, 0xD0, +0x2B, 0xBE, 0x79, 0x60, 0x2C, 0xD3, 0x46, 0x50, 0x2D, 0x9E, 0x5B, 0x60, 0x2E, 0xB3, 0x28, 0x50, +0x2F, 0x7E, 0x3D, 0x60, 0x30, 0x93, 0x0A, 0x50, 0x31, 0x67, 0x59, 0xE0, 0x32, 0x72, 0xEC, 0x50, +0x33, 0x47, 0x3B, 0xE0, 0x34, 0x52, 0xCE, 0x50, 0x35, 0x27, 0x1D, 0xE0, 0x36, 0x32, 0xB0, 0x50, +0x37, 0x06, 0xFF, 0xE0, 0x38, 0x1B, 0xCC, 0xD0, 0x38, 0xE6, 0xE1, 0xE0, 0x39, 0xFB, 0xAE, 0xD0, +0x3A, 0xC6, 0xC3, 0xE0, 0x3B, 0xDB, 0x90, 0xD0, 0x3C, 0xAF, 0xE0, 0x60, 0x3D, 0xBB, 0x72, 0xD0, +0x3E, 0x8F, 0xC2, 0x60, 0x3F, 0x9B, 0x54, 0xD0, 0x40, 0x6F, 0xA4, 0x60, 0x41, 0x84, 0x71, 0x50, +0x42, 0x4F, 0x86, 0x60, 0x43, 0x64, 0x53, 0x50, 0x44, 0x2F, 0x68, 0x60, 0x45, 0x44, 0x35, 0x50, +0x45, 0xF3, 0x9A, 0xE0, 0x47, 0x2D, 0x51, 0xD0, 0x47, 0xD3, 0x7C, 0xE0, 0x49, 0x0D, 0x33, 0xD0, +0x49, 0xB3, 0x5E, 0xE0, 0x4A, 0xED, 0x15, 0xD0, 0x4B, 0x9C, 0x7B, 0x60, 0x4C, 0xD6, 0x32, 0x50, +0x4D, 0x7C, 0x5D, 0x60, 0x4E, 0xB6, 0x14, 0x50, 0x4F, 0x5C, 0x3F, 0x60, 0x50, 0x95, 0xF6, 0x50, +0x51, 0x3C, 0x21, 0x60, 0x52, 0x75, 0xD8, 0x50, 0x53, 0x1C, 0x03, 0x60, 0x54, 0x55, 0xBA, 0x50, +0x54, 0xFB, 0xE5, 0x60, 0x56, 0x35, 0x9C, 0x50, 0x56, 0xE5, 0x01, 0xE0, 0x58, 0x1E, 0xB8, 0xD0, +0x58, 0xC4, 0xE3, 0xE0, 0x59, 0xFE, 0x9A, 0xD0, 0x5A, 0xA4, 0xC5, 0xE0, 0x5B, 0xDE, 0x7C, 0xD0, +0x5C, 0x84, 0xA7, 0xE0, 0x5D, 0xBE, 0x5E, 0xD0, 0x5E, 0x64, 0x89, 0xE0, 0x5F, 0x9E, 0x40, 0xD0, +0x60, 0x4D, 0xA6, 0x60, 0x61, 0x87, 0x5D, 0x50, 0x62, 0x2D, 0x88, 0x60, 0x63, 0x67, 0x3F, 0x50, +0x64, 0x0D, 0x6A, 0x60, 0x65, 0x47, 0x21, 0x50, 0x65, 0xED, 0x4C, 0x60, 0x67, 0x27, 0x03, 0x50, +0x67, 0xCD, 0x2E, 0x60, 0x69, 0x06, 0xE5, 0x50, 0x69, 0xAD, 0x10, 0x60, 0x6A, 0xE6, 0xC7, 0x50, +0x6B, 0x96, 0x2C, 0xE0, 0x6C, 0xCF, 0xE3, 0xD0, 0x6D, 0x76, 0x0E, 0xE0, 0x6E, 0xAF, 0xC5, 0xD0, +0x6F, 0x55, 0xF0, 0xE0, 0x70, 0x8F, 0xA7, 0xD0, 0x71, 0x35, 0xD2, 0xE0, 0x72, 0x6F, 0x89, 0xD0, +0x73, 0x15, 0xB4, 0xE0, 0x74, 0x4F, 0x6B, 0xD0, 0x74, 0xFE, 0xD1, 0x60, 0x76, 0x38, 0x88, 0x50, +0x76, 0xDE, 0xB3, 0x60, 0x78, 0x18, 0x6A, 0x50, 0x78, 0xBE, 0x95, 0x60, 0x79, 0xF8, 0x4C, 0x50, +0x7A, 0x9E, 0x77, 0x60, 0x7B, 0xD8, 0x2E, 0x50, 0x7C, 0x7E, 0x59, 0x60, 0x7D, 0xB8, 0x10, 0x50, +0x7E, 0x5E, 0x3B, 0x60, 0x7F, 0x97, 0xF2, 0x50, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xBF, 0x84, 0x00, 0x00, 0xFF, 0xFF, 0xD5, +0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x44, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x29, 0x1A, 0x00, +0xA9, 0xB4, 0x02, 0x00, 0x00, 0x00, 0x10, 0x54, 0x68, 0x75, 0x6C, 0x65, 0x20, 0x2F, 0x20, 0x50, +0x69, 0x74, 0x75, 0x66, 0x66, 0x69, 0x6B, + +/* America/Thunder_Bay */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x8F, 0x24, 0x7B, 0xE0, +0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, 0x00, 0x97, 0xFE, 0xF0, +0x01, 0x87, 0xE1, 0xE0, 0x02, 0x77, 0xE0, 0xF0, 0x03, 0x70, 0xFE, 0x60, 0x04, 0x60, 0xFD, 0x70, +0x05, 0x50, 0xE0, 0x60, 0x08, 0x20, 0xC1, 0x70, 0x09, 0x10, 0xA4, 0x60, 0x0A, 0x00, 0xA3, 0x70, +0x0A, 0xF0, 0x86, 0x60, 0x0B, 0xE0, 0x85, 0x70, 0x0C, 0xD9, 0xA2, 0xE0, 0x0D, 0xC0, 0x67, 0x70, +0x0E, 0xB9, 0x84, 0xE0, 0x0F, 0xA9, 0x83, 0xF0, 0x10, 0x99, 0x66, 0xE0, 0x11, 0x89, 0x65, 0xF0, +0x12, 0x79, 0x48, 0xE0, 0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, 0x15, 0x49, 0x29, 0xF0, +0x16, 0x39, 0x0C, 0xE0, 0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, 0x19, 0x08, 0xED, 0xF0, +0x1A, 0x02, 0x0B, 0x60, 0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, 0x1C, 0xD1, 0xEC, 0x70, +0x1D, 0xC1, 0xCF, 0x60, 0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, 0x20, 0x76, 0x00, 0xF0, +0x21, 0x81, 0x93, 0x60, 0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, 0x24, 0x35, 0xC4, 0xF0, +0x25, 0x4A, 0x91, 0xE0, 0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, 0x27, 0xFE, 0xC3, 0x70, +0x29, 0x0A, 0x55, 0xE0, 0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, 0x2B, 0xBE, 0x87, 0x70, +0x2C, 0xD3, 0x54, 0x60, 0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, 0x2F, 0x7E, 0x4B, 0x70, +0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, 0x33, 0x47, 0x49, 0xF0, +0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, 0x37, 0x07, 0x0D, 0xF0, +0x38, 0x1B, 0xDA, 0xE0, 0x38, 0xE6, 0xEF, 0xF0, 0x39, 0xFB, 0xBC, 0xE0, 0x3A, 0xC6, 0xD1, 0xF0, +0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, 0x3E, 0x8F, 0xD0, 0x70, +0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, 0x42, 0x4F, 0x94, 0x70, +0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, +0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, +0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, +0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, +0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, +0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, +0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, +0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, +0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, +0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, +0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, +0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, +0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, +0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, +0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, +0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, +0x7F, 0x98, 0x00, 0x60, 0x01, 0x02, 0x03, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, +0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0xFF, 0xFF, +0xAB, 0xA0, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, +0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x10, 0x43, 0x53, 0x54, 0x00, +0x45, 0x53, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x45, 0x50, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xD3, 0x27, 0xFD, 0x00, 0x8A, +0x79, 0x38, 0x00, 0x00, 0x00, 0x23, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x69, +0x6D, 0x65, 0x20, 0x2D, 0x20, 0x54, 0x68, 0x75, 0x6E, 0x64, 0x65, 0x72, 0x20, 0x42, 0x61, 0x79, +0x2C, 0x20, 0x4F, 0x6E, 0x74, 0x61, 0x72, 0x69, 0x6F, + +/* America/Tijuana */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0xA5, 0xB6, 0xF6, 0x80, +0xA9, 0x79, 0x4F, 0x70, 0xAF, 0xF2, 0x7C, 0xF0, 0xB6, 0x66, 0x64, 0x70, 0xB7, 0x1B, 0x10, 0x00, +0xB8, 0x0A, 0xF2, 0xF0, 0xCB, 0xEA, 0x8D, 0x80, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x99, 0xBA, 0x70, +0xD7, 0x1B, 0x59, 0x00, 0xD8, 0x91, 0xB4, 0xF0, 0xE2, 0x7E, 0x59, 0xA0, 0xE3, 0x49, 0x52, 0x90, +0xE4, 0x5E, 0x3B, 0xA0, 0xE5, 0x29, 0x34, 0x90, 0xE6, 0x47, 0x58, 0x20, 0xE7, 0x12, 0x51, 0x10, +0xE8, 0x27, 0x3A, 0x20, 0xE8, 0xF2, 0x33, 0x10, 0xEA, 0x07, 0x1C, 0x20, 0xEA, 0xD2, 0x15, 0x10, +0xEB, 0xE6, 0xFE, 0x20, 0xEC, 0xB1, 0xF7, 0x10, 0xED, 0xC6, 0xE0, 0x20, 0xEE, 0x91, 0xD9, 0x10, +0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, +0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x73, 0x10, +0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, +0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, +0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, 0x1D, 0xC1, 0xF9, 0x90, +0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20, 0x21, 0x81, 0xBD, 0x90, +0x22, 0x56, 0x0D, 0x20, 0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20, 0x25, 0x4A, 0xBC, 0x10, +0x26, 0x15, 0xD1, 0x20, 0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0, 0x29, 0x0A, 0x80, 0x10, +0x29, 0xDE, 0xCF, 0xA0, 0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0, 0x2C, 0xD3, 0x7E, 0x90, +0x2D, 0x9E, 0x93, 0xA0, 0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0, 0x30, 0x93, 0x42, 0x90, +0x31, 0x67, 0x92, 0x20, 0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20, 0x34, 0x53, 0x06, 0x90, +0x35, 0x27, 0x56, 0x20, 0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20, 0x38, 0x1C, 0x05, 0x10, +0x38, 0xE7, 0x1A, 0x20, 0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20, 0x3B, 0xDB, 0xC9, 0x10, +0x3C, 0xB0, 0x18, 0xA0, 0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0, 0x3F, 0x9B, 0x8D, 0x10, +0x40, 0x6F, 0xDC, 0xA0, 0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0, 0x43, 0x64, 0x8B, 0x90, +0x44, 0x2F, 0xA0, 0xA0, 0x45, 0x44, 0x6D, 0x90, 0x46, 0x0F, 0x82, 0xA0, 0x47, 0x24, 0x4F, 0x90, +0x47, 0xF8, 0x9F, 0x20, 0x49, 0x04, 0x31, 0x90, 0x49, 0xD8, 0x81, 0x20, 0x4A, 0xE4, 0x13, 0x90, +0x4B, 0x9C, 0xB3, 0xA0, 0x4C, 0xD6, 0x6A, 0x90, 0x4D, 0x7C, 0x95, 0xA0, 0x4E, 0xB6, 0x4C, 0x90, +0x4F, 0x5C, 0x77, 0xA0, 0x50, 0x96, 0x2E, 0x90, 0x51, 0x3C, 0x59, 0xA0, 0x52, 0x76, 0x10, 0x90, +0x53, 0x1C, 0x3B, 0xA0, 0x54, 0x55, 0xF2, 0x90, 0x54, 0xFC, 0x1D, 0xA0, 0x56, 0x35, 0xD4, 0x90, +0x56, 0xE5, 0x3A, 0x20, 0x58, 0x1E, 0xF1, 0x10, 0x58, 0xC5, 0x1C, 0x20, 0x59, 0xFE, 0xD3, 0x10, +0x5A, 0xA4, 0xFE, 0x20, 0x5B, 0xDE, 0xB5, 0x10, 0x5C, 0x84, 0xE0, 0x20, 0x5D, 0xBE, 0x97, 0x10, +0x5E, 0x64, 0xC2, 0x20, 0x5F, 0x9E, 0x79, 0x10, 0x60, 0x4D, 0xDE, 0xA0, 0x61, 0x87, 0x95, 0x90, +0x62, 0x2D, 0xC0, 0xA0, 0x63, 0x67, 0x77, 0x90, 0x64, 0x0D, 0xA2, 0xA0, 0x65, 0x47, 0x59, 0x90, +0x65, 0xED, 0x84, 0xA0, 0x67, 0x27, 0x3B, 0x90, 0x67, 0xCD, 0x66, 0xA0, 0x69, 0x07, 0x1D, 0x90, +0x69, 0xAD, 0x48, 0xA0, 0x6A, 0xE6, 0xFF, 0x90, 0x6B, 0x96, 0x65, 0x20, 0x6C, 0xD0, 0x1C, 0x10, +0x6D, 0x76, 0x47, 0x20, 0x6E, 0xAF, 0xFE, 0x10, 0x6F, 0x56, 0x29, 0x20, 0x70, 0x8F, 0xE0, 0x10, +0x71, 0x36, 0x0B, 0x20, 0x72, 0x6F, 0xC2, 0x10, 0x73, 0x15, 0xED, 0x20, 0x74, 0x4F, 0xA4, 0x10, +0x74, 0xFF, 0x09, 0xA0, 0x76, 0x38, 0xC0, 0x90, 0x76, 0xDE, 0xEB, 0xA0, 0x78, 0x18, 0xA2, 0x90, +0x78, 0xBE, 0xCD, 0xA0, 0x79, 0xF8, 0x84, 0x90, 0x7A, 0x9E, 0xAF, 0xA0, 0x7B, 0xD8, 0x66, 0x90, +0x7C, 0x7E, 0x91, 0xA0, 0x7D, 0xB8, 0x48, 0x90, 0x7E, 0x5E, 0x73, 0xA0, 0x7F, 0x98, 0x2A, 0x90, +0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x04, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0xFF, 0xFF, 0x92, 0x4C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, +0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, +0x90, 0x01, 0x10, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, +0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xBA, 0xF8, +0x95, 0x00, 0x60, 0x1A, 0xDD, 0x00, 0x00, 0x00, 0x30, 0x55, 0x53, 0x20, 0x50, 0x61, 0x63, 0x69, +0x66, 0x69, 0x63, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x42, 0x61, 0x6A, 0x61, 0x20, +0x43, 0x61, 0x6C, 0x69, 0x66, 0x6F, 0x72, 0x6E, 0x69, 0x61, 0x20, 0x6E, 0x65, 0x61, 0x72, 0x20, +0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, + +/* America/Toronto */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xB8, 0x93, 0x70, +0x9F, 0xBA, 0xEB, 0x60, 0xA0, 0x87, 0x2E, 0xC8, 0xA1, 0x9A, 0xB1, 0x40, 0xA2, 0x94, 0x06, 0xF0, +0xA3, 0x55, 0xA9, 0x40, 0xA4, 0x86, 0x5D, 0xF0, 0xA5, 0x28, 0x78, 0x60, 0xA6, 0x66, 0x3F, 0xF0, +0xA7, 0x0C, 0x4E, 0xE0, 0xA8, 0x46, 0x21, 0xF0, 0xA8, 0xEC, 0x30, 0xE0, 0xAA, 0x1C, 0xC9, 0x70, +0xAA, 0xD5, 0x4D, 0x60, 0xAB, 0xFC, 0xAB, 0x70, 0xAC, 0xB5, 0x2F, 0x60, 0xAD, 0xDC, 0x8D, 0x70, +0xAE, 0x95, 0x11, 0x60, 0xAF, 0xBC, 0x6F, 0x70, 0xB0, 0x7E, 0x2D, 0xE0, 0xB1, 0x9C, 0x51, 0x70, +0xB2, 0x67, 0x4A, 0x60, 0xB3, 0x7C, 0x33, 0x70, 0xB4, 0x47, 0x2C, 0x60, 0xB5, 0x5C, 0x15, 0x70, +0xB6, 0x27, 0x0E, 0x60, 0xB7, 0x3B, 0xF7, 0x70, 0xB8, 0x06, 0xF0, 0x60, 0xB9, 0x25, 0x13, 0xF0, +0xB9, 0xE6, 0xD2, 0x60, 0xBB, 0x04, 0xF5, 0xF0, 0xBB, 0xCF, 0xEE, 0xE0, 0xBC, 0xE4, 0xD7, 0xF0, +0xBD, 0xAF, 0xD0, 0xE0, 0xBE, 0xC4, 0xB9, 0xF0, 0xBF, 0x8F, 0xB2, 0xE0, 0xC0, 0xA4, 0x9B, 0xF0, +0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0, 0xC4, 0x64, 0x5F, 0xF0, +0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0, 0xC8, 0x2D, 0x5E, 0x70, +0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, 0xD3, 0x75, 0xE4, 0xF0, +0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xAA, 0xD0, 0xD6, 0x20, 0xA3, 0xC0, 0xD7, 0x35, 0x8C, 0xD0, +0xD8, 0x00, 0x85, 0xC0, 0xD9, 0x15, 0x6E, 0xD0, 0xDA, 0x33, 0x76, 0x40, 0xDA, 0xFE, 0xA7, 0x70, +0xDC, 0x13, 0x74, 0x60, 0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, +0xDF, 0x89, 0x64, 0x60, 0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, +0xE3, 0x49, 0x28, 0x60, 0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x29, 0x0A, 0x60, 0xE6, 0x47, 0x2D, 0xF0, +0xE7, 0x12, 0x26, 0xE0, 0xE8, 0x27, 0x0F, 0xF0, 0xE9, 0x16, 0xF2, 0xE0, 0xEA, 0x06, 0xF1, 0xF0, +0xEA, 0xF6, 0xD4, 0xE0, 0xEB, 0xE6, 0xD3, 0xF0, 0xEC, 0xD6, 0xB6, 0xE0, 0xED, 0xC6, 0xB5, 0xF0, +0xEE, 0xBF, 0xD3, 0x60, 0xEF, 0xAF, 0xD2, 0x70, 0xF0, 0x9F, 0xB5, 0x60, 0xF1, 0x8F, 0xB4, 0x70, +0xF2, 0x7F, 0x97, 0x60, 0xF3, 0x6F, 0x96, 0x70, 0xF4, 0x5F, 0x79, 0x60, 0xF5, 0x4F, 0x78, 0x70, +0xF6, 0x3F, 0x5B, 0x60, 0xF7, 0x2F, 0x5A, 0x70, 0xF8, 0x28, 0x77, 0xE0, 0xF9, 0x0F, 0x3C, 0x70, +0xFA, 0x08, 0x59, 0xE0, 0xFA, 0xF8, 0x58, 0xF0, 0xFB, 0xE8, 0x3B, 0xE0, 0xFC, 0xD8, 0x3A, 0xF0, +0xFD, 0xC8, 0x1D, 0xE0, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, +0x01, 0x87, 0xE1, 0xE0, 0x02, 0x77, 0xE0, 0xF0, 0x03, 0x70, 0xFE, 0x60, 0x04, 0x60, 0xFD, 0x70, +0x05, 0x50, 0xE0, 0x60, 0x06, 0x40, 0xDF, 0x70, 0x07, 0x30, 0xC2, 0x60, 0x08, 0x20, 0xC1, 0x70, +0x09, 0x10, 0xA4, 0x60, 0x0A, 0x00, 0xA3, 0x70, 0x0A, 0xF0, 0x86, 0x60, 0x0B, 0xE0, 0x85, 0x70, +0x0C, 0xD9, 0xA2, 0xE0, 0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, 0x0F, 0xA9, 0x83, 0xF0, +0x10, 0x99, 0x66, 0xE0, 0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, 0x13, 0x69, 0x47, 0xF0, +0x14, 0x59, 0x2A, 0xE0, 0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, 0x17, 0x29, 0x0B, 0xF0, +0x18, 0x22, 0x29, 0x60, 0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, 0x1A, 0xF2, 0x0A, 0x70, +0x1B, 0xE1, 0xED, 0x60, 0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, 0x1E, 0xB1, 0xCE, 0x70, +0x1F, 0xA1, 0xB1, 0x60, 0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, 0x22, 0x55, 0xE2, 0xF0, +0x23, 0x6A, 0xAF, 0xE0, 0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, 0x26, 0x15, 0xA6, 0xF0, +0x27, 0x2A, 0x73, 0xE0, 0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, 0x29, 0xDE, 0xA5, 0x70, +0x2A, 0xEA, 0x37, 0xE0, 0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, 0x2D, 0x9E, 0x69, 0x70, +0x2E, 0xB3, 0x36, 0x60, 0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x67, 0xF0, +0x32, 0x72, 0xFA, 0x60, 0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, +0x36, 0x32, 0xBE, 0x60, 0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, 0x38, 0xE6, 0xEF, 0xF0, +0x39, 0xFB, 0xBC, 0xE0, 0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, +0x3D, 0xBB, 0x80, 0xE0, 0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, +0x41, 0x84, 0x7F, 0x60, 0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, +0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, +0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, +0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, +0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, +0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, +0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, +0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, +0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, +0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, +0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, +0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, +0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, +0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, +0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, +0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, +0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, +0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0x45, 0x44, 0x54, 0x00, +0x45, 0x53, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x45, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x01, 0x00, 0xCB, 0xEF, 0x08, 0x00, 0x99, 0x87, 0x62, 0x00, 0x00, 0x00, 0x27, +0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x4F, +0x6E, 0x74, 0x61, 0x72, 0x69, 0x6F, 0x20, 0x2D, 0x20, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, +0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* America/Tortola */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x56, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x91, 0xF4, 0x37, 0x14, +0x01, 0xFF, 0xFF, 0xC3, 0x6C, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x7B, 0x48, 0x00, 0xB0, 0x0F, +0x9D, 0x00, 0x00, 0x00, 0x00, + +/* America/Vancouver */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xB8, 0xBD, 0xA0, +0x9F, 0xBB, 0x15, 0x90, 0xCB, 0x89, 0x1A, 0xA0, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x26, 0x10, +0xD3, 0x76, 0x0F, 0x20, 0xD4, 0x53, 0x7D, 0x10, 0xD5, 0x55, 0xF1, 0x20, 0xD6, 0x20, 0xEA, 0x10, +0xD7, 0x35, 0xD3, 0x20, 0xD8, 0x00, 0xCC, 0x10, 0xD9, 0x15, 0xB5, 0x20, 0xD9, 0xE0, 0xAE, 0x10, +0xDA, 0xFE, 0xD1, 0xA0, 0xDB, 0xC0, 0x90, 0x10, 0xDC, 0xDE, 0xB3, 0xA0, 0xDD, 0xA9, 0xAC, 0x90, +0xDE, 0xBE, 0x95, 0xA0, 0xDF, 0x89, 0x8E, 0x90, 0xE0, 0x9E, 0x77, 0xA0, 0xE1, 0x69, 0x70, 0x90, +0xE2, 0x7E, 0x59, 0xA0, 0xE3, 0x49, 0x52, 0x90, 0xE4, 0x5E, 0x3B, 0xA0, 0xE5, 0x29, 0x34, 0x90, +0xE6, 0x47, 0x58, 0x20, 0xE7, 0x12, 0x51, 0x10, 0xE8, 0x27, 0x3A, 0x20, 0xE8, 0xF2, 0x33, 0x10, +0xEA, 0x07, 0x1C, 0x20, 0xEA, 0xD2, 0x15, 0x10, 0xEB, 0xE6, 0xFE, 0x20, 0xEC, 0xB1, 0xF7, 0x10, +0xED, 0xC6, 0xE0, 0x20, 0xEE, 0x91, 0xD9, 0x10, 0xEF, 0xAF, 0xFC, 0xA0, 0xF0, 0x71, 0xBB, 0x10, +0xF1, 0x8F, 0xDE, 0xA0, 0xF2, 0x7F, 0xC1, 0x90, 0xF3, 0x6F, 0xC0, 0xA0, 0xF4, 0x5F, 0xA3, 0x90, +0xF5, 0x4F, 0xA2, 0xA0, 0xF6, 0x3F, 0x85, 0x90, 0xF7, 0x2F, 0x84, 0xA0, 0xF8, 0x28, 0xA2, 0x10, +0xF9, 0x0F, 0x66, 0xA0, 0xFA, 0x08, 0x84, 0x10, 0xFA, 0xF8, 0x83, 0x20, 0xFB, 0xE8, 0x66, 0x10, +0xFC, 0xD8, 0x65, 0x20, 0xFD, 0xC8, 0x48, 0x10, 0xFE, 0xB8, 0x47, 0x20, 0xFF, 0xA8, 0x2A, 0x10, +0x00, 0x98, 0x29, 0x20, 0x01, 0x88, 0x0C, 0x10, 0x02, 0x78, 0x0B, 0x20, 0x03, 0x71, 0x28, 0x90, +0x04, 0x61, 0x27, 0xA0, 0x05, 0x51, 0x0A, 0x90, 0x06, 0x41, 0x09, 0xA0, 0x07, 0x30, 0xEC, 0x90, +0x08, 0x20, 0xEB, 0xA0, 0x09, 0x10, 0xCE, 0x90, 0x0A, 0x00, 0xCD, 0xA0, 0x0A, 0xF0, 0xB0, 0x90, +0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, +0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x73, 0x10, +0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, +0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, +0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, 0x1D, 0xC1, 0xF9, 0x90, +0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20, 0x21, 0x81, 0xBD, 0x90, +0x22, 0x56, 0x0D, 0x20, 0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20, 0x25, 0x4A, 0xBC, 0x10, +0x26, 0x15, 0xD1, 0x20, 0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0, 0x29, 0x0A, 0x80, 0x10, +0x29, 0xDE, 0xCF, 0xA0, 0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0, 0x2C, 0xD3, 0x7E, 0x90, +0x2D, 0x9E, 0x93, 0xA0, 0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0, 0x30, 0x93, 0x42, 0x90, +0x31, 0x67, 0x92, 0x20, 0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20, 0x34, 0x53, 0x06, 0x90, +0x35, 0x27, 0x56, 0x20, 0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20, 0x38, 0x1C, 0x05, 0x10, +0x38, 0xE7, 0x1A, 0x20, 0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20, 0x3B, 0xDB, 0xC9, 0x10, +0x3C, 0xB0, 0x18, 0xA0, 0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0, 0x3F, 0x9B, 0x8D, 0x10, +0x40, 0x6F, 0xDC, 0xA0, 0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0, 0x43, 0x64, 0x8B, 0x90, +0x44, 0x2F, 0xA0, 0xA0, 0x45, 0x44, 0x6D, 0x90, 0x45, 0xF3, 0xD3, 0x20, 0x47, 0x2D, 0x8A, 0x10, +0x47, 0xD3, 0xB5, 0x20, 0x49, 0x0D, 0x6C, 0x10, 0x49, 0xB3, 0x97, 0x20, 0x4A, 0xED, 0x4E, 0x10, +0x4B, 0x9C, 0xB3, 0xA0, 0x4C, 0xD6, 0x6A, 0x90, 0x4D, 0x7C, 0x95, 0xA0, 0x4E, 0xB6, 0x4C, 0x90, +0x4F, 0x5C, 0x77, 0xA0, 0x50, 0x96, 0x2E, 0x90, 0x51, 0x3C, 0x59, 0xA0, 0x52, 0x76, 0x10, 0x90, +0x53, 0x1C, 0x3B, 0xA0, 0x54, 0x55, 0xF2, 0x90, 0x54, 0xFC, 0x1D, 0xA0, 0x56, 0x35, 0xD4, 0x90, +0x56, 0xE5, 0x3A, 0x20, 0x58, 0x1E, 0xF1, 0x10, 0x58, 0xC5, 0x1C, 0x20, 0x59, 0xFE, 0xD3, 0x10, +0x5A, 0xA4, 0xFE, 0x20, 0x5B, 0xDE, 0xB5, 0x10, 0x5C, 0x84, 0xE0, 0x20, 0x5D, 0xBE, 0x97, 0x10, +0x5E, 0x64, 0xC2, 0x20, 0x5F, 0x9E, 0x79, 0x10, 0x60, 0x4D, 0xDE, 0xA0, 0x61, 0x87, 0x95, 0x90, +0x62, 0x2D, 0xC0, 0xA0, 0x63, 0x67, 0x77, 0x90, 0x64, 0x0D, 0xA2, 0xA0, 0x65, 0x47, 0x59, 0x90, +0x65, 0xED, 0x84, 0xA0, 0x67, 0x27, 0x3B, 0x90, 0x67, 0xCD, 0x66, 0xA0, 0x69, 0x07, 0x1D, 0x90, +0x69, 0xAD, 0x48, 0xA0, 0x6A, 0xE6, 0xFF, 0x90, 0x6B, 0x96, 0x65, 0x20, 0x6C, 0xD0, 0x1C, 0x10, +0x6D, 0x76, 0x47, 0x20, 0x6E, 0xAF, 0xFE, 0x10, 0x6F, 0x56, 0x29, 0x20, 0x70, 0x8F, 0xE0, 0x10, +0x71, 0x36, 0x0B, 0x20, 0x72, 0x6F, 0xC2, 0x10, 0x73, 0x15, 0xED, 0x20, 0x74, 0x4F, 0xA4, 0x10, +0x74, 0xFF, 0x09, 0xA0, 0x76, 0x38, 0xC0, 0x90, 0x76, 0xDE, 0xEB, 0xA0, 0x78, 0x18, 0xA2, 0x90, +0x78, 0xBE, 0xCD, 0xA0, 0x79, 0xF8, 0x84, 0x90, 0x7A, 0x9E, 0xAF, 0xA0, 0x7B, 0xD8, 0x66, 0x90, +0x7C, 0x7E, 0x91, 0xA0, 0x7D, 0xB8, 0x48, 0x90, 0x7E, 0x5E, 0x73, 0xA0, 0x7F, 0x98, 0x2A, 0x90, +0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0x9D, +0x90, 0x01, 0x00, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x08, 0xFF, +0xFF, 0x9D, 0x90, 0x01, 0x0C, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x57, 0x54, +0x00, 0x50, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xD4, 0x81, +0x0A, 0x00, 0x56, 0xCC, 0x0D, 0x00, 0x00, 0x00, 0x24, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, +0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x77, 0x65, 0x73, 0x74, 0x20, 0x42, 0x72, 0x69, +0x74, 0x69, 0x73, 0x68, 0x20, 0x43, 0x6F, 0x6C, 0x75, 0x6D, 0x62, 0x69, 0x61, + +/* America/Virgin */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x91, 0xF4, 0x37, 0x60, +0x01, 0xFF, 0xFF, 0xC3, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, +0x80, 0x00, 0x00, 0x00, 0x00, + +/* America/Whitehorse */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1D, 0x9E, 0xB8, 0xCB, 0xB0, +0x9F, 0xBB, 0x23, 0xA0, 0xA0, 0xD0, 0x0C, 0xB0, 0xA1, 0xA2, 0xD2, 0x80, 0xCB, 0x89, 0x28, 0xB0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x34, 0x20, 0xF7, 0x2F, 0x76, 0x90, 0xF8, 0x28, 0xA2, 0x10, +0xF9, 0x69, 0x1A, 0xB0, 0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, +0x16, 0x39, 0x37, 0x10, 0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, +0x1A, 0x02, 0x35, 0x90, 0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, +0x1D, 0xC1, 0xF9, 0x90, 0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20, +0x21, 0x81, 0xBD, 0x90, 0x22, 0x56, 0x0D, 0x20, 0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20, +0x25, 0x4A, 0xBC, 0x10, 0x26, 0x15, 0xD1, 0x20, 0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0, +0x29, 0x0A, 0x80, 0x10, 0x29, 0xDE, 0xCF, 0xA0, 0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0, +0x2C, 0xD3, 0x7E, 0x90, 0x2D, 0x9E, 0x93, 0xA0, 0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0, +0x30, 0x93, 0x42, 0x90, 0x31, 0x67, 0x92, 0x20, 0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20, +0x34, 0x53, 0x06, 0x90, 0x35, 0x27, 0x56, 0x20, 0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20, +0x38, 0x1C, 0x05, 0x10, 0x38, 0xE7, 0x1A, 0x20, 0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20, +0x3B, 0xDB, 0xC9, 0x10, 0x3C, 0xB0, 0x18, 0xA0, 0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0, +0x3F, 0x9B, 0x8D, 0x10, 0x40, 0x6F, 0xDC, 0xA0, 0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0, +0x43, 0x64, 0x8B, 0x90, 0x44, 0x2F, 0xA0, 0xA0, 0x45, 0x44, 0x6D, 0x90, 0x45, 0xF3, 0xD3, 0x20, +0x47, 0x2D, 0x8A, 0x10, 0x47, 0xD3, 0xB5, 0x20, 0x49, 0x0D, 0x6C, 0x10, 0x49, 0xB3, 0x97, 0x20, +0x4A, 0xED, 0x4E, 0x10, 0x4B, 0x9C, 0xB3, 0xA0, 0x4C, 0xD6, 0x6A, 0x90, 0x4D, 0x7C, 0x95, 0xA0, +0x4E, 0xB6, 0x4C, 0x90, 0x4F, 0x5C, 0x77, 0xA0, 0x50, 0x96, 0x2E, 0x90, 0x51, 0x3C, 0x59, 0xA0, +0x52, 0x76, 0x10, 0x90, 0x53, 0x1C, 0x3B, 0xA0, 0x54, 0x55, 0xF2, 0x90, 0x54, 0xFC, 0x1D, 0xA0, +0x56, 0x35, 0xD4, 0x90, 0x56, 0xE5, 0x3A, 0x20, 0x58, 0x1E, 0xF1, 0x10, 0x58, 0xC5, 0x1C, 0x20, +0x59, 0xFE, 0xD3, 0x10, 0x5A, 0xA4, 0xFE, 0x20, 0x5B, 0xDE, 0xB5, 0x10, 0x5C, 0x84, 0xE0, 0x20, +0x5D, 0xBE, 0x97, 0x10, 0x5E, 0x64, 0xC2, 0x20, 0x5F, 0x9E, 0x79, 0x10, 0x60, 0x4D, 0xDE, 0xA0, +0x61, 0x87, 0x95, 0x90, 0x62, 0x2D, 0xC0, 0xA0, 0x63, 0x67, 0x77, 0x90, 0x64, 0x0D, 0xA2, 0xA0, +0x65, 0x47, 0x59, 0x90, 0x65, 0xED, 0x84, 0xA0, 0x67, 0x27, 0x3B, 0x90, 0x67, 0xCD, 0x66, 0xA0, +0x69, 0x07, 0x1D, 0x90, 0x69, 0xAD, 0x48, 0xA0, 0x6A, 0xE6, 0xFF, 0x90, 0x6B, 0x96, 0x65, 0x20, +0x6C, 0xD0, 0x1C, 0x10, 0x6D, 0x76, 0x47, 0x20, 0x6E, 0xAF, 0xFE, 0x10, 0x6F, 0x56, 0x29, 0x20, +0x70, 0x8F, 0xE0, 0x10, 0x71, 0x36, 0x0B, 0x20, 0x72, 0x6F, 0xC2, 0x10, 0x73, 0x15, 0xED, 0x20, +0x74, 0x4F, 0xA4, 0x10, 0x74, 0xFF, 0x09, 0xA0, 0x76, 0x38, 0xC0, 0x90, 0x76, 0xDE, 0xEB, 0xA0, +0x78, 0x18, 0xA2, 0x90, 0x78, 0xBE, 0xCD, 0xA0, 0x79, 0xF8, 0x84, 0x90, 0x7A, 0x9E, 0xAF, 0xA0, +0x7B, 0xD8, 0x66, 0x90, 0x7C, 0x7E, 0x91, 0xA0, 0x7D, 0xB8, 0x48, 0x90, 0x7E, 0x5E, 0x73, 0xA0, +0x7F, 0x98, 0x2A, 0x90, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x04, 0x01, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x00, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x04, 0xFF, 0xFF, +0x8F, 0x80, 0x01, 0x08, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, +0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x15, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x19, 0x59, 0x44, 0x54, 0x00, +0x59, 0x53, 0x54, 0x00, 0x59, 0x57, 0x54, 0x00, 0x59, 0x50, 0x54, 0x00, 0x59, 0x44, 0x44, 0x54, +0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xE5, 0xF9, 0xB2, 0x00, 0x44, 0x96, 0x97, 0x00, +0x00, 0x00, 0x1A, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, +0x2D, 0x20, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x20, 0x59, 0x75, 0x6B, 0x6F, 0x6E, + +/* America/Winnipeg */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x01, 0xFB, 0xE0, +0x9B, 0xC3, 0xBA, 0x50, 0x9E, 0xB8, 0xA1, 0x80, 0x9F, 0xBA, 0xF9, 0x70, 0xC2, 0xA0, 0x3B, 0x80, +0xC3, 0x4F, 0x84, 0xF0, 0xCB, 0x88, 0xFE, 0x80, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, +0xD3, 0x88, 0x68, 0x00, 0xD4, 0x53, 0x60, 0xF0, 0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0, +0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, 0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0, +0xDB, 0x00, 0x07, 0x00, 0xDB, 0xC8, 0x5C, 0xF0, 0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, +0xDE, 0xBE, 0x79, 0x80, 0xDF, 0x89, 0x72, 0x70, 0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, +0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, 0xE4, 0x5E, 0x1F, 0x80, 0xE5, 0x29, 0x18, 0x70, +0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x12, 0x34, 0xF0, 0xE8, 0x27, 0x1E, 0x00, 0xE8, 0xF2, 0x16, 0xF0, +0xEA, 0x07, 0x00, 0x00, 0xEA, 0xD1, 0xF8, 0xF0, 0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xD6, 0xC4, 0xF0, +0xED, 0xC6, 0xC4, 0x00, 0xEE, 0x91, 0xBC, 0xF0, 0xF3, 0x6F, 0xA4, 0x80, 0xF4, 0x31, 0x62, 0xF0, +0xF9, 0x0F, 0x4A, 0x80, 0xFA, 0x08, 0x76, 0x00, 0xFA, 0xF8, 0x67, 0x00, 0xFB, 0xE8, 0x58, 0x00, +0xFC, 0xD8, 0x49, 0x00, 0xFD, 0xC8, 0x3A, 0x00, 0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xA8, 0x1C, 0x00, +0x00, 0x98, 0x0D, 0x00, 0x01, 0x87, 0xFE, 0x00, 0x02, 0x77, 0xEF, 0x00, 0x03, 0x71, 0x1A, 0x80, +0x04, 0x61, 0x0B, 0x80, 0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xED, 0x80, 0x07, 0x30, 0xDE, 0x80, +0x08, 0x20, 0xCF, 0x80, 0x09, 0x10, 0xC0, 0x80, 0x0A, 0x00, 0xB1, 0x80, 0x0A, 0xF0, 0xA2, 0x80, +0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x75, 0x80, 0x0E, 0xB9, 0xA1, 0x00, +0x0F, 0xA9, 0x92, 0x00, 0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x74, 0x00, 0x12, 0x79, 0x65, 0x00, +0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x29, 0x00, +0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x45, 0x80, 0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x27, 0x80, +0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xEB, 0x80, +0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xAF, 0x80, +0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0xAE, 0x00, +0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x72, 0x00, +0x29, 0xDE, 0xB3, 0x80, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0x95, 0x80, 0x2C, 0xD3, 0x70, 0x80, +0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x59, 0x80, 0x30, 0x93, 0x34, 0x80, +0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xF8, 0x80, +0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xF7, 0x00, +0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xE0, 0x00, 0x3B, 0xDB, 0xBB, 0x00, +0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x7F, 0x00, +0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x7D, 0x80, +0x43, 0xB7, 0x6F, 0xE0, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, +0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, +0x4A, 0xED, 0x31, 0xF0, 0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, +0x4E, 0xB6, 0x30, 0x70, 0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, +0x52, 0x75, 0xF4, 0x70, 0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, +0x56, 0x35, 0xB8, 0x70, 0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, +0x59, 0xFE, 0xB6, 0xF0, 0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, +0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, +0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, +0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, +0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, +0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, +0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, +0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, +0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, +0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, +0x7F, 0x98, 0x0E, 0x70, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, +0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, +0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, +0x00, 0x04, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, +0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD5, +0x71, 0xED, 0x00, 0x7E, 0x6B, 0x47, 0x00, 0x00, 0x00, 0x26, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, +0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x4D, 0x61, 0x6E, 0x69, 0x74, 0x6F, 0x62, +0x61, 0x20, 0x26, 0x20, 0x77, 0x65, 0x73, 0x74, 0x20, 0x4F, 0x6E, 0x74, 0x61, 0x72, 0x69, 0x6F, + + +/* America/Yakutat */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1A, 0xCB, 0x89, 0x28, 0xB0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x34, 0x20, 0xFE, 0xB8, 0x55, 0x30, 0xFF, 0xA8, 0x38, 0x20, +0x00, 0x98, 0x37, 0x30, 0x01, 0x88, 0x1A, 0x20, 0x02, 0x78, 0x19, 0x30, 0x03, 0x71, 0x36, 0xA0, +0x04, 0x61, 0x35, 0xB0, 0x05, 0x51, 0x18, 0xA0, 0x06, 0x41, 0x17, 0xB0, 0x07, 0x30, 0xFA, 0xA0, +0x07, 0x8D, 0x51, 0xB0, 0x09, 0x10, 0xDC, 0xA0, 0x09, 0xAD, 0xCD, 0x30, 0x0A, 0xF0, 0xBE, 0xA0, +0x0B, 0xE0, 0xBD, 0xB0, 0x0C, 0xD9, 0xDB, 0x20, 0x0D, 0xC0, 0x9F, 0xB0, 0x0E, 0xB9, 0xBD, 0x20, +0x0F, 0xA9, 0xBC, 0x30, 0x10, 0x99, 0x9F, 0x20, 0x11, 0x89, 0x9E, 0x30, 0x12, 0x79, 0x81, 0x20, +0x13, 0x69, 0x80, 0x30, 0x14, 0x59, 0x63, 0x20, 0x15, 0x49, 0x62, 0x30, 0x16, 0x39, 0x45, 0x20, +0x17, 0x29, 0x44, 0x30, 0x18, 0x22, 0x61, 0xA0, 0x19, 0x09, 0x26, 0x30, 0x1A, 0x02, 0x43, 0xA0, +0x1A, 0x2B, 0x14, 0x10, 0x1A, 0xF2, 0x42, 0xB0, 0x1B, 0xE2, 0x25, 0xA0, 0x1C, 0xD2, 0x24, 0xB0, +0x1D, 0xC2, 0x07, 0xA0, 0x1E, 0xB2, 0x06, 0xB0, 0x1F, 0xA1, 0xE9, 0xA0, 0x20, 0x76, 0x39, 0x30, +0x21, 0x81, 0xCB, 0xA0, 0x22, 0x56, 0x1B, 0x30, 0x23, 0x6A, 0xE8, 0x20, 0x24, 0x35, 0xFD, 0x30, +0x25, 0x4A, 0xCA, 0x20, 0x26, 0x15, 0xDF, 0x30, 0x27, 0x2A, 0xAC, 0x20, 0x27, 0xFE, 0xFB, 0xB0, +0x29, 0x0A, 0x8E, 0x20, 0x29, 0xDE, 0xDD, 0xB0, 0x2A, 0xEA, 0x70, 0x20, 0x2B, 0xBE, 0xBF, 0xB0, +0x2C, 0xD3, 0x8C, 0xA0, 0x2D, 0x9E, 0xA1, 0xB0, 0x2E, 0xB3, 0x6E, 0xA0, 0x2F, 0x7E, 0x83, 0xB0, +0x30, 0x93, 0x50, 0xA0, 0x31, 0x67, 0xA0, 0x30, 0x32, 0x73, 0x32, 0xA0, 0x33, 0x47, 0x82, 0x30, +0x34, 0x53, 0x14, 0xA0, 0x35, 0x27, 0x64, 0x30, 0x36, 0x32, 0xF6, 0xA0, 0x37, 0x07, 0x46, 0x30, +0x38, 0x1C, 0x13, 0x20, 0x38, 0xE7, 0x28, 0x30, 0x39, 0xFB, 0xF5, 0x20, 0x3A, 0xC7, 0x0A, 0x30, +0x3B, 0xDB, 0xD7, 0x20, 0x3C, 0xB0, 0x26, 0xB0, 0x3D, 0xBB, 0xB9, 0x20, 0x3E, 0x90, 0x08, 0xB0, +0x3F, 0x9B, 0x9B, 0x20, 0x40, 0x6F, 0xEA, 0xB0, 0x41, 0x84, 0xB7, 0xA0, 0x42, 0x4F, 0xCC, 0xB0, +0x43, 0x64, 0x99, 0xA0, 0x44, 0x2F, 0xAE, 0xB0, 0x45, 0x44, 0x7B, 0xA0, 0x45, 0xF3, 0xE1, 0x30, +0x47, 0x2D, 0x98, 0x20, 0x47, 0xD3, 0xC3, 0x30, 0x49, 0x0D, 0x7A, 0x20, 0x49, 0xB3, 0xA5, 0x30, +0x4A, 0xED, 0x5C, 0x20, 0x4B, 0x9C, 0xC1, 0xB0, 0x4C, 0xD6, 0x78, 0xA0, 0x4D, 0x7C, 0xA3, 0xB0, +0x4E, 0xB6, 0x5A, 0xA0, 0x4F, 0x5C, 0x85, 0xB0, 0x50, 0x96, 0x3C, 0xA0, 0x51, 0x3C, 0x67, 0xB0, +0x52, 0x76, 0x1E, 0xA0, 0x53, 0x1C, 0x49, 0xB0, 0x54, 0x56, 0x00, 0xA0, 0x54, 0xFC, 0x2B, 0xB0, +0x56, 0x35, 0xE2, 0xA0, 0x56, 0xE5, 0x48, 0x30, 0x58, 0x1E, 0xFF, 0x20, 0x58, 0xC5, 0x2A, 0x30, +0x59, 0xFE, 0xE1, 0x20, 0x5A, 0xA5, 0x0C, 0x30, 0x5B, 0xDE, 0xC3, 0x20, 0x5C, 0x84, 0xEE, 0x30, +0x5D, 0xBE, 0xA5, 0x20, 0x5E, 0x64, 0xD0, 0x30, 0x5F, 0x9E, 0x87, 0x20, 0x60, 0x4D, 0xEC, 0xB0, +0x61, 0x87, 0xA3, 0xA0, 0x62, 0x2D, 0xCE, 0xB0, 0x63, 0x67, 0x85, 0xA0, 0x64, 0x0D, 0xB0, 0xB0, +0x65, 0x47, 0x67, 0xA0, 0x65, 0xED, 0x92, 0xB0, 0x67, 0x27, 0x49, 0xA0, 0x67, 0xCD, 0x74, 0xB0, +0x69, 0x07, 0x2B, 0xA0, 0x69, 0xAD, 0x56, 0xB0, 0x6A, 0xE7, 0x0D, 0xA0, 0x6B, 0x96, 0x73, 0x30, +0x6C, 0xD0, 0x2A, 0x20, 0x6D, 0x76, 0x55, 0x30, 0x6E, 0xB0, 0x0C, 0x20, 0x6F, 0x56, 0x37, 0x30, +0x70, 0x8F, 0xEE, 0x20, 0x71, 0x36, 0x19, 0x30, 0x72, 0x6F, 0xD0, 0x20, 0x73, 0x15, 0xFB, 0x30, +0x74, 0x4F, 0xB2, 0x20, 0x74, 0xFF, 0x17, 0xB0, 0x76, 0x38, 0xCE, 0xA0, 0x76, 0xDE, 0xF9, 0xB0, +0x78, 0x18, 0xB0, 0xA0, 0x78, 0xBE, 0xDB, 0xB0, 0x79, 0xF8, 0x92, 0xA0, 0x7A, 0x9E, 0xBD, 0xB0, +0x7B, 0xD8, 0x74, 0xA0, 0x7C, 0x7E, 0x9F, 0xB0, 0x7D, 0xB8, 0x56, 0xA0, 0x7E, 0x5E, 0x81, 0xB0, +0x7F, 0x98, 0x38, 0xA0, 0x01, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, +0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, +0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x00, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x04, 0xFF, 0xFF, +0x8F, 0x80, 0x01, 0x08, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x0C, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x10, +0xFF, 0xFF, 0x81, 0x70, 0x00, 0x15, 0x59, 0x53, 0x54, 0x00, 0x59, 0x57, 0x54, 0x00, 0x59, 0x50, +0x54, 0x00, 0x59, 0x44, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00, 0x41, 0x4B, 0x53, 0x54, 0x00, +0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xE4, 0x30, 0xC6, +0x00, 0x3D, 0x73, 0x8D, 0x00, 0x00, 0x00, 0x23, 0x41, 0x6C, 0x61, 0x73, 0x6B, 0x61, 0x20, 0x54, +0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x41, 0x6C, 0x61, 0x73, 0x6B, 0x61, 0x20, 0x70, 0x61, 0x6E, +0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x20, 0x6E, 0x65, 0x63, 0x6B, + +/* America/Yellowknife */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x19, 0xBE, 0x2A, 0x18, 0x00, +0xCB, 0x89, 0x0C, 0x90, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xF7, 0x2F, 0x5A, 0x70, +0xF8, 0x28, 0x85, 0xF0, 0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, +0x16, 0x39, 0x29, 0x00, 0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, +0x1A, 0x02, 0x27, 0x80, 0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, +0x1D, 0xC1, 0xEB, 0x80, 0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, +0x21, 0x81, 0xAF, 0x80, 0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, +0x25, 0x4A, 0xAE, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, +0x29, 0x0A, 0x72, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, +0x2C, 0xD3, 0x70, 0x80, 0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, +0x30, 0x93, 0x34, 0x80, 0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, +0x34, 0x52, 0xF8, 0x80, 0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, +0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, +0x3B, 0xDB, 0xBB, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, +0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, +0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, +0x47, 0x2D, 0x7C, 0x00, 0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, +0x4A, 0xED, 0x40, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, +0x4E, 0xB6, 0x3E, 0x80, 0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, +0x52, 0x76, 0x02, 0x80, 0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, +0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, +0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, +0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, +0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, +0x65, 0x47, 0x4B, 0x80, 0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, +0x69, 0x07, 0x0F, 0x80, 0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, +0x6C, 0xD0, 0x0E, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, +0x70, 0x8F, 0xD2, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, +0x74, 0x4F, 0x96, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, +0x78, 0x18, 0x94, 0x80, 0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, +0x7B, 0xD8, 0x58, 0x80, 0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, +0x7F, 0x98, 0x1C, 0x80, 0x03, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, +0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, +0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, +0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, +0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, +0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, +0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, +0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, +0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, +0x01, 0x15, 0x7A, 0x7A, 0x7A, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x4D, 0x53, +0x54, 0x00, 0x4D, 0x44, 0x44, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x9E, 0xC7, 0x00, 0x64, 0x2C, 0x88, 0x00, +0x00, 0x00, 0x2D, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, +0x20, 0x2D, 0x20, 0x63, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x4E, 0x6F, 0x72, 0x74, 0x68, +0x77, 0x65, 0x73, 0x74, 0x20, 0x54, 0x65, 0x72, 0x72, 0x69, 0x74, 0x6F, 0x72, 0x69, 0x65, 0x73, + + +/* Antarctica/Casey */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0D, 0xFE, 0x1E, 0xCC, 0x80, +0x4A, 0xDA, 0x06, 0x20, 0x4B, 0x8F, 0xCA, 0xF0, 0x4E, 0xA9, 0x9C, 0x20, 0x4F, 0x43, 0xCD, 0x90, +0x01, 0x02, 0x01, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x80, 0x00, +0x04, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x08, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x7A, 0x7A, 0x7A, +0x00, 0x57, 0x53, 0x54, 0x00, 0x43, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, +0x00, 0x01, 0x00, 0x24, 0x30, 0x52, 0x01, 0xBB, 0x4B, 0x12, 0x00, 0x00, 0x00, 0x1F, 0x43, 0x61, +0x73, 0x65, 0x79, 0x20, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x42, 0x61, 0x69, +0x6C, 0x65, 0x79, 0x20, 0x50, 0x65, 0x6E, 0x69, 0x6E, 0x73, 0x75, 0x6C, 0x61, + +/* Antarctica/Davis */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0xE7, 0x9C, 0x40, 0x00, +0xF6, 0x47, 0xDF, 0x10, 0xFE, 0x47, 0xAB, 0x00, 0x4A, 0xDA, 0x14, 0x30, 0x4B, 0x97, 0xFA, 0x40, +0x4E, 0xA9, 0xAA, 0x30, 0x4F, 0x43, 0xF7, 0xC0, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, +0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x7A, 0x7A, 0x7A, 0x00, 0x44, 0x41, 0x56, 0x54, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0xAD, 0xE2, 0x01, 0x89, 0xA0, 0x3A, +0x00, 0x00, 0x00, 0x1D, 0x44, 0x61, 0x76, 0x69, 0x73, 0x20, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6F, +0x6E, 0x2C, 0x20, 0x56, 0x65, 0x73, 0x74, 0x66, 0x6F, 0x6C, 0x64, 0x20, 0x48, 0x69, 0x6C, 0x6C, +0x73, + +/* Antarctica/DumontDUrville */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0xD4, 0xBC, 0x76, 0x80, +0xDE, 0x34, 0x60, 0x60, 0xE7, 0x3C, 0x02, 0x80, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x04, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x08, 0x7A, 0x7A, 0x7A, +0x00, 0x50, 0x4D, 0x54, 0x00, 0x44, 0x44, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x23, 0x9A, 0x95, 0x01, 0xE8, 0x4E, 0x82, 0x00, 0x00, 0x00, 0x26, 0x44, 0x75, 0x6D, 0x6F, +0x6E, 0x74, 0x2D, 0x64, 0x27, 0x55, 0x72, 0x76, 0x69, 0x6C, 0x6C, 0x65, 0x20, 0x53, 0x74, 0x61, +0x74, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x54, 0x65, 0x72, 0x72, 0x65, 0x20, 0x41, 0x64, 0x65, 0x6C, +0x69, 0x65, + +/* Antarctica/Macquarie */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0D, 0x91, 0x05, 0x5B, 0x00, +0x9B, 0xD5, 0x78, 0x80, 0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70, +0xCC, 0xB7, 0x56, 0x80, 0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70, +0xFB, 0xC2, 0x8D, 0x00, 0xFC, 0xB2, 0x7E, 0x00, 0xFD, 0xC7, 0x59, 0x00, 0xFE, 0x76, 0xB0, 0x80, +0xFF, 0xA7, 0x3B, 0x00, 0x00, 0x56, 0x92, 0x80, 0x01, 0x87, 0x1D, 0x00, 0x02, 0x3F, 0xAF, 0x00, +0x03, 0x70, 0x39, 0x80, 0x04, 0x0D, 0x1C, 0x00, 0x05, 0x50, 0x1B, 0x80, 0x05, 0xF6, 0x38, 0x80, +0x07, 0x2F, 0xFD, 0x80, 0x07, 0xD6, 0x1A, 0x80, 0x09, 0x0F, 0xDF, 0x80, 0x09, 0xB5, 0xFC, 0x80, +0x0A, 0xEF, 0xC1, 0x80, 0x0B, 0x9F, 0x19, 0x00, 0x0C, 0xD8, 0xDE, 0x00, 0x0D, 0x7E, 0xFB, 0x00, +0x0E, 0xB8, 0xC0, 0x00, 0x0F, 0x5E, 0xDD, 0x00, 0x10, 0x98, 0xA2, 0x00, 0x11, 0x3E, 0xBF, 0x00, +0x12, 0x78, 0x84, 0x00, 0x13, 0x1E, 0xA1, 0x00, 0x14, 0x58, 0x66, 0x00, 0x14, 0xFE, 0x83, 0x00, +0x16, 0x38, 0x48, 0x00, 0x17, 0x03, 0x4F, 0x00, 0x18, 0x21, 0x64, 0x80, 0x18, 0xE3, 0x31, 0x00, +0x1A, 0x01, 0x46, 0x80, 0x1A, 0xA7, 0x63, 0x80, 0x1B, 0xE1, 0x28, 0x80, 0x1C, 0x87, 0x45, 0x80, +0x1D, 0xC1, 0x0A, 0x80, 0x1E, 0x67, 0x27, 0x80, 0x1F, 0x97, 0xB2, 0x00, 0x20, 0x59, 0x7E, 0x80, +0x21, 0x80, 0xCE, 0x80, 0x22, 0x42, 0x9B, 0x00, 0x23, 0x69, 0xEB, 0x00, 0x24, 0x22, 0x7D, 0x00, +0x25, 0x49, 0xCD, 0x00, 0x26, 0x02, 0x5F, 0x00, 0x27, 0x29, 0xAF, 0x00, 0x27, 0xF4, 0xB6, 0x00, +0x28, 0xED, 0xE1, 0x80, 0x29, 0xD4, 0x98, 0x00, 0x2A, 0xCD, 0xC3, 0x80, 0x2B, 0xB4, 0x7A, 0x00, +0x2C, 0xAD, 0xA5, 0x80, 0x2D, 0x94, 0x5C, 0x00, 0x2E, 0x8D, 0x87, 0x80, 0x2F, 0x74, 0x3E, 0x00, +0x30, 0x6D, 0x69, 0x80, 0x31, 0x5D, 0x5A, 0x80, 0x32, 0x56, 0x86, 0x00, 0x33, 0x3D, 0x3C, 0x80, +0x34, 0x36, 0x68, 0x00, 0x35, 0x1D, 0x1E, 0x80, 0x36, 0x16, 0x4A, 0x00, 0x36, 0xFD, 0x00, 0x80, +0x37, 0xF6, 0x2C, 0x00, 0x38, 0xDC, 0xE2, 0x80, 0x39, 0xA7, 0xE9, 0x80, 0x3A, 0xBC, 0xC4, 0x80, +0x3B, 0xBF, 0x2A, 0x80, 0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0x9F, 0x0C, 0x80, 0x3E, 0x85, 0xC3, 0x00, +0x3F, 0x7E, 0xEE, 0x80, 0x40, 0x65, 0xA5, 0x00, 0x41, 0x5E, 0xD0, 0x80, 0x42, 0x45, 0x87, 0x00, +0x43, 0x3E, 0xB2, 0x80, 0x44, 0x2E, 0xA3, 0x80, 0x45, 0x1E, 0x94, 0x80, 0x46, 0x05, 0x4B, 0x00, +0x47, 0x07, 0xB1, 0x00, 0x47, 0xF7, 0xA2, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x49, 0xD7, 0x84, 0x00, +0x4A, 0xC7, 0x75, 0x00, 0x4B, 0xB7, 0x66, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, +0xA0, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x04, 0x00, +0x00, 0x8C, 0xA0, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x08, 0x7A, 0x7A, 0x7A, 0x00, 0x45, +0x53, 0x54, 0x00, 0x4D, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x2B, 0x30, 0x02, 0x05, 0x32, 0x58, 0x00, 0x00, 0x00, 0x2A, +0x4D, 0x61, 0x63, 0x71, 0x75, 0x61, 0x72, 0x69, 0x65, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, +0x20, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x4D, 0x61, 0x63, 0x71, 0x75, 0x61, +0x72, 0x69, 0x65, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, + +/* Antarctica/Mawson */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x09, 0xE2, 0x20, 0x32, 0x80, +0x4A, 0xDA, 0x22, 0x40, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x60, +0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x7A, 0x7A, 0x7A, 0x00, 0x4D, 0x41, 0x57, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x2E, 0x00, 0x01, 0x72, 0x9C, 0x4D, 0x00, +0x00, 0x00, 0x19, 0x4D, 0x61, 0x77, 0x73, 0x6F, 0x6E, 0x20, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6F, +0x6E, 0x2C, 0x20, 0x48, 0x6F, 0x6C, 0x6D, 0x65, 0x20, 0x42, 0x61, 0x79, + +/* Antarctica/McMurdo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, 0xE5, 0xA9, 0xE9, 0x00, +0x09, 0x18, 0xFD, 0xE0, 0x09, 0xAC, 0xA5, 0xE0, 0x0A, 0xEF, 0xA5, 0x60, 0x0B, 0x9E, 0xFC, 0xE0, +0x0C, 0xD8, 0xC1, 0xE0, 0x0D, 0x7E, 0xDE, 0xE0, 0x0E, 0xB8, 0xA3, 0xE0, 0x0F, 0x5E, 0xC0, 0xE0, +0x10, 0x98, 0x85, 0xE0, 0x11, 0x3E, 0xA2, 0xE0, 0x12, 0x78, 0x67, 0xE0, 0x13, 0x1E, 0x84, 0xE0, +0x14, 0x58, 0x49, 0xE0, 0x14, 0xFE, 0x66, 0xE0, 0x16, 0x38, 0x2B, 0xE0, 0x16, 0xE7, 0x83, 0x60, +0x18, 0x21, 0x48, 0x60, 0x18, 0xC7, 0x65, 0x60, 0x1A, 0x01, 0x2A, 0x60, 0x1A, 0xA7, 0x47, 0x60, +0x1B, 0xE1, 0x0C, 0x60, 0x1C, 0x87, 0x29, 0x60, 0x1D, 0xC0, 0xEE, 0x60, 0x1E, 0x67, 0x0B, 0x60, +0x1F, 0xA0, 0xD0, 0x60, 0x20, 0x46, 0xED, 0x60, 0x21, 0x80, 0xB2, 0x60, 0x22, 0x30, 0x09, 0xE0, +0x23, 0x69, 0xCE, 0xE0, 0x24, 0x0F, 0xEB, 0xE0, 0x25, 0x2E, 0x01, 0x60, 0x26, 0x02, 0x42, 0xE0, +0x27, 0x0D, 0xE3, 0x60, 0x27, 0xE2, 0x24, 0xE0, 0x28, 0xED, 0xC5, 0x60, 0x29, 0xC2, 0x06, 0xE0, +0x2A, 0xCD, 0xA7, 0x60, 0x2B, 0xAB, 0x23, 0x60, 0x2C, 0xAD, 0x89, 0x60, 0x2D, 0x8B, 0x05, 0x60, +0x2E, 0x8D, 0x6B, 0x60, 0x2F, 0x6A, 0xE7, 0x60, 0x30, 0x6D, 0x4D, 0x60, 0x31, 0x4A, 0xC9, 0x60, +0x32, 0x56, 0x69, 0xE0, 0x33, 0x2A, 0xAB, 0x60, 0x34, 0x36, 0x4B, 0xE0, 0x35, 0x0A, 0x8D, 0x60, +0x36, 0x16, 0x2D, 0xE0, 0x36, 0xF3, 0xA9, 0xE0, 0x37, 0xF6, 0x0F, 0xE0, 0x38, 0xD3, 0x8B, 0xE0, +0x39, 0xD5, 0xF1, 0xE0, 0x3A, 0xB3, 0x6D, 0xE0, 0x3B, 0xBF, 0x0E, 0x60, 0x3C, 0x93, 0x4F, 0xE0, +0x3D, 0x9E, 0xF0, 0x60, 0x3E, 0x73, 0x31, 0xE0, 0x3F, 0x7E, 0xD2, 0x60, 0x40, 0x5C, 0x4E, 0x60, +0x41, 0x5E, 0xB4, 0x60, 0x42, 0x3C, 0x30, 0x60, 0x43, 0x3E, 0x96, 0x60, 0x44, 0x1C, 0x12, 0x60, +0x45, 0x1E, 0x78, 0x60, 0x45, 0xFB, 0xF4, 0x60, 0x46, 0xFE, 0x5A, 0x60, 0x47, 0xF7, 0x85, 0xE0, +0x48, 0xDE, 0x3C, 0x60, 0x49, 0xD7, 0x67, 0xE0, 0x4A, 0xBE, 0x1E, 0x60, 0x4B, 0xB7, 0x49, 0xE0, +0x4C, 0x9E, 0x00, 0x60, 0x4D, 0x97, 0x2B, 0xE0, 0x4E, 0x7D, 0xE2, 0x60, 0x4F, 0x77, 0x0D, 0xE0, +0x50, 0x66, 0xFE, 0xE0, 0x51, 0x60, 0x2A, 0x60, 0x52, 0x46, 0xE0, 0xE0, 0x53, 0x40, 0x0C, 0x60, +0x54, 0x26, 0xC2, 0xE0, 0x55, 0x1F, 0xEE, 0x60, 0x56, 0x06, 0xA4, 0xE0, 0x56, 0xFF, 0xD0, 0x60, +0x57, 0xE6, 0x86, 0xE0, 0x58, 0xDF, 0xB2, 0x60, 0x59, 0xC6, 0x68, 0xE0, 0x5A, 0xBF, 0x94, 0x60, +0x5B, 0xAF, 0x85, 0x60, 0x5C, 0xA8, 0xB0, 0xE0, 0x5D, 0x8F, 0x67, 0x60, 0x5E, 0x88, 0x92, 0xE0, +0x5F, 0x6F, 0x49, 0x60, 0x60, 0x68, 0x74, 0xE0, 0x61, 0x4F, 0x2B, 0x60, 0x62, 0x48, 0x56, 0xE0, +0x63, 0x2F, 0x0D, 0x60, 0x64, 0x28, 0x38, 0xE0, 0x65, 0x0E, 0xEF, 0x60, 0x66, 0x11, 0x55, 0x60, +0x66, 0xF8, 0x0B, 0xE0, 0x67, 0xF1, 0x37, 0x60, 0x68, 0xD7, 0xED, 0xE0, 0x69, 0xD1, 0x19, 0x60, +0x6A, 0xB7, 0xCF, 0xE0, 0x6B, 0xB0, 0xFB, 0x60, 0x6C, 0x97, 0xB1, 0xE0, 0x6D, 0x90, 0xDD, 0x60, +0x6E, 0x77, 0x93, 0xE0, 0x6F, 0x70, 0xBF, 0x60, 0x70, 0x60, 0xB0, 0x60, 0x71, 0x59, 0xDB, 0xE0, +0x72, 0x40, 0x92, 0x60, 0x73, 0x39, 0xBD, 0xE0, 0x74, 0x20, 0x74, 0x60, 0x75, 0x19, 0x9F, 0xE0, +0x76, 0x00, 0x56, 0x60, 0x76, 0xF9, 0x81, 0xE0, 0x77, 0xE0, 0x38, 0x60, 0x78, 0xD9, 0x63, 0xE0, +0x79, 0xC0, 0x1A, 0x60, 0x7A, 0xB9, 0x45, 0xE0, 0x7B, 0xA9, 0x36, 0xE0, 0x7C, 0xA2, 0x62, 0x60, +0x7D, 0x89, 0x18, 0xE0, 0x7E, 0x82, 0x44, 0x60, 0x7F, 0x68, 0xFA, 0xE0, 0x03, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xB6, 0xD0, 0x01, 0x04, 0x00, 0x00, 0xA8, 0xC0, 0x00, 0x09, 0x00, 0x00, +0xA8, 0xC0, 0x00, 0x09, 0x7A, 0x7A, 0x7A, 0x00, 0x4E, 0x5A, 0x44, 0x54, 0x00, 0x4E, 0x5A, 0x53, +0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x90, 0x9A, 0x02, 0x10, +0xDE, 0xA0, 0x00, 0x00, 0x00, 0x1C, 0x4D, 0x63, 0x4D, 0x75, 0x72, 0x64, 0x6F, 0x20, 0x53, 0x74, +0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x52, 0x6F, 0x73, 0x73, 0x20, 0x49, 0x73, 0x6C, 0x61, +0x6E, 0x64, + +/* Antarctica/Palmer */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x16, 0xF6, 0x98, 0xAD, 0x00, +0xF6, 0xE6, 0x9F, 0xB0, 0xF8, 0x13, 0x43, 0xC0, 0xF8, 0xC7, 0xD3, 0x30, 0xF9, 0xF4, 0x77, 0x40, +0xFA, 0xD3, 0x36, 0xB0, 0xFB, 0xC3, 0x35, 0xC0, 0xFC, 0xBC, 0x53, 0x30, 0xFD, 0xAC, 0x52, 0x40, +0xFE, 0x9C, 0x35, 0x30, 0xFF, 0x8C, 0x34, 0x40, 0x07, 0xA3, 0x4A, 0xB0, 0x08, 0x24, 0x6F, 0xA0, +0x17, 0x30, 0xBC, 0xB0, 0x18, 0x06, 0x5D, 0xC0, 0x18, 0xD1, 0x56, 0xB0, 0x19, 0xE6, 0x3F, 0xC0, +0x1A, 0xB1, 0x38, 0xB0, 0x1B, 0xCF, 0x5C, 0x40, 0x1C, 0x91, 0x1A, 0xB0, 0x1D, 0xAF, 0x3E, 0x40, +0x1E, 0x70, 0xFC, 0xB0, 0x1F, 0x8F, 0x20, 0x40, 0x20, 0x7F, 0x03, 0x30, 0x21, 0x6F, 0x02, 0x40, +0x22, 0x39, 0xFB, 0x30, 0x23, 0x45, 0xA9, 0xC0, 0x24, 0x19, 0xDD, 0x30, 0x25, 0x38, 0x00, 0xC0, +0x26, 0x02, 0xF9, 0xB0, 0x26, 0xF2, 0xF8, 0xC0, 0x27, 0xD9, 0xA1, 0x30, 0x28, 0xF7, 0xC4, 0xC0, +0x29, 0xC2, 0xBD, 0xB0, 0x2A, 0xD7, 0xA6, 0xC0, 0x2B, 0xA2, 0x9F, 0xB0, 0x2C, 0xB7, 0x88, 0xC0, +0x2D, 0x82, 0x81, 0xB0, 0x2E, 0x97, 0x6A, 0xC0, 0x2F, 0x62, 0x63, 0xB0, 0x30, 0x80, 0x87, 0x40, +0x31, 0x42, 0x45, 0xB0, 0x32, 0x60, 0x69, 0x40, 0x33, 0x3D, 0xD7, 0x30, 0x34, 0x40, 0x4B, 0x40, +0x35, 0x0B, 0x44, 0x30, 0x36, 0x0D, 0xB8, 0x40, 0x37, 0x06, 0xD5, 0xB0, 0x38, 0x00, 0x0F, 0x40, +0x38, 0xCB, 0x08, 0x30, 0x39, 0xE9, 0x2B, 0xC0, 0x3A, 0xAA, 0xEA, 0x30, 0x3B, 0xC9, 0x0D, 0xC0, +0x3C, 0x8A, 0xCC, 0x30, 0x3D, 0xA8, 0xEF, 0xC0, 0x3E, 0x6A, 0xAE, 0x30, 0x3F, 0x88, 0xD1, 0xC0, +0x40, 0x53, 0xCA, 0xB0, 0x41, 0x68, 0xB3, 0xC0, 0x42, 0x33, 0xAC, 0xB0, 0x43, 0x48, 0x95, 0xC0, +0x44, 0x13, 0x8E, 0xB0, 0x45, 0x31, 0xB2, 0x40, 0x45, 0xF3, 0x70, 0xB0, 0x47, 0x11, 0x94, 0x40, +0x47, 0xEF, 0x02, 0x30, 0x48, 0xF1, 0x76, 0x40, 0x49, 0xBC, 0x6F, 0x30, 0x4A, 0xD1, 0x58, 0x40, +0x4B, 0xB8, 0x00, 0xB0, 0x4C, 0xB1, 0x3A, 0x40, 0x4D, 0xC6, 0x07, 0x30, 0x4E, 0x50, 0x82, 0xC0, +0x4F, 0x9C, 0xAE, 0xB0, 0x50, 0x42, 0xD9, 0xC0, 0x51, 0x3B, 0xF7, 0x30, 0x52, 0x5A, 0x1A, 0xC0, +0x53, 0x1B, 0xD9, 0x30, 0x54, 0x39, 0xFC, 0xC0, 0x55, 0x04, 0xF5, 0xB0, 0x56, 0x19, 0xDE, 0xC0, +0x56, 0xE4, 0xD7, 0xB0, 0x57, 0xF9, 0xC0, 0xC0, 0x58, 0xC4, 0xB9, 0xB0, 0x59, 0xE2, 0xDD, 0x40, +0x5A, 0xA4, 0x9B, 0xB0, 0x5B, 0xC2, 0xBF, 0x40, 0x5C, 0x84, 0x7D, 0xB0, 0x5D, 0xA2, 0xA1, 0x40, +0x5E, 0x6D, 0x9A, 0x30, 0x5F, 0x82, 0x83, 0x40, 0x60, 0x4D, 0x7C, 0x30, 0x61, 0x62, 0x65, 0x40, +0x62, 0x2D, 0x5E, 0x30, 0x63, 0x42, 0x47, 0x40, 0x64, 0x0D, 0x40, 0x30, 0x65, 0x2B, 0x63, 0xC0, +0x65, 0xED, 0x22, 0x30, 0x67, 0x0B, 0x45, 0xC0, 0x67, 0xCD, 0x04, 0x30, 0x68, 0xEB, 0x27, 0xC0, +0x69, 0xB6, 0x20, 0xB0, 0x6A, 0xCB, 0x09, 0xC0, 0x6B, 0x96, 0x02, 0xB0, 0x6C, 0xAA, 0xEB, 0xC0, +0x6D, 0x75, 0xE4, 0xB0, 0x6E, 0x94, 0x08, 0x40, 0x6F, 0x55, 0xC6, 0xB0, 0x70, 0x73, 0xEA, 0x40, +0x71, 0x35, 0xA8, 0xB0, 0x72, 0x53, 0xCC, 0x40, 0x73, 0x15, 0x8A, 0xB0, 0x74, 0x33, 0xAE, 0x40, +0x74, 0xFE, 0xA7, 0x30, 0x76, 0x13, 0x90, 0x40, 0x76, 0xDE, 0x89, 0x30, 0x77, 0xF3, 0x72, 0x40, +0x78, 0xBE, 0x6B, 0x30, 0x79, 0xDC, 0x8E, 0xC0, 0x7A, 0x9E, 0x4D, 0x30, 0x7B, 0xBC, 0x70, 0xC0, +0x7C, 0x7E, 0x2F, 0x30, 0x7D, 0x9C, 0x52, 0xC0, 0x7E, 0x67, 0x4B, 0xB0, 0x7F, 0x7C, 0x34, 0xC0, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x07, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, +0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, +0x0D, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x12, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x12, 0x7A, 0x7A, 0x7A, +0x00, 0x41, 0x52, 0x54, 0x00, 0x41, 0x52, 0x53, 0x54, 0x00, 0x43, 0x4C, 0x53, 0x54, 0x00, 0x43, +0x4C, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x01, 0x01, 0x00, 0x00, 0x26, 0x73, 0xC0, 0x00, 0xB0, 0xD9, 0x70, 0x00, 0x00, 0x00, 0x1D, 0x50, +0x61, 0x6C, 0x6D, 0x65, 0x72, 0x20, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x41, +0x6E, 0x76, 0x65, 0x72, 0x73, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, + +/* Antarctica/Rothera */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x0D, 0x02, 0x2D, 0x00, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0x7A, 0x7A, 0x7A, +0x00, 0x52, 0x4F, 0x54, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x3B, 0x05, 0x00, 0xAA, +0xB1, 0xEA, 0x00, 0x00, 0x00, 0x20, 0x52, 0x6F, 0x74, 0x68, 0x65, 0x72, 0x61, 0x20, 0x53, 0x74, +0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x41, 0x64, 0x65, 0x6C, 0x61, 0x69, 0x64, 0x65, 0x20, +0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, + +/* Antarctica/South_Pole */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, 0xE5, 0xA9, 0xE9, 0x00, +0x09, 0x18, 0xFD, 0xE0, 0x09, 0xAC, 0xA5, 0xE0, 0x0A, 0xEF, 0xA5, 0x60, 0x0B, 0x9E, 0xFC, 0xE0, +0x0C, 0xD8, 0xC1, 0xE0, 0x0D, 0x7E, 0xDE, 0xE0, 0x0E, 0xB8, 0xA3, 0xE0, 0x0F, 0x5E, 0xC0, 0xE0, +0x10, 0x98, 0x85, 0xE0, 0x11, 0x3E, 0xA2, 0xE0, 0x12, 0x78, 0x67, 0xE0, 0x13, 0x1E, 0x84, 0xE0, +0x14, 0x58, 0x49, 0xE0, 0x14, 0xFE, 0x66, 0xE0, 0x16, 0x38, 0x2B, 0xE0, 0x16, 0xE7, 0x83, 0x60, +0x18, 0x21, 0x48, 0x60, 0x18, 0xC7, 0x65, 0x60, 0x1A, 0x01, 0x2A, 0x60, 0x1A, 0xA7, 0x47, 0x60, +0x1B, 0xE1, 0x0C, 0x60, 0x1C, 0x87, 0x29, 0x60, 0x1D, 0xC0, 0xEE, 0x60, 0x1E, 0x67, 0x0B, 0x60, +0x1F, 0xA0, 0xD0, 0x60, 0x20, 0x46, 0xED, 0x60, 0x21, 0x80, 0xB2, 0x60, 0x22, 0x30, 0x09, 0xE0, +0x23, 0x69, 0xCE, 0xE0, 0x24, 0x0F, 0xEB, 0xE0, 0x25, 0x2E, 0x01, 0x60, 0x26, 0x02, 0x42, 0xE0, +0x27, 0x0D, 0xE3, 0x60, 0x27, 0xE2, 0x24, 0xE0, 0x28, 0xED, 0xC5, 0x60, 0x29, 0xC2, 0x06, 0xE0, +0x2A, 0xCD, 0xA7, 0x60, 0x2B, 0xAB, 0x23, 0x60, 0x2C, 0xAD, 0x89, 0x60, 0x2D, 0x8B, 0x05, 0x60, +0x2E, 0x8D, 0x6B, 0x60, 0x2F, 0x6A, 0xE7, 0x60, 0x30, 0x6D, 0x4D, 0x60, 0x31, 0x4A, 0xC9, 0x60, +0x32, 0x56, 0x69, 0xE0, 0x33, 0x2A, 0xAB, 0x60, 0x34, 0x36, 0x4B, 0xE0, 0x35, 0x0A, 0x8D, 0x60, +0x36, 0x16, 0x2D, 0xE0, 0x36, 0xF3, 0xA9, 0xE0, 0x37, 0xF6, 0x0F, 0xE0, 0x38, 0xD3, 0x8B, 0xE0, +0x39, 0xD5, 0xF1, 0xE0, 0x3A, 0xB3, 0x6D, 0xE0, 0x3B, 0xBF, 0x0E, 0x60, 0x3C, 0x93, 0x4F, 0xE0, +0x3D, 0x9E, 0xF0, 0x60, 0x3E, 0x73, 0x31, 0xE0, 0x3F, 0x7E, 0xD2, 0x60, 0x40, 0x5C, 0x4E, 0x60, +0x41, 0x5E, 0xB4, 0x60, 0x42, 0x3C, 0x30, 0x60, 0x43, 0x3E, 0x96, 0x60, 0x44, 0x1C, 0x12, 0x60, +0x45, 0x1E, 0x78, 0x60, 0x45, 0xFB, 0xF4, 0x60, 0x46, 0xFE, 0x5A, 0x60, 0x47, 0xF7, 0x85, 0xE0, +0x48, 0xDE, 0x3C, 0x60, 0x49, 0xD7, 0x67, 0xE0, 0x4A, 0xBE, 0x1E, 0x60, 0x4B, 0xB7, 0x49, 0xE0, +0x4C, 0x9E, 0x00, 0x60, 0x4D, 0x97, 0x2B, 0xE0, 0x4E, 0x7D, 0xE2, 0x60, 0x4F, 0x77, 0x0D, 0xE0, +0x50, 0x66, 0xFE, 0xE0, 0x51, 0x60, 0x2A, 0x60, 0x52, 0x46, 0xE0, 0xE0, 0x53, 0x40, 0x0C, 0x60, +0x54, 0x26, 0xC2, 0xE0, 0x55, 0x1F, 0xEE, 0x60, 0x56, 0x06, 0xA4, 0xE0, 0x56, 0xFF, 0xD0, 0x60, +0x57, 0xE6, 0x86, 0xE0, 0x58, 0xDF, 0xB2, 0x60, 0x59, 0xC6, 0x68, 0xE0, 0x5A, 0xBF, 0x94, 0x60, +0x5B, 0xAF, 0x85, 0x60, 0x5C, 0xA8, 0xB0, 0xE0, 0x5D, 0x8F, 0x67, 0x60, 0x5E, 0x88, 0x92, 0xE0, +0x5F, 0x6F, 0x49, 0x60, 0x60, 0x68, 0x74, 0xE0, 0x61, 0x4F, 0x2B, 0x60, 0x62, 0x48, 0x56, 0xE0, +0x63, 0x2F, 0x0D, 0x60, 0x64, 0x28, 0x38, 0xE0, 0x65, 0x0E, 0xEF, 0x60, 0x66, 0x11, 0x55, 0x60, +0x66, 0xF8, 0x0B, 0xE0, 0x67, 0xF1, 0x37, 0x60, 0x68, 0xD7, 0xED, 0xE0, 0x69, 0xD1, 0x19, 0x60, +0x6A, 0xB7, 0xCF, 0xE0, 0x6B, 0xB0, 0xFB, 0x60, 0x6C, 0x97, 0xB1, 0xE0, 0x6D, 0x90, 0xDD, 0x60, +0x6E, 0x77, 0x93, 0xE0, 0x6F, 0x70, 0xBF, 0x60, 0x70, 0x60, 0xB0, 0x60, 0x71, 0x59, 0xDB, 0xE0, +0x72, 0x40, 0x92, 0x60, 0x73, 0x39, 0xBD, 0xE0, 0x74, 0x20, 0x74, 0x60, 0x75, 0x19, 0x9F, 0xE0, +0x76, 0x00, 0x56, 0x60, 0x76, 0xF9, 0x81, 0xE0, 0x77, 0xE0, 0x38, 0x60, 0x78, 0xD9, 0x63, 0xE0, +0x79, 0xC0, 0x1A, 0x60, 0x7A, 0xB9, 0x45, 0xE0, 0x7B, 0xA9, 0x36, 0xE0, 0x7C, 0xA2, 0x62, 0x60, +0x7D, 0x89, 0x18, 0xE0, 0x7E, 0x82, 0x44, 0x60, 0x7F, 0x68, 0xFA, 0xE0, 0x03, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xB6, 0xD0, 0x01, 0x04, 0x00, 0x00, 0xA8, 0xC0, 0x00, 0x09, 0x00, 0x00, +0xA8, 0xC0, 0x00, 0x09, 0x7A, 0x7A, 0x7A, 0x00, 0x4E, 0x5A, 0x44, 0x54, 0x00, 0x4E, 0x5A, 0x53, +0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x22, 0x41, 0x6D, 0x75, 0x6E, 0x64, 0x73, 0x65, 0x6E, 0x2D, 0x53, +0x63, 0x6F, 0x74, 0x74, 0x20, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x53, 0x6F, +0x75, 0x74, 0x68, 0x20, 0x50, 0x6F, 0x6C, 0x65, + +/* Antarctica/Syowa */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0xE7, 0xB1, 0x58, 0x00, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x7A, 0x7A, 0x7A, +0x00, 0x53, 0x59, 0x4F, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0xBC, 0x01, 0x4F, +0x11, 0x58, 0x00, 0x00, 0x00, 0x18, 0x53, 0x79, 0x6F, 0x77, 0x61, 0x20, 0x53, 0x74, 0x61, 0x74, +0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x45, 0x20, 0x4F, 0x6E, 0x67, 0x75, 0x6C, 0x20, 0x49, + +/* Antarctica/Vostok */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0xE9, 0x58, 0x89, 0x80, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x7A, 0x7A, 0x7A, +0x00, 0x56, 0x4F, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xB3, 0x3F, 0x01, 0xB5, +0xC6, 0x4F, 0x00, 0x00, 0x00, 0x1B, 0x56, 0x6F, 0x73, 0x74, 0x6F, 0x6B, 0x20, 0x53, 0x74, 0x61, +0x74, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x4C, 0x61, 0x6B, 0x65, 0x20, 0x56, 0x6F, 0x73, 0x74, 0x6F, +0x6B, + +/* Arctic/Longyearbyen */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x27, 0xE3, 0x00, +0x9B, 0xD4, 0x7B, 0x60, 0xC8, 0xB7, 0x4D, 0x60, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x82, 0x25, 0x10, 0xD1, 0x72, 0x16, 0x10, +0xD2, 0x62, 0x07, 0x10, 0xEB, 0xAF, 0x20, 0x90, 0xEC, 0xA8, 0x4C, 0x10, 0xED, 0x98, 0x3D, 0x10, +0xEE, 0x88, 0x2E, 0x10, 0xEF, 0x78, 0x1F, 0x10, 0xF0, 0x68, 0x10, 0x10, 0xF1, 0x58, 0x01, 0x10, +0xF2, 0x47, 0xF2, 0x10, 0xF3, 0x37, 0xE3, 0x10, 0xF4, 0x27, 0xD4, 0x10, 0xF5, 0x17, 0xC5, 0x10, +0xF6, 0x10, 0xF0, 0x90, 0xF7, 0x2F, 0x06, 0x10, 0xF7, 0xF0, 0xD2, 0x90, 0x12, 0xCE, 0x97, 0xF0, +0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x00, 0x01, 0x00, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x1C, +0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, +0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, +0x05, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x59, 0x00, 0x01, 0x2B, 0x12, 0x80, 0x00, 0x00, +0x00, 0x00, + +/* Asia/Aden */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x59, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xDA, 0x61, 0x38, 0x20, +0x01, 0x00, 0x00, 0x2A, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C, 0xC8, 0xB8, 0x01, 0x57, 0xA0, +0xC0, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Almaty */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0F, 0xAA, 0x19, 0x7B, 0xDC, +0xB5, 0xA3, 0xEF, 0x30, 0x15, 0x27, 0x7D, 0xA0, 0x16, 0x18, 0xB2, 0x10, 0x17, 0x08, 0xB1, 0x20, +0x17, 0xF9, 0xE5, 0x90, 0x18, 0xE9, 0xE4, 0xA0, 0x19, 0xDB, 0x19, 0x10, 0x1A, 0xCC, 0x69, 0xA0, +0x1B, 0xBC, 0x76, 0xC0, 0x1C, 0xAC, 0x67, 0xC0, 0x1D, 0x9C, 0x58, 0xC0, 0x1E, 0x8C, 0x49, 0xC0, +0x1F, 0x7C, 0x3A, 0xC0, 0x20, 0x6C, 0x2B, 0xC0, 0x21, 0x5C, 0x1C, 0xC0, 0x22, 0x4C, 0x0D, 0xC0, +0x23, 0x3B, 0xFE, 0xC0, 0x24, 0x2B, 0xEF, 0xC0, 0x25, 0x1B, 0xE0, 0xC0, 0x26, 0x0B, 0xD1, 0xC0, +0x27, 0x04, 0xFD, 0x40, 0x27, 0x7F, 0x7C, 0xA0, 0x29, 0xD4, 0xA6, 0x10, 0x2A, 0xC4, 0x89, 0x00, +0x2B, 0xB4, 0xB2, 0x40, 0x2C, 0xA4, 0xA3, 0x40, 0x2D, 0x94, 0x94, 0x40, 0x2E, 0x84, 0x85, 0x40, +0x2F, 0x74, 0x76, 0x40, 0x30, 0x64, 0x67, 0x40, 0x31, 0x5D, 0x92, 0xC0, 0x32, 0x72, 0x6D, 0xC0, +0x33, 0x3D, 0x74, 0xC0, 0x34, 0x52, 0x4F, 0xC0, 0x35, 0x1D, 0x56, 0xC0, 0x36, 0x32, 0x31, 0xC0, +0x36, 0xFD, 0x38, 0xC0, 0x38, 0x1B, 0x4E, 0x40, 0x38, 0xDD, 0x1A, 0xC0, 0x39, 0xFB, 0x30, 0x40, +0x3A, 0xBC, 0xFC, 0xC0, 0x3B, 0xDB, 0x12, 0x40, 0x3C, 0xA6, 0x19, 0x40, 0x3D, 0xBA, 0xF4, 0x40, +0x3E, 0x85, 0xFB, 0x40, 0x3F, 0x9A, 0xD6, 0x40, 0x40, 0x65, 0xDD, 0x40, 0x41, 0x83, 0xF2, 0xC0, +0x42, 0x35, 0xD1, 0x20, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x03, 0x02, 0x03, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x03, 0x00, 0x00, 0x48, 0x24, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, +0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, +0x54, 0x60, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x4C, +0x4D, 0x54, 0x00, 0x41, 0x4C, 0x4D, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCB, 0x52, 0xC8, 0x01, 0x88, 0x13, 0x18, 0x00, 0x00, 0x00, +0x0E, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* Asia/Amman */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4A, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D, 0xB6, 0xA3, 0xD6, 0xD0, +0x06, 0x72, 0x79, 0xE0, 0x07, 0x0C, 0xAB, 0x50, 0x08, 0x24, 0x37, 0x60, 0x08, 0xED, 0xDE, 0xD0, +0x0A, 0x05, 0x6A, 0xE0, 0x0A, 0xCF, 0x12, 0x50, 0x0B, 0xE7, 0xEF, 0xE0, 0x0C, 0xDA, 0x75, 0xD0, +0x0D, 0xC9, 0x23, 0x60, 0x0E, 0x92, 0xCA, 0xD0, 0x0F, 0xA9, 0x05, 0x60, 0x10, 0x72, 0xAC, 0xD0, +0x1C, 0xAD, 0xD5, 0x60, 0x1D, 0x9F, 0x09, 0xD0, 0x1E, 0x92, 0xFD, 0x60, 0x1F, 0x82, 0xE0, 0x50, +0x20, 0x72, 0xDF, 0x60, 0x21, 0x62, 0xC2, 0x50, 0x22, 0x52, 0xC1, 0x60, 0x23, 0x4B, 0xDE, 0xD0, +0x24, 0x64, 0xBC, 0x60, 0x25, 0x2B, 0xC0, 0xD0, 0x26, 0x37, 0x6F, 0x60, 0x27, 0x0B, 0xA2, 0xD0, +0x28, 0x0B, 0x73, 0xE0, 0x28, 0xE2, 0x4A, 0x50, 0x29, 0xE4, 0xBE, 0x60, 0x2A, 0xCB, 0x66, 0xD0, +0x2B, 0xBB, 0x65, 0xE0, 0x2C, 0xAB, 0x48, 0xD0, 0x2D, 0x9B, 0x47, 0xE0, 0x2E, 0x78, 0xB5, 0xD0, +0x2F, 0x84, 0x64, 0x60, 0x30, 0x58, 0xA5, 0xE0, 0x31, 0x64, 0x46, 0x60, 0x32, 0x41, 0xC2, 0x60, +0x33, 0x44, 0x28, 0x60, 0x34, 0x21, 0xA4, 0x60, 0x35, 0x24, 0x0A, 0x60, 0x36, 0x01, 0x86, 0x60, +0x37, 0x7A, 0x93, 0x60, 0x37, 0xEA, 0xA2, 0xE0, 0x38, 0xE2, 0x7C, 0xE0, 0x39, 0xD3, 0xBF, 0x60, +0x3A, 0xC2, 0x5E, 0xE0, 0x3B, 0xB3, 0xA1, 0x60, 0x3C, 0xA3, 0x92, 0x60, 0x3D, 0x93, 0x83, 0x60, +0x3E, 0x83, 0x74, 0x60, 0x3F, 0x98, 0x4F, 0x60, 0x40, 0x63, 0x56, 0x60, 0x41, 0x6E, 0xF6, 0xE0, +0x42, 0x4C, 0x72, 0xE0, 0x43, 0x3C, 0x63, 0xE0, 0x44, 0x2C, 0x54, 0xE0, 0x45, 0x41, 0x2F, 0xE0, +0x46, 0x0C, 0x36, 0xE0, 0x47, 0x21, 0x11, 0xE0, 0x47, 0xEC, 0x18, 0xE0, 0x49, 0x0A, 0x2E, 0x60, +0x49, 0xCB, 0xFA, 0xE0, 0x4A, 0xEA, 0x10, 0x60, 0x4B, 0xAB, 0xDC, 0xE0, 0x4C, 0xC9, 0xF2, 0x60, +0x4D, 0x94, 0xF9, 0x60, 0x4E, 0xA9, 0xD4, 0x60, 0x4F, 0x74, 0xDB, 0x60, 0x52, 0x69, 0x98, 0x60, +0x53, 0x34, 0x9F, 0x60, 0x54, 0x52, 0xB4, 0xE0, 0x55, 0x14, 0x81, 0x60, 0x56, 0x32, 0x96, 0xE0, +0x56, 0xFD, 0x9D, 0xE0, 0x58, 0x12, 0x78, 0xE0, 0x58, 0xDD, 0x7F, 0xE0, 0x59, 0xF2, 0x5A, 0xE0, +0x5A, 0xBD, 0x61, 0xE0, 0x5B, 0xD2, 0x3C, 0xE0, 0x5C, 0x9D, 0x43, 0xE0, 0x5D, 0xB2, 0x1E, 0xE0, +0x5E, 0x7D, 0x25, 0xE0, 0x5F, 0x9B, 0x3B, 0x60, 0x60, 0x5D, 0x07, 0xE0, 0x61, 0x7B, 0x1D, 0x60, +0x62, 0x46, 0x24, 0x60, 0x63, 0x5A, 0xFF, 0x60, 0x64, 0x26, 0x06, 0x60, 0x65, 0x3A, 0xE1, 0x60, +0x66, 0x05, 0xE8, 0x60, 0x67, 0x1A, 0xC3, 0x60, 0x67, 0xE5, 0xCA, 0x60, 0x69, 0x03, 0xDF, 0xE0, +0x69, 0xC5, 0xAC, 0x60, 0x6A, 0xE3, 0xC1, 0xE0, 0x6B, 0xA5, 0x8E, 0x60, 0x6C, 0xC3, 0xA3, 0xE0, +0x6D, 0x8E, 0xAA, 0xE0, 0x6E, 0xA3, 0x85, 0xE0, 0x6F, 0x6E, 0x8C, 0xE0, 0x70, 0x83, 0x67, 0xE0, +0x71, 0x4E, 0x6E, 0xE0, 0x72, 0x63, 0x49, 0xE0, 0x73, 0x2E, 0x50, 0xE0, 0x74, 0x4C, 0x66, 0x60, +0x75, 0x0E, 0x32, 0xE0, 0x76, 0x2C, 0x48, 0x60, 0x76, 0xF7, 0x4F, 0x60, 0x78, 0x0C, 0x2A, 0x60, +0x78, 0xD7, 0x31, 0x60, 0x79, 0xEC, 0x0C, 0x60, 0x7A, 0xB7, 0x13, 0x60, 0x7B, 0xCB, 0xEE, 0x60, +0x7C, 0x96, 0xF5, 0x60, 0x7D, 0xB5, 0x0A, 0xE0, 0x7E, 0x76, 0xD7, 0x60, 0x7F, 0x94, 0xEC, 0xE0, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x01, +0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, +0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, +0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, +0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, +0x03, 0x01, 0x03, 0x01, 0x03, 0x00, 0x00, 0x21, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, +0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, +0x30, 0x01, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBA, 0x14, 0xB8, 0x01, 0x49, +0x7C, 0xF5, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Anadyr */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0F, 0xAA, 0x19, 0x1D, 0x9C, +0xB5, 0xA3, 0x8C, 0xC0, 0x15, 0x27, 0x1B, 0x30, 0x16, 0x18, 0x4F, 0xA0, 0x17, 0x08, 0x4E, 0xB0, +0x17, 0xF9, 0x91, 0x30, 0x18, 0xE9, 0x90, 0x40, 0x19, 0xDA, 0xC4, 0xB0, 0x1A, 0xCC, 0x15, 0x40, +0x1B, 0xBC, 0x22, 0x60, 0x1C, 0xAC, 0x13, 0x60, 0x1D, 0x9C, 0x04, 0x60, 0x1E, 0x8B, 0xF5, 0x60, +0x1F, 0x7B, 0xE6, 0x60, 0x20, 0x6B, 0xD7, 0x60, 0x21, 0x5B, 0xC8, 0x60, 0x22, 0x4B, 0xB9, 0x60, +0x23, 0x3B, 0xAA, 0x60, 0x24, 0x2B, 0x9B, 0x60, 0x25, 0x1B, 0x8C, 0x60, 0x26, 0x0B, 0x7D, 0x60, +0x27, 0x04, 0xA8, 0xE0, 0x27, 0xF4, 0x99, 0xE0, 0x28, 0xE4, 0x98, 0xF0, 0x29, 0x78, 0x40, 0xF0, +0x29, 0xD4, 0x51, 0xB0, 0x2A, 0xC4, 0x34, 0xA0, 0x2B, 0xB4, 0x5D, 0xE0, 0x2C, 0xA4, 0x4E, 0xE0, +0x2D, 0x94, 0x3F, 0xE0, 0x2E, 0x84, 0x30, 0xE0, 0x2F, 0x74, 0x21, 0xE0, 0x30, 0x64, 0x12, 0xE0, +0x31, 0x5D, 0x3E, 0x60, 0x32, 0x72, 0x19, 0x60, 0x33, 0x3D, 0x20, 0x60, 0x34, 0x51, 0xFB, 0x60, +0x35, 0x1D, 0x02, 0x60, 0x36, 0x31, 0xDD, 0x60, 0x36, 0xFC, 0xE4, 0x60, 0x38, 0x1A, 0xF9, 0xE0, +0x38, 0xDC, 0xC6, 0x60, 0x39, 0xFA, 0xDB, 0xE0, 0x3A, 0xBC, 0xA8, 0x60, 0x3B, 0xDA, 0xBD, 0xE0, +0x3C, 0xA5, 0xC4, 0xE0, 0x3D, 0xBA, 0x9F, 0xE0, 0x3E, 0x85, 0xA6, 0xE0, 0x3F, 0x9A, 0x81, 0xE0, +0x40, 0x65, 0x88, 0xE0, 0x41, 0x83, 0x9E, 0x60, 0x42, 0x45, 0x6A, 0xE0, 0x43, 0x63, 0x80, 0x60, +0x44, 0x25, 0x4C, 0xE0, 0x45, 0x43, 0x62, 0x60, 0x46, 0x05, 0x2E, 0xE0, 0x47, 0x23, 0x44, 0x60, +0x47, 0xEE, 0x4B, 0x60, 0x49, 0x03, 0x26, 0x60, 0x49, 0xCE, 0x2D, 0x60, 0x4A, 0xE3, 0x08, 0x60, +0x4B, 0xAE, 0x0F, 0x60, 0x4C, 0xCC, 0x32, 0xF0, 0x4D, 0x8D, 0xFF, 0x70, 0x01, 0x03, 0x02, 0x03, +0x04, 0x01, 0x04, 0x01, 0x04, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x07, 0x08, 0x05, 0x04, 0x01, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x07, 0x08, 0x05, 0x00, 0x00, 0xA6, 0x64, +0x00, 0x00, 0x00, 0x00, 0xA8, 0xC0, 0x00, 0x04, 0x00, 0x00, 0xC4, 0xE0, 0x01, 0x09, 0x00, 0x00, +0xB6, 0xD0, 0x00, 0x04, 0x00, 0x00, 0xB6, 0xD0, 0x01, 0x09, 0x00, 0x00, 0xA8, 0xC0, 0x00, 0x04, +0x00, 0x00, 0xB6, 0xD0, 0x01, 0x09, 0x00, 0x00, 0xA8, 0xC0, 0x01, 0x09, 0x00, 0x00, 0x9A, 0xB0, +0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x4E, 0x41, 0x54, 0x00, 0x41, 0x4E, 0x41, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xEC, 0x21, 0x38, 0x02, 0x21, 0x79, 0xED, 0x00, 0x00, 0x00, 0x16, 0x4D, +0x6F, 0x73, 0x63, 0x6F, 0x77, 0x2B, 0x30, 0x38, 0x20, 0x2D, 0x20, 0x42, 0x65, 0x72, 0x69, 0x6E, +0x67, 0x20, 0x53, 0x65, 0x61, + +/* Asia/Aqtau */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x1F, 0xAA, 0x19, 0x94, 0xE0, +0xB5, 0xA3, 0xFD, 0x40, 0xF2, 0xD4, 0xAE, 0x30, 0x16, 0x18, 0xCE, 0x30, 0x17, 0x08, 0xB1, 0x20, +0x17, 0xF9, 0xF3, 0xA0, 0x18, 0xE9, 0xF2, 0xB0, 0x19, 0xDB, 0x27, 0x20, 0x1A, 0xCC, 0x77, 0xB0, +0x1B, 0xBC, 0x84, 0xD0, 0x1C, 0xAC, 0x75, 0xD0, 0x1D, 0x9C, 0x66, 0xD0, 0x1E, 0x8C, 0x57, 0xD0, +0x1F, 0x7C, 0x48, 0xD0, 0x20, 0x6C, 0x39, 0xD0, 0x21, 0x5C, 0x2A, 0xD0, 0x22, 0x4C, 0x1B, 0xD0, +0x23, 0x3C, 0x0C, 0xD0, 0x24, 0x2B, 0xFD, 0xD0, 0x25, 0x1B, 0xEE, 0xD0, 0x26, 0x0B, 0xDF, 0xD0, +0x27, 0x05, 0x0B, 0x50, 0x27, 0x7F, 0x8A, 0xB0, 0x29, 0x4B, 0xA6, 0x30, 0x29, 0xD4, 0xB4, 0x20, +0x2A, 0xC4, 0x97, 0x10, 0x2B, 0xB4, 0xC0, 0x50, 0x2C, 0xA4, 0xB1, 0x50, 0x2D, 0x94, 0xA2, 0x50, +0x2E, 0x84, 0x93, 0x50, 0x2F, 0x74, 0x84, 0x50, 0x30, 0x64, 0x83, 0x60, 0x31, 0x5D, 0xAE, 0xE0, +0x32, 0x72, 0x89, 0xE0, 0x33, 0x3D, 0x90, 0xE0, 0x34, 0x52, 0x6B, 0xE0, 0x35, 0x1D, 0x72, 0xE0, +0x36, 0x32, 0x4D, 0xE0, 0x36, 0xFD, 0x54, 0xE0, 0x38, 0x1B, 0x6A, 0x60, 0x38, 0xDD, 0x36, 0xE0, +0x39, 0xFB, 0x4C, 0x60, 0x3A, 0xBD, 0x18, 0xE0, 0x3B, 0xDB, 0x2E, 0x60, 0x3C, 0xA6, 0x35, 0x60, +0x3D, 0xBB, 0x10, 0x60, 0x3E, 0x86, 0x17, 0x60, 0x3F, 0x9A, 0xF2, 0x60, 0x40, 0x65, 0xF9, 0x60, +0x41, 0x84, 0x0E, 0xE0, 0x42, 0x35, 0xED, 0x40, 0x01, 0x02, 0x03, 0x04, 0x05, 0x03, 0x05, 0x03, +0x05, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x03, 0x09, +0x08, 0x09, 0x0A, 0x0B, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, +0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x09, 0x00, 0x00, 0x2F, 0x20, 0x00, +0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x46, +0x50, 0x00, 0x09, 0x00, 0x00, 0x54, 0x60, 0x00, 0x09, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0E, 0x00, +0x00, 0x46, 0x50, 0x00, 0x09, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0E, 0x00, 0x00, 0x54, 0x60, 0x01, +0x14, 0x00, 0x00, 0x46, 0x50, 0x00, 0x1A, 0x00, 0x00, 0x54, 0x60, 0x01, 0x14, 0x00, 0x00, 0x46, +0x50, 0x00, 0x1A, 0x00, 0x00, 0x46, 0x50, 0x01, 0x14, 0x00, 0x00, 0x38, 0x40, 0x00, 0x1A, 0x00, +0x00, 0x38, 0x40, 0x00, 0x1A, 0x4C, 0x4D, 0x54, 0x00, 0x46, 0x4F, 0x52, 0x54, 0x00, 0x53, 0x48, +0x45, 0x54, 0x00, 0x53, 0x48, 0x45, 0x53, 0x54, 0x00, 0x41, 0x51, 0x54, 0x53, 0x54, 0x00, 0x41, +0x51, 0x54, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, +0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xCD, 0x41, 0x92, 0x01, 0x5F, 0x5B, 0xEA, 0x00, 0x00, 0x00, 0x31, 0x41, 0x74, +0x79, 0x72, 0x61, 0x75, 0x20, 0x28, 0x41, 0x74, 0x69, 0x72, 0x61, 0x75, 0x2C, 0x20, 0x47, 0x75, +0x72, 0x27, 0x79, 0x65, 0x76, 0x29, 0x2C, 0x20, 0x4D, 0x61, 0x6E, 0x67, 0x67, 0x68, 0x79, 0x73, +0x74, 0x61, 0x75, 0x20, 0x28, 0x4D, 0x61, 0x6E, 0x6B, 0x69, 0x73, 0x74, 0x61, 0x75, 0x29, + +/* Asia/Aqtobe */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x1A, 0xAA, 0x19, 0x8E, 0x68, +0xB5, 0xA3, 0xFD, 0x40, 0x15, 0x27, 0x8B, 0xB0, 0x16, 0x18, 0xC0, 0x20, 0x17, 0x08, 0xB1, 0x20, +0x17, 0xF9, 0xF3, 0xA0, 0x18, 0xE9, 0xF2, 0xB0, 0x19, 0xDB, 0x27, 0x20, 0x1A, 0xCC, 0x77, 0xB0, +0x1B, 0xBC, 0x84, 0xD0, 0x1C, 0xAC, 0x75, 0xD0, 0x1D, 0x9C, 0x66, 0xD0, 0x1E, 0x8C, 0x57, 0xD0, +0x1F, 0x7C, 0x48, 0xD0, 0x20, 0x6C, 0x39, 0xD0, 0x21, 0x5C, 0x2A, 0xD0, 0x22, 0x4C, 0x1B, 0xD0, +0x23, 0x3C, 0x0C, 0xD0, 0x24, 0x2B, 0xFD, 0xD0, 0x25, 0x1B, 0xEE, 0xD0, 0x26, 0x0B, 0xDF, 0xD0, +0x27, 0x05, 0x0B, 0x50, 0x27, 0x7F, 0x8A, 0xB0, 0x29, 0x4B, 0xA6, 0x30, 0x29, 0xD4, 0xB4, 0x20, +0x2A, 0xC4, 0x97, 0x10, 0x2B, 0xB4, 0xC0, 0x50, 0x2C, 0xA4, 0xB1, 0x50, 0x2D, 0x94, 0xA2, 0x50, +0x2E, 0x84, 0x93, 0x50, 0x2F, 0x74, 0x84, 0x50, 0x30, 0x64, 0x75, 0x50, 0x31, 0x5D, 0xA0, 0xD0, +0x32, 0x72, 0x7B, 0xD0, 0x33, 0x3D, 0x82, 0xD0, 0x34, 0x52, 0x5D, 0xD0, 0x35, 0x1D, 0x64, 0xD0, +0x36, 0x32, 0x3F, 0xD0, 0x36, 0xFD, 0x46, 0xD0, 0x38, 0x1B, 0x5C, 0x50, 0x38, 0xDD, 0x28, 0xD0, +0x39, 0xFB, 0x3E, 0x50, 0x3A, 0xBD, 0x0A, 0xD0, 0x3B, 0xDB, 0x20, 0x50, 0x3C, 0xA6, 0x27, 0x50, +0x3D, 0xBB, 0x02, 0x50, 0x3E, 0x86, 0x09, 0x50, 0x3F, 0x9A, 0xE4, 0x50, 0x40, 0x65, 0xEB, 0x50, +0x41, 0x84, 0x00, 0xD0, 0x42, 0x35, 0xDF, 0x30, 0x01, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, +0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x02, 0x08, +0x07, 0x08, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, +0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x08, 0x00, 0x00, 0x35, 0x98, 0x00, +0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x54, +0x60, 0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, +0x00, 0x54, 0x60, 0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0F, 0x00, 0x00, 0x46, 0x50, 0x00, +0x15, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0F, 0x00, 0x00, 0x46, 0x50, 0x00, 0x15, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x4B, 0x54, 0x54, 0x00, 0x41, 0x4B, 0x54, 0x53, 0x54, 0x00, 0x41, 0x51, 0x54, 0x53, +0x54, 0x00, 0x41, 0x51, 0x54, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, +0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x0E, +0x2D, 0x01, 0x69, 0xE3, 0x3A, 0x00, 0x00, 0x00, 0x0F, 0x41, 0x71, 0x74, 0x6F, 0x62, 0x65, 0x20, +0x28, 0x41, 0x6B, 0x74, 0x6F, 0x62, 0x65, 0x29, + +/* Asia/Ashgabat */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x13, 0xAA, 0x19, 0x8D, 0x44, +0xB5, 0xA3, 0xFD, 0x40, 0x15, 0x27, 0x8B, 0xB0, 0x16, 0x18, 0xC0, 0x20, 0x17, 0x08, 0xBF, 0x30, +0x17, 0xF9, 0xF3, 0xA0, 0x18, 0xE9, 0xF2, 0xB0, 0x19, 0xDB, 0x27, 0x20, 0x1A, 0xCC, 0x77, 0xB0, +0x1B, 0xBC, 0x84, 0xD0, 0x1C, 0xAC, 0x75, 0xD0, 0x1D, 0x9C, 0x66, 0xD0, 0x1E, 0x8C, 0x57, 0xD0, +0x1F, 0x7C, 0x48, 0xD0, 0x20, 0x6C, 0x39, 0xD0, 0x21, 0x5C, 0x2A, 0xD0, 0x22, 0x4C, 0x1B, 0xD0, +0x23, 0x3C, 0x0C, 0xD0, 0x24, 0x2B, 0xFD, 0xD0, 0x25, 0x1B, 0xEE, 0xD0, 0x26, 0x0B, 0xDF, 0xD0, +0x27, 0x05, 0x0B, 0x50, 0x27, 0xF4, 0xFC, 0x50, 0x28, 0xE4, 0xFB, 0x60, 0x29, 0x09, 0xC9, 0x40, +0x29, 0x78, 0xA3, 0x60, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x06, 0x07, 0x08, 0x09, 0x00, 0x00, +0x36, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x01, 0x09, +0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, +0x01, 0x09, 0x00, 0x00, 0x46, 0x50, 0x01, 0x09, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, +0x38, 0x40, 0x00, 0x0F, 0x00, 0x00, 0x46, 0x50, 0x00, 0x0F, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x53, +0x48, 0x54, 0x00, 0x41, 0x53, 0x48, 0x53, 0x54, 0x00, 0x54, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, +0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xC3, 0x3C, 0x78, 0x01, 0x6B, 0xBE, 0x7D, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Ashkhabad */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x13, 0xAA, 0x19, 0x8D, 0x44, +0xB5, 0xA3, 0xFD, 0x40, 0x15, 0x27, 0x8B, 0xB0, 0x16, 0x18, 0xC0, 0x20, 0x17, 0x08, 0xBF, 0x30, +0x17, 0xF9, 0xF3, 0xA0, 0x18, 0xE9, 0xF2, 0xB0, 0x19, 0xDB, 0x27, 0x20, 0x1A, 0xCC, 0x77, 0xB0, +0x1B, 0xBC, 0x84, 0xD0, 0x1C, 0xAC, 0x75, 0xD0, 0x1D, 0x9C, 0x66, 0xD0, 0x1E, 0x8C, 0x57, 0xD0, +0x1F, 0x7C, 0x48, 0xD0, 0x20, 0x6C, 0x39, 0xD0, 0x21, 0x5C, 0x2A, 0xD0, 0x22, 0x4C, 0x1B, 0xD0, +0x23, 0x3C, 0x0C, 0xD0, 0x24, 0x2B, 0xFD, 0xD0, 0x25, 0x1B, 0xEE, 0xD0, 0x26, 0x0B, 0xDF, 0xD0, +0x27, 0x05, 0x0B, 0x50, 0x27, 0xF4, 0xFC, 0x50, 0x28, 0xE4, 0xFB, 0x60, 0x29, 0x09, 0xC9, 0x40, +0x29, 0x78, 0xA3, 0x60, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x06, 0x07, 0x08, 0x09, 0x00, 0x00, +0x36, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x01, 0x09, +0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, +0x01, 0x09, 0x00, 0x00, 0x46, 0x50, 0x01, 0x09, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, +0x38, 0x40, 0x00, 0x0F, 0x00, 0x00, 0x46, 0x50, 0x00, 0x0F, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x53, +0x48, 0x54, 0x00, 0x41, 0x53, 0x48, 0x53, 0x54, 0x00, 0x54, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, +0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Baghdad */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x49, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0C, 0x9E, 0x30, 0x3C, 0xE0, +0x17, 0x30, 0x68, 0x50, 0x17, 0xFA, 0x0F, 0xC0, 0x18, 0xE8, 0xBD, 0x50, 0x19, 0xDB, 0x43, 0x40, +0x1A, 0xCC, 0x93, 0xD0, 0x1B, 0xBD, 0xC8, 0x40, 0x1C, 0xAD, 0xC7, 0x50, 0x1D, 0x9C, 0x74, 0xE0, +0x1E, 0x8C, 0x65, 0xE0, 0x1F, 0x7C, 0x56, 0xE0, 0x20, 0x6C, 0x47, 0xE0, 0x21, 0x5C, 0x38, 0xE0, +0x22, 0x4C, 0x29, 0xE0, 0x23, 0x3C, 0x1A, 0xE0, 0x24, 0x2C, 0x0B, 0xE0, 0x25, 0x1B, 0xFC, 0xE0, +0x26, 0x0B, 0xED, 0xE0, 0x27, 0x05, 0x19, 0x60, 0x27, 0xF6, 0x78, 0x00, 0x28, 0xE7, 0xBA, 0x80, +0x29, 0xD8, 0xFD, 0x00, 0x2A, 0xCA, 0x3F, 0x80, 0x2B, 0xBA, 0x30, 0x80, 0x2C, 0xAB, 0x73, 0x00, +0x2D, 0x9B, 0x64, 0x00, 0x2E, 0x8C, 0xA6, 0x80, 0x2F, 0x7C, 0x97, 0x80, 0x30, 0x6D, 0xDA, 0x00, +0x31, 0x5F, 0x1C, 0x80, 0x32, 0x50, 0x5F, 0x00, 0x33, 0x40, 0x50, 0x00, 0x34, 0x31, 0x92, 0x80, +0x35, 0x21, 0x83, 0x80, 0x36, 0x12, 0xC6, 0x00, 0x37, 0x02, 0xB7, 0x00, 0x37, 0xF3, 0xF9, 0x80, +0x38, 0xE5, 0x3C, 0x00, 0x39, 0xD6, 0x7E, 0x80, 0x3A, 0xC6, 0x6F, 0x80, 0x3B, 0xB7, 0xB2, 0x00, +0x3C, 0xA7, 0xA3, 0x00, 0x3D, 0x98, 0xE5, 0x80, 0x3E, 0x88, 0xD6, 0x80, 0x3F, 0x7A, 0x19, 0x00, +0x40, 0x6B, 0x5B, 0x80, 0x41, 0x5C, 0x9E, 0x00, 0x42, 0x4C, 0x8F, 0x00, 0x43, 0x3D, 0xD1, 0x80, +0x44, 0x2D, 0xC2, 0x80, 0x45, 0x1F, 0x05, 0x00, 0x46, 0x0E, 0xF6, 0x00, 0x47, 0x00, 0x38, 0x80, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x29, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, +0x04, 0x00, 0x00, 0x38, 0x40, 0x01, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x00, 0x00, 0x38, +0x40, 0x01, 0x08, 0x42, 0x4D, 0x54, 0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x44, 0x54, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x37, 0x98, 0x01, 0x56, 0x6E, +0xC2, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Bahrain */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xA1, 0xF2, 0x9E, 0x14, +0x04, 0x8A, 0x92, 0xC0, 0x01, 0x02, 0x00, 0x00, 0x2F, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, +0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x47, 0x53, 0x54, 0x00, +0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x96, 0x3D, 0x01, 0x5F, +0xD7, 0x9D, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Baku */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x18, 0xAA, 0x19, 0x95, 0x44, +0xE7, 0xDA, 0x0C, 0x50, 0x15, 0x27, 0x99, 0xC0, 0x16, 0x18, 0xCE, 0x30, 0x17, 0x08, 0xCD, 0x40, +0x17, 0xFA, 0x01, 0xB0, 0x18, 0xEA, 0x00, 0xC0, 0x19, 0xDB, 0x35, 0x30, 0x1A, 0xCC, 0x85, 0xC0, +0x1B, 0xBC, 0x92, 0xE0, 0x1C, 0xAC, 0x83, 0xE0, 0x1D, 0x9C, 0x74, 0xE0, 0x1E, 0x8C, 0x65, 0xE0, +0x1F, 0x7C, 0x56, 0xE0, 0x20, 0x6C, 0x47, 0xE0, 0x21, 0x5C, 0x38, 0xE0, 0x22, 0x4C, 0x29, 0xE0, +0x23, 0x3C, 0x1A, 0xE0, 0x24, 0x2C, 0x0B, 0xE0, 0x25, 0x1B, 0xFC, 0xE0, 0x26, 0x0B, 0xED, 0xE0, +0x27, 0x05, 0x19, 0x60, 0x27, 0xF5, 0x0A, 0x60, 0x28, 0xBD, 0x52, 0x40, 0x28, 0xE5, 0x09, 0x70, +0x29, 0xD4, 0xD0, 0x40, 0x2A, 0xC4, 0xB3, 0x30, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, +0x32, 0xC9, 0x70, 0xC0, 0x33, 0x3D, 0xAD, 0x00, 0x34, 0x52, 0x88, 0x00, 0x35, 0x1D, 0x8F, 0x00, +0x36, 0x32, 0x6A, 0x00, 0x36, 0xFD, 0x71, 0x00, 0x38, 0x1B, 0x86, 0x80, 0x38, 0xDD, 0x53, 0x00, +0x39, 0xFB, 0x68, 0x80, 0x3A, 0xBD, 0x35, 0x00, 0x3B, 0xDB, 0x4A, 0x80, 0x3C, 0xA6, 0x51, 0x80, +0x3D, 0xBB, 0x2C, 0x80, 0x3E, 0x86, 0x33, 0x80, 0x3F, 0x9B, 0x0E, 0x80, 0x40, 0x66, 0x15, 0x80, +0x41, 0x84, 0x2B, 0x00, 0x42, 0x45, 0xF7, 0x80, 0x43, 0x64, 0x0D, 0x00, 0x44, 0x25, 0xD9, 0x80, +0x45, 0x43, 0xEF, 0x00, 0x46, 0x05, 0xBB, 0x80, 0x47, 0x23, 0xD1, 0x00, 0x47, 0xEE, 0xD8, 0x00, +0x49, 0x03, 0xB3, 0x00, 0x49, 0xCE, 0xBA, 0x00, 0x4A, 0xE3, 0x95, 0x00, 0x4B, 0xAE, 0x9C, 0x00, +0x4C, 0xCC, 0xB1, 0x80, 0x4D, 0x8E, 0x7E, 0x00, 0x4E, 0xAC, 0x93, 0x80, 0x4F, 0x6E, 0x60, 0x00, +0x50, 0x8C, 0x75, 0x80, 0x51, 0x57, 0x7C, 0x80, 0x52, 0x6C, 0x57, 0x80, 0x53, 0x37, 0x5E, 0x80, +0x54, 0x4C, 0x39, 0x80, 0x55, 0x17, 0x40, 0x80, 0x56, 0x2C, 0x1B, 0x80, 0x56, 0xF7, 0x22, 0x80, +0x58, 0x15, 0x38, 0x00, 0x58, 0xD7, 0x04, 0x80, 0x59, 0xF5, 0x1A, 0x00, 0x5A, 0xB6, 0xE6, 0x80, +0x5B, 0xD4, 0xFC, 0x00, 0x5C, 0xA0, 0x03, 0x00, 0x5D, 0xB4, 0xDE, 0x00, 0x5E, 0x7F, 0xE5, 0x00, +0x5F, 0x94, 0xC0, 0x00, 0x60, 0x5F, 0xC7, 0x00, 0x61, 0x7D, 0xDC, 0x80, 0x62, 0x3F, 0xA9, 0x00, +0x63, 0x5D, 0xBE, 0x80, 0x64, 0x1F, 0x8B, 0x00, 0x65, 0x3D, 0xA0, 0x80, 0x66, 0x08, 0xA7, 0x80, +0x67, 0x1D, 0x82, 0x80, 0x67, 0xE8, 0x89, 0x80, 0x68, 0xFD, 0x64, 0x80, 0x69, 0xC8, 0x6B, 0x80, +0x6A, 0xDD, 0x46, 0x80, 0x6B, 0xA8, 0x4D, 0x80, 0x6C, 0xC6, 0x63, 0x00, 0x6D, 0x88, 0x2F, 0x80, +0x6E, 0xA6, 0x45, 0x00, 0x6F, 0x68, 0x11, 0x80, 0x70, 0x86, 0x27, 0x00, 0x71, 0x51, 0x2E, 0x00, +0x72, 0x66, 0x09, 0x00, 0x73, 0x31, 0x10, 0x00, 0x74, 0x45, 0xEB, 0x00, 0x75, 0x10, 0xF2, 0x00, +0x76, 0x2F, 0x07, 0x80, 0x76, 0xF0, 0xD4, 0x00, 0x78, 0x0E, 0xE9, 0x80, 0x78, 0xD0, 0xB6, 0x00, +0x79, 0xEE, 0xCB, 0x80, 0x7A, 0xB0, 0x98, 0x00, 0x7B, 0xCE, 0xAD, 0x80, 0x7C, 0x99, 0xB4, 0x80, +0x7D, 0xAE, 0x8F, 0x80, 0x7E, 0x79, 0x96, 0x80, 0x7F, 0x8E, 0x71, 0x80, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x08, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, +0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, +0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, +0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, +0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, +0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x0C, 0x09, 0x00, 0x00, 0x2E, 0xBC, +0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x01, 0x09, 0x00, 0x00, +0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x01, 0x09, +0x00, 0x00, 0x38, 0x40, 0x01, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0F, 0x00, 0x00, 0x38, 0x40, +0x01, 0x13, 0x00, 0x00, 0x38, 0x40, 0x00, 0x0F, 0x00, 0x00, 0x46, 0x50, 0x01, 0x13, 0x00, 0x00, +0x38, 0x40, 0x00, 0x0F, 0x00, 0x00, 0x46, 0x50, 0x01, 0x13, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x41, +0x4B, 0x54, 0x00, 0x42, 0x41, 0x4B, 0x53, 0x54, 0x00, 0x41, 0x5A, 0x54, 0x00, 0x41, 0x5A, 0x53, +0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xC6, 0xF2, 0xFD, +0x01, 0x5E, 0xB9, 0x28, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Bangkok */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xA2, 0x6A, 0x67, 0xC4, +0x01, 0x00, 0x00, 0x5E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x42, 0x4D, 0x54, +0x00, 0x49, 0x43, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x4F, 0x58, 0x01, 0xAC, 0x08, +0xD2, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Beirut */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4C, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0xA2, 0x65, 0x63, 0xE0, +0xA3, 0x7B, 0x82, 0x50, 0xA4, 0x4E, 0x80, 0x60, 0xA5, 0x3F, 0xB4, 0xD0, 0xA6, 0x25, 0x27, 0xE0, +0xA7, 0x27, 0x7F, 0xD0, 0xA8, 0x29, 0xF3, 0xE0, 0xA8, 0xEB, 0xB2, 0x50, 0xE8, 0x2A, 0x85, 0xE0, +0xE8, 0xF4, 0x2D, 0x50, 0xEA, 0x0B, 0xB9, 0x60, 0xEA, 0xD5, 0x60, 0xD0, 0xEB, 0xEC, 0xEC, 0xE0, +0xEC, 0xB6, 0x94, 0x50, 0xED, 0xCF, 0x71, 0xE0, 0xEE, 0x99, 0x19, 0x50, 0xEF, 0xB0, 0xA5, 0x60, +0xF0, 0x7A, 0x4C, 0xD0, 0x04, 0xA6, 0x5E, 0x60, 0x05, 0x2B, 0x77, 0xD0, 0x06, 0x43, 0x03, 0xE0, +0x07, 0x0C, 0xAB, 0x50, 0x08, 0x24, 0x37, 0x60, 0x08, 0xED, 0xDE, 0xD0, 0x0A, 0x05, 0x6A, 0xE0, +0x0A, 0xCF, 0x12, 0x50, 0x0B, 0xE7, 0xEF, 0xE0, 0x0C, 0xB1, 0x97, 0x50, 0x0D, 0xC9, 0x23, 0x60, +0x0E, 0x92, 0xCA, 0xD0, 0x0F, 0xA9, 0x05, 0x60, 0x10, 0x72, 0xAC, 0xD0, 0x1A, 0xF4, 0x2E, 0xE0, +0x1B, 0xD1, 0x9C, 0xD0, 0x1C, 0xD5, 0x62, 0x60, 0x1D, 0xB2, 0xD0, 0x50, 0x1E, 0xB6, 0x95, 0xE0, +0x1F, 0x94, 0x03, 0xD0, 0x20, 0x97, 0xC9, 0x60, 0x21, 0x75, 0x37, 0x50, 0x22, 0xA3, 0x2C, 0xE0, +0x23, 0x57, 0xBC, 0x50, 0x24, 0x67, 0x5F, 0x60, 0x25, 0x38, 0xEF, 0xD0, 0x26, 0x3C, 0xB5, 0x60, +0x27, 0x1A, 0x23, 0x50, 0x28, 0x1D, 0xE8, 0xE0, 0x28, 0xFB, 0x56, 0xD0, 0x2A, 0x00, 0x6D, 0xE0, +0x2A, 0xCE, 0x09, 0xD0, 0x2B, 0xB4, 0xCE, 0x60, 0x2C, 0xA4, 0xB1, 0x50, 0x2D, 0x94, 0xB0, 0x60, +0x2E, 0x84, 0x93, 0x50, 0x2F, 0x74, 0x92, 0x60, 0x30, 0x64, 0x75, 0x50, 0x31, 0x5D, 0xAE, 0xE0, +0x32, 0x4D, 0x91, 0xD0, 0x33, 0x3D, 0x90, 0xE0, 0x34, 0x2D, 0x73, 0xD0, 0x35, 0x1D, 0x72, 0xE0, +0x36, 0x0D, 0x55, 0xD0, 0x36, 0xFD, 0x54, 0xE0, 0x38, 0x1B, 0x5C, 0x50, 0x38, 0xDD, 0x36, 0xE0, +0x39, 0xFB, 0x3E, 0x50, 0x3A, 0xBD, 0x18, 0xE0, 0x3B, 0xDB, 0x20, 0x50, 0x3C, 0xA6, 0x35, 0x60, +0x3D, 0xBB, 0x02, 0x50, 0x3E, 0x86, 0x17, 0x60, 0x3F, 0x9A, 0xE4, 0x50, 0x40, 0x65, 0xF9, 0x60, +0x41, 0x84, 0x00, 0xD0, 0x42, 0x45, 0xDB, 0x60, 0x43, 0x63, 0xE2, 0xD0, 0x44, 0x25, 0xBD, 0x60, +0x45, 0x43, 0xC4, 0xD0, 0x46, 0x05, 0x9F, 0x60, 0x47, 0x23, 0xA6, 0xD0, 0x47, 0xEE, 0xBB, 0xE0, +0x49, 0x03, 0x88, 0xD0, 0x49, 0xCE, 0x9D, 0xE0, 0x4A, 0xE3, 0x6A, 0xD0, 0x4B, 0xAE, 0x7F, 0xE0, +0x4C, 0xCC, 0x87, 0x50, 0x4D, 0x8E, 0x61, 0xE0, 0x4E, 0xAC, 0x69, 0x50, 0x4F, 0x6E, 0x43, 0xE0, +0x50, 0x8C, 0x4B, 0x50, 0x51, 0x57, 0x60, 0x60, 0x52, 0x6C, 0x2D, 0x50, 0x53, 0x37, 0x42, 0x60, +0x54, 0x4C, 0x0F, 0x50, 0x55, 0x17, 0x24, 0x60, 0x56, 0x2B, 0xF1, 0x50, 0x56, 0xF7, 0x06, 0x60, +0x58, 0x15, 0x0D, 0xD0, 0x58, 0xD6, 0xE8, 0x60, 0x59, 0xF4, 0xEF, 0xD0, 0x5A, 0xB6, 0xCA, 0x60, +0x5B, 0xD4, 0xD1, 0xD0, 0x5C, 0x9F, 0xE6, 0xE0, 0x5D, 0xB4, 0xB3, 0xD0, 0x5E, 0x7F, 0xC8, 0xE0, +0x5F, 0x94, 0x95, 0xD0, 0x60, 0x5F, 0xAA, 0xE0, 0x61, 0x7D, 0xB2, 0x50, 0x62, 0x3F, 0x8C, 0xE0, +0x63, 0x5D, 0x94, 0x50, 0x64, 0x1F, 0x6E, 0xE0, 0x65, 0x3D, 0x76, 0x50, 0x66, 0x08, 0x8B, 0x60, +0x67, 0x1D, 0x58, 0x50, 0x67, 0xE8, 0x6D, 0x60, 0x68, 0xFD, 0x3A, 0x50, 0x69, 0xC8, 0x4F, 0x60, +0x6A, 0xDD, 0x1C, 0x50, 0x6B, 0xA8, 0x31, 0x60, 0x6C, 0xC6, 0x38, 0xD0, 0x6D, 0x88, 0x13, 0x60, +0x6E, 0xA6, 0x1A, 0xD0, 0x6F, 0x67, 0xF5, 0x60, 0x70, 0x85, 0xFC, 0xD0, 0x71, 0x51, 0x11, 0xE0, +0x72, 0x65, 0xDE, 0xD0, 0x73, 0x30, 0xF3, 0xE0, 0x74, 0x45, 0xC0, 0xD0, 0x75, 0x10, 0xD5, 0xE0, +0x76, 0x2E, 0xDD, 0x50, 0x76, 0xF0, 0xB7, 0xE0, 0x78, 0x0E, 0xBF, 0x50, 0x78, 0xD0, 0x99, 0xE0, +0x79, 0xEE, 0xA1, 0x50, 0x7A, 0xB0, 0x7B, 0xE0, 0x7B, 0xCE, 0x83, 0x50, 0x7C, 0x99, 0x98, 0x60, +0x7D, 0xAE, 0x65, 0x50, 0x7E, 0x79, 0x7A, 0x60, 0x7F, 0x8E, 0x47, 0x50, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00, 0x00, 0x00, +0x1C, 0x20, 0x00, 0x05, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xBD, 0x07, 0xED, 0x01, 0x48, 0xD3, 0xB0, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Bishkek */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x18, 0xAA, 0x19, 0x7E, 0x10, +0xB5, 0xA3, 0xEF, 0x30, 0x15, 0x27, 0x7D, 0xA0, 0x16, 0x18, 0xB2, 0x10, 0x17, 0x08, 0xB1, 0x20, +0x17, 0xF9, 0xE5, 0x90, 0x18, 0xE9, 0xE4, 0xA0, 0x19, 0xDB, 0x19, 0x10, 0x1A, 0xCC, 0x69, 0xA0, +0x1B, 0xBC, 0x76, 0xC0, 0x1C, 0xAC, 0x67, 0xC0, 0x1D, 0x9C, 0x58, 0xC0, 0x1E, 0x8C, 0x49, 0xC0, +0x1F, 0x7C, 0x3A, 0xC0, 0x20, 0x6C, 0x2B, 0xC0, 0x21, 0x5C, 0x1C, 0xC0, 0x22, 0x4C, 0x0D, 0xC0, +0x23, 0x3B, 0xFE, 0xC0, 0x24, 0x2B, 0xEF, 0xC0, 0x25, 0x1B, 0xE0, 0xC0, 0x26, 0x0B, 0xD1, 0xC0, +0x27, 0x04, 0xFD, 0x40, 0x27, 0xF4, 0xEE, 0x40, 0x28, 0xBE, 0xA3, 0xC0, 0x29, 0xE7, 0x37, 0x30, +0x2A, 0xC4, 0xA5, 0x20, 0x2B, 0xC7, 0x19, 0x30, 0x2C, 0xA4, 0x87, 0x20, 0x2D, 0xA6, 0xFB, 0x30, +0x2E, 0x84, 0x69, 0x20, 0x2F, 0x86, 0xDD, 0x30, 0x30, 0x64, 0x4B, 0x20, 0x31, 0x66, 0xBF, 0x30, +0x32, 0x4D, 0x67, 0xA0, 0x33, 0x3D, 0x89, 0xD8, 0x34, 0x52, 0x56, 0xC8, 0x35, 0x1D, 0x6B, 0xD8, +0x36, 0x32, 0x38, 0xC8, 0x36, 0xFD, 0x4D, 0xD8, 0x38, 0x1B, 0x55, 0x48, 0x38, 0xDD, 0x2F, 0xD8, +0x39, 0xFB, 0x37, 0x48, 0x3A, 0xBD, 0x11, 0xD8, 0x3B, 0xDB, 0x19, 0x48, 0x3C, 0xA6, 0x2E, 0x58, +0x3D, 0xBA, 0xFB, 0x48, 0x3E, 0x86, 0x10, 0x58, 0x3F, 0x9A, 0xDD, 0x48, 0x40, 0x65, 0xF2, 0x58, +0x41, 0x83, 0xF9, 0xC8, 0x42, 0x45, 0xD4, 0x58, 0x42, 0xFB, 0x92, 0x20, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x0A, +0x00, 0x00, 0x45, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, +0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, +0x62, 0x70, 0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0F, +0x00, 0x00, 0x46, 0x50, 0x00, 0x14, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0F, 0x00, 0x00, 0x54, 0x60, +0x00, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x46, 0x52, 0x55, 0x54, 0x00, 0x46, 0x52, 0x55, 0x53, 0x54, +0x00, 0x4B, 0x47, 0x53, 0x54, 0x00, 0x4B, 0x47, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, +0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xCA, 0xCA, 0x10, 0x01, 0x84, 0x7D, 0x20, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Brunei */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0xAD, 0x8A, 0x02, 0x44, +0xBA, 0x67, 0x47, 0x88, 0x01, 0x02, 0x00, 0x00, 0x6B, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x69, 0x78, +0x00, 0x04, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x4E, 0x54, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xDB, 0x55, 0x01, 0xC2, 0x01, 0xD2, 0x00, 0x00, +0x00, 0x00, + +/* Asia/Calcutta */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0D, 0xCA, 0xDB, 0x86, 0xB0, +0xCC, 0x05, 0x71, 0x18, 0xCC, 0x95, 0x32, 0xA8, 0xD2, 0x74, 0x12, 0x98, 0x01, 0x02, 0x03, 0x02, +0x00, 0x00, 0x52, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x68, 0x00, 0x04, 0x00, 0x00, 0x4D, 0x58, +0x00, 0x09, 0x00, 0x00, 0x5B, 0x68, 0x01, 0x09, 0x48, 0x4D, 0x54, 0x00, 0x42, 0x55, 0x52, 0x54, +0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Choibalsan */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x86, 0xD3, 0xE7, 0x28, +0x0F, 0x0B, 0xDC, 0x90, 0x18, 0xE9, 0xC8, 0x80, 0x19, 0xDA, 0xEE, 0xE0, 0x1A, 0xCC, 0x3F, 0x70, +0x1B, 0xBC, 0x22, 0x60, 0x1C, 0xAC, 0x21, 0x70, 0x1D, 0x9C, 0x04, 0x60, 0x1E, 0x8C, 0x03, 0x70, +0x1F, 0x7B, 0xE6, 0x60, 0x20, 0x6B, 0xE5, 0x70, 0x21, 0x5B, 0xC8, 0x60, 0x22, 0x4B, 0xC7, 0x70, +0x23, 0x3B, 0xAA, 0x60, 0x24, 0x2B, 0xA9, 0x70, 0x25, 0x1B, 0x8C, 0x60, 0x26, 0x0B, 0x8B, 0x70, +0x27, 0x04, 0xA8, 0xE0, 0x27, 0xF4, 0xA7, 0xF0, 0x28, 0xE4, 0x8A, 0xE0, 0x29, 0xD4, 0x89, 0xF0, +0x2A, 0xC4, 0x6C, 0xE0, 0x2B, 0xB4, 0x6B, 0xF0, 0x2C, 0xA4, 0x4E, 0xE0, 0x2D, 0x94, 0x4D, 0xF0, +0x2E, 0x84, 0x30, 0xE0, 0x2F, 0x74, 0x2F, 0xF0, 0x30, 0x64, 0x12, 0xE0, 0x31, 0x5D, 0x4C, 0x70, +0x32, 0x4D, 0x2F, 0x60, 0x33, 0x3D, 0x2E, 0x70, 0x34, 0x2D, 0x11, 0x60, 0x35, 0x1D, 0x10, 0x70, +0x36, 0x0C, 0xF3, 0x60, 0x3A, 0xE9, 0xA5, 0x90, 0x3B, 0xB4, 0x9E, 0x80, 0x3C, 0xA4, 0x9D, 0x90, +0x3D, 0x94, 0x80, 0x80, 0x3E, 0x84, 0x7F, 0x90, 0x3F, 0x74, 0x62, 0x80, 0x40, 0x64, 0x61, 0x90, +0x41, 0x54, 0x44, 0x80, 0x42, 0x44, 0x43, 0x90, 0x43, 0x34, 0x26, 0x80, 0x44, 0x24, 0x25, 0x90, +0x45, 0x1D, 0x43, 0x00, 0x47, 0xEF, 0xAA, 0xF0, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x00, 0x00, 0x6B, 0x58, 0x00, 0x00, 0x00, 0x00, 0x62, +0x70, 0x00, 0x04, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x09, 0x00, +0x00, 0x8C, 0xA0, 0x01, 0x0E, 0x00, 0x00, 0x70, 0x80, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x55, +0x4C, 0x41, 0x54, 0x00, 0x43, 0x48, 0x4F, 0x54, 0x00, 0x43, 0x48, 0x4F, 0x53, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0xAC, 0x4A, 0x01, +0xC1, 0x5F, 0x10, 0x00, 0x00, 0x00, 0x12, 0x44, 0x6F, 0x72, 0x6E, 0x6F, 0x64, 0x2C, 0x20, 0x53, +0x75, 0x6B, 0x68, 0x62, 0x61, 0x61, 0x74, 0x61, 0x72, + +/* Asia/Chongqing */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0xB0, 0xFE, 0xA8, 0x94, +0x13, 0x6D, 0xC9, 0x10, 0x1E, 0xBA, 0x36, 0x00, 0x1F, 0x69, 0x7F, 0x70, 0x20, 0x7E, 0x68, 0x80, +0x21, 0x49, 0x61, 0x70, 0x22, 0x5E, 0x4A, 0x80, 0x23, 0x29, 0x43, 0x70, 0x24, 0x47, 0x67, 0x00, +0x25, 0x12, 0x5F, 0xF0, 0x26, 0x27, 0x49, 0x00, 0x26, 0xF2, 0x41, 0xF0, 0x28, 0x07, 0x2B, 0x00, +0x28, 0xD2, 0x23, 0xF0, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x00, 0x00, 0x63, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, +0x7E, 0x90, 0x01, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x4C, 0x4F, +0x4E, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xB6, 0x71, 0xBA, 0x01, 0xB5, 0x4A, 0x9D, 0x00, 0x00, 0x00, 0x40, 0x63, +0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x43, 0x68, 0x69, 0x6E, 0x61, 0x20, 0x2D, 0x20, 0x53, +0x69, 0x63, 0x68, 0x75, 0x61, 0x6E, 0x2C, 0x20, 0x59, 0x75, 0x6E, 0x6E, 0x61, 0x6E, 0x2C, 0x20, +0x47, 0x75, 0x61, 0x6E, 0x67, 0x78, 0x69, 0x2C, 0x20, 0x53, 0x68, 0x61, 0x61, 0x6E, 0x78, 0x69, +0x2C, 0x20, 0x47, 0x75, 0x69, 0x7A, 0x68, 0x6F, 0x75, 0x2C, 0x20, 0x65, 0x74, 0x63, 0x2E, + +/* Asia/Chungking */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0xB0, 0xFE, 0xA8, 0x94, +0x13, 0x6D, 0xC9, 0x10, 0x1E, 0xBA, 0x36, 0x00, 0x1F, 0x69, 0x7F, 0x70, 0x20, 0x7E, 0x68, 0x80, +0x21, 0x49, 0x61, 0x70, 0x22, 0x5E, 0x4A, 0x80, 0x23, 0x29, 0x43, 0x70, 0x24, 0x47, 0x67, 0x00, +0x25, 0x12, 0x5F, 0xF0, 0x26, 0x27, 0x49, 0x00, 0x26, 0xF2, 0x41, 0xF0, 0x28, 0x07, 0x2B, 0x00, +0x28, 0xD2, 0x23, 0xF0, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x00, 0x00, 0x63, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, +0x7E, 0x90, 0x01, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x4C, 0x4F, +0x4E, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Colombo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4C, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x87, 0x9D, 0xBD, 0x1C, +0xCB, 0x5A, 0x1C, 0x28, 0xCC, 0x95, 0x2B, 0xA0, 0xD2, 0x75, 0x80, 0x38, 0x31, 0xA6, 0x00, 0x28, +0x32, 0x71, 0x00, 0x20, 0x44, 0x3F, 0xEA, 0x28, 0x01, 0x02, 0x03, 0x01, 0x04, 0x05, 0x01, 0x00, +0x00, 0x4A, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x58, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x01, +0x08, 0x00, 0x00, 0x5B, 0x68, 0x01, 0x04, 0x00, 0x00, 0x5B, 0x68, 0x00, 0x0D, 0x00, 0x00, 0x54, +0x60, 0x00, 0x0D, 0x4D, 0x4D, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x49, 0x48, 0x53, 0x54, 0x00, +0x4C, 0x4B, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x93, 0xE8, 0x95, 0x01, 0x8C, 0x7F, 0xE8, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Dacca */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1B, 0xCA, 0xDB, 0x86, 0xB0, +0xCC, 0x05, 0x71, 0x18, 0xCC, 0x95, 0x32, 0xA8, 0xDD, 0xA8, 0xD2, 0x98, 0x02, 0x4F, 0x9D, 0x20, +0x4A, 0x3B, 0xC4, 0x10, 0x4B, 0x3C, 0xD8, 0x54, 0x01, 0x02, 0x01, 0x03, 0x04, 0x05, 0x04, 0x00, +0x00, 0x52, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x68, 0x00, 0x04, 0x00, 0x00, 0x4D, 0x58, 0x00, +0x09, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0D, 0x00, 0x00, 0x54, 0x60, 0x00, 0x12, 0x00, 0x00, 0x62, +0x70, 0x01, 0x16, 0x48, 0x4D, 0x54, 0x00, 0x42, 0x55, 0x52, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, +0x44, 0x41, 0x43, 0x54, 0x00, 0x42, 0x44, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Damascus */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0xA1, 0xF2, 0xAB, 0x78, +0xA2, 0x81, 0x2F, 0x80, 0xA3, 0x5E, 0x9D, 0x70, 0xA4, 0x61, 0x11, 0x80, 0xA5, 0x3E, 0x7F, 0x70, +0xA6, 0x40, 0xF3, 0x80, 0xA7, 0x1E, 0x61, 0x70, 0xA8, 0x20, 0xD5, 0x80, 0xA9, 0x07, 0x7D, 0xF0, +0xF1, 0x8F, 0x52, 0x00, 0xF2, 0x5B, 0x9C, 0x70, 0xF3, 0x73, 0x28, 0x80, 0xF4, 0x3B, 0x7E, 0x70, +0xF5, 0x55, 0xAD, 0x80, 0xF6, 0x1F, 0x54, 0xF0, 0xF7, 0x36, 0xE1, 0x00, 0xF7, 0xFF, 0x36, 0xF0, +0xF9, 0x0E, 0xDA, 0x00, 0xF9, 0xE1, 0xBB, 0xF0, 0xFA, 0xF9, 0x48, 0x00, 0xFB, 0xC2, 0xEF, 0x70, +0xFC, 0xDB, 0xCD, 0x00, 0xFD, 0xA5, 0x74, 0x70, 0xFE, 0xBD, 0x00, 0x80, 0xFF, 0x86, 0xA7, 0xF0, +0x00, 0x9E, 0x34, 0x00, 0x01, 0x67, 0xDB, 0x70, 0x02, 0x7F, 0x67, 0x80, 0x03, 0x49, 0x0E, 0xF0, +0x04, 0x61, 0xEC, 0x80, 0x05, 0x2B, 0x93, 0xF0, 0x06, 0x43, 0x20, 0x00, 0x07, 0x0C, 0xC7, 0x70, +0x08, 0x24, 0x53, 0x80, 0x08, 0xED, 0xFA, 0xF0, 0x0A, 0x05, 0x87, 0x00, 0x0A, 0xCF, 0x2E, 0x70, +0x0B, 0xE8, 0x0C, 0x00, 0x0C, 0xB1, 0xB3, 0x70, 0x0D, 0xC9, 0x3F, 0x80, 0x0E, 0x6B, 0x59, 0xF0, +0x0F, 0xAA, 0x73, 0x00, 0x10, 0x4C, 0x8D, 0x70, 0x18, 0xF4, 0xC5, 0x00, 0x19, 0xDB, 0x6D, 0x70, +0x1A, 0xD7, 0x4A, 0x00, 0x1B, 0xBD, 0xF2, 0x70, 0x1E, 0x55, 0x23, 0x00, 0x1F, 0x8A, 0xE5, 0x70, +0x20, 0x47, 0x7A, 0x00, 0x21, 0x89, 0x19, 0xF0, 0x22, 0x3C, 0x74, 0x00, 0x23, 0x6B, 0x9E, 0xF0, +0x24, 0x32, 0xBF, 0x80, 0x25, 0x25, 0x45, 0x70, 0x26, 0x15, 0x44, 0x80, 0x27, 0x05, 0x27, 0x70, +0x27, 0xF6, 0x5B, 0xE0, 0x28, 0xE7, 0x90, 0x50, 0x29, 0xE2, 0x1B, 0x60, 0x2A, 0xCA, 0x15, 0x50, +0x2B, 0xB2, 0x2B, 0x60, 0x2C, 0xA3, 0x5F, 0xD0, 0x2D, 0x9B, 0x47, 0xE0, 0x2E, 0x8C, 0x7C, 0x50, +0x2F, 0x7C, 0x7B, 0x60, 0x30, 0x6D, 0xAF, 0xD0, 0x31, 0x5F, 0x00, 0x60, 0x32, 0x50, 0x34, 0xD0, +0x33, 0x3E, 0xE2, 0x60, 0x34, 0x31, 0x68, 0x50, 0x35, 0x1E, 0xC4, 0x60, 0x36, 0x12, 0x9B, 0xD0, +0x37, 0x02, 0x9A, 0xE0, 0x37, 0xF3, 0xCF, 0x50, 0x38, 0xE5, 0x1F, 0xE0, 0x39, 0xD6, 0x54, 0x50, +0x3A, 0xC6, 0x53, 0x60, 0x3B, 0xB7, 0x87, 0xD0, 0x3C, 0xA7, 0x86, 0xE0, 0x3D, 0x98, 0xBB, 0x50, +0x3E, 0x88, 0xBA, 0x60, 0x3F, 0x79, 0xEE, 0xD0, 0x40, 0x6B, 0x3F, 0x60, 0x41, 0x5C, 0x73, 0xD0, +0x42, 0x4C, 0x72, 0xE0, 0x43, 0x3D, 0xA7, 0x50, 0x44, 0x2D, 0xA6, 0x60, 0x45, 0x12, 0xFD, 0x50, +0x46, 0x0C, 0x36, 0xE0, 0x47, 0x2A, 0x3E, 0x50, 0x47, 0xF5, 0x53, 0x60, 0x49, 0x0B, 0x71, 0xD0, +0x49, 0xCB, 0xFA, 0xE0, 0x4A, 0xEA, 0x02, 0x50, 0x4B, 0xB5, 0x17, 0x60, 0x4C, 0xC9, 0xE4, 0x50, +0x4D, 0x94, 0xF9, 0x60, 0x4E, 0xA9, 0xC6, 0x50, 0x4F, 0x74, 0xDB, 0x60, 0x50, 0x89, 0xA8, 0x50, +0x51, 0x54, 0xBD, 0x60, 0x52, 0x69, 0x8A, 0x50, 0x53, 0x34, 0x9F, 0x60, 0x54, 0x52, 0xA6, 0xD0, +0x55, 0x14, 0x81, 0x60, 0x56, 0x32, 0x88, 0xD0, 0x56, 0xF4, 0x63, 0x60, 0x58, 0x12, 0x6A, 0xD0, +0x58, 0xDD, 0x7F, 0xE0, 0x59, 0xF2, 0x4C, 0xD0, 0x5A, 0xBD, 0x61, 0xE0, 0x5B, 0xD2, 0x2E, 0xD0, +0x5C, 0x9D, 0x43, 0xE0, 0x5D, 0xB2, 0x10, 0xD0, 0x5E, 0x7D, 0x25, 0xE0, 0x5F, 0x9B, 0x2D, 0x50, +0x60, 0x5D, 0x07, 0xE0, 0x61, 0x7B, 0x0F, 0x50, 0x62, 0x3C, 0xE9, 0xE0, 0x63, 0x5A, 0xF1, 0x50, +0x64, 0x26, 0x06, 0x60, 0x65, 0x3A, 0xD3, 0x50, 0x66, 0x05, 0xE8, 0x60, 0x67, 0x1A, 0xB5, 0x50, +0x67, 0xE5, 0xCA, 0x60, 0x69, 0x03, 0xD1, 0xD0, 0x69, 0xC5, 0xAC, 0x60, 0x6A, 0xE3, 0xB3, 0xD0, +0x6B, 0xA5, 0x8E, 0x60, 0x6C, 0xC3, 0x95, 0xD0, 0x6D, 0x8E, 0xAA, 0xE0, 0x6E, 0xA3, 0x77, 0xD0, +0x6F, 0x6E, 0x8C, 0xE0, 0x70, 0x83, 0x59, 0xD0, 0x71, 0x4E, 0x6E, 0xE0, 0x72, 0x63, 0x3B, 0xD0, +0x73, 0x2E, 0x50, 0xE0, 0x74, 0x4C, 0x58, 0x50, 0x75, 0x0E, 0x32, 0xE0, 0x76, 0x2C, 0x3A, 0x50, +0x76, 0xEE, 0x14, 0xE0, 0x78, 0x0C, 0x1C, 0x50, 0x78, 0xD7, 0x31, 0x60, 0x79, 0xEB, 0xFE, 0x50, +0x7A, 0xB7, 0x13, 0x60, 0x7B, 0xCB, 0xE0, 0x50, 0x7C, 0x96, 0xF5, 0x60, 0x7D, 0xB4, 0xFC, 0xD0, +0x7E, 0x76, 0xD7, 0x60, 0x7F, 0x94, 0xDE, 0xD0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, +0x00, 0x22, 0x08, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, +0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x72, 0x30, 0x01, 0x4A, 0x0C, 0x30, 0x00, 0x00, 0x00, 0x00, + + +/* Asia/Dhaka */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1B, 0xCA, 0xDB, 0x86, 0xB0, +0xCC, 0x05, 0x71, 0x18, 0xCC, 0x95, 0x32, 0xA8, 0xDD, 0xA8, 0xD2, 0x98, 0x02, 0x4F, 0x9D, 0x20, +0x4A, 0x3B, 0xC4, 0x10, 0x4B, 0x3C, 0xD8, 0x54, 0x01, 0x02, 0x01, 0x03, 0x04, 0x05, 0x04, 0x00, +0x00, 0x52, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x68, 0x00, 0x04, 0x00, 0x00, 0x4D, 0x58, 0x00, +0x09, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0D, 0x00, 0x00, 0x54, 0x60, 0x00, 0x12, 0x00, 0x00, 0x62, +0x70, 0x01, 0x16, 0x48, 0x4D, 0x54, 0x00, 0x42, 0x55, 0x52, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, +0x44, 0x41, 0x43, 0x54, 0x00, 0x42, 0x44, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAD, 0x84, 0x92, 0x01, 0x9C, +0x9F, 0x82, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Dili */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0x92, 0xE6, 0x18, 0xC4, +0xCB, 0x99, 0x32, 0xF0, 0xD2, 0x56, 0xEE, 0x70, 0x0B, 0xEA, 0x30, 0x70, 0x39, 0xC3, 0x99, 0x00, +0x01, 0x02, 0x03, 0x04, 0x03, 0x00, 0x00, 0x75, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x70, 0x80, 0x00, +0x04, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x08, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x04, 0x00, 0x00, 0x70, +0x80, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x54, 0x4C, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x43, +0x49, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x48, +0x68, 0x01, 0xD2, 0x48, 0x7D, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Dubai */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xA1, 0xF2, 0x99, 0xA8, +0x01, 0x00, 0x00, 0x33, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x47, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAF, 0xEF, 0x10, 0x01, 0x67, 0x0A, +0x10, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Dushanbe */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x13, 0xAA, 0x19, 0x83, 0x80, +0xB5, 0xA3, 0xEF, 0x30, 0x15, 0x27, 0x7D, 0xA0, 0x16, 0x18, 0xB2, 0x10, 0x17, 0x08, 0xB1, 0x20, +0x17, 0xF9, 0xE5, 0x90, 0x18, 0xE9, 0xE4, 0xA0, 0x19, 0xDB, 0x19, 0x10, 0x1A, 0xCC, 0x69, 0xA0, +0x1B, 0xBC, 0x76, 0xC0, 0x1C, 0xAC, 0x67, 0xC0, 0x1D, 0x9C, 0x58, 0xC0, 0x1E, 0x8C, 0x49, 0xC0, +0x1F, 0x7C, 0x3A, 0xC0, 0x20, 0x6C, 0x2B, 0xC0, 0x21, 0x5C, 0x1C, 0xC0, 0x22, 0x4C, 0x0D, 0xC0, +0x23, 0x3B, 0xFE, 0xC0, 0x24, 0x2B, 0xEF, 0xC0, 0x25, 0x1B, 0xE0, 0xC0, 0x26, 0x0B, 0xD1, 0xC0, +0x27, 0x04, 0xFD, 0x40, 0x27, 0xF4, 0xEE, 0x40, 0x28, 0xCA, 0x8F, 0x50, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, +0x00, 0x00, 0x62, 0x70, 0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, +0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x01, 0x09, 0x00, 0x00, +0x46, 0x50, 0x00, 0x0F, 0x4C, 0x4D, 0x54, 0x00, 0x44, 0x55, 0x53, 0x54, 0x00, 0x44, 0x55, 0x53, +0x53, 0x54, 0x00, 0x54, 0x4A, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x33, 0xDD, 0x01, 0x7B, 0xA3, 0x80, 0x00, +0x00, 0x00, 0x00, + +/* Asia/Gaza */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0xC8, 0x59, 0xB2, 0xE0, +0xCC, 0xE5, 0xC1, 0x50, 0xCD, 0xAC, 0xFE, 0x00, 0xCE, 0xC6, 0xF4, 0xD0, 0xCF, 0x8F, 0x66, 0xE0, +0xD0, 0xA9, 0x79, 0xD0, 0xD1, 0x84, 0x60, 0xE0, 0xD2, 0x8A, 0xC9, 0x70, 0xD3, 0x65, 0xB0, 0x80, +0xD4, 0x6B, 0xE0, 0xD0, 0xE8, 0x36, 0x63, 0x60, 0xE8, 0xF4, 0x2D, 0x50, 0xEA, 0x0B, 0xB9, 0x60, +0xEA, 0xD5, 0x60, 0xD0, 0xEB, 0xEC, 0xFA, 0xF0, 0xEC, 0xB5, 0x6D, 0x00, 0xED, 0xCF, 0x7F, 0xF0, +0xEE, 0x97, 0xF2, 0x00, 0xEF, 0xB0, 0xB3, 0x70, 0xF0, 0x79, 0x25, 0x80, 0xF1, 0x91, 0xE6, 0xF0, +0xF2, 0x5A, 0x59, 0x00, 0xF3, 0x73, 0x1A, 0x70, 0xF4, 0x3B, 0x8C, 0x80, 0xF5, 0x55, 0x9F, 0x70, +0xF6, 0x1E, 0x11, 0x80, 0xF7, 0x36, 0xD2, 0xF0, 0xF7, 0xFF, 0x45, 0x00, 0xF9, 0x18, 0x06, 0x70, +0xF9, 0xE1, 0xCA, 0x00, 0xFA, 0xF9, 0x39, 0xF0, 0xFB, 0x27, 0x42, 0x50, 0x08, 0x7C, 0x8B, 0xE0, +0x08, 0xFD, 0xB0, 0xD0, 0x09, 0xF6, 0xEA, 0x60, 0x0A, 0xA6, 0x33, 0xD0, 0x1C, 0xBE, 0xF8, 0xE0, +0x1D, 0x89, 0xF1, 0xD0, 0x1E, 0xCC, 0xFF, 0x60, 0x1F, 0x60, 0x99, 0x50, 0x20, 0x82, 0xB1, 0x60, +0x21, 0x49, 0xB5, 0xD0, 0x22, 0x5D, 0x4D, 0x60, 0x23, 0x1F, 0x0B, 0xD0, 0x24, 0x5A, 0x30, 0x60, +0x25, 0x00, 0x3F, 0x50, 0x26, 0x0B, 0xED, 0xE0, 0x26, 0xD6, 0xE6, 0xD0, 0x27, 0xEB, 0xCF, 0xE0, +0x28, 0xC0, 0x03, 0x50, 0x29, 0xD4, 0xEC, 0x60, 0x2A, 0xA9, 0x1F, 0xD0, 0x2B, 0xBB, 0x65, 0xE0, +0x2C, 0x89, 0x01, 0xD0, 0x2D, 0x9B, 0x47, 0xE0, 0x2E, 0x5F, 0xA9, 0x50, 0x2F, 0x7B, 0x29, 0xE0, +0x30, 0x48, 0xC5, 0xD0, 0x30, 0xE7, 0x07, 0xE0, 0x31, 0x64, 0x46, 0x60, 0x32, 0x41, 0xC2, 0x60, +0x33, 0x44, 0x28, 0x60, 0x34, 0x21, 0xA4, 0x60, 0x35, 0x24, 0x0A, 0x60, 0x36, 0x01, 0x86, 0x60, +0x36, 0x8B, 0xF3, 0xE0, 0x37, 0x16, 0x61, 0x60, 0x38, 0x06, 0x44, 0x50, 0x38, 0xFF, 0x7D, 0xE0, +0x39, 0xEF, 0x60, 0xD0, 0x3A, 0xDF, 0x5F, 0xE0, 0x3B, 0xCF, 0x42, 0xD0, 0x3C, 0xBF, 0x41, 0xE0, +0x3D, 0xAF, 0x24, 0xD0, 0x3E, 0x9F, 0x23, 0xE0, 0x3F, 0x8F, 0x06, 0xD0, 0x40, 0x7F, 0x05, 0xE0, +0x41, 0x5C, 0x81, 0xE0, 0x42, 0x5E, 0xE7, 0xE0, 0x43, 0x41, 0xB7, 0xF0, 0x44, 0x2D, 0xA6, 0x60, +0x45, 0x12, 0xFD, 0x50, 0x46, 0x0E, 0xD9, 0xE0, 0x46, 0xE8, 0x6F, 0x70, 0x47, 0xF1, 0x5E, 0xE0, +0x48, 0xB7, 0x11, 0xD0, 0x49, 0xCB, 0xFA, 0xE0, 0x4A, 0xA0, 0x4A, 0x70, 0x4B, 0xAD, 0x2E, 0x9C, +0x4C, 0x61, 0xBD, 0xD0, 0x4D, 0x96, 0xF3, 0xDC, 0x4E, 0x35, 0xC2, 0x50, 0x4F, 0x74, 0xDB, 0x60, +0x50, 0x5B, 0x91, 0xE0, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x01, 0x02, +0x05, 0x02, 0x05, 0x02, 0x05, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00, +0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, +0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x45, 0x45, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x49, +0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x47, +0x61, 0x7A, 0x61, 0x20, 0x53, 0x74, 0x72, 0x69, 0x70, + +/* Asia/Harbin */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x11, 0xB0, 0xFE, 0x95, 0xBC, +0xB8, 0xD3, 0xCE, 0x78, 0xC7, 0x90, 0xFA, 0x80, 0xF9, 0x17, 0x95, 0xF0, 0x13, 0x6D, 0xB3, 0xF8, +0x1E, 0xBA, 0x36, 0x00, 0x1F, 0x69, 0x7F, 0x70, 0x20, 0x7E, 0x68, 0x80, 0x21, 0x49, 0x61, 0x70, +0x22, 0x5E, 0x4A, 0x80, 0x23, 0x29, 0x43, 0x70, 0x24, 0x47, 0x67, 0x00, 0x25, 0x12, 0x5F, 0xF0, +0x26, 0x27, 0x49, 0x00, 0x26, 0xF2, 0x41, 0xF0, 0x28, 0x07, 0x2B, 0x00, 0x28, 0xD2, 0x23, 0xF0, +0x01, 0x02, 0x03, 0x01, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, +0x02, 0x00, 0x00, 0x76, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x77, 0x88, 0x00, 0x04, 0x00, 0x00, 0x70, +0x80, 0x00, 0x09, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x0D, 0x4C, +0x4D, 0x54, 0x00, 0x43, 0x48, 0x41, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0x23, 0x58, 0x01, 0xD3, +0xF6, 0x2D, 0x00, 0x00, 0x00, 0x21, 0x48, 0x65, 0x69, 0x6C, 0x6F, 0x6E, 0x67, 0x6A, 0x69, 0x61, +0x6E, 0x67, 0x20, 0x28, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x20, 0x4D, 0x6F, 0x68, 0x65, 0x29, +0x2C, 0x20, 0x4A, 0x69, 0x6C, 0x69, 0x6E, + +/* Asia/Hebron */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0xC8, 0x59, 0xB2, 0xE0, +0xCC, 0xE5, 0xC1, 0x50, 0xCD, 0xAC, 0xFE, 0x00, 0xCE, 0xC6, 0xF4, 0xD0, 0xCF, 0x8F, 0x66, 0xE0, +0xD0, 0xA9, 0x79, 0xD0, 0xD1, 0x84, 0x60, 0xE0, 0xD2, 0x8A, 0xC9, 0x70, 0xD3, 0x65, 0xB0, 0x80, +0xD4, 0x6B, 0xE0, 0xD0, 0xE8, 0x36, 0x63, 0x60, 0xE8, 0xF4, 0x2D, 0x50, 0xEA, 0x0B, 0xB9, 0x60, +0xEA, 0xD5, 0x60, 0xD0, 0xEB, 0xEC, 0xFA, 0xF0, 0xEC, 0xB5, 0x6D, 0x00, 0xED, 0xCF, 0x7F, 0xF0, +0xEE, 0x97, 0xF2, 0x00, 0xEF, 0xB0, 0xB3, 0x70, 0xF0, 0x79, 0x25, 0x80, 0xF1, 0x91, 0xE6, 0xF0, +0xF2, 0x5A, 0x59, 0x00, 0xF3, 0x73, 0x1A, 0x70, 0xF4, 0x3B, 0x8C, 0x80, 0xF5, 0x55, 0x9F, 0x70, +0xF6, 0x1E, 0x11, 0x80, 0xF7, 0x36, 0xD2, 0xF0, 0xF7, 0xFF, 0x45, 0x00, 0xF9, 0x18, 0x06, 0x70, +0xF9, 0xE1, 0xCA, 0x00, 0xFA, 0xF9, 0x39, 0xF0, 0xFB, 0x27, 0x42, 0x50, 0x08, 0x7C, 0x8B, 0xE0, +0x08, 0xFD, 0xB0, 0xD0, 0x09, 0xF6, 0xEA, 0x60, 0x0A, 0xA6, 0x33, 0xD0, 0x1C, 0xBE, 0xF8, 0xE0, +0x1D, 0x89, 0xF1, 0xD0, 0x1E, 0xCC, 0xFF, 0x60, 0x1F, 0x60, 0x99, 0x50, 0x20, 0x82, 0xB1, 0x60, +0x21, 0x49, 0xB5, 0xD0, 0x22, 0x5D, 0x4D, 0x60, 0x23, 0x1F, 0x0B, 0xD0, 0x24, 0x5A, 0x30, 0x60, +0x25, 0x00, 0x3F, 0x50, 0x26, 0x0B, 0xED, 0xE0, 0x26, 0xD6, 0xE6, 0xD0, 0x27, 0xEB, 0xCF, 0xE0, +0x28, 0xC0, 0x03, 0x50, 0x29, 0xD4, 0xEC, 0x60, 0x2A, 0xA9, 0x1F, 0xD0, 0x2B, 0xBB, 0x65, 0xE0, +0x2C, 0x89, 0x01, 0xD0, 0x2D, 0x9B, 0x47, 0xE0, 0x2E, 0x5F, 0xA9, 0x50, 0x2F, 0x7B, 0x29, 0xE0, +0x30, 0x48, 0xC5, 0xD0, 0x30, 0xE7, 0x07, 0xE0, 0x31, 0x64, 0x46, 0x60, 0x32, 0x41, 0xC2, 0x60, +0x33, 0x44, 0x28, 0x60, 0x34, 0x21, 0xA4, 0x60, 0x35, 0x24, 0x0A, 0x60, 0x36, 0x01, 0x86, 0x60, +0x36, 0x8B, 0xF3, 0xE0, 0x37, 0x16, 0x61, 0x60, 0x38, 0x06, 0x44, 0x50, 0x38, 0xFF, 0x7D, 0xE0, +0x39, 0xEF, 0x60, 0xD0, 0x3A, 0xDF, 0x5F, 0xE0, 0x3B, 0xCF, 0x42, 0xD0, 0x3C, 0xBF, 0x41, 0xE0, +0x3D, 0xAF, 0x24, 0xD0, 0x3E, 0x9F, 0x23, 0xE0, 0x3F, 0x8F, 0x06, 0xD0, 0x40, 0x7F, 0x05, 0xE0, +0x41, 0x5C, 0x81, 0xE0, 0x42, 0x5E, 0xE7, 0xE0, 0x43, 0x41, 0xB7, 0xF0, 0x44, 0x2D, 0xA6, 0x60, +0x45, 0x12, 0xFD, 0x50, 0x46, 0x0E, 0xD9, 0xE0, 0x46, 0xE8, 0x6F, 0x70, 0x47, 0xF1, 0x5E, 0xE0, +0x48, 0xBB, 0x06, 0x50, 0x49, 0xCB, 0xFA, 0xE0, 0x4A, 0xA0, 0x4A, 0x70, 0x4B, 0xAD, 0x2E, 0x9C, +0x4C, 0x61, 0xBD, 0xD0, 0x4D, 0x95, 0xA2, 0x5C, 0x4E, 0x35, 0xC2, 0x50, 0x4E, 0x5C, 0x0B, 0xE0, +0x4E, 0x85, 0x06, 0x80, 0x4F, 0x74, 0xDB, 0x60, 0x50, 0x5B, 0x91, 0xE0, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x01, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x2A, 0x30, +0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, +0x2A, 0x30, 0x01, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, +0x45, 0x45, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB9, 0x71, +0xF5, 0x01, 0x48, 0x35, 0x7C, 0x00, 0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74, 0x20, 0x42, 0x61, +0x6E, 0x6B, + +/* Asia/Ho_Chi_Minh */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x56, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0x88, 0x6F, 0x42, 0x80, +0x91, 0x5F, 0xEE, 0xD0, 0x93, 0x85, 0xB1, 0x90, 0xB7, 0x41, 0xBC, 0x00, 0x01, 0x02, 0x03, 0x02, +0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0xEC, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, +0x00, 0x08, 0x00, 0x00, 0x70, 0x80, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x53, 0x4D, 0x54, 0x00, +0x49, 0x43, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0xBB, 0x78, +0x01, 0xB5, 0x6B, 0x2A, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Hong_Kong */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x48, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x85, 0x69, 0x5A, 0xFC, +0xC9, 0xEA, 0x57, 0xB8, 0xCA, 0xDA, 0x3A, 0xA8, 0xCB, 0x4B, 0x78, 0x80, 0xD2, 0x4C, 0x62, 0x70, +0xD3, 0x6A, 0xB7, 0x38, 0xD4, 0x93, 0x4A, 0xA8, 0xD5, 0x42, 0xB0, 0x38, 0xD6, 0x9A, 0xB9, 0xA8, +0xD7, 0x3E, 0x41, 0xB8, 0xD8, 0x2E, 0x24, 0xA8, 0xD8, 0xF9, 0x39, 0xB8, 0xDA, 0x0E, 0x06, 0xA8, +0xDA, 0xD9, 0x1B, 0xB8, 0xDB, 0xED, 0xE8, 0xA8, 0xDC, 0xB8, 0xFD, 0xB8, 0xDD, 0xCD, 0xCA, 0xA8, +0xDE, 0xA2, 0x1A, 0x38, 0xDF, 0xAC, 0x5B, 0x28, 0xE0, 0x81, 0xFC, 0x38, 0xE1, 0x96, 0xC9, 0x28, +0xE2, 0x4F, 0x69, 0x38, 0xE3, 0x76, 0xAB, 0x28, 0xE4, 0x2F, 0x4B, 0x38, 0xE5, 0x5F, 0xC7, 0xA8, +0xE6, 0x0F, 0x2D, 0x38, 0xE7, 0x3F, 0xA9, 0xA8, 0xE7, 0xF8, 0x49, 0xB8, 0xE9, 0x1F, 0x8B, 0xA8, +0xE9, 0xD8, 0x2B, 0xB8, 0xEA, 0xFF, 0x6D, 0xA8, 0xEB, 0xB8, 0x0D, 0xB8, 0xEC, 0xDF, 0x4F, 0xA8, +0xED, 0x97, 0xEF, 0xB8, 0xEE, 0xC8, 0x6C, 0x28, 0xEF, 0x77, 0xD1, 0xB8, 0xF0, 0xA8, 0x4E, 0x28, +0xF1, 0x57, 0xB3, 0xB8, 0xF2, 0x88, 0x30, 0x28, 0xF3, 0x40, 0xD0, 0x38, 0xF4, 0x68, 0x12, 0x28, +0xF5, 0x20, 0xB2, 0x38, 0xF6, 0x47, 0xF4, 0x28, 0xF7, 0x25, 0x7E, 0x38, 0xF8, 0x15, 0x61, 0x28, +0xF9, 0x05, 0x60, 0x38, 0xF9, 0xF5, 0x43, 0x28, 0xFA, 0xE5, 0x42, 0x38, 0xFB, 0xDE, 0x5F, 0xA8, +0xFC, 0xCE, 0x5E, 0xB8, 0xFD, 0xBE, 0x41, 0xA8, 0xFE, 0xAE, 0x40, 0xB8, 0xFF, 0x9E, 0x23, 0xA8, +0x00, 0x8E, 0x22, 0xB8, 0x01, 0x7E, 0x05, 0xA8, 0x02, 0x6E, 0x04, 0xB8, 0x03, 0x5D, 0xE7, 0xA8, +0x04, 0x4D, 0xE6, 0xB8, 0x05, 0x47, 0x04, 0x28, 0x06, 0x37, 0x03, 0x38, 0x07, 0x26, 0xE6, 0x28, +0x07, 0x83, 0x3D, 0x38, 0x09, 0x06, 0xC8, 0x28, 0x09, 0xF6, 0xC7, 0x38, 0x0A, 0xE6, 0xAA, 0x28, +0x0B, 0xD6, 0xA9, 0x38, 0x0C, 0xC6, 0x8C, 0x28, 0x11, 0x9B, 0x39, 0x38, 0x12, 0x6F, 0x6C, 0xA8, +0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x6B, 0x04, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x90, 0x01, +0x04, 0x00, 0x00, 0x70, 0x80, 0x00, 0x09, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x0D, 0x4C, 0x4D, 0x54, +0x00, 0x48, 0x4B, 0x53, 0x54, 0x00, 0x48, 0x4B, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAB, 0x54, 0xAD, 0x01, 0xC0, 0xD6, 0x57, 0x00, 0x00, +0x00, 0x00, + +/* Asia/Hovd */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0F, 0x86, 0xD3, 0xFC, 0x94, +0x0F, 0x0B, 0xEA, 0xA0, 0x18, 0xE9, 0xD6, 0x90, 0x19, 0xDB, 0x0B, 0x00, 0x1A, 0xCC, 0x5B, 0x90, +0x1B, 0xBC, 0x3E, 0x80, 0x1C, 0xAC, 0x3D, 0x90, 0x1D, 0x9C, 0x20, 0x80, 0x1E, 0x8C, 0x1F, 0x90, +0x1F, 0x7C, 0x02, 0x80, 0x20, 0x6C, 0x01, 0x90, 0x21, 0x5B, 0xE4, 0x80, 0x22, 0x4B, 0xE3, 0x90, +0x23, 0x3B, 0xC6, 0x80, 0x24, 0x2B, 0xC5, 0x90, 0x25, 0x1B, 0xA8, 0x80, 0x26, 0x0B, 0xA7, 0x90, +0x27, 0x04, 0xC5, 0x00, 0x27, 0xF4, 0xC4, 0x10, 0x28, 0xE4, 0xA7, 0x00, 0x29, 0xD4, 0xA6, 0x10, +0x2A, 0xC4, 0x89, 0x00, 0x2B, 0xB4, 0x88, 0x10, 0x2C, 0xA4, 0x6B, 0x00, 0x2D, 0x94, 0x6A, 0x10, +0x2E, 0x84, 0x4D, 0x00, 0x2F, 0x74, 0x4C, 0x10, 0x30, 0x64, 0x2F, 0x00, 0x31, 0x5D, 0x68, 0x90, +0x32, 0x4D, 0x4B, 0x80, 0x33, 0x3D, 0x4A, 0x90, 0x34, 0x2D, 0x2D, 0x80, 0x35, 0x1D, 0x2C, 0x90, +0x36, 0x0D, 0x0F, 0x80, 0x3A, 0xE9, 0xC1, 0xB0, 0x3B, 0xB4, 0xBA, 0xA0, 0x3C, 0xA4, 0xB9, 0xB0, +0x3D, 0x94, 0x9C, 0xA0, 0x3E, 0x84, 0x9B, 0xB0, 0x3F, 0x74, 0x7E, 0xA0, 0x40, 0x64, 0x7D, 0xB0, +0x41, 0x54, 0x60, 0xA0, 0x42, 0x44, 0x5F, 0xB0, 0x43, 0x34, 0x42, 0xA0, 0x44, 0x24, 0x41, 0xB0, +0x45, 0x1D, 0x5F, 0x20, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x00, 0x00, 0x55, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, +0x70, 0x80, 0x01, 0x09, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x48, 0x4F, +0x56, 0x54, 0x00, 0x48, 0x4F, 0x56, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xD2, 0x98, 0xC2, 0x01, 0x9E, 0x81, 0x47, 0x00, 0x00, 0x00, 0x2B, 0x42, 0x61, 0x79, +0x61, 0x6E, 0x2D, 0x4F, 0x6C, 0x67, 0x69, 0x79, 0x2C, 0x20, 0x47, 0x6F, 0x76, 0x69, 0x2D, 0x41, +0x6C, 0x74, 0x61, 0x69, 0x2C, 0x20, 0x48, 0x6F, 0x76, 0x64, 0x2C, 0x20, 0x55, 0x76, 0x73, 0x2C, +0x20, 0x5A, 0x61, 0x76, 0x6B, 0x68, 0x61, 0x6E, + +/* Asia/Irkutsk */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0F, 0xA2, 0x12, 0x0F, 0xB0, +0xB5, 0xA3, 0xD3, 0x10, 0x15, 0x27, 0x61, 0x80, 0x16, 0x18, 0x95, 0xF0, 0x17, 0x08, 0x95, 0x00, +0x17, 0xF9, 0xC9, 0x70, 0x18, 0xE9, 0xC8, 0x80, 0x19, 0xDA, 0xFC, 0xF0, 0x1A, 0xCC, 0x4D, 0x80, +0x1B, 0xBC, 0x5A, 0xA0, 0x1C, 0xAC, 0x4B, 0xA0, 0x1D, 0x9C, 0x3C, 0xA0, 0x1E, 0x8C, 0x2D, 0xA0, +0x1F, 0x7C, 0x1E, 0xA0, 0x20, 0x6C, 0x0F, 0xA0, 0x21, 0x5C, 0x00, 0xA0, 0x22, 0x4B, 0xF1, 0xA0, +0x23, 0x3B, 0xE2, 0xA0, 0x24, 0x2B, 0xD3, 0xA0, 0x25, 0x1B, 0xC4, 0xA0, 0x26, 0x0B, 0xB5, 0xA0, +0x27, 0x04, 0xE1, 0x20, 0x27, 0xF4, 0xD2, 0x20, 0x28, 0xE4, 0xD1, 0x30, 0x29, 0x78, 0x79, 0x30, +0x29, 0xD4, 0x89, 0xF0, 0x2A, 0xC4, 0x6C, 0xE0, 0x2B, 0xB4, 0x96, 0x20, 0x2C, 0xA4, 0x87, 0x20, +0x2D, 0x94, 0x78, 0x20, 0x2E, 0x84, 0x69, 0x20, 0x2F, 0x74, 0x5A, 0x20, 0x30, 0x64, 0x4B, 0x20, +0x31, 0x5D, 0x76, 0xA0, 0x32, 0x72, 0x51, 0xA0, 0x33, 0x3D, 0x58, 0xA0, 0x34, 0x52, 0x33, 0xA0, +0x35, 0x1D, 0x3A, 0xA0, 0x36, 0x32, 0x15, 0xA0, 0x36, 0xFD, 0x1C, 0xA0, 0x38, 0x1B, 0x32, 0x20, +0x38, 0xDC, 0xFE, 0xA0, 0x39, 0xFB, 0x14, 0x20, 0x3A, 0xBC, 0xE0, 0xA0, 0x3B, 0xDA, 0xF6, 0x20, +0x3C, 0xA5, 0xFD, 0x20, 0x3D, 0xBA, 0xD8, 0x20, 0x3E, 0x85, 0xDF, 0x20, 0x3F, 0x9A, 0xBA, 0x20, +0x40, 0x65, 0xC1, 0x20, 0x41, 0x83, 0xD6, 0xA0, 0x42, 0x45, 0xA3, 0x20, 0x43, 0x63, 0xB8, 0xA0, +0x44, 0x25, 0x85, 0x20, 0x45, 0x43, 0x9A, 0xA0, 0x46, 0x05, 0x67, 0x20, 0x47, 0x23, 0x7C, 0xA0, +0x47, 0xEE, 0x83, 0xA0, 0x49, 0x03, 0x5E, 0xA0, 0x49, 0xCE, 0x65, 0xA0, 0x4A, 0xE3, 0x40, 0xA0, +0x4B, 0xAE, 0x47, 0xA0, 0x4C, 0xCC, 0x5D, 0x20, 0x4D, 0x8E, 0x29, 0xA0, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x07, 0x04, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x08, 0x00, 0x00, 0x61, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x09, 0x00, 0x00, +0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x09, +0x00, 0x00, 0x70, 0x80, 0x01, 0x09, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, 0x7E, 0x90, +0x00, 0x04, 0x49, 0x4D, 0x54, 0x00, 0x49, 0x52, 0x4B, 0x54, 0x00, 0x49, 0x52, 0x4B, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xD9, 0x14, 0xEA, 0x01, 0xB1, 0xDB, 0xB5, 0x00, 0x00, 0x00, 0x17, 0x4D, +0x6F, 0x73, 0x63, 0x6F, 0x77, 0x2B, 0x30, 0x35, 0x20, 0x2D, 0x20, 0x4C, 0x61, 0x6B, 0x65, 0x20, +0x42, 0x61, 0x69, 0x6B, 0x61, 0x6C, + +/* Asia/Istanbul */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x16, 0x90, 0x8B, 0xF5, 0x98, +0x9B, 0x0C, 0x17, 0x60, 0x9B, 0xD5, 0xBE, 0xD0, 0xA2, 0x65, 0x63, 0xE0, 0xA3, 0x7B, 0x82, 0x50, +0xA4, 0x4E, 0x80, 0x60, 0xA5, 0x3F, 0xB4, 0xD0, 0xA6, 0x25, 0x27, 0xE0, 0xA7, 0x27, 0x7F, 0xD0, +0xAA, 0x28, 0x28, 0x60, 0xAA, 0xE1, 0xFD, 0xD0, 0xAB, 0xF9, 0x89, 0xE0, 0xAC, 0xC3, 0x31, 0x50, +0xC8, 0x7F, 0xEE, 0x60, 0xC8, 0xFF, 0xC1, 0xD0, 0xC9, 0x4A, 0xF5, 0x60, 0xCA, 0xCE, 0x80, 0x50, +0xCB, 0xCB, 0xAE, 0x60, 0xCC, 0xE5, 0xC1, 0x50, 0xD1, 0x71, 0xEB, 0xE0, 0xD2, 0x6B, 0x09, 0x50, +0xD3, 0xA2, 0x39, 0x60, 0xD4, 0x43, 0x02, 0x50, 0xD5, 0x4C, 0x0D, 0xE0, 0xD6, 0x29, 0x7B, 0xD0, +0xD7, 0x2B, 0xEF, 0xE0, 0xD8, 0x09, 0x5D, 0xD0, 0xD9, 0x02, 0x97, 0x60, 0xD9, 0xE9, 0x3F, 0xD0, +0xDA, 0xEF, 0xA8, 0x60, 0xDB, 0xD2, 0x5C, 0x50, 0xDC, 0xD4, 0xD0, 0x60, 0xDD, 0xB3, 0x8F, 0xD0, +0xF1, 0xF4, 0xB9, 0x60, 0xF2, 0x64, 0xBA, 0xD0, 0xF5, 0x68, 0x06, 0x60, 0xF6, 0x1F, 0x38, 0xD0, +0x00, 0xA0, 0xBA, 0xE0, 0x01, 0x6B, 0xB3, 0xD0, 0x02, 0x80, 0x9C, 0xE0, 0x03, 0x4B, 0x95, 0xD0, +0x04, 0x69, 0xB9, 0x60, 0x05, 0x34, 0xB2, 0x50, 0x06, 0x6E, 0x93, 0x70, 0x07, 0x39, 0xA8, 0x80, +0x07, 0xFB, 0x75, 0x00, 0x09, 0x19, 0xA6, 0xA0, 0x09, 0xDB, 0x3A, 0xE0, 0x0A, 0xF0, 0x07, 0xD0, +0x0C, 0x10, 0xCE, 0x60, 0x0C, 0xD9, 0x24, 0x50, 0x0D, 0xA4, 0x39, 0x60, 0x0E, 0xA6, 0x91, 0x50, +0x0F, 0x84, 0x1B, 0x60, 0x10, 0x86, 0x73, 0x50, 0x12, 0x67, 0x98, 0xC0, 0x13, 0x4D, 0x36, 0x00, +0x14, 0x47, 0x7A, 0xC0, 0x15, 0x23, 0xDD, 0x80, 0x16, 0x27, 0x5C, 0xC0, 0x17, 0x03, 0xBF, 0x80, +0x18, 0x07, 0x3E, 0xC0, 0x19, 0x89, 0x94, 0x50, 0x19, 0xDC, 0x94, 0xC0, 0x1C, 0xC6, 0xD3, 0xD0, +0x1D, 0x9B, 0x15, 0x50, 0x1E, 0x8C, 0x82, 0x00, 0x1F, 0x7C, 0x73, 0x00, 0x20, 0x6C, 0x64, 0x00, +0x21, 0x5C, 0x55, 0x00, 0x22, 0x4C, 0x46, 0x00, 0x23, 0x3C, 0x37, 0x00, 0x24, 0x2C, 0x28, 0x00, +0x25, 0x1C, 0x19, 0x00, 0x26, 0x0C, 0x0A, 0x00, 0x27, 0x05, 0x35, 0x80, 0x27, 0xF5, 0x18, 0x70, +0x28, 0xE5, 0x09, 0x70, 0x29, 0xD4, 0xFA, 0x70, 0x2A, 0xC4, 0xEB, 0x70, 0x2B, 0xB4, 0xDC, 0x70, +0x2C, 0xA4, 0xCD, 0x70, 0x2D, 0x94, 0xBE, 0x70, 0x2E, 0x84, 0xAF, 0x70, 0x2F, 0x74, 0xA0, 0x70, +0x30, 0x64, 0x91, 0x70, 0x31, 0x5D, 0xBC, 0xF0, 0x32, 0x72, 0x97, 0xF0, 0x33, 0x3D, 0x9E, 0xF0, +0x34, 0x52, 0x79, 0xF0, 0x35, 0x1D, 0x80, 0xF0, 0x36, 0x32, 0x5B, 0xF0, 0x36, 0xFD, 0x62, 0xF0, +0x38, 0x1B, 0x78, 0x70, 0x38, 0xDD, 0x44, 0xF0, 0x39, 0xFB, 0x5A, 0x70, 0x3A, 0xBD, 0x26, 0xF0, +0x3B, 0xDB, 0x3C, 0x70, 0x3C, 0xA6, 0x43, 0x70, 0x3D, 0xBB, 0x1E, 0x70, 0x3E, 0x86, 0x25, 0x70, +0x3F, 0x9B, 0x00, 0x70, 0x40, 0x66, 0x07, 0x70, 0x41, 0x84, 0x1C, 0xF0, 0x42, 0x45, 0xE9, 0x70, +0x43, 0x63, 0xFE, 0xF0, 0x44, 0x25, 0xCB, 0x70, 0x45, 0x43, 0xE0, 0xF0, 0x45, 0x98, 0x32, 0xE0, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8F, 0xDD, 0x90, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x01, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x02, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x00, 0x00, 0x1B, 0x68, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, +0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x38, 0x40, 0x01, 0x0D, 0x00, 0x00, 0x2A, 0x30, 0x00, +0x12, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, +0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x49, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, +0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x54, 0x52, 0x53, 0x54, 0x00, 0x54, 0x52, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Jakarta */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x49, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0xA9, 0x78, 0x85, 0xE0, +0xBA, 0x16, 0xDE, 0x60, 0xCB, 0xBF, 0x83, 0x88, 0xD2, 0x56, 0xEE, 0x70, 0xD7, 0x3C, 0xC6, 0x08, +0xDA, 0xFF, 0x26, 0x00, 0xF4, 0xB5, 0xBE, 0x88, 0x01, 0x02, 0x03, 0x02, 0x04, 0x02, 0x05, 0x00, +0x00, 0x64, 0x20, 0x00, 0x00, 0x00, 0x00, 0x67, 0x20, 0x00, 0x04, 0x00, 0x00, 0x69, 0x78, 0x00, +0x09, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x0D, 0x00, 0x00, 0x70, 0x80, 0x00, 0x09, 0x00, 0x00, 0x62, +0x70, 0x00, 0x09, 0x4A, 0x4D, 0x54, 0x00, 0x4A, 0x41, 0x56, 0x54, 0x00, 0x57, 0x49, 0x54, 0x00, +0x4A, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x7F, 0xEB, 0x65, 0x01, 0xB5, 0x9F, 0x40, 0x00, 0x00, 0x00, 0x0E, 0x4A, 0x61, 0x76, 0x61, +0x20, 0x26, 0x20, 0x53, 0x75, 0x6D, 0x61, 0x74, 0x72, 0x61, + +/* Asia/Jayapura */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x49, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xBA, 0x16, 0xC1, 0x98, +0xD0, 0x58, 0xB9, 0xF0, 0xF4, 0xB5, 0xA2, 0x68, 0x01, 0x02, 0x01, 0x00, 0x00, 0x83, 0xE8, 0x00, +0x00, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x04, 0x00, 0x00, 0x85, 0x98, 0x00, 0x08, 0x4C, 0x4D, 0x54, +0x00, 0x45, 0x49, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x85, 0x76, 0xAA, 0x01, 0xE9, 0x59, 0x70, 0x00, 0x00, 0x00, 0x31, 0x77, 0x65, 0x73, 0x74, 0x20, +0x4E, 0x65, 0x77, 0x20, 0x47, 0x75, 0x69, 0x6E, 0x65, 0x61, 0x20, 0x28, 0x49, 0x72, 0x69, 0x61, +0x6E, 0x20, 0x4A, 0x61, 0x79, 0x61, 0x29, 0x20, 0x26, 0x20, 0x4D, 0x61, 0x6C, 0x75, 0x6B, 0x75, +0x73, 0x20, 0x28, 0x4D, 0x6F, 0x6C, 0x75, 0x63, 0x63, 0x61, 0x73, 0x29, + +/* Asia/Jerusalem */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x49, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x9E, 0x30, 0x45, 0x88, +0xC8, 0x59, 0xB2, 0xE0, 0xCC, 0xE5, 0xC1, 0x50, 0xCD, 0xAC, 0xFE, 0x00, 0xCE, 0xC6, 0xF4, 0xD0, +0xCF, 0x8F, 0x66, 0xE0, 0xD0, 0xA9, 0x79, 0xD0, 0xD1, 0x84, 0x60, 0xE0, 0xD2, 0x8A, 0xC9, 0x70, +0xD3, 0x65, 0xB0, 0x80, 0xD4, 0x6B, 0xE0, 0xD0, 0xD7, 0x5A, 0x14, 0x60, 0xD7, 0xDF, 0x1F, 0xC0, +0xD8, 0x2F, 0xB5, 0x70, 0xD9, 0x1E, 0x46, 0xE0, 0xDA, 0x10, 0xE8, 0xF0, 0xDA, 0xEB, 0xB3, 0xE0, +0xDB, 0xB4, 0x34, 0x00, 0xDC, 0xB9, 0x20, 0xE0, 0xDD, 0xE0, 0x8D, 0x00, 0xDE, 0xB4, 0xCE, 0x80, +0xDF, 0xA4, 0xBF, 0x80, 0xE0, 0x8B, 0x76, 0x00, 0xE1, 0x56, 0x7D, 0x00, 0xE2, 0xBE, 0x4A, 0x60, +0xE3, 0x36, 0x34, 0xD0, 0xE4, 0x9C, 0xF7, 0x00, 0xE5, 0x16, 0x16, 0xD0, 0xE6, 0x74, 0xD3, 0xE0, +0xE7, 0x11, 0xD2, 0x80, 0xE8, 0x27, 0xFF, 0x00, 0xE8, 0xE8, 0x4F, 0xD0, 0x08, 0x7C, 0x8B, 0xE0, +0x08, 0xFD, 0xB0, 0xD0, 0x09, 0xF6, 0xEA, 0x60, 0x0A, 0xA6, 0x33, 0xD0, 0x1C, 0xBE, 0xF8, 0xE0, +0x1D, 0x89, 0xF1, 0xD0, 0x1E, 0xCC, 0xFF, 0x60, 0x1F, 0x60, 0x99, 0x50, 0x20, 0x82, 0xB1, 0x60, +0x21, 0x49, 0xB5, 0xD0, 0x22, 0x5D, 0x4D, 0x60, 0x23, 0x1F, 0x0B, 0xD0, 0x24, 0x5A, 0x30, 0x60, +0x25, 0x00, 0x3F, 0x50, 0x26, 0x0B, 0xED, 0xE0, 0x26, 0xD6, 0xE6, 0xD0, 0x27, 0xEB, 0xCF, 0xE0, +0x28, 0xC0, 0x03, 0x50, 0x29, 0xD4, 0xEC, 0x60, 0x2A, 0xA9, 0x1F, 0xD0, 0x2B, 0xBB, 0x65, 0xE0, +0x2C, 0x89, 0x01, 0xD0, 0x2D, 0x9B, 0x47, 0xE0, 0x2E, 0x5F, 0xA9, 0x50, 0x2F, 0x7B, 0x29, 0xE0, +0x30, 0x48, 0xC5, 0xD0, 0x31, 0x48, 0x96, 0xE0, 0x32, 0x3C, 0x6E, 0x50, 0x33, 0x31, 0xB3, 0x60, +0x34, 0x1A, 0xFE, 0xD0, 0x35, 0x11, 0x95, 0x60, 0x35, 0xF1, 0xA6, 0x50, 0x37, 0x04, 0x08, 0x80, +0x37, 0xCF, 0x01, 0x70, 0x38, 0xF6, 0x5F, 0x80, 0x39, 0xDC, 0xF9, 0xE0, 0x3A, 0xD0, 0xED, 0x70, +0x3B, 0xAE, 0x5B, 0x60, 0x3C, 0xA3, 0xA0, 0x70, 0x3D, 0xA0, 0xB2, 0x60, 0x3E, 0x83, 0x82, 0x70, +0x3F, 0x7C, 0x9F, 0xE0, 0x40, 0x73, 0x36, 0x70, 0x41, 0x50, 0xA4, 0x60, 0x42, 0x4C, 0x8F, 0x00, +0x43, 0x48, 0x4F, 0x70, 0x44, 0x2C, 0x71, 0x00, 0x45, 0x1E, 0xF6, 0xF0, 0x46, 0x0C, 0x53, 0x00, +0x46, 0xEC, 0x63, 0xF0, 0x47, 0xEC, 0x35, 0x00, 0x48, 0xE7, 0xF5, 0x70, 0x49, 0xCC, 0x17, 0x00, +0x4A, 0xBE, 0x9C, 0xF0, 0x4B, 0xAB, 0xF9, 0x00, 0x4C, 0x8C, 0x09, 0xF0, 0x4D, 0x95, 0x15, 0x80, +0x4E, 0x87, 0x9B, 0x70, 0x4F, 0x74, 0xF7, 0x80, 0x50, 0x5E, 0x42, 0xF0, 0x51, 0x54, 0xD9, 0x80, +0x52, 0x50, 0x99, 0xF0, 0x53, 0x34, 0xBB, 0x80, 0x54, 0x30, 0x7B, 0xF0, 0x55, 0x14, 0x9D, 0x80, +0x56, 0x10, 0x5D, 0xF0, 0x56, 0xF4, 0x7F, 0x80, 0x57, 0xF0, 0x3F, 0xF0, 0x58, 0xD4, 0x61, 0x80, +0x59, 0xD9, 0x5C, 0x70, 0x5A, 0xB4, 0x43, 0x80, 0x5B, 0xB9, 0x3E, 0x70, 0x5C, 0x9D, 0x60, 0x00, +0x5D, 0x99, 0x20, 0x70, 0x5E, 0x7D, 0x42, 0x00, 0x5F, 0x79, 0x02, 0x70, 0x60, 0x5D, 0x24, 0x00, +0x61, 0x58, 0xE4, 0x70, 0x62, 0x3D, 0x06, 0x00, 0x63, 0x38, 0xC6, 0x70, 0x64, 0x1C, 0xE8, 0x00, +0x65, 0x21, 0xE2, 0xF0, 0x66, 0x06, 0x04, 0x80, 0x67, 0x01, 0xC4, 0xF0, 0x67, 0xE5, 0xE6, 0x80, +0x68, 0xE1, 0xA6, 0xF0, 0x69, 0xC5, 0xC8, 0x80, 0x6A, 0xC1, 0x88, 0xF0, 0x6B, 0xA5, 0xAA, 0x80, +0x6C, 0xA2, 0xBC, 0x70, 0x6D, 0x85, 0x8C, 0x80, 0x6E, 0x8A, 0x87, 0x70, 0x6F, 0x65, 0x6E, 0x80, +0x70, 0x6A, 0x69, 0x70, 0x71, 0x4E, 0x8B, 0x00, 0x72, 0x4A, 0x4B, 0x70, 0x73, 0x2E, 0x6D, 0x00, +0x74, 0x2A, 0x2D, 0x70, 0x75, 0x0E, 0x4F, 0x00, 0x76, 0x0A, 0x0F, 0x70, 0x76, 0xEE, 0x31, 0x00, +0x77, 0xE9, 0xF1, 0x70, 0x78, 0xCE, 0x13, 0x00, 0x79, 0xD3, 0x0D, 0xF0, 0x7A, 0xAD, 0xF5, 0x00, +0x7B, 0xB2, 0xEF, 0xF0, 0x7C, 0x97, 0x11, 0x80, 0x7D, 0x92, 0xD1, 0xF0, 0x7E, 0x76, 0xF3, 0x80, +0x7F, 0x72, 0xB3, 0xF0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x00, 0x00, 0x20, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, +0x1C, 0x20, 0x00, 0x08, 0x00, 0x00, 0x38, 0x40, 0x01, 0x0C, 0x4A, 0x4D, 0x54, 0x00, 0x49, 0x44, +0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x49, 0x44, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xB9, 0xCD, 0x1A, 0x01, 0x48, 0x6B, 0x85, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Kabul */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0xD0, 0xF9, 0xD7, 0x40, +0x01, 0x00, 0x00, 0x38, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x48, 0x00, 0x00, 0x41, 0x46, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0xFF, 0x52, 0x01, 0x7C, 0x3F, 0xC0, 0x00, 0x00, 0x00, +0x00, + +/* Asia/Kamchatka */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0F, 0xA7, 0x52, 0x96, 0xC4, +0xB5, 0xA3, 0x9A, 0xD0, 0x15, 0x27, 0x29, 0x40, 0x16, 0x18, 0x5D, 0xB0, 0x17, 0x08, 0x5C, 0xC0, +0x17, 0xF9, 0x91, 0x30, 0x18, 0xE9, 0x90, 0x40, 0x19, 0xDA, 0xC4, 0xB0, 0x1A, 0xCC, 0x15, 0x40, +0x1B, 0xBC, 0x22, 0x60, 0x1C, 0xAC, 0x13, 0x60, 0x1D, 0x9C, 0x04, 0x60, 0x1E, 0x8B, 0xF5, 0x60, +0x1F, 0x7B, 0xE6, 0x60, 0x20, 0x6B, 0xD7, 0x60, 0x21, 0x5B, 0xC8, 0x60, 0x22, 0x4B, 0xB9, 0x60, +0x23, 0x3B, 0xAA, 0x60, 0x24, 0x2B, 0x9B, 0x60, 0x25, 0x1B, 0x8C, 0x60, 0x26, 0x0B, 0x7D, 0x60, +0x27, 0x04, 0xA8, 0xE0, 0x27, 0xF4, 0x99, 0xE0, 0x28, 0xE4, 0x98, 0xF0, 0x29, 0x78, 0x40, 0xF0, +0x29, 0xD4, 0x51, 0xB0, 0x2A, 0xC4, 0x34, 0xA0, 0x2B, 0xB4, 0x5D, 0xE0, 0x2C, 0xA4, 0x4E, 0xE0, +0x2D, 0x94, 0x3F, 0xE0, 0x2E, 0x84, 0x30, 0xE0, 0x2F, 0x74, 0x21, 0xE0, 0x30, 0x64, 0x12, 0xE0, +0x31, 0x5D, 0x3E, 0x60, 0x32, 0x72, 0x19, 0x60, 0x33, 0x3D, 0x20, 0x60, 0x34, 0x51, 0xFB, 0x60, +0x35, 0x1D, 0x02, 0x60, 0x36, 0x31, 0xDD, 0x60, 0x36, 0xFC, 0xE4, 0x60, 0x38, 0x1A, 0xF9, 0xE0, +0x38, 0xDC, 0xC6, 0x60, 0x39, 0xFA, 0xDB, 0xE0, 0x3A, 0xBC, 0xA8, 0x60, 0x3B, 0xDA, 0xBD, 0xE0, +0x3C, 0xA5, 0xC4, 0xE0, 0x3D, 0xBA, 0x9F, 0xE0, 0x3E, 0x85, 0xA6, 0xE0, 0x3F, 0x9A, 0x81, 0xE0, +0x40, 0x65, 0x88, 0xE0, 0x41, 0x83, 0x9E, 0x60, 0x42, 0x45, 0x6A, 0xE0, 0x43, 0x63, 0x80, 0x60, +0x44, 0x25, 0x4C, 0xE0, 0x45, 0x43, 0x62, 0x60, 0x46, 0x05, 0x2E, 0xE0, 0x47, 0x23, 0x44, 0x60, +0x47, 0xEE, 0x4B, 0x60, 0x49, 0x03, 0x26, 0x60, 0x49, 0xCE, 0x2D, 0x60, 0x4A, 0xE3, 0x08, 0x60, +0x4B, 0xAE, 0x0F, 0x60, 0x4C, 0xCC, 0x32, 0xF0, 0x4D, 0x8D, 0xFF, 0x70, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x07, 0x04, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x06, 0x07, 0x04, 0x00, 0x00, 0x94, 0xBC, +0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x04, 0x00, 0x00, 0xB6, 0xD0, 0x01, 0x09, 0x00, 0x00, +0xA8, 0xC0, 0x00, 0x04, 0x00, 0x00, 0xA8, 0xC0, 0x00, 0x04, 0x00, 0x00, 0xB6, 0xD0, 0x01, 0x09, +0x00, 0x00, 0xA8, 0xC0, 0x01, 0x09, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, +0x50, 0x45, 0x54, 0x54, 0x00, 0x50, 0x45, 0x54, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDA, 0x39, 0xE2, 0x02, +0x04, 0xBD, 0x28, 0x00, 0x00, 0x00, 0x15, 0x4D, 0x6F, 0x73, 0x63, 0x6F, 0x77, 0x2B, 0x30, 0x38, +0x20, 0x2D, 0x20, 0x4B, 0x61, 0x6D, 0x63, 0x68, 0x61, 0x74, 0x6B, 0x61, + +/* Asia/Karachi */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x89, 0x7E, 0xFC, 0xA4, +0xCC, 0x95, 0x32, 0xA8, 0xD2, 0x74, 0x12, 0x98, 0xDD, 0xA8, 0xE0, 0xA8, 0x02, 0x4F, 0xAB, 0x30, +0x3C, 0xAF, 0x45, 0xEC, 0x3D, 0x9F, 0x28, 0xDC, 0x48, 0x41, 0xA0, 0x30, 0x49, 0x0B, 0x47, 0xA0, +0x49, 0xE4, 0xDD, 0x30, 0x4A, 0xEC, 0x7B, 0x20, 0x01, 0x02, 0x01, 0x03, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x00, 0x00, 0x3E, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x58, 0x00, 0x04, 0x00, +0x00, 0x5B, 0x68, 0x01, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, +0x0D, 0x00, 0x00, 0x46, 0x50, 0x00, 0x12, 0x4C, 0x4D, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x4B, +0x41, 0x52, 0x54, 0x00, 0x50, 0x4B, 0x53, 0x54, 0x00, 0x50, 0x4B, 0x54, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAF, 0x45, 0xCA, 0x01, 0x78, 0xF7, +0xE8, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Kashgar */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x11, 0xB0, 0xFE, 0xC5, 0x44, +0xC7, 0x91, 0x1D, 0xA8, 0x13, 0x6D, 0xE5, 0x30, 0x1E, 0xBA, 0x36, 0x00, 0x1F, 0x69, 0x7F, 0x70, +0x20, 0x7E, 0x68, 0x80, 0x21, 0x49, 0x61, 0x70, 0x22, 0x5E, 0x4A, 0x80, 0x23, 0x29, 0x43, 0x70, +0x24, 0x47, 0x67, 0x00, 0x25, 0x12, 0x5F, 0xF0, 0x26, 0x27, 0x49, 0x00, 0x26, 0xF2, 0x41, 0xF0, +0x28, 0x07, 0x2B, 0x00, 0x28, 0xD2, 0x23, 0xF0, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x00, 0x00, 0x47, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x4D, +0x58, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x09, 0x00, +0x00, 0x70, 0x80, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x4B, 0x41, 0x53, 0x54, 0x00, 0x43, 0x44, +0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xC5, 0x93, 0x6D, 0x01, 0x86, 0x99, 0x7D, 0x00, 0x00, 0x00, 0x15, 0x77, 0x65, 0x73, 0x74, +0x20, 0x54, 0x69, 0x62, 0x65, 0x74, 0x20, 0x26, 0x20, 0x58, 0x69, 0x6E, 0x6A, 0x69, 0x61, 0x6E, +0x67, + +/* Asia/Kathmandu */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4E, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xA1, 0xF2, 0x7D, 0x84, +0x1E, 0x18, 0x30, 0xA8, 0x01, 0x02, 0x00, 0x00, 0x4F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x58, +0x00, 0x04, 0x00, 0x00, 0x50, 0xDC, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, +0x4E, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB3, 0x9F, 0x12, 0x01, 0x94, +0xD7, 0x52, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Katmandu */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xA1, 0xF2, 0x7D, 0x84, +0x1E, 0x18, 0x30, 0xA8, 0x01, 0x02, 0x00, 0x00, 0x4F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x58, +0x00, 0x04, 0x00, 0x00, 0x50, 0xDC, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, +0x4E, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Kolkata */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x49, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0D, 0xCA, 0xDB, 0x86, 0xB0, +0xCC, 0x05, 0x71, 0x18, 0xCC, 0x95, 0x32, 0xA8, 0xD2, 0x74, 0x12, 0x98, 0x01, 0x02, 0x03, 0x02, +0x00, 0x00, 0x52, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x68, 0x00, 0x04, 0x00, 0x00, 0x4D, 0x58, +0x00, 0x09, 0x00, 0x00, 0x5B, 0x68, 0x01, 0x09, 0x48, 0x4D, 0x54, 0x00, 0x42, 0x55, 0x52, 0x54, +0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAB, 0xB6, +0x55, 0x01, 0x99, 0x7E, 0xBA, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Krasnoyarsk */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0F, 0xA1, 0xF9, 0x0D, 0xF8, +0xB5, 0xA3, 0xE1, 0x20, 0x15, 0x27, 0x6F, 0x90, 0x16, 0x18, 0xA4, 0x00, 0x17, 0x08, 0xA3, 0x10, +0x17, 0xF9, 0xD7, 0x80, 0x18, 0xE9, 0xD6, 0x90, 0x19, 0xDB, 0x0B, 0x00, 0x1A, 0xCC, 0x5B, 0x90, +0x1B, 0xBC, 0x68, 0xB0, 0x1C, 0xAC, 0x59, 0xB0, 0x1D, 0x9C, 0x4A, 0xB0, 0x1E, 0x8C, 0x3B, 0xB0, +0x1F, 0x7C, 0x2C, 0xB0, 0x20, 0x6C, 0x1D, 0xB0, 0x21, 0x5C, 0x0E, 0xB0, 0x22, 0x4B, 0xFF, 0xB0, +0x23, 0x3B, 0xF0, 0xB0, 0x24, 0x2B, 0xE1, 0xB0, 0x25, 0x1B, 0xD2, 0xB0, 0x26, 0x0B, 0xC3, 0xB0, +0x27, 0x04, 0xEF, 0x30, 0x27, 0xF4, 0xE0, 0x30, 0x28, 0xE4, 0xDF, 0x40, 0x29, 0x78, 0x87, 0x40, +0x29, 0xD4, 0x98, 0x00, 0x2A, 0xC4, 0x7A, 0xF0, 0x2B, 0xB4, 0xA4, 0x30, 0x2C, 0xA4, 0x95, 0x30, +0x2D, 0x94, 0x86, 0x30, 0x2E, 0x84, 0x77, 0x30, 0x2F, 0x74, 0x68, 0x30, 0x30, 0x64, 0x59, 0x30, +0x31, 0x5D, 0x84, 0xB0, 0x32, 0x72, 0x5F, 0xB0, 0x33, 0x3D, 0x66, 0xB0, 0x34, 0x52, 0x41, 0xB0, +0x35, 0x1D, 0x48, 0xB0, 0x36, 0x32, 0x23, 0xB0, 0x36, 0xFD, 0x2A, 0xB0, 0x38, 0x1B, 0x40, 0x30, +0x38, 0xDD, 0x0C, 0xB0, 0x39, 0xFB, 0x22, 0x30, 0x3A, 0xBC, 0xEE, 0xB0, 0x3B, 0xDB, 0x04, 0x30, +0x3C, 0xA6, 0x0B, 0x30, 0x3D, 0xBA, 0xE6, 0x30, 0x3E, 0x85, 0xED, 0x30, 0x3F, 0x9A, 0xC8, 0x30, +0x40, 0x65, 0xCF, 0x30, 0x41, 0x83, 0xE4, 0xB0, 0x42, 0x45, 0xB1, 0x30, 0x43, 0x63, 0xC6, 0xB0, +0x44, 0x25, 0x93, 0x30, 0x45, 0x43, 0xA8, 0xB0, 0x46, 0x05, 0x75, 0x30, 0x47, 0x23, 0x8A, 0xB0, +0x47, 0xEE, 0x91, 0xB0, 0x49, 0x03, 0x6C, 0xB0, 0x49, 0xCE, 0x73, 0xB0, 0x4A, 0xE3, 0x4E, 0xB0, +0x4B, 0xAE, 0x55, 0xB0, 0x4C, 0xCC, 0x6B, 0x30, 0x4D, 0x8E, 0x37, 0xB0, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x07, 0x04, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x08, 0x00, 0x00, 0x57, 0x08, +0x00, 0x00, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, 0x70, 0x80, 0x01, 0x09, 0x00, 0x00, +0x62, 0x70, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, 0x70, 0x80, 0x01, 0x09, +0x00, 0x00, 0x62, 0x70, 0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, 0x70, 0x80, +0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x4B, 0x52, 0x41, 0x54, 0x00, 0x4B, 0x52, 0x41, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xDE, 0xCD, 0xC2, 0x01, 0xA0, 0x4F, 0x85, 0x00, 0x00, 0x00, 0x19, 0x4D, +0x6F, 0x73, 0x63, 0x6F, 0x77, 0x2B, 0x30, 0x34, 0x20, 0x2D, 0x20, 0x59, 0x65, 0x6E, 0x69, 0x73, +0x65, 0x69, 0x20, 0x52, 0x69, 0x76, 0x65, 0x72, + +/* Asia/Kuala_Lumpur */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x17, 0x86, 0x83, 0x85, 0xA3, +0xBA, 0x67, 0x4E, 0x90, 0xC0, 0x0A, 0xE4, 0x60, 0xCA, 0xB3, 0xE5, 0x60, 0xCB, 0x91, 0x5F, 0x08, +0xD2, 0x48, 0x6D, 0xF0, 0x16, 0x91, 0xF5, 0x08, 0x01, 0x02, 0x03, 0x04, 0x05, 0x04, 0x06, 0x00, +0x00, 0x61, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, 0x67, 0x20, 0x01, +0x09, 0x00, 0x00, 0x67, 0x20, 0x00, 0x04, 0x00, 0x00, 0x69, 0x78, 0x00, 0x04, 0x00, 0x00, 0x7E, +0x90, 0x00, 0x0F, 0x00, 0x00, 0x70, 0x80, 0x00, 0x13, 0x53, 0x4D, 0x54, 0x00, 0x4D, 0x41, 0x4C, +0x54, 0x00, 0x4D, 0x41, 0x4C, 0x53, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x4D, 0x59, 0x54, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8E, +0x29, 0x3A, 0x01, 0xAD, 0xD7, 0x10, 0x00, 0x00, 0x00, 0x13, 0x70, 0x65, 0x6E, 0x69, 0x6E, 0x73, +0x75, 0x6C, 0x61, 0x72, 0x20, 0x4D, 0x61, 0x6C, 0x61, 0x79, 0x73, 0x69, 0x61, + +/* Asia/Kuching */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0xAD, 0x8A, 0x06, 0x90, +0xBA, 0x67, 0x47, 0x88, 0xBF, 0x7B, 0x27, 0x80, 0xBF, 0xF3, 0x1B, 0x50, 0xC1, 0x5D, 0xAC, 0x80, +0xC1, 0xD5, 0xA0, 0x50, 0xC3, 0x3E, 0xE0, 0x00, 0xC3, 0xB6, 0xD3, 0xD0, 0xC5, 0x20, 0x13, 0x80, +0xC5, 0x98, 0x07, 0x50, 0xC7, 0x01, 0x47, 0x00, 0xC7, 0x79, 0x3A, 0xD0, 0xC8, 0xE3, 0xCC, 0x00, +0xC9, 0x5B, 0xBF, 0xD0, 0xCA, 0xC4, 0xFF, 0x80, 0xCB, 0x3C, 0xF3, 0x50, 0xCB, 0x91, 0x58, 0x00, +0xD2, 0x48, 0x6D, 0xF0, 0x16, 0x91, 0xEE, 0x00, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x04, 0x03, 0x05, 0x00, 0x00, 0x67, 0x70, 0x00, +0x00, 0x00, 0x00, 0x69, 0x78, 0x00, 0x04, 0x00, 0x00, 0x75, 0x30, 0x01, 0x09, 0x00, 0x00, 0x70, +0x80, 0x00, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x10, 0x00, 0x00, 0x70, 0x80, 0x00, 0x14, 0x4C, +0x4D, 0x54, 0x00, 0x42, 0x4F, 0x52, 0x54, 0x00, 0x42, 0x4F, 0x52, 0x54, 0x53, 0x54, 0x00, 0x4A, +0x53, 0x54, 0x00, 0x4D, 0x59, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x8B, 0xB1, 0xB8, 0x01, 0xBB, 0x03, 0x75, 0x00, 0x00, 0x00, 0x0F, 0x53, +0x61, 0x62, 0x61, 0x68, 0x20, 0x26, 0x20, 0x53, 0x61, 0x72, 0x61, 0x77, 0x61, 0x6B, + +/* Asia/Kuwait */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xDA, 0x61, 0x35, 0x84, +0x01, 0x00, 0x00, 0x2C, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB6, 0x16, 0x95, 0x01, 0x5B, 0xDF, +0xFD, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Macao */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x92, 0xE6, 0x24, 0x04, +0xEF, 0x77, 0xD1, 0xB8, 0xF0, 0xA8, 0x4E, 0x28, 0xF1, 0x57, 0xB3, 0xB8, 0xF2, 0x88, 0x30, 0x28, +0xF3, 0x37, 0x64, 0x80, 0xF4, 0x68, 0x12, 0x28, 0xF5, 0x20, 0xB2, 0x38, 0xF6, 0x47, 0xF4, 0x28, +0xF7, 0x00, 0x63, 0x00, 0xF8, 0x27, 0xA4, 0xF0, 0xF9, 0x05, 0x60, 0x38, 0xF9, 0xF5, 0x43, 0x28, +0xFA, 0xE5, 0x42, 0x38, 0xFB, 0xDE, 0x5F, 0xA8, 0xFC, 0xCE, 0x5E, 0xB8, 0xFD, 0xBE, 0x41, 0xA8, +0xFE, 0xAE, 0x40, 0xB8, 0xFF, 0x9E, 0x23, 0xA8, 0x00, 0x8E, 0x22, 0xB8, 0x01, 0x7E, 0x05, 0xA8, +0x02, 0x6E, 0x04, 0xB8, 0x03, 0x5D, 0xE7, 0xA8, 0x04, 0x4D, 0xB5, 0x80, 0x05, 0x3D, 0x98, 0x70, +0x06, 0x2D, 0x97, 0x80, 0x07, 0x26, 0xB4, 0xF0, 0x08, 0x16, 0xB4, 0x00, 0x09, 0x06, 0xC8, 0x28, +0x09, 0xF6, 0xC7, 0x38, 0x0A, 0xE6, 0xAA, 0x28, 0x0B, 0xD6, 0xA9, 0x38, 0x0C, 0xC6, 0x8C, 0x28, +0x0D, 0xB6, 0x8B, 0x38, 0x0E, 0xA6, 0x6E, 0x28, 0x0F, 0x96, 0x3C, 0x00, 0x10, 0x86, 0x1E, 0xF0, +0x11, 0x76, 0x1E, 0x00, 0x12, 0x6F, 0x3B, 0x70, 0x13, 0x5F, 0x3A, 0x80, 0x14, 0x4F, 0x1D, 0x70, +0x38, 0x5D, 0x01, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x00, 0x00, +0x6A, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x04, 0x00, 0x00, 0x70, 0x80, 0x00, 0x09, +0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x4F, 0x53, 0x54, 0x00, 0x4D, +0x4F, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Macau */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x92, 0xE6, 0x24, 0x04, +0xEF, 0x77, 0xD1, 0xB8, 0xF0, 0xA8, 0x4E, 0x28, 0xF1, 0x57, 0xB3, 0xB8, 0xF2, 0x88, 0x30, 0x28, +0xF3, 0x37, 0x64, 0x80, 0xF4, 0x68, 0x12, 0x28, 0xF5, 0x20, 0xB2, 0x38, 0xF6, 0x47, 0xF4, 0x28, +0xF7, 0x00, 0x63, 0x00, 0xF8, 0x27, 0xA4, 0xF0, 0xF9, 0x05, 0x60, 0x38, 0xF9, 0xF5, 0x43, 0x28, +0xFA, 0xE5, 0x42, 0x38, 0xFB, 0xDE, 0x5F, 0xA8, 0xFC, 0xCE, 0x5E, 0xB8, 0xFD, 0xBE, 0x41, 0xA8, +0xFE, 0xAE, 0x40, 0xB8, 0xFF, 0x9E, 0x23, 0xA8, 0x00, 0x8E, 0x22, 0xB8, 0x01, 0x7E, 0x05, 0xA8, +0x02, 0x6E, 0x04, 0xB8, 0x03, 0x5D, 0xE7, 0xA8, 0x04, 0x4D, 0xB5, 0x80, 0x05, 0x3D, 0x98, 0x70, +0x06, 0x2D, 0x97, 0x80, 0x07, 0x26, 0xB4, 0xF0, 0x08, 0x16, 0xB4, 0x00, 0x09, 0x06, 0xC8, 0x28, +0x09, 0xF6, 0xC7, 0x38, 0x0A, 0xE6, 0xAA, 0x28, 0x0B, 0xD6, 0xA9, 0x38, 0x0C, 0xC6, 0x8C, 0x28, +0x0D, 0xB6, 0x8B, 0x38, 0x0E, 0xA6, 0x6E, 0x28, 0x0F, 0x96, 0x3C, 0x00, 0x10, 0x86, 0x1E, 0xF0, +0x11, 0x76, 0x1E, 0x00, 0x12, 0x6F, 0x3B, 0x70, 0x13, 0x5F, 0x3A, 0x80, 0x14, 0x4F, 0x1D, 0x70, +0x38, 0x5D, 0x01, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x00, 0x00, +0x6A, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x04, 0x00, 0x00, 0x70, 0x80, 0x00, 0x09, +0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x4F, 0x53, 0x54, 0x00, 0x4D, +0x4F, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xAB, 0x41, 0x25, 0x01, 0xBF, 0xF8, 0xFD, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Magadan */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0F, 0xAA, 0x19, 0x36, 0xA0, +0xB5, 0xA3, 0xA8, 0xE0, 0x15, 0x27, 0x37, 0x50, 0x16, 0x18, 0x6B, 0xC0, 0x17, 0x08, 0x6A, 0xD0, +0x17, 0xF9, 0x9F, 0x40, 0x18, 0xE9, 0x9E, 0x50, 0x19, 0xDA, 0xD2, 0xC0, 0x1A, 0xCC, 0x23, 0x50, +0x1B, 0xBC, 0x30, 0x70, 0x1C, 0xAC, 0x21, 0x70, 0x1D, 0x9C, 0x12, 0x70, 0x1E, 0x8C, 0x03, 0x70, +0x1F, 0x7B, 0xF4, 0x70, 0x20, 0x6B, 0xE5, 0x70, 0x21, 0x5B, 0xD6, 0x70, 0x22, 0x4B, 0xC7, 0x70, +0x23, 0x3B, 0xB8, 0x70, 0x24, 0x2B, 0xA9, 0x70, 0x25, 0x1B, 0x9A, 0x70, 0x26, 0x0B, 0x8B, 0x70, +0x27, 0x04, 0xB6, 0xF0, 0x27, 0xF4, 0xA7, 0xF0, 0x28, 0xE4, 0xA7, 0x00, 0x29, 0x78, 0x4F, 0x00, +0x29, 0xD4, 0x5F, 0xC0, 0x2A, 0xC4, 0x42, 0xB0, 0x2B, 0xB4, 0x6B, 0xF0, 0x2C, 0xA4, 0x5C, 0xF0, +0x2D, 0x94, 0x4D, 0xF0, 0x2E, 0x84, 0x3E, 0xF0, 0x2F, 0x74, 0x2F, 0xF0, 0x30, 0x64, 0x20, 0xF0, +0x31, 0x5D, 0x4C, 0x70, 0x32, 0x72, 0x27, 0x70, 0x33, 0x3D, 0x2E, 0x70, 0x34, 0x52, 0x09, 0x70, +0x35, 0x1D, 0x10, 0x70, 0x36, 0x31, 0xEB, 0x70, 0x36, 0xFC, 0xF2, 0x70, 0x38, 0x1B, 0x07, 0xF0, +0x38, 0xDC, 0xD4, 0x70, 0x39, 0xFA, 0xE9, 0xF0, 0x3A, 0xBC, 0xB6, 0x70, 0x3B, 0xDA, 0xCB, 0xF0, +0x3C, 0xA5, 0xD2, 0xF0, 0x3D, 0xBA, 0xAD, 0xF0, 0x3E, 0x85, 0xB4, 0xF0, 0x3F, 0x9A, 0x8F, 0xF0, +0x40, 0x65, 0x96, 0xF0, 0x41, 0x83, 0xAC, 0x70, 0x42, 0x45, 0x78, 0xF0, 0x43, 0x63, 0x8E, 0x70, +0x44, 0x25, 0x5A, 0xF0, 0x45, 0x43, 0x70, 0x70, 0x46, 0x05, 0x3C, 0xF0, 0x47, 0x23, 0x52, 0x70, +0x47, 0xEE, 0x59, 0x70, 0x49, 0x03, 0x34, 0x70, 0x49, 0xCE, 0x3B, 0x70, 0x4A, 0xE3, 0x16, 0x70, +0x4B, 0xAE, 0x1D, 0x70, 0x4C, 0xCC, 0x32, 0xF0, 0x4D, 0x8D, 0xFF, 0x70, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x07, 0x04, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x08, 0x00, 0x00, 0x8D, 0x60, +0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x04, 0x00, 0x00, 0xA8, 0xC0, 0x01, 0x09, 0x00, 0x00, +0x9A, 0xB0, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x04, 0x00, 0x00, 0xA8, 0xC0, 0x01, 0x09, +0x00, 0x00, 0x9A, 0xB0, 0x01, 0x09, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x04, 0x00, 0x00, 0xA8, 0xC0, +0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x41, 0x47, 0x54, 0x00, 0x4D, 0x41, 0x47, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xE4, 0x38, 0x7A, 0x01, 0xF8, 0xC2, 0xC0, 0x00, 0x00, 0x00, 0x13, 0x4D, +0x6F, 0x73, 0x63, 0x6F, 0x77, 0x2B, 0x30, 0x38, 0x20, 0x2D, 0x20, 0x4D, 0x61, 0x67, 0x61, 0x64, +0x61, 0x6E, + +/* Asia/Makassar */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x49, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xA1, 0xF2, 0x5D, 0x90, +0xBA, 0x16, 0xD5, 0x90, 0xCB, 0x88, 0x1D, 0x80, 0xD2, 0x56, 0xEE, 0x70, 0x01, 0x02, 0x03, 0x02, +0x00, 0x00, 0x6F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0xF0, 0x00, 0x04, 0x00, 0x00, 0x70, 0x80, +0x00, 0x08, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x4D, 0x54, 0x00, +0x43, 0x49, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x81, 0x85, 0x8D, 0x01, 0xC8, 0xD9, 0x1F, 0x00, 0x00, 0x00, 0x48, 0x65, 0x61, 0x73, 0x74, +0x20, 0x26, 0x20, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x20, 0x42, 0x6F, 0x72, 0x6E, 0x65, 0x6F, 0x2C, +0x20, 0x53, 0x75, 0x6C, 0x61, 0x77, 0x65, 0x73, 0x69, 0x20, 0x28, 0x43, 0x65, 0x6C, 0x65, 0x62, +0x65, 0x73, 0x29, 0x2C, 0x20, 0x42, 0x61, 0x6C, 0x69, 0x2C, 0x20, 0x4E, 0x75, 0x73, 0x61, 0x20, +0x54, 0x65, 0x6E, 0x67, 0x61, 0x72, 0x72, 0x61, 0x2C, 0x20, 0x77, 0x65, 0x73, 0x74, 0x20, 0x54, +0x69, 0x6D, 0x6F, 0x72, + +/* Asia/Manila */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0xC1, 0x9C, 0xF4, 0x80, +0xC2, 0x16, 0x30, 0x70, 0xCB, 0xF2, 0xE7, 0x00, 0xD0, 0xA9, 0x25, 0x70, 0xE2, 0x6C, 0x39, 0x00, +0xE2, 0xD5, 0xA2, 0xF0, 0x0F, 0x75, 0x46, 0x80, 0x10, 0x66, 0x7A, 0xF0, 0x00, 0x01, 0x02, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x05, +0x00, 0x00, 0x7E, 0x90, 0x00, 0x09, 0x50, 0x48, 0x53, 0x54, 0x00, 0x50, 0x48, 0x54, 0x00, 0x4A, +0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x94, 0xDD, 0x01, 0xCB, 0x4A, +0x20, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Muscat */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4F, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xA1, 0xF2, 0x96, 0x94, +0x01, 0x00, 0x00, 0x36, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x47, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAD, 0x57, 0x00, 0x01, 0x6C, 0x0C, +0x9D, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Nicosia */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D, 0xA5, 0x77, 0x1E, 0xB8, +0x09, 0xED, 0xAF, 0xE0, 0x0A, 0xDD, 0x92, 0xD0, 0x0B, 0xFA, 0x64, 0xE0, 0x0C, 0xBE, 0xC6, 0x50, +0x0D, 0xA4, 0x39, 0x60, 0x0E, 0x8A, 0xE1, 0xD0, 0x0F, 0x84, 0x1B, 0x60, 0x10, 0x75, 0x4F, 0xD0, +0x11, 0x63, 0xFD, 0x60, 0x12, 0x53, 0xE0, 0x50, 0x13, 0x4D, 0x19, 0xE0, 0x14, 0x33, 0xC2, 0x50, +0x15, 0x23, 0xC1, 0x60, 0x16, 0x13, 0xA4, 0x50, 0x17, 0x03, 0xA3, 0x60, 0x17, 0xF3, 0x86, 0x50, +0x18, 0xE3, 0x85, 0x60, 0x19, 0xD3, 0x68, 0x50, 0x1A, 0xC3, 0x67, 0x60, 0x1B, 0xBC, 0x84, 0xD0, +0x1C, 0xAC, 0x83, 0xE0, 0x1D, 0x9C, 0x66, 0xD0, 0x1E, 0x8C, 0x65, 0xE0, 0x1F, 0x7C, 0x48, 0xD0, +0x20, 0x6C, 0x47, 0xE0, 0x21, 0x5C, 0x2A, 0xD0, 0x22, 0x4C, 0x29, 0xE0, 0x23, 0x3C, 0x0C, 0xD0, +0x24, 0x2C, 0x0B, 0xE0, 0x25, 0x1B, 0xEE, 0xD0, 0x26, 0x0B, 0xED, 0xE0, 0x27, 0x05, 0x0B, 0x50, +0x27, 0xF5, 0x0A, 0x60, 0x28, 0xE4, 0xED, 0x50, 0x29, 0xD4, 0xEC, 0x60, 0x2A, 0xC4, 0xCF, 0x50, +0x2B, 0xB4, 0xCE, 0x60, 0x2C, 0xA4, 0xB1, 0x50, 0x2D, 0x94, 0xB0, 0x60, 0x2E, 0x84, 0x93, 0x50, +0x2F, 0x74, 0x92, 0x60, 0x30, 0x64, 0x75, 0x50, 0x31, 0x5D, 0xAE, 0xE0, 0x32, 0x4D, 0x91, 0xD0, +0x33, 0x3D, 0x90, 0xE0, 0x34, 0x2D, 0x73, 0xD0, 0x35, 0x1D, 0x72, 0xE0, 0x36, 0x32, 0x78, 0x10, +0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, +0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, +0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, +0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x1F, 0x48, 0x00, 0x00, 0x00, 0x00, 0x2A, +0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, +0x00, 0x2A, 0x30, 0x01, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, +0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xBE, 0xFD, 0x3A, +0x01, 0x45, 0x92, 0x5A, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Novokuznetsk */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x1A, 0xA1, 0xF9, 0x13, 0x40, +0xB5, 0xA3, 0xE1, 0x20, 0x15, 0x27, 0x6F, 0x90, 0x16, 0x18, 0xA4, 0x00, 0x17, 0x08, 0xA3, 0x10, +0x17, 0xF9, 0xD7, 0x80, 0x18, 0xE9, 0xD6, 0x90, 0x19, 0xDB, 0x0B, 0x00, 0x1A, 0xCC, 0x5B, 0x90, +0x1B, 0xBC, 0x68, 0xB0, 0x1C, 0xAC, 0x59, 0xB0, 0x1D, 0x9C, 0x4A, 0xB0, 0x1E, 0x8C, 0x3B, 0xB0, +0x1F, 0x7C, 0x2C, 0xB0, 0x20, 0x6C, 0x1D, 0xB0, 0x21, 0x5C, 0x0E, 0xB0, 0x22, 0x4B, 0xFF, 0xB0, +0x23, 0x3B, 0xF0, 0xB0, 0x24, 0x2B, 0xE1, 0xB0, 0x25, 0x1B, 0xD2, 0xB0, 0x26, 0x0B, 0xC3, 0xB0, +0x27, 0x04, 0xEF, 0x30, 0x27, 0xF4, 0xE0, 0x30, 0x28, 0xE4, 0xDF, 0x40, 0x29, 0x78, 0x87, 0x40, +0x29, 0xD4, 0x98, 0x00, 0x2A, 0xC4, 0x7A, 0xF0, 0x2B, 0xB4, 0xA4, 0x30, 0x2C, 0xA4, 0x95, 0x30, +0x2D, 0x94, 0x86, 0x30, 0x2E, 0x84, 0x77, 0x30, 0x2F, 0x74, 0x68, 0x30, 0x30, 0x64, 0x59, 0x30, +0x31, 0x5D, 0x84, 0xB0, 0x32, 0x72, 0x5F, 0xB0, 0x33, 0x3D, 0x66, 0xB0, 0x34, 0x52, 0x41, 0xB0, +0x35, 0x1D, 0x48, 0xB0, 0x36, 0x32, 0x23, 0xB0, 0x36, 0xFD, 0x2A, 0xB0, 0x38, 0x1B, 0x40, 0x30, +0x38, 0xDD, 0x0C, 0xB0, 0x39, 0xFB, 0x22, 0x30, 0x3A, 0xBC, 0xEE, 0xB0, 0x3B, 0xDB, 0x04, 0x30, +0x3C, 0xA6, 0x0B, 0x30, 0x3D, 0xBA, 0xE6, 0x30, 0x3E, 0x85, 0xED, 0x30, 0x3F, 0x9A, 0xC8, 0x30, +0x40, 0x65, 0xCF, 0x30, 0x41, 0x83, 0xE4, 0xB0, 0x42, 0x45, 0xB1, 0x30, 0x43, 0x63, 0xC6, 0xB0, +0x44, 0x25, 0x93, 0x30, 0x45, 0x43, 0xA8, 0xB0, 0x46, 0x05, 0x75, 0x30, 0x47, 0x23, 0x8A, 0xB0, +0x47, 0xEE, 0x91, 0xB0, 0x49, 0x03, 0x6C, 0xB0, 0x49, 0xCE, 0x73, 0xB0, 0x4A, 0xE3, 0x4E, 0xB0, +0x4B, 0xAE, 0x55, 0xB0, 0x4C, 0xCC, 0x79, 0x40, 0x4D, 0x8E, 0x45, 0xC0, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x07, 0x04, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x08, 0x09, 0x0A, 0x00, 0x00, 0x51, 0xC0, +0x00, 0x00, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, 0x70, 0x80, 0x01, 0x09, 0x00, 0x00, +0x62, 0x70, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, 0x70, 0x80, 0x01, 0x09, +0x00, 0x00, 0x62, 0x70, 0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, +0x01, 0x0F, 0x00, 0x00, 0x54, 0x60, 0x00, 0x15, 0x00, 0x00, 0x62, 0x70, 0x00, 0x15, 0x4E, 0x4D, +0x54, 0x00, 0x4B, 0x52, 0x41, 0x54, 0x00, 0x4B, 0x52, 0x41, 0x53, 0x54, 0x00, 0x4E, 0x4F, 0x56, +0x53, 0x54, 0x00, 0x4E, 0x4F, 0x56, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, +0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDB, +0x58, 0x58, 0x01, 0x97, 0x96, 0x72, 0x00, 0x00, 0x00, 0x18, 0x4D, 0x6F, 0x73, 0x63, 0x6F, 0x77, +0x2B, 0x30, 0x33, 0x20, 0x2D, 0x20, 0x4E, 0x6F, 0x76, 0x6F, 0x6B, 0x75, 0x7A, 0x6E, 0x65, 0x74, +0x73, 0x6B, + +/* Asia/Novosibirsk */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0F, 0xA1, 0xDB, 0x19, 0x24, +0xB5, 0xA3, 0xE1, 0x20, 0x15, 0x27, 0x6F, 0x90, 0x16, 0x18, 0xA4, 0x00, 0x17, 0x08, 0xA3, 0x10, +0x17, 0xF9, 0xD7, 0x80, 0x18, 0xE9, 0xD6, 0x90, 0x19, 0xDB, 0x0B, 0x00, 0x1A, 0xCC, 0x5B, 0x90, +0x1B, 0xBC, 0x68, 0xB0, 0x1C, 0xAC, 0x59, 0xB0, 0x1D, 0x9C, 0x4A, 0xB0, 0x1E, 0x8C, 0x3B, 0xB0, +0x1F, 0x7C, 0x2C, 0xB0, 0x20, 0x6C, 0x1D, 0xB0, 0x21, 0x5C, 0x0E, 0xB0, 0x22, 0x4B, 0xFF, 0xB0, +0x23, 0x3B, 0xF0, 0xB0, 0x24, 0x2B, 0xE1, 0xB0, 0x25, 0x1B, 0xD2, 0xB0, 0x26, 0x0B, 0xC3, 0xB0, +0x27, 0x04, 0xEF, 0x30, 0x27, 0xF4, 0xE0, 0x30, 0x28, 0xE4, 0xDF, 0x40, 0x29, 0x78, 0x87, 0x40, +0x29, 0xD4, 0x98, 0x00, 0x2A, 0xC4, 0x7A, 0xF0, 0x2B, 0xB4, 0xA4, 0x30, 0x2B, 0xFE, 0x4E, 0x00, +0x2C, 0xA4, 0xA3, 0x40, 0x2D, 0x94, 0x94, 0x40, 0x2E, 0x84, 0x85, 0x40, 0x2F, 0x74, 0x76, 0x40, +0x30, 0x64, 0x67, 0x40, 0x31, 0x5D, 0x92, 0xC0, 0x32, 0x72, 0x6D, 0xC0, 0x33, 0x3D, 0x74, 0xC0, +0x34, 0x52, 0x4F, 0xC0, 0x35, 0x1D, 0x56, 0xC0, 0x36, 0x32, 0x31, 0xC0, 0x36, 0xFD, 0x38, 0xC0, +0x38, 0x1B, 0x4E, 0x40, 0x38, 0xDD, 0x1A, 0xC0, 0x39, 0xFB, 0x30, 0x40, 0x3A, 0xBC, 0xFC, 0xC0, +0x3B, 0xDB, 0x12, 0x40, 0x3C, 0xA6, 0x19, 0x40, 0x3D, 0xBA, 0xF4, 0x40, 0x3E, 0x85, 0xFB, 0x40, +0x3F, 0x9A, 0xD6, 0x40, 0x40, 0x65, 0xDD, 0x40, 0x41, 0x83, 0xF2, 0xC0, 0x42, 0x45, 0xBF, 0x40, +0x43, 0x63, 0xD4, 0xC0, 0x44, 0x25, 0xA1, 0x40, 0x45, 0x43, 0xB6, 0xC0, 0x46, 0x05, 0x83, 0x40, +0x47, 0x23, 0x98, 0xC0, 0x47, 0xEE, 0x9F, 0xC0, 0x49, 0x03, 0x7A, 0xC0, 0x49, 0xCE, 0x81, 0xC0, +0x4A, 0xE3, 0x5C, 0xC0, 0x4B, 0xAE, 0x63, 0xC0, 0x4C, 0xCC, 0x79, 0x40, 0x4D, 0x8E, 0x45, 0xC0, +0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x06, 0x07, 0x04, 0x02, 0x03, 0x05, 0x08, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x04, 0x00, 0x00, 0x4D, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, 0x70, +0x80, 0x01, 0x09, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, +0x00, 0x70, 0x80, 0x01, 0x09, 0x00, 0x00, 0x62, 0x70, 0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x00, +0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x4E, 0x4F, 0x56, 0x54, 0x00, +0x4E, 0x4F, 0x56, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDD, 0x4D, 0xA5, 0x01, 0x91, 0x2D, 0xD2, +0x00, 0x00, 0x00, 0x17, 0x4D, 0x6F, 0x73, 0x63, 0x6F, 0x77, 0x2B, 0x30, 0x33, 0x20, 0x2D, 0x20, +0x4E, 0x6F, 0x76, 0x6F, 0x73, 0x69, 0x62, 0x69, 0x72, 0x73, 0x6B, + +/* Asia/Omsk */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0F, 0xA1, 0xB3, 0x40, 0xB0, +0xB5, 0xA3, 0xEF, 0x30, 0x15, 0x27, 0x7D, 0xA0, 0x16, 0x18, 0xB2, 0x10, 0x17, 0x08, 0xB1, 0x20, +0x17, 0xF9, 0xE5, 0x90, 0x18, 0xE9, 0xE4, 0xA0, 0x19, 0xDB, 0x19, 0x10, 0x1A, 0xCC, 0x69, 0xA0, +0x1B, 0xBC, 0x76, 0xC0, 0x1C, 0xAC, 0x67, 0xC0, 0x1D, 0x9C, 0x58, 0xC0, 0x1E, 0x8C, 0x49, 0xC0, +0x1F, 0x7C, 0x3A, 0xC0, 0x20, 0x6C, 0x2B, 0xC0, 0x21, 0x5C, 0x1C, 0xC0, 0x22, 0x4C, 0x0D, 0xC0, +0x23, 0x3B, 0xFE, 0xC0, 0x24, 0x2B, 0xEF, 0xC0, 0x25, 0x1B, 0xE0, 0xC0, 0x26, 0x0B, 0xD1, 0xC0, +0x27, 0x04, 0xFD, 0x40, 0x27, 0xF4, 0xEE, 0x40, 0x28, 0xE4, 0xED, 0x50, 0x29, 0x78, 0x95, 0x50, +0x29, 0xD4, 0xA6, 0x10, 0x2A, 0xC4, 0x89, 0x00, 0x2B, 0xB4, 0xB2, 0x40, 0x2C, 0xA4, 0xA3, 0x40, +0x2D, 0x94, 0x94, 0x40, 0x2E, 0x84, 0x85, 0x40, 0x2F, 0x74, 0x76, 0x40, 0x30, 0x64, 0x67, 0x40, +0x31, 0x5D, 0x92, 0xC0, 0x32, 0x72, 0x6D, 0xC0, 0x33, 0x3D, 0x74, 0xC0, 0x34, 0x52, 0x4F, 0xC0, +0x35, 0x1D, 0x56, 0xC0, 0x36, 0x32, 0x31, 0xC0, 0x36, 0xFD, 0x38, 0xC0, 0x38, 0x1B, 0x4E, 0x40, +0x38, 0xDD, 0x1A, 0xC0, 0x39, 0xFB, 0x30, 0x40, 0x3A, 0xBC, 0xFC, 0xC0, 0x3B, 0xDB, 0x12, 0x40, +0x3C, 0xA6, 0x19, 0x40, 0x3D, 0xBA, 0xF4, 0x40, 0x3E, 0x85, 0xFB, 0x40, 0x3F, 0x9A, 0xD6, 0x40, +0x40, 0x65, 0xDD, 0x40, 0x41, 0x83, 0xF2, 0xC0, 0x42, 0x45, 0xBF, 0x40, 0x43, 0x63, 0xD4, 0xC0, +0x44, 0x25, 0xA1, 0x40, 0x45, 0x43, 0xB6, 0xC0, 0x46, 0x05, 0x83, 0x40, 0x47, 0x23, 0x98, 0xC0, +0x47, 0xEE, 0x9F, 0xC0, 0x49, 0x03, 0x7A, 0xC0, 0x49, 0xCE, 0x81, 0xC0, 0x4A, 0xE3, 0x5C, 0xC0, +0x4B, 0xAE, 0x63, 0xC0, 0x4C, 0xCC, 0x79, 0x40, 0x4D, 0x8E, 0x45, 0xC0, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x07, 0x04, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x08, 0x00, 0x00, 0x44, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x09, 0x00, 0x00, +0x54, 0x60, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x09, +0x00, 0x00, 0x54, 0x60, 0x01, 0x09, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, +0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x4F, 0x4D, 0x53, 0x54, 0x00, 0x4F, 0x4D, 0x53, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xDD, 0x40, 0xA0, 0x01, 0x82, 0xA8, 0x60, 0x00, 0x00, 0x00, 0x18, 0x4D, +0x6F, 0x73, 0x63, 0x6F, 0x77, 0x2B, 0x30, 0x33, 0x20, 0x2D, 0x20, 0x77, 0x65, 0x73, 0x74, 0x20, +0x53, 0x69, 0x62, 0x65, 0x72, 0x69, 0x61, + +/* Asia/Oral */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x1A, 0xAA, 0x19, 0x93, 0xDC, +0xB5, 0xA3, 0xFD, 0x40, 0x15, 0x27, 0x8B, 0xB0, 0x16, 0x18, 0xC0, 0x20, 0x17, 0x08, 0xB1, 0x20, +0x17, 0xF9, 0xF3, 0xA0, 0x18, 0xE9, 0xF2, 0xB0, 0x19, 0xDB, 0x27, 0x20, 0x1A, 0xCC, 0x77, 0xB0, +0x1B, 0xBC, 0x84, 0xD0, 0x1C, 0xAC, 0x75, 0xD0, 0x1D, 0x9C, 0x66, 0xD0, 0x1E, 0x8C, 0x57, 0xD0, +0x1F, 0x7C, 0x48, 0xD0, 0x20, 0x6C, 0x39, 0xD0, 0x21, 0x5C, 0x2A, 0xD0, 0x22, 0x4C, 0x1B, 0xD0, +0x23, 0x3C, 0x0C, 0xD0, 0x24, 0x2B, 0xFD, 0xD0, 0x25, 0x1B, 0xFC, 0xE0, 0x26, 0x0B, 0xED, 0xE0, +0x27, 0x05, 0x19, 0x60, 0x27, 0x7F, 0x98, 0xC0, 0x29, 0x4B, 0xB4, 0x40, 0x29, 0xD4, 0xC2, 0x30, +0x2A, 0xC4, 0xA5, 0x20, 0x2B, 0xB4, 0xCE, 0x60, 0x2C, 0xA4, 0xBF, 0x60, 0x2D, 0x94, 0xB0, 0x60, +0x2E, 0x84, 0xA1, 0x60, 0x2F, 0x74, 0x92, 0x60, 0x30, 0x64, 0x83, 0x60, 0x31, 0x5D, 0xAE, 0xE0, +0x32, 0x72, 0x89, 0xE0, 0x33, 0x3D, 0x90, 0xE0, 0x34, 0x52, 0x6B, 0xE0, 0x35, 0x1D, 0x72, 0xE0, +0x36, 0x32, 0x4D, 0xE0, 0x36, 0xFD, 0x54, 0xE0, 0x38, 0x1B, 0x6A, 0x60, 0x38, 0xDD, 0x36, 0xE0, +0x39, 0xFB, 0x4C, 0x60, 0x3A, 0xBD, 0x18, 0xE0, 0x3B, 0xDB, 0x2E, 0x60, 0x3C, 0xA6, 0x35, 0x60, +0x3D, 0xBB, 0x10, 0x60, 0x3E, 0x86, 0x17, 0x60, 0x3F, 0x9A, 0xF2, 0x60, 0x40, 0x65, 0xF9, 0x60, +0x41, 0x84, 0x0E, 0xE0, 0x42, 0x35, 0xED, 0x40, 0x01, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, +0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x07, 0x08, 0x07, 0x08, 0x01, 0x0A, +0x09, 0x0A, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, +0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0D, 0x00, 0x00, 0x30, 0x24, 0x00, +0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x54, +0x60, 0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, +0x00, 0x54, 0x60, 0x01, 0x09, 0x00, 0x00, 0x46, 0x50, 0x01, 0x09, 0x00, 0x00, 0x38, 0x40, 0x00, +0x04, 0x00, 0x00, 0x46, 0x50, 0x01, 0x0F, 0x00, 0x00, 0x38, 0x40, 0x00, 0x15, 0x00, 0x00, 0x46, +0x50, 0x01, 0x0F, 0x00, 0x00, 0x38, 0x40, 0x00, 0x15, 0x00, 0x00, 0x46, 0x50, 0x00, 0x15, 0x4C, +0x4D, 0x54, 0x00, 0x55, 0x52, 0x41, 0x54, 0x00, 0x55, 0x52, 0x41, 0x53, 0x54, 0x00, 0x4F, 0x52, +0x41, 0x53, 0x54, 0x00, 0x4F, 0x52, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, +0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0x7A, 0xC2, 0x01, 0x61, 0x03, 0x18, 0x00, 0x00, 0x00, +0x0F, 0x57, 0x65, 0x73, 0x74, 0x20, 0x4B, 0x61, 0x7A, 0x61, 0x6B, 0x68, 0x73, 0x74, 0x61, 0x6E, + + +/* Asia/Phnom_Penh */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0x88, 0x6F, 0x44, 0x24, +0x91, 0x5F, 0xEE, 0xD0, 0x93, 0x85, 0xB1, 0x90, 0xB7, 0x41, 0xBC, 0x00, 0x01, 0x02, 0x03, 0x02, +0x00, 0x00, 0x62, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x63, 0xEC, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, +0x00, 0x08, 0x00, 0x00, 0x70, 0x80, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x53, 0x4D, 0x54, 0x00, +0x49, 0x43, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xF3, 0xF8, +0x01, 0xB2, 0xBF, 0x92, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Pontianak */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x49, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0x8B, 0xFF, 0x8E, 0x00, +0xBA, 0x16, 0xDF, 0x00, 0xCB, 0x79, 0xA4, 0x08, 0xD2, 0x56, 0xEE, 0x70, 0xD7, 0x3C, 0xC6, 0x08, +0xDA, 0xFF, 0x26, 0x00, 0xF4, 0xB5, 0xBE, 0x88, 0x21, 0xDA, 0x74, 0x80, 0x01, 0x02, 0x03, 0x02, +0x04, 0x02, 0x05, 0x06, 0x00, 0x00, 0x66, 0x80, 0x00, 0x00, 0x00, 0x00, 0x66, 0x80, 0x00, 0x04, +0x00, 0x00, 0x69, 0x78, 0x00, 0x08, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x0C, 0x00, 0x00, 0x70, 0x80, +0x00, 0x08, 0x00, 0x00, 0x70, 0x80, 0x00, 0x10, 0x00, 0x00, 0x62, 0x70, 0x00, 0x08, 0x4C, 0x4D, +0x54, 0x00, 0x50, 0x4D, 0x54, 0x00, 0x57, 0x49, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x43, 0x49, +0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x89, 0x47, 0x3A, 0x01, 0xB9, 0x7C, 0xD5, 0x00, 0x00, 0x00, 0x15, 0x77, 0x65, 0x73, 0x74, +0x20, 0x26, 0x20, 0x63, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x42, 0x6F, 0x72, 0x6E, 0x65, +0x6F, + +/* Asia/Pyongyang */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x85, 0x93, 0x7E, 0x78, +0xB0, 0xFE, 0x8D, 0xF0, 0xB8, 0x84, 0xB4, 0x78, 0xE2, 0x4F, 0x29, 0xF0, 0xF0, 0x35, 0x78, 0x80, +0x01, 0x00, 0x01, 0x02, 0x01, 0x00, 0x00, 0x77, 0x88, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x90, 0x00, +0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x00, 0x4B, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xC4, 0xDD, 0x22, 0x01, 0xD2, 0x89, 0x98, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Qatar */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x51, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xA1, 0xF2, 0x9D, 0x30, +0x04, 0x8A, 0x92, 0xC0, 0x01, 0x02, 0x00, 0x00, 0x30, 0x50, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, +0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x47, 0x53, 0x54, 0x00, +0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAF, 0xE8, 0x8D, 0x01, 0x61, +0x4A, 0xB5, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Qyzylorda */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x1A, 0xAA, 0x19, 0x86, 0xA0, +0xB5, 0xA3, 0xFD, 0x40, 0x15, 0x27, 0x8B, 0xB0, 0x16, 0x18, 0xC0, 0x20, 0x17, 0x08, 0xB1, 0x20, +0x17, 0xF9, 0xF3, 0xA0, 0x18, 0xE9, 0xF2, 0xB0, 0x19, 0xDB, 0x27, 0x20, 0x1A, 0xCC, 0x77, 0xB0, +0x1B, 0xBC, 0x84, 0xD0, 0x1C, 0xAC, 0x75, 0xD0, 0x1D, 0x9C, 0x66, 0xD0, 0x1E, 0x8C, 0x57, 0xD0, +0x1F, 0x7C, 0x48, 0xD0, 0x20, 0x6C, 0x39, 0xD0, 0x21, 0x5C, 0x2A, 0xD0, 0x22, 0x4C, 0x1B, 0xD0, +0x23, 0x3C, 0x0C, 0xD0, 0x24, 0x2B, 0xFD, 0xD0, 0x25, 0x1B, 0xEE, 0xD0, 0x26, 0x0B, 0xDF, 0xD0, +0x27, 0x05, 0x0B, 0x50, 0x27, 0x7F, 0x8A, 0xB0, 0x29, 0x4B, 0xA6, 0x30, 0x29, 0x78, 0x95, 0x50, +0x29, 0xD4, 0xA6, 0x10, 0x2A, 0xC4, 0x89, 0x00, 0x2B, 0xB4, 0xB2, 0x40, 0x2C, 0xA4, 0xA3, 0x40, +0x2D, 0x94, 0x94, 0x40, 0x2E, 0x84, 0x85, 0x40, 0x2F, 0x74, 0x76, 0x40, 0x30, 0x64, 0x67, 0x40, +0x31, 0x5D, 0x92, 0xC0, 0x32, 0x72, 0x6D, 0xC0, 0x33, 0x3D, 0x74, 0xC0, 0x34, 0x52, 0x4F, 0xC0, +0x35, 0x1D, 0x56, 0xC0, 0x36, 0x32, 0x31, 0xC0, 0x36, 0xFD, 0x38, 0xC0, 0x38, 0x1B, 0x4E, 0x40, +0x38, 0xDD, 0x1A, 0xC0, 0x39, 0xFB, 0x30, 0x40, 0x3A, 0xBC, 0xFC, 0xC0, 0x3B, 0xDB, 0x12, 0x40, +0x3C, 0xA6, 0x19, 0x40, 0x3D, 0xBA, 0xF4, 0x40, 0x3E, 0x85, 0xFB, 0x40, 0x3F, 0x9A, 0xD6, 0x40, +0x40, 0x65, 0xDD, 0x40, 0x41, 0x83, 0xF2, 0xC0, 0x42, 0x35, 0xD1, 0x20, 0x01, 0x02, 0x03, 0x04, +0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x02, 0x07, 0x09, 0x08, 0x09, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x09, +0x00, 0x00, 0x3D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, +0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, +0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x01, 0x09, 0x00, 0x00, 0x46, 0x50, 0x00, 0x0F, +0x00, 0x00, 0x62, 0x70, 0x01, 0x14, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0F, 0x00, 0x00, 0x62, 0x70, +0x01, 0x14, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0F, 0x4C, 0x4D, 0x54, 0x00, 0x4B, 0x49, 0x5A, 0x54, +0x00, 0x4B, 0x49, 0x5A, 0x53, 0x54, 0x00, 0x51, 0x59, 0x5A, 0x54, 0x00, 0x51, 0x59, 0x5A, 0x53, +0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCD, 0xB0, 0x40, 0x01, 0x76, +0x8D, 0x6A, 0x00, 0x00, 0x00, 0x20, 0x51, 0x79, 0x7A, 0x79, 0x6C, 0x6F, 0x72, 0x64, 0x61, 0x20, +0x28, 0x4B, 0x79, 0x7A, 0x79, 0x6C, 0x6F, 0x72, 0x64, 0x61, 0x2C, 0x20, 0x4B, 0x7A, 0x79, 0x6C, +0x2D, 0x4F, 0x72, 0x64, 0x61, 0x29, + +/* Asia/Rangoon */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0xA1, 0xF2, 0x73, 0x5C, +0xCB, 0xF2, 0xFC, 0x18, 0xD1, 0x9A, 0x67, 0xF0, 0x01, 0x02, 0x03, 0x00, 0x00, 0x5A, 0x24, 0x00, +0x00, 0x00, 0x00, 0x5B, 0x68, 0x00, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x09, 0x00, 0x00, 0x5B, +0x68, 0x00, 0x0D, 0x52, 0x4D, 0x54, 0x00, 0x42, 0x55, 0x52, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, +0x4D, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2, 0xF0, 0x3D, +0x01, 0xA5, 0x65, 0x9A, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Riyadh */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xDA, 0x61, 0x36, 0xB4, +0x01, 0x00, 0x00, 0x2B, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAE, 0xEA, 0xA5, 0x01, 0x59, 0xF1, +0x32, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Saigon */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0x88, 0x6F, 0x42, 0x80, +0x91, 0x5F, 0xEE, 0xD0, 0x93, 0x85, 0xB1, 0x90, 0xB7, 0x41, 0xBC, 0x00, 0x01, 0x02, 0x03, 0x02, +0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0xEC, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, +0x00, 0x08, 0x00, 0x00, 0x70, 0x80, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x53, 0x4D, 0x54, 0x00, +0x49, 0x43, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, +0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Sakhalin */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x17, 0x86, 0xF0, 0xCD, 0xB8, +0xC3, 0xCE, 0x85, 0x70, 0xD2, 0x30, 0xB2, 0xF0, 0x15, 0x27, 0x37, 0x50, 0x16, 0x18, 0x6B, 0xC0, +0x17, 0x08, 0x6A, 0xD0, 0x17, 0xF9, 0x9F, 0x40, 0x18, 0xE9, 0x9E, 0x50, 0x19, 0xDA, 0xD2, 0xC0, +0x1A, 0xCC, 0x23, 0x50, 0x1B, 0xBC, 0x30, 0x70, 0x1C, 0xAC, 0x21, 0x70, 0x1D, 0x9C, 0x12, 0x70, +0x1E, 0x8C, 0x03, 0x70, 0x1F, 0x7B, 0xF4, 0x70, 0x20, 0x6B, 0xE5, 0x70, 0x21, 0x5B, 0xD6, 0x70, +0x22, 0x4B, 0xC7, 0x70, 0x23, 0x3B, 0xB8, 0x70, 0x24, 0x2B, 0xA9, 0x70, 0x25, 0x1B, 0x9A, 0x70, +0x26, 0x0B, 0x8B, 0x70, 0x27, 0x04, 0xB6, 0xF0, 0x27, 0xF4, 0xA7, 0xF0, 0x28, 0xE4, 0xA7, 0x00, +0x29, 0x78, 0x4F, 0x00, 0x29, 0xD4, 0x5F, 0xC0, 0x2A, 0xC4, 0x42, 0xB0, 0x2B, 0xB4, 0x6B, 0xF0, +0x2C, 0xA4, 0x5C, 0xF0, 0x2D, 0x94, 0x4D, 0xF0, 0x2E, 0x84, 0x3E, 0xF0, 0x2F, 0x74, 0x2F, 0xF0, +0x30, 0x64, 0x20, 0xF0, 0x31, 0x5D, 0x4C, 0x70, 0x32, 0x72, 0x27, 0x70, 0x33, 0x3D, 0x2E, 0x70, +0x34, 0x52, 0x17, 0x80, 0x35, 0x1D, 0x1E, 0x80, 0x36, 0x31, 0xF9, 0x80, 0x36, 0xFD, 0x00, 0x80, +0x38, 0x1B, 0x16, 0x00, 0x38, 0xDC, 0xE2, 0x80, 0x39, 0xFA, 0xF8, 0x00, 0x3A, 0xBC, 0xC4, 0x80, +0x3B, 0xDA, 0xDA, 0x00, 0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0xBA, 0xBC, 0x00, 0x3E, 0x85, 0xC3, 0x00, +0x3F, 0x9A, 0x9E, 0x00, 0x40, 0x65, 0xA5, 0x00, 0x41, 0x83, 0xBA, 0x80, 0x42, 0x45, 0x87, 0x00, +0x43, 0x63, 0x9C, 0x80, 0x44, 0x25, 0x69, 0x00, 0x45, 0x43, 0x7E, 0x80, 0x46, 0x05, 0x4B, 0x00, +0x47, 0x23, 0x60, 0x80, 0x47, 0xEE, 0x67, 0x80, 0x49, 0x03, 0x42, 0x80, 0x49, 0xCE, 0x49, 0x80, +0x4A, 0xE3, 0x24, 0x80, 0x4B, 0xAE, 0x2B, 0x80, 0x4C, 0xCC, 0x41, 0x00, 0x4D, 0x8E, 0x0D, 0x80, +0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x07, 0x08, 0x05, 0x03, 0x04, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, +0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, +0x05, 0x00, 0x00, 0x85, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x04, 0x00, 0x00, 0x7E, +0x90, 0x00, 0x08, 0x00, 0x00, 0xA8, 0xC0, 0x01, 0x0C, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x12, 0x00, +0x00, 0x9A, 0xB0, 0x00, 0x12, 0x00, 0x00, 0xA8, 0xC0, 0x01, 0x0C, 0x00, 0x00, 0x9A, 0xB0, 0x01, +0x0C, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x12, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x4A, 0x54, 0x00, 0x4A, +0x53, 0x54, 0x00, 0x53, 0x41, 0x4B, 0x53, 0x54, 0x00, 0x53, 0x41, 0x4B, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xD0, 0xFE, 0x9A, 0x01, 0xEC, 0x66, 0xB0, 0x00, 0x00, 0x00, 0x1B, 0x4D, 0x6F, 0x73, 0x63, +0x6F, 0x77, 0x2B, 0x30, 0x37, 0x20, 0x2D, 0x20, 0x53, 0x61, 0x6B, 0x68, 0x61, 0x6C, 0x69, 0x6E, +0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, + +/* Asia/Samarkand */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x1D, 0xAA, 0x19, 0x85, 0x60, +0xB5, 0xA3, 0xFD, 0x40, 0x15, 0x27, 0x8B, 0xB0, 0x16, 0x18, 0xC0, 0x20, 0x17, 0x08, 0xB1, 0x20, +0x17, 0xF9, 0xF3, 0xA0, 0x18, 0xE9, 0xF2, 0xB0, 0x19, 0xDB, 0x27, 0x20, 0x1A, 0xCC, 0x77, 0xB0, +0x1B, 0xBC, 0x84, 0xD0, 0x1C, 0xAC, 0x75, 0xD0, 0x1D, 0x9C, 0x66, 0xD0, 0x1E, 0x8C, 0x57, 0xD0, +0x1F, 0x7C, 0x48, 0xD0, 0x20, 0x6C, 0x39, 0xD0, 0x21, 0x5C, 0x2A, 0xD0, 0x22, 0x4C, 0x1B, 0xD0, +0x23, 0x3C, 0x0C, 0xD0, 0x24, 0x2B, 0xFD, 0xD0, 0x25, 0x1B, 0xEE, 0xD0, 0x26, 0x0B, 0xDF, 0xD0, +0x27, 0x05, 0x0B, 0x50, 0x27, 0xF4, 0xFC, 0x50, 0x28, 0xBF, 0xD9, 0x20, 0x28, 0xE4, 0xED, 0x50, +0x29, 0x60, 0xBE, 0x30, 0x01, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x08, 0x07, 0x09, 0x00, 0x00, +0x3E, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, +0x00, 0x00, 0x54, 0x60, 0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0F, 0x00, 0x00, 0x46, 0x50, +0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x01, 0x09, 0x00, 0x00, 0x46, 0x50, 0x00, 0x14, 0x00, 0x00, +0x54, 0x60, 0x01, 0x18, 0x00, 0x00, 0x46, 0x50, 0x00, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x53, 0x41, +0x4D, 0x54, 0x00, 0x53, 0x41, 0x4D, 0x53, 0x54, 0x00, 0x54, 0x41, 0x53, 0x54, 0x00, 0x55, 0x5A, +0x54, 0x00, 0x55, 0x5A, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xDB, 0x0A, 0x01, +0x78, 0x96, 0x40, 0x00, 0x00, 0x00, 0x0F, 0x77, 0x65, 0x73, 0x74, 0x20, 0x55, 0x7A, 0x62, 0x65, +0x6B, 0x69, 0x73, 0x74, 0x61, 0x6E, + +/* Asia/Seoul */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x85, 0x93, 0x7E, 0x78, +0xB0, 0xFE, 0x8D, 0xF0, 0xB8, 0x84, 0xB4, 0x78, 0xE2, 0x4F, 0x29, 0xF0, 0xED, 0xE1, 0x92, 0x80, +0xEE, 0x81, 0x09, 0xF0, 0xF0, 0x35, 0x78, 0x80, 0xFD, 0xA5, 0x0A, 0xF8, 0x20, 0xA3, 0x44, 0x70, +0x21, 0x6E, 0x3D, 0x60, 0x22, 0x83, 0x26, 0x70, 0x23, 0x4E, 0x1F, 0x60, 0x01, 0x00, 0x01, 0x03, +0x02, 0x03, 0x00, 0x01, 0x04, 0x01, 0x04, 0x01, 0x00, 0x00, 0x77, 0x88, 0x00, 0x00, 0x00, 0x00, +0x7E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x04, 0x00, 0x00, 0x70, 0x80, 0x00, 0x00, +0x00, 0x00, 0x8C, 0xA0, 0x01, 0x04, 0x4B, 0x53, 0x54, 0x00, 0x4B, 0x44, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xA0, 0x38, 0x01, 0xD4, 0x64, 0xDA, +0x00, 0x00, 0x00, 0x00, + +/* Asia/Shanghai */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xB0, 0xFE, 0x9A, 0xA0, +0xC8, 0x5C, 0x01, 0x80, 0xC8, 0xFA, 0x27, 0x70, 0xC9, 0xD5, 0x0E, 0x80, 0xCA, 0xDB, 0x5A, 0xF0, +0x1E, 0xBA, 0x36, 0x00, 0x1F, 0x69, 0x7F, 0x70, 0x20, 0x7E, 0x68, 0x80, 0x21, 0x49, 0x61, 0x70, +0x22, 0x5E, 0x4A, 0x80, 0x23, 0x29, 0x43, 0x70, 0x24, 0x47, 0x67, 0x00, 0x25, 0x12, 0x5F, 0xF0, +0x26, 0x27, 0x49, 0x00, 0x26, 0xF2, 0x41, 0xF0, 0x28, 0x07, 0x2B, 0x00, 0x28, 0xD2, 0x23, 0xF0, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x00, 0x00, 0x71, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x04, 0x00, 0x00, 0x70, +0x80, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0xFC, 0xC5, 0x01, 0xCC, 0x00, 0x6A, 0x00, 0x00, 0x00, +0x2F, 0x65, 0x61, 0x73, 0x74, 0x20, 0x43, 0x68, 0x69, 0x6E, 0x61, 0x20, 0x2D, 0x20, 0x42, 0x65, +0x69, 0x6A, 0x69, 0x6E, 0x67, 0x2C, 0x20, 0x47, 0x75, 0x61, 0x6E, 0x67, 0x64, 0x6F, 0x6E, 0x67, +0x2C, 0x20, 0x53, 0x68, 0x61, 0x6E, 0x67, 0x68, 0x61, 0x69, 0x2C, 0x20, 0x65, 0x74, 0x63, 0x2E, + + +/* Asia/Singapore */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x17, 0x86, 0x83, 0x85, 0xA3, +0xBA, 0x67, 0x4E, 0x90, 0xC0, 0x0A, 0xE4, 0x60, 0xCA, 0xB3, 0xE5, 0x60, 0xCB, 0x91, 0x5F, 0x08, +0xD2, 0x48, 0x6D, 0xF0, 0xF7, 0xBA, 0x4D, 0x88, 0x16, 0x91, 0xF5, 0x08, 0x01, 0x02, 0x03, 0x04, +0x05, 0x04, 0x06, 0x07, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, +0x00, 0x00, 0x67, 0x20, 0x01, 0x09, 0x00, 0x00, 0x67, 0x20, 0x00, 0x04, 0x00, 0x00, 0x69, 0x78, +0x00, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x0F, 0x00, 0x00, 0x69, 0x78, 0x00, 0x13, 0x00, 0x00, +0x70, 0x80, 0x00, 0x13, 0x53, 0x4D, 0x54, 0x00, 0x4D, 0x41, 0x4C, 0x54, 0x00, 0x4D, 0x41, 0x4C, +0x53, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x53, 0x47, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8B, 0x49, 0x8D, 0x01, +0xB1, 0x1E, 0xE8, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Taipei */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xD1, 0x97, 0xD3, 0x00, +0xD2, 0x61, 0x7A, 0x70, 0xD3, 0x79, 0x06, 0x80, 0xD4, 0x42, 0xAD, 0xF0, 0xD5, 0x5A, 0x3A, 0x00, +0xD6, 0x23, 0xE1, 0x70, 0xD7, 0x3C, 0xBF, 0x00, 0xD8, 0x06, 0x66, 0x70, 0xD9, 0x1D, 0xF2, 0x80, +0xD9, 0xE7, 0x99, 0xF0, 0xDA, 0xFF, 0x26, 0x00, 0xDB, 0xC8, 0xCD, 0x70, 0xDC, 0xE0, 0x59, 0x80, +0xDD, 0xAA, 0x00, 0xF0, 0xDE, 0x72, 0x73, 0x00, 0xDF, 0xB5, 0x64, 0x70, 0xE0, 0x7C, 0x85, 0x00, +0xE1, 0x96, 0x97, 0xF0, 0xE2, 0x5D, 0xB8, 0x80, 0xE3, 0x77, 0xCB, 0x70, 0xE4, 0x3E, 0xEC, 0x00, +0xE5, 0x30, 0x20, 0x70, 0xE6, 0x21, 0x71, 0x00, 0xE7, 0x12, 0xA5, 0x70, 0xE8, 0x02, 0xA4, 0x80, +0xE8, 0xF3, 0xD8, 0xF0, 0xE9, 0xE3, 0xD8, 0x00, 0xEA, 0xD5, 0x0C, 0x70, 0xEB, 0xC5, 0x0B, 0x80, +0xEC, 0xB6, 0x3F, 0xF0, 0xED, 0xF7, 0xFC, 0x00, 0xEE, 0x98, 0xC4, 0xF0, 0xEF, 0xD9, 0x2F, 0x80, +0xF0, 0x79, 0xF8, 0x70, 0x07, 0xFC, 0x56, 0x00, 0x08, 0xED, 0x8A, 0x70, 0x09, 0xDD, 0x89, 0x80, +0x0A, 0xCE, 0xBD, 0xF0, 0x11, 0xDA, 0x50, 0x00, 0x12, 0x53, 0x8B, 0xF0, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, +0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAF, 0x8D, 0x68, +0x01, 0xCC, 0x0D, 0x70, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Tashkent */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x18, 0xAA, 0x19, 0x83, 0x08, +0xB5, 0xA3, 0xEF, 0x30, 0x15, 0x27, 0x7D, 0xA0, 0x16, 0x18, 0xB2, 0x10, 0x17, 0x08, 0xB1, 0x20, +0x17, 0xF9, 0xE5, 0x90, 0x18, 0xE9, 0xE4, 0xA0, 0x19, 0xDB, 0x19, 0x10, 0x1A, 0xCC, 0x69, 0xA0, +0x1B, 0xBC, 0x76, 0xC0, 0x1C, 0xAC, 0x67, 0xC0, 0x1D, 0x9C, 0x58, 0xC0, 0x1E, 0x8C, 0x49, 0xC0, +0x1F, 0x7C, 0x3A, 0xC0, 0x20, 0x6C, 0x2B, 0xC0, 0x21, 0x5C, 0x1C, 0xC0, 0x22, 0x4C, 0x0D, 0xC0, +0x23, 0x3B, 0xFE, 0xC0, 0x24, 0x2B, 0xEF, 0xC0, 0x25, 0x1B, 0xE0, 0xC0, 0x26, 0x0B, 0xD1, 0xC0, +0x27, 0x04, 0xFD, 0x40, 0x27, 0xF4, 0xEE, 0x40, 0x28, 0xBF, 0xD9, 0x20, 0x28, 0xE4, 0xED, 0x50, +0x29, 0x60, 0xBE, 0x30, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x06, 0x08, 0x07, 0x09, 0x00, 0x00, +0x40, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x09, +0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, +0x01, 0x09, 0x00, 0x00, 0x54, 0x60, 0x01, 0x09, 0x00, 0x00, 0x46, 0x50, 0x00, 0x0F, 0x00, 0x00, +0x54, 0x60, 0x01, 0x13, 0x00, 0x00, 0x46, 0x50, 0x00, 0x0F, 0x4C, 0x4D, 0x54, 0x00, 0x54, 0x41, +0x53, 0x54, 0x00, 0x54, 0x41, 0x53, 0x53, 0x54, 0x00, 0x55, 0x5A, 0x54, 0x00, 0x55, 0x5A, 0x53, +0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x66, 0x15, 0x01, 0x7C, 0x66, 0xD0, 0x00, 0x00, +0x00, 0x0F, 0x65, 0x61, 0x73, 0x74, 0x20, 0x55, 0x7A, 0x62, 0x65, 0x6B, 0x69, 0x73, 0x74, 0x61, +0x6E, + +/* Asia/Tbilisi */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x19, 0xAA, 0x19, 0x99, 0xFC, +0xE7, 0xDA, 0x0C, 0x50, 0x15, 0x27, 0x99, 0xC0, 0x16, 0x18, 0xCE, 0x30, 0x17, 0x08, 0xCD, 0x40, +0x17, 0xFA, 0x01, 0xB0, 0x18, 0xEA, 0x00, 0xC0, 0x19, 0xDB, 0x35, 0x30, 0x1A, 0xCC, 0x85, 0xC0, +0x1B, 0xBC, 0x92, 0xE0, 0x1C, 0xAC, 0x83, 0xE0, 0x1D, 0x9C, 0x74, 0xE0, 0x1E, 0x8C, 0x65, 0xE0, +0x1F, 0x7C, 0x56, 0xE0, 0x20, 0x6C, 0x47, 0xE0, 0x21, 0x5C, 0x38, 0xE0, 0x22, 0x4C, 0x29, 0xE0, +0x23, 0x3C, 0x1A, 0xE0, 0x24, 0x2C, 0x0B, 0xE0, 0x25, 0x1B, 0xFC, 0xE0, 0x26, 0x0B, 0xED, 0xE0, +0x27, 0x05, 0x19, 0x60, 0x27, 0xF5, 0x0A, 0x60, 0x28, 0x00, 0xCB, 0xC0, 0x28, 0xE5, 0x09, 0x70, +0x29, 0x60, 0xDA, 0x50, 0x29, 0xD4, 0xDE, 0x50, 0x2A, 0xC4, 0xC1, 0x40, 0x2B, 0xB4, 0xC0, 0x50, +0x2C, 0xA4, 0xA3, 0x40, 0x2D, 0x94, 0xA2, 0x50, 0x2E, 0x84, 0x85, 0x40, 0x2F, 0x74, 0x76, 0x40, +0x30, 0x64, 0x59, 0x30, 0x31, 0x5D, 0x92, 0xC0, 0x33, 0x3D, 0x66, 0xB0, 0x34, 0x52, 0x41, 0xB0, +0x35, 0x1D, 0x56, 0xC0, 0x36, 0x32, 0x23, 0xB0, 0x36, 0xFD, 0x38, 0xC0, 0x38, 0x1B, 0x40, 0x30, +0x38, 0xDD, 0x1A, 0xC0, 0x39, 0xFB, 0x22, 0x30, 0x3A, 0xBC, 0xFC, 0xC0, 0x3B, 0xDB, 0x04, 0x30, +0x3C, 0xA6, 0x19, 0x40, 0x3D, 0xBA, 0xE6, 0x30, 0x3E, 0x85, 0xFB, 0x40, 0x3F, 0x9A, 0xC8, 0x30, +0x40, 0x65, 0xDD, 0x40, 0x40, 0xDD, 0xC7, 0xB0, 0x41, 0x84, 0x1C, 0xF0, 0x42, 0x45, 0xE9, 0x70, +0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x06, 0x08, 0x07, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x0B, +0x0A, 0x0B, 0x0A, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x08, 0x07, 0x0B, 0x00, 0x00, 0x2A, 0x04, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, +0x05, 0x00, 0x00, 0x46, 0x50, 0x01, 0x0A, 0x00, 0x00, 0x38, 0x40, 0x00, 0x05, 0x00, 0x00, 0x38, +0x40, 0x00, 0x05, 0x00, 0x00, 0x46, 0x50, 0x01, 0x0A, 0x00, 0x00, 0x38, 0x40, 0x01, 0x0A, 0x00, +0x00, 0x2A, 0x30, 0x00, 0x10, 0x00, 0x00, 0x38, 0x40, 0x01, 0x14, 0x00, 0x00, 0x2A, 0x30, 0x00, +0x10, 0x00, 0x00, 0x46, 0x50, 0x01, 0x14, 0x00, 0x00, 0x38, 0x40, 0x00, 0x10, 0x54, 0x42, 0x4D, +0x54, 0x00, 0x54, 0x42, 0x49, 0x54, 0x00, 0x54, 0x42, 0x49, 0x53, 0x54, 0x00, 0x47, 0x45, 0x54, +0x00, 0x47, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, +0xFB, 0xD2, 0x01, 0x57, 0x0B, 0x02, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Tehran */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x49, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0x9A, 0x6C, 0x7D, 0xC8, +0xD2, 0xDB, 0x12, 0xC8, 0x0E, 0xBB, 0xA2, 0x48, 0x0F, 0x74, 0x2D, 0x40, 0x10, 0x8E, 0x40, 0x30, +0x10, 0xED, 0x3A, 0x40, 0x11, 0x55, 0x67, 0xC8, 0x12, 0x45, 0x4A, 0xB8, 0x13, 0x37, 0xEC, 0xC8, +0x14, 0x2D, 0x15, 0xB8, 0x28, 0x20, 0x76, 0xC8, 0x28, 0xDB, 0x9D, 0xB8, 0x29, 0xCB, 0x9C, 0xC8, +0x2A, 0xBE, 0x22, 0xB8, 0x2B, 0xAC, 0xD0, 0x48, 0x2C, 0x9F, 0x56, 0x38, 0x2D, 0x8E, 0x03, 0xC8, +0x2E, 0x80, 0x89, 0xB8, 0x2F, 0x6F, 0x37, 0x48, 0x30, 0x61, 0xBD, 0x38, 0x31, 0x50, 0x6A, 0xC8, +0x32, 0x42, 0xF0, 0xB8, 0x33, 0x32, 0xEF, 0xC8, 0x34, 0x25, 0x75, 0xB8, 0x35, 0x14, 0x23, 0x48, +0x36, 0x06, 0xA9, 0x38, 0x36, 0xF5, 0x56, 0xC8, 0x37, 0xE7, 0xDC, 0xB8, 0x38, 0xD6, 0x8A, 0x48, +0x39, 0xC9, 0x10, 0x38, 0x3A, 0xB9, 0x0F, 0x48, 0x3B, 0xAB, 0x95, 0x38, 0x3C, 0x9A, 0x42, 0xC8, +0x3D, 0x8C, 0xC8, 0xB8, 0x3E, 0x7B, 0x76, 0x48, 0x3F, 0x6D, 0xFC, 0x38, 0x40, 0x5C, 0xA9, 0xC8, +0x41, 0x4F, 0x2F, 0xB8, 0x42, 0x3F, 0x2E, 0xC8, 0x43, 0x31, 0xB4, 0xB8, 0x47, 0xE2, 0xC9, 0x48, +0x48, 0xD5, 0x4F, 0x38, 0x49, 0xC5, 0x4E, 0x48, 0x4A, 0xB7, 0xD4, 0x38, 0x4B, 0xA6, 0x81, 0xC8, +0x4C, 0x99, 0x07, 0xB8, 0x4D, 0x87, 0xB5, 0x48, 0x4E, 0x7A, 0x3B, 0x38, 0x4F, 0x68, 0xE8, 0xC8, +0x50, 0x5B, 0x6E, 0xB8, 0x51, 0x4B, 0x6D, 0xC8, 0x52, 0x3D, 0xF3, 0xB8, 0x53, 0x2C, 0xA1, 0x48, +0x54, 0x1F, 0x27, 0x38, 0x55, 0x0D, 0xD4, 0xC8, 0x56, 0x00, 0x5A, 0xB8, 0x56, 0xEF, 0x08, 0x48, +0x57, 0xE1, 0x8E, 0x38, 0x58, 0xD1, 0x8D, 0x48, 0x59, 0xC4, 0x13, 0x38, 0x5A, 0xB2, 0xC0, 0xC8, +0x5B, 0xA5, 0x46, 0xB8, 0x5C, 0x93, 0xF4, 0x48, 0x5D, 0x86, 0x7A, 0x38, 0x5E, 0x75, 0x27, 0xC8, +0x5F, 0x67, 0xAD, 0xB8, 0x60, 0x57, 0xAC, 0xC8, 0x61, 0x4A, 0x32, 0xB8, 0x62, 0x38, 0xE0, 0x48, +0x63, 0x2B, 0x66, 0x38, 0x64, 0x1A, 0x13, 0xC8, 0x65, 0x0C, 0x99, 0xB8, 0x65, 0xFB, 0x47, 0x48, +0x66, 0xED, 0xCD, 0x38, 0x67, 0xDD, 0xCC, 0x48, 0x68, 0xD0, 0x52, 0x38, 0x69, 0xBE, 0xFF, 0xC8, +0x6A, 0xB1, 0x85, 0xB8, 0x6B, 0xA0, 0x33, 0x48, 0x6C, 0x92, 0xB9, 0x38, 0x6D, 0x81, 0x66, 0xC8, +0x6E, 0x73, 0xEC, 0xB8, 0x6F, 0x62, 0x9A, 0x48, 0x70, 0x55, 0x20, 0x38, 0x71, 0x45, 0x1F, 0x48, +0x72, 0x37, 0xA5, 0x38, 0x73, 0x26, 0x52, 0xC8, 0x74, 0x18, 0xD8, 0xB8, 0x75, 0x07, 0x86, 0x48, +0x75, 0xFA, 0x0C, 0x38, 0x76, 0xE8, 0xB9, 0xC8, 0x77, 0xDB, 0x3F, 0xB8, 0x78, 0xCB, 0x3E, 0xC8, +0x79, 0xBD, 0xC4, 0xB8, 0x7A, 0xAC, 0x72, 0x48, 0x7B, 0x9E, 0xF8, 0x38, 0x7C, 0x8D, 0xA5, 0xC8, +0x7D, 0x80, 0x2B, 0xB8, 0x7E, 0x6E, 0xD9, 0x48, 0x7F, 0x61, 0x5F, 0x38, 0x01, 0x02, 0x04, 0x03, +0x04, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x00, 0x00, 0x30, 0x38, 0x00, 0x00, 0x00, 0x00, 0x30, 0x38, 0x00, 0x04, 0x00, 0x00, 0x31, 0x38, +0x00, 0x08, 0x00, 0x00, 0x46, 0x50, 0x01, 0x0D, 0x00, 0x00, 0x38, 0x40, 0x00, 0x08, 0x00, 0x00, +0x3F, 0x48, 0x01, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x54, 0x4D, 0x54, 0x00, 0x49, 0x52, 0x53, 0x54, +0x00, 0x49, 0x52, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xBF, 0xC0, 0x8A, 0x01, 0x61, 0x23, 0xA5, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Tel_Aviv */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x9E, 0x30, 0x45, 0x88, +0xC8, 0x59, 0xB2, 0xE0, 0xCC, 0xE5, 0xC1, 0x50, 0xCD, 0xAC, 0xFE, 0x00, 0xCE, 0xC6, 0xF4, 0xD0, +0xCF, 0x8F, 0x66, 0xE0, 0xD0, 0xA9, 0x79, 0xD0, 0xD1, 0x84, 0x60, 0xE0, 0xD2, 0x8A, 0xC9, 0x70, +0xD3, 0x65, 0xB0, 0x80, 0xD4, 0x6B, 0xE0, 0xD0, 0xD7, 0x5A, 0x14, 0x60, 0xD7, 0xDF, 0x1F, 0xC0, +0xD8, 0x2F, 0xB5, 0x70, 0xD9, 0x1E, 0x46, 0xE0, 0xDA, 0x10, 0xE8, 0xF0, 0xDA, 0xEB, 0xB3, 0xE0, +0xDB, 0xB4, 0x34, 0x00, 0xDC, 0xB9, 0x20, 0xE0, 0xDD, 0xE0, 0x8D, 0x00, 0xDE, 0xB4, 0xCE, 0x80, +0xDF, 0xA4, 0xBF, 0x80, 0xE0, 0x8B, 0x76, 0x00, 0xE1, 0x56, 0x7D, 0x00, 0xE2, 0xBE, 0x4A, 0x60, +0xE3, 0x36, 0x34, 0xD0, 0xE4, 0x9C, 0xF7, 0x00, 0xE5, 0x16, 0x16, 0xD0, 0xE6, 0x74, 0xD3, 0xE0, +0xE7, 0x11, 0xD2, 0x80, 0xE8, 0x27, 0xFF, 0x00, 0xE8, 0xE8, 0x4F, 0xD0, 0x08, 0x7C, 0x8B, 0xE0, +0x08, 0xFD, 0xB0, 0xD0, 0x09, 0xF6, 0xEA, 0x60, 0x0A, 0xA6, 0x33, 0xD0, 0x1C, 0xBE, 0xF8, 0xE0, +0x1D, 0x89, 0xF1, 0xD0, 0x1E, 0xCC, 0xFF, 0x60, 0x1F, 0x60, 0x99, 0x50, 0x20, 0x82, 0xB1, 0x60, +0x21, 0x49, 0xB5, 0xD0, 0x22, 0x5D, 0x4D, 0x60, 0x23, 0x1F, 0x0B, 0xD0, 0x24, 0x5A, 0x30, 0x60, +0x25, 0x00, 0x3F, 0x50, 0x26, 0x0B, 0xED, 0xE0, 0x26, 0xD6, 0xE6, 0xD0, 0x27, 0xEB, 0xCF, 0xE0, +0x28, 0xC0, 0x03, 0x50, 0x29, 0xD4, 0xEC, 0x60, 0x2A, 0xA9, 0x1F, 0xD0, 0x2B, 0xBB, 0x65, 0xE0, +0x2C, 0x89, 0x01, 0xD0, 0x2D, 0x9B, 0x47, 0xE0, 0x2E, 0x5F, 0xA9, 0x50, 0x2F, 0x7B, 0x29, 0xE0, +0x30, 0x48, 0xC5, 0xD0, 0x31, 0x48, 0x96, 0xE0, 0x32, 0x3C, 0x6E, 0x50, 0x33, 0x31, 0xB3, 0x60, +0x34, 0x1A, 0xFE, 0xD0, 0x35, 0x11, 0x95, 0x60, 0x35, 0xF1, 0xA6, 0x50, 0x37, 0x04, 0x08, 0x80, +0x37, 0xCF, 0x01, 0x70, 0x38, 0xF6, 0x5F, 0x80, 0x39, 0xDC, 0xF9, 0xE0, 0x3A, 0xD0, 0xED, 0x70, +0x3B, 0xAE, 0x5B, 0x60, 0x3C, 0xA3, 0xA0, 0x70, 0x3D, 0xA0, 0xB2, 0x60, 0x3E, 0x83, 0x82, 0x70, +0x3F, 0x7C, 0x9F, 0xE0, 0x40, 0x73, 0x36, 0x70, 0x41, 0x50, 0xA4, 0x60, 0x42, 0x4C, 0x8F, 0x00, +0x43, 0x48, 0x4F, 0x70, 0x44, 0x2C, 0x71, 0x00, 0x45, 0x1E, 0xF6, 0xF0, 0x46, 0x0C, 0x53, 0x00, +0x46, 0xEC, 0x63, 0xF0, 0x47, 0xEC, 0x35, 0x00, 0x48, 0xE7, 0xF5, 0x70, 0x49, 0xCC, 0x17, 0x00, +0x4A, 0xBE, 0x9C, 0xF0, 0x4B, 0xAB, 0xF9, 0x00, 0x4C, 0x8C, 0x09, 0xF0, 0x4D, 0x95, 0x15, 0x80, +0x4E, 0x87, 0x9B, 0x70, 0x4F, 0x74, 0xF7, 0x80, 0x50, 0x5E, 0x42, 0xF0, 0x51, 0x54, 0xD9, 0x80, +0x52, 0x50, 0x99, 0xF0, 0x53, 0x34, 0xBB, 0x80, 0x54, 0x30, 0x7B, 0xF0, 0x55, 0x14, 0x9D, 0x80, +0x56, 0x10, 0x5D, 0xF0, 0x56, 0xF4, 0x7F, 0x80, 0x57, 0xF0, 0x3F, 0xF0, 0x58, 0xD4, 0x61, 0x80, +0x59, 0xD9, 0x5C, 0x70, 0x5A, 0xB4, 0x43, 0x80, 0x5B, 0xB9, 0x3E, 0x70, 0x5C, 0x9D, 0x60, 0x00, +0x5D, 0x99, 0x20, 0x70, 0x5E, 0x7D, 0x42, 0x00, 0x5F, 0x79, 0x02, 0x70, 0x60, 0x5D, 0x24, 0x00, +0x61, 0x58, 0xE4, 0x70, 0x62, 0x3D, 0x06, 0x00, 0x63, 0x38, 0xC6, 0x70, 0x64, 0x1C, 0xE8, 0x00, +0x65, 0x21, 0xE2, 0xF0, 0x66, 0x06, 0x04, 0x80, 0x67, 0x01, 0xC4, 0xF0, 0x67, 0xE5, 0xE6, 0x80, +0x68, 0xE1, 0xA6, 0xF0, 0x69, 0xC5, 0xC8, 0x80, 0x6A, 0xC1, 0x88, 0xF0, 0x6B, 0xA5, 0xAA, 0x80, +0x6C, 0xA2, 0xBC, 0x70, 0x6D, 0x85, 0x8C, 0x80, 0x6E, 0x8A, 0x87, 0x70, 0x6F, 0x65, 0x6E, 0x80, +0x70, 0x6A, 0x69, 0x70, 0x71, 0x4E, 0x8B, 0x00, 0x72, 0x4A, 0x4B, 0x70, 0x73, 0x2E, 0x6D, 0x00, +0x74, 0x2A, 0x2D, 0x70, 0x75, 0x0E, 0x4F, 0x00, 0x76, 0x0A, 0x0F, 0x70, 0x76, 0xEE, 0x31, 0x00, +0x77, 0xE9, 0xF1, 0x70, 0x78, 0xCE, 0x13, 0x00, 0x79, 0xD3, 0x0D, 0xF0, 0x7A, 0xAD, 0xF5, 0x00, +0x7B, 0xB2, 0xEF, 0xF0, 0x7C, 0x97, 0x11, 0x80, 0x7D, 0x92, 0xD1, 0xF0, 0x7E, 0x76, 0xF3, 0x80, +0x7F, 0x72, 0xB3, 0xF0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x00, 0x00, 0x20, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, +0x1C, 0x20, 0x00, 0x08, 0x00, 0x00, 0x38, 0x40, 0x01, 0x0C, 0x4A, 0x4D, 0x54, 0x00, 0x49, 0x44, +0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x49, 0x44, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Thimbu */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xD5, 0xE6, 0x15, 0x74, +0x21, 0x61, 0x4D, 0xA8, 0x01, 0x02, 0x00, 0x00, 0x54, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x58, +0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, +0x42, 0x54, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Thimphu */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xD5, 0xE6, 0x15, 0x74, +0x21, 0x61, 0x4D, 0xA8, 0x01, 0x02, 0x00, 0x00, 0x54, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x58, +0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, +0x42, 0x54, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB3, 0x3D, 0x6A, 0x01, 0x9B, +0x74, 0x07, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Tokyo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4A, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xC3, 0xCE, 0x85, 0x70, +0xD7, 0x3E, 0x1E, 0x90, 0xD7, 0xEC, 0x16, 0x80, 0xD8, 0xF9, 0x16, 0x90, 0xD9, 0xCB, 0xF8, 0x80, +0xDB, 0x07, 0x1D, 0x10, 0xDB, 0xAB, 0xDA, 0x80, 0xDC, 0xE6, 0xFF, 0x10, 0xDD, 0x8B, 0xBC, 0x80, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x00, 0x00, +0x00, 0x8C, 0xA0, 0x01, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x08, 0x43, 0x4A, 0x54, 0x00, 0x4A, +0x44, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0xBB, +0xC4, 0x01, 0xE7, 0xE4, 0x48, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Ujung_Pandang */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xA1, 0xF2, 0x5D, 0x90, +0xBA, 0x16, 0xD5, 0x90, 0xCB, 0x88, 0x1D, 0x80, 0xD2, 0x56, 0xEE, 0x70, 0x01, 0x02, 0x03, 0x02, +0x00, 0x00, 0x6F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0xF0, 0x00, 0x04, 0x00, 0x00, 0x70, 0x80, +0x00, 0x08, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x4D, 0x54, 0x00, +0x43, 0x49, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Ulaanbaatar */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0F, 0x86, 0xD3, 0xEE, 0x4C, +0x0F, 0x0B, 0xDC, 0x90, 0x18, 0xE9, 0xC8, 0x80, 0x19, 0xDA, 0xFC, 0xF0, 0x1A, 0xCC, 0x4D, 0x80, +0x1B, 0xBC, 0x30, 0x70, 0x1C, 0xAC, 0x2F, 0x80, 0x1D, 0x9C, 0x12, 0x70, 0x1E, 0x8C, 0x11, 0x80, +0x1F, 0x7B, 0xF4, 0x70, 0x20, 0x6B, 0xF3, 0x80, 0x21, 0x5B, 0xD6, 0x70, 0x22, 0x4B, 0xD5, 0x80, +0x23, 0x3B, 0xB8, 0x70, 0x24, 0x2B, 0xB7, 0x80, 0x25, 0x1B, 0x9A, 0x70, 0x26, 0x0B, 0x99, 0x80, +0x27, 0x04, 0xB6, 0xF0, 0x27, 0xF4, 0xB6, 0x00, 0x28, 0xE4, 0x98, 0xF0, 0x29, 0xD4, 0x98, 0x00, +0x2A, 0xC4, 0x7A, 0xF0, 0x2B, 0xB4, 0x7A, 0x00, 0x2C, 0xA4, 0x5C, 0xF0, 0x2D, 0x94, 0x5C, 0x00, +0x2E, 0x84, 0x3E, 0xF0, 0x2F, 0x74, 0x3E, 0x00, 0x30, 0x64, 0x20, 0xF0, 0x31, 0x5D, 0x5A, 0x80, +0x32, 0x4D, 0x3D, 0x70, 0x33, 0x3D, 0x3C, 0x80, 0x34, 0x2D, 0x1F, 0x70, 0x35, 0x1D, 0x1E, 0x80, +0x36, 0x0D, 0x01, 0x70, 0x3A, 0xE9, 0xB3, 0xA0, 0x3B, 0xB4, 0xAC, 0x90, 0x3C, 0xA4, 0xAB, 0xA0, +0x3D, 0x94, 0x8E, 0x90, 0x3E, 0x84, 0x8D, 0xA0, 0x3F, 0x74, 0x70, 0x90, 0x40, 0x64, 0x6F, 0xA0, +0x41, 0x54, 0x52, 0x90, 0x42, 0x44, 0x51, 0xA0, 0x43, 0x34, 0x34, 0x90, 0x44, 0x24, 0x33, 0xA0, +0x45, 0x1D, 0x51, 0x10, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x00, 0x00, 0x64, 0x34, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, +0x7E, 0x90, 0x01, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x55, 0x4C, +0x41, 0x54, 0x00, 0x55, 0x4C, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xD2, 0x71, 0xB2, 0x01, 0xB5, 0xBF, 0xCD, 0x00, 0x00, 0x00, 0x0E, 0x6D, 0x6F, 0x73, +0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* Asia/Ulan_Bator */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0F, 0x86, 0xD3, 0xEE, 0x4C, +0x0F, 0x0B, 0xDC, 0x90, 0x18, 0xE9, 0xC8, 0x80, 0x19, 0xDA, 0xFC, 0xF0, 0x1A, 0xCC, 0x4D, 0x80, +0x1B, 0xBC, 0x30, 0x70, 0x1C, 0xAC, 0x2F, 0x80, 0x1D, 0x9C, 0x12, 0x70, 0x1E, 0x8C, 0x11, 0x80, +0x1F, 0x7B, 0xF4, 0x70, 0x20, 0x6B, 0xF3, 0x80, 0x21, 0x5B, 0xD6, 0x70, 0x22, 0x4B, 0xD5, 0x80, +0x23, 0x3B, 0xB8, 0x70, 0x24, 0x2B, 0xB7, 0x80, 0x25, 0x1B, 0x9A, 0x70, 0x26, 0x0B, 0x99, 0x80, +0x27, 0x04, 0xB6, 0xF0, 0x27, 0xF4, 0xB6, 0x00, 0x28, 0xE4, 0x98, 0xF0, 0x29, 0xD4, 0x98, 0x00, +0x2A, 0xC4, 0x7A, 0xF0, 0x2B, 0xB4, 0x7A, 0x00, 0x2C, 0xA4, 0x5C, 0xF0, 0x2D, 0x94, 0x5C, 0x00, +0x2E, 0x84, 0x3E, 0xF0, 0x2F, 0x74, 0x3E, 0x00, 0x30, 0x64, 0x20, 0xF0, 0x31, 0x5D, 0x5A, 0x80, +0x32, 0x4D, 0x3D, 0x70, 0x33, 0x3D, 0x3C, 0x80, 0x34, 0x2D, 0x1F, 0x70, 0x35, 0x1D, 0x1E, 0x80, +0x36, 0x0D, 0x01, 0x70, 0x3A, 0xE9, 0xB3, 0xA0, 0x3B, 0xB4, 0xAC, 0x90, 0x3C, 0xA4, 0xAB, 0xA0, +0x3D, 0x94, 0x8E, 0x90, 0x3E, 0x84, 0x8D, 0xA0, 0x3F, 0x74, 0x70, 0x90, 0x40, 0x64, 0x6F, 0xA0, +0x41, 0x54, 0x52, 0x90, 0x42, 0x44, 0x51, 0xA0, 0x43, 0x34, 0x34, 0x90, 0x44, 0x24, 0x33, 0xA0, +0x45, 0x1D, 0x51, 0x10, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x00, 0x00, 0x64, 0x34, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, +0x7E, 0x90, 0x01, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x55, 0x4C, +0x41, 0x54, 0x00, 0x55, 0x4C, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Urumqi */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0xB0, 0xFE, 0xBA, 0x64, +0x13, 0x6D, 0xD7, 0x20, 0x1E, 0xBA, 0x36, 0x00, 0x1F, 0x69, 0x7F, 0x70, 0x20, 0x7E, 0x68, 0x80, +0x21, 0x49, 0x61, 0x70, 0x22, 0x5E, 0x4A, 0x80, 0x23, 0x29, 0x43, 0x70, 0x24, 0x47, 0x67, 0x00, +0x25, 0x12, 0x5F, 0xF0, 0x26, 0x27, 0x49, 0x00, 0x26, 0xF2, 0x41, 0xF0, 0x28, 0x07, 0x2B, 0x00, +0x28, 0xD2, 0x23, 0xF0, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x00, 0x00, 0x52, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x00, 0x00, +0x7E, 0x90, 0x01, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x55, 0x52, +0x55, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xCC, 0x29, 0xA0, 0x01, 0x98, 0x4C, 0xBD, 0x00, 0x00, 0x00, 0x18, 0x6D, +0x6F, 0x73, 0x74, 0x20, 0x6F, 0x66, 0x20, 0x54, 0x69, 0x62, 0x65, 0x74, 0x20, 0x26, 0x20, 0x58, +0x69, 0x6E, 0x6A, 0x69, 0x61, 0x6E, 0x67, + +/* Asia/Vientiane */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4C, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0x88, 0x6F, 0x46, 0x50, +0x91, 0x5F, 0xEE, 0xD0, 0x93, 0x85, 0xB1, 0x90, 0xB7, 0x41, 0xBC, 0x00, 0x01, 0x02, 0x03, 0x02, +0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x63, 0xEC, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, +0x00, 0x08, 0x00, 0x00, 0x70, 0x80, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x53, 0x4D, 0x54, 0x00, +0x49, 0x43, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0xBE, 0x7A, +0x01, 0xAF, 0x36, 0xA0, 0x00, 0x00, 0x00, 0x00, + +/* Asia/Vladivostok */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x16, 0xA7, 0x59, 0x47, 0x50, +0xB5, 0xA3, 0xB6, 0xF0, 0x15, 0x27, 0x45, 0x60, 0x16, 0x18, 0x79, 0xD0, 0x17, 0x08, 0x78, 0xE0, +0x17, 0xF9, 0xAD, 0x50, 0x18, 0xE9, 0xAC, 0x60, 0x19, 0xDA, 0xE0, 0xD0, 0x1A, 0xCC, 0x31, 0x60, +0x1B, 0xBC, 0x3E, 0x80, 0x1C, 0xAC, 0x2F, 0x80, 0x1D, 0x9C, 0x20, 0x80, 0x1E, 0x8C, 0x11, 0x80, +0x1F, 0x7C, 0x02, 0x80, 0x20, 0x6B, 0xF3, 0x80, 0x21, 0x5B, 0xE4, 0x80, 0x22, 0x4B, 0xD5, 0x80, +0x23, 0x3B, 0xC6, 0x80, 0x24, 0x2B, 0xB7, 0x80, 0x25, 0x1B, 0xA8, 0x80, 0x26, 0x0B, 0x99, 0x80, +0x27, 0x04, 0xC5, 0x00, 0x27, 0xF4, 0xB6, 0x00, 0x28, 0xE4, 0xB5, 0x10, 0x29, 0x78, 0x5D, 0x10, +0x29, 0xD4, 0x6D, 0xD0, 0x2A, 0xC4, 0x50, 0xC0, 0x2B, 0xB4, 0x7A, 0x00, 0x2C, 0xA4, 0x6B, 0x00, +0x2D, 0x94, 0x5C, 0x00, 0x2E, 0x84, 0x4D, 0x00, 0x2F, 0x74, 0x3E, 0x00, 0x30, 0x64, 0x2F, 0x00, +0x31, 0x5D, 0x5A, 0x80, 0x32, 0x72, 0x35, 0x80, 0x33, 0x3D, 0x3C, 0x80, 0x34, 0x52, 0x17, 0x80, +0x35, 0x1D, 0x1E, 0x80, 0x36, 0x31, 0xF9, 0x80, 0x36, 0xFD, 0x00, 0x80, 0x38, 0x1B, 0x16, 0x00, +0x38, 0xDC, 0xE2, 0x80, 0x39, 0xFA, 0xF8, 0x00, 0x3A, 0xBC, 0xC4, 0x80, 0x3B, 0xDA, 0xDA, 0x00, +0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0xBA, 0xBC, 0x00, 0x3E, 0x85, 0xC3, 0x00, 0x3F, 0x9A, 0x9E, 0x00, +0x40, 0x65, 0xA5, 0x00, 0x41, 0x83, 0xBA, 0x80, 0x42, 0x45, 0x87, 0x00, 0x43, 0x63, 0x9C, 0x80, +0x44, 0x25, 0x69, 0x00, 0x45, 0x43, 0x7E, 0x80, 0x46, 0x05, 0x4B, 0x00, 0x47, 0x23, 0x60, 0x80, +0x47, 0xEE, 0x67, 0x80, 0x49, 0x03, 0x42, 0x80, 0x49, 0xCE, 0x49, 0x80, 0x4A, 0xE3, 0x24, 0x80, +0x4B, 0xAE, 0x2B, 0x80, 0x4C, 0xCC, 0x41, 0x00, 0x4D, 0x8E, 0x0D, 0x80, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x07, 0x04, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x08, 0x00, 0x00, 0x7B, 0xB0, +0x00, 0x00, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x09, 0x00, 0x00, +0x8C, 0xA0, 0x00, 0x04, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x09, +0x00, 0x00, 0x8C, 0xA0, 0x01, 0x0F, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x09, 0x00, 0x00, 0x9A, 0xB0, +0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x56, 0x4C, 0x41, 0x54, 0x00, 0x56, 0x4C, 0x41, 0x53, 0x54, +0x00, 0x56, 0x4C, 0x41, 0x53, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCB, 0x32, 0x3A, 0x01, 0xDB, +0xF8, 0xF5, 0x00, 0x00, 0x00, 0x16, 0x4D, 0x6F, 0x73, 0x63, 0x6F, 0x77, 0x2B, 0x30, 0x37, 0x20, +0x2D, 0x20, 0x41, 0x6D, 0x75, 0x72, 0x20, 0x52, 0x69, 0x76, 0x65, 0x72, + +/* Asia/Yakutsk */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0F, 0xA1, 0xDB, 0xEA, 0x70, +0xB5, 0xA3, 0xC5, 0x00, 0x15, 0x27, 0x53, 0x70, 0x16, 0x18, 0x87, 0xE0, 0x17, 0x08, 0x86, 0xF0, +0x17, 0xF9, 0xBB, 0x60, 0x18, 0xE9, 0xBA, 0x70, 0x19, 0xDA, 0xEE, 0xE0, 0x1A, 0xCC, 0x3F, 0x70, +0x1B, 0xBC, 0x4C, 0x90, 0x1C, 0xAC, 0x3D, 0x90, 0x1D, 0x9C, 0x2E, 0x90, 0x1E, 0x8C, 0x1F, 0x90, +0x1F, 0x7C, 0x10, 0x90, 0x20, 0x6C, 0x01, 0x90, 0x21, 0x5B, 0xF2, 0x90, 0x22, 0x4B, 0xE3, 0x90, +0x23, 0x3B, 0xD4, 0x90, 0x24, 0x2B, 0xC5, 0x90, 0x25, 0x1B, 0xB6, 0x90, 0x26, 0x0B, 0xA7, 0x90, +0x27, 0x04, 0xD3, 0x10, 0x27, 0xF4, 0xC4, 0x10, 0x28, 0xE4, 0xC3, 0x20, 0x29, 0x78, 0x6B, 0x20, +0x29, 0xD4, 0x7B, 0xE0, 0x2A, 0xC4, 0x5E, 0xD0, 0x2B, 0xB4, 0x88, 0x10, 0x2C, 0xA4, 0x79, 0x10, +0x2D, 0x94, 0x6A, 0x10, 0x2E, 0x84, 0x5B, 0x10, 0x2F, 0x74, 0x4C, 0x10, 0x30, 0x64, 0x3D, 0x10, +0x31, 0x5D, 0x68, 0x90, 0x32, 0x72, 0x43, 0x90, 0x33, 0x3D, 0x4A, 0x90, 0x34, 0x52, 0x25, 0x90, +0x35, 0x1D, 0x2C, 0x90, 0x36, 0x32, 0x07, 0x90, 0x36, 0xFD, 0x0E, 0x90, 0x38, 0x1B, 0x24, 0x10, +0x38, 0xDC, 0xF0, 0x90, 0x39, 0xFB, 0x06, 0x10, 0x3A, 0xBC, 0xD2, 0x90, 0x3B, 0xDA, 0xE8, 0x10, +0x3C, 0xA5, 0xEF, 0x10, 0x3D, 0xBA, 0xCA, 0x10, 0x3E, 0x85, 0xD1, 0x10, 0x3F, 0x9A, 0xAC, 0x10, +0x40, 0x65, 0xB3, 0x10, 0x41, 0x83, 0xC8, 0x90, 0x42, 0x45, 0x95, 0x10, 0x43, 0x63, 0xAA, 0x90, +0x44, 0x25, 0x77, 0x10, 0x45, 0x43, 0x8C, 0x90, 0x46, 0x05, 0x59, 0x10, 0x47, 0x23, 0x6E, 0x90, +0x47, 0xEE, 0x75, 0x90, 0x49, 0x03, 0x50, 0x90, 0x49, 0xCE, 0x57, 0x90, 0x4A, 0xE3, 0x32, 0x90, +0x4B, 0xAE, 0x39, 0x90, 0x4C, 0xCC, 0x4F, 0x10, 0x4D, 0x8E, 0x1B, 0x90, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x07, 0x04, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x08, 0x00, 0x00, 0x79, 0x90, +0x00, 0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x8C, 0xA0, 0x01, 0x09, 0x00, 0x00, +0x7E, 0x90, 0x00, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x04, 0x00, 0x00, 0x8C, 0xA0, 0x01, 0x09, +0x00, 0x00, 0x7E, 0x90, 0x01, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x8C, 0xA0, +0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x59, 0x41, 0x4B, 0x54, 0x00, 0x59, 0x41, 0x4B, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xE7, 0xEF, 0x00, 0x01, 0xD8, 0x83, 0x8A, 0x00, 0x00, 0x00, 0x16, 0x4D, +0x6F, 0x73, 0x63, 0x6F, 0x77, 0x2B, 0x30, 0x36, 0x20, 0x2D, 0x20, 0x4C, 0x65, 0x6E, 0x61, 0x20, +0x52, 0x69, 0x76, 0x65, 0x72, + +/* Asia/Yekaterinburg */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x1A, 0xA1, 0x12, 0xAD, 0xF0, +0xB5, 0xA3, 0xFD, 0x40, 0x15, 0x27, 0x8B, 0xB0, 0x16, 0x18, 0xC0, 0x20, 0x17, 0x08, 0xBF, 0x30, +0x17, 0xF9, 0xF3, 0xA0, 0x18, 0xE9, 0xF2, 0xB0, 0x19, 0xDB, 0x27, 0x20, 0x1A, 0xCC, 0x77, 0xB0, +0x1B, 0xBC, 0x84, 0xD0, 0x1C, 0xAC, 0x75, 0xD0, 0x1D, 0x9C, 0x66, 0xD0, 0x1E, 0x8C, 0x57, 0xD0, +0x1F, 0x7C, 0x48, 0xD0, 0x20, 0x6C, 0x39, 0xD0, 0x21, 0x5C, 0x2A, 0xD0, 0x22, 0x4C, 0x1B, 0xD0, +0x23, 0x3C, 0x0C, 0xD0, 0x24, 0x2B, 0xFD, 0xD0, 0x25, 0x1B, 0xEE, 0xD0, 0x26, 0x0B, 0xDF, 0xD0, +0x27, 0x05, 0x0B, 0x50, 0x27, 0xF4, 0xFC, 0x50, 0x28, 0xE4, 0xFB, 0x60, 0x29, 0x78, 0xA3, 0x60, +0x29, 0xD4, 0xB4, 0x20, 0x2A, 0xC4, 0x97, 0x10, 0x2B, 0xB4, 0xC0, 0x50, 0x2C, 0xA4, 0xB1, 0x50, +0x2D, 0x94, 0xA2, 0x50, 0x2E, 0x84, 0x93, 0x50, 0x2F, 0x74, 0x84, 0x50, 0x30, 0x64, 0x75, 0x50, +0x31, 0x5D, 0xA0, 0xD0, 0x32, 0x72, 0x7B, 0xD0, 0x33, 0x3D, 0x82, 0xD0, 0x34, 0x52, 0x5D, 0xD0, +0x35, 0x1D, 0x64, 0xD0, 0x36, 0x32, 0x3F, 0xD0, 0x36, 0xFD, 0x46, 0xD0, 0x38, 0x1B, 0x5C, 0x50, +0x38, 0xDD, 0x28, 0xD0, 0x39, 0xFB, 0x3E, 0x50, 0x3A, 0xBD, 0x0A, 0xD0, 0x3B, 0xDB, 0x20, 0x50, +0x3C, 0xA6, 0x27, 0x50, 0x3D, 0xBB, 0x02, 0x50, 0x3E, 0x86, 0x09, 0x50, 0x3F, 0x9A, 0xE4, 0x50, +0x40, 0x65, 0xEB, 0x50, 0x41, 0x84, 0x00, 0xD0, 0x42, 0x45, 0xCD, 0x50, 0x43, 0x63, 0xE2, 0xD0, +0x44, 0x25, 0xAF, 0x50, 0x45, 0x43, 0xC4, 0xD0, 0x46, 0x05, 0x91, 0x50, 0x47, 0x23, 0xA6, 0xD0, +0x47, 0xEE, 0xAD, 0xD0, 0x49, 0x03, 0x88, 0xD0, 0x49, 0xCE, 0x8F, 0xD0, 0x4A, 0xE3, 0x6A, 0xD0, +0x4B, 0xAE, 0x71, 0xD0, 0x4C, 0xCC, 0x87, 0x50, 0x4D, 0x8E, 0x53, 0xD0, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x07, 0x0B, 0x08, 0x09, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0C, 0x00, 0x00, 0x38, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x01, 0x09, 0x00, 0x00, +0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x01, 0x09, +0x00, 0x00, 0x46, 0x50, 0x01, 0x09, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, +0x01, 0x0F, 0x00, 0x00, 0x46, 0x50, 0x00, 0x15, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0F, 0x00, 0x00, +0x46, 0x50, 0x00, 0x15, 0x00, 0x00, 0x54, 0x60, 0x00, 0x15, 0x4C, 0x4D, 0x54, 0x00, 0x53, 0x56, +0x45, 0x54, 0x00, 0x53, 0x56, 0x45, 0x53, 0x54, 0x00, 0x59, 0x45, 0x4B, 0x53, 0x54, 0x00, 0x59, +0x45, 0x4B, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, +0x13, 0x48, 0x01, 0x6F, 0x20, 0x60, 0x00, 0x00, 0x00, 0x11, 0x4D, 0x6F, 0x73, 0x63, 0x6F, 0x77, +0x2B, 0x30, 0x32, 0x20, 0x2D, 0x20, 0x55, 0x72, 0x61, 0x6C, 0x73, + +/* Asia/Yerevan */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x18, 0xAA, 0x19, 0x9A, 0x48, +0xE7, 0xDA, 0x0C, 0x50, 0x15, 0x27, 0x99, 0xC0, 0x16, 0x18, 0xCE, 0x30, 0x17, 0x08, 0xCD, 0x40, +0x17, 0xFA, 0x01, 0xB0, 0x18, 0xEA, 0x00, 0xC0, 0x19, 0xDB, 0x35, 0x30, 0x1A, 0xCC, 0x85, 0xC0, +0x1B, 0xBC, 0x92, 0xE0, 0x1C, 0xAC, 0x83, 0xE0, 0x1D, 0x9C, 0x74, 0xE0, 0x1E, 0x8C, 0x65, 0xE0, +0x1F, 0x7C, 0x56, 0xE0, 0x20, 0x6C, 0x47, 0xE0, 0x21, 0x5C, 0x38, 0xE0, 0x22, 0x4C, 0x29, 0xE0, +0x23, 0x3C, 0x1A, 0xE0, 0x24, 0x2C, 0x0B, 0xE0, 0x25, 0x1B, 0xFC, 0xE0, 0x26, 0x0B, 0xED, 0xE0, +0x27, 0x05, 0x19, 0x60, 0x27, 0xF5, 0x0A, 0x60, 0x28, 0xDC, 0xF6, 0x40, 0x28, 0xE5, 0x09, 0x70, +0x29, 0xD4, 0xD0, 0x40, 0x2A, 0xC4, 0xB3, 0x30, 0x2B, 0xB4, 0xDC, 0x70, 0x2C, 0xA4, 0xCD, 0x70, +0x2D, 0x94, 0xBE, 0x70, 0x2E, 0x84, 0xAF, 0x70, 0x2F, 0x74, 0xA0, 0x70, 0x30, 0x64, 0x91, 0x70, +0x32, 0xC9, 0x70, 0xC0, 0x33, 0x3D, 0x90, 0xE0, 0x34, 0x52, 0x6B, 0xE0, 0x35, 0x1D, 0x72, 0xE0, +0x36, 0x32, 0x4D, 0xE0, 0x36, 0xFD, 0x54, 0xE0, 0x38, 0x1B, 0x6A, 0x60, 0x38, 0xDD, 0x36, 0xE0, +0x39, 0xFB, 0x4C, 0x60, 0x3A, 0xBD, 0x18, 0xE0, 0x3B, 0xDB, 0x2E, 0x60, 0x3C, 0xA6, 0x35, 0x60, +0x3D, 0xBB, 0x10, 0x60, 0x3E, 0x86, 0x17, 0x60, 0x3F, 0x9A, 0xF2, 0x60, 0x40, 0x65, 0xF9, 0x60, +0x41, 0x84, 0x0E, 0xE0, 0x42, 0x45, 0xDB, 0x60, 0x43, 0x63, 0xF0, 0xE0, 0x44, 0x25, 0xBD, 0x60, +0x45, 0x43, 0xD2, 0xE0, 0x46, 0x05, 0x9F, 0x60, 0x47, 0x23, 0xB4, 0xE0, 0x47, 0xEE, 0xBB, 0xE0, +0x49, 0x03, 0x96, 0xE0, 0x49, 0xCE, 0x9D, 0xE0, 0x4A, 0xE3, 0x78, 0xE0, 0x4B, 0xAE, 0x7F, 0xE0, +0x4C, 0xCC, 0x95, 0x60, 0x4D, 0x8E, 0x61, 0xE0, 0x4E, 0xAC, 0x77, 0x60, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x08, 0x07, 0x08, 0x09, 0x0A, 0x07, 0x0A, 0x07, 0x0A, 0x0B, 0x0D, 0x0C, 0x0B, +0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, +0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x00, 0x00, 0x29, 0xB8, +0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x01, 0x09, 0x00, 0x00, +0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x01, 0x09, +0x00, 0x00, 0x38, 0x40, 0x01, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0F, 0x00, 0x00, 0x38, 0x40, +0x01, 0x13, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0F, 0x00, 0x00, 0x38, 0x40, 0x01, 0x13, 0x00, 0x00, +0x38, 0x40, 0x00, 0x0F, 0x00, 0x00, 0x46, 0x50, 0x01, 0x13, 0x00, 0x00, 0x38, 0x40, 0x00, 0x0F, +0x4C, 0x4D, 0x54, 0x00, 0x59, 0x45, 0x52, 0x54, 0x00, 0x59, 0x45, 0x52, 0x53, 0x54, 0x00, 0x41, +0x4D, 0x54, 0x00, 0x41, 0x4D, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, +0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA4, 0xDD, 0x01, 0x56, 0x8F, 0x50, 0x00, 0x00, 0x00, 0x00, + + +/* Atlantic/Azores */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x19, 0x91, 0xC1, 0xFC, 0x58, +0x9B, 0x4B, 0x89, 0x90, 0x9B, 0xFE, 0xE3, 0xA0, 0x9C, 0x9D, 0x09, 0x90, 0x9D, 0xC9, 0x9F, 0x90, +0x9E, 0x7F, 0x8E, 0x90, 0x9F, 0xAA, 0xD3, 0x10, 0xA0, 0x5F, 0x70, 0x90, 0xA1, 0x8C, 0x06, 0x90, +0xA2, 0x41, 0xF5, 0x90, 0xA3, 0x6E, 0x8B, 0x90, 0xA4, 0x23, 0x29, 0x10, 0xA5, 0x4F, 0xBF, 0x10, +0xAA, 0x06, 0x0B, 0x90, 0xAA, 0xF4, 0xAB, 0x10, 0xAD, 0xC9, 0xC4, 0x10, 0xAE, 0xA7, 0x40, 0x10, +0xAF, 0xA0, 0x6B, 0x90, 0xB0, 0x87, 0x22, 0x10, 0xB1, 0x89, 0x88, 0x10, 0xB2, 0x70, 0x3E, 0x90, +0xB3, 0x72, 0xA4, 0x90, 0xB4, 0x50, 0x20, 0x90, 0xB7, 0x32, 0x68, 0x90, 0xB8, 0x0F, 0xE4, 0x90, +0xB8, 0xFF, 0xD5, 0x90, 0xB9, 0xEF, 0xC6, 0x90, 0xBC, 0xC8, 0xD4, 0x10, 0xBD, 0xB8, 0xC5, 0x10, +0xBE, 0x9F, 0x7B, 0x90, 0xBF, 0x98, 0xA7, 0x10, 0xC0, 0x9B, 0x0D, 0x10, 0xC1, 0x78, 0x89, 0x10, +0xC2, 0x68, 0x7A, 0x10, 0xC3, 0x58, 0x6B, 0x10, 0xC4, 0x3F, 0x21, 0x90, 0xC5, 0x38, 0x4D, 0x10, +0xC6, 0x3A, 0xB3, 0x10, 0xC7, 0x58, 0xC8, 0x90, 0xC7, 0xD9, 0xFB, 0x90, 0xC9, 0x01, 0x4B, 0x90, +0xC9, 0xF1, 0x3C, 0x90, 0xCA, 0xE2, 0x7F, 0x10, 0xCB, 0xB5, 0x6F, 0x10, 0xCB, 0xEC, 0xC0, 0x00, +0xCC, 0x80, 0x68, 0x00, 0xCC, 0xDC, 0xBF, 0x10, 0xCD, 0x95, 0x51, 0x10, 0xCD, 0xC3, 0x67, 0x80, +0xCE, 0x72, 0xBF, 0x00, 0xCE, 0xC5, 0xDB, 0x90, 0xCF, 0x75, 0x33, 0x10, 0xCF, 0xAC, 0x84, 0x00, +0xD0, 0x52, 0xA1, 0x00, 0xD0, 0xA5, 0xBD, 0x90, 0xD1, 0x55, 0x15, 0x10, 0xD1, 0x8C, 0x66, 0x00, +0xD2, 0x32, 0x83, 0x00, 0xD2, 0x85, 0x9F, 0x90, 0xD3, 0x59, 0xE1, 0x10, 0xD4, 0x49, 0xD2, 0x10, +0xD5, 0x39, 0xED, 0x40, 0xD6, 0x29, 0xDE, 0x40, 0xD7, 0x19, 0xCF, 0x40, 0xD8, 0x09, 0xC0, 0x40, +0xD8, 0xF9, 0xB1, 0x40, 0xD9, 0xE9, 0xA2, 0x40, 0xDC, 0xB9, 0x75, 0x40, 0xDD, 0xB2, 0xA0, 0xC0, +0xDE, 0xA2, 0x91, 0xC0, 0xDF, 0x92, 0x82, 0xC0, 0xE0, 0x82, 0x73, 0xC0, 0xE1, 0x72, 0x64, 0xC0, +0xE2, 0x62, 0x55, 0xC0, 0xE3, 0x52, 0x46, 0xC0, 0xE4, 0x42, 0x37, 0xC0, 0xE5, 0x32, 0x28, 0xC0, +0xE6, 0x22, 0x19, 0xC0, 0xE7, 0x1B, 0x45, 0x40, 0xE8, 0x0B, 0x36, 0x40, 0xE8, 0xFB, 0x27, 0x40, +0xE9, 0xEB, 0x18, 0x40, 0xEA, 0xDB, 0x09, 0x40, 0xEB, 0xCA, 0xFA, 0x40, 0xEC, 0xBA, 0xEB, 0x40, +0xED, 0xAA, 0xDC, 0x40, 0xEE, 0x9A, 0xCD, 0x40, 0xEF, 0x8A, 0xBE, 0x40, 0xF0, 0x7A, 0xAF, 0x40, +0xF1, 0x6A, 0xA0, 0x40, 0xF2, 0x63, 0xCB, 0xC0, 0xF3, 0x53, 0xBC, 0xC0, 0xF4, 0x43, 0xAD, 0xC0, +0xF5, 0x33, 0x9E, 0xC0, 0xF6, 0x23, 0x8F, 0xC0, 0xF7, 0x13, 0x80, 0xC0, 0xF8, 0x03, 0x71, 0xC0, +0xF8, 0xF3, 0x62, 0xC0, 0x0D, 0x9B, 0x29, 0x10, 0x0E, 0x8B, 0x1A, 0x10, 0x0F, 0x84, 0x45, 0x90, +0x10, 0x74, 0x36, 0x90, 0x11, 0x64, 0x27, 0x90, 0x12, 0x54, 0x26, 0xA0, 0x13, 0x44, 0x09, 0x90, +0x14, 0x34, 0x08, 0xA0, 0x15, 0x23, 0xF9, 0xA0, 0x16, 0x13, 0xEA, 0xA0, 0x17, 0x03, 0xDB, 0xA0, +0x17, 0xF3, 0xCC, 0xA0, 0x18, 0xE3, 0xCB, 0xB0, 0x19, 0xD3, 0xAE, 0xA0, 0x1A, 0xC3, 0x9F, 0xA0, +0x1B, 0xBC, 0xCB, 0x20, 0x1C, 0xAC, 0xBC, 0x20, 0x1D, 0x9C, 0xAD, 0x20, 0x1E, 0x8C, 0x9E, 0x20, +0x1F, 0x7C, 0x8F, 0x20, 0x20, 0x6C, 0x80, 0x20, 0x21, 0x5C, 0x71, 0x20, 0x22, 0x4C, 0x62, 0x20, +0x23, 0x3C, 0x53, 0x20, 0x24, 0x2C, 0x44, 0x20, 0x25, 0x1C, 0x35, 0x20, 0x26, 0x0C, 0x26, 0x20, +0x27, 0x05, 0x51, 0xA0, 0x27, 0xF5, 0x42, 0xA0, 0x28, 0xE5, 0x33, 0xA0, 0x29, 0xD5, 0x24, 0xA0, +0x2A, 0xC5, 0x15, 0xA0, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x02, 0x01, 0x02, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, 0x03, +0x05, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x08, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x09, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0xFF, 0xFF, 0xE5, 0x28, 0x00, 0x00, 0xFF, 0xFF, +0xF1, 0xF0, 0x01, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x0A, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x04, +0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0F, 0x00, 0x00, 0x00, 0x00, +0x01, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x0A, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x0A, 0x00, 0x00, +0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x0A, +0x48, 0x4D, 0x54, 0x00, 0x41, 0x5A, 0x4F, 0x53, 0x54, 0x00, 0x41, 0x5A, 0x4F, 0x54, 0x00, 0x41, +0x5A, 0x4F, 0x4D, 0x54, 0x00, 0x57, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, +0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x01, 0x00, 0xC2, 0xE7, 0xD5, 0x00, 0xEB, 0x7E, 0x75, 0x00, 0x00, 0x00, 0x06, 0x41, 0x7A, 0x6F, +0x72, 0x65, 0x73, + +/* Atlantic/Bermuda */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xB4, 0xC3, 0x1D, 0xD8, +0x08, 0x20, 0xB3, 0x60, 0x09, 0x10, 0x96, 0x50, 0x0A, 0x00, 0x95, 0x60, 0x0A, 0xF0, 0x78, 0x50, +0x0B, 0xE0, 0x77, 0x60, 0x0C, 0xD9, 0x94, 0xD0, 0x0D, 0xC0, 0x59, 0x60, 0x0E, 0xB9, 0x76, 0xD0, +0x0F, 0xA9, 0x75, 0xE0, 0x10, 0x99, 0x58, 0xD0, 0x11, 0x89, 0x57, 0xE0, 0x12, 0x79, 0x3A, 0xD0, +0x13, 0x69, 0x39, 0xE0, 0x14, 0x59, 0x1C, 0xD0, 0x15, 0x49, 0x1B, 0xE0, 0x16, 0x38, 0xFE, 0xD0, +0x17, 0x28, 0xFD, 0xE0, 0x18, 0x22, 0x1B, 0x50, 0x19, 0x08, 0xDF, 0xE0, 0x1A, 0x01, 0xFD, 0x50, +0x1A, 0xF1, 0xFC, 0x60, 0x1B, 0xE1, 0xDF, 0x50, 0x1C, 0xD1, 0xDE, 0x60, 0x1D, 0xC1, 0xC1, 0x50, +0x1E, 0xB1, 0xC0, 0x60, 0x1F, 0xA1, 0xA3, 0x50, 0x20, 0x75, 0xF2, 0xE0, 0x21, 0x81, 0x85, 0x50, +0x22, 0x55, 0xD4, 0xE0, 0x23, 0x6A, 0xA1, 0xD0, 0x24, 0x35, 0xB6, 0xE0, 0x25, 0x4A, 0x83, 0xD0, +0x26, 0x15, 0x98, 0xE0, 0x27, 0x2A, 0x65, 0xD0, 0x27, 0xFE, 0xB5, 0x60, 0x29, 0x0A, 0x47, 0xD0, +0x29, 0xDE, 0x97, 0x60, 0x2A, 0xEA, 0x29, 0xD0, 0x2B, 0xBE, 0x79, 0x60, 0x2C, 0xD3, 0x46, 0x50, +0x2D, 0x9E, 0x5B, 0x60, 0x2E, 0xB3, 0x28, 0x50, 0x2F, 0x7E, 0x3D, 0x60, 0x30, 0x93, 0x0A, 0x50, +0x31, 0x67, 0x59, 0xE0, 0x32, 0x72, 0xEC, 0x50, 0x33, 0x47, 0x3B, 0xE0, 0x34, 0x52, 0xCE, 0x50, +0x35, 0x27, 0x1D, 0xE0, 0x36, 0x32, 0xB0, 0x50, 0x37, 0x06, 0xFF, 0xE0, 0x38, 0x1B, 0xCC, 0xD0, +0x38, 0xE6, 0xE1, 0xE0, 0x39, 0xFB, 0xAE, 0xD0, 0x3A, 0xC6, 0xC3, 0xE0, 0x3B, 0xDB, 0x90, 0xD0, +0x3C, 0xAF, 0xE0, 0x60, 0x3D, 0xBB, 0x72, 0xD0, 0x3E, 0x8F, 0xC2, 0x60, 0x3F, 0x9B, 0x54, 0xD0, +0x40, 0x6F, 0xA4, 0x60, 0x41, 0x84, 0x71, 0x50, 0x42, 0x4F, 0x86, 0x60, 0x43, 0x64, 0x53, 0x50, +0x44, 0x2F, 0x68, 0x60, 0x45, 0x44, 0x35, 0x50, 0x45, 0xF3, 0x9A, 0xE0, 0x47, 0x2D, 0x51, 0xD0, +0x47, 0xD3, 0x7C, 0xE0, 0x49, 0x0D, 0x33, 0xD0, 0x49, 0xB3, 0x5E, 0xE0, 0x4A, 0xED, 0x15, 0xD0, +0x4B, 0x9C, 0x7B, 0x60, 0x4C, 0xD6, 0x32, 0x50, 0x4D, 0x7C, 0x5D, 0x60, 0x4E, 0xB6, 0x14, 0x50, +0x4F, 0x5C, 0x3F, 0x60, 0x50, 0x95, 0xF6, 0x50, 0x51, 0x3C, 0x21, 0x60, 0x52, 0x75, 0xD8, 0x50, +0x53, 0x1C, 0x03, 0x60, 0x54, 0x55, 0xBA, 0x50, 0x54, 0xFB, 0xE5, 0x60, 0x56, 0x35, 0x9C, 0x50, +0x56, 0xE5, 0x01, 0xE0, 0x58, 0x1E, 0xB8, 0xD0, 0x58, 0xC4, 0xE3, 0xE0, 0x59, 0xFE, 0x9A, 0xD0, +0x5A, 0xA4, 0xC5, 0xE0, 0x5B, 0xDE, 0x7C, 0xD0, 0x5C, 0x84, 0xA7, 0xE0, 0x5D, 0xBE, 0x5E, 0xD0, +0x5E, 0x64, 0x89, 0xE0, 0x5F, 0x9E, 0x40, 0xD0, 0x60, 0x4D, 0xA6, 0x60, 0x61, 0x87, 0x5D, 0x50, +0x62, 0x2D, 0x88, 0x60, 0x63, 0x67, 0x3F, 0x50, 0x64, 0x0D, 0x6A, 0x60, 0x65, 0x47, 0x21, 0x50, +0x65, 0xED, 0x4C, 0x60, 0x67, 0x27, 0x03, 0x50, 0x67, 0xCD, 0x2E, 0x60, 0x69, 0x06, 0xE5, 0x50, +0x69, 0xAD, 0x10, 0x60, 0x6A, 0xE6, 0xC7, 0x50, 0x6B, 0x96, 0x2C, 0xE0, 0x6C, 0xCF, 0xE3, 0xD0, +0x6D, 0x76, 0x0E, 0xE0, 0x6E, 0xAF, 0xC5, 0xD0, 0x6F, 0x55, 0xF0, 0xE0, 0x70, 0x8F, 0xA7, 0xD0, +0x71, 0x35, 0xD2, 0xE0, 0x72, 0x6F, 0x89, 0xD0, 0x73, 0x15, 0xB4, 0xE0, 0x74, 0x4F, 0x6B, 0xD0, +0x74, 0xFE, 0xD1, 0x60, 0x76, 0x38, 0x88, 0x50, 0x76, 0xDE, 0xB3, 0x60, 0x78, 0x18, 0x6A, 0x50, +0x78, 0xBE, 0x95, 0x60, 0x79, 0xF8, 0x4C, 0x50, 0x7A, 0x9E, 0x77, 0x60, 0x7B, 0xD8, 0x2E, 0x50, +0x7C, 0x7E, 0x59, 0x60, 0x7D, 0xB8, 0x10, 0x50, 0x7E, 0x5E, 0x3B, 0x60, 0x7F, 0x97, 0xF2, 0x50, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0xFF, 0xFF, 0xC3, 0x48, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, +0xD0, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x44, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBA, 0x96, 0xED, 0x00, 0xAF, 0xD5, 0x05, 0x00, 0x00, 0x00, +0x00, + +/* Atlantic/Canary */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x45, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0xA6, 0x04, 0x5C, 0xF0, +0xD4, 0x41, 0xF7, 0x20, 0x13, 0x4D, 0x36, 0x00, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, +0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, +0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, +0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, +0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, +0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, +0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, +0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, +0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x02, 0x03, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xF1, 0x90, 0x00, 0x00, +0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x0E, 0x10, +0x01, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x0D, 0x4C, 0x4D, +0x54, 0x00, 0x43, 0x41, 0x4E, 0x54, 0x00, 0x57, 0x45, 0x54, 0x00, 0x57, 0x45, 0x53, 0x54, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xB4, 0x34, 0xD0, +0x00, 0xFB, 0x28, 0xE0, 0x00, 0x00, 0x00, 0x0E, 0x43, 0x61, 0x6E, 0x61, 0x72, 0x79, 0x20, 0x49, +0x73, 0x6C, 0x61, 0x6E, 0x64, 0x73, + +/* Atlantic/Cape_Verde */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0D, 0x89, 0x7F, 0x51, 0x8C, +0xCC, 0x95, 0x9C, 0x20, 0xD2, 0x74, 0x7C, 0x10, 0x0B, 0x17, 0xF7, 0x40, 0x01, 0x02, 0x01, 0x03, +0xFF, 0xFF, 0xE9, 0xF4, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, +0x01, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x56, 0x54, 0x00, +0x43, 0x56, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x17, +0x12, 0x00, 0xEE, 0xC6, 0x4D, 0x00, 0x00, 0x00, 0x00, + +/* Atlantic/Faeroe */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0D, 0x8B, 0x6D, 0xA4, 0x58, +0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, +0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, +0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, +0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, +0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, +0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, +0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, +0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, +0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, +0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, +0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, +0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, +0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0xF9, 0xA8, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x08, 0x00, 0x00, 0x00, +0x00, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x57, 0x45, 0x54, 0x00, 0x57, 0x45, 0x53, 0x54, 0x00, +0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Atlantic/Faroe */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x46, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0D, 0x8B, 0x6D, 0xA4, 0x58, +0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, +0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, +0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, +0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, +0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, +0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, +0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, +0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, +0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, +0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, +0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, +0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, +0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0xF9, 0xA8, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x08, 0x00, 0x00, 0x00, +0x00, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x57, 0x45, 0x54, 0x00, 0x57, 0x45, 0x53, 0x54, 0x00, +0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0xE7, 0xF5, 0x82, 0x01, 0x08, 0x55, 0x45, +0x00, 0x00, 0x00, 0x00, + +/* Atlantic/Jan_Mayen */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x27, 0xE3, 0x00, +0x9B, 0xD4, 0x7B, 0x60, 0xC8, 0xB7, 0x4D, 0x60, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x82, 0x25, 0x10, 0xD1, 0x72, 0x16, 0x10, +0xD2, 0x62, 0x07, 0x10, 0xEB, 0xAF, 0x20, 0x90, 0xEC, 0xA8, 0x4C, 0x10, 0xED, 0x98, 0x3D, 0x10, +0xEE, 0x88, 0x2E, 0x10, 0xEF, 0x78, 0x1F, 0x10, 0xF0, 0x68, 0x10, 0x10, 0xF1, 0x58, 0x01, 0x10, +0xF2, 0x47, 0xF2, 0x10, 0xF3, 0x37, 0xE3, 0x10, 0xF4, 0x27, 0xD4, 0x10, 0xF5, 0x17, 0xC5, 0x10, +0xF6, 0x10, 0xF0, 0x90, 0xF7, 0x2F, 0x06, 0x10, 0xF7, 0xF0, 0xD2, 0x90, 0x12, 0xCE, 0x97, 0xF0, +0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x00, 0x01, 0x00, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x1C, +0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, +0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, +0x05, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, +0x00, 0x00, + +/* Atlantic/Madeira */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x1E, 0x91, 0xC1, 0xF1, 0x58, +0x9B, 0x4B, 0x7B, 0x80, 0x9B, 0xFE, 0xD5, 0x90, 0x9C, 0x9C, 0xFB, 0x80, 0x9D, 0xC9, 0x91, 0x80, +0x9E, 0x7F, 0x80, 0x80, 0x9F, 0xAA, 0xC5, 0x00, 0xA0, 0x5F, 0x62, 0x80, 0xA1, 0x8B, 0xF8, 0x80, +0xA2, 0x41, 0xE7, 0x80, 0xA3, 0x6E, 0x7D, 0x80, 0xA4, 0x23, 0x1B, 0x00, 0xA5, 0x4F, 0xB1, 0x00, +0xAA, 0x05, 0xFD, 0x80, 0xAA, 0xF4, 0x9D, 0x00, 0xAD, 0xC9, 0xB6, 0x00, 0xAE, 0xA7, 0x32, 0x00, +0xAF, 0xA0, 0x5D, 0x80, 0xB0, 0x87, 0x14, 0x00, 0xB1, 0x89, 0x7A, 0x00, 0xB2, 0x70, 0x30, 0x80, +0xB3, 0x72, 0x96, 0x80, 0xB4, 0x50, 0x12, 0x80, 0xB7, 0x32, 0x5A, 0x80, 0xB8, 0x0F, 0xD6, 0x80, +0xB8, 0xFF, 0xC7, 0x80, 0xB9, 0xEF, 0xB8, 0x80, 0xBC, 0xC8, 0xC6, 0x00, 0xBD, 0xB8, 0xB7, 0x00, +0xBE, 0x9F, 0x6D, 0x80, 0xBF, 0x98, 0x99, 0x00, 0xC0, 0x9A, 0xFF, 0x00, 0xC1, 0x78, 0x7B, 0x00, +0xC2, 0x68, 0x6C, 0x00, 0xC3, 0x58, 0x5D, 0x00, 0xC4, 0x3F, 0x13, 0x80, 0xC5, 0x38, 0x3F, 0x00, +0xC6, 0x3A, 0xA5, 0x00, 0xC7, 0x58, 0xBA, 0x80, 0xC7, 0xD9, 0xED, 0x80, 0xC9, 0x01, 0x3D, 0x80, +0xC9, 0xF1, 0x2E, 0x80, 0xCA, 0xE2, 0x71, 0x00, 0xCB, 0xB5, 0x61, 0x00, 0xCB, 0xEC, 0xB1, 0xF0, +0xCC, 0x80, 0x59, 0xF0, 0xCC, 0xDC, 0xB1, 0x00, 0xCD, 0x95, 0x43, 0x00, 0xCD, 0xC3, 0x59, 0x70, +0xCE, 0x72, 0xB0, 0xF0, 0xCE, 0xC5, 0xCD, 0x80, 0xCF, 0x75, 0x25, 0x00, 0xCF, 0xAC, 0x75, 0xF0, +0xD0, 0x52, 0x92, 0xF0, 0xD0, 0xA5, 0xAF, 0x80, 0xD1, 0x55, 0x07, 0x00, 0xD1, 0x8C, 0x57, 0xF0, +0xD2, 0x32, 0x74, 0xF0, 0xD2, 0x85, 0x91, 0x80, 0xD3, 0x59, 0xD3, 0x00, 0xD4, 0x49, 0xC4, 0x00, +0xD5, 0x39, 0xDF, 0x30, 0xD6, 0x29, 0xD0, 0x30, 0xD7, 0x19, 0xC1, 0x30, 0xD8, 0x09, 0xB2, 0x30, +0xD8, 0xF9, 0xA3, 0x30, 0xD9, 0xE9, 0x94, 0x30, 0xDC, 0xB9, 0x67, 0x30, 0xDD, 0xB2, 0x92, 0xB0, +0xDE, 0xA2, 0x83, 0xB0, 0xDF, 0x92, 0x74, 0xB0, 0xE0, 0x82, 0x65, 0xB0, 0xE1, 0x72, 0x56, 0xB0, +0xE2, 0x62, 0x47, 0xB0, 0xE3, 0x52, 0x38, 0xB0, 0xE4, 0x42, 0x29, 0xB0, 0xE5, 0x32, 0x1A, 0xB0, +0xE6, 0x22, 0x0B, 0xB0, 0xE7, 0x1B, 0x37, 0x30, 0xE8, 0x0B, 0x28, 0x30, 0xE8, 0xFB, 0x19, 0x30, +0xE9, 0xEB, 0x0A, 0x30, 0xEA, 0xDA, 0xFB, 0x30, 0xEB, 0xCA, 0xEC, 0x30, 0xEC, 0xBA, 0xDD, 0x30, +0xED, 0xAA, 0xCE, 0x30, 0xEE, 0x9A, 0xBF, 0x30, 0xEF, 0x8A, 0xB0, 0x30, 0xF0, 0x7A, 0xA1, 0x30, +0xF1, 0x6A, 0x92, 0x30, 0xF2, 0x63, 0xBD, 0xB0, 0xF3, 0x53, 0xAE, 0xB0, 0xF4, 0x43, 0x9F, 0xB0, +0xF5, 0x33, 0x90, 0xB0, 0xF6, 0x23, 0x81, 0xB0, 0xF7, 0x13, 0x72, 0xB0, 0xF8, 0x03, 0x63, 0xB0, +0xF8, 0xF3, 0x54, 0xB0, 0x0D, 0x9B, 0x1B, 0x00, 0x0E, 0x8B, 0x0C, 0x00, 0x0F, 0x84, 0x37, 0x80, +0x10, 0x74, 0x28, 0x80, 0x11, 0x64, 0x19, 0x80, 0x12, 0x54, 0x18, 0x90, 0x13, 0x43, 0xFB, 0x80, +0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, +0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xBD, 0xA0, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x02, 0x01, 0x02, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, 0x03, +0x05, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x08, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0xFF, 0xFF, 0xF0, 0x28, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x01, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, +0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x0A, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x0F, 0x00, 0x00, 0x0E, 0x10, +0x01, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x15, 0x46, 0x4D, 0x54, 0x00, 0x4D, 0x41, +0x44, 0x53, 0x54, 0x00, 0x4D, 0x41, 0x44, 0x54, 0x00, 0x4D, 0x41, 0x44, 0x4D, 0x54, 0x00, 0x57, +0x45, 0x53, 0x54, 0x00, 0x57, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xBB, +0x1F, 0xA5, 0x00, 0xF8, 0xDE, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0x4D, 0x61, 0x64, 0x65, 0x69, 0x72, +0x61, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, 0x73, + +/* Atlantic/Reykjavik */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x49, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x8B, 0x60, 0x83, 0x94, +0x9C, 0x91, 0x1E, 0x00, 0x9D, 0xD1, 0x88, 0x90, 0x9E, 0x72, 0x51, 0x80, 0x9F, 0xD5, 0x03, 0x10, +0xC6, 0x4D, 0x1A, 0x00, 0xC7, 0x66, 0x05, 0xA0, 0xC7, 0xDA, 0x17, 0xB0, 0xC9, 0x26, 0x43, 0xA0, +0xC9, 0xC3, 0x26, 0x20, 0xCB, 0x06, 0x25, 0xA0, 0xCB, 0xAC, 0x42, 0xA0, 0xCC, 0xDC, 0xCD, 0x20, +0xCD, 0x8C, 0x24, 0xA0, 0xCE, 0xBC, 0xAF, 0x20, 0xCF, 0x6C, 0x06, 0xA0, 0xD0, 0x9C, 0x91, 0x20, +0xD1, 0x4B, 0xE8, 0xA0, 0xD2, 0x85, 0xAD, 0xA0, 0xD3, 0x2B, 0xCA, 0xA0, 0xD4, 0x65, 0x8F, 0xA0, +0xD5, 0x39, 0xD1, 0x20, 0xD6, 0x45, 0x71, 0xA0, 0xD7, 0x19, 0xB3, 0x20, 0xD8, 0x25, 0x53, 0xA0, +0xD8, 0xF9, 0x95, 0x20, 0xDA, 0x0E, 0x70, 0x20, 0xDA, 0xD9, 0x77, 0x20, 0xDB, 0xE5, 0x17, 0xA0, +0xDC, 0xB9, 0x59, 0x20, 0xDD, 0xCE, 0x34, 0x20, 0xDE, 0xA2, 0x75, 0xA0, 0xDF, 0xAE, 0x16, 0x20, +0xE0, 0x82, 0x57, 0xA0, 0xE1, 0x8D, 0xF8, 0x20, 0xE2, 0x62, 0x39, 0xA0, 0xE3, 0x6D, 0xDA, 0x20, +0xE4, 0x42, 0x1B, 0xA0, 0xE5, 0x4D, 0xBC, 0x20, 0xE6, 0x21, 0xFD, 0xA0, 0xE7, 0x36, 0xD8, 0xA0, +0xE8, 0x0B, 0x1A, 0x20, 0xE9, 0x16, 0xBA, 0xA0, 0xE9, 0xEA, 0xFC, 0x20, 0xEA, 0xF6, 0x9C, 0xA0, +0xEB, 0xCA, 0xDE, 0x20, 0xEC, 0xD6, 0x7E, 0xA0, 0xED, 0xAA, 0xC0, 0x20, 0xEE, 0xB6, 0x60, 0xA0, +0xEF, 0x8A, 0xA2, 0x20, 0xF0, 0x96, 0x42, 0xA0, 0xF1, 0x6A, 0x84, 0x20, 0xF2, 0x7F, 0x5F, 0x20, +0xF3, 0x53, 0xA0, 0xA0, 0xF4, 0x5F, 0x41, 0x20, 0xF5, 0x33, 0x82, 0xA0, 0xF6, 0x3F, 0x23, 0x20, +0xF7, 0x13, 0x64, 0xA0, 0xF8, 0x1F, 0x05, 0x20, 0xF8, 0xF3, 0x46, 0xA0, 0xF9, 0xFE, 0xE7, 0x20, +0xFA, 0xD3, 0x28, 0xA0, 0xFB, 0xE8, 0x03, 0xA0, 0xFC, 0xBC, 0x45, 0x20, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x05, 0xFF, 0xFF, 0xEB, 0x6C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x09, 0x00, 0x00, +0x00, 0x00, 0x01, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, +0x52, 0x4D, 0x54, 0x00, 0x49, 0x53, 0x53, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, +0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEB, 0x36, +0xD8, 0x00, 0xF1, 0x51, 0x58, 0x00, 0x00, 0x00, 0x00, + +/* Atlantic/South_Georgia */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, +0x00, 0x00, 0x47, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x36, 0x86, 0x55, 0x00, 0xDA, 0xE9, 0xAA, +0x00, 0x00, 0x00, 0x00, + +/* Atlantic/Stanley */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x46, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0D, 0x93, 0x44, 0x5F, 0x3C, +0xC3, 0x4F, 0x5A, 0xC0, 0xC4, 0x36, 0x03, 0x30, 0xC5, 0x2F, 0x3C, 0xC0, 0xC6, 0x15, 0xE5, 0x30, +0xC7, 0x18, 0x59, 0x40, 0xC7, 0xFF, 0x01, 0xB0, 0xC8, 0xF8, 0x3B, 0x40, 0xC9, 0xDE, 0xE3, 0xB0, +0xCA, 0xD8, 0x1D, 0x40, 0xCB, 0xBE, 0xC5, 0xB0, 0xCC, 0xB7, 0xFF, 0x40, 0xCD, 0x36, 0x81, 0x30, +0x19, 0x11, 0xFE, 0x40, 0x19, 0xD3, 0xBC, 0xB0, 0x1A, 0xF1, 0xC4, 0x20, 0x1B, 0xAA, 0x64, 0x30, +0x1C, 0xD1, 0xA6, 0x20, 0x1D, 0x8A, 0x46, 0x30, 0x1E, 0xA8, 0x5B, 0xB0, 0x1F, 0x6A, 0x36, 0x40, +0x20, 0x88, 0x3D, 0xB0, 0x21, 0x4A, 0x18, 0x40, 0x22, 0x68, 0x1F, 0xB0, 0x23, 0x29, 0xFA, 0x40, +0x24, 0x48, 0x01, 0xB0, 0x25, 0x09, 0xDC, 0x40, 0x26, 0x31, 0x1E, 0x30, 0x26, 0xE9, 0xBE, 0x40, +0x28, 0x11, 0x00, 0x30, 0x28, 0xD2, 0xDA, 0xC0, 0x29, 0xF0, 0xE2, 0x30, 0x2A, 0xB2, 0xBC, 0xC0, +0x2B, 0xD0, 0xC4, 0x30, 0x2C, 0x92, 0x9E, 0xC0, 0x2D, 0xB0, 0xA6, 0x30, 0x2E, 0x72, 0x80, 0xC0, +0x2F, 0x90, 0x88, 0x30, 0x30, 0x52, 0x62, 0xC0, 0x31, 0x79, 0xA4, 0xB0, 0x32, 0x3B, 0x7F, 0x40, +0x33, 0x59, 0x86, 0xB0, 0x34, 0x1B, 0x61, 0x40, 0x35, 0x39, 0x68, 0xB0, 0x35, 0xFB, 0x43, 0x40, +0x37, 0x19, 0x4A, 0xB0, 0x37, 0xDB, 0x25, 0x40, 0x38, 0xF9, 0x2C, 0xB0, 0x39, 0xBB, 0x07, 0x40, +0x3A, 0xD9, 0x2A, 0xD0, 0x3B, 0x91, 0xCA, 0xE0, 0x3C, 0xC2, 0x47, 0x50, 0x3D, 0x71, 0xAC, 0xE0, +0x3E, 0xA2, 0x29, 0x50, 0x3F, 0x5A, 0xC9, 0x60, 0x40, 0x82, 0x0B, 0x50, 0x41, 0x3A, 0xAB, 0x60, +0x42, 0x61, 0xED, 0x50, 0x43, 0x1A, 0x8D, 0x60, 0x44, 0x41, 0xCF, 0x50, 0x44, 0xFA, 0x6F, 0x60, +0x46, 0x21, 0xB1, 0x50, 0x46, 0xDA, 0x51, 0x60, 0x48, 0x0A, 0xCD, 0xD0, 0x48, 0xC3, 0x6D, 0xE0, +0x49, 0xEA, 0xAF, 0xD0, 0x4A, 0xA3, 0x4F, 0xE0, 0x4B, 0xCA, 0x91, 0xD0, 0x4C, 0x83, 0x31, 0xE0, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, +0x03, 0x04, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x05, 0xFF, 0xFF, 0xC9, 0xC4, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, +0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x09, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, +0xD0, 0x00, 0x09, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0x53, 0x4D, 0x54, 0x00, 0x46, 0x4B, 0x53, +0x54, 0x00, 0x46, 0x4B, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3A, 0x70, 0xEF, 0x00, 0xBA, 0x62, 0xD8, 0x00, 0x00, 0x00, 0x00, + +/* Atlantic/St_Helena */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xDC, 0x42, 0x9B, 0x58, +0x01, 0xFF, 0xFF, 0xFA, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x4A, 0x4D, 0x54, +0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x0A, 0xCD, 0x01, 0x09, 0xF5, +0xF0, 0x00, 0x00, 0x00, 0x00, + +/* Australia/ACT */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xA6, 0x9C, +0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70, 0xCC, 0xB7, 0x56, 0x80, +0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70, 0x03, 0x70, 0x39, 0x80, +0x04, 0x0D, 0x1C, 0x00, 0x05, 0x50, 0x1B, 0x80, 0x05, 0xF6, 0x38, 0x80, 0x07, 0x2F, 0xFD, 0x80, +0x07, 0xD6, 0x1A, 0x80, 0x09, 0x0F, 0xDF, 0x80, 0x09, 0xB5, 0xFC, 0x80, 0x0A, 0xEF, 0xC1, 0x80, +0x0B, 0x9F, 0x19, 0x00, 0x0C, 0xD8, 0xDE, 0x00, 0x0D, 0x7E, 0xFB, 0x00, 0x0E, 0xB8, 0xC0, 0x00, +0x0F, 0x5E, 0xDD, 0x00, 0x10, 0x98, 0xA2, 0x00, 0x11, 0x3E, 0xBF, 0x00, 0x12, 0x78, 0x84, 0x00, +0x13, 0x1E, 0xA1, 0x00, 0x14, 0x58, 0x66, 0x00, 0x14, 0xFE, 0x83, 0x00, 0x16, 0x38, 0x48, 0x00, +0x17, 0x0C, 0x89, 0x80, 0x18, 0x21, 0x64, 0x80, 0x18, 0xC7, 0x81, 0x80, 0x1A, 0x01, 0x46, 0x80, +0x1A, 0xA7, 0x63, 0x80, 0x1B, 0xE1, 0x28, 0x80, 0x1C, 0x87, 0x45, 0x80, 0x1D, 0xC1, 0x0A, 0x80, +0x1E, 0x79, 0x9C, 0x80, 0x1F, 0x97, 0xB2, 0x00, 0x20, 0x59, 0x7E, 0x80, 0x21, 0x80, 0xCE, 0x80, +0x22, 0x42, 0x9B, 0x00, 0x23, 0x69, 0xEB, 0x00, 0x24, 0x22, 0x7D, 0x00, 0x25, 0x49, 0xCD, 0x00, +0x25, 0xEF, 0xEA, 0x00, 0x27, 0x29, 0xAF, 0x00, 0x27, 0xCF, 0xCC, 0x00, 0x29, 0x09, 0x91, 0x00, +0x29, 0xAF, 0xAE, 0x00, 0x2A, 0xE9, 0x73, 0x00, 0x2B, 0x98, 0xCA, 0x80, 0x2C, 0xD2, 0x8F, 0x80, +0x2D, 0x78, 0xAC, 0x80, 0x2E, 0xB2, 0x71, 0x80, 0x2F, 0x58, 0x8E, 0x80, 0x30, 0x92, 0x53, 0x80, +0x31, 0x5D, 0x5A, 0x80, 0x32, 0x72, 0x35, 0x80, 0x33, 0x3D, 0x3C, 0x80, 0x34, 0x52, 0x17, 0x80, +0x35, 0x1D, 0x1E, 0x80, 0x36, 0x31, 0xF9, 0x80, 0x36, 0xFD, 0x00, 0x80, 0x38, 0x1B, 0x16, 0x00, +0x38, 0xDC, 0xE2, 0x80, 0x39, 0xA7, 0xE9, 0x80, 0x3A, 0xBC, 0xC4, 0x80, 0x3B, 0xDA, 0xDA, 0x00, +0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0xBA, 0xBC, 0x00, 0x3E, 0x85, 0xC3, 0x00, 0x3F, 0x9A, 0x9E, 0x00, +0x40, 0x65, 0xA5, 0x00, 0x41, 0x83, 0xBA, 0x80, 0x42, 0x45, 0x87, 0x00, 0x43, 0x63, 0x9C, 0x80, +0x44, 0x2E, 0xA3, 0x80, 0x45, 0x43, 0x7E, 0x80, 0x46, 0x05, 0x4B, 0x00, 0x47, 0x23, 0x60, 0x80, +0x47, 0xF7, 0xA2, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x49, 0xD7, 0x84, 0x00, 0x4A, 0xC7, 0x75, 0x00, +0x4B, 0xB7, 0x66, 0x00, 0x4C, 0xA7, 0x57, 0x00, 0x4D, 0x97, 0x48, 0x00, 0x4E, 0x87, 0x39, 0x00, +0x4F, 0x77, 0x2A, 0x00, 0x50, 0x70, 0x55, 0x80, 0x51, 0x60, 0x46, 0x80, 0x52, 0x50, 0x37, 0x80, +0x53, 0x40, 0x28, 0x80, 0x54, 0x30, 0x19, 0x80, 0x55, 0x20, 0x0A, 0x80, 0x56, 0x0F, 0xFB, 0x80, +0x56, 0xFF, 0xEC, 0x80, 0x57, 0xEF, 0xDD, 0x80, 0x58, 0xDF, 0xCE, 0x80, 0x59, 0xCF, 0xBF, 0x80, +0x5A, 0xBF, 0xB0, 0x80, 0x5B, 0xB8, 0xDC, 0x00, 0x5C, 0xA8, 0xCD, 0x00, 0x5D, 0x98, 0xBE, 0x00, +0x5E, 0x88, 0xAF, 0x00, 0x5F, 0x78, 0xA0, 0x00, 0x60, 0x68, 0x91, 0x00, 0x61, 0x58, 0x82, 0x00, +0x62, 0x48, 0x73, 0x00, 0x63, 0x38, 0x64, 0x00, 0x64, 0x28, 0x55, 0x00, 0x65, 0x18, 0x46, 0x00, +0x66, 0x11, 0x71, 0x80, 0x67, 0x01, 0x62, 0x80, 0x67, 0xF1, 0x53, 0x80, 0x68, 0xE1, 0x44, 0x80, +0x69, 0xD1, 0x35, 0x80, 0x6A, 0xC1, 0x26, 0x80, 0x6B, 0xB1, 0x17, 0x80, 0x6C, 0xA1, 0x08, 0x80, +0x6D, 0x90, 0xF9, 0x80, 0x6E, 0x80, 0xEA, 0x80, 0x6F, 0x70, 0xDB, 0x80, 0x70, 0x6A, 0x07, 0x00, +0x71, 0x59, 0xF8, 0x00, 0x72, 0x49, 0xE9, 0x00, 0x73, 0x39, 0xDA, 0x00, 0x74, 0x29, 0xCB, 0x00, +0x75, 0x19, 0xBC, 0x00, 0x76, 0x09, 0xAD, 0x00, 0x76, 0xF9, 0x9E, 0x00, 0x77, 0xE9, 0x8F, 0x00, +0x78, 0xD9, 0x80, 0x00, 0x79, 0xC9, 0x71, 0x00, 0x7A, 0xB9, 0x62, 0x00, 0x7B, 0xB2, 0x8D, 0x80, +0x7C, 0xA2, 0x7E, 0x80, 0x7D, 0x92, 0x6F, 0x80, 0x7E, 0x82, 0x60, 0x80, 0x7F, 0x72, 0x51, 0x80, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x9A, +0xB0, 0x01, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, +0x00, 0x8C, 0xA0, 0x00, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Australia/Adelaide */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xAD, 0xA4, +0x9C, 0xBC, 0x27, 0xF8, 0xCB, 0x54, 0xBA, 0x08, 0xCB, 0xC7, 0x5E, 0x78, 0xCC, 0xB7, 0x5D, 0x88, +0xCD, 0xA7, 0x40, 0x78, 0xCE, 0xA0, 0x7A, 0x08, 0xCF, 0x87, 0x22, 0x78, 0x03, 0x70, 0x40, 0x88, +0x04, 0x0D, 0x23, 0x08, 0x05, 0x50, 0x22, 0x88, 0x05, 0xF6, 0x3F, 0x88, 0x07, 0x30, 0x04, 0x88, +0x07, 0xD6, 0x21, 0x88, 0x09, 0x0F, 0xE6, 0x88, 0x09, 0xB6, 0x03, 0x88, 0x0A, 0xEF, 0xC8, 0x88, +0x0B, 0x9F, 0x20, 0x08, 0x0C, 0xD8, 0xE5, 0x08, 0x0D, 0x7F, 0x02, 0x08, 0x0E, 0xB8, 0xC7, 0x08, +0x0F, 0x5E, 0xE4, 0x08, 0x10, 0x98, 0xA9, 0x08, 0x11, 0x3E, 0xC6, 0x08, 0x12, 0x78, 0x8B, 0x08, +0x13, 0x1E, 0xA8, 0x08, 0x14, 0x58, 0x6D, 0x08, 0x14, 0xFE, 0x8A, 0x08, 0x16, 0x38, 0x4F, 0x08, +0x16, 0xE7, 0xA6, 0x88, 0x18, 0x21, 0x6B, 0x88, 0x18, 0xC7, 0x88, 0x88, 0x1A, 0x01, 0x4D, 0x88, +0x1A, 0xA7, 0x6A, 0x88, 0x1B, 0xE1, 0x2F, 0x88, 0x1C, 0x87, 0x4C, 0x88, 0x1D, 0xC1, 0x11, 0x88, +0x1E, 0x79, 0xA3, 0x88, 0x1F, 0x97, 0xB9, 0x08, 0x20, 0x59, 0x85, 0x88, 0x21, 0x80, 0xD5, 0x88, +0x22, 0x42, 0xA2, 0x08, 0x23, 0x69, 0xF2, 0x08, 0x24, 0x22, 0x84, 0x08, 0x25, 0x49, 0xD4, 0x08, +0x26, 0x02, 0x66, 0x08, 0x27, 0x29, 0xB6, 0x08, 0x27, 0xCF, 0xD3, 0x08, 0x29, 0x09, 0x98, 0x08, +0x29, 0xCB, 0x64, 0x88, 0x2A, 0xE9, 0x7A, 0x08, 0x2B, 0x98, 0xD1, 0x88, 0x2C, 0xD2, 0x96, 0x88, +0x2D, 0x8B, 0x28, 0x88, 0x2E, 0xB2, 0x78, 0x88, 0x2F, 0x74, 0x45, 0x08, 0x30, 0x92, 0x5A, 0x88, +0x31, 0x5D, 0x61, 0x88, 0x32, 0x72, 0x3C, 0x88, 0x33, 0x3D, 0x43, 0x88, 0x34, 0x52, 0x1E, 0x88, +0x35, 0x1D, 0x25, 0x88, 0x36, 0x32, 0x00, 0x88, 0x36, 0xFD, 0x07, 0x88, 0x38, 0x1B, 0x1D, 0x08, +0x38, 0xDC, 0xE9, 0x88, 0x39, 0xFA, 0xFF, 0x08, 0x3A, 0xBC, 0xCB, 0x88, 0x3B, 0xDA, 0xE1, 0x08, +0x3C, 0xA5, 0xE8, 0x08, 0x3D, 0xBA, 0xC3, 0x08, 0x3E, 0x85, 0xCA, 0x08, 0x3F, 0x9A, 0xA5, 0x08, +0x40, 0x65, 0xAC, 0x08, 0x41, 0x83, 0xC1, 0x88, 0x42, 0x45, 0x8E, 0x08, 0x43, 0x63, 0xA3, 0x88, +0x44, 0x2E, 0xAA, 0x88, 0x45, 0x43, 0x85, 0x88, 0x46, 0x05, 0x52, 0x08, 0x47, 0x23, 0x67, 0x88, +0x47, 0xF7, 0xA9, 0x08, 0x48, 0xE7, 0x9A, 0x08, 0x49, 0xD7, 0x8B, 0x08, 0x4A, 0xC7, 0x7C, 0x08, +0x4B, 0xB7, 0x6D, 0x08, 0x4C, 0xA7, 0x5E, 0x08, 0x4D, 0x97, 0x4F, 0x08, 0x4E, 0x87, 0x40, 0x08, +0x4F, 0x77, 0x31, 0x08, 0x50, 0x70, 0x5C, 0x88, 0x51, 0x60, 0x4D, 0x88, 0x52, 0x50, 0x3E, 0x88, +0x53, 0x40, 0x2F, 0x88, 0x54, 0x30, 0x20, 0x88, 0x55, 0x20, 0x11, 0x88, 0x56, 0x10, 0x02, 0x88, +0x56, 0xFF, 0xF3, 0x88, 0x57, 0xEF, 0xE4, 0x88, 0x58, 0xDF, 0xD5, 0x88, 0x59, 0xCF, 0xC6, 0x88, +0x5A, 0xBF, 0xB7, 0x88, 0x5B, 0xB8, 0xE3, 0x08, 0x5C, 0xA8, 0xD4, 0x08, 0x5D, 0x98, 0xC5, 0x08, +0x5E, 0x88, 0xB6, 0x08, 0x5F, 0x78, 0xA7, 0x08, 0x60, 0x68, 0x98, 0x08, 0x61, 0x58, 0x89, 0x08, +0x62, 0x48, 0x7A, 0x08, 0x63, 0x38, 0x6B, 0x08, 0x64, 0x28, 0x5C, 0x08, 0x65, 0x18, 0x4D, 0x08, +0x66, 0x11, 0x78, 0x88, 0x67, 0x01, 0x69, 0x88, 0x67, 0xF1, 0x5A, 0x88, 0x68, 0xE1, 0x4B, 0x88, +0x69, 0xD1, 0x3C, 0x88, 0x6A, 0xC1, 0x2D, 0x88, 0x6B, 0xB1, 0x1E, 0x88, 0x6C, 0xA1, 0x0F, 0x88, +0x6D, 0x91, 0x00, 0x88, 0x6E, 0x80, 0xF1, 0x88, 0x6F, 0x70, 0xE2, 0x88, 0x70, 0x6A, 0x0E, 0x08, +0x71, 0x59, 0xFF, 0x08, 0x72, 0x49, 0xF0, 0x08, 0x73, 0x39, 0xE1, 0x08, 0x74, 0x29, 0xD2, 0x08, +0x75, 0x19, 0xC3, 0x08, 0x76, 0x09, 0xB4, 0x08, 0x76, 0xF9, 0xA5, 0x08, 0x77, 0xE9, 0x96, 0x08, +0x78, 0xD9, 0x87, 0x08, 0x79, 0xC9, 0x78, 0x08, 0x7A, 0xB9, 0x69, 0x08, 0x7B, 0xB2, 0x94, 0x88, +0x7C, 0xA2, 0x85, 0x88, 0x7D, 0x92, 0x76, 0x88, 0x7E, 0x82, 0x67, 0x88, 0x7F, 0x72, 0x58, 0x88, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x93, +0xA8, 0x01, 0x00, 0x00, 0x00, 0x85, 0x98, 0x00, 0x00, 0x00, 0x00, 0x93, 0xA8, 0x01, 0x00, 0x00, +0x00, 0x85, 0x98, 0x00, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x54, 0x0C, 0xED, 0x01, 0xE6, 0x1E, 0x9D, 0x00, 0x00, 0x00, 0x0F, 0x53, 0x6F, 0x75, +0x74, 0x68, 0x20, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6C, 0x69, 0x61, + +/* Australia/Brisbane */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xA6, 0x9C, +0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70, 0xCC, 0xB7, 0x56, 0x80, +0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70, 0x03, 0x70, 0x39, 0x80, +0x04, 0x0D, 0x1C, 0x00, 0x25, 0x49, 0xCD, 0x00, 0x25, 0xEF, 0xEA, 0x00, 0x27, 0x29, 0xAF, 0x00, +0x27, 0xCF, 0xCC, 0x00, 0x29, 0x09, 0x91, 0x00, 0x29, 0xAF, 0xAE, 0x00, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x9A, 0xB0, +0x01, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, 0x00, +0x8C, 0xA0, 0x00, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x5F, 0x6B, 0x15, 0x01, 0xFC, 0x2B, 0x25, 0x00, 0x00, 0x00, 0x1B, 0x51, 0x75, 0x65, 0x65, +0x6E, 0x73, 0x6C, 0x61, 0x6E, 0x64, 0x20, 0x2D, 0x20, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, +0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* Australia/Broken_Hill */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xAD, 0xA4, +0x9C, 0xBC, 0x27, 0xF8, 0xCB, 0x54, 0xBA, 0x08, 0xCB, 0xC7, 0x5E, 0x78, 0xCC, 0xB7, 0x5D, 0x88, +0xCD, 0xA7, 0x40, 0x78, 0xCE, 0xA0, 0x7A, 0x08, 0xCF, 0x87, 0x22, 0x78, 0x03, 0x70, 0x40, 0x88, +0x04, 0x0D, 0x23, 0x08, 0x05, 0x50, 0x22, 0x88, 0x05, 0xF6, 0x3F, 0x88, 0x07, 0x30, 0x04, 0x88, +0x07, 0xD6, 0x21, 0x88, 0x09, 0x0F, 0xE6, 0x88, 0x09, 0xB6, 0x03, 0x88, 0x0A, 0xEF, 0xC8, 0x88, +0x0B, 0x9F, 0x20, 0x08, 0x0C, 0xD8, 0xE5, 0x08, 0x0D, 0x7F, 0x02, 0x08, 0x0E, 0xB8, 0xC7, 0x08, +0x0F, 0x5E, 0xE4, 0x08, 0x10, 0x98, 0xA9, 0x08, 0x11, 0x3E, 0xC6, 0x08, 0x12, 0x78, 0x8B, 0x08, +0x13, 0x1E, 0xA8, 0x08, 0x14, 0x58, 0x6D, 0x08, 0x14, 0xFE, 0x8A, 0x08, 0x16, 0x38, 0x4F, 0x08, +0x17, 0x0C, 0x90, 0x88, 0x18, 0x21, 0x6B, 0x88, 0x18, 0xC7, 0x88, 0x88, 0x1A, 0x01, 0x4D, 0x88, +0x1A, 0xA7, 0x6A, 0x88, 0x1B, 0xE1, 0x2F, 0x88, 0x1C, 0x87, 0x4C, 0x88, 0x1D, 0xC1, 0x11, 0x88, +0x1E, 0x79, 0xA3, 0x88, 0x1F, 0x97, 0xB9, 0x08, 0x20, 0x59, 0x85, 0x88, 0x21, 0x80, 0xD5, 0x88, +0x22, 0x42, 0xA2, 0x08, 0x23, 0x69, 0xF2, 0x08, 0x24, 0x22, 0x84, 0x08, 0x25, 0x49, 0xD4, 0x08, +0x25, 0xEF, 0xF1, 0x08, 0x27, 0x29, 0xB6, 0x08, 0x27, 0xCF, 0xD3, 0x08, 0x29, 0x09, 0x98, 0x08, +0x29, 0xAF, 0xB5, 0x08, 0x2A, 0xE9, 0x7A, 0x08, 0x2B, 0x98, 0xD1, 0x88, 0x2C, 0xD2, 0x96, 0x88, +0x2D, 0x78, 0xB3, 0x88, 0x2E, 0xB2, 0x78, 0x88, 0x2F, 0x58, 0x95, 0x88, 0x30, 0x92, 0x5A, 0x88, +0x31, 0x5D, 0x61, 0x88, 0x32, 0x72, 0x3C, 0x88, 0x33, 0x3D, 0x43, 0x88, 0x34, 0x52, 0x1E, 0x88, +0x35, 0x1D, 0x25, 0x88, 0x36, 0x32, 0x00, 0x88, 0x36, 0xFD, 0x07, 0x88, 0x38, 0x1B, 0x1D, 0x08, +0x38, 0x6C, 0xAF, 0xD8, 0x38, 0xDC, 0xE9, 0x88, 0x39, 0xFA, 0xFF, 0x08, 0x3A, 0xBC, 0xCB, 0x88, +0x3B, 0xDA, 0xE1, 0x08, 0x3C, 0xA5, 0xE8, 0x08, 0x3D, 0xBA, 0xC3, 0x08, 0x3E, 0x85, 0xCA, 0x08, +0x3F, 0x9A, 0xA5, 0x08, 0x40, 0x65, 0xAC, 0x08, 0x41, 0x83, 0xC1, 0x88, 0x42, 0x45, 0x8E, 0x08, +0x43, 0x63, 0xA3, 0x88, 0x44, 0x2E, 0xAA, 0x88, 0x45, 0x43, 0x85, 0x88, 0x46, 0x05, 0x52, 0x08, +0x47, 0x23, 0x67, 0x88, 0x47, 0xF7, 0xA9, 0x08, 0x48, 0xE7, 0x9A, 0x08, 0x49, 0xD7, 0x8B, 0x08, +0x4A, 0xC7, 0x7C, 0x08, 0x4B, 0xB7, 0x6D, 0x08, 0x4C, 0xA7, 0x5E, 0x08, 0x4D, 0x97, 0x4F, 0x08, +0x4E, 0x87, 0x40, 0x08, 0x4F, 0x77, 0x31, 0x08, 0x50, 0x70, 0x5C, 0x88, 0x51, 0x60, 0x4D, 0x88, +0x52, 0x50, 0x3E, 0x88, 0x53, 0x40, 0x2F, 0x88, 0x54, 0x30, 0x20, 0x88, 0x55, 0x20, 0x11, 0x88, +0x56, 0x10, 0x02, 0x88, 0x56, 0xFF, 0xF3, 0x88, 0x57, 0xEF, 0xE4, 0x88, 0x58, 0xDF, 0xD5, 0x88, +0x59, 0xCF, 0xC6, 0x88, 0x5A, 0xBF, 0xB7, 0x88, 0x5B, 0xB8, 0xE3, 0x08, 0x5C, 0xA8, 0xD4, 0x08, +0x5D, 0x98, 0xC5, 0x08, 0x5E, 0x88, 0xB6, 0x08, 0x5F, 0x78, 0xA7, 0x08, 0x60, 0x68, 0x98, 0x08, +0x61, 0x58, 0x89, 0x08, 0x62, 0x48, 0x7A, 0x08, 0x63, 0x38, 0x6B, 0x08, 0x64, 0x28, 0x5C, 0x08, +0x65, 0x18, 0x4D, 0x08, 0x66, 0x11, 0x78, 0x88, 0x67, 0x01, 0x69, 0x88, 0x67, 0xF1, 0x5A, 0x88, +0x68, 0xE1, 0x4B, 0x88, 0x69, 0xD1, 0x3C, 0x88, 0x6A, 0xC1, 0x2D, 0x88, 0x6B, 0xB1, 0x1E, 0x88, +0x6C, 0xA1, 0x0F, 0x88, 0x6D, 0x91, 0x00, 0x88, 0x6E, 0x80, 0xF1, 0x88, 0x6F, 0x70, 0xE2, 0x88, +0x70, 0x6A, 0x0E, 0x08, 0x71, 0x59, 0xFF, 0x08, 0x72, 0x49, 0xF0, 0x08, 0x73, 0x39, 0xE1, 0x08, +0x74, 0x29, 0xD2, 0x08, 0x75, 0x19, 0xC3, 0x08, 0x76, 0x09, 0xB4, 0x08, 0x76, 0xF9, 0xA5, 0x08, +0x77, 0xE9, 0x96, 0x08, 0x78, 0xD9, 0x87, 0x08, 0x79, 0xC9, 0x78, 0x08, 0x7A, 0xB9, 0x69, 0x08, +0x7B, 0xB2, 0x94, 0x88, 0x7C, 0xA2, 0x85, 0x88, 0x7D, 0x92, 0x76, 0x88, 0x7E, 0x82, 0x67, 0x88, +0x7F, 0x72, 0x58, 0x88, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x00, 0x00, 0x93, 0xA8, 0x01, 0x00, 0x00, 0x00, 0x85, 0x98, 0x00, 0x00, 0x00, 0x00, +0x93, 0xA8, 0x01, 0x00, 0x00, 0x00, 0x85, 0x98, 0x00, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, +0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x93, 0xC8, 0x01, 0xEA, 0x7E, 0x68, 0x00, 0x00, +0x00, 0x1C, 0x4E, 0x65, 0x77, 0x20, 0x53, 0x6F, 0x75, 0x74, 0x68, 0x20, 0x57, 0x61, 0x6C, 0x65, +0x73, 0x20, 0x2D, 0x20, 0x59, 0x61, 0x6E, 0x63, 0x6F, 0x77, 0x69, 0x6E, 0x6E, 0x61, + +/* Australia/Canberra */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xA6, 0x9C, +0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70, 0xCC, 0xB7, 0x56, 0x80, +0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70, 0x03, 0x70, 0x39, 0x80, +0x04, 0x0D, 0x1C, 0x00, 0x05, 0x50, 0x1B, 0x80, 0x05, 0xF6, 0x38, 0x80, 0x07, 0x2F, 0xFD, 0x80, +0x07, 0xD6, 0x1A, 0x80, 0x09, 0x0F, 0xDF, 0x80, 0x09, 0xB5, 0xFC, 0x80, 0x0A, 0xEF, 0xC1, 0x80, +0x0B, 0x9F, 0x19, 0x00, 0x0C, 0xD8, 0xDE, 0x00, 0x0D, 0x7E, 0xFB, 0x00, 0x0E, 0xB8, 0xC0, 0x00, +0x0F, 0x5E, 0xDD, 0x00, 0x10, 0x98, 0xA2, 0x00, 0x11, 0x3E, 0xBF, 0x00, 0x12, 0x78, 0x84, 0x00, +0x13, 0x1E, 0xA1, 0x00, 0x14, 0x58, 0x66, 0x00, 0x14, 0xFE, 0x83, 0x00, 0x16, 0x38, 0x48, 0x00, +0x17, 0x0C, 0x89, 0x80, 0x18, 0x21, 0x64, 0x80, 0x18, 0xC7, 0x81, 0x80, 0x1A, 0x01, 0x46, 0x80, +0x1A, 0xA7, 0x63, 0x80, 0x1B, 0xE1, 0x28, 0x80, 0x1C, 0x87, 0x45, 0x80, 0x1D, 0xC1, 0x0A, 0x80, +0x1E, 0x79, 0x9C, 0x80, 0x1F, 0x97, 0xB2, 0x00, 0x20, 0x59, 0x7E, 0x80, 0x21, 0x80, 0xCE, 0x80, +0x22, 0x42, 0x9B, 0x00, 0x23, 0x69, 0xEB, 0x00, 0x24, 0x22, 0x7D, 0x00, 0x25, 0x49, 0xCD, 0x00, +0x25, 0xEF, 0xEA, 0x00, 0x27, 0x29, 0xAF, 0x00, 0x27, 0xCF, 0xCC, 0x00, 0x29, 0x09, 0x91, 0x00, +0x29, 0xAF, 0xAE, 0x00, 0x2A, 0xE9, 0x73, 0x00, 0x2B, 0x98, 0xCA, 0x80, 0x2C, 0xD2, 0x8F, 0x80, +0x2D, 0x78, 0xAC, 0x80, 0x2E, 0xB2, 0x71, 0x80, 0x2F, 0x58, 0x8E, 0x80, 0x30, 0x92, 0x53, 0x80, +0x31, 0x5D, 0x5A, 0x80, 0x32, 0x72, 0x35, 0x80, 0x33, 0x3D, 0x3C, 0x80, 0x34, 0x52, 0x17, 0x80, +0x35, 0x1D, 0x1E, 0x80, 0x36, 0x31, 0xF9, 0x80, 0x36, 0xFD, 0x00, 0x80, 0x38, 0x1B, 0x16, 0x00, +0x38, 0xDC, 0xE2, 0x80, 0x39, 0xA7, 0xE9, 0x80, 0x3A, 0xBC, 0xC4, 0x80, 0x3B, 0xDA, 0xDA, 0x00, +0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0xBA, 0xBC, 0x00, 0x3E, 0x85, 0xC3, 0x00, 0x3F, 0x9A, 0x9E, 0x00, +0x40, 0x65, 0xA5, 0x00, 0x41, 0x83, 0xBA, 0x80, 0x42, 0x45, 0x87, 0x00, 0x43, 0x63, 0x9C, 0x80, +0x44, 0x2E, 0xA3, 0x80, 0x45, 0x43, 0x7E, 0x80, 0x46, 0x05, 0x4B, 0x00, 0x47, 0x23, 0x60, 0x80, +0x47, 0xF7, 0xA2, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x49, 0xD7, 0x84, 0x00, 0x4A, 0xC7, 0x75, 0x00, +0x4B, 0xB7, 0x66, 0x00, 0x4C, 0xA7, 0x57, 0x00, 0x4D, 0x97, 0x48, 0x00, 0x4E, 0x87, 0x39, 0x00, +0x4F, 0x77, 0x2A, 0x00, 0x50, 0x70, 0x55, 0x80, 0x51, 0x60, 0x46, 0x80, 0x52, 0x50, 0x37, 0x80, +0x53, 0x40, 0x28, 0x80, 0x54, 0x30, 0x19, 0x80, 0x55, 0x20, 0x0A, 0x80, 0x56, 0x0F, 0xFB, 0x80, +0x56, 0xFF, 0xEC, 0x80, 0x57, 0xEF, 0xDD, 0x80, 0x58, 0xDF, 0xCE, 0x80, 0x59, 0xCF, 0xBF, 0x80, +0x5A, 0xBF, 0xB0, 0x80, 0x5B, 0xB8, 0xDC, 0x00, 0x5C, 0xA8, 0xCD, 0x00, 0x5D, 0x98, 0xBE, 0x00, +0x5E, 0x88, 0xAF, 0x00, 0x5F, 0x78, 0xA0, 0x00, 0x60, 0x68, 0x91, 0x00, 0x61, 0x58, 0x82, 0x00, +0x62, 0x48, 0x73, 0x00, 0x63, 0x38, 0x64, 0x00, 0x64, 0x28, 0x55, 0x00, 0x65, 0x18, 0x46, 0x00, +0x66, 0x11, 0x71, 0x80, 0x67, 0x01, 0x62, 0x80, 0x67, 0xF1, 0x53, 0x80, 0x68, 0xE1, 0x44, 0x80, +0x69, 0xD1, 0x35, 0x80, 0x6A, 0xC1, 0x26, 0x80, 0x6B, 0xB1, 0x17, 0x80, 0x6C, 0xA1, 0x08, 0x80, +0x6D, 0x90, 0xF9, 0x80, 0x6E, 0x80, 0xEA, 0x80, 0x6F, 0x70, 0xDB, 0x80, 0x70, 0x6A, 0x07, 0x00, +0x71, 0x59, 0xF8, 0x00, 0x72, 0x49, 0xE9, 0x00, 0x73, 0x39, 0xDA, 0x00, 0x74, 0x29, 0xCB, 0x00, +0x75, 0x19, 0xBC, 0x00, 0x76, 0x09, 0xAD, 0x00, 0x76, 0xF9, 0x9E, 0x00, 0x77, 0xE9, 0x8F, 0x00, +0x78, 0xD9, 0x80, 0x00, 0x79, 0xC9, 0x71, 0x00, 0x7A, 0xB9, 0x62, 0x00, 0x7B, 0xB2, 0x8D, 0x80, +0x7C, 0xA2, 0x7E, 0x80, 0x7D, 0x92, 0x6F, 0x80, 0x7E, 0x82, 0x60, 0x80, 0x7F, 0x72, 0x51, 0x80, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x9A, +0xB0, 0x01, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, +0x00, 0x8C, 0xA0, 0x00, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Australia/Currie */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9B, 0xD5, 0x78, 0x80, +0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70, 0xCC, 0xB7, 0x56, 0x80, +0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70, 0x03, 0x70, 0x39, 0x80, +0x04, 0x0D, 0x1C, 0x00, 0x05, 0x50, 0x1B, 0x80, 0x05, 0xF6, 0x38, 0x80, 0x07, 0x2F, 0xFD, 0x80, +0x07, 0xD6, 0x1A, 0x80, 0x09, 0x0F, 0xDF, 0x80, 0x09, 0xB5, 0xFC, 0x80, 0x0A, 0xEF, 0xC1, 0x80, +0x0B, 0x9F, 0x19, 0x00, 0x0C, 0xD8, 0xDE, 0x00, 0x0D, 0x7E, 0xFB, 0x00, 0x0E, 0xB8, 0xC0, 0x00, +0x0F, 0x5E, 0xDD, 0x00, 0x10, 0x98, 0xA2, 0x00, 0x11, 0x3E, 0xBF, 0x00, 0x12, 0x78, 0x84, 0x00, +0x13, 0x1E, 0xA1, 0x00, 0x14, 0x58, 0x66, 0x00, 0x14, 0xFE, 0x83, 0x00, 0x16, 0x38, 0x48, 0x00, +0x17, 0x03, 0x4F, 0x00, 0x18, 0x21, 0x64, 0x80, 0x18, 0xE3, 0x31, 0x00, 0x1A, 0x01, 0x46, 0x80, +0x1A, 0xA7, 0x63, 0x80, 0x1B, 0xE1, 0x28, 0x80, 0x1C, 0x87, 0x45, 0x80, 0x1D, 0xC1, 0x0A, 0x80, +0x1E, 0x67, 0x27, 0x80, 0x1F, 0x97, 0xB2, 0x00, 0x20, 0x59, 0x7E, 0x80, 0x21, 0x80, 0xCE, 0x80, +0x22, 0x42, 0x9B, 0x00, 0x23, 0x69, 0xEB, 0x00, 0x24, 0x22, 0x7D, 0x00, 0x25, 0x49, 0xCD, 0x00, +0x26, 0x02, 0x5F, 0x00, 0x27, 0x29, 0xAF, 0x00, 0x27, 0xF4, 0xB6, 0x00, 0x28, 0xED, 0xE1, 0x80, +0x29, 0xD4, 0x98, 0x00, 0x2A, 0xCD, 0xC3, 0x80, 0x2B, 0xB4, 0x7A, 0x00, 0x2C, 0xAD, 0xA5, 0x80, +0x2D, 0x94, 0x5C, 0x00, 0x2E, 0x8D, 0x87, 0x80, 0x2F, 0x74, 0x3E, 0x00, 0x30, 0x6D, 0x69, 0x80, +0x31, 0x5D, 0x5A, 0x80, 0x32, 0x56, 0x86, 0x00, 0x33, 0x3D, 0x3C, 0x80, 0x34, 0x36, 0x68, 0x00, +0x35, 0x1D, 0x1E, 0x80, 0x36, 0x16, 0x4A, 0x00, 0x36, 0xFD, 0x00, 0x80, 0x37, 0xF6, 0x2C, 0x00, +0x38, 0xDC, 0xE2, 0x80, 0x39, 0xA7, 0xE9, 0x80, 0x3A, 0xBC, 0xC4, 0x80, 0x3B, 0xBF, 0x2A, 0x80, +0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0x9F, 0x0C, 0x80, 0x3E, 0x85, 0xC3, 0x00, 0x3F, 0x7E, 0xEE, 0x80, +0x40, 0x65, 0xA5, 0x00, 0x41, 0x5E, 0xD0, 0x80, 0x42, 0x45, 0x87, 0x00, 0x43, 0x3E, 0xB2, 0x80, +0x44, 0x2E, 0xA3, 0x80, 0x45, 0x1E, 0x94, 0x80, 0x46, 0x05, 0x4B, 0x00, 0x47, 0x07, 0xB1, 0x00, +0x47, 0xF7, 0xA2, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x49, 0xD7, 0x84, 0x00, 0x4A, 0xC7, 0x75, 0x00, +0x4B, 0xB7, 0x66, 0x00, 0x4C, 0xA7, 0x57, 0x00, 0x4D, 0x97, 0x48, 0x00, 0x4E, 0x87, 0x39, 0x00, +0x4F, 0x77, 0x2A, 0x00, 0x50, 0x70, 0x55, 0x80, 0x51, 0x60, 0x46, 0x80, 0x52, 0x50, 0x37, 0x80, +0x53, 0x40, 0x28, 0x80, 0x54, 0x30, 0x19, 0x80, 0x55, 0x20, 0x0A, 0x80, 0x56, 0x0F, 0xFB, 0x80, +0x56, 0xFF, 0xEC, 0x80, 0x57, 0xEF, 0xDD, 0x80, 0x58, 0xDF, 0xCE, 0x80, 0x59, 0xCF, 0xBF, 0x80, +0x5A, 0xBF, 0xB0, 0x80, 0x5B, 0xB8, 0xDC, 0x00, 0x5C, 0xA8, 0xCD, 0x00, 0x5D, 0x98, 0xBE, 0x00, +0x5E, 0x88, 0xAF, 0x00, 0x5F, 0x78, 0xA0, 0x00, 0x60, 0x68, 0x91, 0x00, 0x61, 0x58, 0x82, 0x00, +0x62, 0x48, 0x73, 0x00, 0x63, 0x38, 0x64, 0x00, 0x64, 0x28, 0x55, 0x00, 0x65, 0x18, 0x46, 0x00, +0x66, 0x11, 0x71, 0x80, 0x67, 0x01, 0x62, 0x80, 0x67, 0xF1, 0x53, 0x80, 0x68, 0xE1, 0x44, 0x80, +0x69, 0xD1, 0x35, 0x80, 0x6A, 0xC1, 0x26, 0x80, 0x6B, 0xB1, 0x17, 0x80, 0x6C, 0xA1, 0x08, 0x80, +0x6D, 0x90, 0xF9, 0x80, 0x6E, 0x80, 0xEA, 0x80, 0x6F, 0x70, 0xDB, 0x80, 0x70, 0x6A, 0x07, 0x00, +0x71, 0x59, 0xF8, 0x00, 0x72, 0x49, 0xE9, 0x00, 0x73, 0x39, 0xDA, 0x00, 0x74, 0x29, 0xCB, 0x00, +0x75, 0x19, 0xBC, 0x00, 0x76, 0x09, 0xAD, 0x00, 0x76, 0xF9, 0x9E, 0x00, 0x77, 0xE9, 0x8F, 0x00, +0x78, 0xD9, 0x80, 0x00, 0x79, 0xC9, 0x71, 0x00, 0x7A, 0xB9, 0x62, 0x00, 0x7B, 0xB2, 0x8D, 0x80, +0x7C, 0xA2, 0x7E, 0x80, 0x7D, 0x92, 0x6F, 0x80, 0x7E, 0x82, 0x60, 0x80, 0x7F, 0x72, 0x51, 0x80, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x8C, +0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, +0x00, 0x8C, 0xA0, 0x00, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x4C, 0x65, 0x4A, 0x01, 0xEE, 0x2E, 0x6A, 0x00, 0x00, 0x00, 0x16, 0x54, 0x61, 0x73, +0x6D, 0x61, 0x6E, 0x69, 0x61, 0x20, 0x2D, 0x20, 0x4B, 0x69, 0x6E, 0x67, 0x20, 0x49, 0x73, 0x6C, +0x61, 0x6E, 0x64, + +/* Australia/Darwin */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xAD, 0xA4, +0x9C, 0xBC, 0x27, 0xF8, 0xCB, 0x54, 0xBA, 0x08, 0xCB, 0xC7, 0x5E, 0x78, 0xCC, 0xB7, 0x5D, 0x88, +0xCD, 0xA7, 0x40, 0x78, 0xCE, 0xA0, 0x7A, 0x08, 0xCF, 0x87, 0x22, 0x78, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x93, 0xA8, 0x01, 0x00, 0x00, 0x00, 0x85, 0x98, 0x00, 0x00, +0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x4E, 0x75, 0x01, 0xDA, 0x4B, 0x45, +0x00, 0x00, 0x00, 0x12, 0x4E, 0x6F, 0x72, 0x74, 0x68, 0x65, 0x72, 0x6E, 0x20, 0x54, 0x65, 0x72, +0x72, 0x69, 0x74, 0x6F, 0x72, 0x79, + +/* Australia/Eucla */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x9C, 0x4E, 0xB8, 0x30, +0x9C, 0xBC, 0x32, 0x84, 0xCB, 0x54, 0xC4, 0x94, 0xCB, 0xC7, 0x69, 0x04, 0xCC, 0xB7, 0x68, 0x14, +0xCD, 0xA7, 0x4B, 0x04, 0x09, 0x0F, 0xF1, 0x14, 0x09, 0xB6, 0x0E, 0x14, 0x1A, 0x01, 0x58, 0x14, +0x1A, 0xA7, 0x75, 0x14, 0x29, 0x25, 0x52, 0x14, 0x29, 0xAF, 0xBF, 0x94, 0x45, 0x71, 0xB4, 0x94, +0x46, 0x05, 0x5C, 0x94, 0x47, 0x23, 0x72, 0x14, 0x47, 0xEE, 0x79, 0x14, 0x49, 0x03, 0x54, 0x14, +0x49, 0xCE, 0x5B, 0x14, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x89, 0x1C, 0x01, 0x00, 0x00, 0x00, 0x7B, 0x0C, +0x00, 0x00, 0x00, 0x00, 0x89, 0x1C, 0x01, 0x00, 0x00, 0x00, 0x7B, 0x0C, 0x00, 0x00, 0x43, 0x57, +0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xEE, 0xED, 0x01, +0xD7, 0x4B, 0x0A, 0x00, 0x00, 0x00, 0x1E, 0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x41, +0x75, 0x73, 0x74, 0x72, 0x61, 0x6C, 0x69, 0x61, 0x20, 0x2D, 0x20, 0x45, 0x75, 0x63, 0x6C, 0x61, +0x20, 0x61, 0x72, 0x65, 0x61, + +/* Australia/Hobart */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9B, 0xD5, 0x78, 0x80, +0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70, 0xCC, 0xB7, 0x56, 0x80, +0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70, 0xFB, 0xC2, 0x8D, 0x00, +0xFC, 0xB2, 0x7E, 0x00, 0xFD, 0xC7, 0x59, 0x00, 0xFE, 0x76, 0xB0, 0x80, 0xFF, 0xA7, 0x3B, 0x00, +0x00, 0x56, 0x92, 0x80, 0x01, 0x87, 0x1D, 0x00, 0x02, 0x3F, 0xAF, 0x00, 0x03, 0x70, 0x39, 0x80, +0x04, 0x0D, 0x1C, 0x00, 0x05, 0x50, 0x1B, 0x80, 0x05, 0xF6, 0x38, 0x80, 0x07, 0x2F, 0xFD, 0x80, +0x07, 0xD6, 0x1A, 0x80, 0x09, 0x0F, 0xDF, 0x80, 0x09, 0xB5, 0xFC, 0x80, 0x0A, 0xEF, 0xC1, 0x80, +0x0B, 0x9F, 0x19, 0x00, 0x0C, 0xD8, 0xDE, 0x00, 0x0D, 0x7E, 0xFB, 0x00, 0x0E, 0xB8, 0xC0, 0x00, +0x0F, 0x5E, 0xDD, 0x00, 0x10, 0x98, 0xA2, 0x00, 0x11, 0x3E, 0xBF, 0x00, 0x12, 0x78, 0x84, 0x00, +0x13, 0x1E, 0xA1, 0x00, 0x14, 0x58, 0x66, 0x00, 0x14, 0xFE, 0x83, 0x00, 0x16, 0x38, 0x48, 0x00, +0x17, 0x03, 0x4F, 0x00, 0x18, 0x21, 0x64, 0x80, 0x18, 0xE3, 0x31, 0x00, 0x1A, 0x01, 0x46, 0x80, +0x1A, 0xA7, 0x63, 0x80, 0x1B, 0xE1, 0x28, 0x80, 0x1C, 0x87, 0x45, 0x80, 0x1D, 0xC1, 0x0A, 0x80, +0x1E, 0x67, 0x27, 0x80, 0x1F, 0x97, 0xB2, 0x00, 0x20, 0x59, 0x7E, 0x80, 0x21, 0x80, 0xCE, 0x80, +0x22, 0x42, 0x9B, 0x00, 0x23, 0x69, 0xEB, 0x00, 0x24, 0x22, 0x7D, 0x00, 0x25, 0x49, 0xCD, 0x00, +0x26, 0x02, 0x5F, 0x00, 0x27, 0x29, 0xAF, 0x00, 0x27, 0xF4, 0xB6, 0x00, 0x28, 0xED, 0xE1, 0x80, +0x29, 0xD4, 0x98, 0x00, 0x2A, 0xCD, 0xC3, 0x80, 0x2B, 0xB4, 0x7A, 0x00, 0x2C, 0xAD, 0xA5, 0x80, +0x2D, 0x94, 0x5C, 0x00, 0x2E, 0x8D, 0x87, 0x80, 0x2F, 0x74, 0x3E, 0x00, 0x30, 0x6D, 0x69, 0x80, +0x31, 0x5D, 0x5A, 0x80, 0x32, 0x56, 0x86, 0x00, 0x33, 0x3D, 0x3C, 0x80, 0x34, 0x36, 0x68, 0x00, +0x35, 0x1D, 0x1E, 0x80, 0x36, 0x16, 0x4A, 0x00, 0x36, 0xFD, 0x00, 0x80, 0x37, 0xF6, 0x2C, 0x00, +0x38, 0xDC, 0xE2, 0x80, 0x39, 0xA7, 0xE9, 0x80, 0x3A, 0xBC, 0xC4, 0x80, 0x3B, 0xBF, 0x2A, 0x80, +0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0x9F, 0x0C, 0x80, 0x3E, 0x85, 0xC3, 0x00, 0x3F, 0x7E, 0xEE, 0x80, +0x40, 0x65, 0xA5, 0x00, 0x41, 0x5E, 0xD0, 0x80, 0x42, 0x45, 0x87, 0x00, 0x43, 0x3E, 0xB2, 0x80, +0x44, 0x2E, 0xA3, 0x80, 0x45, 0x1E, 0x94, 0x80, 0x46, 0x05, 0x4B, 0x00, 0x47, 0x07, 0xB1, 0x00, +0x47, 0xF7, 0xA2, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x49, 0xD7, 0x84, 0x00, 0x4A, 0xC7, 0x75, 0x00, +0x4B, 0xB7, 0x66, 0x00, 0x4C, 0xA7, 0x57, 0x00, 0x4D, 0x97, 0x48, 0x00, 0x4E, 0x87, 0x39, 0x00, +0x4F, 0x77, 0x2A, 0x00, 0x50, 0x70, 0x55, 0x80, 0x51, 0x60, 0x46, 0x80, 0x52, 0x50, 0x37, 0x80, +0x53, 0x40, 0x28, 0x80, 0x54, 0x30, 0x19, 0x80, 0x55, 0x20, 0x0A, 0x80, 0x56, 0x0F, 0xFB, 0x80, +0x56, 0xFF, 0xEC, 0x80, 0x57, 0xEF, 0xDD, 0x80, 0x58, 0xDF, 0xCE, 0x80, 0x59, 0xCF, 0xBF, 0x80, +0x5A, 0xBF, 0xB0, 0x80, 0x5B, 0xB8, 0xDC, 0x00, 0x5C, 0xA8, 0xCD, 0x00, 0x5D, 0x98, 0xBE, 0x00, +0x5E, 0x88, 0xAF, 0x00, 0x5F, 0x78, 0xA0, 0x00, 0x60, 0x68, 0x91, 0x00, 0x61, 0x58, 0x82, 0x00, +0x62, 0x48, 0x73, 0x00, 0x63, 0x38, 0x64, 0x00, 0x64, 0x28, 0x55, 0x00, 0x65, 0x18, 0x46, 0x00, +0x66, 0x11, 0x71, 0x80, 0x67, 0x01, 0x62, 0x80, 0x67, 0xF1, 0x53, 0x80, 0x68, 0xE1, 0x44, 0x80, +0x69, 0xD1, 0x35, 0x80, 0x6A, 0xC1, 0x26, 0x80, 0x6B, 0xB1, 0x17, 0x80, 0x6C, 0xA1, 0x08, 0x80, +0x6D, 0x90, 0xF9, 0x80, 0x6E, 0x80, 0xEA, 0x80, 0x6F, 0x70, 0xDB, 0x80, 0x70, 0x6A, 0x07, 0x00, +0x71, 0x59, 0xF8, 0x00, 0x72, 0x49, 0xE9, 0x00, 0x73, 0x39, 0xDA, 0x00, 0x74, 0x29, 0xCB, 0x00, +0x75, 0x19, 0xBC, 0x00, 0x76, 0x09, 0xAD, 0x00, 0x76, 0xF9, 0x9E, 0x00, 0x77, 0xE9, 0x8F, 0x00, +0x78, 0xD9, 0x80, 0x00, 0x79, 0xC9, 0x71, 0x00, 0x7A, 0xB9, 0x62, 0x00, 0x7B, 0xB2, 0x8D, 0x80, +0x7C, 0xA2, 0x7E, 0x80, 0x7D, 0x92, 0x6F, 0x80, 0x7E, 0x82, 0x60, 0x80, 0x7F, 0x72, 0x51, 0x80, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, +0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x45, 0x53, 0x54, +0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xE4, 0xF2, 0x01, 0xF3, 0x72, +0x12, 0x00, 0x00, 0x00, 0x19, 0x54, 0x61, 0x73, 0x6D, 0x61, 0x6E, 0x69, 0x61, 0x20, 0x2D, 0x20, +0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* Australia/LHI */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0x14, 0xFE, 0x66, 0xE0, +0x16, 0x38, 0x40, 0xF8, 0x16, 0xE7, 0x8A, 0x68, 0x18, 0x21, 0x5D, 0x78, 0x18, 0xC7, 0x6C, 0x68, +0x1A, 0x01, 0x3F, 0x78, 0x1A, 0xA7, 0x4E, 0x68, 0x1B, 0xE1, 0x21, 0x78, 0x1C, 0x87, 0x30, 0x68, +0x1D, 0xC1, 0x03, 0x78, 0x1E, 0x79, 0x8E, 0x70, 0x1F, 0x97, 0xAA, 0xF8, 0x20, 0x59, 0x70, 0x70, +0x21, 0x80, 0xC7, 0x78, 0x22, 0x42, 0x8C, 0xF0, 0x23, 0x69, 0xE3, 0xF8, 0x24, 0x22, 0x6E, 0xF0, +0x25, 0x49, 0xC5, 0xF8, 0x25, 0xEF, 0xDB, 0xF0, 0x27, 0x29, 0xA7, 0xF8, 0x27, 0xCF, 0xBD, 0xF0, +0x29, 0x09, 0x89, 0xF8, 0x29, 0xAF, 0x9F, 0xF0, 0x2A, 0xE9, 0x6B, 0xF8, 0x2B, 0x98, 0xBC, 0x70, +0x2C, 0xD2, 0x88, 0x78, 0x2D, 0x78, 0x9E, 0x70, 0x2E, 0xB2, 0x6A, 0x78, 0x2F, 0x58, 0x80, 0x70, +0x30, 0x92, 0x4C, 0x78, 0x31, 0x5D, 0x4C, 0x70, 0x32, 0x72, 0x2E, 0x78, 0x33, 0x3D, 0x2E, 0x70, +0x34, 0x52, 0x10, 0x78, 0x35, 0x1D, 0x10, 0x70, 0x36, 0x31, 0xF2, 0x78, 0x36, 0xFC, 0xF2, 0x70, +0x38, 0x1B, 0x0E, 0xF8, 0x38, 0xDC, 0xD4, 0x70, 0x39, 0xA7, 0xE2, 0x78, 0x3A, 0xBC, 0xB6, 0x70, +0x3B, 0xDA, 0xD2, 0xF8, 0x3C, 0xA5, 0xD2, 0xF0, 0x3D, 0xBA, 0xB4, 0xF8, 0x3E, 0x85, 0xB4, 0xF0, +0x3F, 0x9A, 0x96, 0xF8, 0x40, 0x65, 0x96, 0xF0, 0x41, 0x83, 0xB3, 0x78, 0x42, 0x45, 0x78, 0xF0, +0x43, 0x63, 0x95, 0x78, 0x44, 0x2E, 0x95, 0x70, 0x45, 0x43, 0x77, 0x78, 0x46, 0x05, 0x3C, 0xF0, +0x47, 0x23, 0x59, 0x78, 0x47, 0xF7, 0x93, 0xF0, 0x48, 0xE7, 0x8B, 0xF8, 0x49, 0xD7, 0x75, 0xF0, +0x4A, 0xC7, 0x6D, 0xF8, 0x4B, 0xB7, 0x57, 0xF0, 0x4C, 0xA7, 0x4F, 0xF8, 0x4D, 0x97, 0x39, 0xF0, +0x4E, 0x87, 0x31, 0xF8, 0x4F, 0x77, 0x1B, 0xF0, 0x50, 0x70, 0x4E, 0x78, 0x51, 0x60, 0x38, 0x70, +0x52, 0x50, 0x30, 0x78, 0x53, 0x40, 0x1A, 0x70, 0x54, 0x30, 0x12, 0x78, 0x55, 0x1F, 0xFC, 0x70, +0x56, 0x0F, 0xF4, 0x78, 0x56, 0xFF, 0xDE, 0x70, 0x57, 0xEF, 0xD6, 0x78, 0x58, 0xDF, 0xC0, 0x70, +0x59, 0xCF, 0xB8, 0x78, 0x5A, 0xBF, 0xA2, 0x70, 0x5B, 0xB8, 0xD4, 0xF8, 0x5C, 0xA8, 0xBE, 0xF0, +0x5D, 0x98, 0xB6, 0xF8, 0x5E, 0x88, 0xA0, 0xF0, 0x5F, 0x78, 0x98, 0xF8, 0x60, 0x68, 0x82, 0xF0, +0x61, 0x58, 0x7A, 0xF8, 0x62, 0x48, 0x64, 0xF0, 0x63, 0x38, 0x5C, 0xF8, 0x64, 0x28, 0x46, 0xF0, +0x65, 0x18, 0x3E, 0xF8, 0x66, 0x11, 0x63, 0x70, 0x67, 0x01, 0x5B, 0x78, 0x67, 0xF1, 0x45, 0x70, +0x68, 0xE1, 0x3D, 0x78, 0x69, 0xD1, 0x27, 0x70, 0x6A, 0xC1, 0x1F, 0x78, 0x6B, 0xB1, 0x09, 0x70, +0x6C, 0xA1, 0x01, 0x78, 0x6D, 0x90, 0xEB, 0x70, 0x6E, 0x80, 0xE3, 0x78, 0x6F, 0x70, 0xCD, 0x70, +0x70, 0x69, 0xFF, 0xF8, 0x71, 0x59, 0xE9, 0xF0, 0x72, 0x49, 0xE1, 0xF8, 0x73, 0x39, 0xCB, 0xF0, +0x74, 0x29, 0xC3, 0xF8, 0x75, 0x19, 0xAD, 0xF0, 0x76, 0x09, 0xA5, 0xF8, 0x76, 0xF9, 0x8F, 0xF0, +0x77, 0xE9, 0x87, 0xF8, 0x78, 0xD9, 0x71, 0xF0, 0x79, 0xC9, 0x69, 0xF8, 0x7A, 0xB9, 0x53, 0xF0, +0x7B, 0xB2, 0x86, 0x78, 0x7C, 0xA2, 0x70, 0x70, 0x7D, 0x92, 0x68, 0x78, 0x7E, 0x82, 0x52, 0x70, +0x7F, 0x72, 0x4A, 0x78, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xB8, +0x01, 0x04, 0x00, 0x00, 0x93, 0xA8, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x04, 0x45, 0x53, +0x54, 0x00, 0x4C, 0x48, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Australia/Lindeman */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xA6, 0x9C, +0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70, 0xCC, 0xB7, 0x56, 0x80, +0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70, 0x03, 0x70, 0x39, 0x80, +0x04, 0x0D, 0x1C, 0x00, 0x25, 0x49, 0xCD, 0x00, 0x25, 0xEF, 0xEA, 0x00, 0x27, 0x29, 0xAF, 0x00, +0x27, 0xCF, 0xCC, 0x00, 0x29, 0x09, 0x91, 0x00, 0x29, 0xAF, 0xAE, 0x00, 0x2A, 0x50, 0x68, 0xE0, +0x2A, 0xE9, 0x73, 0x00, 0x2B, 0x98, 0xCA, 0x80, 0x2C, 0xD2, 0x8F, 0x80, 0x2D, 0x78, 0xAC, 0x80, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x01, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, +0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x45, 0x53, 0x54, +0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0x67, 0x95, 0x01, 0xF6, 0x03, +0xA0, 0x00, 0x00, 0x00, 0x1C, 0x51, 0x75, 0x65, 0x65, 0x6E, 0x73, 0x6C, 0x61, 0x6E, 0x64, 0x20, +0x2D, 0x20, 0x48, 0x6F, 0x6C, 0x69, 0x64, 0x61, 0x79, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, +0x73, + +/* Australia/Lord_Howe */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0x14, 0xFE, 0x66, 0xE0, +0x16, 0x38, 0x40, 0xF8, 0x16, 0xE7, 0x8A, 0x68, 0x18, 0x21, 0x5D, 0x78, 0x18, 0xC7, 0x6C, 0x68, +0x1A, 0x01, 0x3F, 0x78, 0x1A, 0xA7, 0x4E, 0x68, 0x1B, 0xE1, 0x21, 0x78, 0x1C, 0x87, 0x30, 0x68, +0x1D, 0xC1, 0x03, 0x78, 0x1E, 0x79, 0x8E, 0x70, 0x1F, 0x97, 0xAA, 0xF8, 0x20, 0x59, 0x70, 0x70, +0x21, 0x80, 0xC7, 0x78, 0x22, 0x42, 0x8C, 0xF0, 0x23, 0x69, 0xE3, 0xF8, 0x24, 0x22, 0x6E, 0xF0, +0x25, 0x49, 0xC5, 0xF8, 0x25, 0xEF, 0xDB, 0xF0, 0x27, 0x29, 0xA7, 0xF8, 0x27, 0xCF, 0xBD, 0xF0, +0x29, 0x09, 0x89, 0xF8, 0x29, 0xAF, 0x9F, 0xF0, 0x2A, 0xE9, 0x6B, 0xF8, 0x2B, 0x98, 0xBC, 0x70, +0x2C, 0xD2, 0x88, 0x78, 0x2D, 0x78, 0x9E, 0x70, 0x2E, 0xB2, 0x6A, 0x78, 0x2F, 0x58, 0x80, 0x70, +0x30, 0x92, 0x4C, 0x78, 0x31, 0x5D, 0x4C, 0x70, 0x32, 0x72, 0x2E, 0x78, 0x33, 0x3D, 0x2E, 0x70, +0x34, 0x52, 0x10, 0x78, 0x35, 0x1D, 0x10, 0x70, 0x36, 0x31, 0xF2, 0x78, 0x36, 0xFC, 0xF2, 0x70, +0x38, 0x1B, 0x0E, 0xF8, 0x38, 0xDC, 0xD4, 0x70, 0x39, 0xA7, 0xE2, 0x78, 0x3A, 0xBC, 0xB6, 0x70, +0x3B, 0xDA, 0xD2, 0xF8, 0x3C, 0xA5, 0xD2, 0xF0, 0x3D, 0xBA, 0xB4, 0xF8, 0x3E, 0x85, 0xB4, 0xF0, +0x3F, 0x9A, 0x96, 0xF8, 0x40, 0x65, 0x96, 0xF0, 0x41, 0x83, 0xB3, 0x78, 0x42, 0x45, 0x78, 0xF0, +0x43, 0x63, 0x95, 0x78, 0x44, 0x2E, 0x95, 0x70, 0x45, 0x43, 0x77, 0x78, 0x46, 0x05, 0x3C, 0xF0, +0x47, 0x23, 0x59, 0x78, 0x47, 0xF7, 0x93, 0xF0, 0x48, 0xE7, 0x8B, 0xF8, 0x49, 0xD7, 0x75, 0xF0, +0x4A, 0xC7, 0x6D, 0xF8, 0x4B, 0xB7, 0x57, 0xF0, 0x4C, 0xA7, 0x4F, 0xF8, 0x4D, 0x97, 0x39, 0xF0, +0x4E, 0x87, 0x31, 0xF8, 0x4F, 0x77, 0x1B, 0xF0, 0x50, 0x70, 0x4E, 0x78, 0x51, 0x60, 0x38, 0x70, +0x52, 0x50, 0x30, 0x78, 0x53, 0x40, 0x1A, 0x70, 0x54, 0x30, 0x12, 0x78, 0x55, 0x1F, 0xFC, 0x70, +0x56, 0x0F, 0xF4, 0x78, 0x56, 0xFF, 0xDE, 0x70, 0x57, 0xEF, 0xD6, 0x78, 0x58, 0xDF, 0xC0, 0x70, +0x59, 0xCF, 0xB8, 0x78, 0x5A, 0xBF, 0xA2, 0x70, 0x5B, 0xB8, 0xD4, 0xF8, 0x5C, 0xA8, 0xBE, 0xF0, +0x5D, 0x98, 0xB6, 0xF8, 0x5E, 0x88, 0xA0, 0xF0, 0x5F, 0x78, 0x98, 0xF8, 0x60, 0x68, 0x82, 0xF0, +0x61, 0x58, 0x7A, 0xF8, 0x62, 0x48, 0x64, 0xF0, 0x63, 0x38, 0x5C, 0xF8, 0x64, 0x28, 0x46, 0xF0, +0x65, 0x18, 0x3E, 0xF8, 0x66, 0x11, 0x63, 0x70, 0x67, 0x01, 0x5B, 0x78, 0x67, 0xF1, 0x45, 0x70, +0x68, 0xE1, 0x3D, 0x78, 0x69, 0xD1, 0x27, 0x70, 0x6A, 0xC1, 0x1F, 0x78, 0x6B, 0xB1, 0x09, 0x70, +0x6C, 0xA1, 0x01, 0x78, 0x6D, 0x90, 0xEB, 0x70, 0x6E, 0x80, 0xE3, 0x78, 0x6F, 0x70, 0xCD, 0x70, +0x70, 0x69, 0xFF, 0xF8, 0x71, 0x59, 0xE9, 0xF0, 0x72, 0x49, 0xE1, 0xF8, 0x73, 0x39, 0xCB, 0xF0, +0x74, 0x29, 0xC3, 0xF8, 0x75, 0x19, 0xAD, 0xF0, 0x76, 0x09, 0xA5, 0xF8, 0x76, 0xF9, 0x8F, 0xF0, +0x77, 0xE9, 0x87, 0xF8, 0x78, 0xD9, 0x71, 0xF0, 0x79, 0xC9, 0x69, 0xF8, 0x7A, 0xB9, 0x53, 0xF0, +0x7B, 0xB2, 0x86, 0x78, 0x7C, 0xA2, 0x70, 0x70, 0x7D, 0x92, 0x68, 0x78, 0x7E, 0x82, 0x52, 0x70, +0x7F, 0x72, 0x4A, 0x78, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xB8, +0x01, 0x04, 0x00, 0x00, 0x93, 0xA8, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x04, 0x45, 0x53, +0x54, 0x00, 0x4C, 0x48, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x59, 0x30, 0x08, 0x02, 0x05, 0x66, 0x6D, 0x00, 0x00, 0x00, 0x10, 0x4C, 0x6F, 0x72, 0x64, 0x20, +0x48, 0x6F, 0x77, 0x65, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, + +/* Australia/Melbourne */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xA6, 0x9C, +0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70, 0xCC, 0xB7, 0x56, 0x80, +0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70, 0x03, 0x70, 0x39, 0x80, +0x04, 0x0D, 0x1C, 0x00, 0x05, 0x50, 0x1B, 0x80, 0x05, 0xF6, 0x38, 0x80, 0x07, 0x2F, 0xFD, 0x80, +0x07, 0xD6, 0x1A, 0x80, 0x09, 0x0F, 0xDF, 0x80, 0x09, 0xB5, 0xFC, 0x80, 0x0A, 0xEF, 0xC1, 0x80, +0x0B, 0x9F, 0x19, 0x00, 0x0C, 0xD8, 0xDE, 0x00, 0x0D, 0x7E, 0xFB, 0x00, 0x0E, 0xB8, 0xC0, 0x00, +0x0F, 0x5E, 0xDD, 0x00, 0x10, 0x98, 0xA2, 0x00, 0x11, 0x3E, 0xBF, 0x00, 0x12, 0x78, 0x84, 0x00, +0x13, 0x1E, 0xA1, 0x00, 0x14, 0x58, 0x66, 0x00, 0x14, 0xFE, 0x83, 0x00, 0x16, 0x38, 0x48, 0x00, +0x16, 0xE7, 0x9F, 0x80, 0x18, 0x21, 0x64, 0x80, 0x18, 0xC7, 0x81, 0x80, 0x1A, 0x01, 0x46, 0x80, +0x1A, 0xA7, 0x63, 0x80, 0x1B, 0xE1, 0x28, 0x80, 0x1C, 0x87, 0x45, 0x80, 0x1D, 0xC1, 0x0A, 0x80, +0x1E, 0x79, 0x9C, 0x80, 0x1F, 0x97, 0xB2, 0x00, 0x20, 0x59, 0x7E, 0x80, 0x21, 0x77, 0x94, 0x00, +0x22, 0x42, 0x9B, 0x00, 0x23, 0x69, 0xEB, 0x00, 0x24, 0x22, 0x7D, 0x00, 0x25, 0x49, 0xCD, 0x00, +0x26, 0x02, 0x5F, 0x00, 0x27, 0x29, 0xAF, 0x00, 0x27, 0xCF, 0xCC, 0x00, 0x29, 0x09, 0x91, 0x00, +0x29, 0xAF, 0xAE, 0x00, 0x2A, 0xE9, 0x73, 0x00, 0x2B, 0x98, 0xCA, 0x80, 0x2C, 0xD2, 0x8F, 0x80, +0x2D, 0x78, 0xAC, 0x80, 0x2E, 0xB2, 0x71, 0x80, 0x2F, 0x74, 0x3E, 0x00, 0x30, 0x92, 0x53, 0x80, +0x31, 0x5D, 0x5A, 0x80, 0x32, 0x72, 0x35, 0x80, 0x33, 0x3D, 0x3C, 0x80, 0x34, 0x52, 0x17, 0x80, +0x35, 0x1D, 0x1E, 0x80, 0x36, 0x31, 0xF9, 0x80, 0x36, 0xFD, 0x00, 0x80, 0x38, 0x1B, 0x16, 0x00, +0x38, 0xDC, 0xE2, 0x80, 0x39, 0xA7, 0xE9, 0x80, 0x3A, 0xBC, 0xC4, 0x80, 0x3B, 0xDA, 0xDA, 0x00, +0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0xBA, 0xBC, 0x00, 0x3E, 0x85, 0xC3, 0x00, 0x3F, 0x9A, 0x9E, 0x00, +0x40, 0x65, 0xA5, 0x00, 0x41, 0x83, 0xBA, 0x80, 0x42, 0x45, 0x87, 0x00, 0x43, 0x63, 0x9C, 0x80, +0x44, 0x2E, 0xA3, 0x80, 0x45, 0x43, 0x7E, 0x80, 0x46, 0x05, 0x4B, 0x00, 0x47, 0x23, 0x60, 0x80, +0x47, 0xF7, 0xA2, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x49, 0xD7, 0x84, 0x00, 0x4A, 0xC7, 0x75, 0x00, +0x4B, 0xB7, 0x66, 0x00, 0x4C, 0xA7, 0x57, 0x00, 0x4D, 0x97, 0x48, 0x00, 0x4E, 0x87, 0x39, 0x00, +0x4F, 0x77, 0x2A, 0x00, 0x50, 0x70, 0x55, 0x80, 0x51, 0x60, 0x46, 0x80, 0x52, 0x50, 0x37, 0x80, +0x53, 0x40, 0x28, 0x80, 0x54, 0x30, 0x19, 0x80, 0x55, 0x20, 0x0A, 0x80, 0x56, 0x0F, 0xFB, 0x80, +0x56, 0xFF, 0xEC, 0x80, 0x57, 0xEF, 0xDD, 0x80, 0x58, 0xDF, 0xCE, 0x80, 0x59, 0xCF, 0xBF, 0x80, +0x5A, 0xBF, 0xB0, 0x80, 0x5B, 0xB8, 0xDC, 0x00, 0x5C, 0xA8, 0xCD, 0x00, 0x5D, 0x98, 0xBE, 0x00, +0x5E, 0x88, 0xAF, 0x00, 0x5F, 0x78, 0xA0, 0x00, 0x60, 0x68, 0x91, 0x00, 0x61, 0x58, 0x82, 0x00, +0x62, 0x48, 0x73, 0x00, 0x63, 0x38, 0x64, 0x00, 0x64, 0x28, 0x55, 0x00, 0x65, 0x18, 0x46, 0x00, +0x66, 0x11, 0x71, 0x80, 0x67, 0x01, 0x62, 0x80, 0x67, 0xF1, 0x53, 0x80, 0x68, 0xE1, 0x44, 0x80, +0x69, 0xD1, 0x35, 0x80, 0x6A, 0xC1, 0x26, 0x80, 0x6B, 0xB1, 0x17, 0x80, 0x6C, 0xA1, 0x08, 0x80, +0x6D, 0x90, 0xF9, 0x80, 0x6E, 0x80, 0xEA, 0x80, 0x6F, 0x70, 0xDB, 0x80, 0x70, 0x6A, 0x07, 0x00, +0x71, 0x59, 0xF8, 0x00, 0x72, 0x49, 0xE9, 0x00, 0x73, 0x39, 0xDA, 0x00, 0x74, 0x29, 0xCB, 0x00, +0x75, 0x19, 0xBC, 0x00, 0x76, 0x09, 0xAD, 0x00, 0x76, 0xF9, 0x9E, 0x00, 0x77, 0xE9, 0x8F, 0x00, +0x78, 0xD9, 0x80, 0x00, 0x79, 0xC9, 0x71, 0x00, 0x7A, 0xB9, 0x62, 0x00, 0x7B, 0xB2, 0x8D, 0x80, +0x7C, 0xA2, 0x7E, 0x80, 0x7D, 0x92, 0x6F, 0x80, 0x7E, 0x82, 0x60, 0x80, 0x7F, 0x72, 0x51, 0x80, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x9A, +0xB0, 0x01, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, +0x00, 0x8C, 0xA0, 0x00, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x4F, 0xA0, 0x1D, 0x01, 0xEF, 0xDC, 0x1A, 0x00, 0x00, 0x00, 0x08, 0x56, 0x69, 0x63, +0x74, 0x6F, 0x72, 0x69, 0x61, + +/* Australia/North */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xAD, 0xA4, +0x9C, 0xBC, 0x27, 0xF8, 0xCB, 0x54, 0xBA, 0x08, 0xCB, 0xC7, 0x5E, 0x78, 0xCC, 0xB7, 0x5D, 0x88, +0xCD, 0xA7, 0x40, 0x78, 0xCE, 0xA0, 0x7A, 0x08, 0xCF, 0x87, 0x22, 0x78, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x93, 0xA8, 0x01, 0x00, 0x00, 0x00, 0x85, 0x98, 0x00, 0x00, +0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Australia/NSW */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xA6, 0x9C, +0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70, 0xCC, 0xB7, 0x56, 0x80, +0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70, 0x03, 0x70, 0x39, 0x80, +0x04, 0x0D, 0x1C, 0x00, 0x05, 0x50, 0x1B, 0x80, 0x05, 0xF6, 0x38, 0x80, 0x07, 0x2F, 0xFD, 0x80, +0x07, 0xD6, 0x1A, 0x80, 0x09, 0x0F, 0xDF, 0x80, 0x09, 0xB5, 0xFC, 0x80, 0x0A, 0xEF, 0xC1, 0x80, +0x0B, 0x9F, 0x19, 0x00, 0x0C, 0xD8, 0xDE, 0x00, 0x0D, 0x7E, 0xFB, 0x00, 0x0E, 0xB8, 0xC0, 0x00, +0x0F, 0x5E, 0xDD, 0x00, 0x10, 0x98, 0xA2, 0x00, 0x11, 0x3E, 0xBF, 0x00, 0x12, 0x78, 0x84, 0x00, +0x13, 0x1E, 0xA1, 0x00, 0x14, 0x58, 0x66, 0x00, 0x14, 0xFE, 0x83, 0x00, 0x16, 0x38, 0x48, 0x00, +0x17, 0x0C, 0x89, 0x80, 0x18, 0x21, 0x64, 0x80, 0x18, 0xC7, 0x81, 0x80, 0x1A, 0x01, 0x46, 0x80, +0x1A, 0xA7, 0x63, 0x80, 0x1B, 0xE1, 0x28, 0x80, 0x1C, 0x87, 0x45, 0x80, 0x1D, 0xC1, 0x0A, 0x80, +0x1E, 0x79, 0x9C, 0x80, 0x1F, 0x97, 0xB2, 0x00, 0x20, 0x59, 0x7E, 0x80, 0x21, 0x80, 0xCE, 0x80, +0x22, 0x42, 0x9B, 0x00, 0x23, 0x69, 0xEB, 0x00, 0x24, 0x22, 0x7D, 0x00, 0x25, 0x49, 0xCD, 0x00, +0x25, 0xEF, 0xEA, 0x00, 0x27, 0x29, 0xAF, 0x00, 0x27, 0xCF, 0xCC, 0x00, 0x29, 0x09, 0x91, 0x00, +0x29, 0xAF, 0xAE, 0x00, 0x2A, 0xE9, 0x73, 0x00, 0x2B, 0x98, 0xCA, 0x80, 0x2C, 0xD2, 0x8F, 0x80, +0x2D, 0x78, 0xAC, 0x80, 0x2E, 0xB2, 0x71, 0x80, 0x2F, 0x58, 0x8E, 0x80, 0x30, 0x92, 0x53, 0x80, +0x31, 0x5D, 0x5A, 0x80, 0x32, 0x72, 0x35, 0x80, 0x33, 0x3D, 0x3C, 0x80, 0x34, 0x52, 0x17, 0x80, +0x35, 0x1D, 0x1E, 0x80, 0x36, 0x31, 0xF9, 0x80, 0x36, 0xFD, 0x00, 0x80, 0x38, 0x1B, 0x16, 0x00, +0x38, 0xDC, 0xE2, 0x80, 0x39, 0xA7, 0xE9, 0x80, 0x3A, 0xBC, 0xC4, 0x80, 0x3B, 0xDA, 0xDA, 0x00, +0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0xBA, 0xBC, 0x00, 0x3E, 0x85, 0xC3, 0x00, 0x3F, 0x9A, 0x9E, 0x00, +0x40, 0x65, 0xA5, 0x00, 0x41, 0x83, 0xBA, 0x80, 0x42, 0x45, 0x87, 0x00, 0x43, 0x63, 0x9C, 0x80, +0x44, 0x2E, 0xA3, 0x80, 0x45, 0x43, 0x7E, 0x80, 0x46, 0x05, 0x4B, 0x00, 0x47, 0x23, 0x60, 0x80, +0x47, 0xF7, 0xA2, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x49, 0xD7, 0x84, 0x00, 0x4A, 0xC7, 0x75, 0x00, +0x4B, 0xB7, 0x66, 0x00, 0x4C, 0xA7, 0x57, 0x00, 0x4D, 0x97, 0x48, 0x00, 0x4E, 0x87, 0x39, 0x00, +0x4F, 0x77, 0x2A, 0x00, 0x50, 0x70, 0x55, 0x80, 0x51, 0x60, 0x46, 0x80, 0x52, 0x50, 0x37, 0x80, +0x53, 0x40, 0x28, 0x80, 0x54, 0x30, 0x19, 0x80, 0x55, 0x20, 0x0A, 0x80, 0x56, 0x0F, 0xFB, 0x80, +0x56, 0xFF, 0xEC, 0x80, 0x57, 0xEF, 0xDD, 0x80, 0x58, 0xDF, 0xCE, 0x80, 0x59, 0xCF, 0xBF, 0x80, +0x5A, 0xBF, 0xB0, 0x80, 0x5B, 0xB8, 0xDC, 0x00, 0x5C, 0xA8, 0xCD, 0x00, 0x5D, 0x98, 0xBE, 0x00, +0x5E, 0x88, 0xAF, 0x00, 0x5F, 0x78, 0xA0, 0x00, 0x60, 0x68, 0x91, 0x00, 0x61, 0x58, 0x82, 0x00, +0x62, 0x48, 0x73, 0x00, 0x63, 0x38, 0x64, 0x00, 0x64, 0x28, 0x55, 0x00, 0x65, 0x18, 0x46, 0x00, +0x66, 0x11, 0x71, 0x80, 0x67, 0x01, 0x62, 0x80, 0x67, 0xF1, 0x53, 0x80, 0x68, 0xE1, 0x44, 0x80, +0x69, 0xD1, 0x35, 0x80, 0x6A, 0xC1, 0x26, 0x80, 0x6B, 0xB1, 0x17, 0x80, 0x6C, 0xA1, 0x08, 0x80, +0x6D, 0x90, 0xF9, 0x80, 0x6E, 0x80, 0xEA, 0x80, 0x6F, 0x70, 0xDB, 0x80, 0x70, 0x6A, 0x07, 0x00, +0x71, 0x59, 0xF8, 0x00, 0x72, 0x49, 0xE9, 0x00, 0x73, 0x39, 0xDA, 0x00, 0x74, 0x29, 0xCB, 0x00, +0x75, 0x19, 0xBC, 0x00, 0x76, 0x09, 0xAD, 0x00, 0x76, 0xF9, 0x9E, 0x00, 0x77, 0xE9, 0x8F, 0x00, +0x78, 0xD9, 0x80, 0x00, 0x79, 0xC9, 0x71, 0x00, 0x7A, 0xB9, 0x62, 0x00, 0x7B, 0xB2, 0x8D, 0x80, +0x7C, 0xA2, 0x7E, 0x80, 0x7D, 0x92, 0x6F, 0x80, 0x7E, 0x82, 0x60, 0x80, 0x7F, 0x72, 0x51, 0x80, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x9A, +0xB0, 0x01, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, +0x00, 0x8C, 0xA0, 0x00, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Australia/Perth */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xC2, 0xBC, +0x9C, 0xBC, 0x3D, 0x10, 0xCB, 0x54, 0xCF, 0x20, 0xCB, 0xC7, 0x73, 0x90, 0xCC, 0xB7, 0x72, 0xA0, +0xCD, 0xA7, 0x55, 0x90, 0x09, 0x0F, 0xFB, 0xA0, 0x09, 0xB6, 0x18, 0xA0, 0x1A, 0x01, 0x62, 0xA0, +0x1A, 0xA7, 0x7F, 0xA0, 0x29, 0x25, 0x5C, 0xA0, 0x29, 0xAF, 0xCA, 0x20, 0x45, 0x71, 0xBF, 0x20, +0x46, 0x05, 0x67, 0x20, 0x47, 0x23, 0x7C, 0xA0, 0x47, 0xEE, 0x83, 0xA0, 0x49, 0x03, 0x5E, 0xA0, +0x49, 0xCE, 0x65, 0xA0, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x00, 0x00, 0x00, 0x70, 0x80, +0x00, 0x00, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x00, 0x57, 0x53, +0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x93, 0xC8, 0x01, 0xC3, +0x6E, 0x68, 0x00, 0x00, 0x00, 0x22, 0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x41, 0x75, +0x73, 0x74, 0x72, 0x61, 0x6C, 0x69, 0x61, 0x20, 0x2D, 0x20, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6C, +0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* Australia/Queensland */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xA6, 0x9C, +0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70, 0xCC, 0xB7, 0x56, 0x80, +0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70, 0x03, 0x70, 0x39, 0x80, +0x04, 0x0D, 0x1C, 0x00, 0x25, 0x49, 0xCD, 0x00, 0x25, 0xEF, 0xEA, 0x00, 0x27, 0x29, 0xAF, 0x00, +0x27, 0xCF, 0xCC, 0x00, 0x29, 0x09, 0x91, 0x00, 0x29, 0xAF, 0xAE, 0x00, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x9A, 0xB0, +0x01, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, 0x00, +0x8C, 0xA0, 0x00, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Australia/South */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xAD, 0xA4, +0x9C, 0xBC, 0x27, 0xF8, 0xCB, 0x54, 0xBA, 0x08, 0xCB, 0xC7, 0x5E, 0x78, 0xCC, 0xB7, 0x5D, 0x88, +0xCD, 0xA7, 0x40, 0x78, 0xCE, 0xA0, 0x7A, 0x08, 0xCF, 0x87, 0x22, 0x78, 0x03, 0x70, 0x40, 0x88, +0x04, 0x0D, 0x23, 0x08, 0x05, 0x50, 0x22, 0x88, 0x05, 0xF6, 0x3F, 0x88, 0x07, 0x30, 0x04, 0x88, +0x07, 0xD6, 0x21, 0x88, 0x09, 0x0F, 0xE6, 0x88, 0x09, 0xB6, 0x03, 0x88, 0x0A, 0xEF, 0xC8, 0x88, +0x0B, 0x9F, 0x20, 0x08, 0x0C, 0xD8, 0xE5, 0x08, 0x0D, 0x7F, 0x02, 0x08, 0x0E, 0xB8, 0xC7, 0x08, +0x0F, 0x5E, 0xE4, 0x08, 0x10, 0x98, 0xA9, 0x08, 0x11, 0x3E, 0xC6, 0x08, 0x12, 0x78, 0x8B, 0x08, +0x13, 0x1E, 0xA8, 0x08, 0x14, 0x58, 0x6D, 0x08, 0x14, 0xFE, 0x8A, 0x08, 0x16, 0x38, 0x4F, 0x08, +0x16, 0xE7, 0xA6, 0x88, 0x18, 0x21, 0x6B, 0x88, 0x18, 0xC7, 0x88, 0x88, 0x1A, 0x01, 0x4D, 0x88, +0x1A, 0xA7, 0x6A, 0x88, 0x1B, 0xE1, 0x2F, 0x88, 0x1C, 0x87, 0x4C, 0x88, 0x1D, 0xC1, 0x11, 0x88, +0x1E, 0x79, 0xA3, 0x88, 0x1F, 0x97, 0xB9, 0x08, 0x20, 0x59, 0x85, 0x88, 0x21, 0x80, 0xD5, 0x88, +0x22, 0x42, 0xA2, 0x08, 0x23, 0x69, 0xF2, 0x08, 0x24, 0x22, 0x84, 0x08, 0x25, 0x49, 0xD4, 0x08, +0x26, 0x02, 0x66, 0x08, 0x27, 0x29, 0xB6, 0x08, 0x27, 0xCF, 0xD3, 0x08, 0x29, 0x09, 0x98, 0x08, +0x29, 0xCB, 0x64, 0x88, 0x2A, 0xE9, 0x7A, 0x08, 0x2B, 0x98, 0xD1, 0x88, 0x2C, 0xD2, 0x96, 0x88, +0x2D, 0x8B, 0x28, 0x88, 0x2E, 0xB2, 0x78, 0x88, 0x2F, 0x74, 0x45, 0x08, 0x30, 0x92, 0x5A, 0x88, +0x31, 0x5D, 0x61, 0x88, 0x32, 0x72, 0x3C, 0x88, 0x33, 0x3D, 0x43, 0x88, 0x34, 0x52, 0x1E, 0x88, +0x35, 0x1D, 0x25, 0x88, 0x36, 0x32, 0x00, 0x88, 0x36, 0xFD, 0x07, 0x88, 0x38, 0x1B, 0x1D, 0x08, +0x38, 0xDC, 0xE9, 0x88, 0x39, 0xFA, 0xFF, 0x08, 0x3A, 0xBC, 0xCB, 0x88, 0x3B, 0xDA, 0xE1, 0x08, +0x3C, 0xA5, 0xE8, 0x08, 0x3D, 0xBA, 0xC3, 0x08, 0x3E, 0x85, 0xCA, 0x08, 0x3F, 0x9A, 0xA5, 0x08, +0x40, 0x65, 0xAC, 0x08, 0x41, 0x83, 0xC1, 0x88, 0x42, 0x45, 0x8E, 0x08, 0x43, 0x63, 0xA3, 0x88, +0x44, 0x2E, 0xAA, 0x88, 0x45, 0x43, 0x85, 0x88, 0x46, 0x05, 0x52, 0x08, 0x47, 0x23, 0x67, 0x88, +0x47, 0xF7, 0xA9, 0x08, 0x48, 0xE7, 0x9A, 0x08, 0x49, 0xD7, 0x8B, 0x08, 0x4A, 0xC7, 0x7C, 0x08, +0x4B, 0xB7, 0x6D, 0x08, 0x4C, 0xA7, 0x5E, 0x08, 0x4D, 0x97, 0x4F, 0x08, 0x4E, 0x87, 0x40, 0x08, +0x4F, 0x77, 0x31, 0x08, 0x50, 0x70, 0x5C, 0x88, 0x51, 0x60, 0x4D, 0x88, 0x52, 0x50, 0x3E, 0x88, +0x53, 0x40, 0x2F, 0x88, 0x54, 0x30, 0x20, 0x88, 0x55, 0x20, 0x11, 0x88, 0x56, 0x10, 0x02, 0x88, +0x56, 0xFF, 0xF3, 0x88, 0x57, 0xEF, 0xE4, 0x88, 0x58, 0xDF, 0xD5, 0x88, 0x59, 0xCF, 0xC6, 0x88, +0x5A, 0xBF, 0xB7, 0x88, 0x5B, 0xB8, 0xE3, 0x08, 0x5C, 0xA8, 0xD4, 0x08, 0x5D, 0x98, 0xC5, 0x08, +0x5E, 0x88, 0xB6, 0x08, 0x5F, 0x78, 0xA7, 0x08, 0x60, 0x68, 0x98, 0x08, 0x61, 0x58, 0x89, 0x08, +0x62, 0x48, 0x7A, 0x08, 0x63, 0x38, 0x6B, 0x08, 0x64, 0x28, 0x5C, 0x08, 0x65, 0x18, 0x4D, 0x08, +0x66, 0x11, 0x78, 0x88, 0x67, 0x01, 0x69, 0x88, 0x67, 0xF1, 0x5A, 0x88, 0x68, 0xE1, 0x4B, 0x88, +0x69, 0xD1, 0x3C, 0x88, 0x6A, 0xC1, 0x2D, 0x88, 0x6B, 0xB1, 0x1E, 0x88, 0x6C, 0xA1, 0x0F, 0x88, +0x6D, 0x91, 0x00, 0x88, 0x6E, 0x80, 0xF1, 0x88, 0x6F, 0x70, 0xE2, 0x88, 0x70, 0x6A, 0x0E, 0x08, +0x71, 0x59, 0xFF, 0x08, 0x72, 0x49, 0xF0, 0x08, 0x73, 0x39, 0xE1, 0x08, 0x74, 0x29, 0xD2, 0x08, +0x75, 0x19, 0xC3, 0x08, 0x76, 0x09, 0xB4, 0x08, 0x76, 0xF9, 0xA5, 0x08, 0x77, 0xE9, 0x96, 0x08, +0x78, 0xD9, 0x87, 0x08, 0x79, 0xC9, 0x78, 0x08, 0x7A, 0xB9, 0x69, 0x08, 0x7B, 0xB2, 0x94, 0x88, +0x7C, 0xA2, 0x85, 0x88, 0x7D, 0x92, 0x76, 0x88, 0x7E, 0x82, 0x67, 0x88, 0x7F, 0x72, 0x58, 0x88, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x93, +0xA8, 0x01, 0x00, 0x00, 0x00, 0x85, 0x98, 0x00, 0x00, 0x00, 0x00, 0x93, 0xA8, 0x01, 0x00, 0x00, +0x00, 0x85, 0x98, 0x00, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Australia/Sydney */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xA6, 0x9C, +0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70, 0xCC, 0xB7, 0x56, 0x80, +0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70, 0x03, 0x70, 0x39, 0x80, +0x04, 0x0D, 0x1C, 0x00, 0x05, 0x50, 0x1B, 0x80, 0x05, 0xF6, 0x38, 0x80, 0x07, 0x2F, 0xFD, 0x80, +0x07, 0xD6, 0x1A, 0x80, 0x09, 0x0F, 0xDF, 0x80, 0x09, 0xB5, 0xFC, 0x80, 0x0A, 0xEF, 0xC1, 0x80, +0x0B, 0x9F, 0x19, 0x00, 0x0C, 0xD8, 0xDE, 0x00, 0x0D, 0x7E, 0xFB, 0x00, 0x0E, 0xB8, 0xC0, 0x00, +0x0F, 0x5E, 0xDD, 0x00, 0x10, 0x98, 0xA2, 0x00, 0x11, 0x3E, 0xBF, 0x00, 0x12, 0x78, 0x84, 0x00, +0x13, 0x1E, 0xA1, 0x00, 0x14, 0x58, 0x66, 0x00, 0x14, 0xFE, 0x83, 0x00, 0x16, 0x38, 0x48, 0x00, +0x17, 0x0C, 0x89, 0x80, 0x18, 0x21, 0x64, 0x80, 0x18, 0xC7, 0x81, 0x80, 0x1A, 0x01, 0x46, 0x80, +0x1A, 0xA7, 0x63, 0x80, 0x1B, 0xE1, 0x28, 0x80, 0x1C, 0x87, 0x45, 0x80, 0x1D, 0xC1, 0x0A, 0x80, +0x1E, 0x79, 0x9C, 0x80, 0x1F, 0x97, 0xB2, 0x00, 0x20, 0x59, 0x7E, 0x80, 0x21, 0x80, 0xCE, 0x80, +0x22, 0x42, 0x9B, 0x00, 0x23, 0x69, 0xEB, 0x00, 0x24, 0x22, 0x7D, 0x00, 0x25, 0x49, 0xCD, 0x00, +0x25, 0xEF, 0xEA, 0x00, 0x27, 0x29, 0xAF, 0x00, 0x27, 0xCF, 0xCC, 0x00, 0x29, 0x09, 0x91, 0x00, +0x29, 0xAF, 0xAE, 0x00, 0x2A, 0xE9, 0x73, 0x00, 0x2B, 0x98, 0xCA, 0x80, 0x2C, 0xD2, 0x8F, 0x80, +0x2D, 0x78, 0xAC, 0x80, 0x2E, 0xB2, 0x71, 0x80, 0x2F, 0x58, 0x8E, 0x80, 0x30, 0x92, 0x53, 0x80, +0x31, 0x5D, 0x5A, 0x80, 0x32, 0x72, 0x35, 0x80, 0x33, 0x3D, 0x3C, 0x80, 0x34, 0x52, 0x17, 0x80, +0x35, 0x1D, 0x1E, 0x80, 0x36, 0x31, 0xF9, 0x80, 0x36, 0xFD, 0x00, 0x80, 0x38, 0x1B, 0x16, 0x00, +0x38, 0xDC, 0xE2, 0x80, 0x39, 0xA7, 0xE9, 0x80, 0x3A, 0xBC, 0xC4, 0x80, 0x3B, 0xDA, 0xDA, 0x00, +0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0xBA, 0xBC, 0x00, 0x3E, 0x85, 0xC3, 0x00, 0x3F, 0x9A, 0x9E, 0x00, +0x40, 0x65, 0xA5, 0x00, 0x41, 0x83, 0xBA, 0x80, 0x42, 0x45, 0x87, 0x00, 0x43, 0x63, 0x9C, 0x80, +0x44, 0x2E, 0xA3, 0x80, 0x45, 0x43, 0x7E, 0x80, 0x46, 0x05, 0x4B, 0x00, 0x47, 0x23, 0x60, 0x80, +0x47, 0xF7, 0xA2, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x49, 0xD7, 0x84, 0x00, 0x4A, 0xC7, 0x75, 0x00, +0x4B, 0xB7, 0x66, 0x00, 0x4C, 0xA7, 0x57, 0x00, 0x4D, 0x97, 0x48, 0x00, 0x4E, 0x87, 0x39, 0x00, +0x4F, 0x77, 0x2A, 0x00, 0x50, 0x70, 0x55, 0x80, 0x51, 0x60, 0x46, 0x80, 0x52, 0x50, 0x37, 0x80, +0x53, 0x40, 0x28, 0x80, 0x54, 0x30, 0x19, 0x80, 0x55, 0x20, 0x0A, 0x80, 0x56, 0x0F, 0xFB, 0x80, +0x56, 0xFF, 0xEC, 0x80, 0x57, 0xEF, 0xDD, 0x80, 0x58, 0xDF, 0xCE, 0x80, 0x59, 0xCF, 0xBF, 0x80, +0x5A, 0xBF, 0xB0, 0x80, 0x5B, 0xB8, 0xDC, 0x00, 0x5C, 0xA8, 0xCD, 0x00, 0x5D, 0x98, 0xBE, 0x00, +0x5E, 0x88, 0xAF, 0x00, 0x5F, 0x78, 0xA0, 0x00, 0x60, 0x68, 0x91, 0x00, 0x61, 0x58, 0x82, 0x00, +0x62, 0x48, 0x73, 0x00, 0x63, 0x38, 0x64, 0x00, 0x64, 0x28, 0x55, 0x00, 0x65, 0x18, 0x46, 0x00, +0x66, 0x11, 0x71, 0x80, 0x67, 0x01, 0x62, 0x80, 0x67, 0xF1, 0x53, 0x80, 0x68, 0xE1, 0x44, 0x80, +0x69, 0xD1, 0x35, 0x80, 0x6A, 0xC1, 0x26, 0x80, 0x6B, 0xB1, 0x17, 0x80, 0x6C, 0xA1, 0x08, 0x80, +0x6D, 0x90, 0xF9, 0x80, 0x6E, 0x80, 0xEA, 0x80, 0x6F, 0x70, 0xDB, 0x80, 0x70, 0x6A, 0x07, 0x00, +0x71, 0x59, 0xF8, 0x00, 0x72, 0x49, 0xE9, 0x00, 0x73, 0x39, 0xDA, 0x00, 0x74, 0x29, 0xCB, 0x00, +0x75, 0x19, 0xBC, 0x00, 0x76, 0x09, 0xAD, 0x00, 0x76, 0xF9, 0x9E, 0x00, 0x77, 0xE9, 0x8F, 0x00, +0x78, 0xD9, 0x80, 0x00, 0x79, 0xC9, 0x71, 0x00, 0x7A, 0xB9, 0x62, 0x00, 0x7B, 0xB2, 0x8D, 0x80, +0x7C, 0xA2, 0x7E, 0x80, 0x7D, 0x92, 0x6F, 0x80, 0x7E, 0x82, 0x60, 0x80, 0x7F, 0x72, 0x51, 0x80, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x9A, +0xB0, 0x01, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, +0x00, 0x8C, 0xA0, 0x00, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x55, 0xA7, 0x15, 0x01, 0xF9, 0x65, 0x82, 0x00, 0x00, 0x00, 0x20, 0x4E, 0x65, 0x77, +0x20, 0x53, 0x6F, 0x75, 0x74, 0x68, 0x20, 0x57, 0x61, 0x6C, 0x65, 0x73, 0x20, 0x2D, 0x20, 0x6D, +0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* Australia/Tasmania */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9B, 0xD5, 0x78, 0x80, +0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70, 0xCC, 0xB7, 0x56, 0x80, +0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70, 0xFB, 0xC2, 0x8D, 0x00, +0xFC, 0xB2, 0x7E, 0x00, 0xFD, 0xC7, 0x59, 0x00, 0xFE, 0x76, 0xB0, 0x80, 0xFF, 0xA7, 0x3B, 0x00, +0x00, 0x56, 0x92, 0x80, 0x01, 0x87, 0x1D, 0x00, 0x02, 0x3F, 0xAF, 0x00, 0x03, 0x70, 0x39, 0x80, +0x04, 0x0D, 0x1C, 0x00, 0x05, 0x50, 0x1B, 0x80, 0x05, 0xF6, 0x38, 0x80, 0x07, 0x2F, 0xFD, 0x80, +0x07, 0xD6, 0x1A, 0x80, 0x09, 0x0F, 0xDF, 0x80, 0x09, 0xB5, 0xFC, 0x80, 0x0A, 0xEF, 0xC1, 0x80, +0x0B, 0x9F, 0x19, 0x00, 0x0C, 0xD8, 0xDE, 0x00, 0x0D, 0x7E, 0xFB, 0x00, 0x0E, 0xB8, 0xC0, 0x00, +0x0F, 0x5E, 0xDD, 0x00, 0x10, 0x98, 0xA2, 0x00, 0x11, 0x3E, 0xBF, 0x00, 0x12, 0x78, 0x84, 0x00, +0x13, 0x1E, 0xA1, 0x00, 0x14, 0x58, 0x66, 0x00, 0x14, 0xFE, 0x83, 0x00, 0x16, 0x38, 0x48, 0x00, +0x17, 0x03, 0x4F, 0x00, 0x18, 0x21, 0x64, 0x80, 0x18, 0xE3, 0x31, 0x00, 0x1A, 0x01, 0x46, 0x80, +0x1A, 0xA7, 0x63, 0x80, 0x1B, 0xE1, 0x28, 0x80, 0x1C, 0x87, 0x45, 0x80, 0x1D, 0xC1, 0x0A, 0x80, +0x1E, 0x67, 0x27, 0x80, 0x1F, 0x97, 0xB2, 0x00, 0x20, 0x59, 0x7E, 0x80, 0x21, 0x80, 0xCE, 0x80, +0x22, 0x42, 0x9B, 0x00, 0x23, 0x69, 0xEB, 0x00, 0x24, 0x22, 0x7D, 0x00, 0x25, 0x49, 0xCD, 0x00, +0x26, 0x02, 0x5F, 0x00, 0x27, 0x29, 0xAF, 0x00, 0x27, 0xF4, 0xB6, 0x00, 0x28, 0xED, 0xE1, 0x80, +0x29, 0xD4, 0x98, 0x00, 0x2A, 0xCD, 0xC3, 0x80, 0x2B, 0xB4, 0x7A, 0x00, 0x2C, 0xAD, 0xA5, 0x80, +0x2D, 0x94, 0x5C, 0x00, 0x2E, 0x8D, 0x87, 0x80, 0x2F, 0x74, 0x3E, 0x00, 0x30, 0x6D, 0x69, 0x80, +0x31, 0x5D, 0x5A, 0x80, 0x32, 0x56, 0x86, 0x00, 0x33, 0x3D, 0x3C, 0x80, 0x34, 0x36, 0x68, 0x00, +0x35, 0x1D, 0x1E, 0x80, 0x36, 0x16, 0x4A, 0x00, 0x36, 0xFD, 0x00, 0x80, 0x37, 0xF6, 0x2C, 0x00, +0x38, 0xDC, 0xE2, 0x80, 0x39, 0xA7, 0xE9, 0x80, 0x3A, 0xBC, 0xC4, 0x80, 0x3B, 0xBF, 0x2A, 0x80, +0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0x9F, 0x0C, 0x80, 0x3E, 0x85, 0xC3, 0x00, 0x3F, 0x7E, 0xEE, 0x80, +0x40, 0x65, 0xA5, 0x00, 0x41, 0x5E, 0xD0, 0x80, 0x42, 0x45, 0x87, 0x00, 0x43, 0x3E, 0xB2, 0x80, +0x44, 0x2E, 0xA3, 0x80, 0x45, 0x1E, 0x94, 0x80, 0x46, 0x05, 0x4B, 0x00, 0x47, 0x07, 0xB1, 0x00, +0x47, 0xF7, 0xA2, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x49, 0xD7, 0x84, 0x00, 0x4A, 0xC7, 0x75, 0x00, +0x4B, 0xB7, 0x66, 0x00, 0x4C, 0xA7, 0x57, 0x00, 0x4D, 0x97, 0x48, 0x00, 0x4E, 0x87, 0x39, 0x00, +0x4F, 0x77, 0x2A, 0x00, 0x50, 0x70, 0x55, 0x80, 0x51, 0x60, 0x46, 0x80, 0x52, 0x50, 0x37, 0x80, +0x53, 0x40, 0x28, 0x80, 0x54, 0x30, 0x19, 0x80, 0x55, 0x20, 0x0A, 0x80, 0x56, 0x0F, 0xFB, 0x80, +0x56, 0xFF, 0xEC, 0x80, 0x57, 0xEF, 0xDD, 0x80, 0x58, 0xDF, 0xCE, 0x80, 0x59, 0xCF, 0xBF, 0x80, +0x5A, 0xBF, 0xB0, 0x80, 0x5B, 0xB8, 0xDC, 0x00, 0x5C, 0xA8, 0xCD, 0x00, 0x5D, 0x98, 0xBE, 0x00, +0x5E, 0x88, 0xAF, 0x00, 0x5F, 0x78, 0xA0, 0x00, 0x60, 0x68, 0x91, 0x00, 0x61, 0x58, 0x82, 0x00, +0x62, 0x48, 0x73, 0x00, 0x63, 0x38, 0x64, 0x00, 0x64, 0x28, 0x55, 0x00, 0x65, 0x18, 0x46, 0x00, +0x66, 0x11, 0x71, 0x80, 0x67, 0x01, 0x62, 0x80, 0x67, 0xF1, 0x53, 0x80, 0x68, 0xE1, 0x44, 0x80, +0x69, 0xD1, 0x35, 0x80, 0x6A, 0xC1, 0x26, 0x80, 0x6B, 0xB1, 0x17, 0x80, 0x6C, 0xA1, 0x08, 0x80, +0x6D, 0x90, 0xF9, 0x80, 0x6E, 0x80, 0xEA, 0x80, 0x6F, 0x70, 0xDB, 0x80, 0x70, 0x6A, 0x07, 0x00, +0x71, 0x59, 0xF8, 0x00, 0x72, 0x49, 0xE9, 0x00, 0x73, 0x39, 0xDA, 0x00, 0x74, 0x29, 0xCB, 0x00, +0x75, 0x19, 0xBC, 0x00, 0x76, 0x09, 0xAD, 0x00, 0x76, 0xF9, 0x9E, 0x00, 0x77, 0xE9, 0x8F, 0x00, +0x78, 0xD9, 0x80, 0x00, 0x79, 0xC9, 0x71, 0x00, 0x7A, 0xB9, 0x62, 0x00, 0x7B, 0xB2, 0x8D, 0x80, +0x7C, 0xA2, 0x7E, 0x80, 0x7D, 0x92, 0x6F, 0x80, 0x7E, 0x82, 0x60, 0x80, 0x7F, 0x72, 0x51, 0x80, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, +0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x45, 0x53, 0x54, +0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, +0x80, 0x00, 0x00, 0x00, 0x00, + +/* Australia/Victoria */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xA6, 0x9C, +0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70, 0xCC, 0xB7, 0x56, 0x80, +0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70, 0x03, 0x70, 0x39, 0x80, +0x04, 0x0D, 0x1C, 0x00, 0x05, 0x50, 0x1B, 0x80, 0x05, 0xF6, 0x38, 0x80, 0x07, 0x2F, 0xFD, 0x80, +0x07, 0xD6, 0x1A, 0x80, 0x09, 0x0F, 0xDF, 0x80, 0x09, 0xB5, 0xFC, 0x80, 0x0A, 0xEF, 0xC1, 0x80, +0x0B, 0x9F, 0x19, 0x00, 0x0C, 0xD8, 0xDE, 0x00, 0x0D, 0x7E, 0xFB, 0x00, 0x0E, 0xB8, 0xC0, 0x00, +0x0F, 0x5E, 0xDD, 0x00, 0x10, 0x98, 0xA2, 0x00, 0x11, 0x3E, 0xBF, 0x00, 0x12, 0x78, 0x84, 0x00, +0x13, 0x1E, 0xA1, 0x00, 0x14, 0x58, 0x66, 0x00, 0x14, 0xFE, 0x83, 0x00, 0x16, 0x38, 0x48, 0x00, +0x16, 0xE7, 0x9F, 0x80, 0x18, 0x21, 0x64, 0x80, 0x18, 0xC7, 0x81, 0x80, 0x1A, 0x01, 0x46, 0x80, +0x1A, 0xA7, 0x63, 0x80, 0x1B, 0xE1, 0x28, 0x80, 0x1C, 0x87, 0x45, 0x80, 0x1D, 0xC1, 0x0A, 0x80, +0x1E, 0x79, 0x9C, 0x80, 0x1F, 0x97, 0xB2, 0x00, 0x20, 0x59, 0x7E, 0x80, 0x21, 0x77, 0x94, 0x00, +0x22, 0x42, 0x9B, 0x00, 0x23, 0x69, 0xEB, 0x00, 0x24, 0x22, 0x7D, 0x00, 0x25, 0x49, 0xCD, 0x00, +0x26, 0x02, 0x5F, 0x00, 0x27, 0x29, 0xAF, 0x00, 0x27, 0xCF, 0xCC, 0x00, 0x29, 0x09, 0x91, 0x00, +0x29, 0xAF, 0xAE, 0x00, 0x2A, 0xE9, 0x73, 0x00, 0x2B, 0x98, 0xCA, 0x80, 0x2C, 0xD2, 0x8F, 0x80, +0x2D, 0x78, 0xAC, 0x80, 0x2E, 0xB2, 0x71, 0x80, 0x2F, 0x74, 0x3E, 0x00, 0x30, 0x92, 0x53, 0x80, +0x31, 0x5D, 0x5A, 0x80, 0x32, 0x72, 0x35, 0x80, 0x33, 0x3D, 0x3C, 0x80, 0x34, 0x52, 0x17, 0x80, +0x35, 0x1D, 0x1E, 0x80, 0x36, 0x31, 0xF9, 0x80, 0x36, 0xFD, 0x00, 0x80, 0x38, 0x1B, 0x16, 0x00, +0x38, 0xDC, 0xE2, 0x80, 0x39, 0xA7, 0xE9, 0x80, 0x3A, 0xBC, 0xC4, 0x80, 0x3B, 0xDA, 0xDA, 0x00, +0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0xBA, 0xBC, 0x00, 0x3E, 0x85, 0xC3, 0x00, 0x3F, 0x9A, 0x9E, 0x00, +0x40, 0x65, 0xA5, 0x00, 0x41, 0x83, 0xBA, 0x80, 0x42, 0x45, 0x87, 0x00, 0x43, 0x63, 0x9C, 0x80, +0x44, 0x2E, 0xA3, 0x80, 0x45, 0x43, 0x7E, 0x80, 0x46, 0x05, 0x4B, 0x00, 0x47, 0x23, 0x60, 0x80, +0x47, 0xF7, 0xA2, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x49, 0xD7, 0x84, 0x00, 0x4A, 0xC7, 0x75, 0x00, +0x4B, 0xB7, 0x66, 0x00, 0x4C, 0xA7, 0x57, 0x00, 0x4D, 0x97, 0x48, 0x00, 0x4E, 0x87, 0x39, 0x00, +0x4F, 0x77, 0x2A, 0x00, 0x50, 0x70, 0x55, 0x80, 0x51, 0x60, 0x46, 0x80, 0x52, 0x50, 0x37, 0x80, +0x53, 0x40, 0x28, 0x80, 0x54, 0x30, 0x19, 0x80, 0x55, 0x20, 0x0A, 0x80, 0x56, 0x0F, 0xFB, 0x80, +0x56, 0xFF, 0xEC, 0x80, 0x57, 0xEF, 0xDD, 0x80, 0x58, 0xDF, 0xCE, 0x80, 0x59, 0xCF, 0xBF, 0x80, +0x5A, 0xBF, 0xB0, 0x80, 0x5B, 0xB8, 0xDC, 0x00, 0x5C, 0xA8, 0xCD, 0x00, 0x5D, 0x98, 0xBE, 0x00, +0x5E, 0x88, 0xAF, 0x00, 0x5F, 0x78, 0xA0, 0x00, 0x60, 0x68, 0x91, 0x00, 0x61, 0x58, 0x82, 0x00, +0x62, 0x48, 0x73, 0x00, 0x63, 0x38, 0x64, 0x00, 0x64, 0x28, 0x55, 0x00, 0x65, 0x18, 0x46, 0x00, +0x66, 0x11, 0x71, 0x80, 0x67, 0x01, 0x62, 0x80, 0x67, 0xF1, 0x53, 0x80, 0x68, 0xE1, 0x44, 0x80, +0x69, 0xD1, 0x35, 0x80, 0x6A, 0xC1, 0x26, 0x80, 0x6B, 0xB1, 0x17, 0x80, 0x6C, 0xA1, 0x08, 0x80, +0x6D, 0x90, 0xF9, 0x80, 0x6E, 0x80, 0xEA, 0x80, 0x6F, 0x70, 0xDB, 0x80, 0x70, 0x6A, 0x07, 0x00, +0x71, 0x59, 0xF8, 0x00, 0x72, 0x49, 0xE9, 0x00, 0x73, 0x39, 0xDA, 0x00, 0x74, 0x29, 0xCB, 0x00, +0x75, 0x19, 0xBC, 0x00, 0x76, 0x09, 0xAD, 0x00, 0x76, 0xF9, 0x9E, 0x00, 0x77, 0xE9, 0x8F, 0x00, +0x78, 0xD9, 0x80, 0x00, 0x79, 0xC9, 0x71, 0x00, 0x7A, 0xB9, 0x62, 0x00, 0x7B, 0xB2, 0x8D, 0x80, +0x7C, 0xA2, 0x7E, 0x80, 0x7D, 0x92, 0x6F, 0x80, 0x7E, 0x82, 0x60, 0x80, 0x7F, 0x72, 0x51, 0x80, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x9A, +0xB0, 0x01, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, +0x00, 0x8C, 0xA0, 0x00, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Australia/West */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xC2, 0xBC, +0x9C, 0xBC, 0x3D, 0x10, 0xCB, 0x54, 0xCF, 0x20, 0xCB, 0xC7, 0x73, 0x90, 0xCC, 0xB7, 0x72, 0xA0, +0xCD, 0xA7, 0x55, 0x90, 0x09, 0x0F, 0xFB, 0xA0, 0x09, 0xB6, 0x18, 0xA0, 0x1A, 0x01, 0x62, 0xA0, +0x1A, 0xA7, 0x7F, 0xA0, 0x29, 0x25, 0x5C, 0xA0, 0x29, 0xAF, 0xCA, 0x20, 0x45, 0x71, 0xBF, 0x20, +0x46, 0x05, 0x67, 0x20, 0x47, 0x23, 0x7C, 0xA0, 0x47, 0xEE, 0x83, 0xA0, 0x49, 0x03, 0x5E, 0xA0, +0x49, 0xCE, 0x65, 0xA0, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x00, 0x00, 0x00, 0x70, 0x80, +0x00, 0x00, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x00, 0x57, 0x53, +0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Australia/Yancowinna */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x9C, 0x4E, 0xAD, 0xA4, +0x9C, 0xBC, 0x27, 0xF8, 0xCB, 0x54, 0xBA, 0x08, 0xCB, 0xC7, 0x5E, 0x78, 0xCC, 0xB7, 0x5D, 0x88, +0xCD, 0xA7, 0x40, 0x78, 0xCE, 0xA0, 0x7A, 0x08, 0xCF, 0x87, 0x22, 0x78, 0x03, 0x70, 0x40, 0x88, +0x04, 0x0D, 0x23, 0x08, 0x05, 0x50, 0x22, 0x88, 0x05, 0xF6, 0x3F, 0x88, 0x07, 0x30, 0x04, 0x88, +0x07, 0xD6, 0x21, 0x88, 0x09, 0x0F, 0xE6, 0x88, 0x09, 0xB6, 0x03, 0x88, 0x0A, 0xEF, 0xC8, 0x88, +0x0B, 0x9F, 0x20, 0x08, 0x0C, 0xD8, 0xE5, 0x08, 0x0D, 0x7F, 0x02, 0x08, 0x0E, 0xB8, 0xC7, 0x08, +0x0F, 0x5E, 0xE4, 0x08, 0x10, 0x98, 0xA9, 0x08, 0x11, 0x3E, 0xC6, 0x08, 0x12, 0x78, 0x8B, 0x08, +0x13, 0x1E, 0xA8, 0x08, 0x14, 0x58, 0x6D, 0x08, 0x14, 0xFE, 0x8A, 0x08, 0x16, 0x38, 0x4F, 0x08, +0x17, 0x0C, 0x90, 0x88, 0x18, 0x21, 0x6B, 0x88, 0x18, 0xC7, 0x88, 0x88, 0x1A, 0x01, 0x4D, 0x88, +0x1A, 0xA7, 0x6A, 0x88, 0x1B, 0xE1, 0x2F, 0x88, 0x1C, 0x87, 0x4C, 0x88, 0x1D, 0xC1, 0x11, 0x88, +0x1E, 0x79, 0xA3, 0x88, 0x1F, 0x97, 0xB9, 0x08, 0x20, 0x59, 0x85, 0x88, 0x21, 0x80, 0xD5, 0x88, +0x22, 0x42, 0xA2, 0x08, 0x23, 0x69, 0xF2, 0x08, 0x24, 0x22, 0x84, 0x08, 0x25, 0x49, 0xD4, 0x08, +0x25, 0xEF, 0xF1, 0x08, 0x27, 0x29, 0xB6, 0x08, 0x27, 0xCF, 0xD3, 0x08, 0x29, 0x09, 0x98, 0x08, +0x29, 0xAF, 0xB5, 0x08, 0x2A, 0xE9, 0x7A, 0x08, 0x2B, 0x98, 0xD1, 0x88, 0x2C, 0xD2, 0x96, 0x88, +0x2D, 0x78, 0xB3, 0x88, 0x2E, 0xB2, 0x78, 0x88, 0x2F, 0x58, 0x95, 0x88, 0x30, 0x92, 0x5A, 0x88, +0x31, 0x5D, 0x61, 0x88, 0x32, 0x72, 0x3C, 0x88, 0x33, 0x3D, 0x43, 0x88, 0x34, 0x52, 0x1E, 0x88, +0x35, 0x1D, 0x25, 0x88, 0x36, 0x32, 0x00, 0x88, 0x36, 0xFD, 0x07, 0x88, 0x38, 0x1B, 0x1D, 0x08, +0x38, 0x6C, 0xAF, 0xD8, 0x38, 0xDC, 0xE9, 0x88, 0x39, 0xFA, 0xFF, 0x08, 0x3A, 0xBC, 0xCB, 0x88, +0x3B, 0xDA, 0xE1, 0x08, 0x3C, 0xA5, 0xE8, 0x08, 0x3D, 0xBA, 0xC3, 0x08, 0x3E, 0x85, 0xCA, 0x08, +0x3F, 0x9A, 0xA5, 0x08, 0x40, 0x65, 0xAC, 0x08, 0x41, 0x83, 0xC1, 0x88, 0x42, 0x45, 0x8E, 0x08, +0x43, 0x63, 0xA3, 0x88, 0x44, 0x2E, 0xAA, 0x88, 0x45, 0x43, 0x85, 0x88, 0x46, 0x05, 0x52, 0x08, +0x47, 0x23, 0x67, 0x88, 0x47, 0xF7, 0xA9, 0x08, 0x48, 0xE7, 0x9A, 0x08, 0x49, 0xD7, 0x8B, 0x08, +0x4A, 0xC7, 0x7C, 0x08, 0x4B, 0xB7, 0x6D, 0x08, 0x4C, 0xA7, 0x5E, 0x08, 0x4D, 0x97, 0x4F, 0x08, +0x4E, 0x87, 0x40, 0x08, 0x4F, 0x77, 0x31, 0x08, 0x50, 0x70, 0x5C, 0x88, 0x51, 0x60, 0x4D, 0x88, +0x52, 0x50, 0x3E, 0x88, 0x53, 0x40, 0x2F, 0x88, 0x54, 0x30, 0x20, 0x88, 0x55, 0x20, 0x11, 0x88, +0x56, 0x10, 0x02, 0x88, 0x56, 0xFF, 0xF3, 0x88, 0x57, 0xEF, 0xE4, 0x88, 0x58, 0xDF, 0xD5, 0x88, +0x59, 0xCF, 0xC6, 0x88, 0x5A, 0xBF, 0xB7, 0x88, 0x5B, 0xB8, 0xE3, 0x08, 0x5C, 0xA8, 0xD4, 0x08, +0x5D, 0x98, 0xC5, 0x08, 0x5E, 0x88, 0xB6, 0x08, 0x5F, 0x78, 0xA7, 0x08, 0x60, 0x68, 0x98, 0x08, +0x61, 0x58, 0x89, 0x08, 0x62, 0x48, 0x7A, 0x08, 0x63, 0x38, 0x6B, 0x08, 0x64, 0x28, 0x5C, 0x08, +0x65, 0x18, 0x4D, 0x08, 0x66, 0x11, 0x78, 0x88, 0x67, 0x01, 0x69, 0x88, 0x67, 0xF1, 0x5A, 0x88, +0x68, 0xE1, 0x4B, 0x88, 0x69, 0xD1, 0x3C, 0x88, 0x6A, 0xC1, 0x2D, 0x88, 0x6B, 0xB1, 0x1E, 0x88, +0x6C, 0xA1, 0x0F, 0x88, 0x6D, 0x91, 0x00, 0x88, 0x6E, 0x80, 0xF1, 0x88, 0x6F, 0x70, 0xE2, 0x88, +0x70, 0x6A, 0x0E, 0x08, 0x71, 0x59, 0xFF, 0x08, 0x72, 0x49, 0xF0, 0x08, 0x73, 0x39, 0xE1, 0x08, +0x74, 0x29, 0xD2, 0x08, 0x75, 0x19, 0xC3, 0x08, 0x76, 0x09, 0xB4, 0x08, 0x76, 0xF9, 0xA5, 0x08, +0x77, 0xE9, 0x96, 0x08, 0x78, 0xD9, 0x87, 0x08, 0x79, 0xC9, 0x78, 0x08, 0x7A, 0xB9, 0x69, 0x08, +0x7B, 0xB2, 0x94, 0x88, 0x7C, 0xA2, 0x85, 0x88, 0x7D, 0x92, 0x76, 0x88, 0x7E, 0x82, 0x67, 0x88, +0x7F, 0x72, 0x58, 0x88, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x00, 0x00, 0x93, 0xA8, 0x01, 0x00, 0x00, 0x00, 0x85, 0x98, 0x00, 0x00, 0x00, 0x00, +0x93, 0xA8, 0x01, 0x00, 0x00, 0x00, 0x85, 0x98, 0x00, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, +0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, +0x00, 0x00, + +/* Brazil/Acre */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0xAA, 0x86, 0x90, +0xB8, 0x0F, 0x66, 0x00, 0xB8, 0xFD, 0x5C, 0xC0, 0xB9, 0xF1, 0x50, 0x50, 0xBA, 0xDE, 0x90, 0x40, +0xDA, 0x38, 0xCA, 0x50, 0xDA, 0xEC, 0x16, 0x50, 0xDC, 0x19, 0xFD, 0xD0, 0xDC, 0xB9, 0x75, 0x40, +0xDD, 0xFB, 0x31, 0x50, 0xDE, 0x9B, 0xFA, 0x40, 0xDF, 0xDD, 0xB6, 0x50, 0xE0, 0x54, 0x4F, 0x40, +0xF4, 0x98, 0x1B, 0xD0, 0xF5, 0x05, 0x7A, 0x40, 0xF6, 0xC0, 0x80, 0x50, 0xF7, 0x0E, 0x3A, 0xC0, +0xF8, 0x51, 0x48, 0x50, 0xF8, 0xC7, 0xE1, 0x40, 0xFA, 0x0A, 0xEE, 0xD0, 0xFA, 0xA9, 0x14, 0xC0, +0xFB, 0xEC, 0x22, 0x50, 0xFC, 0x8B, 0x99, 0xC0, 0x1D, 0xC9, 0xAA, 0x50, 0x1E, 0x78, 0xF3, 0xC0, +0x1F, 0xA0, 0x51, 0xD0, 0x20, 0x33, 0xEB, 0xC0, 0x21, 0x81, 0x85, 0x50, 0x22, 0x0B, 0xE4, 0xC0, +0x48, 0x60, 0x7F, 0x50, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x03, 0xFF, 0xFF, 0xC0, 0x70, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, +0xB9, 0xB0, 0x00, 0x09, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x43, +0x53, 0x54, 0x00, 0x41, 0x43, 0x54, 0x00, 0x41, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Brazil/DeNoronha */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x65, 0x64, +0xB8, 0x0F, 0x3B, 0xD0, 0xB8, 0xFD, 0x32, 0x90, 0xB9, 0xF1, 0x26, 0x20, 0xBA, 0xDE, 0x66, 0x10, +0xDA, 0x38, 0xA0, 0x20, 0xDA, 0xEB, 0xEC, 0x20, 0xDC, 0x19, 0xD3, 0xA0, 0xDC, 0xB9, 0x4B, 0x10, +0xDD, 0xFB, 0x07, 0x20, 0xDE, 0x9B, 0xD0, 0x10, 0xDF, 0xDD, 0x8C, 0x20, 0xE0, 0x54, 0x25, 0x10, +0xF4, 0x97, 0xF1, 0xA0, 0xF5, 0x05, 0x50, 0x10, 0xF6, 0xC0, 0x56, 0x20, 0xF7, 0x0E, 0x10, 0x90, +0xF8, 0x51, 0x1E, 0x20, 0xF8, 0xC7, 0xB7, 0x10, 0xFA, 0x0A, 0xC4, 0xA0, 0xFA, 0xA8, 0xEA, 0x90, +0xFB, 0xEB, 0xF8, 0x20, 0xFC, 0x8B, 0x6F, 0x90, 0x1D, 0xC9, 0x80, 0x20, 0x1E, 0x78, 0xC9, 0x90, +0x1F, 0xA0, 0x27, 0xA0, 0x20, 0x33, 0xC1, 0x90, 0x21, 0x81, 0x5B, 0x20, 0x22, 0x0B, 0xBA, 0x90, +0x23, 0x58, 0x02, 0xA0, 0x23, 0xE2, 0x62, 0x10, 0x25, 0x37, 0xE4, 0xA0, 0x25, 0xD4, 0xB9, 0x10, +0x37, 0xF6, 0xB8, 0xA0, 0x38, 0xB8, 0x77, 0x10, 0x39, 0xDF, 0xD5, 0x20, 0x39, 0xE9, 0x01, 0x90, +0x3B, 0xC8, 0xF1, 0xA0, 0x3C, 0x6F, 0x00, 0x90, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, +0xFF, 0xE1, 0x9C, 0x00, 0x00, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, +0x09, 0x4C, 0x4D, 0x54, 0x00, 0x46, 0x4E, 0x53, 0x54, 0x00, 0x46, 0x4E, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + + +/* Brazil/East */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x72, 0xB4, +0xB8, 0x0F, 0x49, 0xE0, 0xB8, 0xFD, 0x40, 0xA0, 0xB9, 0xF1, 0x34, 0x30, 0xBA, 0xDE, 0x74, 0x20, +0xDA, 0x38, 0xAE, 0x30, 0xDA, 0xEB, 0xFA, 0x30, 0xDC, 0x19, 0xE1, 0xB0, 0xDC, 0xB9, 0x59, 0x20, +0xDD, 0xFB, 0x15, 0x30, 0xDE, 0x9B, 0xDE, 0x20, 0xDF, 0xDD, 0x9A, 0x30, 0xE0, 0x54, 0x33, 0x20, +0xF4, 0x5A, 0x09, 0x30, 0xF5, 0x05, 0x5E, 0x20, 0xF6, 0xC0, 0x64, 0x30, 0xF7, 0x0E, 0x1E, 0xA0, +0xF8, 0x51, 0x2C, 0x30, 0xF8, 0xC7, 0xC5, 0x20, 0xFA, 0x0A, 0xD2, 0xB0, 0xFA, 0xA8, 0xF8, 0xA0, +0xFB, 0xEC, 0x06, 0x30, 0xFC, 0x8B, 0x7D, 0xA0, 0x1D, 0xC9, 0x8E, 0x30, 0x1E, 0x78, 0xD7, 0xA0, +0x1F, 0xA0, 0x35, 0xB0, 0x20, 0x33, 0xCF, 0xA0, 0x21, 0x81, 0x69, 0x30, 0x22, 0x0B, 0xC8, 0xA0, +0x23, 0x58, 0x10, 0xB0, 0x23, 0xE2, 0x70, 0x20, 0x25, 0x37, 0xF2, 0xB0, 0x25, 0xD4, 0xC7, 0x20, +0x27, 0x21, 0x0F, 0x30, 0x27, 0xBD, 0xE3, 0xA0, 0x29, 0x00, 0xF1, 0x30, 0x29, 0x94, 0x8B, 0x20, +0x2A, 0xEA, 0x0D, 0xB0, 0x2B, 0x6B, 0x32, 0xA0, 0x2C, 0xC0, 0xB5, 0x30, 0x2D, 0x66, 0xC4, 0x20, +0x2E, 0xA0, 0x97, 0x30, 0x2F, 0x46, 0xA6, 0x20, 0x30, 0x80, 0x79, 0x30, 0x31, 0x1D, 0x4D, 0xA0, +0x32, 0x57, 0x20, 0xB0, 0x33, 0x06, 0x6A, 0x20, 0x34, 0x38, 0x54, 0x30, 0x34, 0xF8, 0xC1, 0x20, +0x36, 0x20, 0x1F, 0x30, 0x36, 0xCF, 0x68, 0xA0, 0x37, 0xF6, 0xC6, 0xB0, 0x38, 0xB8, 0x85, 0x20, +0x39, 0xDF, 0xE3, 0x30, 0x3A, 0x8F, 0x2C, 0xA0, 0x3B, 0xC8, 0xFF, 0xB0, 0x3C, 0x6F, 0x0E, 0xA0, +0x3D, 0xC4, 0x91, 0x30, 0x3E, 0x4E, 0xF0, 0xA0, 0x3F, 0x91, 0xFE, 0x30, 0x40, 0x2E, 0xD2, 0xA0, +0x41, 0x86, 0xF8, 0x30, 0x42, 0x17, 0xEF, 0x20, 0x43, 0x51, 0xC2, 0x30, 0x43, 0xF7, 0xD1, 0x20, +0x45, 0x4D, 0x53, 0xB0, 0x45, 0xE0, 0xED, 0xA0, 0x47, 0x11, 0x86, 0x30, 0x47, 0xB7, 0x95, 0x20, +0x48, 0xFA, 0xA2, 0xB0, 0x49, 0x97, 0x77, 0x20, 0x4A, 0xDA, 0x84, 0xB0, 0x4B, 0x80, 0x93, 0xA0, +0x4C, 0xBA, 0x66, 0xB0, 0x4D, 0x60, 0x75, 0xA0, 0x4E, 0x9A, 0x48, 0xB0, 0x4F, 0x49, 0x92, 0x20, +0x50, 0x83, 0x65, 0x30, 0x51, 0x20, 0x39, 0xA0, 0x52, 0x63, 0x47, 0x30, 0x53, 0x00, 0x1B, 0xA0, +0x54, 0x43, 0x29, 0x30, 0x54, 0xE9, 0x38, 0x20, 0x56, 0x23, 0x0B, 0x30, 0x56, 0xC9, 0x1A, 0x20, +0x58, 0x02, 0xED, 0x30, 0x58, 0xA8, 0xFC, 0x20, 0x59, 0xE2, 0xCF, 0x30, 0x5A, 0x88, 0xDE, 0x20, +0x5B, 0xCB, 0xEB, 0xB0, 0x5C, 0x68, 0xC0, 0x20, 0x5D, 0xAB, 0xCD, 0xB0, 0x5E, 0x48, 0xA2, 0x20, +0x5F, 0x8B, 0xAF, 0xB0, 0x60, 0x31, 0xBE, 0xA0, 0x61, 0x6B, 0x91, 0xB0, 0x62, 0x11, 0xA0, 0xA0, +0x63, 0x4B, 0x73, 0xB0, 0x63, 0xFA, 0xBD, 0x20, 0x65, 0x2B, 0x55, 0xB0, 0x65, 0xD1, 0x64, 0xA0, +0x67, 0x14, 0x72, 0x30, 0x67, 0xB1, 0x46, 0xA0, 0x68, 0xF4, 0x54, 0x30, 0x69, 0x9A, 0x63, 0x20, +0x6A, 0xD4, 0x36, 0x30, 0x6B, 0x7A, 0x45, 0x20, 0x6C, 0xB4, 0x18, 0x30, 0x6D, 0x5A, 0x27, 0x20, +0x6E, 0x93, 0xFA, 0x30, 0x6F, 0x3A, 0x09, 0x20, 0x70, 0x7D, 0x16, 0xB0, 0x71, 0x19, 0xEB, 0x20, +0x72, 0x5C, 0xF8, 0xB0, 0x72, 0xF9, 0xCD, 0x20, 0x74, 0x3C, 0xDA, 0xB0, 0x74, 0xD9, 0xAF, 0x20, +0x76, 0x1C, 0xBC, 0xB0, 0x76, 0xC2, 0xCB, 0xA0, 0x77, 0xFC, 0x9E, 0xB0, 0x78, 0xAB, 0xE8, 0x20, +0x79, 0xDC, 0x80, 0xB0, 0x7A, 0x82, 0x8F, 0xA0, 0x7B, 0xC5, 0x9D, 0x30, 0x7C, 0x62, 0x71, 0xA0, +0x7D, 0xA5, 0x7F, 0x30, 0x7E, 0x4B, 0x8E, 0x20, 0x7F, 0x85, 0x61, 0x30, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xD4, 0x4C, +0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x09, 0x4C, 0x4D, +0x54, 0x00, 0x42, 0x52, 0x53, 0x54, 0x00, 0x42, 0x52, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Brazil/West */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x7F, 0x44, +0xB8, 0x0F, 0x57, 0xF0, 0xB8, 0xFD, 0x4E, 0xB0, 0xB9, 0xF1, 0x42, 0x40, 0xBA, 0xDE, 0x82, 0x30, +0xDA, 0x38, 0xBC, 0x40, 0xDA, 0xEC, 0x08, 0x40, 0xDC, 0x19, 0xEF, 0xC0, 0xDC, 0xB9, 0x67, 0x30, +0xDD, 0xFB, 0x23, 0x40, 0xDE, 0x9B, 0xEC, 0x30, 0xDF, 0xDD, 0xA8, 0x40, 0xE0, 0x54, 0x41, 0x30, +0xF4, 0x98, 0x0D, 0xC0, 0xF5, 0x05, 0x6C, 0x30, 0xF6, 0xC0, 0x72, 0x40, 0xF7, 0x0E, 0x2C, 0xB0, +0xF8, 0x51, 0x3A, 0x40, 0xF8, 0xC7, 0xD3, 0x30, 0xFA, 0x0A, 0xE0, 0xC0, 0xFA, 0xA9, 0x06, 0xB0, +0xFB, 0xEC, 0x14, 0x40, 0xFC, 0x8B, 0x8B, 0xB0, 0x1D, 0xC9, 0x9C, 0x40, 0x1E, 0x78, 0xE5, 0xB0, +0x1F, 0xA0, 0x43, 0xC0, 0x20, 0x33, 0xDD, 0xB0, 0x21, 0x81, 0x77, 0x40, 0x22, 0x0B, 0xD6, 0xB0, +0x2C, 0xC0, 0xC3, 0x40, 0x2D, 0x66, 0xD2, 0x30, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xC7, 0xBC, 0x00, 0x00, 0xFF, 0xFF, 0xD5, +0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x4D, 0x53, +0x54, 0x00, 0x41, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, +0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Canada/Atlantic */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x80, 0xF1, 0xAB, 0xA0, +0x9A, 0xE4, 0xDE, 0xC0, 0x9B, 0xD6, 0x13, 0x30, 0x9E, 0xB8, 0x85, 0x60, 0x9F, 0xBA, 0xDD, 0x50, +0xA2, 0x9D, 0x17, 0x40, 0xA3, 0x30, 0xB1, 0x30, 0xA4, 0x7A, 0x56, 0x40, 0xA5, 0x1B, 0x1F, 0x30, +0xA6, 0x53, 0xA0, 0xC0, 0xA6, 0xFC, 0x52, 0xB0, 0xA8, 0x3C, 0xBD, 0x40, 0xA8, 0xDC, 0x34, 0xB0, +0xAA, 0x1C, 0x9F, 0x40, 0xAA, 0xCD, 0x3A, 0x30, 0xAB, 0xFC, 0x81, 0x40, 0xAC, 0xBF, 0x91, 0x30, +0xAD, 0xEE, 0xD8, 0x40, 0xAE, 0x8C, 0xFE, 0x30, 0xAF, 0xBC, 0x45, 0x40, 0xB0, 0x7F, 0x55, 0x30, +0xB1, 0xAE, 0x9C, 0x40, 0xB2, 0x4B, 0x70, 0xB0, 0xB3, 0x8E, 0x7E, 0x40, 0xB4, 0x24, 0xBB, 0x30, +0xB5, 0x6E, 0x60, 0x40, 0xB6, 0x15, 0xC0, 0xB0, 0xB7, 0x4E, 0x42, 0x40, 0xB8, 0x08, 0x17, 0xB0, +0xB9, 0x24, 0xE9, 0xC0, 0xB9, 0xE7, 0xF9, 0xB0, 0xBB, 0x04, 0xCB, 0xC0, 0xBB, 0xD1, 0x16, 0x30, +0xBD, 0x00, 0x5D, 0x40, 0xBD, 0x9D, 0x31, 0xB0, 0xBE, 0xF2, 0xB4, 0x40, 0xBF, 0x90, 0xDA, 0x30, +0xC0, 0xD3, 0xE7, 0xC0, 0xC1, 0x5E, 0x47, 0x30, 0xC2, 0x8D, 0x8E, 0x40, 0xC3, 0x50, 0x9E, 0x30, +0xC4, 0x6D, 0x70, 0x40, 0xC5, 0x30, 0x80, 0x30, 0xC6, 0x72, 0x3C, 0x40, 0xC7, 0x10, 0x62, 0x30, +0xC8, 0x36, 0x6E, 0xC0, 0xC8, 0xF9, 0x7E, 0xB0, 0xCA, 0x16, 0x50, 0xC0, 0xCA, 0xD9, 0x60, 0xB0, +0xCB, 0x88, 0xE2, 0x60, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xED, 0xD0, 0xD3, 0x75, 0xD6, 0xE0, +0xD4, 0x40, 0xCF, 0xD0, 0xD5, 0x55, 0xB8, 0xE0, 0xD6, 0x20, 0xB1, 0xD0, 0xD7, 0x35, 0x9A, 0xE0, +0xD8, 0x00, 0x93, 0xD0, 0xD9, 0x15, 0x7C, 0xE0, 0xD9, 0xE0, 0x75, 0xD0, 0xDC, 0xDE, 0x7B, 0x60, +0xDD, 0xA9, 0x74, 0x50, 0xDE, 0xBE, 0x5D, 0x60, 0xDF, 0x89, 0x56, 0x50, 0xE0, 0x9E, 0x3F, 0x60, +0xE1, 0x69, 0x38, 0x50, 0xE2, 0x7E, 0x21, 0x60, 0xE3, 0x49, 0x1A, 0x50, 0xE6, 0x47, 0x1F, 0xE0, +0xE7, 0x12, 0x18, 0xD0, 0xE8, 0x27, 0x01, 0xE0, 0xE8, 0xF1, 0xFA, 0xD0, 0xEA, 0x06, 0xE3, 0xE0, +0xEA, 0xD1, 0xDC, 0xD0, 0xEB, 0xE6, 0xC5, 0xE0, 0xEC, 0xB1, 0xBE, 0xD0, 0xF1, 0x8F, 0xA6, 0x60, +0xF2, 0x7F, 0x89, 0x50, 0xF3, 0x6F, 0x88, 0x60, 0xF4, 0x5F, 0x6B, 0x50, 0xF5, 0x4F, 0x6A, 0x60, +0xF6, 0x3F, 0x4D, 0x50, 0xF7, 0x2F, 0x4C, 0x60, 0xF8, 0x28, 0x69, 0xD0, 0xF9, 0x0F, 0x2E, 0x60, +0xFA, 0x08, 0x4B, 0xD0, 0xFA, 0xF8, 0x4A, 0xE0, 0xFB, 0xE8, 0x2D, 0xD0, 0xFC, 0xD8, 0x2C, 0xE0, +0xFD, 0xC8, 0x0F, 0xD0, 0xFE, 0xB8, 0x0E, 0xE0, 0xFF, 0xA7, 0xF1, 0xD0, 0x00, 0x97, 0xF0, 0xE0, +0x01, 0x87, 0xD3, 0xD0, 0x02, 0x77, 0xD2, 0xE0, 0x03, 0x70, 0xF0, 0x50, 0x04, 0x60, 0xEF, 0x60, +0x05, 0x50, 0xD2, 0x50, 0x06, 0x40, 0xD1, 0x60, 0x07, 0x30, 0xB4, 0x50, 0x08, 0x20, 0xB3, 0x60, +0x09, 0x10, 0x96, 0x50, 0x0A, 0x00, 0x95, 0x60, 0x0A, 0xF0, 0x78, 0x50, 0x0B, 0xE0, 0x77, 0x60, +0x0C, 0xD9, 0x94, 0xD0, 0x0D, 0xC0, 0x59, 0x60, 0x0E, 0xB9, 0x76, 0xD0, 0x0F, 0xA9, 0x75, 0xE0, +0x10, 0x99, 0x58, 0xD0, 0x11, 0x89, 0x57, 0xE0, 0x12, 0x79, 0x3A, 0xD0, 0x13, 0x69, 0x39, 0xE0, +0x14, 0x59, 0x1C, 0xD0, 0x15, 0x49, 0x1B, 0xE0, 0x16, 0x38, 0xFE, 0xD0, 0x17, 0x28, 0xFD, 0xE0, +0x18, 0x22, 0x1B, 0x50, 0x19, 0x08, 0xDF, 0xE0, 0x1A, 0x01, 0xFD, 0x50, 0x1A, 0xF1, 0xFC, 0x60, +0x1B, 0xE1, 0xDF, 0x50, 0x1C, 0xD1, 0xDE, 0x60, 0x1D, 0xC1, 0xC1, 0x50, 0x1E, 0xB1, 0xC0, 0x60, +0x1F, 0xA1, 0xA3, 0x50, 0x20, 0x75, 0xF2, 0xE0, 0x21, 0x81, 0x85, 0x50, 0x22, 0x55, 0xD4, 0xE0, +0x23, 0x6A, 0xA1, 0xD0, 0x24, 0x35, 0xB6, 0xE0, 0x25, 0x4A, 0x83, 0xD0, 0x26, 0x15, 0x98, 0xE0, +0x27, 0x2A, 0x65, 0xD0, 0x27, 0xFE, 0xB5, 0x60, 0x29, 0x0A, 0x47, 0xD0, 0x29, 0xDE, 0x97, 0x60, +0x2A, 0xEA, 0x29, 0xD0, 0x2B, 0xBE, 0x79, 0x60, 0x2C, 0xD3, 0x46, 0x50, 0x2D, 0x9E, 0x5B, 0x60, +0x2E, 0xB3, 0x28, 0x50, 0x2F, 0x7E, 0x3D, 0x60, 0x30, 0x93, 0x0A, 0x50, 0x31, 0x67, 0x59, 0xE0, +0x32, 0x72, 0xEC, 0x50, 0x33, 0x47, 0x3B, 0xE0, 0x34, 0x52, 0xCE, 0x50, 0x35, 0x27, 0x1D, 0xE0, +0x36, 0x32, 0xB0, 0x50, 0x37, 0x06, 0xFF, 0xE0, 0x38, 0x1B, 0xCC, 0xD0, 0x38, 0xE6, 0xE1, 0xE0, +0x39, 0xFB, 0xAE, 0xD0, 0x3A, 0xC6, 0xC3, 0xE0, 0x3B, 0xDB, 0x90, 0xD0, 0x3C, 0xAF, 0xE0, 0x60, +0x3D, 0xBB, 0x72, 0xD0, 0x3E, 0x8F, 0xC2, 0x60, 0x3F, 0x9B, 0x54, 0xD0, 0x40, 0x6F, 0xA4, 0x60, +0x41, 0x84, 0x71, 0x50, 0x42, 0x4F, 0x86, 0x60, 0x43, 0x64, 0x53, 0x50, 0x44, 0x2F, 0x68, 0x60, +0x45, 0x44, 0x35, 0x50, 0x45, 0xF3, 0x9A, 0xE0, 0x47, 0x2D, 0x51, 0xD0, 0x47, 0xD3, 0x7C, 0xE0, +0x49, 0x0D, 0x33, 0xD0, 0x49, 0xB3, 0x5E, 0xE0, 0x4A, 0xED, 0x15, 0xD0, 0x4B, 0x9C, 0x7B, 0x60, +0x4C, 0xD6, 0x32, 0x50, 0x4D, 0x7C, 0x5D, 0x60, 0x4E, 0xB6, 0x14, 0x50, 0x4F, 0x5C, 0x3F, 0x60, +0x50, 0x95, 0xF6, 0x50, 0x51, 0x3C, 0x21, 0x60, 0x52, 0x75, 0xD8, 0x50, 0x53, 0x1C, 0x03, 0x60, +0x54, 0x55, 0xBA, 0x50, 0x54, 0xFB, 0xE5, 0x60, 0x56, 0x35, 0x9C, 0x50, 0x56, 0xE5, 0x01, 0xE0, +0x58, 0x1E, 0xB8, 0xD0, 0x58, 0xC4, 0xE3, 0xE0, 0x59, 0xFE, 0x9A, 0xD0, 0x5A, 0xA4, 0xC5, 0xE0, +0x5B, 0xDE, 0x7C, 0xD0, 0x5C, 0x84, 0xA7, 0xE0, 0x5D, 0xBE, 0x5E, 0xD0, 0x5E, 0x64, 0x89, 0xE0, +0x5F, 0x9E, 0x40, 0xD0, 0x60, 0x4D, 0xA6, 0x60, 0x61, 0x87, 0x5D, 0x50, 0x62, 0x2D, 0x88, 0x60, +0x63, 0x67, 0x3F, 0x50, 0x64, 0x0D, 0x6A, 0x60, 0x65, 0x47, 0x21, 0x50, 0x65, 0xED, 0x4C, 0x60, +0x67, 0x27, 0x03, 0x50, 0x67, 0xCD, 0x2E, 0x60, 0x69, 0x06, 0xE5, 0x50, 0x69, 0xAD, 0x10, 0x60, +0x6A, 0xE6, 0xC7, 0x50, 0x6B, 0x96, 0x2C, 0xE0, 0x6C, 0xCF, 0xE3, 0xD0, 0x6D, 0x76, 0x0E, 0xE0, +0x6E, 0xAF, 0xC5, 0xD0, 0x6F, 0x55, 0xF0, 0xE0, 0x70, 0x8F, 0xA7, 0xD0, 0x71, 0x35, 0xD2, 0xE0, +0x72, 0x6F, 0x89, 0xD0, 0x73, 0x15, 0xB4, 0xE0, 0x74, 0x4F, 0x6B, 0xD0, 0x74, 0xFE, 0xD1, 0x60, +0x76, 0x38, 0x88, 0x50, 0x76, 0xDE, 0xB3, 0x60, 0x78, 0x18, 0x6A, 0x50, 0x78, 0xBE, 0x95, 0x60, +0x79, 0xF8, 0x4C, 0x50, 0x7A, 0x9E, 0x77, 0x60, 0x7B, 0xD8, 0x2E, 0x50, 0x7C, 0x7E, 0x59, 0x60, +0x7D, 0xB8, 0x10, 0x50, 0x7E, 0x5E, 0x3B, 0x60, 0x7F, 0x97, 0xF2, 0x50, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0xFF, 0xFF, 0xC4, 0x60, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, +0x00, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x0C, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x10, 0x4C, 0x4D, +0x54, 0x00, 0x41, 0x44, 0x54, 0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x57, 0x54, 0x00, 0x41, 0x50, +0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x89, 0x54, 0x40, +0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Canada/Central */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x01, 0xFB, 0xE0, +0x9B, 0xC3, 0xBA, 0x50, 0x9E, 0xB8, 0xA1, 0x80, 0x9F, 0xBA, 0xF9, 0x70, 0xC2, 0xA0, 0x3B, 0x80, +0xC3, 0x4F, 0x84, 0xF0, 0xCB, 0x88, 0xFE, 0x80, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, +0xD3, 0x88, 0x68, 0x00, 0xD4, 0x53, 0x60, 0xF0, 0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0, +0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, 0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0, +0xDB, 0x00, 0x07, 0x00, 0xDB, 0xC8, 0x5C, 0xF0, 0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, +0xDE, 0xBE, 0x79, 0x80, 0xDF, 0x89, 0x72, 0x70, 0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, +0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, 0xE4, 0x5E, 0x1F, 0x80, 0xE5, 0x29, 0x18, 0x70, +0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x12, 0x34, 0xF0, 0xE8, 0x27, 0x1E, 0x00, 0xE8, 0xF2, 0x16, 0xF0, +0xEA, 0x07, 0x00, 0x00, 0xEA, 0xD1, 0xF8, 0xF0, 0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xD6, 0xC4, 0xF0, +0xED, 0xC6, 0xC4, 0x00, 0xEE, 0x91, 0xBC, 0xF0, 0xF3, 0x6F, 0xA4, 0x80, 0xF4, 0x31, 0x62, 0xF0, +0xF9, 0x0F, 0x4A, 0x80, 0xFA, 0x08, 0x76, 0x00, 0xFA, 0xF8, 0x67, 0x00, 0xFB, 0xE8, 0x58, 0x00, +0xFC, 0xD8, 0x49, 0x00, 0xFD, 0xC8, 0x3A, 0x00, 0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xA8, 0x1C, 0x00, +0x00, 0x98, 0x0D, 0x00, 0x01, 0x87, 0xFE, 0x00, 0x02, 0x77, 0xEF, 0x00, 0x03, 0x71, 0x1A, 0x80, +0x04, 0x61, 0x0B, 0x80, 0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xED, 0x80, 0x07, 0x30, 0xDE, 0x80, +0x08, 0x20, 0xCF, 0x80, 0x09, 0x10, 0xC0, 0x80, 0x0A, 0x00, 0xB1, 0x80, 0x0A, 0xF0, 0xA2, 0x80, +0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x75, 0x80, 0x0E, 0xB9, 0xA1, 0x00, +0x0F, 0xA9, 0x92, 0x00, 0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x74, 0x00, 0x12, 0x79, 0x65, 0x00, +0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x29, 0x00, +0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x45, 0x80, 0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x27, 0x80, +0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xEB, 0x80, +0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xAF, 0x80, +0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0xAE, 0x00, +0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x72, 0x00, +0x29, 0xDE, 0xB3, 0x80, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0x95, 0x80, 0x2C, 0xD3, 0x70, 0x80, +0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x59, 0x80, 0x30, 0x93, 0x34, 0x80, +0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xF8, 0x80, +0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xF7, 0x00, +0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xE0, 0x00, 0x3B, 0xDB, 0xBB, 0x00, +0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x7F, 0x00, +0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x7D, 0x80, +0x43, 0xB7, 0x6F, 0xE0, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, +0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, +0x4A, 0xED, 0x31, 0xF0, 0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, +0x4E, 0xB6, 0x30, 0x70, 0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, +0x52, 0x75, 0xF4, 0x70, 0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, +0x56, 0x35, 0xB8, 0x70, 0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, +0x59, 0xFE, 0xB6, 0xF0, 0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, +0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, +0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, +0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, +0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, +0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, +0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, +0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, +0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, +0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, +0x7F, 0x98, 0x0E, 0x70, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, +0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, +0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, +0x00, 0x04, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, +0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x89, +0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Canada/Eastern */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xB8, 0x93, 0x70, +0x9F, 0xBA, 0xEB, 0x60, 0xA0, 0x87, 0x2E, 0xC8, 0xA1, 0x9A, 0xB1, 0x40, 0xA2, 0x94, 0x06, 0xF0, +0xA3, 0x55, 0xA9, 0x40, 0xA4, 0x86, 0x5D, 0xF0, 0xA5, 0x28, 0x78, 0x60, 0xA6, 0x66, 0x3F, 0xF0, +0xA7, 0x0C, 0x4E, 0xE0, 0xA8, 0x46, 0x21, 0xF0, 0xA8, 0xEC, 0x30, 0xE0, 0xAA, 0x1C, 0xC9, 0x70, +0xAA, 0xD5, 0x4D, 0x60, 0xAB, 0xFC, 0xAB, 0x70, 0xAC, 0xB5, 0x2F, 0x60, 0xAD, 0xDC, 0x8D, 0x70, +0xAE, 0x95, 0x11, 0x60, 0xAF, 0xBC, 0x6F, 0x70, 0xB0, 0x7E, 0x2D, 0xE0, 0xB1, 0x9C, 0x51, 0x70, +0xB2, 0x67, 0x4A, 0x60, 0xB3, 0x7C, 0x33, 0x70, 0xB4, 0x47, 0x2C, 0x60, 0xB5, 0x5C, 0x15, 0x70, +0xB6, 0x27, 0x0E, 0x60, 0xB7, 0x3B, 0xF7, 0x70, 0xB8, 0x06, 0xF0, 0x60, 0xB9, 0x25, 0x13, 0xF0, +0xB9, 0xE6, 0xD2, 0x60, 0xBB, 0x04, 0xF5, 0xF0, 0xBB, 0xCF, 0xEE, 0xE0, 0xBC, 0xE4, 0xD7, 0xF0, +0xBD, 0xAF, 0xD0, 0xE0, 0xBE, 0xC4, 0xB9, 0xF0, 0xBF, 0x8F, 0xB2, 0xE0, 0xC0, 0xA4, 0x9B, 0xF0, +0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0, 0xC4, 0x64, 0x5F, 0xF0, +0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0, 0xC8, 0x2D, 0x5E, 0x70, +0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, 0xD3, 0x75, 0xE4, 0xF0, +0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xAA, 0xD0, 0xD6, 0x20, 0xA3, 0xC0, 0xD7, 0x35, 0x8C, 0xD0, +0xD8, 0x00, 0x85, 0xC0, 0xD9, 0x15, 0x6E, 0xD0, 0xDA, 0x33, 0x76, 0x40, 0xDA, 0xFE, 0xA7, 0x70, +0xDC, 0x13, 0x74, 0x60, 0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, +0xDF, 0x89, 0x64, 0x60, 0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, +0xE3, 0x49, 0x28, 0x60, 0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x29, 0x0A, 0x60, 0xE6, 0x47, 0x2D, 0xF0, +0xE7, 0x12, 0x26, 0xE0, 0xE8, 0x27, 0x0F, 0xF0, 0xE9, 0x16, 0xF2, 0xE0, 0xEA, 0x06, 0xF1, 0xF0, +0xEA, 0xF6, 0xD4, 0xE0, 0xEB, 0xE6, 0xD3, 0xF0, 0xEC, 0xD6, 0xB6, 0xE0, 0xED, 0xC6, 0xB5, 0xF0, +0xEE, 0xBF, 0xD3, 0x60, 0xEF, 0xAF, 0xD2, 0x70, 0xF0, 0x9F, 0xB5, 0x60, 0xF1, 0x8F, 0xB4, 0x70, +0xF2, 0x7F, 0x97, 0x60, 0xF3, 0x6F, 0x96, 0x70, 0xF4, 0x5F, 0x79, 0x60, 0xF5, 0x4F, 0x78, 0x70, +0xF6, 0x3F, 0x5B, 0x60, 0xF7, 0x2F, 0x5A, 0x70, 0xF8, 0x28, 0x77, 0xE0, 0xF9, 0x0F, 0x3C, 0x70, +0xFA, 0x08, 0x59, 0xE0, 0xFA, 0xF8, 0x58, 0xF0, 0xFB, 0xE8, 0x3B, 0xE0, 0xFC, 0xD8, 0x3A, 0xF0, +0xFD, 0xC8, 0x1D, 0xE0, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, +0x01, 0x87, 0xE1, 0xE0, 0x02, 0x77, 0xE0, 0xF0, 0x03, 0x70, 0xFE, 0x60, 0x04, 0x60, 0xFD, 0x70, +0x05, 0x50, 0xE0, 0x60, 0x06, 0x40, 0xDF, 0x70, 0x07, 0x30, 0xC2, 0x60, 0x08, 0x20, 0xC1, 0x70, +0x09, 0x10, 0xA4, 0x60, 0x0A, 0x00, 0xA3, 0x70, 0x0A, 0xF0, 0x86, 0x60, 0x0B, 0xE0, 0x85, 0x70, +0x0C, 0xD9, 0xA2, 0xE0, 0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, 0x0F, 0xA9, 0x83, 0xF0, +0x10, 0x99, 0x66, 0xE0, 0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, 0x13, 0x69, 0x47, 0xF0, +0x14, 0x59, 0x2A, 0xE0, 0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, 0x17, 0x29, 0x0B, 0xF0, +0x18, 0x22, 0x29, 0x60, 0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, 0x1A, 0xF2, 0x0A, 0x70, +0x1B, 0xE1, 0xED, 0x60, 0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, 0x1E, 0xB1, 0xCE, 0x70, +0x1F, 0xA1, 0xB1, 0x60, 0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, 0x22, 0x55, 0xE2, 0xF0, +0x23, 0x6A, 0xAF, 0xE0, 0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, 0x26, 0x15, 0xA6, 0xF0, +0x27, 0x2A, 0x73, 0xE0, 0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, 0x29, 0xDE, 0xA5, 0x70, +0x2A, 0xEA, 0x37, 0xE0, 0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, 0x2D, 0x9E, 0x69, 0x70, +0x2E, 0xB3, 0x36, 0x60, 0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x67, 0xF0, +0x32, 0x72, 0xFA, 0x60, 0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, +0x36, 0x32, 0xBE, 0x60, 0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, 0x38, 0xE6, 0xEF, 0xF0, +0x39, 0xFB, 0xBC, 0xE0, 0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, +0x3D, 0xBB, 0x80, 0xE0, 0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, +0x41, 0x84, 0x7F, 0x60, 0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, +0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, +0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, +0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, +0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, +0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, +0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, +0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, +0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, +0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, +0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, +0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, +0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, +0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, +0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, +0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, +0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, +0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0x45, 0x44, 0x54, 0x00, +0x45, 0x53, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x45, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + + +/* Canada/East-Saskatchewan */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x86, 0xFD, 0x93, 0x1C, +0x9E, 0xB8, 0xAF, 0x90, 0x9F, 0xBB, 0x07, 0x80, 0xB5, 0x65, 0x4F, 0xF0, 0xB6, 0x30, 0x48, 0xE0, +0xB7, 0x45, 0x31, 0xF0, 0xB8, 0x10, 0x2A, 0xE0, 0xB9, 0x25, 0x13, 0xF0, 0xB9, 0xF0, 0x0C, 0xE0, +0xBB, 0x0E, 0x30, 0x70, 0xBB, 0xCF, 0xEE, 0xE0, 0xBC, 0xEE, 0x12, 0x70, 0xBD, 0xB9, 0x0B, 0x60, +0xC2, 0x72, 0x08, 0xF0, 0xC3, 0x61, 0xEB, 0xE0, 0xC4, 0x51, 0xEA, 0xF0, 0xC5, 0x38, 0x93, 0x60, +0xC6, 0x31, 0xCC, 0xF0, 0xC7, 0x21, 0xAF, 0xE0, 0xC8, 0x1A, 0xE9, 0x70, 0xC9, 0x0A, 0xCC, 0x60, +0xC9, 0xFA, 0xCB, 0x70, 0xCA, 0xEA, 0xAE, 0x60, 0xCB, 0x89, 0x0C, 0x90, 0xD2, 0x23, 0xF4, 0x70, +0xD2, 0x61, 0x18, 0x00, 0xD3, 0x63, 0x8C, 0x10, 0xD4, 0x53, 0x6F, 0x00, 0xD5, 0x55, 0xE3, 0x10, +0xD6, 0x20, 0xDC, 0x00, 0xD7, 0x35, 0xC5, 0x10, 0xD8, 0x00, 0xBE, 0x00, 0xD9, 0x15, 0xA7, 0x10, +0xD9, 0xE0, 0xA0, 0x00, 0xDA, 0xFE, 0xC3, 0x90, 0xDB, 0xC0, 0x82, 0x00, 0xDC, 0xDE, 0xA5, 0x90, +0xDD, 0xA9, 0x9E, 0x80, 0xDE, 0xBE, 0x87, 0x90, 0xDF, 0x89, 0x80, 0x80, 0xE0, 0x9E, 0x69, 0x90, +0xE1, 0x69, 0x62, 0x80, 0xE2, 0x7E, 0x4B, 0x90, 0xE3, 0x49, 0x44, 0x80, 0xE4, 0x5E, 0x2D, 0x90, +0xE5, 0x29, 0x26, 0x80, 0xE6, 0x47, 0x4A, 0x10, 0xE7, 0x12, 0x43, 0x00, 0xE8, 0x27, 0x2C, 0x10, +0xE8, 0xF2, 0x25, 0x00, 0xEB, 0xE6, 0xF0, 0x10, 0xEC, 0xD6, 0xD3, 0x00, 0xED, 0xC6, 0xD2, 0x10, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x05, 0xFF, 0xFF, 0x9D, 0xE4, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, +0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xAB, +0xA0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x44, 0x54, +0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x43, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Canada/Mountain */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x88, 0xDE, 0xCE, 0xE0, +0x9E, 0xB8, 0xAF, 0x90, 0x9F, 0xBB, 0x07, 0x80, 0xA0, 0x98, 0x91, 0x90, 0xA0, 0xD2, 0x85, 0x80, +0xA2, 0x8A, 0xE8, 0x90, 0xA3, 0x84, 0x06, 0x00, 0xA4, 0x6A, 0xCA, 0x90, 0xA5, 0x35, 0xC3, 0x80, +0xA6, 0x53, 0xE7, 0x10, 0xA7, 0x15, 0xA5, 0x80, 0xA8, 0x33, 0xC9, 0x10, 0xA8, 0xFE, 0xC2, 0x00, +0xCB, 0x89, 0x0C, 0x90, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xD5, 0x55, 0xE3, 0x10, +0xD6, 0x20, 0xDC, 0x00, 0xFA, 0xF8, 0x75, 0x10, 0xFB, 0xE8, 0x58, 0x00, 0xFE, 0xB8, 0x39, 0x10, +0xFF, 0xA8, 0x1C, 0x00, 0x04, 0x61, 0x19, 0x90, 0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90, +0x07, 0x30, 0xDE, 0x80, 0x08, 0x20, 0xDD, 0x90, 0x09, 0x10, 0xC0, 0x80, 0x0A, 0x00, 0xBF, 0x90, +0x0A, 0xF0, 0xA2, 0x80, 0x0B, 0xE0, 0xA1, 0x90, 0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90, +0x0E, 0xB9, 0xA1, 0x00, 0x0F, 0xA9, 0xA0, 0x10, 0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10, +0x12, 0x79, 0x65, 0x00, 0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, +0x16, 0x39, 0x29, 0x00, 0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, +0x1A, 0x02, 0x27, 0x80, 0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, +0x1D, 0xC1, 0xEB, 0x80, 0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, +0x21, 0x81, 0xAF, 0x80, 0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, +0x25, 0x4A, 0xAE, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, +0x29, 0x0A, 0x72, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, +0x2C, 0xD3, 0x70, 0x80, 0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, +0x30, 0x93, 0x34, 0x80, 0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, +0x34, 0x52, 0xF8, 0x80, 0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, +0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, +0x3B, 0xDB, 0xBB, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, +0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, +0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, +0x47, 0x2D, 0x7C, 0x00, 0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, +0x4A, 0xED, 0x40, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, +0x4E, 0xB6, 0x3E, 0x80, 0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, +0x52, 0x76, 0x02, 0x80, 0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, +0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, +0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, +0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, +0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, +0x65, 0x47, 0x4B, 0x80, 0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, +0x69, 0x07, 0x0F, 0x80, 0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, +0x6C, 0xD0, 0x0E, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, +0x70, 0x8F, 0xD2, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, +0x74, 0x4F, 0x96, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, +0x78, 0x18, 0x94, 0x80, 0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, +0x7B, 0xD8, 0x58, 0x80, 0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, +0x7F, 0x98, 0x1C, 0x80, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, +0x95, 0xA0, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x08, +0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, +0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Canada/Newfoundland */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xEE, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x9C, 0xCF, 0x62, 0x0C, +0x9D, 0xA4, 0xE6, 0xFC, 0x9E, 0xB8, 0x7E, 0x8C, 0x9F, 0xBA, 0xD6, 0x7C, 0xA0, 0xB6, 0x88, 0xDC, +0xA1, 0x38, 0xFF, 0x4C, 0xA2, 0x95, 0x19, 0x5C, 0xA3, 0x84, 0xFC, 0x4C, 0xA4, 0x74, 0xFB, 0x5C, +0xA5, 0x64, 0xDE, 0x4C, 0xA6, 0x5E, 0x17, 0xDC, 0xA7, 0x44, 0xC0, 0x4C, 0xA8, 0x3D, 0xF9, 0xDC, +0xA9, 0x24, 0xA2, 0x4C, 0xAA, 0x1D, 0xDB, 0xDC, 0xAB, 0x04, 0x84, 0x4C, 0xAB, 0xFD, 0xBD, 0xDC, +0xAC, 0xE4, 0x66, 0x4C, 0xAD, 0xDD, 0x9F, 0xDC, 0xAE, 0xCD, 0x82, 0xCC, 0xAF, 0xBD, 0x81, 0xDC, +0xB0, 0xAD, 0x64, 0xCC, 0xB1, 0xA6, 0x9E, 0x5C, 0xB2, 0x8D, 0x46, 0xCC, 0xB3, 0x86, 0x80, 0x5C, +0xB4, 0x6D, 0x28, 0xCC, 0xB5, 0x66, 0x62, 0x5C, 0xB6, 0x4D, 0x0A, 0xCC, 0xB7, 0x46, 0x44, 0x5C, +0xB8, 0x2C, 0xEC, 0xCC, 0xB9, 0x26, 0x26, 0x5C, 0xBA, 0x16, 0x09, 0x4C, 0xBB, 0x0F, 0x42, 0xDC, +0xBB, 0xF5, 0xEB, 0x4C, 0xBC, 0xEF, 0x24, 0xDC, 0xBD, 0xD5, 0xCD, 0x4C, 0xBE, 0x9E, 0x4D, 0x6C, +0xBE, 0xCF, 0x06, 0xA8, 0xBF, 0xB5, 0xAF, 0x18, 0xC0, 0xB8, 0x31, 0x38, 0xC1, 0x79, 0xEF, 0xA8, +0xC2, 0x98, 0x13, 0x38, 0xC3, 0x59, 0xD1, 0xA8, 0xC4, 0x77, 0xF5, 0x38, 0xC5, 0x39, 0xB3, 0xA8, +0xC6, 0x61, 0x11, 0xB8, 0xC7, 0x19, 0x95, 0xA8, 0xC8, 0x40, 0xF3, 0xB8, 0xC9, 0x02, 0xB2, 0x28, +0xCA, 0x20, 0xD5, 0xB8, 0xCA, 0xE2, 0x94, 0x28, 0xCC, 0x00, 0xB7, 0xB8, 0xD2, 0x23, 0xF4, 0x70, +0xD2, 0x60, 0xE6, 0xC8, 0xD3, 0x88, 0x44, 0xD8, 0xD4, 0x4A, 0x03, 0x48, 0xD5, 0x68, 0x26, 0xD8, +0xD6, 0x29, 0xE5, 0x48, 0xD7, 0x48, 0x08, 0xD8, 0xD8, 0x09, 0xC7, 0x48, 0xD9, 0x27, 0xEA, 0xD8, +0xD9, 0xE9, 0xA9, 0x48, 0xDB, 0x11, 0x07, 0x58, 0xDB, 0xD2, 0xC5, 0xC8, 0xDC, 0xDE, 0x74, 0x58, +0xDD, 0xA9, 0x6D, 0x48, 0xDE, 0xBE, 0x56, 0x58, 0xDF, 0x89, 0x4F, 0x48, 0xE0, 0x9E, 0x38, 0x58, +0xE1, 0x69, 0x31, 0x48, 0xE2, 0x7E, 0x1A, 0x58, 0xE3, 0x49, 0x13, 0x48, 0xE4, 0x5D, 0xFC, 0x58, +0xE5, 0x28, 0xF5, 0x48, 0xE6, 0x47, 0x18, 0xD8, 0xE7, 0x12, 0x11, 0xC8, 0xE8, 0x26, 0xFA, 0xD8, +0xE8, 0xF1, 0xF3, 0xC8, 0xEA, 0x06, 0xDC, 0xD8, 0xEA, 0xD1, 0xD5, 0xC8, 0xEB, 0xE6, 0xBE, 0xD8, +0xEC, 0xB1, 0xB7, 0xC8, 0xED, 0xC6, 0xA0, 0xD8, 0xEE, 0xBF, 0xBE, 0x48, 0xEF, 0xAF, 0xBD, 0x58, +0xF0, 0x9F, 0xA0, 0x48, 0xF1, 0x8F, 0x9F, 0x58, 0xF2, 0x7F, 0x82, 0x48, 0xF3, 0x6F, 0x81, 0x58, +0xF4, 0x5F, 0x64, 0x48, 0xF5, 0x4F, 0x63, 0x58, 0xF6, 0x3F, 0x46, 0x48, 0xF7, 0x2F, 0x45, 0x58, +0xF8, 0x28, 0x62, 0xC8, 0xF9, 0x0F, 0x27, 0x58, 0xFA, 0x08, 0x44, 0xC8, 0xFA, 0xF8, 0x43, 0xD8, +0xFB, 0xE8, 0x26, 0xC8, 0xFC, 0xD8, 0x25, 0xD8, 0xFD, 0xC8, 0x08, 0xC8, 0xFE, 0xB8, 0x07, 0xD8, +0xFF, 0xA7, 0xEA, 0xC8, 0x00, 0x97, 0xE9, 0xD8, 0x01, 0x87, 0xCC, 0xC8, 0x02, 0x77, 0xCB, 0xD8, +0x03, 0x70, 0xE9, 0x48, 0x04, 0x60, 0xE8, 0x58, 0x05, 0x50, 0xCB, 0x48, 0x06, 0x40, 0xCA, 0x58, +0x07, 0x30, 0xAD, 0x48, 0x08, 0x20, 0xAC, 0x58, 0x09, 0x10, 0x8F, 0x48, 0x0A, 0x00, 0x8E, 0x58, +0x0A, 0xF0, 0x71, 0x48, 0x0B, 0xE0, 0x70, 0x58, 0x0C, 0xD9, 0x8D, 0xC8, 0x0D, 0xC0, 0x52, 0x58, +0x0E, 0xB9, 0x6F, 0xC8, 0x0F, 0xA9, 0x6E, 0xD8, 0x10, 0x99, 0x51, 0xC8, 0x11, 0x89, 0x50, 0xD8, +0x12, 0x79, 0x33, 0xC8, 0x13, 0x69, 0x32, 0xD8, 0x14, 0x59, 0x15, 0xC8, 0x15, 0x49, 0x14, 0xD8, +0x16, 0x38, 0xF7, 0xC8, 0x17, 0x28, 0xF6, 0xD8, 0x18, 0x22, 0x14, 0x48, 0x19, 0x08, 0xD8, 0xD8, +0x1A, 0x01, 0xF6, 0x48, 0x1A, 0xF1, 0xF5, 0x58, 0x1B, 0xE1, 0xD8, 0x48, 0x1C, 0xD1, 0xD7, 0x58, +0x1D, 0xC1, 0xBA, 0x48, 0x1E, 0xB1, 0xB9, 0x58, 0x1F, 0xA1, 0x9C, 0x48, 0x20, 0x75, 0xCF, 0xF4, +0x21, 0x81, 0x62, 0x64, 0x22, 0x55, 0xB1, 0xF4, 0x23, 0x6A, 0x70, 0xD4, 0x24, 0x35, 0x93, 0xF4, +0x25, 0x4A, 0x60, 0xE4, 0x26, 0x15, 0x75, 0xF4, 0x27, 0x2A, 0x42, 0xE4, 0x27, 0xFE, 0x92, 0x74, +0x29, 0x0A, 0x24, 0xE4, 0x29, 0xDE, 0x74, 0x74, 0x2A, 0xEA, 0x06, 0xE4, 0x2B, 0xBE, 0x56, 0x74, +0x2C, 0xD3, 0x23, 0x64, 0x2D, 0x9E, 0x38, 0x74, 0x2E, 0xB3, 0x05, 0x64, 0x2F, 0x7E, 0x1A, 0x74, +0x30, 0x92, 0xE7, 0x64, 0x31, 0x67, 0x36, 0xF4, 0x32, 0x72, 0xC9, 0x64, 0x33, 0x47, 0x18, 0xF4, +0x34, 0x52, 0xAB, 0x64, 0x35, 0x26, 0xFA, 0xF4, 0x36, 0x32, 0x8D, 0x64, 0x37, 0x06, 0xDC, 0xF4, +0x38, 0x1B, 0xA9, 0xE4, 0x38, 0xE6, 0xBE, 0xF4, 0x39, 0xFB, 0x8B, 0xE4, 0x3A, 0xC6, 0xA0, 0xF4, +0x3B, 0xDB, 0x6D, 0xE4, 0x3C, 0xAF, 0xBD, 0x74, 0x3D, 0xBB, 0x4F, 0xE4, 0x3E, 0x8F, 0x9F, 0x74, +0x3F, 0x9B, 0x31, 0xE4, 0x40, 0x6F, 0x81, 0x74, 0x41, 0x84, 0x4E, 0x64, 0x42, 0x4F, 0x63, 0x74, +0x43, 0x64, 0x30, 0x64, 0x44, 0x2F, 0x45, 0x74, 0x45, 0x44, 0x12, 0x64, 0x45, 0xF3, 0x77, 0xF4, +0x47, 0x2D, 0x2E, 0xE4, 0x47, 0xD3, 0x59, 0xF4, 0x49, 0x0D, 0x10, 0xE4, 0x49, 0xB3, 0x3B, 0xF4, +0x4A, 0xEC, 0xF2, 0xE4, 0x4B, 0x9C, 0x58, 0x74, 0x4C, 0xD6, 0x0F, 0x64, 0x4D, 0x7C, 0x3A, 0x74, +0x4E, 0xB6, 0x0D, 0x48, 0x4F, 0x5C, 0x38, 0x58, 0x50, 0x95, 0xEF, 0x48, 0x51, 0x3C, 0x1A, 0x58, +0x52, 0x75, 0xD1, 0x48, 0x53, 0x1B, 0xFC, 0x58, 0x54, 0x55, 0xB3, 0x48, 0x54, 0xFB, 0xDE, 0x58, +0x56, 0x35, 0x95, 0x48, 0x56, 0xE4, 0xFA, 0xD8, 0x58, 0x1E, 0xB1, 0xC8, 0x58, 0xC4, 0xDC, 0xD8, +0x59, 0xFE, 0x93, 0xC8, 0x5A, 0xA4, 0xBE, 0xD8, 0x5B, 0xDE, 0x75, 0xC8, 0x5C, 0x84, 0xA0, 0xD8, +0x5D, 0xBE, 0x57, 0xC8, 0x5E, 0x64, 0x82, 0xD8, 0x5F, 0x9E, 0x39, 0xC8, 0x60, 0x4D, 0x9F, 0x58, +0x61, 0x87, 0x56, 0x48, 0x62, 0x2D, 0x81, 0x58, 0x63, 0x67, 0x38, 0x48, 0x64, 0x0D, 0x63, 0x58, +0x65, 0x47, 0x1A, 0x48, 0x65, 0xED, 0x45, 0x58, 0x67, 0x26, 0xFC, 0x48, 0x67, 0xCD, 0x27, 0x58, +0x69, 0x06, 0xDE, 0x48, 0x69, 0xAD, 0x09, 0x58, 0x6A, 0xE6, 0xC0, 0x48, 0x6B, 0x96, 0x25, 0xD8, +0x6C, 0xCF, 0xDC, 0xC8, 0x6D, 0x76, 0x07, 0xD8, 0x6E, 0xAF, 0xBE, 0xC8, 0x6F, 0x55, 0xE9, 0xD8, +0x70, 0x8F, 0xA0, 0xC8, 0x71, 0x35, 0xCB, 0xD8, 0x72, 0x6F, 0x82, 0xC8, 0x73, 0x15, 0xAD, 0xD8, +0x74, 0x4F, 0x64, 0xC8, 0x74, 0xFE, 0xCA, 0x58, 0x76, 0x38, 0x81, 0x48, 0x76, 0xDE, 0xAC, 0x58, +0x78, 0x18, 0x63, 0x48, 0x78, 0xBE, 0x8E, 0x58, 0x79, 0xF8, 0x45, 0x48, 0x7A, 0x9E, 0x70, 0x58, +0x7B, 0xD8, 0x27, 0x48, 0x7C, 0x7E, 0x52, 0x58, 0x7D, 0xB8, 0x09, 0x48, 0x7E, 0x5E, 0x34, 0x58, +0x7F, 0x97, 0xEB, 0x48, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x06, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0xFF, 0xFF, 0xDC, 0xA4, 0x01, 0x00, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x04, 0xFF, 0xFF, +0xDC, 0xD8, 0x01, 0x00, 0xFF, 0xFF, 0xCE, 0xC8, 0x00, 0x04, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x08, +0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x0C, 0xFF, 0xFF, 0xEA, 0xE8, 0x01, 0x10, 0x4E, 0x44, 0x54, 0x00, +0x4E, 0x53, 0x54, 0x00, 0x4E, 0x50, 0x54, 0x00, 0x4E, 0x57, 0x54, 0x00, 0x4E, 0x44, 0x44, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Canada/Pacific */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xB8, 0xBD, 0xA0, +0x9F, 0xBB, 0x15, 0x90, 0xCB, 0x89, 0x1A, 0xA0, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x26, 0x10, +0xD3, 0x76, 0x0F, 0x20, 0xD4, 0x53, 0x7D, 0x10, 0xD5, 0x55, 0xF1, 0x20, 0xD6, 0x20, 0xEA, 0x10, +0xD7, 0x35, 0xD3, 0x20, 0xD8, 0x00, 0xCC, 0x10, 0xD9, 0x15, 0xB5, 0x20, 0xD9, 0xE0, 0xAE, 0x10, +0xDA, 0xFE, 0xD1, 0xA0, 0xDB, 0xC0, 0x90, 0x10, 0xDC, 0xDE, 0xB3, 0xA0, 0xDD, 0xA9, 0xAC, 0x90, +0xDE, 0xBE, 0x95, 0xA0, 0xDF, 0x89, 0x8E, 0x90, 0xE0, 0x9E, 0x77, 0xA0, 0xE1, 0x69, 0x70, 0x90, +0xE2, 0x7E, 0x59, 0xA0, 0xE3, 0x49, 0x52, 0x90, 0xE4, 0x5E, 0x3B, 0xA0, 0xE5, 0x29, 0x34, 0x90, +0xE6, 0x47, 0x58, 0x20, 0xE7, 0x12, 0x51, 0x10, 0xE8, 0x27, 0x3A, 0x20, 0xE8, 0xF2, 0x33, 0x10, +0xEA, 0x07, 0x1C, 0x20, 0xEA, 0xD2, 0x15, 0x10, 0xEB, 0xE6, 0xFE, 0x20, 0xEC, 0xB1, 0xF7, 0x10, +0xED, 0xC6, 0xE0, 0x20, 0xEE, 0x91, 0xD9, 0x10, 0xEF, 0xAF, 0xFC, 0xA0, 0xF0, 0x71, 0xBB, 0x10, +0xF1, 0x8F, 0xDE, 0xA0, 0xF2, 0x7F, 0xC1, 0x90, 0xF3, 0x6F, 0xC0, 0xA0, 0xF4, 0x5F, 0xA3, 0x90, +0xF5, 0x4F, 0xA2, 0xA0, 0xF6, 0x3F, 0x85, 0x90, 0xF7, 0x2F, 0x84, 0xA0, 0xF8, 0x28, 0xA2, 0x10, +0xF9, 0x0F, 0x66, 0xA0, 0xFA, 0x08, 0x84, 0x10, 0xFA, 0xF8, 0x83, 0x20, 0xFB, 0xE8, 0x66, 0x10, +0xFC, 0xD8, 0x65, 0x20, 0xFD, 0xC8, 0x48, 0x10, 0xFE, 0xB8, 0x47, 0x20, 0xFF, 0xA8, 0x2A, 0x10, +0x00, 0x98, 0x29, 0x20, 0x01, 0x88, 0x0C, 0x10, 0x02, 0x78, 0x0B, 0x20, 0x03, 0x71, 0x28, 0x90, +0x04, 0x61, 0x27, 0xA0, 0x05, 0x51, 0x0A, 0x90, 0x06, 0x41, 0x09, 0xA0, 0x07, 0x30, 0xEC, 0x90, +0x08, 0x20, 0xEB, 0xA0, 0x09, 0x10, 0xCE, 0x90, 0x0A, 0x00, 0xCD, 0xA0, 0x0A, 0xF0, 0xB0, 0x90, +0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, +0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x73, 0x10, +0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, +0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, +0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, 0x1D, 0xC1, 0xF9, 0x90, +0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20, 0x21, 0x81, 0xBD, 0x90, +0x22, 0x56, 0x0D, 0x20, 0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20, 0x25, 0x4A, 0xBC, 0x10, +0x26, 0x15, 0xD1, 0x20, 0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0, 0x29, 0x0A, 0x80, 0x10, +0x29, 0xDE, 0xCF, 0xA0, 0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0, 0x2C, 0xD3, 0x7E, 0x90, +0x2D, 0x9E, 0x93, 0xA0, 0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0, 0x30, 0x93, 0x42, 0x90, +0x31, 0x67, 0x92, 0x20, 0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20, 0x34, 0x53, 0x06, 0x90, +0x35, 0x27, 0x56, 0x20, 0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20, 0x38, 0x1C, 0x05, 0x10, +0x38, 0xE7, 0x1A, 0x20, 0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20, 0x3B, 0xDB, 0xC9, 0x10, +0x3C, 0xB0, 0x18, 0xA0, 0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0, 0x3F, 0x9B, 0x8D, 0x10, +0x40, 0x6F, 0xDC, 0xA0, 0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0, 0x43, 0x64, 0x8B, 0x90, +0x44, 0x2F, 0xA0, 0xA0, 0x45, 0x44, 0x6D, 0x90, 0x45, 0xF3, 0xD3, 0x20, 0x47, 0x2D, 0x8A, 0x10, +0x47, 0xD3, 0xB5, 0x20, 0x49, 0x0D, 0x6C, 0x10, 0x49, 0xB3, 0x97, 0x20, 0x4A, 0xED, 0x4E, 0x10, +0x4B, 0x9C, 0xB3, 0xA0, 0x4C, 0xD6, 0x6A, 0x90, 0x4D, 0x7C, 0x95, 0xA0, 0x4E, 0xB6, 0x4C, 0x90, +0x4F, 0x5C, 0x77, 0xA0, 0x50, 0x96, 0x2E, 0x90, 0x51, 0x3C, 0x59, 0xA0, 0x52, 0x76, 0x10, 0x90, +0x53, 0x1C, 0x3B, 0xA0, 0x54, 0x55, 0xF2, 0x90, 0x54, 0xFC, 0x1D, 0xA0, 0x56, 0x35, 0xD4, 0x90, +0x56, 0xE5, 0x3A, 0x20, 0x58, 0x1E, 0xF1, 0x10, 0x58, 0xC5, 0x1C, 0x20, 0x59, 0xFE, 0xD3, 0x10, +0x5A, 0xA4, 0xFE, 0x20, 0x5B, 0xDE, 0xB5, 0x10, 0x5C, 0x84, 0xE0, 0x20, 0x5D, 0xBE, 0x97, 0x10, +0x5E, 0x64, 0xC2, 0x20, 0x5F, 0x9E, 0x79, 0x10, 0x60, 0x4D, 0xDE, 0xA0, 0x61, 0x87, 0x95, 0x90, +0x62, 0x2D, 0xC0, 0xA0, 0x63, 0x67, 0x77, 0x90, 0x64, 0x0D, 0xA2, 0xA0, 0x65, 0x47, 0x59, 0x90, +0x65, 0xED, 0x84, 0xA0, 0x67, 0x27, 0x3B, 0x90, 0x67, 0xCD, 0x66, 0xA0, 0x69, 0x07, 0x1D, 0x90, +0x69, 0xAD, 0x48, 0xA0, 0x6A, 0xE6, 0xFF, 0x90, 0x6B, 0x96, 0x65, 0x20, 0x6C, 0xD0, 0x1C, 0x10, +0x6D, 0x76, 0x47, 0x20, 0x6E, 0xAF, 0xFE, 0x10, 0x6F, 0x56, 0x29, 0x20, 0x70, 0x8F, 0xE0, 0x10, +0x71, 0x36, 0x0B, 0x20, 0x72, 0x6F, 0xC2, 0x10, 0x73, 0x15, 0xED, 0x20, 0x74, 0x4F, 0xA4, 0x10, +0x74, 0xFF, 0x09, 0xA0, 0x76, 0x38, 0xC0, 0x90, 0x76, 0xDE, 0xEB, 0xA0, 0x78, 0x18, 0xA2, 0x90, +0x78, 0xBE, 0xCD, 0xA0, 0x79, 0xF8, 0x84, 0x90, 0x7A, 0x9E, 0xAF, 0xA0, 0x7B, 0xD8, 0x66, 0x90, +0x7C, 0x7E, 0x91, 0xA0, 0x7D, 0xB8, 0x48, 0x90, 0x7E, 0x5E, 0x73, 0xA0, 0x7F, 0x98, 0x2A, 0x90, +0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0x9D, +0x90, 0x01, 0x00, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x08, 0xFF, +0xFF, 0x9D, 0x90, 0x01, 0x0C, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x57, 0x54, +0x00, 0x50, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Canada/Saskatchewan */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x86, 0xFD, 0x93, 0x1C, +0x9E, 0xB8, 0xAF, 0x90, 0x9F, 0xBB, 0x07, 0x80, 0xB5, 0x65, 0x4F, 0xF0, 0xB6, 0x30, 0x48, 0xE0, +0xB7, 0x45, 0x31, 0xF0, 0xB8, 0x10, 0x2A, 0xE0, 0xB9, 0x25, 0x13, 0xF0, 0xB9, 0xF0, 0x0C, 0xE0, +0xBB, 0x0E, 0x30, 0x70, 0xBB, 0xCF, 0xEE, 0xE0, 0xBC, 0xEE, 0x12, 0x70, 0xBD, 0xB9, 0x0B, 0x60, +0xC2, 0x72, 0x08, 0xF0, 0xC3, 0x61, 0xEB, 0xE0, 0xC4, 0x51, 0xEA, 0xF0, 0xC5, 0x38, 0x93, 0x60, +0xC6, 0x31, 0xCC, 0xF0, 0xC7, 0x21, 0xAF, 0xE0, 0xC8, 0x1A, 0xE9, 0x70, 0xC9, 0x0A, 0xCC, 0x60, +0xC9, 0xFA, 0xCB, 0x70, 0xCA, 0xEA, 0xAE, 0x60, 0xCB, 0x89, 0x0C, 0x90, 0xD2, 0x23, 0xF4, 0x70, +0xD2, 0x61, 0x18, 0x00, 0xD3, 0x63, 0x8C, 0x10, 0xD4, 0x53, 0x6F, 0x00, 0xD5, 0x55, 0xE3, 0x10, +0xD6, 0x20, 0xDC, 0x00, 0xD7, 0x35, 0xC5, 0x10, 0xD8, 0x00, 0xBE, 0x00, 0xD9, 0x15, 0xA7, 0x10, +0xD9, 0xE0, 0xA0, 0x00, 0xDA, 0xFE, 0xC3, 0x90, 0xDB, 0xC0, 0x82, 0x00, 0xDC, 0xDE, 0xA5, 0x90, +0xDD, 0xA9, 0x9E, 0x80, 0xDE, 0xBE, 0x87, 0x90, 0xDF, 0x89, 0x80, 0x80, 0xE0, 0x9E, 0x69, 0x90, +0xE1, 0x69, 0x62, 0x80, 0xE2, 0x7E, 0x4B, 0x90, 0xE3, 0x49, 0x44, 0x80, 0xE4, 0x5E, 0x2D, 0x90, +0xE5, 0x29, 0x26, 0x80, 0xE6, 0x47, 0x4A, 0x10, 0xE7, 0x12, 0x43, 0x00, 0xE8, 0x27, 0x2C, 0x10, +0xE8, 0xF2, 0x25, 0x00, 0xEB, 0xE6, 0xF0, 0x10, 0xEC, 0xD6, 0xD3, 0x00, 0xED, 0xC6, 0xD2, 0x10, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x05, 0xFF, 0xFF, 0x9D, 0xE4, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, +0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xAB, +0xA0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x44, 0x54, +0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x43, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Canada/Yukon */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1D, 0x9E, 0xB8, 0xCB, 0xB0, +0x9F, 0xBB, 0x23, 0xA0, 0xA0, 0xD0, 0x0C, 0xB0, 0xA1, 0xA2, 0xD2, 0x80, 0xCB, 0x89, 0x28, 0xB0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x34, 0x20, 0xF7, 0x2F, 0x76, 0x90, 0xF8, 0x28, 0xA2, 0x10, +0xF9, 0x69, 0x1A, 0xB0, 0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, +0x16, 0x39, 0x37, 0x10, 0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, +0x1A, 0x02, 0x35, 0x90, 0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, +0x1D, 0xC1, 0xF9, 0x90, 0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20, +0x21, 0x81, 0xBD, 0x90, 0x22, 0x56, 0x0D, 0x20, 0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20, +0x25, 0x4A, 0xBC, 0x10, 0x26, 0x15, 0xD1, 0x20, 0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0, +0x29, 0x0A, 0x80, 0x10, 0x29, 0xDE, 0xCF, 0xA0, 0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0, +0x2C, 0xD3, 0x7E, 0x90, 0x2D, 0x9E, 0x93, 0xA0, 0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0, +0x30, 0x93, 0x42, 0x90, 0x31, 0x67, 0x92, 0x20, 0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20, +0x34, 0x53, 0x06, 0x90, 0x35, 0x27, 0x56, 0x20, 0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20, +0x38, 0x1C, 0x05, 0x10, 0x38, 0xE7, 0x1A, 0x20, 0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20, +0x3B, 0xDB, 0xC9, 0x10, 0x3C, 0xB0, 0x18, 0xA0, 0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0, +0x3F, 0x9B, 0x8D, 0x10, 0x40, 0x6F, 0xDC, 0xA0, 0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0, +0x43, 0x64, 0x8B, 0x90, 0x44, 0x2F, 0xA0, 0xA0, 0x45, 0x44, 0x6D, 0x90, 0x45, 0xF3, 0xD3, 0x20, +0x47, 0x2D, 0x8A, 0x10, 0x47, 0xD3, 0xB5, 0x20, 0x49, 0x0D, 0x6C, 0x10, 0x49, 0xB3, 0x97, 0x20, +0x4A, 0xED, 0x4E, 0x10, 0x4B, 0x9C, 0xB3, 0xA0, 0x4C, 0xD6, 0x6A, 0x90, 0x4D, 0x7C, 0x95, 0xA0, +0x4E, 0xB6, 0x4C, 0x90, 0x4F, 0x5C, 0x77, 0xA0, 0x50, 0x96, 0x2E, 0x90, 0x51, 0x3C, 0x59, 0xA0, +0x52, 0x76, 0x10, 0x90, 0x53, 0x1C, 0x3B, 0xA0, 0x54, 0x55, 0xF2, 0x90, 0x54, 0xFC, 0x1D, 0xA0, +0x56, 0x35, 0xD4, 0x90, 0x56, 0xE5, 0x3A, 0x20, 0x58, 0x1E, 0xF1, 0x10, 0x58, 0xC5, 0x1C, 0x20, +0x59, 0xFE, 0xD3, 0x10, 0x5A, 0xA4, 0xFE, 0x20, 0x5B, 0xDE, 0xB5, 0x10, 0x5C, 0x84, 0xE0, 0x20, +0x5D, 0xBE, 0x97, 0x10, 0x5E, 0x64, 0xC2, 0x20, 0x5F, 0x9E, 0x79, 0x10, 0x60, 0x4D, 0xDE, 0xA0, +0x61, 0x87, 0x95, 0x90, 0x62, 0x2D, 0xC0, 0xA0, 0x63, 0x67, 0x77, 0x90, 0x64, 0x0D, 0xA2, 0xA0, +0x65, 0x47, 0x59, 0x90, 0x65, 0xED, 0x84, 0xA0, 0x67, 0x27, 0x3B, 0x90, 0x67, 0xCD, 0x66, 0xA0, +0x69, 0x07, 0x1D, 0x90, 0x69, 0xAD, 0x48, 0xA0, 0x6A, 0xE6, 0xFF, 0x90, 0x6B, 0x96, 0x65, 0x20, +0x6C, 0xD0, 0x1C, 0x10, 0x6D, 0x76, 0x47, 0x20, 0x6E, 0xAF, 0xFE, 0x10, 0x6F, 0x56, 0x29, 0x20, +0x70, 0x8F, 0xE0, 0x10, 0x71, 0x36, 0x0B, 0x20, 0x72, 0x6F, 0xC2, 0x10, 0x73, 0x15, 0xED, 0x20, +0x74, 0x4F, 0xA4, 0x10, 0x74, 0xFF, 0x09, 0xA0, 0x76, 0x38, 0xC0, 0x90, 0x76, 0xDE, 0xEB, 0xA0, +0x78, 0x18, 0xA2, 0x90, 0x78, 0xBE, 0xCD, 0xA0, 0x79, 0xF8, 0x84, 0x90, 0x7A, 0x9E, 0xAF, 0xA0, +0x7B, 0xD8, 0x66, 0x90, 0x7C, 0x7E, 0x91, 0xA0, 0x7D, 0xB8, 0x48, 0x90, 0x7E, 0x5E, 0x73, 0xA0, +0x7F, 0x98, 0x2A, 0x90, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x04, 0x01, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x00, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x04, 0xFF, 0xFF, +0x8F, 0x80, 0x01, 0x08, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, +0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x15, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x19, 0x59, 0x44, 0x54, 0x00, +0x59, 0x53, 0x54, 0x00, 0x59, 0x57, 0x54, 0x00, 0x59, 0x50, 0x54, 0x00, 0x59, 0x44, 0x44, 0x54, +0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, +0x00, 0x00, 0x00, + +/* CET */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x0C, 0x17, 0x60, +0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xD9, 0xAE, 0x90, 0x9D, 0xA4, 0xB5, 0x90, 0x9E, 0xB9, 0x90, 0x90, +0x9F, 0x84, 0x97, 0x90, 0xC8, 0x09, 0x71, 0x90, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x82, 0x25, 0x10, 0xD1, 0x72, 0x16, 0x10, +0xD2, 0x4E, 0x40, 0x90, 0x0D, 0xA4, 0x63, 0x90, 0x0E, 0x8B, 0x1A, 0x10, 0x0F, 0x84, 0x45, 0x90, +0x10, 0x74, 0x36, 0x90, 0x11, 0x64, 0x27, 0x90, 0x12, 0x54, 0x18, 0x90, 0x13, 0x4D, 0x44, 0x10, +0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, +0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x43, 0x45, 0x53, 0x54, +0x00, 0x43, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Chile/Continental */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0D, 0x8F, 0x24, 0x69, 0xC6, +0x9B, 0x5C, 0xE5, 0x50, 0x9F, 0x71, 0x05, 0x46, 0xA1, 0x00, 0x71, 0xC0, 0xB0, 0x5E, 0x77, 0xC6, +0xB1, 0x77, 0x3D, 0x40, 0xB2, 0x41, 0x00, 0xD0, 0xB3, 0x58, 0x70, 0xC0, 0xB4, 0x22, 0x34, 0x50, +0xB5, 0x39, 0xA4, 0x40, 0xB6, 0x03, 0x67, 0xD0, 0xB7, 0x1A, 0xD7, 0xC0, 0xB7, 0xE4, 0x9B, 0x50, +0xB8, 0xFD, 0x5C, 0xC0, 0xB9, 0xC7, 0x20, 0x50, 0xCC, 0x1C, 0x6E, 0x40, 0xCC, 0x6C, 0xE7, 0xD0, +0xD4, 0x1B, 0xC9, 0xB0, 0xD5, 0x76, 0xA0, 0x50, 0xFD, 0xD1, 0x3C, 0x40, 0xFE, 0x92, 0xFA, 0xB0, +0xFF, 0xCC, 0xCD, 0xC0, 0x00, 0x72, 0xDC, 0xB0, 0x01, 0x75, 0x50, 0xC0, 0x02, 0x40, 0x49, 0xB0, +0x03, 0x55, 0x32, 0xC0, 0x04, 0x20, 0x2B, 0xB0, 0x05, 0x3E, 0x4F, 0x40, 0x06, 0x00, 0x0D, 0xB0, +0x07, 0x0B, 0xBC, 0x40, 0x07, 0xDF, 0xEF, 0xB0, 0x08, 0xFE, 0x13, 0x40, 0x09, 0xBF, 0xD1, 0xB0, +0x0A, 0xDD, 0xF5, 0x40, 0x0B, 0xA8, 0xEE, 0x30, 0x0C, 0xBD, 0xD7, 0x40, 0x0D, 0x88, 0xD0, 0x30, +0x0E, 0x9D, 0xB9, 0x40, 0x0F, 0x68, 0xB2, 0x30, 0x10, 0x86, 0xD5, 0xC0, 0x11, 0x48, 0x94, 0x30, +0x12, 0x66, 0xB7, 0xC0, 0x13, 0x28, 0x76, 0x30, 0x14, 0x46, 0x99, 0xC0, 0x15, 0x11, 0x92, 0xB0, +0x16, 0x26, 0x7B, 0xC0, 0x16, 0xF1, 0x74, 0xB0, 0x18, 0x06, 0x5D, 0xC0, 0x18, 0xD1, 0x56, 0xB0, +0x19, 0xE6, 0x3F, 0xC0, 0x1A, 0xB1, 0x38, 0xB0, 0x1B, 0xCF, 0x5C, 0x40, 0x1C, 0x91, 0x1A, 0xB0, +0x1D, 0xAF, 0x3E, 0x40, 0x1E, 0x70, 0xFC, 0xB0, 0x1F, 0x8F, 0x20, 0x40, 0x20, 0x7F, 0x03, 0x30, +0x21, 0x6F, 0x02, 0x40, 0x22, 0x39, 0xFB, 0x30, 0x23, 0x45, 0xA9, 0xC0, 0x24, 0x19, 0xDD, 0x30, +0x25, 0x38, 0x00, 0xC0, 0x26, 0x02, 0xF9, 0xB0, 0x26, 0xF2, 0xF8, 0xC0, 0x27, 0xD9, 0xA1, 0x30, +0x28, 0xF7, 0xC4, 0xC0, 0x29, 0xC2, 0xBD, 0xB0, 0x2A, 0xD7, 0xA6, 0xC0, 0x2B, 0xA2, 0x9F, 0xB0, +0x2C, 0xB7, 0x88, 0xC0, 0x2D, 0x82, 0x81, 0xB0, 0x2E, 0x97, 0x6A, 0xC0, 0x2F, 0x62, 0x63, 0xB0, +0x30, 0x80, 0x87, 0x40, 0x31, 0x42, 0x45, 0xB0, 0x32, 0x60, 0x69, 0x40, 0x33, 0x3D, 0xD7, 0x30, +0x34, 0x40, 0x4B, 0x40, 0x35, 0x0B, 0x44, 0x30, 0x36, 0x0D, 0xB8, 0x40, 0x37, 0x06, 0xD5, 0xB0, +0x38, 0x00, 0x0F, 0x40, 0x38, 0xCB, 0x08, 0x30, 0x39, 0xE9, 0x2B, 0xC0, 0x3A, 0xAA, 0xEA, 0x30, +0x3B, 0xC9, 0x0D, 0xC0, 0x3C, 0x8A, 0xCC, 0x30, 0x3D, 0xA8, 0xEF, 0xC0, 0x3E, 0x6A, 0xAE, 0x30, +0x3F, 0x88, 0xD1, 0xC0, 0x40, 0x53, 0xCA, 0xB0, 0x41, 0x68, 0xB3, 0xC0, 0x42, 0x33, 0xAC, 0xB0, +0x43, 0x48, 0x95, 0xC0, 0x44, 0x13, 0x8E, 0xB0, 0x45, 0x31, 0xB2, 0x40, 0x45, 0xF3, 0x70, 0xB0, +0x47, 0x11, 0x94, 0x40, 0x47, 0xEF, 0x02, 0x30, 0x48, 0xF1, 0x76, 0x40, 0x49, 0xBC, 0x6F, 0x30, +0x4A, 0xD1, 0x58, 0x40, 0x4B, 0xB8, 0x00, 0xB0, 0x4C, 0xB1, 0x3A, 0x40, 0x4D, 0xC6, 0x07, 0x30, +0x4E, 0x50, 0x82, 0xC0, 0x4F, 0x9C, 0xAE, 0xB0, 0x50, 0x42, 0xD9, 0xC0, 0x51, 0x3B, 0xF7, 0x30, +0x52, 0x5A, 0x1A, 0xC0, 0x53, 0x1B, 0xD9, 0x30, 0x54, 0x39, 0xFC, 0xC0, 0x55, 0x04, 0xF5, 0xB0, +0x56, 0x19, 0xDE, 0xC0, 0x56, 0xE4, 0xD7, 0xB0, 0x57, 0xF9, 0xC0, 0xC0, 0x58, 0xC4, 0xB9, 0xB0, +0x59, 0xE2, 0xDD, 0x40, 0x5A, 0xA4, 0x9B, 0xB0, 0x5B, 0xC2, 0xBF, 0x40, 0x5C, 0x84, 0x7D, 0xB0, +0x5D, 0xA2, 0xA1, 0x40, 0x5E, 0x6D, 0x9A, 0x30, 0x5F, 0x82, 0x83, 0x40, 0x60, 0x4D, 0x7C, 0x30, +0x61, 0x62, 0x65, 0x40, 0x62, 0x2D, 0x5E, 0x30, 0x63, 0x42, 0x47, 0x40, 0x64, 0x0D, 0x40, 0x30, +0x65, 0x2B, 0x63, 0xC0, 0x65, 0xED, 0x22, 0x30, 0x67, 0x0B, 0x45, 0xC0, 0x67, 0xCD, 0x04, 0x30, +0x68, 0xEB, 0x27, 0xC0, 0x69, 0xB6, 0x20, 0xB0, 0x6A, 0xCB, 0x09, 0xC0, 0x6B, 0x96, 0x02, 0xB0, +0x6C, 0xAA, 0xEB, 0xC0, 0x6D, 0x75, 0xE4, 0xB0, 0x6E, 0x94, 0x08, 0x40, 0x6F, 0x55, 0xC6, 0xB0, +0x70, 0x73, 0xEA, 0x40, 0x71, 0x35, 0xA8, 0xB0, 0x72, 0x53, 0xCC, 0x40, 0x73, 0x15, 0x8A, 0xB0, +0x74, 0x33, 0xAE, 0x40, 0x74, 0xFE, 0xA7, 0x30, 0x76, 0x13, 0x90, 0x40, 0x76, 0xDE, 0x89, 0x30, +0x77, 0xF3, 0x72, 0x40, 0x78, 0xBE, 0x6B, 0x30, 0x79, 0xDC, 0x8E, 0xC0, 0x7A, 0x9E, 0x4D, 0x30, +0x7B, 0xBC, 0x70, 0xC0, 0x7C, 0x7E, 0x2F, 0x30, 0x7D, 0x9C, 0x52, 0xC0, 0x7E, 0x67, 0x4B, 0xB0, +0x7F, 0x7C, 0x34, 0xC0, 0x01, 0x00, 0x02, 0x00, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, +0x03, 0x01, 0x03, 0x04, 0x05, 0x04, 0x02, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0xFF, 0xFF, 0xBD, 0xBA, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0xFF, 0xFF, +0xC7, 0xC0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, +0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, +0x00, 0x04, 0x53, 0x4D, 0x54, 0x00, 0x43, 0x4C, 0x54, 0x00, 0x43, 0x4C, 0x53, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, +0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Chile/EasterIsland */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0F, 0xB9, 0xC7, 0x40, 0x88, +0xCC, 0x1C, 0x6E, 0x40, 0xCC, 0x6C, 0xE7, 0xD0, 0xD4, 0x1B, 0xC9, 0xB0, 0xFD, 0xD1, 0x3C, 0x40, +0xFE, 0x92, 0xFA, 0xB0, 0xFF, 0xCC, 0xCD, 0xC0, 0x00, 0x72, 0xDC, 0xB0, 0x01, 0x75, 0x50, 0xC0, +0x02, 0x40, 0x49, 0xB0, 0x03, 0x55, 0x32, 0xC0, 0x04, 0x20, 0x2B, 0xB0, 0x05, 0x3E, 0x4F, 0x40, +0x06, 0x00, 0x0D, 0xB0, 0x07, 0x0B, 0xBC, 0x40, 0x07, 0xDF, 0xEF, 0xB0, 0x08, 0xFE, 0x13, 0x40, +0x09, 0xBF, 0xD1, 0xB0, 0x0A, 0xDD, 0xF5, 0x40, 0x0B, 0xA8, 0xEE, 0x30, 0x0C, 0xBD, 0xD7, 0x40, +0x0D, 0x88, 0xD0, 0x30, 0x0E, 0x9D, 0xB9, 0x40, 0x0F, 0x68, 0xB2, 0x30, 0x10, 0x86, 0xD5, 0xC0, +0x11, 0x48, 0x94, 0x30, 0x12, 0x66, 0xB7, 0xC0, 0x13, 0x28, 0x76, 0x30, 0x14, 0x46, 0x99, 0xC0, +0x15, 0x11, 0x92, 0xB0, 0x16, 0x26, 0x7B, 0xC0, 0x16, 0xF1, 0x74, 0xB0, 0x18, 0x06, 0x5D, 0xC0, +0x18, 0xD1, 0x56, 0xB0, 0x19, 0xE6, 0x3F, 0xC0, 0x1A, 0xB1, 0x38, 0xB0, 0x1B, 0xCF, 0x5C, 0x40, +0x1C, 0x91, 0x1A, 0xB0, 0x1D, 0xAF, 0x3E, 0x40, 0x1E, 0x70, 0xFC, 0xB0, 0x1F, 0x8F, 0x20, 0x40, +0x20, 0x7F, 0x03, 0x30, 0x21, 0x6F, 0x02, 0x40, 0x22, 0x39, 0xFB, 0x30, 0x23, 0x45, 0xA9, 0xC0, +0x24, 0x19, 0xDD, 0x30, 0x25, 0x38, 0x00, 0xC0, 0x26, 0x02, 0xF9, 0xB0, 0x26, 0xF2, 0xF8, 0xC0, +0x27, 0xD9, 0xA1, 0x30, 0x28, 0xF7, 0xC4, 0xC0, 0x29, 0xC2, 0xBD, 0xB0, 0x2A, 0xD7, 0xA6, 0xC0, +0x2B, 0xA2, 0x9F, 0xB0, 0x2C, 0xB7, 0x88, 0xC0, 0x2D, 0x82, 0x81, 0xB0, 0x2E, 0x97, 0x6A, 0xC0, +0x2F, 0x62, 0x63, 0xB0, 0x30, 0x80, 0x87, 0x40, 0x31, 0x42, 0x45, 0xB0, 0x32, 0x60, 0x69, 0x40, +0x33, 0x3D, 0xD7, 0x30, 0x34, 0x40, 0x4B, 0x40, 0x35, 0x0B, 0x44, 0x30, 0x36, 0x0D, 0xB8, 0x40, +0x37, 0x06, 0xD5, 0xB0, 0x38, 0x00, 0x0F, 0x40, 0x38, 0xCB, 0x08, 0x30, 0x39, 0xE9, 0x2B, 0xC0, +0x3A, 0xAA, 0xEA, 0x30, 0x3B, 0xC9, 0x0D, 0xC0, 0x3C, 0x8A, 0xCC, 0x30, 0x3D, 0xA8, 0xEF, 0xC0, +0x3E, 0x6A, 0xAE, 0x30, 0x3F, 0x88, 0xD1, 0xC0, 0x40, 0x53, 0xCA, 0xB0, 0x41, 0x68, 0xB3, 0xC0, +0x42, 0x33, 0xAC, 0xB0, 0x43, 0x48, 0x95, 0xC0, 0x44, 0x13, 0x8E, 0xB0, 0x45, 0x31, 0xB2, 0x40, +0x45, 0xF3, 0x70, 0xB0, 0x47, 0x11, 0x94, 0x40, 0x47, 0xEF, 0x02, 0x30, 0x48, 0xF1, 0x76, 0x40, +0x49, 0xBC, 0x6F, 0x30, 0x4A, 0xD1, 0x58, 0x40, 0x4B, 0xB8, 0x00, 0xB0, 0x4C, 0xB1, 0x3A, 0x40, +0x4D, 0xC6, 0x07, 0x30, 0x4E, 0x50, 0x82, 0xC0, 0x4F, 0x9C, 0xAE, 0xB0, 0x50, 0x42, 0xD9, 0xC0, +0x51, 0x3B, 0xF7, 0x30, 0x52, 0x5A, 0x1A, 0xC0, 0x53, 0x1B, 0xD9, 0x30, 0x54, 0x39, 0xFC, 0xC0, +0x55, 0x04, 0xF5, 0xB0, 0x56, 0x19, 0xDE, 0xC0, 0x56, 0xE4, 0xD7, 0xB0, 0x57, 0xF9, 0xC0, 0xC0, +0x58, 0xC4, 0xB9, 0xB0, 0x59, 0xE2, 0xDD, 0x40, 0x5A, 0xA4, 0x9B, 0xB0, 0x5B, 0xC2, 0xBF, 0x40, +0x5C, 0x84, 0x7D, 0xB0, 0x5D, 0xA2, 0xA1, 0x40, 0x5E, 0x6D, 0x9A, 0x30, 0x5F, 0x82, 0x83, 0x40, +0x60, 0x4D, 0x7C, 0x30, 0x61, 0x62, 0x65, 0x40, 0x62, 0x2D, 0x5E, 0x30, 0x63, 0x42, 0x47, 0x40, +0x64, 0x0D, 0x40, 0x30, 0x65, 0x2B, 0x63, 0xC0, 0x65, 0xED, 0x22, 0x30, 0x67, 0x0B, 0x45, 0xC0, +0x67, 0xCD, 0x04, 0x30, 0x68, 0xEB, 0x27, 0xC0, 0x69, 0xB6, 0x20, 0xB0, 0x6A, 0xCB, 0x09, 0xC0, +0x6B, 0x96, 0x02, 0xB0, 0x6C, 0xAA, 0xEB, 0xC0, 0x6D, 0x75, 0xE4, 0xB0, 0x6E, 0x94, 0x08, 0x40, +0x6F, 0x55, 0xC6, 0xB0, 0x70, 0x73, 0xEA, 0x40, 0x71, 0x35, 0xA8, 0xB0, 0x72, 0x53, 0xCC, 0x40, +0x73, 0x15, 0x8A, 0xB0, 0x74, 0x33, 0xAE, 0x40, 0x74, 0xFE, 0xA7, 0x30, 0x76, 0x13, 0x90, 0x40, +0x76, 0xDE, 0x89, 0x30, 0x77, 0xF3, 0x72, 0x40, 0x78, 0xBE, 0x6B, 0x30, 0x79, 0xDC, 0x8E, 0xC0, +0x7A, 0x9E, 0x4D, 0x30, 0x7B, 0xBC, 0x70, 0xC0, 0x7C, 0x7E, 0x2F, 0x30, 0x7D, 0x9C, 0x52, 0xC0, +0x7E, 0x67, 0x4B, 0xB0, 0x7F, 0x7C, 0x34, 0xC0, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0xFF, 0xFF, 0x99, 0x78, 0x00, 0x00, 0xFF, 0xFF, 0x9D, +0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x09, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x09, 0xFF, +0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x09, 0x45, 0x4D, 0x54, 0x00, 0x45, +0x41, 0x53, 0x54, 0x00, 0x45, 0x41, 0x53, 0x53, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, +0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, +0x00, 0x00, + +/* CST6CDT */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xFA, 0xF8, 0x67, 0x00, 0xFB, 0xE8, 0x49, 0xF0, +0xFC, 0xD8, 0x49, 0x00, 0xFD, 0xC8, 0x2B, 0xF0, 0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xA8, 0x0D, 0xF0, +0x00, 0x98, 0x0D, 0x00, 0x01, 0x87, 0xEF, 0xF0, 0x02, 0x77, 0xEF, 0x00, 0x03, 0x71, 0x0C, 0x70, +0x04, 0x61, 0x0B, 0x80, 0x05, 0x50, 0xEE, 0x70, 0x06, 0x40, 0xED, 0x80, 0x07, 0x30, 0xD0, 0x70, +0x07, 0x8D, 0x27, 0x80, 0x09, 0x10, 0xB2, 0x70, 0x09, 0xAD, 0xA3, 0x00, 0x0A, 0xF0, 0x94, 0x70, +0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xB0, 0xF0, 0x0D, 0xC0, 0x75, 0x80, 0x0E, 0xB9, 0x92, 0xF0, +0x0F, 0xA9, 0x92, 0x00, 0x10, 0x99, 0x74, 0xF0, 0x11, 0x89, 0x74, 0x00, 0x12, 0x79, 0x56, 0xF0, +0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, 0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x1A, 0xF0, +0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, 0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x19, 0x70, +0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, 0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xDD, 0x70, +0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, 0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70, +0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0, +0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0, +0x29, 0xDE, 0xB3, 0x80, 0x2A, 0xEA, 0x45, 0xF0, 0x2B, 0xBE, 0x95, 0x80, 0x2C, 0xD3, 0x62, 0x70, +0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x44, 0x70, 0x2F, 0x7E, 0x59, 0x80, 0x30, 0x93, 0x26, 0x70, +0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, 0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, +0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, 0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, +0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0xC6, 0xE0, 0x00, 0x3B, 0xDB, 0xAC, 0xF0, +0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, 0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x70, 0xF0, +0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, 0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, +0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, +0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, +0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, +0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, +0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, +0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, +0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, +0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, +0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, +0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, +0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, +0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, +0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, +0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, +0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, +0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, +0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0x43, 0x44, 0x54, +0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, +0x00, + +/* Cuba */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0C, 0xAC, 0x62, 0xC2, 0x80, +0xB1, 0xD3, 0x94, 0x50, 0xB2, 0x74, 0x5D, 0x40, 0xC8, 0x5B, 0x66, 0xD0, 0xC8, 0xD3, 0x51, 0x40, +0xCA, 0x3B, 0x48, 0xD0, 0xCA, 0xBC, 0x6D, 0xC0, 0xCC, 0x24, 0x65, 0x50, 0xCC, 0x9C, 0x4F, 0xC0, +0xD1, 0xC4, 0x0B, 0x50, 0xD2, 0x3B, 0xF5, 0xC0, 0xD3, 0xA3, 0xED, 0x50, 0xD4, 0x1B, 0xD7, 0xC0, +0xF7, 0x60, 0x05, 0xD0, 0xF7, 0xFF, 0x7D, 0x40, 0xF9, 0x3D, 0x44, 0xD0, 0xF9, 0xE3, 0x53, 0xC0, +0xFA, 0xDB, 0x3B, 0xD0, 0xFB, 0xA7, 0x86, 0x40, 0xFC, 0xC5, 0xA9, 0xD0, 0xFD, 0x87, 0x68, 0x40, +0xFE, 0xB8, 0x00, 0xD0, 0xFF, 0xA7, 0xE3, 0xC0, 0x00, 0x97, 0xE2, 0xD0, 0x01, 0x87, 0xC5, 0xC0, +0x02, 0x77, 0xC4, 0xD0, 0x03, 0x70, 0xE2, 0x40, 0x04, 0x60, 0xE1, 0x50, 0x05, 0x35, 0x14, 0xC0, +0x06, 0x40, 0xC3, 0x50, 0x07, 0x16, 0x48, 0x40, 0x08, 0x20, 0xA5, 0x50, 0x08, 0xF7, 0x7B, 0xC0, +0x0A, 0x00, 0x87, 0x50, 0x0A, 0xF0, 0x6A, 0x40, 0x0B, 0xE0, 0x69, 0x50, 0x0C, 0xD9, 0x86, 0xC0, +0x0D, 0xC0, 0x4B, 0x50, 0x0E, 0xB9, 0x68, 0xC0, 0x0F, 0xB2, 0xA2, 0x50, 0x10, 0x7D, 0x9B, 0x40, +0x11, 0x51, 0xEA, 0xD0, 0x12, 0x66, 0xB7, 0xC0, 0x13, 0x31, 0xCC, 0xD0, 0x14, 0x46, 0x99, 0xC0, +0x15, 0x5B, 0x82, 0xD0, 0x16, 0x26, 0x7B, 0xC0, 0x17, 0x3B, 0x64, 0xD0, 0x18, 0x06, 0x5D, 0xC0, +0x19, 0x1B, 0x46, 0xD0, 0x19, 0xE6, 0x3F, 0xC0, 0x1A, 0xFB, 0x28, 0xD0, 0x1B, 0xCF, 0x5C, 0x40, +0x1C, 0xDB, 0x0A, 0xD0, 0x1D, 0xAF, 0x3E, 0x40, 0x1E, 0x7A, 0x53, 0x50, 0x1F, 0x8F, 0x20, 0x40, +0x20, 0x5A, 0x35, 0x50, 0x21, 0x6F, 0x02, 0x40, 0x22, 0x43, 0x51, 0xD0, 0x23, 0x4E, 0xE4, 0x40, +0x24, 0x23, 0x33, 0xD0, 0x25, 0x2E, 0xC6, 0x40, 0x26, 0x15, 0x8A, 0xD0, 0x27, 0x17, 0xE2, 0xC0, +0x27, 0xFE, 0xA7, 0x50, 0x28, 0xF7, 0xD2, 0xD0, 0x29, 0xDE, 0x89, 0x50, 0x2A, 0xD7, 0xB4, 0xD0, +0x2B, 0xBE, 0x6B, 0x50, 0x2C, 0xB7, 0x96, 0xD0, 0x2D, 0x9E, 0x4D, 0x50, 0x2E, 0x97, 0x78, 0xD0, +0x2F, 0x7E, 0x2F, 0x50, 0x30, 0x77, 0x5A, 0xD0, 0x31, 0x67, 0x4B, 0xD0, 0x32, 0x57, 0x3C, 0xD0, +0x33, 0x47, 0x2D, 0xD0, 0x34, 0x40, 0x59, 0x50, 0x35, 0x1D, 0xD5, 0x50, 0x36, 0x32, 0xB0, 0x50, +0x36, 0xFD, 0xB7, 0x50, 0x38, 0x1B, 0xCC, 0xD0, 0x38, 0xE6, 0xD3, 0xD0, 0x39, 0xFB, 0xAE, 0xD0, +0x3A, 0xC6, 0xB5, 0xD0, 0x3B, 0xDB, 0x90, 0xD0, 0x3C, 0xAF, 0xD2, 0x50, 0x3D, 0xBB, 0x72, 0xD0, +0x3E, 0x8F, 0xB4, 0x50, 0x3F, 0x9B, 0x54, 0xD0, 0x40, 0x6F, 0x96, 0x50, 0x45, 0x44, 0x35, 0x50, +0x45, 0xF3, 0x8C, 0xD0, 0x47, 0x24, 0x17, 0x50, 0x47, 0xDC, 0xA9, 0x50, 0x49, 0x03, 0xF9, 0x50, +0x49, 0xB3, 0x50, 0xD0, 0x4A, 0xE3, 0xDB, 0x50, 0x4B, 0x9C, 0x6D, 0x50, 0x4C, 0xCC, 0xF7, 0xD0, +0x4D, 0x85, 0x89, 0xD0, 0x4E, 0xBF, 0x4E, 0xD0, 0x4F, 0x77, 0xE0, 0xD0, 0x50, 0x95, 0xF6, 0x50, +0x51, 0x3C, 0x13, 0x50, 0x52, 0x75, 0xD8, 0x50, 0x53, 0x1B, 0xF5, 0x50, 0x54, 0x55, 0xBA, 0x50, +0x54, 0xFB, 0xD7, 0x50, 0x56, 0x35, 0x9C, 0x50, 0x56, 0xE4, 0xF3, 0xD0, 0x58, 0x1E, 0xB8, 0xD0, +0x58, 0xC4, 0xD5, 0xD0, 0x59, 0xFE, 0x9A, 0xD0, 0x5A, 0xA4, 0xB7, 0xD0, 0x5B, 0xDE, 0x7C, 0xD0, +0x5C, 0x84, 0x99, 0xD0, 0x5D, 0xBE, 0x5E, 0xD0, 0x5E, 0x64, 0x7B, 0xD0, 0x5F, 0x9E, 0x40, 0xD0, +0x60, 0x4D, 0x98, 0x50, 0x61, 0x87, 0x5D, 0x50, 0x62, 0x2D, 0x7A, 0x50, 0x63, 0x67, 0x3F, 0x50, +0x64, 0x0D, 0x5C, 0x50, 0x65, 0x47, 0x21, 0x50, 0x65, 0xED, 0x3E, 0x50, 0x67, 0x27, 0x03, 0x50, +0x67, 0xCD, 0x20, 0x50, 0x69, 0x06, 0xE5, 0x50, 0x69, 0xAD, 0x02, 0x50, 0x6A, 0xE6, 0xC7, 0x50, +0x6B, 0x96, 0x1E, 0xD0, 0x6C, 0xCF, 0xE3, 0xD0, 0x6D, 0x76, 0x00, 0xD0, 0x6E, 0xAF, 0xC5, 0xD0, +0x6F, 0x55, 0xE2, 0xD0, 0x70, 0x8F, 0xA7, 0xD0, 0x71, 0x35, 0xC4, 0xD0, 0x72, 0x6F, 0x89, 0xD0, +0x73, 0x15, 0xA6, 0xD0, 0x74, 0x4F, 0x6B, 0xD0, 0x74, 0xFE, 0xC3, 0x50, 0x76, 0x38, 0x88, 0x50, +0x76, 0xDE, 0xA5, 0x50, 0x78, 0x18, 0x6A, 0x50, 0x78, 0xBE, 0x87, 0x50, 0x79, 0xF8, 0x4C, 0x50, +0x7A, 0x9E, 0x69, 0x50, 0x7B, 0xD8, 0x2E, 0x50, 0x7C, 0x7E, 0x4B, 0x50, 0x7D, 0xB8, 0x10, 0x50, +0x7E, 0x5E, 0x2D, 0x50, 0x7F, 0x97, 0xF2, 0x50, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, +0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0xFF, 0xFF, 0xB2, 0xC0, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, +0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, +0x04, 0x48, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, +0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, +0x00, 0x00, 0x00, + +/* EET */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x0D, 0xA4, 0x63, 0x90, +0x0E, 0x8B, 0x1A, 0x10, 0x0F, 0x84, 0x45, 0x90, 0x10, 0x74, 0x36, 0x90, 0x11, 0x64, 0x27, 0x90, +0x12, 0x54, 0x18, 0x90, 0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, +0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, +0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, +0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, +0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, +0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, +0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, +0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, +0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, +0x2A, 0x30, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x05, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, +0x45, 0x54, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, +0x00, 0x00, 0x00, + +/* Egypt */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0xC8, 0x93, 0xB4, 0xE0, +0xC8, 0xFA, 0x7B, 0xD0, 0xC9, 0xFC, 0xEF, 0xE0, 0xCA, 0xC7, 0xE8, 0xD0, 0xCB, 0xCB, 0xAE, 0x60, +0xCC, 0xDF, 0x29, 0xD0, 0xCD, 0xAC, 0xE1, 0xE0, 0xCE, 0xC6, 0xF4, 0xD0, 0xCF, 0x8F, 0x66, 0xE0, +0xD0, 0xA9, 0x79, 0xD0, 0xD1, 0x84, 0x60, 0xE0, 0xD2, 0x8A, 0xAD, 0x50, 0xE8, 0x36, 0x63, 0x60, +0xE8, 0xF4, 0x2D, 0x50, 0xEA, 0x0B, 0xB9, 0x60, 0xEA, 0xD5, 0x60, 0xD0, 0xEB, 0xEC, 0xFA, 0xF0, +0xEC, 0xB5, 0x6D, 0x00, 0xED, 0xCF, 0x7F, 0xF0, 0xEE, 0x97, 0xF2, 0x00, 0xEF, 0xB0, 0xB3, 0x70, +0xF0, 0x79, 0x25, 0x80, 0xF1, 0x91, 0xE6, 0xF0, 0xF2, 0x5A, 0x59, 0x00, 0xF3, 0x73, 0x1A, 0x70, +0xF4, 0x3B, 0x8C, 0x80, 0xF5, 0x55, 0x9F, 0x70, 0xF6, 0x1E, 0x11, 0x80, 0xF7, 0x36, 0xD2, 0xF0, +0xF7, 0xFF, 0x45, 0x00, 0xF9, 0x18, 0x06, 0x70, 0xF9, 0xE1, 0xCA, 0x00, 0xFA, 0xF9, 0x39, 0xF0, +0xFB, 0xC2, 0xFD, 0x80, 0xFC, 0xDB, 0xBE, 0xF0, 0xFD, 0xA5, 0x82, 0x80, 0xFE, 0xBC, 0xF2, 0x70, +0xFF, 0x86, 0xB6, 0x00, 0x00, 0x9E, 0x25, 0xF0, 0x01, 0x67, 0xE9, 0x80, 0x02, 0x7F, 0x59, 0x70, +0x03, 0x49, 0x1D, 0x00, 0x04, 0x61, 0xDE, 0x70, 0x05, 0x2B, 0xA2, 0x00, 0x06, 0x43, 0x11, 0xF0, +0x07, 0x0C, 0xD5, 0x80, 0x08, 0x24, 0x45, 0x70, 0x08, 0xEE, 0x09, 0x00, 0x0A, 0x05, 0x78, 0xF0, +0x0A, 0xCF, 0x3C, 0x80, 0x0B, 0xE7, 0xFD, 0xF0, 0x0C, 0xB1, 0xC1, 0x80, 0x0D, 0xC9, 0x31, 0x70, +0x0E, 0x92, 0xF5, 0x00, 0x0F, 0xAA, 0x64, 0xF0, 0x10, 0x74, 0x28, 0x80, 0x11, 0x8B, 0x98, 0x70, +0x12, 0x55, 0x5C, 0x00, 0x13, 0x6E, 0x1D, 0x70, 0x14, 0x37, 0xE1, 0x00, 0x15, 0x4F, 0x50, 0xF0, +0x16, 0x19, 0x14, 0x80, 0x17, 0xA0, 0x93, 0xF0, 0x17, 0xFA, 0x48, 0x00, 0x19, 0x70, 0xA3, 0xF0, +0x19, 0xDB, 0x7B, 0x80, 0x1A, 0xF4, 0x3C, 0xF0, 0x1B, 0xBE, 0x00, 0x80, 0x1C, 0xD5, 0x70, 0x70, +0x1D, 0x9F, 0x34, 0x00, 0x1E, 0xB6, 0xA3, 0xF0, 0x1F, 0x80, 0x67, 0x80, 0x20, 0x97, 0xD7, 0x70, +0x21, 0x61, 0x9B, 0x00, 0x22, 0x7A, 0x5C, 0x70, 0x23, 0x44, 0x20, 0x00, 0x24, 0x62, 0x27, 0x70, +0x25, 0x25, 0x53, 0x80, 0x26, 0x3C, 0xC3, 0x70, 0x27, 0x06, 0x87, 0x00, 0x28, 0x1D, 0xF6, 0xF0, +0x28, 0xE7, 0xBA, 0x80, 0x2A, 0x00, 0x7B, 0xF0, 0x2A, 0xCA, 0x3F, 0x80, 0x2B, 0xE1, 0xAF, 0x70, +0x2C, 0xAB, 0x73, 0x00, 0x2D, 0xC2, 0xE2, 0xF0, 0x2E, 0x8C, 0xA6, 0x80, 0x2F, 0xA0, 0x13, 0xE0, +0x30, 0x6B, 0x0C, 0xD0, 0x31, 0x7F, 0xF5, 0xE0, 0x32, 0x4A, 0xEE, 0xD0, 0x33, 0x5F, 0xD7, 0xE0, +0x34, 0x2A, 0xD0, 0xD0, 0x35, 0x3F, 0xB9, 0xE0, 0x36, 0x0A, 0xB2, 0xD0, 0x37, 0x28, 0xD6, 0x60, +0x37, 0xF3, 0xCF, 0x50, 0x39, 0x08, 0xB8, 0x60, 0x39, 0xD3, 0xB1, 0x50, 0x3A, 0xE8, 0x9A, 0x60, +0x3B, 0xB3, 0x93, 0x50, 0x3C, 0xC8, 0x7C, 0x60, 0x3D, 0x93, 0x75, 0x50, 0x3E, 0xA8, 0x5E, 0x60, +0x3F, 0x73, 0x57, 0x50, 0x40, 0x91, 0x7A, 0xE0, 0x41, 0x5C, 0x73, 0xD0, 0x42, 0x71, 0x5C, 0xE0, +0x43, 0x3C, 0x55, 0xD0, 0x44, 0x51, 0x3E, 0xE0, 0x45, 0x12, 0xFD, 0x50, 0x46, 0x31, 0x20, 0xE0, +0x46, 0xE0, 0x6A, 0x50, 0x48, 0x11, 0x02, 0xE0, 0x48, 0xB7, 0x11, 0xD0, 0x49, 0xF0, 0xE4, 0xE0, +0x4A, 0x8D, 0xB9, 0x50, 0x4B, 0xDA, 0x01, 0x60, 0x4C, 0x61, 0xBD, 0xD0, 0x4C, 0x89, 0x58, 0xE0, +0x4C, 0xA4, 0xFA, 0x50, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x01, 0x00, 0x03, 0x00, 0x00, +0x2A, 0x30, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x05, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00, +0x00, 0x00, 0x1C, 0x20, 0x00, 0x05, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x00, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, +0x00, 0x00, 0x00, + +/* Eire */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x26, 0xB3, 0x91, +0x9B, 0xD6, 0x0B, 0x11, 0x9C, 0xCF, 0x30, 0xA0, 0x9D, 0xA4, 0xC3, 0xA0, 0x9E, 0x9C, 0x9D, 0xA0, +0x9F, 0x97, 0x1A, 0xA0, 0xA0, 0x85, 0xBA, 0x20, 0xA1, 0x76, 0xFC, 0xA0, 0xA2, 0x65, 0x9C, 0x20, +0xA3, 0x7B, 0xC8, 0xA0, 0xA4, 0x4E, 0xB8, 0xA0, 0xA5, 0x3F, 0xFB, 0x20, 0xA5, 0x94, 0x3F, 0x00, +0xA6, 0x25, 0x60, 0x20, 0xA7, 0x27, 0xC6, 0x20, 0xA8, 0x2A, 0x2C, 0x20, 0xA8, 0xEB, 0xF8, 0xA0, +0xAA, 0x00, 0xD3, 0xA0, 0xAA, 0xD5, 0x15, 0x20, 0xAB, 0xE9, 0xF0, 0x20, 0xAC, 0xC7, 0x6C, 0x20, +0xAD, 0xC9, 0xD2, 0x20, 0xAE, 0xA7, 0x4E, 0x20, 0xAF, 0xA0, 0x79, 0xA0, 0xB0, 0x87, 0x30, 0x20, +0xB1, 0x92, 0xD0, 0xA0, 0xB2, 0x70, 0x4C, 0xA0, 0xB3, 0x72, 0xB2, 0xA0, 0xB4, 0x50, 0x2E, 0xA0, +0xB5, 0x49, 0x5A, 0x20, 0xB6, 0x30, 0x10, 0xA0, 0xB7, 0x32, 0x76, 0xA0, 0xB8, 0x0F, 0xF2, 0xA0, +0xB9, 0x12, 0x58, 0xA0, 0xB9, 0xEF, 0xD4, 0xA0, 0xBA, 0xE9, 0x00, 0x20, 0xBB, 0xD8, 0xF1, 0x20, +0xBC, 0xDB, 0x57, 0x20, 0xBD, 0xB8, 0xD3, 0x20, 0xBE, 0xB1, 0xFE, 0xA0, 0xBF, 0x98, 0xB5, 0x20, +0xC0, 0x9B, 0x1B, 0x20, 0xC1, 0x78, 0x97, 0x20, 0xC2, 0x7A, 0xFD, 0x20, 0xC3, 0x58, 0x79, 0x20, +0xC4, 0x51, 0xA4, 0xA0, 0xC5, 0x38, 0x5B, 0x20, 0xC6, 0x3A, 0xC1, 0x20, 0xC7, 0x58, 0xD6, 0xA0, +0xC7, 0xDA, 0x09, 0xA0, 0xD4, 0x49, 0xD2, 0x10, 0xD5, 0x1E, 0x21, 0xA0, 0xD6, 0x4E, 0x9E, 0x10, +0xD7, 0x2C, 0x28, 0x20, 0xD8, 0x2E, 0x8E, 0x20, 0xD8, 0xF9, 0x95, 0x20, 0xDA, 0x0E, 0x70, 0x20, +0xDA, 0xEB, 0xEC, 0x20, 0xDB, 0xE5, 0x17, 0xA0, 0xDC, 0xCB, 0xCE, 0x20, 0xDD, 0xC4, 0xF9, 0xA0, +0xDE, 0xB4, 0xEA, 0xA0, 0xDF, 0xAE, 0x16, 0x20, 0xE0, 0x94, 0xCC, 0xA0, 0xE1, 0x72, 0x48, 0xA0, +0xE2, 0x6B, 0x74, 0x20, 0xE3, 0x52, 0x2A, 0xA0, 0xE4, 0x54, 0x90, 0xA0, 0xE5, 0x32, 0x0C, 0xA0, +0xE6, 0x3D, 0xAD, 0x20, 0xE7, 0x1B, 0x29, 0x20, 0xE8, 0x14, 0x54, 0xA0, 0xE8, 0xFB, 0x0B, 0x20, +0xE9, 0xFD, 0x71, 0x20, 0xEA, 0xDA, 0xED, 0x20, 0xEB, 0xDD, 0x53, 0x20, 0xEC, 0xBA, 0xCF, 0x20, +0xED, 0xB3, 0xFA, 0xA0, 0xEE, 0x9A, 0xB1, 0x20, 0xEF, 0x81, 0x67, 0xA0, 0xF0, 0x9F, 0x7D, 0x20, +0xF1, 0x61, 0x49, 0xA0, 0xF2, 0x7F, 0x5F, 0x20, 0xF3, 0x4A, 0x66, 0x20, 0xF4, 0x5F, 0x41, 0x20, +0xF5, 0x21, 0x0D, 0xA0, 0xF6, 0x3F, 0x23, 0x20, 0xF7, 0x00, 0xEF, 0xA0, 0xF8, 0x1F, 0x05, 0x20, +0xF8, 0xE0, 0xD1, 0xA0, 0xF9, 0xFE, 0xE7, 0x20, 0xFA, 0xC0, 0xB3, 0xA0, 0xFB, 0xE8, 0x03, 0xA0, +0xFC, 0x7B, 0xAB, 0xA0, 0xFD, 0xC7, 0xBB, 0x70, 0x03, 0x70, 0xC6, 0x20, 0x04, 0x29, 0x58, 0x20, +0x05, 0x50, 0xA8, 0x20, 0x06, 0x09, 0x3A, 0x20, 0x07, 0x30, 0x8A, 0x20, 0x07, 0xE9, 0x1C, 0x20, +0x09, 0x10, 0x6C, 0x20, 0x09, 0xC8, 0xFE, 0x20, 0x0A, 0xF0, 0x4E, 0x20, 0x0B, 0xB2, 0x1A, 0xA0, +0x0C, 0xD0, 0x30, 0x20, 0x0D, 0x91, 0xFC, 0xA0, 0x0E, 0xB0, 0x12, 0x20, 0x0F, 0x71, 0xDE, 0xA0, +0x10, 0x99, 0x2E, 0xA0, 0x11, 0x51, 0xC0, 0xA0, 0x12, 0x79, 0x10, 0xA0, 0x13, 0x31, 0xA2, 0xA0, +0x14, 0x58, 0xF2, 0xA0, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x38, 0xC6, 0x90, 0x17, 0x03, 0xCD, 0x90, +0x18, 0x18, 0xA8, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xF8, 0x8A, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xE1, 0xA7, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0xC1, 0x89, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0xA1, 0x6B, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x81, 0x4D, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x61, 0x2F, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x4A, 0x4B, 0x90, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x2A, 0x2D, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x29, 0x0A, 0x0F, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xE9, 0xF1, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xC9, 0xD3, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0xA9, 0xB5, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x89, 0x97, 0x90, 0x30, 0xE7, 0x24, 0x00, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x06, 0x05, 0x06, 0x05, 0x06, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x07, 0x09, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x05, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0xFF, 0xFF, 0xFA, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1F, 0x01, +0x04, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0E, +0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, +0x00, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, +0x0C, 0x44, 0x4D, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, +0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, +0x00, + +/* EST */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, +0x00, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* EST5EDT */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xA6, 0x1E, 0x70, +0x9F, 0xBA, 0xEB, 0x60, 0xA0, 0x86, 0x00, 0x70, 0xA1, 0x9A, 0xCD, 0x60, 0xCB, 0x88, 0xF0, 0x70, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, 0xFA, 0xF8, 0x58, 0xF0, 0xFB, 0xE8, 0x3B, 0xE0, +0xFC, 0xD8, 0x3A, 0xF0, 0xFD, 0xC8, 0x1D, 0xE0, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, +0x00, 0x97, 0xFE, 0xF0, 0x01, 0x87, 0xE1, 0xE0, 0x02, 0x77, 0xE0, 0xF0, 0x03, 0x70, 0xFE, 0x60, +0x04, 0x60, 0xFD, 0x70, 0x05, 0x50, 0xE0, 0x60, 0x06, 0x40, 0xDF, 0x70, 0x07, 0x30, 0xC2, 0x60, +0x07, 0x8D, 0x19, 0x70, 0x09, 0x10, 0xA4, 0x60, 0x09, 0xAD, 0x94, 0xF0, 0x0A, 0xF0, 0x86, 0x60, +0x0B, 0xE0, 0x85, 0x70, 0x0C, 0xD9, 0xA2, 0xE0, 0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, +0x0F, 0xA9, 0x83, 0xF0, 0x10, 0x99, 0x66, 0xE0, 0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, +0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, 0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, +0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, 0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, +0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, 0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, +0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, 0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, +0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, 0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, +0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, 0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, +0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, 0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, +0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, 0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, +0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, 0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, +0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, 0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, +0x38, 0xE6, 0xEF, 0xF0, 0x39, 0xFB, 0xBC, 0xE0, 0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, +0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, 0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, +0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, 0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, +0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, +0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, +0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, +0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, +0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, +0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, +0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, +0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, +0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, +0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, +0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, +0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, +0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, +0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, +0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, +0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, +0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0x45, 0x44, 0x54, +0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x45, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, +0x00, + +/* Etc/GMT */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT0 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-0 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT+0 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-1 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0E, 0x10, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2D, 0x31, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT+1 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0xF1, 0xF0, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2B, 0x31, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-10 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x8C, 0xA0, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2D, 0x31, 0x30, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, +0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT+10 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0x73, 0x60, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2B, 0x31, 0x30, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, +0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-11 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x9A, 0xB0, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2D, 0x31, 0x31, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, +0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT+11 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0x65, 0x50, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2B, 0x31, 0x31, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, +0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-12 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xA8, 0xC0, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2D, 0x31, 0x32, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, +0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT+12 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0x57, 0x40, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2B, 0x31, 0x32, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, +0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-13 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xB6, 0xD0, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2D, 0x31, 0x33, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, +0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-14 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xC4, 0xE0, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2D, 0x31, 0x34, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, +0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-2 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x1C, 0x20, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2D, 0x32, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT+2 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0xE3, 0xE0, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2B, 0x32, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-3 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x2A, 0x30, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2D, 0x33, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT+3 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0xD5, 0xD0, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2B, 0x33, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-4 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x38, 0x40, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2D, 0x34, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT+4 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0xC7, 0xC0, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2B, 0x34, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-5 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x46, 0x50, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2D, 0x35, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT+5 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0xB9, 0xB0, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2B, 0x35, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-6 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x54, 0x60, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2D, 0x36, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT+6 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0xAB, 0xA0, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2B, 0x36, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-7 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x62, 0x70, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2D, 0x37, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT+7 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0x9D, 0x90, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2B, 0x37, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-8 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x70, 0x80, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2D, 0x38, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT+8 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0x8F, 0x80, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2B, 0x38, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT-9 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x7E, 0x90, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2D, 0x39, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/GMT+9 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0x81, 0x70, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x2B, 0x39, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Etc/Greenwich */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Etc/UCT */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x55, 0x43, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Etc/Universal */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x55, 0x54, 0x43, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Etc/UTC */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x55, 0x54, 0x43, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Etc/Zulu */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x55, 0x54, 0x43, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Europe/Amsterdam */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4E, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x1A, 0x9B, 0x0C, 0x2E, 0xEC, +0x9B, 0xD5, 0xD6, 0x5C, 0x9C, 0xD9, 0xB8, 0x0C, 0x9D, 0xA4, 0xBF, 0x0C, 0x9E, 0xA7, 0x25, 0x0C, +0x9F, 0x97, 0x16, 0x0C, 0xA0, 0x90, 0x41, 0x8C, 0xA1, 0x76, 0xF8, 0x0C, 0xA2, 0x70, 0x23, 0x8C, +0xA3, 0x56, 0xDA, 0x0C, 0xA4, 0x50, 0x05, 0x8C, 0xA5, 0x36, 0xBC, 0x0C, 0xA6, 0x25, 0x5B, 0x8C, +0xA7, 0x27, 0xC1, 0x8C, 0xA8, 0x5E, 0xE3, 0x8C, 0xA9, 0x07, 0xA3, 0x8C, 0xA9, 0xEE, 0x5A, 0x0C, +0xAA, 0xE7, 0x85, 0x8C, 0xAC, 0x27, 0xE2, 0x0C, 0xAC, 0xC7, 0x67, 0x8C, 0xAD, 0xED, 0x66, 0x0C, +0xAE, 0xA7, 0x49, 0x8C, 0xAF, 0xCE, 0x99, 0x8C, 0xB0, 0x87, 0x2B, 0x8C, 0xB1, 0xB1, 0x1E, 0x8C, +0xB2, 0x70, 0x48, 0x0C, 0xB3, 0x92, 0x52, 0x0C, 0xB4, 0x50, 0x2A, 0x0C, 0xB5, 0x73, 0x85, 0x8C, +0xB6, 0x30, 0x0C, 0x0C, 0xB7, 0x54, 0xB9, 0x0C, 0xB8, 0x0F, 0xEE, 0x0C, 0xB9, 0x40, 0x78, 0x8C, +0xB9, 0xEF, 0xD0, 0x0C, 0xBB, 0x18, 0x71, 0x8C, 0xBB, 0xD8, 0xEC, 0x8C, 0xBC, 0xF9, 0xA5, 0x0C, +0xBD, 0xB8, 0xCE, 0x8C, 0xBE, 0xDA, 0xD8, 0x8C, 0xBF, 0x98, 0xB0, 0x8C, 0xC0, 0xBD, 0x5D, 0x8C, +0xC1, 0x78, 0x92, 0x8C, 0xC2, 0xA7, 0xCB, 0x8C, 0xC2, 0xDC, 0x5D, 0x5C, 0xC3, 0x58, 0x74, 0x70, +0xC4, 0x7F, 0xC4, 0x70, 0xC5, 0x38, 0x56, 0x70, 0xC6, 0x60, 0xF7, 0xF0, 0xC7, 0x21, 0x72, 0xF0, +0xC8, 0x44, 0xB2, 0x50, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, +0xCF, 0x92, 0x34, 0x10, 0xD0, 0x82, 0x25, 0x10, 0xD1, 0x72, 0x16, 0x10, 0xD2, 0x4E, 0x40, 0x90, +0x0D, 0x2A, 0xFD, 0x70, 0x0D, 0xA4, 0x63, 0x90, 0x0E, 0x8B, 0x1A, 0x10, 0x0F, 0x84, 0x45, 0x90, +0x10, 0x74, 0x36, 0x90, 0x11, 0x64, 0x27, 0x90, 0x12, 0x54, 0x18, 0x90, 0x13, 0x4D, 0x44, 0x10, +0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, +0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x06, 0x04, 0x05, 0x04, 0x05, 0x04, 0x09, 0x07, 0x08, +0x07, 0x08, 0x07, 0x08, 0x07, 0x0C, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x00, 0x00, 0x12, 0xA4, 0x01, 0x00, 0x00, 0x00, 0x04, 0x94, 0x00, 0x04, 0x00, 0x00, 0x12, 0xA4, +0x01, 0x00, 0x00, 0x00, 0x04, 0x94, 0x00, 0x04, 0x00, 0x00, 0x04, 0xB0, 0x00, 0x08, 0x00, 0x00, +0x12, 0xC0, 0x01, 0x0C, 0x00, 0x00, 0x12, 0xC0, 0x01, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x11, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x15, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x15, 0x00, 0x00, 0x1C, 0x20, +0x01, 0x15, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x11, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x11, 0x4E, 0x53, +0x54, 0x00, 0x41, 0x4D, 0x54, 0x00, 0x4E, 0x45, 0x54, 0x00, 0x4E, 0x45, 0x53, 0x54, 0x00, 0x43, +0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, +0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x01, 0x00, 0x00, 0xD9, 0x3B, 0xFA, 0x01, 0x1A, 0x22, 0x90, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Andorra */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0D, 0xD4, 0x41, 0xDB, 0x00, +0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, +0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, +0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, +0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, +0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, +0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, +0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, +0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, +0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, +0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, +0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x00, +0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x57, 0x45, 0x54, 0x00, 0x43, +0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, +0x00, 0xCA, 0x2D, 0xD0, 0x01, 0x14, 0xF8, 0xF2, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Athens */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x16, 0x9B, 0x80, 0x21, 0x80, +0xB9, 0x7C, 0xE9, 0xE0, 0xB9, 0xC6, 0xAF, 0xD0, 0xC9, 0xF2, 0x63, 0xE0, 0xCA, 0x10, 0xA8, 0x50, +0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xAA, 0x4C, 0xF0, 0xCE, 0xA2, 0x18, 0xE0, 0xCF, 0x93, 0x69, 0x70, +0xDF, 0x13, 0x9E, 0x60, 0xDF, 0xB7, 0x0A, 0x50, 0x09, 0xEC, 0x5E, 0x60, 0x0B, 0x18, 0xF4, 0x60, +0x0B, 0xCD, 0xAE, 0x00, 0x0C, 0xBD, 0x9F, 0x00, 0x0D, 0xA4, 0x55, 0x80, 0x0E, 0x8C, 0x5D, 0x80, +0x0F, 0x84, 0x37, 0x80, 0x10, 0x6A, 0xFC, 0x10, 0x11, 0x64, 0x7B, 0xF0, 0x12, 0x52, 0xAA, 0xF0, +0x13, 0x46, 0x82, 0x60, 0x14, 0x33, 0xC2, 0x50, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x02, 0x01, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x02, 0x01, 0x02, 0x01, 0x02, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x00, 0x00, 0x16, 0x3C, 0x00, 0x00, 0x00, +0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x0E, 0x10, 0x00, +0x0D, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, +0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x41, +0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, +0x43, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xC3, 0x42, 0xFA, 0x01, 0x36, 0xD8, 0xD2, 0x00, +0x00, 0x00, 0x00, + +/* Europe/Belfast */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0D, 0x9B, 0x26, 0xAD, 0xA0, +0x9B, 0xD6, 0x05, 0x20, 0x9C, 0xCF, 0x30, 0xA0, 0x9D, 0xA4, 0xC3, 0xA0, 0x9E, 0x9C, 0x9D, 0xA0, +0x9F, 0x97, 0x1A, 0xA0, 0xA0, 0x85, 0xBA, 0x20, 0xA1, 0x76, 0xFC, 0xA0, 0xA2, 0x65, 0x9C, 0x20, +0xA3, 0x7B, 0xC8, 0xA0, 0xA4, 0x4E, 0xB8, 0xA0, 0xA5, 0x3F, 0xFB, 0x20, 0xA6, 0x25, 0x60, 0x20, +0xA7, 0x27, 0xC6, 0x20, 0xA8, 0x2A, 0x2C, 0x20, 0xA8, 0xEB, 0xF8, 0xA0, 0xAA, 0x00, 0xD3, 0xA0, +0xAA, 0xD5, 0x15, 0x20, 0xAB, 0xE9, 0xF0, 0x20, 0xAC, 0xC7, 0x6C, 0x20, 0xAD, 0xC9, 0xD2, 0x20, +0xAE, 0xA7, 0x4E, 0x20, 0xAF, 0xA0, 0x79, 0xA0, 0xB0, 0x87, 0x30, 0x20, 0xB1, 0x92, 0xD0, 0xA0, +0xB2, 0x70, 0x4C, 0xA0, 0xB3, 0x72, 0xB2, 0xA0, 0xB4, 0x50, 0x2E, 0xA0, 0xB5, 0x49, 0x5A, 0x20, +0xB6, 0x30, 0x10, 0xA0, 0xB7, 0x32, 0x76, 0xA0, 0xB8, 0x0F, 0xF2, 0xA0, 0xB9, 0x12, 0x58, 0xA0, +0xB9, 0xEF, 0xD4, 0xA0, 0xBA, 0xE9, 0x00, 0x20, 0xBB, 0xD8, 0xF1, 0x20, 0xBC, 0xDB, 0x57, 0x20, +0xBD, 0xB8, 0xD3, 0x20, 0xBE, 0xB1, 0xFE, 0xA0, 0xBF, 0x98, 0xB5, 0x20, 0xC0, 0x9B, 0x1B, 0x20, +0xC1, 0x78, 0x97, 0x20, 0xC2, 0x7A, 0xFD, 0x20, 0xC3, 0x58, 0x79, 0x20, 0xC4, 0x51, 0xA4, 0xA0, +0xC5, 0x38, 0x5B, 0x20, 0xC6, 0x3A, 0xC1, 0x20, 0xC7, 0x58, 0xD6, 0xA0, 0xC7, 0xDA, 0x09, 0xA0, +0xCA, 0x16, 0x26, 0x90, 0xCA, 0x97, 0x59, 0x90, 0xCB, 0xD1, 0x1E, 0x90, 0xCC, 0x77, 0x3B, 0x90, +0xCD, 0xB1, 0x00, 0x90, 0xCE, 0x60, 0x58, 0x10, 0xCF, 0x90, 0xE2, 0x90, 0xD0, 0x6E, 0x5E, 0x90, +0xD1, 0x72, 0x16, 0x10, 0xD1, 0xFB, 0x32, 0x10, 0xD2, 0x69, 0xFE, 0x20, 0xD3, 0x63, 0x29, 0xA0, +0xD4, 0x49, 0xE0, 0x20, 0xD5, 0x1E, 0x21, 0xA0, 0xD5, 0x42, 0xFD, 0x90, 0xD5, 0xDF, 0xE0, 0x10, +0xD6, 0x4E, 0xAC, 0x20, 0xD6, 0xFE, 0x03, 0xA0, 0xD8, 0x2E, 0x8E, 0x20, 0xD8, 0xF9, 0x95, 0x20, +0xDA, 0x0E, 0x70, 0x20, 0xDA, 0xEB, 0xEC, 0x20, 0xDB, 0xE5, 0x17, 0xA0, 0xDC, 0xCB, 0xCE, 0x20, +0xDD, 0xC4, 0xF9, 0xA0, 0xDE, 0xB4, 0xEA, 0xA0, 0xDF, 0xAE, 0x16, 0x20, 0xE0, 0x94, 0xCC, 0xA0, +0xE1, 0x72, 0x48, 0xA0, 0xE2, 0x6B, 0x74, 0x20, 0xE3, 0x52, 0x2A, 0xA0, 0xE4, 0x54, 0x90, 0xA0, +0xE5, 0x32, 0x0C, 0xA0, 0xE6, 0x3D, 0xAD, 0x20, 0xE7, 0x1B, 0x29, 0x20, 0xE8, 0x14, 0x54, 0xA0, +0xE8, 0xFB, 0x0B, 0x20, 0xE9, 0xFD, 0x71, 0x20, 0xEA, 0xDA, 0xED, 0x20, 0xEB, 0xDD, 0x53, 0x20, +0xEC, 0xBA, 0xCF, 0x20, 0xED, 0xB3, 0xFA, 0xA0, 0xEE, 0x9A, 0xB1, 0x20, 0xEF, 0x81, 0x67, 0xA0, +0xF0, 0x9F, 0x7D, 0x20, 0xF1, 0x61, 0x49, 0xA0, 0xF2, 0x7F, 0x5F, 0x20, 0xF3, 0x4A, 0x66, 0x20, +0xF4, 0x5F, 0x41, 0x20, 0xF5, 0x21, 0x0D, 0xA0, 0xF6, 0x3F, 0x23, 0x20, 0xF7, 0x00, 0xEF, 0xA0, +0xF8, 0x1F, 0x05, 0x20, 0xF8, 0xE0, 0xD1, 0xA0, 0xF9, 0xFE, 0xE7, 0x20, 0xFA, 0xC0, 0xB3, 0xA0, +0xFB, 0xE8, 0x03, 0xA0, 0xFC, 0x7B, 0xAB, 0xA0, 0xFD, 0xC7, 0xBB, 0x70, 0x03, 0x70, 0xC6, 0x20, +0x04, 0x29, 0x58, 0x20, 0x05, 0x50, 0xA8, 0x20, 0x06, 0x09, 0x3A, 0x20, 0x07, 0x30, 0x8A, 0x20, +0x07, 0xE9, 0x1C, 0x20, 0x09, 0x10, 0x6C, 0x20, 0x09, 0xC8, 0xFE, 0x20, 0x0A, 0xF0, 0x4E, 0x20, +0x0B, 0xB2, 0x1A, 0xA0, 0x0C, 0xD0, 0x30, 0x20, 0x0D, 0x91, 0xFC, 0xA0, 0x0E, 0xB0, 0x12, 0x20, +0x0F, 0x71, 0xDE, 0xA0, 0x10, 0x99, 0x2E, 0xA0, 0x11, 0x51, 0xC0, 0xA0, 0x12, 0x79, 0x10, 0xA0, +0x13, 0x31, 0xA2, 0xA0, 0x14, 0x58, 0xF2, 0xA0, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x38, 0xC6, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x18, 0x18, 0xA8, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xF8, 0x8A, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xE1, 0xA7, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0xC1, 0x89, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0xA1, 0x6B, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x81, 0x4D, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x61, 0x2F, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x4A, 0x4B, 0x90, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x2A, 0x2D, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x29, 0x0A, 0x0F, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xE9, 0xF1, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xC9, 0xD3, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0xA9, 0xB5, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x89, 0x97, 0x90, +0x30, 0xE7, 0x24, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, +0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, +0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x06, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, +0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, +0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x01, 0x01, 0x01, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, +0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Belgrade */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0xCA, 0x02, 0x35, 0xE0, +0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, +0xD0, 0x82, 0x25, 0x10, 0xD0, 0xFA, 0x01, 0x70, 0xD1, 0xA1, 0x8C, 0x10, 0xD2, 0x4E, 0x40, 0x90, +0x18, 0x45, 0x5F, 0x70, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x03, 0x01, 0x02, 0x01, +0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, +0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, +0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xCD, 0xBD, +0x45, 0x01, 0x31, 0xF0, 0x50, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Berlin */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x44, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0E, 0x9B, 0x0C, 0x17, 0x60, +0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xD9, 0xAE, 0x90, 0x9D, 0xA4, 0xB5, 0x90, 0x9E, 0xB9, 0x90, 0x90, +0x9F, 0x84, 0x97, 0x90, 0xC8, 0x09, 0x71, 0x90, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x82, 0x25, 0x10, 0xD1, 0x72, 0x16, 0x10, +0xD1, 0xB6, 0x96, 0x00, 0xD2, 0x58, 0xBE, 0x80, 0xD2, 0xA1, 0x4F, 0x10, 0xD2, 0xDB, 0x34, 0xF0, +0xD3, 0x63, 0x1B, 0x90, 0xD4, 0x4B, 0x23, 0x90, 0xD5, 0x39, 0xD1, 0x20, 0xD5, 0x67, 0xE7, 0x90, +0xD5, 0xA8, 0x73, 0x00, 0xD6, 0x29, 0xB4, 0x10, 0xD7, 0x2C, 0x1A, 0x10, 0xD8, 0x09, 0x96, 0x10, +0xD9, 0x02, 0xC1, 0x90, 0xD9, 0xE9, 0x78, 0x10, 0x12, 0xCE, 0x97, 0xF0, 0x13, 0x4D, 0x44, 0x10, +0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, +0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x00, 0x03, 0x01, 0x02, 0x03, 0x02, +0x05, 0x00, 0x03, 0x02, 0x03, 0x02, 0x03, 0x01, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x00, 0x00, 0x1C, 0x20, +0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, +0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x09, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x43, 0x45, 0x53, 0x54, +0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, +0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xD9, 0x70, 0x10, 0x01, 0x27, +0x0D, 0xDA, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Bratislava */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x0C, 0x17, 0x60, +0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xD9, 0xAE, 0x90, 0x9D, 0xA4, 0xB5, 0x90, 0x9E, 0xB9, 0x90, 0x90, +0x9F, 0x84, 0x97, 0x90, 0xC8, 0x09, 0x71, 0x90, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x6E, 0x5E, 0x90, 0xD1, 0x79, 0xFF, 0x10, +0xD2, 0xA1, 0x4F, 0x10, 0xD3, 0x80, 0x1C, 0x90, 0xD4, 0x49, 0xD2, 0x10, 0xD5, 0x4C, 0x38, 0x10, +0xD6, 0x29, 0xB4, 0x10, 0xD7, 0x2C, 0x1A, 0x10, 0xD8, 0x09, 0x96, 0x10, 0xD9, 0x01, 0x70, 0x10, +0xD9, 0xE9, 0x78, 0x10, 0x10, 0xED, 0x64, 0x70, 0x11, 0x64, 0x27, 0x90, 0x12, 0x54, 0x18, 0x90, +0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x1C, +0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, +0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, +0x05, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xD2, 0xCC, 0xD8, 0x01, 0x2C, 0xC6, 0xB2, 0x00, 0x00, +0x00, 0x00, + +/* Europe/Brussels */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x12, 0x98, 0x44, 0x49, 0x80, +0x9B, 0x0C, 0x25, 0x70, 0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xD9, 0xAE, 0x90, 0x9D, 0xA4, 0xB5, 0x90, +0x9E, 0xB9, 0x90, 0x90, 0x9F, 0x84, 0x97, 0x90, 0x9F, 0xCE, 0xF8, 0x30, 0xA0, 0x60, 0xA5, 0xF0, +0xA1, 0x7E, 0xBB, 0x70, 0xA2, 0x2E, 0x12, 0xF0, 0xA3, 0x7A, 0x4C, 0xF0, 0xA4, 0x35, 0x81, 0xF0, +0xA5, 0x5E, 0x23, 0x70, 0xA6, 0x25, 0x35, 0xF0, 0xA7, 0x27, 0x9B, 0xF0, 0xA8, 0x2A, 0x01, 0xF0, +0xA9, 0x07, 0x7D, 0xF0, 0xA9, 0xEE, 0x34, 0x70, 0xAA, 0xE7, 0x5F, 0xF0, 0xAB, 0xD7, 0x50, 0xF0, +0xAC, 0xC7, 0x41, 0xF0, 0xAD, 0xC9, 0xA7, 0xF0, 0xAE, 0xA7, 0x23, 0xF0, 0xAF, 0xA0, 0x4F, 0x70, +0xB0, 0x87, 0x05, 0xF0, 0xB1, 0x89, 0x6B, 0xF0, 0xB2, 0x70, 0x4C, 0xA0, 0xB3, 0x72, 0xB2, 0xA0, +0xB4, 0x50, 0x2E, 0xA0, 0xB5, 0x49, 0x5A, 0x20, 0xB6, 0x30, 0x10, 0xA0, 0xB7, 0x32, 0x76, 0xA0, +0xB8, 0x0F, 0xF2, 0xA0, 0xB8, 0xFF, 0xE3, 0xA0, 0xB9, 0xEF, 0xD4, 0xA0, 0xBA, 0xD6, 0x8B, 0x20, +0xBB, 0xD8, 0xF1, 0x20, 0xBC, 0xC8, 0xE2, 0x20, 0xBD, 0xB8, 0xD3, 0x20, 0xBE, 0x9F, 0x89, 0xA0, +0xBF, 0x98, 0xB5, 0x20, 0xC0, 0x9B, 0x1B, 0x20, 0xC1, 0x78, 0x97, 0x20, 0xC2, 0x68, 0x88, 0x20, +0xC3, 0x58, 0x79, 0x20, 0xC4, 0x3F, 0x2F, 0xA0, 0xC5, 0x38, 0x5B, 0x20, 0xC6, 0x3A, 0xC1, 0x20, +0xC7, 0x58, 0xD6, 0xA0, 0xC7, 0xDA, 0x09, 0xA0, 0xC8, 0x4A, 0x19, 0x20, 0xCC, 0xE7, 0x4B, 0x10, +0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x5B, 0xBF, 0x60, +0xD0, 0x6E, 0x5E, 0x90, 0xD1, 0x72, 0x16, 0x10, 0xD2, 0x4E, 0x40, 0x90, 0xD3, 0x91, 0x40, 0x10, +0xD4, 0x4B, 0x23, 0x90, 0x0D, 0x2A, 0xFD, 0x70, 0x0D, 0xA4, 0x63, 0x90, 0x0E, 0x8B, 0x1A, 0x10, +0x0F, 0x84, 0x45, 0x90, 0x10, 0x74, 0x36, 0x90, 0x11, 0x64, 0x27, 0x90, 0x12, 0x54, 0x18, 0x90, +0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x01, 0x04, 0x01, 0x02, 0x03, 0x02, 0x03, 0x07, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x01, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, +0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x0D, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, +0x00, 0x0E, 0x10, 0x00, 0x04, 0x57, 0x45, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, +0x54, 0x00, 0x57, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xD6, 0xE5, 0x05, 0x01, +0x19, 0x45, 0x35, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Bucharest */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0D, 0xB7, 0xB0, 0xD2, 0x08, +0xB9, 0x3E, 0xF3, 0x60, 0xB9, 0xEF, 0x9C, 0x60, 0xBA, 0xDF, 0x8D, 0x60, 0xBB, 0xCF, 0x7E, 0x60, +0xBC, 0xC8, 0xA9, 0xE0, 0xBD, 0xB8, 0x9A, 0xE0, 0xBE, 0xA8, 0x8B, 0xE0, 0xBF, 0x98, 0x7C, 0xE0, +0xC0, 0x88, 0x6D, 0xE0, 0xC1, 0x78, 0x5E, 0xE0, 0xC2, 0x68, 0x4F, 0xE0, 0xC3, 0x58, 0x40, 0xE0, +0xC4, 0x48, 0x31, 0xE0, 0xC5, 0x38, 0x22, 0xE0, 0xC6, 0x28, 0x13, 0xE0, 0xC7, 0x18, 0x04, 0xE0, +0x11, 0xAD, 0xD1, 0x60, 0x12, 0x53, 0xE0, 0x50, 0x13, 0x4D, 0x0B, 0xD0, 0x14, 0x33, 0xD0, 0x60, +0x15, 0x23, 0xDD, 0x80, 0x16, 0x13, 0xCE, 0x80, 0x17, 0x03, 0xBF, 0x80, 0x17, 0xF3, 0xB0, 0x80, +0x18, 0xE3, 0xA1, 0x80, 0x19, 0xD3, 0x92, 0x80, 0x1A, 0xC3, 0x83, 0x80, 0x1B, 0xBC, 0xAF, 0x00, +0x1C, 0xAC, 0xA0, 0x00, 0x1D, 0x9C, 0x91, 0x00, 0x1E, 0x8C, 0x82, 0x00, 0x1F, 0x7C, 0x73, 0x00, +0x20, 0x6C, 0x64, 0x00, 0x21, 0x5C, 0x55, 0x00, 0x22, 0x4C, 0x46, 0x00, 0x23, 0x3C, 0x37, 0x00, +0x24, 0x2C, 0x28, 0x00, 0x25, 0x1C, 0x19, 0x00, 0x26, 0x0C, 0x0A, 0x00, 0x27, 0x05, 0x35, 0x80, +0x27, 0x7F, 0xB4, 0xE0, 0x27, 0xF5, 0x0A, 0x60, 0x28, 0xE4, 0xFB, 0x60, 0x29, 0xD4, 0xEC, 0x60, +0x2A, 0xC4, 0xDD, 0x60, 0x2B, 0xB4, 0xCE, 0x60, 0x2C, 0xA4, 0xBF, 0x60, 0x2D, 0x24, 0xA0, 0xE0, +0x2D, 0x94, 0xB0, 0x60, 0x2E, 0x84, 0x93, 0x50, 0x2F, 0x74, 0x92, 0x60, 0x30, 0x64, 0x75, 0x50, +0x31, 0x5D, 0xAE, 0xE0, 0x32, 0x72, 0x7B, 0xD0, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x04, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x03, 0x04, 0x03, 0x04, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x00, 0x00, 0x18, 0x78, 0x00, 0x00, 0x00, +0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, +0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, +0x20, 0x00, 0x09, 0x42, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, +0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xCD, +0x21, 0x05, 0x01, 0x3A, 0x7B, 0xD0, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Budapest */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x48, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x0C, 0x17, 0x60, +0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xD9, 0xAE, 0x90, 0x9D, 0xA4, 0xB5, 0x90, 0x9E, 0x30, 0x58, 0x70, +0x9E, 0xA7, 0x29, 0xA0, 0x9F, 0x95, 0xBB, 0x10, 0xA0, 0x9A, 0xD2, 0x20, 0xA1, 0x64, 0x79, 0x90, +0xA2, 0x70, 0x28, 0x20, 0xA3, 0x5A, 0xC5, 0x10, 0xC9, 0xF1, 0x3C, 0x90, 0xCC, 0xE7, 0x4B, 0x10, +0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x82, 0x25, 0x10, +0xD0, 0xFA, 0x01, 0x70, 0xD1, 0x99, 0x78, 0xE0, 0xD2, 0x8D, 0x5E, 0x60, 0xD3, 0x50, 0xA6, 0x90, +0xD4, 0x49, 0xD2, 0x10, 0xD5, 0x39, 0xC3, 0x10, 0xD6, 0x29, 0xB4, 0x10, 0xD7, 0x19, 0xA5, 0x10, +0xD8, 0x09, 0x96, 0x10, 0xD9, 0x02, 0xC1, 0x90, 0xD9, 0xE9, 0x78, 0x10, 0xDA, 0xED, 0x2F, 0x90, +0xDB, 0xE6, 0x5B, 0x10, 0xE2, 0xA2, 0xA8, 0xF0, 0xE3, 0x51, 0xF2, 0x60, 0xE4, 0x83, 0xDC, 0x70, +0xE5, 0x33, 0x25, 0xE0, 0xE6, 0x74, 0xE1, 0xF0, 0xE7, 0x11, 0xB6, 0x60, 0xE8, 0x54, 0xD2, 0x00, +0xE8, 0xF1, 0xC2, 0x90, 0x13, 0x4D, 0x36, 0x00, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, +0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, +0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, +0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, +0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, +0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, +0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, +0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, +0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x03, 0x02, 0x03, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x00, 0x00, +0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, +0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, +0x01, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, +0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xD1, 0xCE, 0xF0, 0x01, 0x2F, 0xC6, 0xED, 0x00, +0x00, 0x00, 0x00, + +/* Europe/Chisinau */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x22, 0x9E, 0x6B, 0x9F, 0x0C, +0xB7, 0xB0, 0xD2, 0x08, 0xB9, 0x3E, 0xF3, 0x60, 0xB9, 0xEF, 0x9C, 0x60, 0xBA, 0xDF, 0x8D, 0x60, +0xBB, 0xCF, 0x7E, 0x60, 0xBC, 0xC8, 0xA9, 0xE0, 0xBD, 0xB8, 0x9A, 0xE0, 0xBE, 0xA8, 0x8B, 0xE0, +0xBF, 0x98, 0x7C, 0xE0, 0xC0, 0x88, 0x6D, 0xE0, 0xC1, 0x78, 0x5E, 0xE0, 0xC2, 0x68, 0x4F, 0xE0, +0xC3, 0x58, 0x40, 0xE0, 0xC4, 0x48, 0x31, 0xE0, 0xC5, 0x38, 0x22, 0xE0, 0xC6, 0x28, 0x13, 0xE0, +0xC7, 0x18, 0x04, 0xE0, 0xC8, 0xBC, 0x93, 0x60, 0xCA, 0x77, 0x7D, 0x50, 0xCC, 0xE7, 0x4B, 0x10, +0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x4E, 0x90, 0x60, +0x15, 0x27, 0xA7, 0xD0, 0x16, 0x18, 0xDC, 0x40, 0x17, 0x08, 0xDB, 0x50, 0x17, 0xFA, 0x0F, 0xC0, +0x18, 0xEA, 0x0E, 0xD0, 0x19, 0xDB, 0x43, 0x40, 0x1A, 0xCC, 0x93, 0xD0, 0x1B, 0xBC, 0xA0, 0xF0, +0x1C, 0xAC, 0x91, 0xF0, 0x1D, 0x9C, 0x82, 0xF0, 0x1E, 0x8C, 0x73, 0xF0, 0x1F, 0x7C, 0x64, 0xF0, +0x20, 0x6C, 0x55, 0xF0, 0x21, 0x5C, 0x46, 0xF0, 0x22, 0x4C, 0x37, 0xF0, 0x23, 0x3C, 0x28, 0xF0, +0x24, 0x2C, 0x19, 0xF0, 0x25, 0x1C, 0x0A, 0xF0, 0x25, 0x9E, 0x73, 0x50, 0x26, 0x43, 0x3E, 0xD0, +0x27, 0xF5, 0x26, 0x80, 0x28, 0xE5, 0x17, 0x80, 0x29, 0x60, 0xE8, 0x60, 0x29, 0xD4, 0xEC, 0x60, +0x2A, 0xC4, 0xCF, 0x50, 0x2B, 0xB4, 0xCE, 0x60, 0x2C, 0xA4, 0xB1, 0x50, 0x2D, 0x94, 0xB0, 0x60, +0x2E, 0x84, 0x93, 0x50, 0x2F, 0x74, 0x92, 0x60, 0x30, 0x64, 0x75, 0x50, 0x31, 0x5D, 0xAE, 0xE0, +0x32, 0x72, 0x7B, 0xD0, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x04, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x08, +0x06, 0x07, 0x06, 0x07, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0B, 0x0C, 0x0B, 0x0C, +0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0A, 0x04, 0x02, 0x03, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, +0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, +0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, +0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, +0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, +0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x00, 0x00, 0x1A, 0xF4, 0x00, 0x00, 0x00, 0x00, +0x18, 0x78, 0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, +0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, +0x00, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x15, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x15, 0x00, 0x00, +0x38, 0x40, 0x01, 0x1A, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x1E, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x1E, +0x00, 0x00, 0x38, 0x40, 0x01, 0x1A, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x08, 0x00, 0x00, 0x1C, 0x20, +0x00, 0x0D, 0x43, 0x4D, 0x54, 0x00, 0x42, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, +0x45, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x44, 0x00, +0x4D, 0x53, 0x4B, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, +0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x01, 0x01, 0x00, 0xD1, 0x0B, 0xA0, 0x01, 0x3E, 0xA7, 0x85, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Copenhagen */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x44, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x1E, 0x8C, 0x60, +0x9B, 0xD5, 0xBE, 0xD0, 0xC8, 0x43, 0x57, 0x70, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x82, 0x25, 0x10, 0xD1, 0x72, 0x16, 0x10, +0xD2, 0x24, 0x10, 0x90, 0xD3, 0x79, 0x85, 0x10, 0xD4, 0x1B, 0xAD, 0x90, 0xD5, 0x5E, 0xAD, 0x10, +0xD5, 0xDF, 0xE0, 0x10, 0xD7, 0x47, 0xC9, 0x90, 0xD7, 0xBF, 0xC2, 0x10, 0x12, 0xCE, 0x97, 0xF0, +0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x00, 0x01, 0x00, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, +0x05, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x1C, +0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, +0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xDE, +0x45, 0x0A, 0x01, 0x25, 0xDB, 0xDD, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Dublin */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x49, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x26, 0xB3, 0x91, +0x9B, 0xD6, 0x0B, 0x11, 0x9C, 0xCF, 0x30, 0xA0, 0x9D, 0xA4, 0xC3, 0xA0, 0x9E, 0x9C, 0x9D, 0xA0, +0x9F, 0x97, 0x1A, 0xA0, 0xA0, 0x85, 0xBA, 0x20, 0xA1, 0x76, 0xFC, 0xA0, 0xA2, 0x65, 0x9C, 0x20, +0xA3, 0x7B, 0xC8, 0xA0, 0xA4, 0x4E, 0xB8, 0xA0, 0xA5, 0x3F, 0xFB, 0x20, 0xA5, 0x94, 0x3F, 0x00, +0xA6, 0x25, 0x60, 0x20, 0xA7, 0x27, 0xC6, 0x20, 0xA8, 0x2A, 0x2C, 0x20, 0xA8, 0xEB, 0xF8, 0xA0, +0xAA, 0x00, 0xD3, 0xA0, 0xAA, 0xD5, 0x15, 0x20, 0xAB, 0xE9, 0xF0, 0x20, 0xAC, 0xC7, 0x6C, 0x20, +0xAD, 0xC9, 0xD2, 0x20, 0xAE, 0xA7, 0x4E, 0x20, 0xAF, 0xA0, 0x79, 0xA0, 0xB0, 0x87, 0x30, 0x20, +0xB1, 0x92, 0xD0, 0xA0, 0xB2, 0x70, 0x4C, 0xA0, 0xB3, 0x72, 0xB2, 0xA0, 0xB4, 0x50, 0x2E, 0xA0, +0xB5, 0x49, 0x5A, 0x20, 0xB6, 0x30, 0x10, 0xA0, 0xB7, 0x32, 0x76, 0xA0, 0xB8, 0x0F, 0xF2, 0xA0, +0xB9, 0x12, 0x58, 0xA0, 0xB9, 0xEF, 0xD4, 0xA0, 0xBA, 0xE9, 0x00, 0x20, 0xBB, 0xD8, 0xF1, 0x20, +0xBC, 0xDB, 0x57, 0x20, 0xBD, 0xB8, 0xD3, 0x20, 0xBE, 0xB1, 0xFE, 0xA0, 0xBF, 0x98, 0xB5, 0x20, +0xC0, 0x9B, 0x1B, 0x20, 0xC1, 0x78, 0x97, 0x20, 0xC2, 0x7A, 0xFD, 0x20, 0xC3, 0x58, 0x79, 0x20, +0xC4, 0x51, 0xA4, 0xA0, 0xC5, 0x38, 0x5B, 0x20, 0xC6, 0x3A, 0xC1, 0x20, 0xC7, 0x58, 0xD6, 0xA0, +0xC7, 0xDA, 0x09, 0xA0, 0xD4, 0x49, 0xD2, 0x10, 0xD5, 0x1E, 0x21, 0xA0, 0xD6, 0x4E, 0x9E, 0x10, +0xD7, 0x2C, 0x28, 0x20, 0xD8, 0x2E, 0x8E, 0x20, 0xD8, 0xF9, 0x95, 0x20, 0xDA, 0x0E, 0x70, 0x20, +0xDA, 0xEB, 0xEC, 0x20, 0xDB, 0xE5, 0x17, 0xA0, 0xDC, 0xCB, 0xCE, 0x20, 0xDD, 0xC4, 0xF9, 0xA0, +0xDE, 0xB4, 0xEA, 0xA0, 0xDF, 0xAE, 0x16, 0x20, 0xE0, 0x94, 0xCC, 0xA0, 0xE1, 0x72, 0x48, 0xA0, +0xE2, 0x6B, 0x74, 0x20, 0xE3, 0x52, 0x2A, 0xA0, 0xE4, 0x54, 0x90, 0xA0, 0xE5, 0x32, 0x0C, 0xA0, +0xE6, 0x3D, 0xAD, 0x20, 0xE7, 0x1B, 0x29, 0x20, 0xE8, 0x14, 0x54, 0xA0, 0xE8, 0xFB, 0x0B, 0x20, +0xE9, 0xFD, 0x71, 0x20, 0xEA, 0xDA, 0xED, 0x20, 0xEB, 0xDD, 0x53, 0x20, 0xEC, 0xBA, 0xCF, 0x20, +0xED, 0xB3, 0xFA, 0xA0, 0xEE, 0x9A, 0xB1, 0x20, 0xEF, 0x81, 0x67, 0xA0, 0xF0, 0x9F, 0x7D, 0x20, +0xF1, 0x61, 0x49, 0xA0, 0xF2, 0x7F, 0x5F, 0x20, 0xF3, 0x4A, 0x66, 0x20, 0xF4, 0x5F, 0x41, 0x20, +0xF5, 0x21, 0x0D, 0xA0, 0xF6, 0x3F, 0x23, 0x20, 0xF7, 0x00, 0xEF, 0xA0, 0xF8, 0x1F, 0x05, 0x20, +0xF8, 0xE0, 0xD1, 0xA0, 0xF9, 0xFE, 0xE7, 0x20, 0xFA, 0xC0, 0xB3, 0xA0, 0xFB, 0xE8, 0x03, 0xA0, +0xFC, 0x7B, 0xAB, 0xA0, 0xFD, 0xC7, 0xBB, 0x70, 0x03, 0x70, 0xC6, 0x20, 0x04, 0x29, 0x58, 0x20, +0x05, 0x50, 0xA8, 0x20, 0x06, 0x09, 0x3A, 0x20, 0x07, 0x30, 0x8A, 0x20, 0x07, 0xE9, 0x1C, 0x20, +0x09, 0x10, 0x6C, 0x20, 0x09, 0xC8, 0xFE, 0x20, 0x0A, 0xF0, 0x4E, 0x20, 0x0B, 0xB2, 0x1A, 0xA0, +0x0C, 0xD0, 0x30, 0x20, 0x0D, 0x91, 0xFC, 0xA0, 0x0E, 0xB0, 0x12, 0x20, 0x0F, 0x71, 0xDE, 0xA0, +0x10, 0x99, 0x2E, 0xA0, 0x11, 0x51, 0xC0, 0xA0, 0x12, 0x79, 0x10, 0xA0, 0x13, 0x31, 0xA2, 0xA0, +0x14, 0x58, 0xF2, 0xA0, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x38, 0xC6, 0x90, 0x17, 0x03, 0xCD, 0x90, +0x18, 0x18, 0xA8, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xF8, 0x8A, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xE1, 0xA7, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0xC1, 0x89, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0xA1, 0x6B, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x81, 0x4D, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x61, 0x2F, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x4A, 0x4B, 0x90, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x2A, 0x2D, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x29, 0x0A, 0x0F, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xE9, 0xF1, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xC9, 0xD3, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0xA9, 0xB5, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x89, 0x97, 0x90, 0x30, 0xE7, 0x24, 0x00, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x06, 0x05, 0x06, 0x05, 0x06, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x07, 0x09, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x05, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0xFF, 0xFF, 0xFA, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1F, 0x01, +0x04, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0E, +0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, +0x00, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, +0x0C, 0x44, 0x4D, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, +0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xDA, 0xB5, 0x95, 0x01, 0x09, 0x1F, 0x18, 0x00, 0x00, 0x00, +0x00, + +/* Europe/Gibraltar */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x9B, 0x26, 0xAD, 0xA0, +0x9B, 0xD6, 0x05, 0x20, 0x9C, 0xCF, 0x30, 0xA0, 0x9D, 0xA4, 0xC3, 0xA0, 0x9E, 0x9C, 0x9D, 0xA0, +0x9F, 0x97, 0x1A, 0xA0, 0xA0, 0x85, 0xBA, 0x20, 0xA1, 0x76, 0xFC, 0xA0, 0xA2, 0x65, 0x9C, 0x20, +0xA3, 0x7B, 0xC8, 0xA0, 0xA4, 0x4E, 0xB8, 0xA0, 0xA5, 0x3F, 0xFB, 0x20, 0xA6, 0x25, 0x60, 0x20, +0xA7, 0x27, 0xC6, 0x20, 0xA8, 0x2A, 0x2C, 0x20, 0xA8, 0xEB, 0xF8, 0xA0, 0xAA, 0x00, 0xD3, 0xA0, +0xAA, 0xD5, 0x15, 0x20, 0xAB, 0xE9, 0xF0, 0x20, 0xAC, 0xC7, 0x6C, 0x20, 0xAD, 0xC9, 0xD2, 0x20, +0xAE, 0xA7, 0x4E, 0x20, 0xAF, 0xA0, 0x79, 0xA0, 0xB0, 0x87, 0x30, 0x20, 0xB1, 0x92, 0xD0, 0xA0, +0xB2, 0x70, 0x4C, 0xA0, 0xB3, 0x72, 0xB2, 0xA0, 0xB4, 0x50, 0x2E, 0xA0, 0xB5, 0x49, 0x5A, 0x20, +0xB6, 0x30, 0x10, 0xA0, 0xB7, 0x32, 0x76, 0xA0, 0xB8, 0x0F, 0xF2, 0xA0, 0xB9, 0x12, 0x58, 0xA0, +0xB9, 0xEF, 0xD4, 0xA0, 0xBA, 0xE9, 0x00, 0x20, 0xBB, 0xD8, 0xF1, 0x20, 0xBC, 0xDB, 0x57, 0x20, +0xBD, 0xB8, 0xD3, 0x20, 0xBE, 0xB1, 0xFE, 0xA0, 0xBF, 0x98, 0xB5, 0x20, 0xC0, 0x9B, 0x1B, 0x20, +0xC1, 0x78, 0x97, 0x20, 0xC2, 0x7A, 0xFD, 0x20, 0xC3, 0x58, 0x79, 0x20, 0xC4, 0x51, 0xA4, 0xA0, +0xC5, 0x38, 0x5B, 0x20, 0xC6, 0x3A, 0xC1, 0x20, 0xC7, 0x58, 0xD6, 0xA0, 0xC7, 0xDA, 0x09, 0xA0, +0xCA, 0x16, 0x26, 0x90, 0xCA, 0x97, 0x59, 0x90, 0xCB, 0xD1, 0x1E, 0x90, 0xCC, 0x77, 0x3B, 0x90, +0xCD, 0xB1, 0x00, 0x90, 0xCE, 0x60, 0x58, 0x10, 0xCF, 0x90, 0xE2, 0x90, 0xD0, 0x6E, 0x5E, 0x90, +0xD1, 0x72, 0x16, 0x10, 0xD1, 0xFB, 0x32, 0x10, 0xD2, 0x69, 0xFE, 0x20, 0xD3, 0x63, 0x29, 0xA0, +0xD4, 0x49, 0xE0, 0x20, 0xD5, 0x1E, 0x21, 0xA0, 0xD5, 0x42, 0xFD, 0x90, 0xD5, 0xDF, 0xE0, 0x10, +0xD6, 0x4E, 0xAC, 0x20, 0xD6, 0xFE, 0x03, 0xA0, 0xD8, 0x2E, 0x8E, 0x20, 0xD8, 0xF9, 0x95, 0x20, +0xDA, 0x0E, 0x70, 0x20, 0xDA, 0xEB, 0xEC, 0x20, 0xDB, 0xE5, 0x17, 0xA0, 0xDC, 0xCB, 0xCE, 0x20, +0xDD, 0xC4, 0xF9, 0xA0, 0xDE, 0xB4, 0xEA, 0xA0, 0xDF, 0xAE, 0x16, 0x20, 0xE0, 0x94, 0xCC, 0xA0, +0xE1, 0x72, 0x48, 0xA0, 0xE2, 0x6B, 0x74, 0x20, 0xE3, 0x52, 0x2A, 0xA0, 0xE4, 0x54, 0x90, 0xA0, +0xE5, 0x32, 0x0C, 0xA0, 0xE6, 0x3D, 0xAD, 0x20, 0xE7, 0x1B, 0x29, 0x20, 0xE8, 0x14, 0x54, 0xA0, +0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x03, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0D, 0x00, 0x00, 0x1C, +0x20, 0x01, 0x11, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0D, 0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, +0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x01, +0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xC0, 0x76, 0xD5, 0x01, +0x0A, 0x7E, 0xA8, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Guernsey */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0D, 0x9B, 0x26, 0xAD, 0xA0, +0x9B, 0xD6, 0x05, 0x20, 0x9C, 0xCF, 0x30, 0xA0, 0x9D, 0xA4, 0xC3, 0xA0, 0x9E, 0x9C, 0x9D, 0xA0, +0x9F, 0x97, 0x1A, 0xA0, 0xA0, 0x85, 0xBA, 0x20, 0xA1, 0x76, 0xFC, 0xA0, 0xA2, 0x65, 0x9C, 0x20, +0xA3, 0x7B, 0xC8, 0xA0, 0xA4, 0x4E, 0xB8, 0xA0, 0xA5, 0x3F, 0xFB, 0x20, 0xA6, 0x25, 0x60, 0x20, +0xA7, 0x27, 0xC6, 0x20, 0xA8, 0x2A, 0x2C, 0x20, 0xA8, 0xEB, 0xF8, 0xA0, 0xAA, 0x00, 0xD3, 0xA0, +0xAA, 0xD5, 0x15, 0x20, 0xAB, 0xE9, 0xF0, 0x20, 0xAC, 0xC7, 0x6C, 0x20, 0xAD, 0xC9, 0xD2, 0x20, +0xAE, 0xA7, 0x4E, 0x20, 0xAF, 0xA0, 0x79, 0xA0, 0xB0, 0x87, 0x30, 0x20, 0xB1, 0x92, 0xD0, 0xA0, +0xB2, 0x70, 0x4C, 0xA0, 0xB3, 0x72, 0xB2, 0xA0, 0xB4, 0x50, 0x2E, 0xA0, 0xB5, 0x49, 0x5A, 0x20, +0xB6, 0x30, 0x10, 0xA0, 0xB7, 0x32, 0x76, 0xA0, 0xB8, 0x0F, 0xF2, 0xA0, 0xB9, 0x12, 0x58, 0xA0, +0xB9, 0xEF, 0xD4, 0xA0, 0xBA, 0xE9, 0x00, 0x20, 0xBB, 0xD8, 0xF1, 0x20, 0xBC, 0xDB, 0x57, 0x20, +0xBD, 0xB8, 0xD3, 0x20, 0xBE, 0xB1, 0xFE, 0xA0, 0xBF, 0x98, 0xB5, 0x20, 0xC0, 0x9B, 0x1B, 0x20, +0xC1, 0x78, 0x97, 0x20, 0xC2, 0x7A, 0xFD, 0x20, 0xC3, 0x58, 0x79, 0x20, 0xC4, 0x51, 0xA4, 0xA0, +0xC5, 0x38, 0x5B, 0x20, 0xC6, 0x3A, 0xC1, 0x20, 0xC7, 0x58, 0xD6, 0xA0, 0xC7, 0xDA, 0x09, 0xA0, +0xCA, 0x16, 0x26, 0x90, 0xCA, 0x97, 0x59, 0x90, 0xCB, 0xD1, 0x1E, 0x90, 0xCC, 0x77, 0x3B, 0x90, +0xCD, 0xB1, 0x00, 0x90, 0xCE, 0x60, 0x58, 0x10, 0xCF, 0x90, 0xE2, 0x90, 0xD0, 0x6E, 0x5E, 0x90, +0xD1, 0x72, 0x16, 0x10, 0xD1, 0xFB, 0x32, 0x10, 0xD2, 0x69, 0xFE, 0x20, 0xD3, 0x63, 0x29, 0xA0, +0xD4, 0x49, 0xE0, 0x20, 0xD5, 0x1E, 0x21, 0xA0, 0xD5, 0x42, 0xFD, 0x90, 0xD5, 0xDF, 0xE0, 0x10, +0xD6, 0x4E, 0xAC, 0x20, 0xD6, 0xFE, 0x03, 0xA0, 0xD8, 0x2E, 0x8E, 0x20, 0xD8, 0xF9, 0x95, 0x20, +0xDA, 0x0E, 0x70, 0x20, 0xDA, 0xEB, 0xEC, 0x20, 0xDB, 0xE5, 0x17, 0xA0, 0xDC, 0xCB, 0xCE, 0x20, +0xDD, 0xC4, 0xF9, 0xA0, 0xDE, 0xB4, 0xEA, 0xA0, 0xDF, 0xAE, 0x16, 0x20, 0xE0, 0x94, 0xCC, 0xA0, +0xE1, 0x72, 0x48, 0xA0, 0xE2, 0x6B, 0x74, 0x20, 0xE3, 0x52, 0x2A, 0xA0, 0xE4, 0x54, 0x90, 0xA0, +0xE5, 0x32, 0x0C, 0xA0, 0xE6, 0x3D, 0xAD, 0x20, 0xE7, 0x1B, 0x29, 0x20, 0xE8, 0x14, 0x54, 0xA0, +0xE8, 0xFB, 0x0B, 0x20, 0xE9, 0xFD, 0x71, 0x20, 0xEA, 0xDA, 0xED, 0x20, 0xEB, 0xDD, 0x53, 0x20, +0xEC, 0xBA, 0xCF, 0x20, 0xED, 0xB3, 0xFA, 0xA0, 0xEE, 0x9A, 0xB1, 0x20, 0xEF, 0x81, 0x67, 0xA0, +0xF0, 0x9F, 0x7D, 0x20, 0xF1, 0x61, 0x49, 0xA0, 0xF2, 0x7F, 0x5F, 0x20, 0xF3, 0x4A, 0x66, 0x20, +0xF4, 0x5F, 0x41, 0x20, 0xF5, 0x21, 0x0D, 0xA0, 0xF6, 0x3F, 0x23, 0x20, 0xF7, 0x00, 0xEF, 0xA0, +0xF8, 0x1F, 0x05, 0x20, 0xF8, 0xE0, 0xD1, 0xA0, 0xF9, 0xFE, 0xE7, 0x20, 0xFA, 0xC0, 0xB3, 0xA0, +0xFB, 0xE8, 0x03, 0xA0, 0xFC, 0x7B, 0xAB, 0xA0, 0xFD, 0xC7, 0xBB, 0x70, 0x03, 0x70, 0xC6, 0x20, +0x04, 0x29, 0x58, 0x20, 0x05, 0x50, 0xA8, 0x20, 0x06, 0x09, 0x3A, 0x20, 0x07, 0x30, 0x8A, 0x20, +0x07, 0xE9, 0x1C, 0x20, 0x09, 0x10, 0x6C, 0x20, 0x09, 0xC8, 0xFE, 0x20, 0x0A, 0xF0, 0x4E, 0x20, +0x0B, 0xB2, 0x1A, 0xA0, 0x0C, 0xD0, 0x30, 0x20, 0x0D, 0x91, 0xFC, 0xA0, 0x0E, 0xB0, 0x12, 0x20, +0x0F, 0x71, 0xDE, 0xA0, 0x10, 0x99, 0x2E, 0xA0, 0x11, 0x51, 0xC0, 0xA0, 0x12, 0x79, 0x10, 0xA0, +0x13, 0x31, 0xA2, 0xA0, 0x14, 0x58, 0xF2, 0xA0, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x38, 0xC6, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x18, 0x18, 0xA8, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xF8, 0x8A, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xE1, 0xA7, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0xC1, 0x89, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0xA1, 0x6B, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x81, 0x4D, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x61, 0x2F, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x4A, 0x4B, 0x90, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x2A, 0x2D, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x29, 0x0A, 0x0F, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xE9, 0xF1, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xC9, 0xD3, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0xA9, 0xB5, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x89, 0x97, 0x90, +0x30, 0xE7, 0x24, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, +0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, +0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x06, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, +0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, +0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x01, 0x01, 0x01, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xD4, 0xC8, 0xA7, 0x01, +0x0E, 0xCA, 0xEA, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Helsinki */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x46, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D, 0xA4, 0x73, 0x6F, 0x18, +0xCB, 0xCE, 0x51, 0x60, 0xCC, 0xBF, 0x85, 0xD0, 0x15, 0x23, 0xDD, 0x80, 0x16, 0x13, 0xCE, 0x80, +0x17, 0x03, 0xBF, 0x80, 0x17, 0xF3, 0xB0, 0x80, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x00, 0x00, 0x17, 0x68, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, +0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, +0x20, 0x00, 0x09, 0x48, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xE5, 0x22, 0xDA, 0x01, 0x38, +0xC1, 0x1A, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Isle_of_Man */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x49, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0D, 0x9B, 0x26, 0xAD, 0xA0, +0x9B, 0xD6, 0x05, 0x20, 0x9C, 0xCF, 0x30, 0xA0, 0x9D, 0xA4, 0xC3, 0xA0, 0x9E, 0x9C, 0x9D, 0xA0, +0x9F, 0x97, 0x1A, 0xA0, 0xA0, 0x85, 0xBA, 0x20, 0xA1, 0x76, 0xFC, 0xA0, 0xA2, 0x65, 0x9C, 0x20, +0xA3, 0x7B, 0xC8, 0xA0, 0xA4, 0x4E, 0xB8, 0xA0, 0xA5, 0x3F, 0xFB, 0x20, 0xA6, 0x25, 0x60, 0x20, +0xA7, 0x27, 0xC6, 0x20, 0xA8, 0x2A, 0x2C, 0x20, 0xA8, 0xEB, 0xF8, 0xA0, 0xAA, 0x00, 0xD3, 0xA0, +0xAA, 0xD5, 0x15, 0x20, 0xAB, 0xE9, 0xF0, 0x20, 0xAC, 0xC7, 0x6C, 0x20, 0xAD, 0xC9, 0xD2, 0x20, +0xAE, 0xA7, 0x4E, 0x20, 0xAF, 0xA0, 0x79, 0xA0, 0xB0, 0x87, 0x30, 0x20, 0xB1, 0x92, 0xD0, 0xA0, +0xB2, 0x70, 0x4C, 0xA0, 0xB3, 0x72, 0xB2, 0xA0, 0xB4, 0x50, 0x2E, 0xA0, 0xB5, 0x49, 0x5A, 0x20, +0xB6, 0x30, 0x10, 0xA0, 0xB7, 0x32, 0x76, 0xA0, 0xB8, 0x0F, 0xF2, 0xA0, 0xB9, 0x12, 0x58, 0xA0, +0xB9, 0xEF, 0xD4, 0xA0, 0xBA, 0xE9, 0x00, 0x20, 0xBB, 0xD8, 0xF1, 0x20, 0xBC, 0xDB, 0x57, 0x20, +0xBD, 0xB8, 0xD3, 0x20, 0xBE, 0xB1, 0xFE, 0xA0, 0xBF, 0x98, 0xB5, 0x20, 0xC0, 0x9B, 0x1B, 0x20, +0xC1, 0x78, 0x97, 0x20, 0xC2, 0x7A, 0xFD, 0x20, 0xC3, 0x58, 0x79, 0x20, 0xC4, 0x51, 0xA4, 0xA0, +0xC5, 0x38, 0x5B, 0x20, 0xC6, 0x3A, 0xC1, 0x20, 0xC7, 0x58, 0xD6, 0xA0, 0xC7, 0xDA, 0x09, 0xA0, +0xCA, 0x16, 0x26, 0x90, 0xCA, 0x97, 0x59, 0x90, 0xCB, 0xD1, 0x1E, 0x90, 0xCC, 0x77, 0x3B, 0x90, +0xCD, 0xB1, 0x00, 0x90, 0xCE, 0x60, 0x58, 0x10, 0xCF, 0x90, 0xE2, 0x90, 0xD0, 0x6E, 0x5E, 0x90, +0xD1, 0x72, 0x16, 0x10, 0xD1, 0xFB, 0x32, 0x10, 0xD2, 0x69, 0xFE, 0x20, 0xD3, 0x63, 0x29, 0xA0, +0xD4, 0x49, 0xE0, 0x20, 0xD5, 0x1E, 0x21, 0xA0, 0xD5, 0x42, 0xFD, 0x90, 0xD5, 0xDF, 0xE0, 0x10, +0xD6, 0x4E, 0xAC, 0x20, 0xD6, 0xFE, 0x03, 0xA0, 0xD8, 0x2E, 0x8E, 0x20, 0xD8, 0xF9, 0x95, 0x20, +0xDA, 0x0E, 0x70, 0x20, 0xDA, 0xEB, 0xEC, 0x20, 0xDB, 0xE5, 0x17, 0xA0, 0xDC, 0xCB, 0xCE, 0x20, +0xDD, 0xC4, 0xF9, 0xA0, 0xDE, 0xB4, 0xEA, 0xA0, 0xDF, 0xAE, 0x16, 0x20, 0xE0, 0x94, 0xCC, 0xA0, +0xE1, 0x72, 0x48, 0xA0, 0xE2, 0x6B, 0x74, 0x20, 0xE3, 0x52, 0x2A, 0xA0, 0xE4, 0x54, 0x90, 0xA0, +0xE5, 0x32, 0x0C, 0xA0, 0xE6, 0x3D, 0xAD, 0x20, 0xE7, 0x1B, 0x29, 0x20, 0xE8, 0x14, 0x54, 0xA0, +0xE8, 0xFB, 0x0B, 0x20, 0xE9, 0xFD, 0x71, 0x20, 0xEA, 0xDA, 0xED, 0x20, 0xEB, 0xDD, 0x53, 0x20, +0xEC, 0xBA, 0xCF, 0x20, 0xED, 0xB3, 0xFA, 0xA0, 0xEE, 0x9A, 0xB1, 0x20, 0xEF, 0x81, 0x67, 0xA0, +0xF0, 0x9F, 0x7D, 0x20, 0xF1, 0x61, 0x49, 0xA0, 0xF2, 0x7F, 0x5F, 0x20, 0xF3, 0x4A, 0x66, 0x20, +0xF4, 0x5F, 0x41, 0x20, 0xF5, 0x21, 0x0D, 0xA0, 0xF6, 0x3F, 0x23, 0x20, 0xF7, 0x00, 0xEF, 0xA0, +0xF8, 0x1F, 0x05, 0x20, 0xF8, 0xE0, 0xD1, 0xA0, 0xF9, 0xFE, 0xE7, 0x20, 0xFA, 0xC0, 0xB3, 0xA0, +0xFB, 0xE8, 0x03, 0xA0, 0xFC, 0x7B, 0xAB, 0xA0, 0xFD, 0xC7, 0xBB, 0x70, 0x03, 0x70, 0xC6, 0x20, +0x04, 0x29, 0x58, 0x20, 0x05, 0x50, 0xA8, 0x20, 0x06, 0x09, 0x3A, 0x20, 0x07, 0x30, 0x8A, 0x20, +0x07, 0xE9, 0x1C, 0x20, 0x09, 0x10, 0x6C, 0x20, 0x09, 0xC8, 0xFE, 0x20, 0x0A, 0xF0, 0x4E, 0x20, +0x0B, 0xB2, 0x1A, 0xA0, 0x0C, 0xD0, 0x30, 0x20, 0x0D, 0x91, 0xFC, 0xA0, 0x0E, 0xB0, 0x12, 0x20, +0x0F, 0x71, 0xDE, 0xA0, 0x10, 0x99, 0x2E, 0xA0, 0x11, 0x51, 0xC0, 0xA0, 0x12, 0x79, 0x10, 0xA0, +0x13, 0x31, 0xA2, 0xA0, 0x14, 0x58, 0xF2, 0xA0, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x38, 0xC6, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x18, 0x18, 0xA8, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xF8, 0x8A, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xE1, 0xA7, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0xC1, 0x89, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0xA1, 0x6B, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x81, 0x4D, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x61, 0x2F, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x4A, 0x4B, 0x90, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x2A, 0x2D, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x29, 0x0A, 0x0F, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xE9, 0xF1, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xC9, 0xD3, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0xA9, 0xB5, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x89, 0x97, 0x90, +0x30, 0xE7, 0x24, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, +0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, +0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x06, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, +0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, +0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x01, 0x01, 0x01, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xDB, 0xF4, 0x98, 0x01, +0x0B, 0xD7, 0xB5, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Istanbul */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x16, 0x90, 0x8B, 0xF5, 0x98, +0x9B, 0x0C, 0x17, 0x60, 0x9B, 0xD5, 0xBE, 0xD0, 0xA2, 0x65, 0x63, 0xE0, 0xA3, 0x7B, 0x82, 0x50, +0xA4, 0x4E, 0x80, 0x60, 0xA5, 0x3F, 0xB4, 0xD0, 0xA6, 0x25, 0x27, 0xE0, 0xA7, 0x27, 0x7F, 0xD0, +0xAA, 0x28, 0x28, 0x60, 0xAA, 0xE1, 0xFD, 0xD0, 0xAB, 0xF9, 0x89, 0xE0, 0xAC, 0xC3, 0x31, 0x50, +0xC8, 0x7F, 0xEE, 0x60, 0xC8, 0xFF, 0xC1, 0xD0, 0xC9, 0x4A, 0xF5, 0x60, 0xCA, 0xCE, 0x80, 0x50, +0xCB, 0xCB, 0xAE, 0x60, 0xCC, 0xE5, 0xC1, 0x50, 0xD1, 0x71, 0xEB, 0xE0, 0xD2, 0x6B, 0x09, 0x50, +0xD3, 0xA2, 0x39, 0x60, 0xD4, 0x43, 0x02, 0x50, 0xD5, 0x4C, 0x0D, 0xE0, 0xD6, 0x29, 0x7B, 0xD0, +0xD7, 0x2B, 0xEF, 0xE0, 0xD8, 0x09, 0x5D, 0xD0, 0xD9, 0x02, 0x97, 0x60, 0xD9, 0xE9, 0x3F, 0xD0, +0xDA, 0xEF, 0xA8, 0x60, 0xDB, 0xD2, 0x5C, 0x50, 0xDC, 0xD4, 0xD0, 0x60, 0xDD, 0xB3, 0x8F, 0xD0, +0xF1, 0xF4, 0xB9, 0x60, 0xF2, 0x64, 0xBA, 0xD0, 0xF5, 0x68, 0x06, 0x60, 0xF6, 0x1F, 0x38, 0xD0, +0x00, 0xA0, 0xBA, 0xE0, 0x01, 0x6B, 0xB3, 0xD0, 0x02, 0x80, 0x9C, 0xE0, 0x03, 0x4B, 0x95, 0xD0, +0x04, 0x69, 0xB9, 0x60, 0x05, 0x34, 0xB2, 0x50, 0x06, 0x6E, 0x93, 0x70, 0x07, 0x39, 0xA8, 0x80, +0x07, 0xFB, 0x75, 0x00, 0x09, 0x19, 0xA6, 0xA0, 0x09, 0xDB, 0x3A, 0xE0, 0x0A, 0xF0, 0x07, 0xD0, +0x0C, 0x10, 0xCE, 0x60, 0x0C, 0xD9, 0x24, 0x50, 0x0D, 0xA4, 0x39, 0x60, 0x0E, 0xA6, 0x91, 0x50, +0x0F, 0x84, 0x1B, 0x60, 0x10, 0x86, 0x73, 0x50, 0x12, 0x67, 0x98, 0xC0, 0x13, 0x4D, 0x36, 0x00, +0x14, 0x47, 0x7A, 0xC0, 0x15, 0x23, 0xDD, 0x80, 0x16, 0x27, 0x5C, 0xC0, 0x17, 0x03, 0xBF, 0x80, +0x18, 0x07, 0x3E, 0xC0, 0x19, 0x89, 0x94, 0x50, 0x19, 0xDC, 0x94, 0xC0, 0x1C, 0xC6, 0xD3, 0xD0, +0x1D, 0x9B, 0x15, 0x50, 0x1E, 0x8C, 0x82, 0x00, 0x1F, 0x7C, 0x73, 0x00, 0x20, 0x6C, 0x64, 0x00, +0x21, 0x5C, 0x55, 0x00, 0x22, 0x4C, 0x46, 0x00, 0x23, 0x3C, 0x37, 0x00, 0x24, 0x2C, 0x28, 0x00, +0x25, 0x1C, 0x19, 0x00, 0x26, 0x0C, 0x0A, 0x00, 0x27, 0x05, 0x35, 0x80, 0x27, 0xF5, 0x18, 0x70, +0x28, 0xE5, 0x09, 0x70, 0x29, 0xD4, 0xFA, 0x70, 0x2A, 0xC4, 0xEB, 0x70, 0x2B, 0xB4, 0xDC, 0x70, +0x2C, 0xA4, 0xCD, 0x70, 0x2D, 0x94, 0xBE, 0x70, 0x2E, 0x84, 0xAF, 0x70, 0x2F, 0x74, 0xA0, 0x70, +0x30, 0x64, 0x91, 0x70, 0x31, 0x5D, 0xBC, 0xF0, 0x32, 0x72, 0x97, 0xF0, 0x33, 0x3D, 0x9E, 0xF0, +0x34, 0x52, 0x79, 0xF0, 0x35, 0x1D, 0x80, 0xF0, 0x36, 0x32, 0x5B, 0xF0, 0x36, 0xFD, 0x62, 0xF0, +0x38, 0x1B, 0x78, 0x70, 0x38, 0xDD, 0x44, 0xF0, 0x39, 0xFB, 0x5A, 0x70, 0x3A, 0xBD, 0x26, 0xF0, +0x3B, 0xDB, 0x3C, 0x70, 0x3C, 0xA6, 0x43, 0x70, 0x3D, 0xBB, 0x1E, 0x70, 0x3E, 0x86, 0x25, 0x70, +0x3F, 0x9B, 0x00, 0x70, 0x40, 0x66, 0x07, 0x70, 0x41, 0x84, 0x1C, 0xF0, 0x42, 0x45, 0xE9, 0x70, +0x43, 0x63, 0xFE, 0xF0, 0x44, 0x25, 0xCB, 0x70, 0x45, 0x43, 0xE0, 0xF0, 0x45, 0x98, 0x32, 0xE0, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8F, 0xDD, 0x90, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x01, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x02, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x00, 0x00, 0x1B, 0x68, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, +0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x38, 0x40, 0x01, 0x0D, 0x00, 0x00, 0x2A, 0x30, 0x00, +0x12, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, +0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x49, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, +0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x54, 0x52, 0x53, 0x54, 0x00, 0x54, 0x52, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x01, 0x00, 0xC7, 0xEA, 0x62, 0x01, 0x3E, 0xDB, 0x9A, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Jersey */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4A, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0D, 0x9B, 0x26, 0xAD, 0xA0, +0x9B, 0xD6, 0x05, 0x20, 0x9C, 0xCF, 0x30, 0xA0, 0x9D, 0xA4, 0xC3, 0xA0, 0x9E, 0x9C, 0x9D, 0xA0, +0x9F, 0x97, 0x1A, 0xA0, 0xA0, 0x85, 0xBA, 0x20, 0xA1, 0x76, 0xFC, 0xA0, 0xA2, 0x65, 0x9C, 0x20, +0xA3, 0x7B, 0xC8, 0xA0, 0xA4, 0x4E, 0xB8, 0xA0, 0xA5, 0x3F, 0xFB, 0x20, 0xA6, 0x25, 0x60, 0x20, +0xA7, 0x27, 0xC6, 0x20, 0xA8, 0x2A, 0x2C, 0x20, 0xA8, 0xEB, 0xF8, 0xA0, 0xAA, 0x00, 0xD3, 0xA0, +0xAA, 0xD5, 0x15, 0x20, 0xAB, 0xE9, 0xF0, 0x20, 0xAC, 0xC7, 0x6C, 0x20, 0xAD, 0xC9, 0xD2, 0x20, +0xAE, 0xA7, 0x4E, 0x20, 0xAF, 0xA0, 0x79, 0xA0, 0xB0, 0x87, 0x30, 0x20, 0xB1, 0x92, 0xD0, 0xA0, +0xB2, 0x70, 0x4C, 0xA0, 0xB3, 0x72, 0xB2, 0xA0, 0xB4, 0x50, 0x2E, 0xA0, 0xB5, 0x49, 0x5A, 0x20, +0xB6, 0x30, 0x10, 0xA0, 0xB7, 0x32, 0x76, 0xA0, 0xB8, 0x0F, 0xF2, 0xA0, 0xB9, 0x12, 0x58, 0xA0, +0xB9, 0xEF, 0xD4, 0xA0, 0xBA, 0xE9, 0x00, 0x20, 0xBB, 0xD8, 0xF1, 0x20, 0xBC, 0xDB, 0x57, 0x20, +0xBD, 0xB8, 0xD3, 0x20, 0xBE, 0xB1, 0xFE, 0xA0, 0xBF, 0x98, 0xB5, 0x20, 0xC0, 0x9B, 0x1B, 0x20, +0xC1, 0x78, 0x97, 0x20, 0xC2, 0x7A, 0xFD, 0x20, 0xC3, 0x58, 0x79, 0x20, 0xC4, 0x51, 0xA4, 0xA0, +0xC5, 0x38, 0x5B, 0x20, 0xC6, 0x3A, 0xC1, 0x20, 0xC7, 0x58, 0xD6, 0xA0, 0xC7, 0xDA, 0x09, 0xA0, +0xCA, 0x16, 0x26, 0x90, 0xCA, 0x97, 0x59, 0x90, 0xCB, 0xD1, 0x1E, 0x90, 0xCC, 0x77, 0x3B, 0x90, +0xCD, 0xB1, 0x00, 0x90, 0xCE, 0x60, 0x58, 0x10, 0xCF, 0x90, 0xE2, 0x90, 0xD0, 0x6E, 0x5E, 0x90, +0xD1, 0x72, 0x16, 0x10, 0xD1, 0xFB, 0x32, 0x10, 0xD2, 0x69, 0xFE, 0x20, 0xD3, 0x63, 0x29, 0xA0, +0xD4, 0x49, 0xE0, 0x20, 0xD5, 0x1E, 0x21, 0xA0, 0xD5, 0x42, 0xFD, 0x90, 0xD5, 0xDF, 0xE0, 0x10, +0xD6, 0x4E, 0xAC, 0x20, 0xD6, 0xFE, 0x03, 0xA0, 0xD8, 0x2E, 0x8E, 0x20, 0xD8, 0xF9, 0x95, 0x20, +0xDA, 0x0E, 0x70, 0x20, 0xDA, 0xEB, 0xEC, 0x20, 0xDB, 0xE5, 0x17, 0xA0, 0xDC, 0xCB, 0xCE, 0x20, +0xDD, 0xC4, 0xF9, 0xA0, 0xDE, 0xB4, 0xEA, 0xA0, 0xDF, 0xAE, 0x16, 0x20, 0xE0, 0x94, 0xCC, 0xA0, +0xE1, 0x72, 0x48, 0xA0, 0xE2, 0x6B, 0x74, 0x20, 0xE3, 0x52, 0x2A, 0xA0, 0xE4, 0x54, 0x90, 0xA0, +0xE5, 0x32, 0x0C, 0xA0, 0xE6, 0x3D, 0xAD, 0x20, 0xE7, 0x1B, 0x29, 0x20, 0xE8, 0x14, 0x54, 0xA0, +0xE8, 0xFB, 0x0B, 0x20, 0xE9, 0xFD, 0x71, 0x20, 0xEA, 0xDA, 0xED, 0x20, 0xEB, 0xDD, 0x53, 0x20, +0xEC, 0xBA, 0xCF, 0x20, 0xED, 0xB3, 0xFA, 0xA0, 0xEE, 0x9A, 0xB1, 0x20, 0xEF, 0x81, 0x67, 0xA0, +0xF0, 0x9F, 0x7D, 0x20, 0xF1, 0x61, 0x49, 0xA0, 0xF2, 0x7F, 0x5F, 0x20, 0xF3, 0x4A, 0x66, 0x20, +0xF4, 0x5F, 0x41, 0x20, 0xF5, 0x21, 0x0D, 0xA0, 0xF6, 0x3F, 0x23, 0x20, 0xF7, 0x00, 0xEF, 0xA0, +0xF8, 0x1F, 0x05, 0x20, 0xF8, 0xE0, 0xD1, 0xA0, 0xF9, 0xFE, 0xE7, 0x20, 0xFA, 0xC0, 0xB3, 0xA0, +0xFB, 0xE8, 0x03, 0xA0, 0xFC, 0x7B, 0xAB, 0xA0, 0xFD, 0xC7, 0xBB, 0x70, 0x03, 0x70, 0xC6, 0x20, +0x04, 0x29, 0x58, 0x20, 0x05, 0x50, 0xA8, 0x20, 0x06, 0x09, 0x3A, 0x20, 0x07, 0x30, 0x8A, 0x20, +0x07, 0xE9, 0x1C, 0x20, 0x09, 0x10, 0x6C, 0x20, 0x09, 0xC8, 0xFE, 0x20, 0x0A, 0xF0, 0x4E, 0x20, +0x0B, 0xB2, 0x1A, 0xA0, 0x0C, 0xD0, 0x30, 0x20, 0x0D, 0x91, 0xFC, 0xA0, 0x0E, 0xB0, 0x12, 0x20, +0x0F, 0x71, 0xDE, 0xA0, 0x10, 0x99, 0x2E, 0xA0, 0x11, 0x51, 0xC0, 0xA0, 0x12, 0x79, 0x10, 0xA0, +0x13, 0x31, 0xA2, 0xA0, 0x14, 0x58, 0xF2, 0xA0, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x38, 0xC6, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x18, 0x18, 0xA8, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xF8, 0x8A, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xE1, 0xA7, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0xC1, 0x89, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0xA1, 0x6B, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x81, 0x4D, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x61, 0x2F, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x4A, 0x4B, 0x90, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x2A, 0x2D, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x29, 0x0A, 0x0F, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xE9, 0xF1, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xC9, 0xD3, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0xA9, 0xB5, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x89, 0x97, 0x90, +0x30, 0xE7, 0x24, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, +0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, +0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x06, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, +0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, +0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x01, 0x01, 0x01, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xD4, 0x66, 0xFF, 0x01, +0x0F, 0x6D, 0xAD, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Kaliningrad */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x1E, 0x9B, 0x0C, 0x17, 0x60, +0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xD9, 0xAE, 0x90, 0x9D, 0xA4, 0xB5, 0x90, 0x9E, 0xB9, 0x90, 0x90, +0x9F, 0x84, 0x97, 0x90, 0xC8, 0x09, 0x71, 0x90, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x82, 0x25, 0x10, 0xD0, 0xFA, 0x01, 0x70, +0xD1, 0x95, 0x84, 0x60, 0xD2, 0x8A, 0xAD, 0x50, 0xD2, 0xDB, 0x26, 0xE0, 0x15, 0x27, 0xA7, 0xD0, +0x16, 0x18, 0xDC, 0x40, 0x17, 0x08, 0xDB, 0x50, 0x17, 0xFA, 0x0F, 0xC0, 0x18, 0xEA, 0x0E, 0xD0, +0x19, 0xDB, 0x43, 0x40, 0x1A, 0xCC, 0x93, 0xD0, 0x1B, 0xBC, 0xA0, 0xF0, 0x1C, 0xAC, 0x91, 0xF0, +0x1D, 0x9C, 0x82, 0xF0, 0x1E, 0x8C, 0x73, 0xF0, 0x1F, 0x7C, 0x64, 0xF0, 0x20, 0x6C, 0x55, 0xF0, +0x21, 0x5C, 0x46, 0xF0, 0x22, 0x4C, 0x37, 0xF0, 0x23, 0x3C, 0x28, 0xF0, 0x24, 0x2C, 0x19, 0xF0, +0x25, 0x1C, 0x0A, 0xF0, 0x26, 0x0B, 0xFB, 0xF0, 0x27, 0x05, 0x27, 0x70, 0x27, 0xF5, 0x18, 0x70, +0x28, 0xE5, 0x17, 0x80, 0x29, 0xD4, 0xDE, 0x50, 0x2A, 0xC4, 0xC1, 0x40, 0x2B, 0xB4, 0xEA, 0x80, +0x2C, 0xA4, 0xDB, 0x80, 0x2D, 0x94, 0xCC, 0x80, 0x2E, 0x84, 0xBD, 0x80, 0x2F, 0x74, 0xAE, 0x80, +0x30, 0x64, 0x9F, 0x80, 0x31, 0x5D, 0xCB, 0x00, 0x32, 0x72, 0xA6, 0x00, 0x33, 0x3D, 0xAD, 0x00, +0x34, 0x52, 0x88, 0x00, 0x35, 0x1D, 0x8F, 0x00, 0x36, 0x32, 0x6A, 0x00, 0x36, 0xFD, 0x71, 0x00, +0x38, 0x1B, 0x86, 0x80, 0x38, 0xDD, 0x53, 0x00, 0x39, 0xFB, 0x68, 0x80, 0x3A, 0xBD, 0x35, 0x00, +0x3B, 0xDB, 0x4A, 0x80, 0x3C, 0xA6, 0x51, 0x80, 0x3D, 0xBB, 0x2C, 0x80, 0x3E, 0x86, 0x33, 0x80, +0x3F, 0x9B, 0x0E, 0x80, 0x40, 0x66, 0x15, 0x80, 0x41, 0x84, 0x2B, 0x00, 0x42, 0x45, 0xF7, 0x80, +0x43, 0x64, 0x0D, 0x00, 0x44, 0x25, 0xD9, 0x80, 0x45, 0x43, 0xEF, 0x00, 0x46, 0x05, 0xBB, 0x80, +0x47, 0x23, 0xD1, 0x00, 0x47, 0xEE, 0xD8, 0x00, 0x49, 0x03, 0xB3, 0x00, 0x49, 0xCE, 0xBA, 0x00, +0x4A, 0xE3, 0x95, 0x00, 0x4B, 0xAE, 0x9C, 0x00, 0x4C, 0xCC, 0xB1, 0x80, 0x4D, 0x8E, 0x7E, 0x00, +0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x04, 0x05, 0x07, +0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x0A, 0x0B, 0x0C, 0x0D, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0E, 0x00, 0x00, 0x1C, +0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, +0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, +0x05, 0x00, 0x00, 0x38, 0x40, 0x01, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0D, 0x00, 0x00, 0x2A, +0x30, 0x00, 0x0D, 0x00, 0x00, 0x38, 0x40, 0x01, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x11, 0x00, +0x00, 0x1C, 0x20, 0x00, 0x16, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, +0x16, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x1A, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, +0x4D, 0x53, 0x44, 0x00, 0x4D, 0x53, 0x4B, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, +0x00, 0x46, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, +0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xDC, 0xD1, 0xF2, 0x01, 0x31, 0xF0, 0x50, 0x00, 0x00, 0x00, 0x17, 0x4D, +0x6F, 0x73, 0x63, 0x6F, 0x77, 0x2D, 0x30, 0x31, 0x20, 0x2D, 0x20, 0x4B, 0x61, 0x6C, 0x69, 0x6E, +0x69, 0x6E, 0x67, 0x72, 0x61, 0x64, + +/* Europe/Kiev */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x1E, 0xAA, 0x19, 0xA7, 0x64, +0xB5, 0xA4, 0x19, 0x60, 0xCA, 0xCD, 0x2E, 0xD0, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCE, 0xCD, 0xA8, 0x70, 0x15, 0x27, 0xA7, 0xD0, 0x16, 0x18, 0xDC, 0x40, +0x17, 0x08, 0xDB, 0x50, 0x17, 0xFA, 0x0F, 0xC0, 0x18, 0xEA, 0x0E, 0xD0, 0x19, 0xDB, 0x43, 0x40, +0x1A, 0xCC, 0x93, 0xD0, 0x1B, 0xBC, 0xA0, 0xF0, 0x1C, 0xAC, 0x91, 0xF0, 0x1D, 0x9C, 0x82, 0xF0, +0x1E, 0x8C, 0x73, 0xF0, 0x1F, 0x7C, 0x64, 0xF0, 0x20, 0x6C, 0x55, 0xF0, 0x21, 0x5C, 0x46, 0xF0, +0x22, 0x4C, 0x37, 0xF0, 0x23, 0x3C, 0x28, 0xF0, 0x24, 0x2C, 0x19, 0xF0, 0x25, 0x1C, 0x0A, 0xF0, +0x25, 0x9E, 0x73, 0x50, 0x26, 0x8D, 0x2E, 0xF0, 0x29, 0xD4, 0xEC, 0x60, 0x2A, 0xC4, 0xCF, 0x50, +0x2B, 0xB4, 0xCE, 0x60, 0x2C, 0xA4, 0xB1, 0x50, 0x2D, 0x94, 0xB0, 0x60, 0x2E, 0x84, 0x93, 0x50, +0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, +0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, +0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, +0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, +0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, +0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x02, 0x05, 0x03, 0x04, 0x03, 0x02, 0x06, +0x02, 0x06, 0x02, 0x06, 0x02, 0x06, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, +0x07, 0x02, 0x01, 0x09, 0x01, 0x09, 0x01, 0x09, 0x01, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x00, +0x00, 0x1C, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x00, +0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x10, 0x00, 0x00, 0x1C, +0x20, 0x01, 0x10, 0x00, 0x00, 0x38, 0x40, 0x01, 0x15, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x08, 0x00, +0x00, 0x38, 0x40, 0x01, 0x15, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x01, +0x19, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x4B, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x4D, +0x53, 0x4B, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x44, 0x00, +0x45, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xD6, 0x48, +0xC5, 0x01, 0x41, 0x39, 0x12, 0x00, 0x00, 0x00, 0x0E, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, +0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* Europe/Lisbon */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xDD, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x1B, 0x92, 0xE6, 0x97, 0x10, +0x9B, 0x4B, 0x6D, 0x70, 0x9B, 0xFE, 0xC7, 0x80, 0x9C, 0x9C, 0xED, 0x70, 0x9D, 0xC9, 0x83, 0x70, +0x9E, 0x7F, 0x72, 0x70, 0x9F, 0xAA, 0xB6, 0xF0, 0xA0, 0x5F, 0x54, 0x70, 0xA1, 0x8B, 0xEA, 0x70, +0xA2, 0x41, 0xD9, 0x70, 0xA3, 0x6E, 0x6F, 0x70, 0xA4, 0x23, 0x0C, 0xF0, 0xA5, 0x4F, 0xA2, 0xF0, +0xAA, 0x05, 0xEF, 0x70, 0xAA, 0xF4, 0x8E, 0xF0, 0xAD, 0xC9, 0xA7, 0xF0, 0xAE, 0xA7, 0x23, 0xF0, +0xAF, 0xA0, 0x4F, 0x70, 0xB0, 0x87, 0x05, 0xF0, 0xB1, 0x89, 0x6B, 0xF0, 0xB2, 0x70, 0x22, 0x70, +0xB3, 0x72, 0x88, 0x70, 0xB4, 0x50, 0x04, 0x70, 0xB7, 0x32, 0x4C, 0x70, 0xB8, 0x0F, 0xC8, 0x70, +0xB8, 0xFF, 0xB9, 0x70, 0xB9, 0xEF, 0xAA, 0x70, 0xBC, 0xC8, 0xB7, 0xF0, 0xBD, 0xB8, 0xA8, 0xF0, +0xBE, 0x9F, 0x5F, 0x70, 0xBF, 0x98, 0x8A, 0xF0, 0xC0, 0x9A, 0xF0, 0xF0, 0xC1, 0x78, 0x6C, 0xF0, +0xC2, 0x68, 0x5D, 0xF0, 0xC3, 0x58, 0x4E, 0xF0, 0xC4, 0x3F, 0x05, 0x70, 0xC5, 0x38, 0x30, 0xF0, +0xC6, 0x3A, 0x96, 0xF0, 0xC7, 0x58, 0xAC, 0x70, 0xC7, 0xD9, 0xDF, 0x70, 0xC9, 0x01, 0x2F, 0x70, +0xC9, 0xF1, 0x20, 0x70, 0xCA, 0xE2, 0x62, 0xF0, 0xCB, 0xB5, 0x52, 0xF0, 0xCB, 0xEC, 0xA3, 0xE0, +0xCC, 0x80, 0x4B, 0xE0, 0xCC, 0xDC, 0xA2, 0xF0, 0xCD, 0x95, 0x34, 0xF0, 0xCD, 0xC3, 0x4B, 0x60, +0xCE, 0x72, 0xA2, 0xE0, 0xCE, 0xC5, 0xBF, 0x70, 0xCF, 0x75, 0x16, 0xF0, 0xCF, 0xAC, 0x67, 0xE0, +0xD0, 0x52, 0x84, 0xE0, 0xD0, 0xA5, 0xA1, 0x70, 0xD1, 0x54, 0xF8, 0xF0, 0xD1, 0x8C, 0x49, 0xE0, +0xD2, 0x32, 0x66, 0xE0, 0xD2, 0x85, 0x83, 0x70, 0xD3, 0x59, 0xC4, 0xF0, 0xD4, 0x49, 0xB5, 0xF0, +0xD5, 0x39, 0xD1, 0x20, 0xD6, 0x29, 0xC2, 0x20, 0xD7, 0x19, 0xB3, 0x20, 0xD8, 0x09, 0xA4, 0x20, +0xD8, 0xF9, 0x95, 0x20, 0xD9, 0xE9, 0x86, 0x20, 0xDC, 0xB9, 0x59, 0x20, 0xDD, 0xB2, 0x84, 0xA0, +0xDE, 0xA2, 0x75, 0xA0, 0xDF, 0x92, 0x66, 0xA0, 0xE0, 0x82, 0x57, 0xA0, 0xE1, 0x72, 0x48, 0xA0, +0xE2, 0x62, 0x39, 0xA0, 0xE3, 0x52, 0x2A, 0xA0, 0xE4, 0x42, 0x1B, 0xA0, 0xE5, 0x32, 0x0C, 0xA0, +0xE6, 0x21, 0xFD, 0xA0, 0xE7, 0x1B, 0x29, 0x20, 0xE8, 0x0B, 0x1A, 0x20, 0xE8, 0xFB, 0x0B, 0x20, +0xE9, 0xEA, 0xFC, 0x20, 0xEA, 0xDA, 0xED, 0x20, 0xEB, 0xCA, 0xDE, 0x20, 0xEC, 0xBA, 0xCF, 0x20, +0xED, 0xAA, 0xC0, 0x20, 0xEE, 0x9A, 0xB1, 0x20, 0xEF, 0x8A, 0xA2, 0x20, 0xF0, 0x7A, 0x93, 0x20, +0xF1, 0x6A, 0x84, 0x20, 0xF2, 0x63, 0xAF, 0xA0, 0xF3, 0x53, 0xA0, 0xA0, 0xF4, 0x43, 0x91, 0xA0, +0xF5, 0x33, 0x82, 0xA0, 0xF6, 0x23, 0x73, 0xA0, 0xF7, 0x13, 0x64, 0xA0, 0xF8, 0x03, 0x55, 0xA0, +0xF8, 0xF3, 0x46, 0xA0, 0x0C, 0xAB, 0x2A, 0x00, 0x0D, 0x9B, 0x1B, 0x00, 0x0E, 0x8B, 0x0C, 0x00, +0x0F, 0x84, 0x37, 0x80, 0x10, 0x74, 0x28, 0x80, 0x11, 0x64, 0x19, 0x80, 0x12, 0x54, 0x18, 0x90, +0x13, 0x43, 0xFB, 0x80, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xBD, 0xA0, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x02, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, 0x03, +0x05, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x06, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0xFF, 0xFF, 0xF7, +0x70, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, +0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x01, +0x0D, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x12, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x12, 0x00, 0x00, 0x1C, +0x20, 0x01, 0x16, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x4C, +0x4D, 0x54, 0x00, 0x57, 0x45, 0x53, 0x54, 0x00, 0x57, 0x45, 0x54, 0x00, 0x57, 0x45, 0x4D, 0x54, +0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, +0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, +0x00, 0xC4, 0x67, 0xF2, 0x01, 0x04, 0xB8, 0xCA, 0x00, 0x00, 0x00, 0x08, 0x6D, 0x61, 0x69, 0x6E, +0x6C, 0x61, 0x6E, 0x64, + +/* Europe/Ljubljana */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0xCA, 0x02, 0x35, 0xE0, +0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, +0xD0, 0x82, 0x25, 0x10, 0xD0, 0xFA, 0x01, 0x70, 0xD1, 0xA1, 0x8C, 0x10, 0xD2, 0x4E, 0x40, 0x90, +0x18, 0x45, 0x5F, 0x70, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x03, 0x01, 0x02, 0x01, +0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, +0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, +0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xCF, 0x98, +0x88, 0x01, 0x28, 0xCF, 0x12, 0x00, 0x00, 0x00, 0x00, + +/* Europe/London */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0D, 0x9B, 0x26, 0xAD, 0xA0, +0x9B, 0xD6, 0x05, 0x20, 0x9C, 0xCF, 0x30, 0xA0, 0x9D, 0xA4, 0xC3, 0xA0, 0x9E, 0x9C, 0x9D, 0xA0, +0x9F, 0x97, 0x1A, 0xA0, 0xA0, 0x85, 0xBA, 0x20, 0xA1, 0x76, 0xFC, 0xA0, 0xA2, 0x65, 0x9C, 0x20, +0xA3, 0x7B, 0xC8, 0xA0, 0xA4, 0x4E, 0xB8, 0xA0, 0xA5, 0x3F, 0xFB, 0x20, 0xA6, 0x25, 0x60, 0x20, +0xA7, 0x27, 0xC6, 0x20, 0xA8, 0x2A, 0x2C, 0x20, 0xA8, 0xEB, 0xF8, 0xA0, 0xAA, 0x00, 0xD3, 0xA0, +0xAA, 0xD5, 0x15, 0x20, 0xAB, 0xE9, 0xF0, 0x20, 0xAC, 0xC7, 0x6C, 0x20, 0xAD, 0xC9, 0xD2, 0x20, +0xAE, 0xA7, 0x4E, 0x20, 0xAF, 0xA0, 0x79, 0xA0, 0xB0, 0x87, 0x30, 0x20, 0xB1, 0x92, 0xD0, 0xA0, +0xB2, 0x70, 0x4C, 0xA0, 0xB3, 0x72, 0xB2, 0xA0, 0xB4, 0x50, 0x2E, 0xA0, 0xB5, 0x49, 0x5A, 0x20, +0xB6, 0x30, 0x10, 0xA0, 0xB7, 0x32, 0x76, 0xA0, 0xB8, 0x0F, 0xF2, 0xA0, 0xB9, 0x12, 0x58, 0xA0, +0xB9, 0xEF, 0xD4, 0xA0, 0xBA, 0xE9, 0x00, 0x20, 0xBB, 0xD8, 0xF1, 0x20, 0xBC, 0xDB, 0x57, 0x20, +0xBD, 0xB8, 0xD3, 0x20, 0xBE, 0xB1, 0xFE, 0xA0, 0xBF, 0x98, 0xB5, 0x20, 0xC0, 0x9B, 0x1B, 0x20, +0xC1, 0x78, 0x97, 0x20, 0xC2, 0x7A, 0xFD, 0x20, 0xC3, 0x58, 0x79, 0x20, 0xC4, 0x51, 0xA4, 0xA0, +0xC5, 0x38, 0x5B, 0x20, 0xC6, 0x3A, 0xC1, 0x20, 0xC7, 0x58, 0xD6, 0xA0, 0xC7, 0xDA, 0x09, 0xA0, +0xCA, 0x16, 0x26, 0x90, 0xCA, 0x97, 0x59, 0x90, 0xCB, 0xD1, 0x1E, 0x90, 0xCC, 0x77, 0x3B, 0x90, +0xCD, 0xB1, 0x00, 0x90, 0xCE, 0x60, 0x58, 0x10, 0xCF, 0x90, 0xE2, 0x90, 0xD0, 0x6E, 0x5E, 0x90, +0xD1, 0x72, 0x16, 0x10, 0xD1, 0xFB, 0x32, 0x10, 0xD2, 0x69, 0xFE, 0x20, 0xD3, 0x63, 0x29, 0xA0, +0xD4, 0x49, 0xE0, 0x20, 0xD5, 0x1E, 0x21, 0xA0, 0xD5, 0x42, 0xFD, 0x90, 0xD5, 0xDF, 0xE0, 0x10, +0xD6, 0x4E, 0xAC, 0x20, 0xD6, 0xFE, 0x03, 0xA0, 0xD8, 0x2E, 0x8E, 0x20, 0xD8, 0xF9, 0x95, 0x20, +0xDA, 0x0E, 0x70, 0x20, 0xDA, 0xEB, 0xEC, 0x20, 0xDB, 0xE5, 0x17, 0xA0, 0xDC, 0xCB, 0xCE, 0x20, +0xDD, 0xC4, 0xF9, 0xA0, 0xDE, 0xB4, 0xEA, 0xA0, 0xDF, 0xAE, 0x16, 0x20, 0xE0, 0x94, 0xCC, 0xA0, +0xE1, 0x72, 0x48, 0xA0, 0xE2, 0x6B, 0x74, 0x20, 0xE3, 0x52, 0x2A, 0xA0, 0xE4, 0x54, 0x90, 0xA0, +0xE5, 0x32, 0x0C, 0xA0, 0xE6, 0x3D, 0xAD, 0x20, 0xE7, 0x1B, 0x29, 0x20, 0xE8, 0x14, 0x54, 0xA0, +0xE8, 0xFB, 0x0B, 0x20, 0xE9, 0xFD, 0x71, 0x20, 0xEA, 0xDA, 0xED, 0x20, 0xEB, 0xDD, 0x53, 0x20, +0xEC, 0xBA, 0xCF, 0x20, 0xED, 0xB3, 0xFA, 0xA0, 0xEE, 0x9A, 0xB1, 0x20, 0xEF, 0x81, 0x67, 0xA0, +0xF0, 0x9F, 0x7D, 0x20, 0xF1, 0x61, 0x49, 0xA0, 0xF2, 0x7F, 0x5F, 0x20, 0xF3, 0x4A, 0x66, 0x20, +0xF4, 0x5F, 0x41, 0x20, 0xF5, 0x21, 0x0D, 0xA0, 0xF6, 0x3F, 0x23, 0x20, 0xF7, 0x00, 0xEF, 0xA0, +0xF8, 0x1F, 0x05, 0x20, 0xF8, 0xE0, 0xD1, 0xA0, 0xF9, 0xFE, 0xE7, 0x20, 0xFA, 0xC0, 0xB3, 0xA0, +0xFB, 0xE8, 0x03, 0xA0, 0xFC, 0x7B, 0xAB, 0xA0, 0xFD, 0xC7, 0xBB, 0x70, 0x03, 0x70, 0xC6, 0x20, +0x04, 0x29, 0x58, 0x20, 0x05, 0x50, 0xA8, 0x20, 0x06, 0x09, 0x3A, 0x20, 0x07, 0x30, 0x8A, 0x20, +0x07, 0xE9, 0x1C, 0x20, 0x09, 0x10, 0x6C, 0x20, 0x09, 0xC8, 0xFE, 0x20, 0x0A, 0xF0, 0x4E, 0x20, +0x0B, 0xB2, 0x1A, 0xA0, 0x0C, 0xD0, 0x30, 0x20, 0x0D, 0x91, 0xFC, 0xA0, 0x0E, 0xB0, 0x12, 0x20, +0x0F, 0x71, 0xDE, 0xA0, 0x10, 0x99, 0x2E, 0xA0, 0x11, 0x51, 0xC0, 0xA0, 0x12, 0x79, 0x10, 0xA0, +0x13, 0x31, 0xA2, 0xA0, 0x14, 0x58, 0xF2, 0xA0, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x38, 0xC6, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x18, 0x18, 0xA8, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xF8, 0x8A, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xE1, 0xA7, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0xC1, 0x89, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0xA1, 0x6B, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x81, 0x4D, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x61, 0x2F, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x4A, 0x4B, 0x90, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x2A, 0x2D, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x29, 0x0A, 0x0F, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xE9, 0xF1, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xC9, 0xD3, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0xA9, 0xB5, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x89, 0x97, 0x90, +0x30, 0xE7, 0x24, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, +0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, +0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x06, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, +0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, +0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x01, 0x01, 0x01, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xD7, 0xEC, 0xB1, 0x01, +0x12, 0x77, 0x90, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Luxembourg */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4C, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x16, 0x84, 0xA2, 0xAD, 0xBC, +0x9B, 0x1E, 0x8C, 0x60, 0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xEA, 0xA7, 0xE0, 0x9D, 0xA4, 0x99, 0x70, +0x9E, 0xB9, 0x90, 0x90, 0x9F, 0x84, 0x97, 0x90, 0x9F, 0xE0, 0xC4, 0x70, 0xA0, 0x60, 0xA5, 0xF0, +0xA1, 0x7E, 0xE5, 0xA0, 0xA2, 0x2E, 0x12, 0xF0, 0xA3, 0x7A, 0x69, 0x10, 0xA4, 0x35, 0x81, 0xF0, +0xA5, 0x5E, 0x3F, 0x90, 0xA6, 0x25, 0x35, 0xF0, 0xA7, 0x27, 0xAA, 0x00, 0xA8, 0x2A, 0x01, 0xF0, +0xA9, 0x07, 0x9A, 0x10, 0xA9, 0xEE, 0x34, 0x70, 0xAA, 0xE7, 0x6E, 0x00, 0xAB, 0xD8, 0xA2, 0x70, +0xAC, 0xC7, 0x50, 0x00, 0xAD, 0xC9, 0xA7, 0xF0, 0xAE, 0xA7, 0x32, 0x00, 0xAF, 0xA0, 0x4F, 0x70, +0xB0, 0x87, 0x14, 0x00, 0xB1, 0x89, 0x6B, 0xF0, 0xB2, 0x70, 0x30, 0x80, 0xB3, 0x72, 0x88, 0x70, +0xB4, 0x50, 0x2E, 0xA0, 0xB5, 0x49, 0x5A, 0x20, 0xB6, 0x30, 0x10, 0xA0, 0xB7, 0x32, 0x76, 0xA0, +0xB8, 0x0F, 0xF2, 0xA0, 0xB8, 0xFF, 0xE3, 0xA0, 0xB9, 0xEF, 0xD4, 0xA0, 0xBA, 0xD6, 0x8B, 0x20, +0xBB, 0xD8, 0xF1, 0x20, 0xBC, 0xC8, 0xE2, 0x20, 0xBD, 0xB8, 0xD3, 0x20, 0xBE, 0x9F, 0x89, 0xA0, +0xBF, 0x98, 0xB5, 0x20, 0xC0, 0x9B, 0x1B, 0x20, 0xC1, 0x78, 0x97, 0x20, 0xC2, 0x68, 0x88, 0x20, +0xC3, 0x58, 0x79, 0x20, 0xC4, 0x3F, 0x2F, 0xA0, 0xC5, 0x38, 0x5B, 0x20, 0xC6, 0x3A, 0xC1, 0x20, +0xC7, 0x58, 0xD6, 0xA0, 0xC7, 0xDA, 0x09, 0xA0, 0xC8, 0x42, 0x30, 0x20, 0xCC, 0xE7, 0x4B, 0x10, +0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x6F, 0xB0, 0x10, +0xD1, 0x72, 0x16, 0x10, 0xD2, 0x4E, 0x40, 0x90, 0xD3, 0x91, 0x40, 0x10, 0xD4, 0x4B, 0x23, 0x90, +0x0D, 0x2A, 0xFD, 0x70, 0x0D, 0xA4, 0x63, 0x90, 0x0E, 0x8B, 0x1A, 0x10, 0x0F, 0x84, 0x45, 0x90, +0x10, 0x74, 0x36, 0x90, 0x11, 0x64, 0x27, 0x90, 0x12, 0x54, 0x18, 0x90, 0x13, 0x4D, 0x44, 0x10, +0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, +0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x02, 0x01, 0x02, 0x01, +0x02, 0x03, 0x04, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x0B, +0x09, 0x0A, 0x09, 0x0A, 0x02, 0x03, 0x04, 0x03, 0x04, 0x02, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, +0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, +0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, +0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, +0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, +0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, +0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, +0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, +0x0C, 0x0D, 0x0C, 0x0D, 0x00, 0x00, 0x05, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, +0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, +0x00, 0x09, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, +0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x0D, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x12, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, +0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, +0x00, 0x43, 0x45, 0x54, 0x00, 0x57, 0x45, 0x53, 0x54, 0x00, 0x57, 0x45, 0x54, 0x00, 0x00, 0x00, +0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xD5, 0x03, 0x40, 0x01, 0x1C, +0x0A, 0xD8, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Madrid */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x45, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x17, 0x9C, 0xF3, 0xF0, 0x70, +0x9D, 0xBE, 0xF7, 0x70, 0x9E, 0xBA, 0xC5, 0xF0, 0x9F, 0xA0, 0x2A, 0xF0, 0xA0, 0x8E, 0xCA, 0x70, +0xA1, 0x81, 0x5E, 0x70, 0xAA, 0x05, 0xEF, 0x70, 0xAA, 0xE7, 0x5F, 0xF0, 0xAD, 0xC9, 0xA7, 0xF0, +0xAE, 0xA7, 0x23, 0xF0, 0xAF, 0xA0, 0x4F, 0x70, 0xB0, 0x87, 0x05, 0xF0, 0xB1, 0x89, 0x6B, 0xF0, +0xB2, 0x70, 0x22, 0x70, 0xB3, 0x72, 0x88, 0x70, 0xB4, 0x50, 0x04, 0x70, 0xC2, 0xA8, 0xF7, 0x70, +0xC3, 0x58, 0x4E, 0xF0, 0xC4, 0x39, 0xBF, 0x70, 0xC5, 0x38, 0x30, 0xF0, 0xC6, 0x3A, 0x96, 0xF0, +0xC7, 0x21, 0x4D, 0x70, 0xC7, 0xF5, 0x8E, 0xF0, 0xCB, 0xF5, 0xDE, 0x60, 0xCC, 0x96, 0xB5, 0x60, +0xCD, 0xC3, 0x4B, 0x60, 0xCE, 0xA2, 0x18, 0xE0, 0xCF, 0xA3, 0x2D, 0x60, 0xD0, 0x8D, 0xD8, 0x60, +0xD1, 0x83, 0x0F, 0x60, 0xD2, 0x60, 0x99, 0x70, 0xD3, 0x62, 0xF1, 0x60, 0xD4, 0x41, 0xBE, 0xE0, +0xD9, 0x1E, 0x46, 0xE0, 0xD9, 0xE6, 0xB8, 0xF0, 0x08, 0x0D, 0xCD, 0xE0, 0x08, 0xF4, 0x92, 0x70, +0x09, 0xF6, 0xEA, 0x60, 0x0A, 0xD4, 0x74, 0x70, 0x0B, 0xBB, 0x1C, 0xE0, 0x0C, 0xAB, 0x1B, 0xF0, +0x0D, 0xA4, 0x39, 0x60, 0x0E, 0x8A, 0xFD, 0xF0, 0x0F, 0x85, 0x6C, 0xE0, 0x10, 0x74, 0x1A, 0x70, +0x11, 0x64, 0x27, 0x90, 0x12, 0x54, 0x18, 0x90, 0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, +0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, +0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, +0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, +0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, +0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, +0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, +0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, +0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, +0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, +0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, +0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, +0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, +0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, +0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x03, 0x02, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x00, 0x00, 0x0E, 0x10, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x09, 0x00, 0x00, 0x0E, +0x10, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x0E, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x13, 0x00, +0x00, 0x1C, 0x20, 0x01, 0x0E, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x13, 0x57, 0x45, 0x53, 0x54, 0x00, +0x57, 0x45, 0x54, 0x00, 0x57, 0x45, 0x4D, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, +0x54, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x01, 0x01, 0x00, 0xC6, 0xF9, 0x80, 0x01, 0x0D, 0x09, 0xB2, 0x00, 0x00, 0x00, 0x08, 0x6D, 0x61, +0x69, 0x6E, 0x6C, 0x61, 0x6E, 0x64, + +/* Europe/Malta */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x37, 0xA6, 0xF0, +0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xC5, 0xCB, 0xF0, 0x9D, 0xB5, 0xBC, 0xF0, 0x9E, 0x89, 0xFE, 0x70, +0x9F, 0x9E, 0xD9, 0x70, 0xA0, 0x60, 0xA5, 0xF0, 0xA1, 0x7E, 0xBB, 0x70, 0xA2, 0x5C, 0x37, 0x70, +0xA3, 0x4C, 0x28, 0x70, 0xC8, 0x6C, 0x35, 0xF0, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x82, 0x25, 0x10, 0xD1, 0x72, 0x16, 0x10, +0xD2, 0x4C, 0xD2, 0xF0, 0xD3, 0x3E, 0x31, 0x90, 0xD4, 0x49, 0xD2, 0x10, 0xD5, 0x1D, 0xF7, 0x70, +0xD6, 0x29, 0x97, 0xF0, 0xD6, 0xEB, 0x80, 0x90, 0xD8, 0x09, 0x96, 0x10, 0xF9, 0x33, 0xB5, 0xF0, +0xF9, 0xD9, 0xC4, 0xE0, 0xFB, 0x1C, 0xD2, 0x70, 0xFB, 0xB9, 0xA6, 0xE0, 0xFC, 0xFC, 0xB4, 0x70, +0xFD, 0x99, 0x88, 0xE0, 0xFE, 0xE5, 0xD0, 0xF0, 0xFF, 0x82, 0xA5, 0x60, 0x00, 0xC5, 0xB2, 0xF0, +0x01, 0x62, 0x87, 0x60, 0x02, 0x9C, 0x5A, 0x70, 0x03, 0x42, 0x77, 0x70, 0x04, 0x85, 0x76, 0xF0, +0x05, 0x2B, 0x85, 0xE0, 0x06, 0x1A, 0x33, 0x70, 0x07, 0x0A, 0x24, 0x70, 0x08, 0x17, 0x16, 0x70, +0x08, 0xDA, 0x34, 0x70, 0x09, 0xF7, 0x14, 0x90, 0x0A, 0xC2, 0x0D, 0x80, 0x0B, 0xD6, 0xF6, 0x90, +0x0C, 0xA1, 0xEF, 0x80, 0x0D, 0xB6, 0xD8, 0x90, 0x0E, 0x81, 0xD1, 0x80, 0x0F, 0x96, 0xBA, 0x90, +0x10, 0x61, 0xB3, 0x80, 0x11, 0x76, 0x9C, 0x90, 0x12, 0x41, 0x95, 0x80, 0x13, 0x45, 0x5B, 0x10, +0x14, 0x2A, 0xB2, 0x00, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, +0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, +0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, +0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xC0, 0x1B, +0xB0, 0x01, 0x28, 0xCF, 0x12, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Mariehamn */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D, 0xA4, 0x73, 0x6F, 0x18, +0xCB, 0xCE, 0x51, 0x60, 0xCC, 0xBF, 0x85, 0xD0, 0x15, 0x23, 0xDD, 0x80, 0x16, 0x13, 0xCE, 0x80, +0x17, 0x03, 0xBF, 0x80, 0x17, 0xF3, 0xB0, 0x80, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x00, 0x00, 0x17, 0x68, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, +0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, +0x20, 0x00, 0x09, 0x48, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xE5, 0x08, 0xD0, 0x01, 0x31, +0x19, 0x78, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Minsk */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x22, 0xAA, 0x19, 0xAA, 0x38, +0xB5, 0xA4, 0x19, 0x60, 0xCA, 0x5E, 0x70, 0xD0, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x0A, 0x02, 0x60, 0x15, 0x27, 0xA7, 0xD0, +0x16, 0x18, 0xDC, 0x40, 0x17, 0x08, 0xDB, 0x50, 0x17, 0xFA, 0x0F, 0xC0, 0x18, 0xEA, 0x0E, 0xD0, +0x19, 0xDB, 0x43, 0x40, 0x1A, 0xCC, 0x93, 0xD0, 0x1B, 0xBC, 0xA0, 0xF0, 0x1C, 0xAC, 0x91, 0xF0, +0x1D, 0x9C, 0x82, 0xF0, 0x1E, 0x8C, 0x73, 0xF0, 0x1F, 0x7C, 0x64, 0xF0, 0x20, 0x6C, 0x55, 0xF0, +0x21, 0x5C, 0x46, 0xF0, 0x22, 0x4C, 0x37, 0xF0, 0x23, 0x3C, 0x28, 0xF0, 0x24, 0x2C, 0x19, 0xF0, +0x25, 0x1C, 0x0A, 0xF0, 0x25, 0x9E, 0x73, 0x50, 0x27, 0xF5, 0x18, 0x70, 0x28, 0xE5, 0x17, 0x80, +0x29, 0xD4, 0xEC, 0x60, 0x2A, 0xC4, 0xDD, 0x60, 0x2B, 0xB4, 0xEA, 0x80, 0x2C, 0xA4, 0xDB, 0x80, +0x2D, 0x94, 0xCC, 0x80, 0x2E, 0x84, 0xBD, 0x80, 0x2F, 0x74, 0xAE, 0x80, 0x30, 0x64, 0x9F, 0x80, +0x31, 0x5D, 0xCB, 0x00, 0x32, 0x72, 0xA6, 0x00, 0x33, 0x3D, 0xAD, 0x00, 0x34, 0x52, 0x88, 0x00, +0x35, 0x1D, 0x8F, 0x00, 0x36, 0x32, 0x6A, 0x00, 0x36, 0xFD, 0x71, 0x00, 0x38, 0x1B, 0x86, 0x80, +0x38, 0xDD, 0x53, 0x00, 0x39, 0xFB, 0x68, 0x80, 0x3A, 0xBD, 0x35, 0x00, 0x3B, 0xDB, 0x4A, 0x80, +0x3C, 0xA6, 0x51, 0x80, 0x3D, 0xBB, 0x2C, 0x80, 0x3E, 0x86, 0x33, 0x80, 0x3F, 0x9B, 0x0E, 0x80, +0x40, 0x66, 0x15, 0x80, 0x41, 0x84, 0x2B, 0x00, 0x42, 0x45, 0xF7, 0x80, 0x43, 0x64, 0x0D, 0x00, +0x44, 0x25, 0xD9, 0x80, 0x45, 0x43, 0xEF, 0x00, 0x46, 0x05, 0xBB, 0x80, 0x47, 0x23, 0xD1, 0x00, +0x47, 0xEE, 0xD8, 0x00, 0x49, 0x03, 0xB3, 0x00, 0x49, 0xCE, 0xBA, 0x00, 0x4A, 0xE3, 0x95, 0x00, +0x4B, 0xAE, 0x9C, 0x00, 0x4C, 0xCC, 0xB1, 0x80, 0x4D, 0x8E, 0x7E, 0x00, 0x01, 0x02, 0x05, 0x03, +0x04, 0x03, 0x04, 0x02, 0x06, 0x02, 0x06, 0x02, 0x06, 0x02, 0x06, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x02, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x0B, +0x00, 0x00, 0x19, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, +0x00, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x10, 0x00, 0x00, +0x1C, 0x20, 0x01, 0x10, 0x00, 0x00, 0x38, 0x40, 0x01, 0x15, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x08, +0x00, 0x00, 0x38, 0x40, 0x01, 0x15, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x19, 0x00, 0x00, 0x1C, 0x20, +0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x1E, 0x4D, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, +0x4D, 0x53, 0x4B, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x44, +0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x46, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, +0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xDB, 0x92, 0xF0, 0x01, 0x3C, 0xB8, 0xBA, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Monaco */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x1B, 0x91, 0x60, 0x50, 0x4F, +0x9B, 0x47, 0x78, 0xF0, 0x9B, 0xD7, 0x2C, 0x70, 0x9C, 0xBC, 0x91, 0x70, 0x9D, 0xC0, 0x48, 0xF0, +0x9E, 0x89, 0xFE, 0x70, 0x9F, 0xA0, 0x2A, 0xF0, 0xA0, 0x60, 0xA5, 0xF0, 0xA1, 0x80, 0x0C, 0xF0, +0xA2, 0x2E, 0x12, 0xF0, 0xA3, 0x7A, 0x4C, 0xF0, 0xA4, 0x35, 0x81, 0xF0, 0xA5, 0x5E, 0x23, 0x70, +0xA6, 0x25, 0x35, 0xF0, 0xA7, 0x27, 0x9B, 0xF0, 0xA8, 0x58, 0x26, 0x70, 0xA9, 0x07, 0x7D, 0xF0, +0xA9, 0xEE, 0x34, 0x70, 0xAA, 0xE7, 0x5F, 0xF0, 0xAB, 0xD7, 0x50, 0xF0, 0xAC, 0xC7, 0x41, 0xF0, +0xAD, 0xC9, 0xA7, 0xF0, 0xAE, 0xA7, 0x23, 0xF0, 0xAF, 0xA0, 0x4F, 0x70, 0xB0, 0x87, 0x05, 0xF0, +0xB1, 0x89, 0x6B, 0xF0, 0xB2, 0x70, 0x22, 0x70, 0xB3, 0x72, 0x88, 0x70, 0xB4, 0x50, 0x04, 0x70, +0xB5, 0x49, 0x2F, 0xF0, 0xB6, 0x2F, 0xE6, 0x70, 0xB7, 0x32, 0x4C, 0x70, 0xB8, 0x0F, 0xC8, 0x70, +0xB8, 0xFF, 0xB9, 0x70, 0xB9, 0xEF, 0xAA, 0x70, 0xBA, 0xD6, 0x60, 0xF0, 0xBB, 0xD8, 0xC6, 0xF0, +0xBC, 0xC8, 0xB7, 0xF0, 0xBD, 0xB8, 0xA8, 0xF0, 0xBE, 0x9F, 0x5F, 0x70, 0xBF, 0x98, 0x8A, 0xF0, +0xC0, 0x9A, 0xF0, 0xF0, 0xC1, 0x78, 0x6C, 0xF0, 0xC2, 0x68, 0x5D, 0xF0, 0xC3, 0x58, 0x4E, 0xF0, +0xC4, 0x3F, 0x05, 0x70, 0xC5, 0x38, 0x30, 0xF0, 0xC6, 0x3A, 0x96, 0xF0, 0xC7, 0x58, 0xAC, 0x70, +0xC7, 0xDA, 0x09, 0xA0, 0xCA, 0x17, 0x5B, 0xF0, 0xCA, 0xE2, 0x54, 0xE0, 0xCB, 0xAD, 0x69, 0xF0, +0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, +0xD0, 0x89, 0xF1, 0xF0, 0xD1, 0x72, 0x16, 0x10, 0xD2, 0x4E, 0x40, 0x90, 0x0B, 0xBB, 0x39, 0x00, +0x0C, 0xAB, 0x1B, 0xF0, 0x0D, 0xA4, 0x63, 0x90, 0x0E, 0x8B, 0x1A, 0x10, 0x0F, 0x84, 0x45, 0x90, +0x10, 0x74, 0x36, 0x90, 0x11, 0x64, 0x27, 0x90, 0x12, 0x54, 0x18, 0x90, 0x13, 0x4D, 0x44, 0x10, +0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, +0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x05, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x07, 0x06, 0x07, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x00, 0x00, 0x02, 0x31, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, +0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, +0x01, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x12, 0x00, 0x00, +0x0E, 0x10, 0x00, 0x17, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x12, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x17, +0x50, 0x4D, 0x54, 0x00, 0x57, 0x45, 0x53, 0x54, 0x00, 0x57, 0x45, 0x54, 0x00, 0x57, 0x45, 0x4D, +0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, +0xCC, 0x02, 0x8F, 0x01, 0x1D, 0xEC, 0x9D, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Moscow */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x1E, 0x9B, 0x5F, 0x1E, 0xD8, +0x9D, 0x3E, 0xF2, 0x98, 0x9E, 0x2A, 0xEF, 0x18, 0x9E, 0xF7, 0x39, 0x88, 0x9F, 0x84, 0x58, 0x18, +0xA0, 0xD8, 0x6D, 0x08, 0xA1, 0x00, 0x16, 0x28, 0xA1, 0x3C, 0xA6, 0x40, 0xA4, 0x10, 0x6D, 0xC0, +0xA4, 0x3D, 0x32, 0xB0, 0xA5, 0x15, 0x68, 0xB0, 0xA5, 0x3D, 0x03, 0xC0, 0xA7, 0x1E, 0x45, 0x50, +0xB5, 0xA4, 0x19, 0x60, 0x15, 0x27, 0xA7, 0xD0, 0x16, 0x18, 0xDC, 0x40, 0x17, 0x08, 0xDB, 0x50, +0x17, 0xFA, 0x0F, 0xC0, 0x18, 0xEA, 0x0E, 0xD0, 0x19, 0xDB, 0x43, 0x40, 0x1A, 0xCC, 0x93, 0xD0, +0x1B, 0xBC, 0xA0, 0xF0, 0x1C, 0xAC, 0x91, 0xF0, 0x1D, 0x9C, 0x82, 0xF0, 0x1E, 0x8C, 0x73, 0xF0, +0x1F, 0x7C, 0x64, 0xF0, 0x20, 0x6C, 0x55, 0xF0, 0x21, 0x5C, 0x46, 0xF0, 0x22, 0x4C, 0x37, 0xF0, +0x23, 0x3C, 0x28, 0xF0, 0x24, 0x2C, 0x19, 0xF0, 0x25, 0x1C, 0x0A, 0xF0, 0x26, 0x0B, 0xFB, 0xF0, +0x27, 0x05, 0x27, 0x70, 0x27, 0xF5, 0x18, 0x70, 0x28, 0xE5, 0x17, 0x80, 0x29, 0x78, 0xBF, 0x80, +0x29, 0xD4, 0xD0, 0x40, 0x2A, 0xC4, 0xB3, 0x30, 0x2B, 0xB4, 0xDC, 0x70, 0x2C, 0xA4, 0xCD, 0x70, +0x2D, 0x94, 0xBE, 0x70, 0x2E, 0x84, 0xAF, 0x70, 0x2F, 0x74, 0xA0, 0x70, 0x30, 0x64, 0x91, 0x70, +0x31, 0x5D, 0xBC, 0xF0, 0x32, 0x72, 0x97, 0xF0, 0x33, 0x3D, 0x9E, 0xF0, 0x34, 0x52, 0x79, 0xF0, +0x35, 0x1D, 0x80, 0xF0, 0x36, 0x32, 0x5B, 0xF0, 0x36, 0xFD, 0x62, 0xF0, 0x38, 0x1B, 0x78, 0x70, +0x38, 0xDD, 0x44, 0xF0, 0x39, 0xFB, 0x5A, 0x70, 0x3A, 0xBD, 0x26, 0xF0, 0x3B, 0xDB, 0x3C, 0x70, +0x3C, 0xA6, 0x43, 0x70, 0x3D, 0xBB, 0x1E, 0x70, 0x3E, 0x86, 0x25, 0x70, 0x3F, 0x9B, 0x00, 0x70, +0x40, 0x66, 0x07, 0x70, 0x41, 0x84, 0x1C, 0xF0, 0x42, 0x45, 0xE9, 0x70, 0x43, 0x63, 0xFE, 0xF0, +0x44, 0x25, 0xCB, 0x70, 0x45, 0x43, 0xE0, 0xF0, 0x46, 0x05, 0xAD, 0x70, 0x47, 0x23, 0xC2, 0xF0, +0x47, 0xEE, 0xC9, 0xF0, 0x49, 0x03, 0xA4, 0xF0, 0x49, 0xCE, 0xAB, 0xF0, 0x4A, 0xE3, 0x86, 0xF0, +0x4B, 0xAE, 0x8D, 0xF0, 0x4C, 0xCC, 0xA3, 0x70, 0x4D, 0x8E, 0x6F, 0xF0, 0x02, 0x01, 0x02, 0x03, +0x01, 0x03, 0x05, 0x04, 0x05, 0x06, 0x05, 0x04, 0x07, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x0A, 0x0B, +0x08, 0x05, 0x04, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x0C, 0x00, 0x00, 0x23, 0x28, 0x00, 0x00, 0x00, 0x00, +0x31, 0x68, 0x01, 0x04, 0x00, 0x00, 0x23, 0x58, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x78, 0x01, 0x08, +0x00, 0x00, 0x2A, 0x30, 0x00, 0x0D, 0x00, 0x00, 0x38, 0x40, 0x01, 0x11, 0x00, 0x00, 0x46, 0x50, +0x01, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x15, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0D, 0x00, 0x00, +0x38, 0x40, 0x01, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x19, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x15, +0x00, 0x00, 0x38, 0x40, 0x00, 0x0D, 0x4D, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44, +0x53, 0x54, 0x00, 0x4D, 0x53, 0x4B, 0x00, 0x4D, 0x53, 0x44, 0x00, 0x45, 0x45, 0x54, 0x00, 0x45, +0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, +0x65, 0x98, 0x01, 0x4C, 0x01, 0x7D, 0x00, 0x00, 0x00, 0x17, 0x4D, 0x6F, 0x73, 0x63, 0x6F, 0x77, +0x2B, 0x30, 0x30, 0x20, 0x2D, 0x20, 0x77, 0x65, 0x73, 0x74, 0x20, 0x52, 0x75, 0x73, 0x73, 0x69, +0x61, + +/* Europe/Nicosia */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D, 0xA5, 0x77, 0x1E, 0xB8, +0x09, 0xED, 0xAF, 0xE0, 0x0A, 0xDD, 0x92, 0xD0, 0x0B, 0xFA, 0x64, 0xE0, 0x0C, 0xBE, 0xC6, 0x50, +0x0D, 0xA4, 0x39, 0x60, 0x0E, 0x8A, 0xE1, 0xD0, 0x0F, 0x84, 0x1B, 0x60, 0x10, 0x75, 0x4F, 0xD0, +0x11, 0x63, 0xFD, 0x60, 0x12, 0x53, 0xE0, 0x50, 0x13, 0x4D, 0x19, 0xE0, 0x14, 0x33, 0xC2, 0x50, +0x15, 0x23, 0xC1, 0x60, 0x16, 0x13, 0xA4, 0x50, 0x17, 0x03, 0xA3, 0x60, 0x17, 0xF3, 0x86, 0x50, +0x18, 0xE3, 0x85, 0x60, 0x19, 0xD3, 0x68, 0x50, 0x1A, 0xC3, 0x67, 0x60, 0x1B, 0xBC, 0x84, 0xD0, +0x1C, 0xAC, 0x83, 0xE0, 0x1D, 0x9C, 0x66, 0xD0, 0x1E, 0x8C, 0x65, 0xE0, 0x1F, 0x7C, 0x48, 0xD0, +0x20, 0x6C, 0x47, 0xE0, 0x21, 0x5C, 0x2A, 0xD0, 0x22, 0x4C, 0x29, 0xE0, 0x23, 0x3C, 0x0C, 0xD0, +0x24, 0x2C, 0x0B, 0xE0, 0x25, 0x1B, 0xEE, 0xD0, 0x26, 0x0B, 0xED, 0xE0, 0x27, 0x05, 0x0B, 0x50, +0x27, 0xF5, 0x0A, 0x60, 0x28, 0xE4, 0xED, 0x50, 0x29, 0xD4, 0xEC, 0x60, 0x2A, 0xC4, 0xCF, 0x50, +0x2B, 0xB4, 0xCE, 0x60, 0x2C, 0xA4, 0xB1, 0x50, 0x2D, 0x94, 0xB0, 0x60, 0x2E, 0x84, 0x93, 0x50, +0x2F, 0x74, 0x92, 0x60, 0x30, 0x64, 0x75, 0x50, 0x31, 0x5D, 0xAE, 0xE0, 0x32, 0x4D, 0x91, 0xD0, +0x33, 0x3D, 0x90, 0xE0, 0x34, 0x2D, 0x73, 0xD0, 0x35, 0x1D, 0x72, 0xE0, 0x36, 0x32, 0x78, 0x10, +0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, +0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, +0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, +0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x1F, 0x48, 0x00, 0x00, 0x00, 0x00, 0x2A, +0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, +0x00, 0x2A, 0x30, 0x01, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, +0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x89, 0x54, 0x40, +0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Oslo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4E, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x27, 0xE3, 0x00, +0x9B, 0xD4, 0x7B, 0x60, 0xC8, 0xB7, 0x4D, 0x60, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x82, 0x25, 0x10, 0xD1, 0x72, 0x16, 0x10, +0xD2, 0x62, 0x07, 0x10, 0xEB, 0xAF, 0x20, 0x90, 0xEC, 0xA8, 0x4C, 0x10, 0xED, 0x98, 0x3D, 0x10, +0xEE, 0x88, 0x2E, 0x10, 0xEF, 0x78, 0x1F, 0x10, 0xF0, 0x68, 0x10, 0x10, 0xF1, 0x58, 0x01, 0x10, +0xF2, 0x47, 0xF2, 0x10, 0xF3, 0x37, 0xE3, 0x10, 0xF4, 0x27, 0xD4, 0x10, 0xF5, 0x17, 0xC5, 0x10, +0xF6, 0x10, 0xF0, 0x90, 0xF7, 0x2F, 0x06, 0x10, 0xF7, 0xF0, 0xD2, 0x90, 0x12, 0xCE, 0x97, 0xF0, +0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x00, 0x01, 0x00, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x1C, +0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, +0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, +0x05, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xE4, 0xC1, 0x32, 0x01, 0x23, 0x0F, 0xB8, 0x00, 0x00, +0x00, 0x00, + +/* Europe/Paris */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x46, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x1B, 0x91, 0x60, 0x50, 0x8B, +0x9B, 0x47, 0x78, 0xF0, 0x9B, 0xD7, 0x2C, 0x70, 0x9C, 0xBC, 0x91, 0x70, 0x9D, 0xC0, 0x48, 0xF0, +0x9E, 0x89, 0xFE, 0x70, 0x9F, 0xA0, 0x2A, 0xF0, 0xA0, 0x60, 0xA5, 0xF0, 0xA1, 0x80, 0x0C, 0xF0, +0xA2, 0x2E, 0x12, 0xF0, 0xA3, 0x7A, 0x4C, 0xF0, 0xA4, 0x35, 0x81, 0xF0, 0xA5, 0x5E, 0x23, 0x70, +0xA6, 0x25, 0x35, 0xF0, 0xA7, 0x27, 0x9B, 0xF0, 0xA8, 0x58, 0x26, 0x70, 0xA9, 0x07, 0x7D, 0xF0, +0xA9, 0xEE, 0x34, 0x70, 0xAA, 0xE7, 0x5F, 0xF0, 0xAB, 0xD7, 0x50, 0xF0, 0xAC, 0xC7, 0x41, 0xF0, +0xAD, 0xC9, 0xA7, 0xF0, 0xAE, 0xA7, 0x23, 0xF0, 0xAF, 0xA0, 0x4F, 0x70, 0xB0, 0x87, 0x05, 0xF0, +0xB1, 0x89, 0x6B, 0xF0, 0xB2, 0x70, 0x22, 0x70, 0xB3, 0x72, 0x88, 0x70, 0xB4, 0x50, 0x04, 0x70, +0xB5, 0x49, 0x2F, 0xF0, 0xB6, 0x2F, 0xE6, 0x70, 0xB7, 0x32, 0x4C, 0x70, 0xB8, 0x0F, 0xC8, 0x70, +0xB8, 0xFF, 0xB9, 0x70, 0xB9, 0xEF, 0xAA, 0x70, 0xBA, 0xD6, 0x60, 0xF0, 0xBB, 0xD8, 0xC6, 0xF0, +0xBC, 0xC8, 0xB7, 0xF0, 0xBD, 0xB8, 0xA8, 0xF0, 0xBE, 0x9F, 0x5F, 0x70, 0xBF, 0x98, 0x8A, 0xF0, +0xC0, 0x9A, 0xF0, 0xF0, 0xC1, 0x78, 0x6C, 0xF0, 0xC2, 0x68, 0x5D, 0xF0, 0xC3, 0x58, 0x4E, 0xF0, +0xC4, 0x3F, 0x05, 0x70, 0xC5, 0x38, 0x30, 0xF0, 0xC6, 0x3A, 0x96, 0xF0, 0xC7, 0x58, 0xAC, 0x70, +0xC7, 0xDA, 0x09, 0xA0, 0xC8, 0x6C, 0x27, 0xE0, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x4F, 0xE1, 0xE0, 0xD0, 0x89, 0xF1, 0xF0, +0xD1, 0x72, 0x16, 0x10, 0xD2, 0x4E, 0x40, 0x90, 0x0B, 0xBB, 0x39, 0x00, 0x0C, 0xAB, 0x1B, 0xF0, +0x0D, 0xA4, 0x63, 0x90, 0x0E, 0x8B, 0x1A, 0x10, 0x0F, 0x84, 0x45, 0x90, 0x10, 0x74, 0x36, 0x90, +0x11, 0x64, 0x27, 0x90, 0x12, 0x54, 0x18, 0x90, 0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, +0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, +0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, +0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, +0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, +0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, +0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, +0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, +0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, +0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, +0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, +0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, +0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, +0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x04, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x07, 0x05, 0x06, 0x05, 0x06, 0x08, +0x03, 0x08, 0x09, 0x07, 0x09, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x00, +0x00, 0x02, 0x31, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, +0x09, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x0E, +0x10, 0x00, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x11, 0x00, +0x00, 0x1C, 0x20, 0x01, 0x16, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x01, +0x11, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0D, 0x50, 0x4D, 0x54, 0x00, 0x57, 0x45, 0x53, 0x54, 0x00, +0x57, 0x45, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x57, 0x45, 0x4D, +0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xD3, 0xE4, 0xCA, 0x01, 0x16, +0x37, 0xF5, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Podgorica */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0xCA, 0x02, 0x35, 0xE0, +0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, +0xD0, 0x82, 0x25, 0x10, 0xD0, 0xFA, 0x01, 0x70, 0xD1, 0xA1, 0x8C, 0x10, 0xD2, 0x4E, 0x40, 0x90, +0x18, 0x45, 0x5F, 0x70, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x03, 0x01, 0x02, 0x01, +0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, +0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, +0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xCA, 0x13, +0xC5, 0x01, 0x30, 0x0E, 0x8A, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Prague */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x0C, 0x17, 0x60, +0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xD9, 0xAE, 0x90, 0x9D, 0xA4, 0xB5, 0x90, 0x9E, 0xB9, 0x90, 0x90, +0x9F, 0x84, 0x97, 0x90, 0xC8, 0x09, 0x71, 0x90, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x6E, 0x5E, 0x90, 0xD1, 0x79, 0xFF, 0x10, +0xD2, 0xA1, 0x4F, 0x10, 0xD3, 0x80, 0x1C, 0x90, 0xD4, 0x49, 0xD2, 0x10, 0xD5, 0x4C, 0x38, 0x10, +0xD6, 0x29, 0xB4, 0x10, 0xD7, 0x2C, 0x1A, 0x10, 0xD8, 0x09, 0x96, 0x10, 0xD9, 0x01, 0x70, 0x10, +0xD9, 0xE9, 0x78, 0x10, 0x10, 0xED, 0x64, 0x70, 0x11, 0x64, 0x27, 0x90, 0x12, 0x54, 0x18, 0x90, +0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x1C, +0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, +0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, +0x05, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xD5, 0xC0, 0x0D, 0x01, 0x28, 0xAE, 0x85, 0x00, 0x00, +0x00, 0x00, + +/* Europe/Riga */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4C, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x22, 0x9E, 0xB9, 0x88, 0x08, +0x9F, 0x84, 0x8F, 0x08, 0xA0, 0x88, 0x46, 0x88, 0xA0, 0xCB, 0x83, 0x08, 0xAD, 0xE7, 0xF1, 0xE8, +0xC8, 0xAF, 0x64, 0x60, 0xCA, 0x62, 0x65, 0x50, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x82, 0x25, 0x10, 0xD0, 0x90, 0x89, 0x70, +0x15, 0x27, 0xA7, 0xD0, 0x16, 0x18, 0xDC, 0x40, 0x17, 0x08, 0xDB, 0x50, 0x17, 0xFA, 0x0F, 0xC0, +0x18, 0xEA, 0x0E, 0xD0, 0x19, 0xDB, 0x43, 0x40, 0x1A, 0xCC, 0x93, 0xD0, 0x1B, 0xBC, 0xA0, 0xF0, +0x1C, 0xAC, 0x91, 0xF0, 0x1D, 0x9C, 0x82, 0xF0, 0x1E, 0x8C, 0x73, 0xF0, 0x1F, 0x7C, 0x64, 0xF0, +0x20, 0x6C, 0x55, 0xF0, 0x21, 0x5C, 0x46, 0xF0, 0x22, 0x4C, 0x37, 0xF0, 0x23, 0x3C, 0x28, 0xF0, +0x24, 0x2C, 0x19, 0xF0, 0x25, 0x1C, 0x19, 0x00, 0x26, 0x0C, 0x0A, 0x00, 0x27, 0x05, 0x35, 0x80, +0x27, 0xF5, 0x26, 0x80, 0x28, 0xE5, 0x17, 0x80, 0x29, 0xD5, 0x08, 0x80, 0x2A, 0xC4, 0xF9, 0x80, +0x2B, 0xB4, 0xEA, 0x80, 0x2C, 0xA4, 0xDB, 0x80, 0x2D, 0x94, 0xCC, 0x80, 0x2E, 0x84, 0xBD, 0x80, +0x2F, 0x74, 0xAE, 0x80, 0x30, 0x64, 0x9F, 0x80, 0x31, 0x5D, 0xCB, 0x00, 0x32, 0x4D, 0xBC, 0x00, +0x32, 0xE3, 0xEA, 0xE0, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xBA, 0xEF, 0xE0, +0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, +0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, +0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x00, 0x01, 0x00, 0x02, 0x03, 0x06, 0x04, +0x05, 0x04, 0x05, 0x04, 0x03, 0x07, 0x03, 0x07, 0x03, 0x07, 0x03, 0x07, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x08, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x02, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x02, 0x0C, 0x0D, 0x0C, +0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, +0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, +0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, +0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, +0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x00, 0x00, 0x16, 0x98, 0x00, 0x00, 0x00, 0x00, 0x24, +0xA8, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0C, 0x00, +0x00, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x14, 0x00, 0x00, 0x1C, 0x20, 0x01, +0x14, 0x00, 0x00, 0x38, 0x40, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x38, +0x40, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x1D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x08, 0x00, +0x00, 0x2A, 0x30, 0x01, 0x1D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x08, 0x52, 0x4D, 0x54, 0x00, 0x4C, +0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x4D, 0x53, 0x4B, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, +0x45, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x44, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, +0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xE0, 0x3A, 0x57, 0x01, 0x37, 0x6E, +0x90, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Rome */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x49, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x37, 0xA6, 0xF0, +0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xC5, 0xCB, 0xF0, 0x9D, 0xB5, 0xBC, 0xF0, 0x9E, 0x89, 0xFE, 0x70, +0x9F, 0x9E, 0xD9, 0x70, 0xA0, 0x60, 0xA5, 0xF0, 0xA1, 0x7E, 0xBB, 0x70, 0xA2, 0x5C, 0x37, 0x70, +0xA3, 0x4C, 0x28, 0x70, 0xC8, 0x6C, 0x35, 0xF0, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x07, 0x5F, 0x60, 0xD0, 0x6E, 0x42, 0x70, +0xD1, 0x72, 0x16, 0x10, 0xD2, 0x4C, 0xD2, 0xF0, 0xD3, 0x3E, 0x31, 0x90, 0xD4, 0x49, 0xD2, 0x10, +0xD5, 0x1D, 0xF7, 0x70, 0xD6, 0x29, 0x97, 0xF0, 0xD6, 0xEB, 0x80, 0x90, 0xD8, 0x09, 0x96, 0x10, +0xF9, 0x33, 0xB5, 0xF0, 0xF9, 0xD9, 0xC4, 0xE0, 0xFB, 0x1C, 0xD2, 0x70, 0xFB, 0xB9, 0xA6, 0xE0, +0xFC, 0xFC, 0xB4, 0x70, 0xFD, 0x99, 0x88, 0xE0, 0xFE, 0xE5, 0xD0, 0xF0, 0xFF, 0x82, 0xA5, 0x60, +0x00, 0xC5, 0xB2, 0xF0, 0x01, 0x62, 0x87, 0x60, 0x02, 0x9C, 0x5A, 0x70, 0x03, 0x42, 0x77, 0x70, +0x04, 0x85, 0x76, 0xF0, 0x05, 0x2B, 0x85, 0xE0, 0x06, 0x6E, 0x93, 0x70, 0x07, 0x0B, 0x67, 0xE0, +0x08, 0x45, 0x3A, 0xF0, 0x08, 0xEB, 0x49, 0xE0, 0x0A, 0x2E, 0x57, 0x70, 0x0A, 0xCB, 0x39, 0xF0, +0x0C, 0x0E, 0x39, 0x70, 0x0C, 0xAB, 0x1B, 0xF0, 0x0D, 0xE4, 0xE0, 0xF0, 0x0E, 0x8A, 0xFD, 0xF0, +0x0F, 0xCD, 0xFD, 0x70, 0x10, 0x74, 0x1A, 0x70, 0x11, 0xAD, 0xDF, 0x70, 0x12, 0x53, 0xFC, 0x70, +0x12, 0xCE, 0x97, 0xF0, 0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, +0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, +0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, +0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, +0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, +0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, +0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, +0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, +0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x02, 0x01, 0x02, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x03, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, +0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, +0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, +0x00, 0x05, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, +0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xC9, 0x43, 0x70, 0x01, 0x25, 0xB4, 0xCD, 0x00, +0x00, 0x00, 0x00, + +/* Europe/Samara */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1A, 0xA1, 0x00, 0x26, 0x9C, +0xB5, 0xA4, 0x0B, 0x50, 0xBE, 0x4C, 0x26, 0xC0, 0x15, 0x27, 0x99, 0xC0, 0x16, 0x18, 0xCE, 0x30, +0x17, 0x08, 0xCD, 0x40, 0x17, 0xFA, 0x01, 0xB0, 0x18, 0xEA, 0x00, 0xC0, 0x19, 0xDB, 0x35, 0x30, +0x1A, 0xCC, 0x85, 0xC0, 0x1B, 0xBC, 0x92, 0xE0, 0x1C, 0xAC, 0x83, 0xE0, 0x1D, 0x9C, 0x74, 0xE0, +0x1E, 0x8C, 0x65, 0xE0, 0x1F, 0x7C, 0x56, 0xE0, 0x20, 0x6C, 0x47, 0xE0, 0x21, 0x5C, 0x38, 0xE0, +0x22, 0x4C, 0x29, 0xE0, 0x23, 0x3C, 0x1A, 0xE0, 0x24, 0x2C, 0x0B, 0xE0, 0x25, 0x1C, 0x0A, 0xF0, +0x26, 0x0B, 0xFB, 0xF0, 0x27, 0x05, 0x27, 0x70, 0x27, 0xF5, 0x18, 0x70, 0x28, 0xE5, 0x17, 0x80, +0x29, 0x00, 0xC7, 0x00, 0x29, 0xD4, 0xC2, 0x30, 0x2A, 0xC4, 0xA5, 0x20, 0x2B, 0xB4, 0xCE, 0x60, +0x2C, 0xA4, 0xBF, 0x60, 0x2D, 0x94, 0xB0, 0x60, 0x2E, 0x84, 0xA1, 0x60, 0x2F, 0x74, 0x92, 0x60, +0x30, 0x64, 0x83, 0x60, 0x31, 0x5D, 0xAE, 0xE0, 0x32, 0x72, 0x89, 0xE0, 0x33, 0x3D, 0x90, 0xE0, +0x34, 0x52, 0x6B, 0xE0, 0x35, 0x1D, 0x72, 0xE0, 0x36, 0x32, 0x4D, 0xE0, 0x36, 0xFD, 0x54, 0xE0, +0x38, 0x1B, 0x6A, 0x60, 0x38, 0xDD, 0x36, 0xE0, 0x39, 0xFB, 0x4C, 0x60, 0x3A, 0xBD, 0x18, 0xE0, +0x3B, 0xDB, 0x2E, 0x60, 0x3C, 0xA6, 0x35, 0x60, 0x3D, 0xBB, 0x10, 0x60, 0x3E, 0x86, 0x17, 0x60, +0x3F, 0x9A, 0xF2, 0x60, 0x40, 0x65, 0xF9, 0x60, 0x41, 0x84, 0x0E, 0xE0, 0x42, 0x45, 0xDB, 0x60, +0x43, 0x63, 0xF0, 0xE0, 0x44, 0x25, 0xBD, 0x60, 0x45, 0x43, 0xD2, 0xE0, 0x46, 0x05, 0x9F, 0x60, +0x47, 0x23, 0xB4, 0xE0, 0x47, 0xEE, 0xBB, 0xE0, 0x49, 0x03, 0x96, 0xE0, 0x49, 0xCE, 0x9D, 0xE0, +0x4A, 0xE3, 0x78, 0xE0, 0x4B, 0xAE, 0x7F, 0xE0, 0x4C, 0xCC, 0xA3, 0x70, 0x4D, 0x8E, 0x6F, 0xF0, +0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x07, 0x08, 0x07, 0x08, 0x09, 0x08, 0x02, 0x0B, 0x02, 0x0C, 0x0D, 0x0C, 0x0D, +0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, +0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0E, 0x0F, +0x0D, 0x00, 0x00, 0x2F, 0x04, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x00, 0x00, 0x38, +0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x01, 0x09, 0x00, 0x00, 0x38, 0x40, 0x00, 0x0F, 0x00, +0x00, 0x38, 0x40, 0x00, 0x0F, 0x00, 0x00, 0x46, 0x50, 0x01, 0x09, 0x00, 0x00, 0x38, 0x40, 0x01, +0x09, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0F, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x09, 0x00, 0x00, 0x1C, +0x20, 0x00, 0x0F, 0x00, 0x00, 0x46, 0x50, 0x01, 0x14, 0x00, 0x00, 0x46, 0x50, 0x01, 0x14, 0x00, +0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x38, 0x40, 0x01, 0x14, 0x00, 0x00, 0x2A, 0x30, 0x00, +0x04, 0x4C, 0x4D, 0x54, 0x00, 0x53, 0x41, 0x4D, 0x54, 0x00, 0x4B, 0x55, 0x59, 0x53, 0x54, 0x00, +0x4B, 0x55, 0x59, 0x54, 0x00, 0x53, 0x41, 0x4D, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDA, 0x81, 0x7F, 0x01, +0x5F, 0x2E, 0x58, 0x00, 0x00, 0x00, 0x1C, 0x4D, 0x6F, 0x73, 0x63, 0x6F, 0x77, 0x2B, 0x30, 0x30, +0x20, 0x2D, 0x20, 0x53, 0x61, 0x6D, 0x61, 0x72, 0x61, 0x2C, 0x20, 0x55, 0x64, 0x6D, 0x75, 0x72, +0x74, 0x69, 0x61, + +/* Europe/San_Marino */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x37, 0xA6, 0xF0, +0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xC5, 0xCB, 0xF0, 0x9D, 0xB5, 0xBC, 0xF0, 0x9E, 0x89, 0xFE, 0x70, +0x9F, 0x9E, 0xD9, 0x70, 0xA0, 0x60, 0xA5, 0xF0, 0xA1, 0x7E, 0xBB, 0x70, 0xA2, 0x5C, 0x37, 0x70, +0xA3, 0x4C, 0x28, 0x70, 0xC8, 0x6C, 0x35, 0xF0, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x07, 0x5F, 0x60, 0xD0, 0x6E, 0x42, 0x70, +0xD1, 0x72, 0x16, 0x10, 0xD2, 0x4C, 0xD2, 0xF0, 0xD3, 0x3E, 0x31, 0x90, 0xD4, 0x49, 0xD2, 0x10, +0xD5, 0x1D, 0xF7, 0x70, 0xD6, 0x29, 0x97, 0xF0, 0xD6, 0xEB, 0x80, 0x90, 0xD8, 0x09, 0x96, 0x10, +0xF9, 0x33, 0xB5, 0xF0, 0xF9, 0xD9, 0xC4, 0xE0, 0xFB, 0x1C, 0xD2, 0x70, 0xFB, 0xB9, 0xA6, 0xE0, +0xFC, 0xFC, 0xB4, 0x70, 0xFD, 0x99, 0x88, 0xE0, 0xFE, 0xE5, 0xD0, 0xF0, 0xFF, 0x82, 0xA5, 0x60, +0x00, 0xC5, 0xB2, 0xF0, 0x01, 0x62, 0x87, 0x60, 0x02, 0x9C, 0x5A, 0x70, 0x03, 0x42, 0x77, 0x70, +0x04, 0x85, 0x76, 0xF0, 0x05, 0x2B, 0x85, 0xE0, 0x06, 0x6E, 0x93, 0x70, 0x07, 0x0B, 0x67, 0xE0, +0x08, 0x45, 0x3A, 0xF0, 0x08, 0xEB, 0x49, 0xE0, 0x0A, 0x2E, 0x57, 0x70, 0x0A, 0xCB, 0x39, 0xF0, +0x0C, 0x0E, 0x39, 0x70, 0x0C, 0xAB, 0x1B, 0xF0, 0x0D, 0xE4, 0xE0, 0xF0, 0x0E, 0x8A, 0xFD, 0xF0, +0x0F, 0xCD, 0xFD, 0x70, 0x10, 0x74, 0x1A, 0x70, 0x11, 0xAD, 0xDF, 0x70, 0x12, 0x53, 0xFC, 0x70, +0x12, 0xCE, 0x97, 0xF0, 0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, +0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, +0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, +0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, +0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, +0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, +0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, +0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, +0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x02, 0x01, 0x02, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x03, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, +0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, +0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, +0x00, 0x05, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, +0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xCC, 0x57, 0x32, 0x01, 0x25, 0xAE, 0x4A, 0x00, +0x00, 0x00, 0x00, + +/* Europe/Sarajevo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0xCA, 0x02, 0x35, 0xE0, +0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, +0xD0, 0x82, 0x25, 0x10, 0xD0, 0xFA, 0x01, 0x70, 0xD1, 0xA1, 0x8C, 0x10, 0xD2, 0x4E, 0x40, 0x90, +0x18, 0x45, 0x5F, 0x70, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x03, 0x01, 0x02, 0x01, +0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, +0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, +0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xCC, 0x43, +0xAA, 0x01, 0x2E, 0xC2, 0x82, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Simferopol */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x1E, 0xAA, 0x19, 0xA4, 0x20, +0xB5, 0xA4, 0x19, 0x60, 0xCB, 0x04, 0x8D, 0xD0, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xCF, 0x9F, 0x38, 0xE0, 0x15, 0x27, 0xA7, 0xD0, +0x16, 0x18, 0xDC, 0x40, 0x17, 0x08, 0xDB, 0x50, 0x17, 0xFA, 0x0F, 0xC0, 0x18, 0xEA, 0x0E, 0xD0, +0x19, 0xDB, 0x43, 0x40, 0x1A, 0xCC, 0x93, 0xD0, 0x1B, 0xBC, 0xA0, 0xF0, 0x1C, 0xAC, 0x91, 0xF0, +0x1D, 0x9C, 0x82, 0xF0, 0x1E, 0x8C, 0x73, 0xF0, 0x1F, 0x7C, 0x64, 0xF0, 0x20, 0x6C, 0x55, 0xF0, +0x21, 0x5C, 0x46, 0xF0, 0x22, 0x4C, 0x37, 0xF0, 0x23, 0x3C, 0x28, 0xF0, 0x24, 0x2C, 0x19, 0xF0, +0x25, 0x1C, 0x0A, 0xF0, 0x25, 0x9E, 0x73, 0x50, 0x26, 0x8D, 0x2E, 0xF0, 0x29, 0xD4, 0xEC, 0x60, +0x2A, 0xC4, 0xCF, 0x50, 0x2B, 0xB4, 0xCE, 0x60, 0x2C, 0xA4, 0xB1, 0x50, 0x2D, 0x94, 0xB0, 0x60, +0x2D, 0xC2, 0xC6, 0xD0, 0x2E, 0x84, 0x85, 0x40, 0x2F, 0x74, 0x84, 0x50, 0x30, 0x64, 0x67, 0x40, +0x31, 0x5D, 0xA0, 0xD0, 0x31, 0x5D, 0xCB, 0x00, 0x32, 0x72, 0xA6, 0x00, 0x32, 0xC9, 0x7E, 0xD0, +0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, +0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, +0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, +0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, +0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x02, 0x05, 0x03, 0x04, 0x03, 0x04, 0x02, +0x06, 0x02, 0x06, 0x02, 0x06, 0x02, 0x06, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x02, 0x01, 0x09, 0x01, 0x09, 0x01, 0x09, 0x06, 0x02, 0x06, 0x02, 0x06, 0x08, 0x07, +0x02, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x00, +0x00, 0x2A, 0x30, 0x00, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x01, +0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x10, 0x00, 0x00, 0x38, 0x40, 0x01, 0x15, 0x00, 0x00, 0x2A, +0x30, 0x00, 0x08, 0x00, 0x00, 0x38, 0x40, 0x01, 0x15, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x19, 0x00, +0x00, 0x2A, 0x30, 0x01, 0x19, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x53, 0x4D, 0x54, 0x00, 0x45, +0x45, 0x54, 0x00, 0x4D, 0x53, 0x4B, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, +0x4D, 0x53, 0x44, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, +0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x01, 0x00, 0xCD, 0xEA, 0xD7, 0x01, 0x46, 0xB0, 0xD0, 0x00, 0x00, 0x00, 0x0E, 0x63, 0x65, 0x6E, +0x74, 0x72, 0x61, 0x6C, 0x20, 0x43, 0x72, 0x69, 0x6D, 0x65, 0x61, + +/* Europe/Skopje */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0xCA, 0x02, 0x35, 0xE0, +0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, +0xD0, 0x82, 0x25, 0x10, 0xD0, 0xFA, 0x01, 0x70, 0xD1, 0xA1, 0x8C, 0x10, 0xD2, 0x4E, 0x40, 0x90, +0x18, 0x45, 0x5F, 0x70, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x03, 0x01, 0x02, 0x01, +0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, +0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, +0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xC9, 0x63, +0xFD, 0x01, 0x33, 0x5C, 0xE5, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Sofia */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x12, 0xCC, 0xE7, 0x4B, 0x10, +0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x82, 0x25, 0x10, +0xD0, 0xFA, 0x01, 0x70, 0xD1, 0x72, 0x24, 0x20, 0x11, 0x63, 0xEF, 0x50, 0x12, 0x55, 0x3F, 0xE0, +0x13, 0x4D, 0x0B, 0xD0, 0x14, 0x35, 0x21, 0xE0, 0x15, 0x2C, 0xED, 0xD0, 0x16, 0x13, 0xC0, 0x70, +0x17, 0x0C, 0xCF, 0xD0, 0x17, 0xF3, 0xB0, 0x80, 0x18, 0xE3, 0xA1, 0x80, 0x19, 0xD3, 0x92, 0x80, +0x1A, 0xC3, 0x83, 0x80, 0x1B, 0xBC, 0xAF, 0x00, 0x1C, 0xAC, 0xA0, 0x00, 0x1D, 0x9C, 0x91, 0x00, +0x1E, 0x8C, 0x82, 0x00, 0x1F, 0x7C, 0x73, 0x00, 0x20, 0x6C, 0x64, 0x00, 0x21, 0x5C, 0x55, 0x00, +0x22, 0x4C, 0x46, 0x00, 0x23, 0x3C, 0x37, 0x00, 0x24, 0x2C, 0x28, 0x00, 0x25, 0x1C, 0x19, 0x00, +0x26, 0x0C, 0x0A, 0x00, 0x27, 0x05, 0x35, 0x80, 0x27, 0x7F, 0xB4, 0xE0, 0x27, 0xF5, 0x0A, 0x60, +0x28, 0xE4, 0xED, 0x50, 0x29, 0xD4, 0xEC, 0x60, 0x2A, 0xC4, 0xCF, 0x50, 0x2B, 0xB4, 0xCE, 0x60, +0x2C, 0xA4, 0xB1, 0x50, 0x2D, 0x94, 0xB0, 0x60, 0x2E, 0x84, 0x93, 0x50, 0x2F, 0x74, 0x92, 0x60, +0x30, 0x64, 0x75, 0x50, 0x31, 0x5D, 0xAE, 0xE0, 0x32, 0x72, 0x7B, 0xD0, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, +0x00, 0x04, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, +0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, +0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, +0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, +0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, +0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, +0x07, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, +0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, +0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x2A, 0x30, +0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x45, 0x45, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, +0x43, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, +0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xCA, 0x75, 0x6D, +0x01, 0x36, 0x3C, 0x92, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Stockholm */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x1E, 0x8C, 0x60, +0x9B, 0xD5, 0xDA, 0xF0, 0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, +0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, +0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, +0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, +0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, +0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, +0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, +0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, +0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x00, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, +0x00, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, +0x00, 0x01, 0x01, 0x00, 0xE3, 0xDD, 0x55, 0x01, 0x2E, 0x33, 0x48, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Tallinn */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x45, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x1E, 0x9E, 0x59, 0x2D, 0xCC, +0x9E, 0xB9, 0x90, 0x90, 0x9F, 0x84, 0x97, 0x90, 0xA1, 0x00, 0x2B, 0x70, 0xA4, 0x73, 0x6F, 0x4C, +0xC8, 0xB0, 0xB5, 0xE0, 0xCA, 0xC6, 0x97, 0x50, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x74, 0xCB, 0xE0, 0x15, 0x27, 0xA7, 0xD0, +0x16, 0x18, 0xDC, 0x40, 0x17, 0x08, 0xDB, 0x50, 0x17, 0xFA, 0x0F, 0xC0, 0x18, 0xEA, 0x0E, 0xD0, +0x19, 0xDB, 0x43, 0x40, 0x1A, 0xCC, 0x93, 0xD0, 0x1B, 0xBC, 0xA0, 0xF0, 0x1C, 0xAC, 0x91, 0xF0, +0x1D, 0x9C, 0x82, 0xF0, 0x1E, 0x8C, 0x73, 0xF0, 0x1F, 0x7C, 0x64, 0xF0, 0x20, 0x6C, 0x55, 0xF0, +0x21, 0x5C, 0x46, 0xF0, 0x22, 0x4C, 0x37, 0xF0, 0x23, 0x3C, 0x28, 0xF0, 0x24, 0x2C, 0x19, 0xF0, +0x25, 0x1C, 0x19, 0x00, 0x26, 0x0C, 0x0A, 0x00, 0x27, 0x05, 0x35, 0x80, 0x27, 0xF5, 0x26, 0x80, +0x28, 0xE5, 0x17, 0x80, 0x29, 0xD5, 0x08, 0x80, 0x2A, 0xC4, 0xF9, 0x80, 0x2B, 0xB4, 0xEA, 0x80, +0x2C, 0xA4, 0xDB, 0x80, 0x2D, 0x94, 0xCC, 0x80, 0x2E, 0x84, 0xBD, 0x80, 0x2F, 0x74, 0xAE, 0x80, +0x30, 0x64, 0x9F, 0x80, 0x31, 0x5D, 0xCB, 0x00, 0x32, 0x72, 0xA6, 0x00, 0x33, 0x3D, 0xAD, 0x00, +0x34, 0x52, 0x88, 0x00, 0x35, 0x1D, 0x8F, 0x00, 0x36, 0x06, 0xBE, 0x50, 0x36, 0x32, 0x78, 0x10, +0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0x1C, 0xBB, 0xE0, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x03, 0x01, 0x02, 0x00, +0x04, 0x05, 0x06, 0x02, 0x01, 0x02, 0x01, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, +0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0E, 0x0C, 0x0D, 0x0C, 0x04, +0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, +0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, +0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, +0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, +0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x00, 0x00, 0x17, 0x34, 0x00, 0x00, 0x00, 0x00, +0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, +0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x11, 0x00, 0x00, 0x1C, 0x20, +0x01, 0x04, 0x00, 0x00, 0x38, 0x40, 0x01, 0x15, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x11, 0x00, 0x00, +0x38, 0x40, 0x01, 0x15, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x19, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, +0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, +0x01, 0x19, 0x54, 0x4D, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x45, +0x45, 0x54, 0x00, 0x4D, 0x53, 0x4B, 0x00, 0x4D, 0x53, 0x44, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xE3, +0xFD, 0xE2, 0x01, 0x38, 0x6C, 0x78, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Tirane */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D, 0x96, 0xAA, 0x34, 0x68, +0xC8, 0x6D, 0x87, 0x70, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, 0xCD, 0xB8, 0xE9, 0x90, +0x08, 0x28, 0x39, 0xF0, 0x08, 0xEF, 0x3E, 0x60, 0x0A, 0x05, 0x78, 0xF0, 0x0A, 0xD0, 0x71, 0xE0, +0x0B, 0xE9, 0x4F, 0x70, 0x0C, 0xB4, 0x48, 0x60, 0x0D, 0xD2, 0x6B, 0xF0, 0x0E, 0x94, 0x2A, 0x60, +0x0F, 0xB0, 0xFC, 0x70, 0x10, 0x74, 0x0C, 0x60, 0x11, 0x90, 0xDE, 0x70, 0x12, 0x53, 0xEE, 0x60, +0x13, 0x70, 0xC0, 0x70, 0x14, 0x3B, 0xB9, 0x60, 0x15, 0x48, 0xB9, 0x70, 0x16, 0x13, 0xB2, 0x60, +0x17, 0x31, 0xD5, 0xF0, 0x17, 0xFC, 0xCE, 0xE0, 0x19, 0x00, 0x94, 0x70, 0x19, 0xDB, 0x5F, 0x60, +0x1A, 0xCC, 0xAF, 0xF0, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x12, 0x98, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, +0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x1C, +0x20, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xC8, 0x66, 0x15, 0x01, 0x30, +0xEB, 0xE5, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Tiraspol */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x22, 0x9E, 0x6B, 0x9F, 0x0C, +0xB7, 0xB0, 0xD2, 0x08, 0xB9, 0x3E, 0xF3, 0x60, 0xB9, 0xEF, 0x9C, 0x60, 0xBA, 0xDF, 0x8D, 0x60, +0xBB, 0xCF, 0x7E, 0x60, 0xBC, 0xC8, 0xA9, 0xE0, 0xBD, 0xB8, 0x9A, 0xE0, 0xBE, 0xA8, 0x8B, 0xE0, +0xBF, 0x98, 0x7C, 0xE0, 0xC0, 0x88, 0x6D, 0xE0, 0xC1, 0x78, 0x5E, 0xE0, 0xC2, 0x68, 0x4F, 0xE0, +0xC3, 0x58, 0x40, 0xE0, 0xC4, 0x48, 0x31, 0xE0, 0xC5, 0x38, 0x22, 0xE0, 0xC6, 0x28, 0x13, 0xE0, +0xC7, 0x18, 0x04, 0xE0, 0xC8, 0xBC, 0x93, 0x60, 0xCA, 0x77, 0x7D, 0x50, 0xCC, 0xE7, 0x4B, 0x10, +0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x4E, 0x90, 0x60, +0x15, 0x27, 0xA7, 0xD0, 0x16, 0x18, 0xDC, 0x40, 0x17, 0x08, 0xDB, 0x50, 0x17, 0xFA, 0x0F, 0xC0, +0x18, 0xEA, 0x0E, 0xD0, 0x19, 0xDB, 0x43, 0x40, 0x1A, 0xCC, 0x93, 0xD0, 0x1B, 0xBC, 0xA0, 0xF0, +0x1C, 0xAC, 0x91, 0xF0, 0x1D, 0x9C, 0x82, 0xF0, 0x1E, 0x8C, 0x73, 0xF0, 0x1F, 0x7C, 0x64, 0xF0, +0x20, 0x6C, 0x55, 0xF0, 0x21, 0x5C, 0x46, 0xF0, 0x22, 0x4C, 0x37, 0xF0, 0x23, 0x3C, 0x28, 0xF0, +0x24, 0x2C, 0x19, 0xF0, 0x25, 0x1C, 0x0A, 0xF0, 0x25, 0x9E, 0x73, 0x50, 0x26, 0x43, 0x3E, 0xD0, +0x27, 0xF5, 0x26, 0x80, 0x28, 0xE5, 0x17, 0x80, 0x29, 0x60, 0xE8, 0x60, 0x29, 0xD4, 0xEC, 0x60, +0x2A, 0xC4, 0xCF, 0x50, 0x2B, 0xB4, 0xCE, 0x60, 0x2C, 0xA4, 0xB1, 0x50, 0x2D, 0x94, 0xB0, 0x60, +0x2E, 0x84, 0x93, 0x50, 0x2F, 0x74, 0x92, 0x60, 0x30, 0x64, 0x75, 0x50, 0x31, 0x5D, 0xAE, 0xE0, +0x32, 0x72, 0x7B, 0xD0, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x04, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x08, +0x06, 0x07, 0x06, 0x07, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0B, 0x0C, 0x0B, 0x0C, +0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0A, 0x04, 0x02, 0x03, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, +0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, +0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, +0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, +0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, +0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x0D, 0x0E, 0x00, 0x00, 0x1A, 0xF4, 0x00, 0x00, 0x00, 0x00, +0x18, 0x78, 0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, +0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, +0x00, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x15, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x15, 0x00, 0x00, +0x38, 0x40, 0x01, 0x1A, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x1E, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x1E, +0x00, 0x00, 0x38, 0x40, 0x01, 0x1A, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x08, 0x00, 0x00, 0x1C, 0x20, +0x00, 0x0D, 0x43, 0x4D, 0x54, 0x00, 0x42, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, +0x45, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x44, 0x00, +0x4D, 0x53, 0x4B, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, +0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x01, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Uzhgorod */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x1A, 0xC8, 0x09, 0x71, 0x90, +0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, +0xD0, 0x80, 0xA9, 0x60, 0xD0, 0xA1, 0x9E, 0xE0, 0xD1, 0xE5, 0xFD, 0xF0, 0x15, 0x27, 0xA7, 0xD0, +0x16, 0x18, 0xDC, 0x40, 0x17, 0x08, 0xDB, 0x50, 0x17, 0xFA, 0x0F, 0xC0, 0x18, 0xEA, 0x0E, 0xD0, +0x19, 0xDB, 0x43, 0x40, 0x1A, 0xCC, 0x93, 0xD0, 0x1B, 0xBC, 0xA0, 0xF0, 0x1C, 0xAC, 0x91, 0xF0, +0x1D, 0x9C, 0x82, 0xF0, 0x1E, 0x8C, 0x73, 0xF0, 0x1F, 0x7C, 0x64, 0xF0, 0x20, 0x6C, 0x55, 0xF0, +0x21, 0x5C, 0x46, 0xF0, 0x22, 0x4C, 0x37, 0xF0, 0x23, 0x3C, 0x28, 0xF0, 0x24, 0x2C, 0x19, 0xF0, +0x25, 0x1C, 0x0A, 0xF0, 0x25, 0x9E, 0x73, 0x50, 0x26, 0x8D, 0x2E, 0xF0, 0x27, 0xF5, 0x42, 0xA0, +0x29, 0xD4, 0xEC, 0x60, 0x2A, 0xC4, 0xCF, 0x50, 0x2B, 0xB4, 0xCE, 0x60, 0x2C, 0xA4, 0xB1, 0x50, +0x2D, 0x94, 0xB0, 0x60, 0x2E, 0x84, 0x93, 0x50, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x00, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x05, 0x00, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, +0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, +0x04, 0x00, 0x00, 0x38, 0x40, 0x01, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0D, 0x00, 0x00, 0x2A, +0x30, 0x00, 0x0D, 0x00, 0x00, 0x38, 0x40, 0x01, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, +0x00, 0x2A, 0x30, 0x01, 0x15, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x15, 0x00, 0x00, 0x1C, 0x20, 0x00, +0x11, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x44, 0x00, 0x4D, 0x53, +0x4B, 0x00, 0x45, 0x45, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, +0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x01, 0x01, 0x00, 0xD3, 0x83, 0x22, 0x01, 0x34, 0xAF, 0x70, 0x00, 0x00, 0x00, 0x08, 0x52, +0x75, 0x74, 0x68, 0x65, 0x6E, 0x69, 0x61, + +/* Europe/Vaduz */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4C, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x09, 0x15, 0x23, 0xEB, 0x90, +0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, +0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, +0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, +0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, +0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, +0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, +0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, +0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, +0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, +0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0xD1, 0x46, 0x38, 0x01, 0x21, 0x2D, 0xF2, 0x00, +0x00, 0x00, 0x00, + +/* Europe/Vatican */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x56, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x37, 0xA6, 0xF0, +0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xC5, 0xCB, 0xF0, 0x9D, 0xB5, 0xBC, 0xF0, 0x9E, 0x89, 0xFE, 0x70, +0x9F, 0x9E, 0xD9, 0x70, 0xA0, 0x60, 0xA5, 0xF0, 0xA1, 0x7E, 0xBB, 0x70, 0xA2, 0x5C, 0x37, 0x70, +0xA3, 0x4C, 0x28, 0x70, 0xC8, 0x6C, 0x35, 0xF0, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x07, 0x5F, 0x60, 0xD0, 0x6E, 0x42, 0x70, +0xD1, 0x72, 0x16, 0x10, 0xD2, 0x4C, 0xD2, 0xF0, 0xD3, 0x3E, 0x31, 0x90, 0xD4, 0x49, 0xD2, 0x10, +0xD5, 0x1D, 0xF7, 0x70, 0xD6, 0x29, 0x97, 0xF0, 0xD6, 0xEB, 0x80, 0x90, 0xD8, 0x09, 0x96, 0x10, +0xF9, 0x33, 0xB5, 0xF0, 0xF9, 0xD9, 0xC4, 0xE0, 0xFB, 0x1C, 0xD2, 0x70, 0xFB, 0xB9, 0xA6, 0xE0, +0xFC, 0xFC, 0xB4, 0x70, 0xFD, 0x99, 0x88, 0xE0, 0xFE, 0xE5, 0xD0, 0xF0, 0xFF, 0x82, 0xA5, 0x60, +0x00, 0xC5, 0xB2, 0xF0, 0x01, 0x62, 0x87, 0x60, 0x02, 0x9C, 0x5A, 0x70, 0x03, 0x42, 0x77, 0x70, +0x04, 0x85, 0x76, 0xF0, 0x05, 0x2B, 0x85, 0xE0, 0x06, 0x6E, 0x93, 0x70, 0x07, 0x0B, 0x67, 0xE0, +0x08, 0x45, 0x3A, 0xF0, 0x08, 0xEB, 0x49, 0xE0, 0x0A, 0x2E, 0x57, 0x70, 0x0A, 0xCB, 0x39, 0xF0, +0x0C, 0x0E, 0x39, 0x70, 0x0C, 0xAB, 0x1B, 0xF0, 0x0D, 0xE4, 0xE0, 0xF0, 0x0E, 0x8A, 0xFD, 0xF0, +0x0F, 0xCD, 0xFD, 0x70, 0x10, 0x74, 0x1A, 0x70, 0x11, 0xAD, 0xDF, 0x70, 0x12, 0x53, 0xFC, 0x70, +0x12, 0xCE, 0x97, 0xF0, 0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, +0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, +0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, +0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, +0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, +0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, +0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, +0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, +0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x02, 0x01, 0x02, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x03, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, +0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, +0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, +0x00, 0x05, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, +0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xC9, 0x44, 0x4E, 0x01, 0x25, 0xA8, 0xF9, 0x00, +0x00, 0x00, 0x00, + +/* Europe/Vienna */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x0C, 0x17, 0x60, +0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xD9, 0xAE, 0x90, 0x9D, 0xA4, 0xB5, 0x90, 0x9E, 0xB9, 0x90, 0x90, +0x9F, 0x84, 0x97, 0x90, 0xA1, 0xF2, 0xBF, 0x70, 0xA2, 0x70, 0x1A, 0x10, 0xA3, 0x44, 0x5B, 0x90, +0xC8, 0x09, 0x71, 0x90, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, +0xCF, 0x92, 0x34, 0x10, 0xD0, 0x82, 0x25, 0x10, 0xD1, 0x72, 0x16, 0x10, 0xD1, 0x7F, 0x45, 0x10, +0xD2, 0xDB, 0x34, 0xF0, 0xD3, 0x63, 0x1B, 0x90, 0xD4, 0x49, 0xD2, 0x10, 0xD5, 0x39, 0xC3, 0x10, +0xD6, 0x29, 0xB4, 0x10, 0xD7, 0x2C, 0x1A, 0x10, 0xD8, 0x09, 0x96, 0x10, 0x13, 0x4D, 0x27, 0xF0, +0x14, 0x33, 0xD0, 0x60, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, +0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x02, 0x03, +0x02, 0x03, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x01, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x00, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, +0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x43, 0x45, 0x53, 0x54, +0x00, 0x43, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, +0x01, 0x00, 0xD2, 0xE6, 0xE2, 0x01, 0x2B, 0x94, 0xB5, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Vilnius */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4C, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x22, 0x9C, 0x4F, 0x1F, 0x50, +0xA1, 0x85, 0x4A, 0x98, 0xA2, 0xF1, 0x30, 0xF0, 0xA3, 0x66, 0x78, 0x60, 0xC8, 0xAC, 0xCF, 0x70, +0xCA, 0x59, 0x2A, 0xD0, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, +0xCF, 0x92, 0x34, 0x10, 0xD0, 0x30, 0x3D, 0xE0, 0x15, 0x27, 0xA7, 0xD0, 0x16, 0x18, 0xDC, 0x40, +0x17, 0x08, 0xDB, 0x50, 0x17, 0xFA, 0x0F, 0xC0, 0x18, 0xEA, 0x0E, 0xD0, 0x19, 0xDB, 0x43, 0x40, +0x1A, 0xCC, 0x93, 0xD0, 0x1B, 0xBC, 0xA0, 0xF0, 0x1C, 0xAC, 0x91, 0xF0, 0x1D, 0x9C, 0x82, 0xF0, +0x1E, 0x8C, 0x73, 0xF0, 0x1F, 0x7C, 0x64, 0xF0, 0x20, 0x6C, 0x55, 0xF0, 0x21, 0x5C, 0x46, 0xF0, +0x22, 0x4C, 0x37, 0xF0, 0x23, 0x3C, 0x28, 0xF0, 0x24, 0x2C, 0x19, 0xF0, 0x25, 0x1C, 0x0A, 0xF0, +0x26, 0x0B, 0xFB, 0xF0, 0x27, 0x05, 0x27, 0x70, 0x27, 0xF5, 0x18, 0x70, 0x28, 0xE5, 0x17, 0x80, +0x29, 0xD5, 0x08, 0x80, 0x2A, 0xC4, 0xF9, 0x80, 0x2B, 0xB4, 0xEA, 0x80, 0x2C, 0xA4, 0xDB, 0x80, +0x2D, 0x94, 0xCC, 0x80, 0x2E, 0x84, 0xBD, 0x80, 0x2F, 0x74, 0xAE, 0x80, 0x30, 0x64, 0x9F, 0x80, +0x31, 0x5D, 0xCB, 0x00, 0x32, 0x72, 0xA6, 0x00, 0x33, 0x3D, 0xAD, 0x00, 0x34, 0x52, 0x88, 0x00, +0x34, 0xAA, 0xC0, 0x60, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x3E, 0x12, 0x13, 0x60, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x01, 0x02, 0x03, 0x02, 0x04, 0x07, 0x05, 0x06, 0x05, 0x06, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, +0x04, 0x08, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0B, +0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x0B, 0x0C, 0x03, 0x0D, 0x0E, +0x0D, 0x0F, 0x03, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, +0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, +0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, +0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, +0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x10, 0x0F, 0x00, 0x00, 0x13, 0xB0, 0x00, 0x00, 0x00, +0x00, 0x16, 0x68, 0x00, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x00, +0x0C, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x10, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x1C, +0x20, 0x01, 0x14, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x14, 0x00, 0x00, 0x38, 0x40, 0x01, 0x19, 0x00, +0x00, 0x2A, 0x30, 0x00, 0x10, 0x00, 0x00, 0x38, 0x40, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x01, +0x1D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x14, 0x00, 0x00, 0x0E, +0x10, 0x00, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x1D, 0x57, +0x4D, 0x54, 0x00, 0x4B, 0x4D, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x4D, +0x53, 0x4B, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x44, 0x00, 0x45, 0x45, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, +0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x01, 0x01, 0x01, 0x00, 0xDC, 0xC4, 0xED, 0x01, 0x39, 0x49, 0xD2, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Volgograd */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x19, 0xA1, 0xF5, 0x46, 0xDC, +0xAB, 0xD8, 0x86, 0x50, 0xB5, 0xA4, 0x0B, 0x50, 0xF0, 0xB0, 0x4C, 0x40, 0x15, 0x27, 0x99, 0xC0, +0x16, 0x18, 0xCE, 0x30, 0x17, 0x08, 0xCD, 0x40, 0x17, 0xFA, 0x01, 0xB0, 0x18, 0xEA, 0x00, 0xC0, +0x19, 0xDB, 0x35, 0x30, 0x1A, 0xCC, 0x85, 0xC0, 0x1B, 0xBC, 0x92, 0xE0, 0x1C, 0xAC, 0x83, 0xE0, +0x1D, 0x9C, 0x74, 0xE0, 0x1E, 0x8C, 0x65, 0xE0, 0x1F, 0x7C, 0x56, 0xE0, 0x20, 0x6C, 0x47, 0xE0, +0x21, 0x5C, 0x38, 0xE0, 0x22, 0x4C, 0x29, 0xE0, 0x23, 0x3C, 0x1A, 0xE0, 0x24, 0x2C, 0x0B, 0xE0, +0x25, 0x1C, 0x0A, 0xF0, 0x26, 0x0B, 0xFB, 0xF0, 0x27, 0x05, 0x27, 0x70, 0x27, 0xF5, 0x18, 0x70, +0x29, 0xD4, 0xEC, 0x60, 0x2A, 0xC4, 0xB3, 0x30, 0x2B, 0xB4, 0xDC, 0x70, 0x2C, 0xA4, 0xCD, 0x70, +0x2D, 0x94, 0xBE, 0x70, 0x2E, 0x84, 0xAF, 0x70, 0x2F, 0x74, 0xA0, 0x70, 0x30, 0x64, 0x91, 0x70, +0x31, 0x5D, 0xBC, 0xF0, 0x32, 0x72, 0x97, 0xF0, 0x33, 0x3D, 0x9E, 0xF0, 0x34, 0x52, 0x79, 0xF0, +0x35, 0x1D, 0x80, 0xF0, 0x36, 0x32, 0x5B, 0xF0, 0x36, 0xFD, 0x62, 0xF0, 0x38, 0x1B, 0x78, 0x70, +0x38, 0xDD, 0x44, 0xF0, 0x39, 0xFB, 0x5A, 0x70, 0x3A, 0xBD, 0x26, 0xF0, 0x3B, 0xDB, 0x3C, 0x70, +0x3C, 0xA6, 0x43, 0x70, 0x3D, 0xBB, 0x1E, 0x70, 0x3E, 0x86, 0x25, 0x70, 0x3F, 0x9B, 0x00, 0x70, +0x40, 0x66, 0x07, 0x70, 0x41, 0x84, 0x1C, 0xF0, 0x42, 0x45, 0xE9, 0x70, 0x43, 0x63, 0xFE, 0xF0, +0x44, 0x25, 0xCB, 0x70, 0x45, 0x43, 0xE0, 0xF0, 0x46, 0x05, 0xAD, 0x70, 0x47, 0x23, 0xC2, 0xF0, +0x47, 0xEE, 0xC9, 0xF0, 0x49, 0x03, 0xA4, 0xF0, 0x49, 0xCE, 0xAB, 0xF0, 0x4A, 0xE3, 0x86, 0xF0, +0x4B, 0xAE, 0x8D, 0xF0, 0x4C, 0xCC, 0xA3, 0x70, 0x4D, 0x8E, 0x6F, 0xF0, 0x01, 0x02, 0x03, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x08, 0x09, 0x08, 0x09, 0x06, 0x08, 0x0A, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x06, 0x00, 0x00, 0x29, 0xA4, +0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x09, 0x00, 0x00, +0x38, 0x40, 0x00, 0x09, 0x00, 0x00, 0x46, 0x50, 0x01, 0x0E, 0x00, 0x00, 0x38, 0x40, 0x00, 0x14, +0x00, 0x00, 0x38, 0x40, 0x00, 0x14, 0x00, 0x00, 0x46, 0x50, 0x01, 0x0E, 0x00, 0x00, 0x38, 0x40, +0x01, 0x0E, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x14, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x14, 0x4C, 0x4D, +0x54, 0x00, 0x54, 0x53, 0x41, 0x54, 0x00, 0x53, 0x54, 0x41, 0x54, 0x00, 0x56, 0x4F, 0x4C, 0x53, +0x54, 0x00, 0x56, 0x4F, 0x4C, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD3, 0xB0, +0xB5, 0x01, 0x56, 0x6E, 0xC2, 0x00, 0x00, 0x00, 0x17, 0x4D, 0x6F, 0x73, 0x63, 0x6F, 0x77, 0x2B, +0x30, 0x30, 0x20, 0x2D, 0x20, 0x43, 0x61, 0x73, 0x70, 0x69, 0x61, 0x6E, 0x20, 0x53, 0x65, 0x61, + + +/* Europe/Warsaw */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x16, 0x99, 0xA8, 0x2A, 0xD0, +0x9B, 0x0C, 0x17, 0x60, 0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xD9, 0xAE, 0x90, 0x9D, 0xA4, 0xB5, 0x90, +0x9E, 0xB9, 0x90, 0x90, 0x9F, 0x84, 0x97, 0x90, 0xA0, 0x9A, 0xB6, 0x00, 0xA1, 0x65, 0xBD, 0x00, +0xA6, 0x7D, 0x7C, 0x60, 0xC8, 0x76, 0xDE, 0x10, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x80, 0xA9, 0x60, 0xD0, 0x84, 0xBA, 0x00, +0xD1, 0x95, 0x92, 0x70, 0xD2, 0x8A, 0xBB, 0x60, 0xD3, 0x62, 0xFF, 0x70, 0xD4, 0x4B, 0x23, 0x90, +0xD5, 0x5E, 0xAD, 0x10, 0xD6, 0x29, 0xB4, 0x10, 0xD7, 0x2C, 0x1A, 0x10, 0xD8, 0x09, 0x96, 0x10, +0xD9, 0x02, 0xC1, 0x90, 0xD9, 0xE9, 0x78, 0x10, 0xE8, 0x54, 0xD2, 0x00, 0xE8, 0xF1, 0xB4, 0x80, +0xE9, 0xE1, 0xA5, 0x80, 0xEA, 0xD1, 0x96, 0x80, 0xEC, 0x14, 0x96, 0x00, 0xEC, 0xBA, 0xB3, 0x00, +0xED, 0xAA, 0xA4, 0x00, 0xEE, 0x9A, 0x95, 0x00, 0xEF, 0xD4, 0x5A, 0x00, 0xF0, 0x7A, 0x77, 0x00, +0xF1, 0xB4, 0x3C, 0x00, 0xF2, 0x5A, 0x59, 0x00, 0xF3, 0x94, 0x1E, 0x00, 0xF4, 0x3A, 0x3B, 0x00, +0xF5, 0x7D, 0x3A, 0x80, 0xF6, 0x1A, 0x1D, 0x00, 0x0D, 0x2A, 0xFD, 0x70, 0x0D, 0xA4, 0x55, 0x80, +0x0E, 0x8B, 0x0C, 0x00, 0x0F, 0x84, 0x37, 0x80, 0x10, 0x74, 0x28, 0x80, 0x11, 0x64, 0x19, 0x80, +0x12, 0x54, 0x0A, 0x80, 0x13, 0x4D, 0x36, 0x00, 0x14, 0x33, 0xEC, 0x80, 0x15, 0x23, 0xDD, 0x80, +0x16, 0x13, 0xCE, 0x80, 0x17, 0x03, 0xBF, 0x80, 0x17, 0xF3, 0xB0, 0x80, 0x18, 0xE3, 0xA1, 0x80, +0x19, 0xD3, 0x92, 0x80, 0x1A, 0xC3, 0x83, 0x80, 0x1B, 0xBC, 0xAF, 0x00, 0x1C, 0xAC, 0xA0, 0x00, +0x1D, 0x9C, 0x91, 0x00, 0x1E, 0x8C, 0x82, 0x00, 0x1F, 0x7C, 0x73, 0x00, 0x20, 0x6C, 0x64, 0x00, +0x21, 0x5C, 0x55, 0x00, 0x21, 0xDA, 0xD6, 0xF0, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, +0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, +0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, +0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, +0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, +0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, +0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, +0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, +0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, +0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x02, 0x01, 0x02, 0x03, 0x04, 0x03, 0x07, 0x05, +0x06, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x02, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x00, +0x00, 0x13, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, +0x09, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x2A, +0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x12, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x12, 0x00, +0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, 0x57, 0x4D, 0x54, 0x00, 0x43, +0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, +0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xD9, 0x0E, 0x68, 0x01, 0x32, 0xB3, 0xA0, 0x00, 0x00, 0x00, +0x00, + +/* Europe/Zagreb */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x48, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0xCA, 0x02, 0x35, 0xE0, +0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, 0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, +0xD0, 0x82, 0x25, 0x10, 0xD0, 0xFA, 0x01, 0x70, 0xD1, 0xA1, 0x8C, 0x10, 0xD2, 0x4E, 0x40, 0x90, +0x18, 0x45, 0x5F, 0x70, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x03, 0x01, 0x02, 0x01, +0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, +0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, +0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xCF, 0x36, +0xE0, 0x01, 0x2B, 0x05, 0x7A, 0x00, 0x00, 0x00, 0x00, + +/* Europe/Zaporozhye */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x1E, 0xAA, 0x19, 0xA3, 0x30, +0xB5, 0xA4, 0x19, 0x60, 0xCA, 0xAA, 0xE7, 0xD0, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCE, 0xBD, 0xD6, 0x70, 0x15, 0x27, 0xA7, 0xD0, 0x16, 0x18, 0xDC, 0x40, +0x17, 0x08, 0xDB, 0x50, 0x17, 0xFA, 0x0F, 0xC0, 0x18, 0xEA, 0x0E, 0xD0, 0x19, 0xDB, 0x43, 0x40, +0x1A, 0xCC, 0x93, 0xD0, 0x1B, 0xBC, 0xA0, 0xF0, 0x1C, 0xAC, 0x91, 0xF0, 0x1D, 0x9C, 0x82, 0xF0, +0x1E, 0x8C, 0x73, 0xF0, 0x1F, 0x7C, 0x64, 0xF0, 0x20, 0x6C, 0x55, 0xF0, 0x21, 0x5C, 0x46, 0xF0, +0x22, 0x4C, 0x37, 0xF0, 0x23, 0x3C, 0x28, 0xF0, 0x24, 0x2C, 0x19, 0xF0, 0x25, 0x1C, 0x0A, 0xF0, +0x26, 0x0B, 0xFB, 0xF0, 0x27, 0x05, 0x27, 0x70, 0x27, 0xF5, 0x18, 0x70, 0x28, 0xE4, 0xED, 0x50, +0x29, 0xD4, 0xEC, 0x60, 0x2A, 0xC4, 0xCF, 0x50, 0x2B, 0xB4, 0xCE, 0x60, 0x2C, 0xA4, 0xB1, 0x50, +0x2D, 0x94, 0xB0, 0x60, 0x2E, 0x84, 0x93, 0x50, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x01, 0x02, 0x05, 0x03, 0x04, 0x03, 0x02, 0x06, 0x02, 0x06, 0x02, 0x06, 0x02, 0x06, 0x07, 0x08, +0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x09, 0x01, 0x09, 0x01, 0x09, +0x01, 0x09, 0x01, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, +0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x0A, 0x0B, 0x00, 0x00, 0x20, 0xD0, 0x00, 0x00, 0x00, +0x00, 0x1C, 0x20, 0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, +0x0C, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x10, 0x00, 0x00, 0x38, +0x40, 0x01, 0x15, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x08, 0x00, 0x00, 0x38, 0x40, 0x01, 0x15, 0x00, +0x00, 0x2A, 0x30, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x19, 0x00, 0x00, 0x1C, 0x20, 0x00, +0x04, 0x43, 0x55, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x4D, 0x53, 0x4B, 0x00, 0x43, 0x45, 0x54, +0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x44, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xD2, 0x51, 0x25, 0x01, 0x48, 0x51, 0x7A, 0x00, +0x00, 0x00, 0x2E, 0x5A, 0x61, 0x70, 0x6F, 0x72, 0x6F, 0x7A, 0x68, 0x27, 0x79, 0x65, 0x2C, 0x20, +0x45, 0x20, 0x4C, 0x75, 0x67, 0x61, 0x6E, 0x73, 0x6B, 0x20, 0x2F, 0x20, 0x5A, 0x61, 0x70, 0x6F, +0x72, 0x69, 0x7A, 0x68, 0x69, 0x61, 0x2C, 0x20, 0x45, 0x20, 0x4C, 0x75, 0x68, 0x61, 0x6E, 0x73, +0x6B, + +/* Europe/Zurich */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0xCA, 0x17, 0x6A, 0x00, +0xCA, 0xE2, 0x71, 0x00, 0xCB, 0xF7, 0x4C, 0x00, 0xCC, 0xC2, 0x53, 0x00, 0x15, 0x23, 0xEB, 0x90, +0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, +0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, +0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, +0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, +0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, +0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, +0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, +0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, +0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, +0x00, 0x05, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, +0x00, 0x01, 0x01, 0x00, 0xD1, 0xA1, 0x5D, 0x01, 0x1F, 0xAD, 0xD5, 0x00, 0x00, 0x00, 0x00, + +/* Factory */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x4C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x7A, 0x6F, 0x6E, +0x65, 0x20, 0x6D, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x2D, 0x2D, 0x73, +0x65, 0x65, 0x20, 0x7A, 0x69, 0x63, 0x20, 0x6D, 0x61, 0x6E, 0x75, 0x61, 0x6C, 0x20, 0x70, 0x61, +0x67, 0x65, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, +0x00, + +/* GB */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0D, 0x9B, 0x26, 0xAD, 0xA0, +0x9B, 0xD6, 0x05, 0x20, 0x9C, 0xCF, 0x30, 0xA0, 0x9D, 0xA4, 0xC3, 0xA0, 0x9E, 0x9C, 0x9D, 0xA0, +0x9F, 0x97, 0x1A, 0xA0, 0xA0, 0x85, 0xBA, 0x20, 0xA1, 0x76, 0xFC, 0xA0, 0xA2, 0x65, 0x9C, 0x20, +0xA3, 0x7B, 0xC8, 0xA0, 0xA4, 0x4E, 0xB8, 0xA0, 0xA5, 0x3F, 0xFB, 0x20, 0xA6, 0x25, 0x60, 0x20, +0xA7, 0x27, 0xC6, 0x20, 0xA8, 0x2A, 0x2C, 0x20, 0xA8, 0xEB, 0xF8, 0xA0, 0xAA, 0x00, 0xD3, 0xA0, +0xAA, 0xD5, 0x15, 0x20, 0xAB, 0xE9, 0xF0, 0x20, 0xAC, 0xC7, 0x6C, 0x20, 0xAD, 0xC9, 0xD2, 0x20, +0xAE, 0xA7, 0x4E, 0x20, 0xAF, 0xA0, 0x79, 0xA0, 0xB0, 0x87, 0x30, 0x20, 0xB1, 0x92, 0xD0, 0xA0, +0xB2, 0x70, 0x4C, 0xA0, 0xB3, 0x72, 0xB2, 0xA0, 0xB4, 0x50, 0x2E, 0xA0, 0xB5, 0x49, 0x5A, 0x20, +0xB6, 0x30, 0x10, 0xA0, 0xB7, 0x32, 0x76, 0xA0, 0xB8, 0x0F, 0xF2, 0xA0, 0xB9, 0x12, 0x58, 0xA0, +0xB9, 0xEF, 0xD4, 0xA0, 0xBA, 0xE9, 0x00, 0x20, 0xBB, 0xD8, 0xF1, 0x20, 0xBC, 0xDB, 0x57, 0x20, +0xBD, 0xB8, 0xD3, 0x20, 0xBE, 0xB1, 0xFE, 0xA0, 0xBF, 0x98, 0xB5, 0x20, 0xC0, 0x9B, 0x1B, 0x20, +0xC1, 0x78, 0x97, 0x20, 0xC2, 0x7A, 0xFD, 0x20, 0xC3, 0x58, 0x79, 0x20, 0xC4, 0x51, 0xA4, 0xA0, +0xC5, 0x38, 0x5B, 0x20, 0xC6, 0x3A, 0xC1, 0x20, 0xC7, 0x58, 0xD6, 0xA0, 0xC7, 0xDA, 0x09, 0xA0, +0xCA, 0x16, 0x26, 0x90, 0xCA, 0x97, 0x59, 0x90, 0xCB, 0xD1, 0x1E, 0x90, 0xCC, 0x77, 0x3B, 0x90, +0xCD, 0xB1, 0x00, 0x90, 0xCE, 0x60, 0x58, 0x10, 0xCF, 0x90, 0xE2, 0x90, 0xD0, 0x6E, 0x5E, 0x90, +0xD1, 0x72, 0x16, 0x10, 0xD1, 0xFB, 0x32, 0x10, 0xD2, 0x69, 0xFE, 0x20, 0xD3, 0x63, 0x29, 0xA0, +0xD4, 0x49, 0xE0, 0x20, 0xD5, 0x1E, 0x21, 0xA0, 0xD5, 0x42, 0xFD, 0x90, 0xD5, 0xDF, 0xE0, 0x10, +0xD6, 0x4E, 0xAC, 0x20, 0xD6, 0xFE, 0x03, 0xA0, 0xD8, 0x2E, 0x8E, 0x20, 0xD8, 0xF9, 0x95, 0x20, +0xDA, 0x0E, 0x70, 0x20, 0xDA, 0xEB, 0xEC, 0x20, 0xDB, 0xE5, 0x17, 0xA0, 0xDC, 0xCB, 0xCE, 0x20, +0xDD, 0xC4, 0xF9, 0xA0, 0xDE, 0xB4, 0xEA, 0xA0, 0xDF, 0xAE, 0x16, 0x20, 0xE0, 0x94, 0xCC, 0xA0, +0xE1, 0x72, 0x48, 0xA0, 0xE2, 0x6B, 0x74, 0x20, 0xE3, 0x52, 0x2A, 0xA0, 0xE4, 0x54, 0x90, 0xA0, +0xE5, 0x32, 0x0C, 0xA0, 0xE6, 0x3D, 0xAD, 0x20, 0xE7, 0x1B, 0x29, 0x20, 0xE8, 0x14, 0x54, 0xA0, +0xE8, 0xFB, 0x0B, 0x20, 0xE9, 0xFD, 0x71, 0x20, 0xEA, 0xDA, 0xED, 0x20, 0xEB, 0xDD, 0x53, 0x20, +0xEC, 0xBA, 0xCF, 0x20, 0xED, 0xB3, 0xFA, 0xA0, 0xEE, 0x9A, 0xB1, 0x20, 0xEF, 0x81, 0x67, 0xA0, +0xF0, 0x9F, 0x7D, 0x20, 0xF1, 0x61, 0x49, 0xA0, 0xF2, 0x7F, 0x5F, 0x20, 0xF3, 0x4A, 0x66, 0x20, +0xF4, 0x5F, 0x41, 0x20, 0xF5, 0x21, 0x0D, 0xA0, 0xF6, 0x3F, 0x23, 0x20, 0xF7, 0x00, 0xEF, 0xA0, +0xF8, 0x1F, 0x05, 0x20, 0xF8, 0xE0, 0xD1, 0xA0, 0xF9, 0xFE, 0xE7, 0x20, 0xFA, 0xC0, 0xB3, 0xA0, +0xFB, 0xE8, 0x03, 0xA0, 0xFC, 0x7B, 0xAB, 0xA0, 0xFD, 0xC7, 0xBB, 0x70, 0x03, 0x70, 0xC6, 0x20, +0x04, 0x29, 0x58, 0x20, 0x05, 0x50, 0xA8, 0x20, 0x06, 0x09, 0x3A, 0x20, 0x07, 0x30, 0x8A, 0x20, +0x07, 0xE9, 0x1C, 0x20, 0x09, 0x10, 0x6C, 0x20, 0x09, 0xC8, 0xFE, 0x20, 0x0A, 0xF0, 0x4E, 0x20, +0x0B, 0xB2, 0x1A, 0xA0, 0x0C, 0xD0, 0x30, 0x20, 0x0D, 0x91, 0xFC, 0xA0, 0x0E, 0xB0, 0x12, 0x20, +0x0F, 0x71, 0xDE, 0xA0, 0x10, 0x99, 0x2E, 0xA0, 0x11, 0x51, 0xC0, 0xA0, 0x12, 0x79, 0x10, 0xA0, +0x13, 0x31, 0xA2, 0xA0, 0x14, 0x58, 0xF2, 0xA0, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x38, 0xC6, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x18, 0x18, 0xA8, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xF8, 0x8A, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xE1, 0xA7, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0xC1, 0x89, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0xA1, 0x6B, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x81, 0x4D, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x61, 0x2F, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x4A, 0x4B, 0x90, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x2A, 0x2D, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x29, 0x0A, 0x0F, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xE9, 0xF1, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xC9, 0xD3, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0xA9, 0xB5, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x89, 0x97, 0x90, +0x30, 0xE7, 0x24, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, +0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, +0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x06, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, +0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, +0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x01, 0x01, 0x01, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, +0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* GB-Eire */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0D, 0x9B, 0x26, 0xAD, 0xA0, +0x9B, 0xD6, 0x05, 0x20, 0x9C, 0xCF, 0x30, 0xA0, 0x9D, 0xA4, 0xC3, 0xA0, 0x9E, 0x9C, 0x9D, 0xA0, +0x9F, 0x97, 0x1A, 0xA0, 0xA0, 0x85, 0xBA, 0x20, 0xA1, 0x76, 0xFC, 0xA0, 0xA2, 0x65, 0x9C, 0x20, +0xA3, 0x7B, 0xC8, 0xA0, 0xA4, 0x4E, 0xB8, 0xA0, 0xA5, 0x3F, 0xFB, 0x20, 0xA6, 0x25, 0x60, 0x20, +0xA7, 0x27, 0xC6, 0x20, 0xA8, 0x2A, 0x2C, 0x20, 0xA8, 0xEB, 0xF8, 0xA0, 0xAA, 0x00, 0xD3, 0xA0, +0xAA, 0xD5, 0x15, 0x20, 0xAB, 0xE9, 0xF0, 0x20, 0xAC, 0xC7, 0x6C, 0x20, 0xAD, 0xC9, 0xD2, 0x20, +0xAE, 0xA7, 0x4E, 0x20, 0xAF, 0xA0, 0x79, 0xA0, 0xB0, 0x87, 0x30, 0x20, 0xB1, 0x92, 0xD0, 0xA0, +0xB2, 0x70, 0x4C, 0xA0, 0xB3, 0x72, 0xB2, 0xA0, 0xB4, 0x50, 0x2E, 0xA0, 0xB5, 0x49, 0x5A, 0x20, +0xB6, 0x30, 0x10, 0xA0, 0xB7, 0x32, 0x76, 0xA0, 0xB8, 0x0F, 0xF2, 0xA0, 0xB9, 0x12, 0x58, 0xA0, +0xB9, 0xEF, 0xD4, 0xA0, 0xBA, 0xE9, 0x00, 0x20, 0xBB, 0xD8, 0xF1, 0x20, 0xBC, 0xDB, 0x57, 0x20, +0xBD, 0xB8, 0xD3, 0x20, 0xBE, 0xB1, 0xFE, 0xA0, 0xBF, 0x98, 0xB5, 0x20, 0xC0, 0x9B, 0x1B, 0x20, +0xC1, 0x78, 0x97, 0x20, 0xC2, 0x7A, 0xFD, 0x20, 0xC3, 0x58, 0x79, 0x20, 0xC4, 0x51, 0xA4, 0xA0, +0xC5, 0x38, 0x5B, 0x20, 0xC6, 0x3A, 0xC1, 0x20, 0xC7, 0x58, 0xD6, 0xA0, 0xC7, 0xDA, 0x09, 0xA0, +0xCA, 0x16, 0x26, 0x90, 0xCA, 0x97, 0x59, 0x90, 0xCB, 0xD1, 0x1E, 0x90, 0xCC, 0x77, 0x3B, 0x90, +0xCD, 0xB1, 0x00, 0x90, 0xCE, 0x60, 0x58, 0x10, 0xCF, 0x90, 0xE2, 0x90, 0xD0, 0x6E, 0x5E, 0x90, +0xD1, 0x72, 0x16, 0x10, 0xD1, 0xFB, 0x32, 0x10, 0xD2, 0x69, 0xFE, 0x20, 0xD3, 0x63, 0x29, 0xA0, +0xD4, 0x49, 0xE0, 0x20, 0xD5, 0x1E, 0x21, 0xA0, 0xD5, 0x42, 0xFD, 0x90, 0xD5, 0xDF, 0xE0, 0x10, +0xD6, 0x4E, 0xAC, 0x20, 0xD6, 0xFE, 0x03, 0xA0, 0xD8, 0x2E, 0x8E, 0x20, 0xD8, 0xF9, 0x95, 0x20, +0xDA, 0x0E, 0x70, 0x20, 0xDA, 0xEB, 0xEC, 0x20, 0xDB, 0xE5, 0x17, 0xA0, 0xDC, 0xCB, 0xCE, 0x20, +0xDD, 0xC4, 0xF9, 0xA0, 0xDE, 0xB4, 0xEA, 0xA0, 0xDF, 0xAE, 0x16, 0x20, 0xE0, 0x94, 0xCC, 0xA0, +0xE1, 0x72, 0x48, 0xA0, 0xE2, 0x6B, 0x74, 0x20, 0xE3, 0x52, 0x2A, 0xA0, 0xE4, 0x54, 0x90, 0xA0, +0xE5, 0x32, 0x0C, 0xA0, 0xE6, 0x3D, 0xAD, 0x20, 0xE7, 0x1B, 0x29, 0x20, 0xE8, 0x14, 0x54, 0xA0, +0xE8, 0xFB, 0x0B, 0x20, 0xE9, 0xFD, 0x71, 0x20, 0xEA, 0xDA, 0xED, 0x20, 0xEB, 0xDD, 0x53, 0x20, +0xEC, 0xBA, 0xCF, 0x20, 0xED, 0xB3, 0xFA, 0xA0, 0xEE, 0x9A, 0xB1, 0x20, 0xEF, 0x81, 0x67, 0xA0, +0xF0, 0x9F, 0x7D, 0x20, 0xF1, 0x61, 0x49, 0xA0, 0xF2, 0x7F, 0x5F, 0x20, 0xF3, 0x4A, 0x66, 0x20, +0xF4, 0x5F, 0x41, 0x20, 0xF5, 0x21, 0x0D, 0xA0, 0xF6, 0x3F, 0x23, 0x20, 0xF7, 0x00, 0xEF, 0xA0, +0xF8, 0x1F, 0x05, 0x20, 0xF8, 0xE0, 0xD1, 0xA0, 0xF9, 0xFE, 0xE7, 0x20, 0xFA, 0xC0, 0xB3, 0xA0, +0xFB, 0xE8, 0x03, 0xA0, 0xFC, 0x7B, 0xAB, 0xA0, 0xFD, 0xC7, 0xBB, 0x70, 0x03, 0x70, 0xC6, 0x20, +0x04, 0x29, 0x58, 0x20, 0x05, 0x50, 0xA8, 0x20, 0x06, 0x09, 0x3A, 0x20, 0x07, 0x30, 0x8A, 0x20, +0x07, 0xE9, 0x1C, 0x20, 0x09, 0x10, 0x6C, 0x20, 0x09, 0xC8, 0xFE, 0x20, 0x0A, 0xF0, 0x4E, 0x20, +0x0B, 0xB2, 0x1A, 0xA0, 0x0C, 0xD0, 0x30, 0x20, 0x0D, 0x91, 0xFC, 0xA0, 0x0E, 0xB0, 0x12, 0x20, +0x0F, 0x71, 0xDE, 0xA0, 0x10, 0x99, 0x2E, 0xA0, 0x11, 0x51, 0xC0, 0xA0, 0x12, 0x79, 0x10, 0xA0, +0x13, 0x31, 0xA2, 0xA0, 0x14, 0x58, 0xF2, 0xA0, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x38, 0xC6, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x18, 0x18, 0xA8, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xF8, 0x8A, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xE1, 0xA7, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0xC1, 0x89, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0xA1, 0x6B, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x81, 0x4D, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x61, 0x2F, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x4A, 0x4B, 0x90, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x2A, 0x2D, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x29, 0x0A, 0x0F, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xE9, 0xF1, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xC9, 0xD3, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0xA9, 0xB5, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x89, 0x97, 0x90, +0x30, 0xE7, 0x24, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, +0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, +0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x06, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, +0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, +0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x01, 0x01, 0x01, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, +0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* GMT */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* GMT0 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* GMT-0 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* GMT+0 */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Greenwich */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Hongkong */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x85, 0x69, 0x5A, 0xFC, +0xC9, 0xEA, 0x57, 0xB8, 0xCA, 0xDA, 0x3A, 0xA8, 0xCB, 0x4B, 0x78, 0x80, 0xD2, 0x4C, 0x62, 0x70, +0xD3, 0x6A, 0xB7, 0x38, 0xD4, 0x93, 0x4A, 0xA8, 0xD5, 0x42, 0xB0, 0x38, 0xD6, 0x9A, 0xB9, 0xA8, +0xD7, 0x3E, 0x41, 0xB8, 0xD8, 0x2E, 0x24, 0xA8, 0xD8, 0xF9, 0x39, 0xB8, 0xDA, 0x0E, 0x06, 0xA8, +0xDA, 0xD9, 0x1B, 0xB8, 0xDB, 0xED, 0xE8, 0xA8, 0xDC, 0xB8, 0xFD, 0xB8, 0xDD, 0xCD, 0xCA, 0xA8, +0xDE, 0xA2, 0x1A, 0x38, 0xDF, 0xAC, 0x5B, 0x28, 0xE0, 0x81, 0xFC, 0x38, 0xE1, 0x96, 0xC9, 0x28, +0xE2, 0x4F, 0x69, 0x38, 0xE3, 0x76, 0xAB, 0x28, 0xE4, 0x2F, 0x4B, 0x38, 0xE5, 0x5F, 0xC7, 0xA8, +0xE6, 0x0F, 0x2D, 0x38, 0xE7, 0x3F, 0xA9, 0xA8, 0xE7, 0xF8, 0x49, 0xB8, 0xE9, 0x1F, 0x8B, 0xA8, +0xE9, 0xD8, 0x2B, 0xB8, 0xEA, 0xFF, 0x6D, 0xA8, 0xEB, 0xB8, 0x0D, 0xB8, 0xEC, 0xDF, 0x4F, 0xA8, +0xED, 0x97, 0xEF, 0xB8, 0xEE, 0xC8, 0x6C, 0x28, 0xEF, 0x77, 0xD1, 0xB8, 0xF0, 0xA8, 0x4E, 0x28, +0xF1, 0x57, 0xB3, 0xB8, 0xF2, 0x88, 0x30, 0x28, 0xF3, 0x40, 0xD0, 0x38, 0xF4, 0x68, 0x12, 0x28, +0xF5, 0x20, 0xB2, 0x38, 0xF6, 0x47, 0xF4, 0x28, 0xF7, 0x25, 0x7E, 0x38, 0xF8, 0x15, 0x61, 0x28, +0xF9, 0x05, 0x60, 0x38, 0xF9, 0xF5, 0x43, 0x28, 0xFA, 0xE5, 0x42, 0x38, 0xFB, 0xDE, 0x5F, 0xA8, +0xFC, 0xCE, 0x5E, 0xB8, 0xFD, 0xBE, 0x41, 0xA8, 0xFE, 0xAE, 0x40, 0xB8, 0xFF, 0x9E, 0x23, 0xA8, +0x00, 0x8E, 0x22, 0xB8, 0x01, 0x7E, 0x05, 0xA8, 0x02, 0x6E, 0x04, 0xB8, 0x03, 0x5D, 0xE7, 0xA8, +0x04, 0x4D, 0xE6, 0xB8, 0x05, 0x47, 0x04, 0x28, 0x06, 0x37, 0x03, 0x38, 0x07, 0x26, 0xE6, 0x28, +0x07, 0x83, 0x3D, 0x38, 0x09, 0x06, 0xC8, 0x28, 0x09, 0xF6, 0xC7, 0x38, 0x0A, 0xE6, 0xAA, 0x28, +0x0B, 0xD6, 0xA9, 0x38, 0x0C, 0xC6, 0x8C, 0x28, 0x11, 0x9B, 0x39, 0x38, 0x12, 0x6F, 0x6C, 0xA8, +0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x6B, 0x04, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x90, 0x01, +0x04, 0x00, 0x00, 0x70, 0x80, 0x00, 0x09, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x0D, 0x4C, 0x4D, 0x54, +0x00, 0x48, 0x4B, 0x53, 0x54, 0x00, 0x48, 0x4B, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, +0x00, 0x00, + +/* HST */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0x73, 0x60, +0x00, 0x00, 0x48, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Iceland */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x8B, 0x60, 0x83, 0x94, +0x9C, 0x91, 0x1E, 0x00, 0x9D, 0xD1, 0x88, 0x90, 0x9E, 0x72, 0x51, 0x80, 0x9F, 0xD5, 0x03, 0x10, +0xC6, 0x4D, 0x1A, 0x00, 0xC7, 0x66, 0x05, 0xA0, 0xC7, 0xDA, 0x17, 0xB0, 0xC9, 0x26, 0x43, 0xA0, +0xC9, 0xC3, 0x26, 0x20, 0xCB, 0x06, 0x25, 0xA0, 0xCB, 0xAC, 0x42, 0xA0, 0xCC, 0xDC, 0xCD, 0x20, +0xCD, 0x8C, 0x24, 0xA0, 0xCE, 0xBC, 0xAF, 0x20, 0xCF, 0x6C, 0x06, 0xA0, 0xD0, 0x9C, 0x91, 0x20, +0xD1, 0x4B, 0xE8, 0xA0, 0xD2, 0x85, 0xAD, 0xA0, 0xD3, 0x2B, 0xCA, 0xA0, 0xD4, 0x65, 0x8F, 0xA0, +0xD5, 0x39, 0xD1, 0x20, 0xD6, 0x45, 0x71, 0xA0, 0xD7, 0x19, 0xB3, 0x20, 0xD8, 0x25, 0x53, 0xA0, +0xD8, 0xF9, 0x95, 0x20, 0xDA, 0x0E, 0x70, 0x20, 0xDA, 0xD9, 0x77, 0x20, 0xDB, 0xE5, 0x17, 0xA0, +0xDC, 0xB9, 0x59, 0x20, 0xDD, 0xCE, 0x34, 0x20, 0xDE, 0xA2, 0x75, 0xA0, 0xDF, 0xAE, 0x16, 0x20, +0xE0, 0x82, 0x57, 0xA0, 0xE1, 0x8D, 0xF8, 0x20, 0xE2, 0x62, 0x39, 0xA0, 0xE3, 0x6D, 0xDA, 0x20, +0xE4, 0x42, 0x1B, 0xA0, 0xE5, 0x4D, 0xBC, 0x20, 0xE6, 0x21, 0xFD, 0xA0, 0xE7, 0x36, 0xD8, 0xA0, +0xE8, 0x0B, 0x1A, 0x20, 0xE9, 0x16, 0xBA, 0xA0, 0xE9, 0xEA, 0xFC, 0x20, 0xEA, 0xF6, 0x9C, 0xA0, +0xEB, 0xCA, 0xDE, 0x20, 0xEC, 0xD6, 0x7E, 0xA0, 0xED, 0xAA, 0xC0, 0x20, 0xEE, 0xB6, 0x60, 0xA0, +0xEF, 0x8A, 0xA2, 0x20, 0xF0, 0x96, 0x42, 0xA0, 0xF1, 0x6A, 0x84, 0x20, 0xF2, 0x7F, 0x5F, 0x20, +0xF3, 0x53, 0xA0, 0xA0, 0xF4, 0x5F, 0x41, 0x20, 0xF5, 0x33, 0x82, 0xA0, 0xF6, 0x3F, 0x23, 0x20, +0xF7, 0x13, 0x64, 0xA0, 0xF8, 0x1F, 0x05, 0x20, 0xF8, 0xF3, 0x46, 0xA0, 0xF9, 0xFE, 0xE7, 0x20, +0xFA, 0xD3, 0x28, 0xA0, 0xFB, 0xE8, 0x03, 0xA0, 0xFC, 0xBC, 0x45, 0x20, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x05, 0xFF, 0xFF, 0xEB, 0x6C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x09, 0x00, 0x00, +0x00, 0x00, 0x01, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, +0x52, 0x4D, 0x54, 0x00, 0x49, 0x53, 0x53, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, +0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Indian/Antananarivo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0D, 0x91, 0xF3, 0xCD, 0xF4, +0xE2, 0x33, 0xC0, 0xC0, 0xE2, 0xAB, 0xB9, 0x40, 0x01, 0x02, 0x03, 0x00, 0x00, 0x2C, 0x8C, 0x00, +0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x00, 0x00, 0x38, 0x40, 0x01, 0x08, 0x00, 0x00, 0x2A, +0x30, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x41, 0x54, 0x00, 0x45, 0x41, 0x53, 0x54, 0x00, +0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x76, 0xED, 0x01, 0x5B, 0x29, 0xB2, +0x00, 0x00, 0x00, 0x00, + +/* Indian/Chagos */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x49, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x89, 0x7E, 0xF7, 0x9C, +0x30, 0xE6, 0xDD, 0xB0, 0x01, 0x02, 0x00, 0x00, 0x43, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, +0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x49, 0x4F, 0x54, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x23, 0xAA, 0x01, 0x81, 0x28, 0x42, 0x00, 0x00, +0x00, 0x00, + +/* Indian/Christmas */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, +0x00, 0x00, 0x43, 0x58, 0x54, 0x00, 0x00, 0x00, 0x00, 0x79, 0x6F, 0x3D, 0x01, 0xB3, 0xF8, 0x12, +0x00, 0x00, 0x00, 0x00, + +/* Indian/Cocos */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x5B, 0x68, +0x00, 0x00, 0x43, 0x43, 0x54, 0x00, 0x00, 0x00, 0x00, 0x76, 0xC3, 0xA5, 0x01, 0xA6, 0x8A, 0x92, +0x00, 0x00, 0x00, 0x00, + +/* Indian/Comoro */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x91, 0xF3, 0xD1, 0xF0, +0x01, 0x00, 0x00, 0x28, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x45, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x80, 0x72, 0x01, 0x54, 0xAD, +0x8A, 0x00, 0x00, 0x00, 0x00, + +/* Indian/Kerguelen */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xDA, 0x61, 0x62, 0x80, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x7A, 0x7A, 0x7A, +0x00, 0x54, 0x46, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x05, 0xD2, 0x01, 0x7D, 0xCD, +0x36, 0x00, 0x00, 0x00, 0x00, + +/* Indian/Mahe */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x88, 0x64, 0xE6, 0x84, +0x01, 0x00, 0x00, 0x33, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x53, 0x43, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x35, 0x55, 0x01, 0x67, 0x4B, +0x2A, 0x00, 0x00, 0x00, 0x00, + +/* Indian/Maldives */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xED, 0x2F, 0xC3, 0x98, +0x01, 0x00, 0x00, 0x44, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x4D, 0x4D, 0x54, +0x00, 0x4D, 0x56, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8F, 0xAF, 0xDA, 0x01, 0x82, 0xCF, +0x70, 0x00, 0x00, 0x00, 0x00, + +/* Indian/Mauritius */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x89, 0x7F, 0x05, 0x98, +0x18, 0x05, 0xED, 0x40, 0x18, 0xDB, 0x72, 0x30, 0x49, 0x03, 0x96, 0xE0, 0x49, 0xCE, 0x8F, 0xD0, +0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x35, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, 0x01, +0x04, 0x00, 0x00, 0x38, 0x40, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x55, 0x53, 0x54, 0x00, +0x4D, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0x8E, 0xA5, 0x01, 0x6A, +0x65, 0x70, 0x00, 0x00, 0x00, 0x00, + +/* Indian/Mayotte */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x59, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x91, 0xF3, 0xD0, 0x18, +0x01, 0x00, 0x00, 0x2A, 0x68, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x45, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0xD2, 0xC2, 0x01, 0x57, 0xAD, +0xC5, 0x00, 0x00, 0x00, 0x00, + +/* Indian/Reunion */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x91, 0xCC, 0x39, 0x80, +0x01, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x52, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x7D, 0x35, 0x01, 0x67, 0x4B, +0x2A, 0x00, 0x00, 0x00, 0x00, + +/* Iran */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0x9A, 0x6C, 0x7D, 0xC8, +0xD2, 0xDB, 0x12, 0xC8, 0x0E, 0xBB, 0xA2, 0x48, 0x0F, 0x74, 0x2D, 0x40, 0x10, 0x8E, 0x40, 0x30, +0x10, 0xED, 0x3A, 0x40, 0x11, 0x55, 0x67, 0xC8, 0x12, 0x45, 0x4A, 0xB8, 0x13, 0x37, 0xEC, 0xC8, +0x14, 0x2D, 0x15, 0xB8, 0x28, 0x20, 0x76, 0xC8, 0x28, 0xDB, 0x9D, 0xB8, 0x29, 0xCB, 0x9C, 0xC8, +0x2A, 0xBE, 0x22, 0xB8, 0x2B, 0xAC, 0xD0, 0x48, 0x2C, 0x9F, 0x56, 0x38, 0x2D, 0x8E, 0x03, 0xC8, +0x2E, 0x80, 0x89, 0xB8, 0x2F, 0x6F, 0x37, 0x48, 0x30, 0x61, 0xBD, 0x38, 0x31, 0x50, 0x6A, 0xC8, +0x32, 0x42, 0xF0, 0xB8, 0x33, 0x32, 0xEF, 0xC8, 0x34, 0x25, 0x75, 0xB8, 0x35, 0x14, 0x23, 0x48, +0x36, 0x06, 0xA9, 0x38, 0x36, 0xF5, 0x56, 0xC8, 0x37, 0xE7, 0xDC, 0xB8, 0x38, 0xD6, 0x8A, 0x48, +0x39, 0xC9, 0x10, 0x38, 0x3A, 0xB9, 0x0F, 0x48, 0x3B, 0xAB, 0x95, 0x38, 0x3C, 0x9A, 0x42, 0xC8, +0x3D, 0x8C, 0xC8, 0xB8, 0x3E, 0x7B, 0x76, 0x48, 0x3F, 0x6D, 0xFC, 0x38, 0x40, 0x5C, 0xA9, 0xC8, +0x41, 0x4F, 0x2F, 0xB8, 0x42, 0x3F, 0x2E, 0xC8, 0x43, 0x31, 0xB4, 0xB8, 0x47, 0xE2, 0xC9, 0x48, +0x48, 0xD5, 0x4F, 0x38, 0x49, 0xC5, 0x4E, 0x48, 0x4A, 0xB7, 0xD4, 0x38, 0x4B, 0xA6, 0x81, 0xC8, +0x4C, 0x99, 0x07, 0xB8, 0x4D, 0x87, 0xB5, 0x48, 0x4E, 0x7A, 0x3B, 0x38, 0x4F, 0x68, 0xE8, 0xC8, +0x50, 0x5B, 0x6E, 0xB8, 0x51, 0x4B, 0x6D, 0xC8, 0x52, 0x3D, 0xF3, 0xB8, 0x53, 0x2C, 0xA1, 0x48, +0x54, 0x1F, 0x27, 0x38, 0x55, 0x0D, 0xD4, 0xC8, 0x56, 0x00, 0x5A, 0xB8, 0x56, 0xEF, 0x08, 0x48, +0x57, 0xE1, 0x8E, 0x38, 0x58, 0xD1, 0x8D, 0x48, 0x59, 0xC4, 0x13, 0x38, 0x5A, 0xB2, 0xC0, 0xC8, +0x5B, 0xA5, 0x46, 0xB8, 0x5C, 0x93, 0xF4, 0x48, 0x5D, 0x86, 0x7A, 0x38, 0x5E, 0x75, 0x27, 0xC8, +0x5F, 0x67, 0xAD, 0xB8, 0x60, 0x57, 0xAC, 0xC8, 0x61, 0x4A, 0x32, 0xB8, 0x62, 0x38, 0xE0, 0x48, +0x63, 0x2B, 0x66, 0x38, 0x64, 0x1A, 0x13, 0xC8, 0x65, 0x0C, 0x99, 0xB8, 0x65, 0xFB, 0x47, 0x48, +0x66, 0xED, 0xCD, 0x38, 0x67, 0xDD, 0xCC, 0x48, 0x68, 0xD0, 0x52, 0x38, 0x69, 0xBE, 0xFF, 0xC8, +0x6A, 0xB1, 0x85, 0xB8, 0x6B, 0xA0, 0x33, 0x48, 0x6C, 0x92, 0xB9, 0x38, 0x6D, 0x81, 0x66, 0xC8, +0x6E, 0x73, 0xEC, 0xB8, 0x6F, 0x62, 0x9A, 0x48, 0x70, 0x55, 0x20, 0x38, 0x71, 0x45, 0x1F, 0x48, +0x72, 0x37, 0xA5, 0x38, 0x73, 0x26, 0x52, 0xC8, 0x74, 0x18, 0xD8, 0xB8, 0x75, 0x07, 0x86, 0x48, +0x75, 0xFA, 0x0C, 0x38, 0x76, 0xE8, 0xB9, 0xC8, 0x77, 0xDB, 0x3F, 0xB8, 0x78, 0xCB, 0x3E, 0xC8, +0x79, 0xBD, 0xC4, 0xB8, 0x7A, 0xAC, 0x72, 0x48, 0x7B, 0x9E, 0xF8, 0x38, 0x7C, 0x8D, 0xA5, 0xC8, +0x7D, 0x80, 0x2B, 0xB8, 0x7E, 0x6E, 0xD9, 0x48, 0x7F, 0x61, 0x5F, 0x38, 0x01, 0x02, 0x04, 0x03, +0x04, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x00, 0x00, 0x30, 0x38, 0x00, 0x00, 0x00, 0x00, 0x30, 0x38, 0x00, 0x04, 0x00, 0x00, 0x31, 0x38, +0x00, 0x08, 0x00, 0x00, 0x46, 0x50, 0x01, 0x0D, 0x00, 0x00, 0x38, 0x40, 0x00, 0x08, 0x00, 0x00, +0x3F, 0x48, 0x01, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x54, 0x4D, 0x54, 0x00, 0x49, 0x52, 0x53, 0x54, +0x00, 0x49, 0x52, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Israel */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x9E, 0x30, 0x45, 0x88, +0xC8, 0x59, 0xB2, 0xE0, 0xCC, 0xE5, 0xC1, 0x50, 0xCD, 0xAC, 0xFE, 0x00, 0xCE, 0xC6, 0xF4, 0xD0, +0xCF, 0x8F, 0x66, 0xE0, 0xD0, 0xA9, 0x79, 0xD0, 0xD1, 0x84, 0x60, 0xE0, 0xD2, 0x8A, 0xC9, 0x70, +0xD3, 0x65, 0xB0, 0x80, 0xD4, 0x6B, 0xE0, 0xD0, 0xD7, 0x5A, 0x14, 0x60, 0xD7, 0xDF, 0x1F, 0xC0, +0xD8, 0x2F, 0xB5, 0x70, 0xD9, 0x1E, 0x46, 0xE0, 0xDA, 0x10, 0xE8, 0xF0, 0xDA, 0xEB, 0xB3, 0xE0, +0xDB, 0xB4, 0x34, 0x00, 0xDC, 0xB9, 0x20, 0xE0, 0xDD, 0xE0, 0x8D, 0x00, 0xDE, 0xB4, 0xCE, 0x80, +0xDF, 0xA4, 0xBF, 0x80, 0xE0, 0x8B, 0x76, 0x00, 0xE1, 0x56, 0x7D, 0x00, 0xE2, 0xBE, 0x4A, 0x60, +0xE3, 0x36, 0x34, 0xD0, 0xE4, 0x9C, 0xF7, 0x00, 0xE5, 0x16, 0x16, 0xD0, 0xE6, 0x74, 0xD3, 0xE0, +0xE7, 0x11, 0xD2, 0x80, 0xE8, 0x27, 0xFF, 0x00, 0xE8, 0xE8, 0x4F, 0xD0, 0x08, 0x7C, 0x8B, 0xE0, +0x08, 0xFD, 0xB0, 0xD0, 0x09, 0xF6, 0xEA, 0x60, 0x0A, 0xA6, 0x33, 0xD0, 0x1C, 0xBE, 0xF8, 0xE0, +0x1D, 0x89, 0xF1, 0xD0, 0x1E, 0xCC, 0xFF, 0x60, 0x1F, 0x60, 0x99, 0x50, 0x20, 0x82, 0xB1, 0x60, +0x21, 0x49, 0xB5, 0xD0, 0x22, 0x5D, 0x4D, 0x60, 0x23, 0x1F, 0x0B, 0xD0, 0x24, 0x5A, 0x30, 0x60, +0x25, 0x00, 0x3F, 0x50, 0x26, 0x0B, 0xED, 0xE0, 0x26, 0xD6, 0xE6, 0xD0, 0x27, 0xEB, 0xCF, 0xE0, +0x28, 0xC0, 0x03, 0x50, 0x29, 0xD4, 0xEC, 0x60, 0x2A, 0xA9, 0x1F, 0xD0, 0x2B, 0xBB, 0x65, 0xE0, +0x2C, 0x89, 0x01, 0xD0, 0x2D, 0x9B, 0x47, 0xE0, 0x2E, 0x5F, 0xA9, 0x50, 0x2F, 0x7B, 0x29, 0xE0, +0x30, 0x48, 0xC5, 0xD0, 0x31, 0x48, 0x96, 0xE0, 0x32, 0x3C, 0x6E, 0x50, 0x33, 0x31, 0xB3, 0x60, +0x34, 0x1A, 0xFE, 0xD0, 0x35, 0x11, 0x95, 0x60, 0x35, 0xF1, 0xA6, 0x50, 0x37, 0x04, 0x08, 0x80, +0x37, 0xCF, 0x01, 0x70, 0x38, 0xF6, 0x5F, 0x80, 0x39, 0xDC, 0xF9, 0xE0, 0x3A, 0xD0, 0xED, 0x70, +0x3B, 0xAE, 0x5B, 0x60, 0x3C, 0xA3, 0xA0, 0x70, 0x3D, 0xA0, 0xB2, 0x60, 0x3E, 0x83, 0x82, 0x70, +0x3F, 0x7C, 0x9F, 0xE0, 0x40, 0x73, 0x36, 0x70, 0x41, 0x50, 0xA4, 0x60, 0x42, 0x4C, 0x8F, 0x00, +0x43, 0x48, 0x4F, 0x70, 0x44, 0x2C, 0x71, 0x00, 0x45, 0x1E, 0xF6, 0xF0, 0x46, 0x0C, 0x53, 0x00, +0x46, 0xEC, 0x63, 0xF0, 0x47, 0xEC, 0x35, 0x00, 0x48, 0xE7, 0xF5, 0x70, 0x49, 0xCC, 0x17, 0x00, +0x4A, 0xBE, 0x9C, 0xF0, 0x4B, 0xAB, 0xF9, 0x00, 0x4C, 0x8C, 0x09, 0xF0, 0x4D, 0x95, 0x15, 0x80, +0x4E, 0x87, 0x9B, 0x70, 0x4F, 0x74, 0xF7, 0x80, 0x50, 0x5E, 0x42, 0xF0, 0x51, 0x54, 0xD9, 0x80, +0x52, 0x50, 0x99, 0xF0, 0x53, 0x34, 0xBB, 0x80, 0x54, 0x30, 0x7B, 0xF0, 0x55, 0x14, 0x9D, 0x80, +0x56, 0x10, 0x5D, 0xF0, 0x56, 0xF4, 0x7F, 0x80, 0x57, 0xF0, 0x3F, 0xF0, 0x58, 0xD4, 0x61, 0x80, +0x59, 0xD9, 0x5C, 0x70, 0x5A, 0xB4, 0x43, 0x80, 0x5B, 0xB9, 0x3E, 0x70, 0x5C, 0x9D, 0x60, 0x00, +0x5D, 0x99, 0x20, 0x70, 0x5E, 0x7D, 0x42, 0x00, 0x5F, 0x79, 0x02, 0x70, 0x60, 0x5D, 0x24, 0x00, +0x61, 0x58, 0xE4, 0x70, 0x62, 0x3D, 0x06, 0x00, 0x63, 0x38, 0xC6, 0x70, 0x64, 0x1C, 0xE8, 0x00, +0x65, 0x21, 0xE2, 0xF0, 0x66, 0x06, 0x04, 0x80, 0x67, 0x01, 0xC4, 0xF0, 0x67, 0xE5, 0xE6, 0x80, +0x68, 0xE1, 0xA6, 0xF0, 0x69, 0xC5, 0xC8, 0x80, 0x6A, 0xC1, 0x88, 0xF0, 0x6B, 0xA5, 0xAA, 0x80, +0x6C, 0xA2, 0xBC, 0x70, 0x6D, 0x85, 0x8C, 0x80, 0x6E, 0x8A, 0x87, 0x70, 0x6F, 0x65, 0x6E, 0x80, +0x70, 0x6A, 0x69, 0x70, 0x71, 0x4E, 0x8B, 0x00, 0x72, 0x4A, 0x4B, 0x70, 0x73, 0x2E, 0x6D, 0x00, +0x74, 0x2A, 0x2D, 0x70, 0x75, 0x0E, 0x4F, 0x00, 0x76, 0x0A, 0x0F, 0x70, 0x76, 0xEE, 0x31, 0x00, +0x77, 0xE9, 0xF1, 0x70, 0x78, 0xCE, 0x13, 0x00, 0x79, 0xD3, 0x0D, 0xF0, 0x7A, 0xAD, 0xF5, 0x00, +0x7B, 0xB2, 0xEF, 0xF0, 0x7C, 0x97, 0x11, 0x80, 0x7D, 0x92, 0xD1, 0xF0, 0x7E, 0x76, 0xF3, 0x80, +0x7F, 0x72, 0xB3, 0xF0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x00, 0x00, 0x20, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, +0x1C, 0x20, 0x00, 0x08, 0x00, 0x00, 0x38, 0x40, 0x01, 0x0C, 0x4A, 0x4D, 0x54, 0x00, 0x49, 0x44, +0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x49, 0x44, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Jamaica */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x93, 0x0F, 0xB5, 0x00, +0x08, 0x20, 0xC1, 0x70, 0x09, 0x10, 0xA4, 0x60, 0x09, 0xAD, 0x94, 0xF0, 0x0A, 0xF0, 0x86, 0x60, +0x0B, 0xE0, 0x85, 0x70, 0x0C, 0xD9, 0xA2, 0xE0, 0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, +0x0F, 0xA9, 0x83, 0xF0, 0x10, 0x99, 0x66, 0xE0, 0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, +0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, 0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, +0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, 0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xB8, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, +0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0x4B, 0x4D, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, +0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, +0x80, 0x00, 0x00, 0x00, 0x00, + +/* Japan */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xC3, 0xCE, 0x85, 0x70, +0xD7, 0x3E, 0x1E, 0x90, 0xD7, 0xEC, 0x16, 0x80, 0xD8, 0xF9, 0x16, 0x90, 0xD9, 0xCB, 0xF8, 0x80, +0xDB, 0x07, 0x1D, 0x10, 0xDB, 0xAB, 0xDA, 0x80, 0xDC, 0xE6, 0xFF, 0x10, 0xDD, 0x8B, 0xBC, 0x80, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x00, 0x00, +0x00, 0x8C, 0xA0, 0x01, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x08, 0x43, 0x4A, 0x54, 0x00, 0x4A, +0x44, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Kwajalein */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x09, 0xFF, 0x86, 0x1B, 0x50, +0x2C, 0x74, 0xBC, 0xC0, 0x01, 0x02, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x00, 0xFF, 0xFF, 0x57, 0x40, +0x00, 0x04, 0x00, 0x00, 0xA8, 0xC0, 0x00, 0x00, 0x4D, 0x48, 0x54, 0x00, 0x4B, 0x57, 0x41, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, +0x00, 0x00, 0x00, + +/* Libya */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0xA1, 0xF2, 0xC1, 0x24, +0xDD, 0xBB, 0xB1, 0x10, 0xDE, 0x23, 0xAD, 0x60, 0xE1, 0x78, 0xD2, 0x10, 0xE1, 0xE7, 0x65, 0xE0, +0xE5, 0x2F, 0x3F, 0x70, 0xE5, 0xA9, 0xCC, 0xE0, 0xEB, 0x4E, 0xC6, 0xF0, 0x16, 0x92, 0x42, 0x60, +0x17, 0x08, 0xF7, 0x70, 0x17, 0xFA, 0x2B, 0xE0, 0x18, 0xEA, 0x2A, 0xF0, 0x19, 0xDB, 0x5F, 0x60, +0x1A, 0xCC, 0xAF, 0xF0, 0x1B, 0xBD, 0xE4, 0x60, 0x1C, 0xB4, 0x7A, 0xF0, 0x1D, 0x9F, 0x17, 0xE0, +0x1E, 0x93, 0x0B, 0x70, 0x1F, 0x82, 0xEE, 0x60, 0x20, 0x70, 0x4A, 0x70, 0x21, 0x61, 0x7E, 0xE0, +0x22, 0x52, 0xCF, 0x70, 0x23, 0x44, 0x03, 0xE0, 0x24, 0x34, 0x02, 0xF0, 0x25, 0x25, 0x37, 0x60, +0x26, 0x40, 0xB7, 0xF0, 0x32, 0x4E, 0xF1, 0x60, 0x33, 0x44, 0x36, 0x70, 0x34, 0x35, 0x6A, 0xE0, +0x50, 0x9D, 0x99, 0x00, 0x51, 0x54, 0xD9, 0x80, 0x52, 0x69, 0xB4, 0x80, 0x53, 0x34, 0xBB, 0x80, +0x54, 0x52, 0xD1, 0x00, 0x55, 0x14, 0x9D, 0x80, 0x56, 0x32, 0xB3, 0x00, 0x56, 0xF4, 0x7F, 0x80, +0x58, 0x12, 0x95, 0x00, 0x58, 0xDD, 0x9C, 0x00, 0x59, 0xF2, 0x77, 0x00, 0x5A, 0xBD, 0x7E, 0x00, +0x5B, 0xD2, 0x59, 0x00, 0x5C, 0x9D, 0x60, 0x00, 0x5D, 0xB2, 0x3B, 0x00, 0x5E, 0x7D, 0x42, 0x00, +0x5F, 0x9B, 0x57, 0x80, 0x60, 0x5D, 0x24, 0x00, 0x61, 0x7B, 0x39, 0x80, 0x62, 0x3D, 0x06, 0x00, +0x63, 0x5B, 0x1B, 0x80, 0x64, 0x26, 0x22, 0x80, 0x65, 0x3A, 0xFD, 0x80, 0x66, 0x06, 0x04, 0x80, +0x67, 0x1A, 0xDF, 0x80, 0x67, 0xE5, 0xE6, 0x80, 0x69, 0x03, 0xFC, 0x00, 0x69, 0xC5, 0xC8, 0x80, +0x6A, 0xE3, 0xDE, 0x00, 0x6B, 0xA5, 0xAA, 0x80, 0x6C, 0xC3, 0xC0, 0x00, 0x6D, 0x8E, 0xC7, 0x00, +0x6E, 0xA3, 0xA2, 0x00, 0x6F, 0x6E, 0xA9, 0x00, 0x70, 0x83, 0x84, 0x00, 0x71, 0x4E, 0x8B, 0x00, +0x72, 0x63, 0x66, 0x00, 0x73, 0x2E, 0x6D, 0x00, 0x74, 0x4C, 0x82, 0x80, 0x75, 0x0E, 0x4F, 0x00, +0x76, 0x2C, 0x64, 0x80, 0x76, 0xEE, 0x31, 0x00, 0x78, 0x0C, 0x46, 0x80, 0x78, 0xD7, 0x4D, 0x80, +0x79, 0xEC, 0x28, 0x80, 0x7A, 0xB7, 0x2F, 0x80, 0x7B, 0xCC, 0x0A, 0x80, 0x7C, 0x97, 0x11, 0x80, +0x7D, 0xB5, 0x27, 0x00, 0x7E, 0x76, 0xF3, 0x80, 0x7F, 0x95, 0x09, 0x00, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x0C, 0x5C, +0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, +0x1C, 0x20, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, +0x00, 0x45, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* MET */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0x9B, 0x0C, 0x17, 0x60, +0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xD9, 0xAE, 0x90, 0x9D, 0xA4, 0xB5, 0x90, 0x9E, 0xB9, 0x90, 0x90, +0x9F, 0x84, 0x97, 0x90, 0xC8, 0x09, 0x71, 0x90, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x82, 0x25, 0x10, 0xD1, 0x72, 0x16, 0x10, +0xD2, 0x4E, 0x40, 0x90, 0x0D, 0xA4, 0x63, 0x90, 0x0E, 0x8B, 0x1A, 0x10, 0x0F, 0x84, 0x45, 0x90, +0x10, 0x74, 0x36, 0x90, 0x11, 0x64, 0x27, 0x90, 0x12, 0x54, 0x18, 0x90, 0x13, 0x4D, 0x44, 0x10, +0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, +0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, +0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, +0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, +0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, +0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, +0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, +0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, +0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, +0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, +0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, +0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, +0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, +0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, +0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, +0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, +0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, +0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, +0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, +0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, +0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, +0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, +0x00, 0x00, 0x1C, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x05, 0x4D, 0x45, 0x53, 0x54, +0x00, 0x4D, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Mexico/BajaNorte */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0xA5, 0xB6, 0xF6, 0x80, +0xA9, 0x79, 0x4F, 0x70, 0xAF, 0xF2, 0x7C, 0xF0, 0xB6, 0x66, 0x64, 0x70, 0xB7, 0x1B, 0x10, 0x00, +0xB8, 0x0A, 0xF2, 0xF0, 0xCB, 0xEA, 0x8D, 0x80, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x99, 0xBA, 0x70, +0xD7, 0x1B, 0x59, 0x00, 0xD8, 0x91, 0xB4, 0xF0, 0xE2, 0x7E, 0x59, 0xA0, 0xE3, 0x49, 0x52, 0x90, +0xE4, 0x5E, 0x3B, 0xA0, 0xE5, 0x29, 0x34, 0x90, 0xE6, 0x47, 0x58, 0x20, 0xE7, 0x12, 0x51, 0x10, +0xE8, 0x27, 0x3A, 0x20, 0xE8, 0xF2, 0x33, 0x10, 0xEA, 0x07, 0x1C, 0x20, 0xEA, 0xD2, 0x15, 0x10, +0xEB, 0xE6, 0xFE, 0x20, 0xEC, 0xB1, 0xF7, 0x10, 0xED, 0xC6, 0xE0, 0x20, 0xEE, 0x91, 0xD9, 0x10, +0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, +0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x73, 0x10, +0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, +0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, +0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, 0x1D, 0xC1, 0xF9, 0x90, +0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20, 0x21, 0x81, 0xBD, 0x90, +0x22, 0x56, 0x0D, 0x20, 0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20, 0x25, 0x4A, 0xBC, 0x10, +0x26, 0x15, 0xD1, 0x20, 0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0, 0x29, 0x0A, 0x80, 0x10, +0x29, 0xDE, 0xCF, 0xA0, 0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0, 0x2C, 0xD3, 0x7E, 0x90, +0x2D, 0x9E, 0x93, 0xA0, 0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0, 0x30, 0x93, 0x42, 0x90, +0x31, 0x67, 0x92, 0x20, 0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20, 0x34, 0x53, 0x06, 0x90, +0x35, 0x27, 0x56, 0x20, 0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20, 0x38, 0x1C, 0x05, 0x10, +0x38, 0xE7, 0x1A, 0x20, 0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20, 0x3B, 0xDB, 0xC9, 0x10, +0x3C, 0xB0, 0x18, 0xA0, 0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0, 0x3F, 0x9B, 0x8D, 0x10, +0x40, 0x6F, 0xDC, 0xA0, 0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0, 0x43, 0x64, 0x8B, 0x90, +0x44, 0x2F, 0xA0, 0xA0, 0x45, 0x44, 0x6D, 0x90, 0x46, 0x0F, 0x82, 0xA0, 0x47, 0x24, 0x4F, 0x90, +0x47, 0xF8, 0x9F, 0x20, 0x49, 0x04, 0x31, 0x90, 0x49, 0xD8, 0x81, 0x20, 0x4A, 0xE4, 0x13, 0x90, +0x4B, 0x9C, 0xB3, 0xA0, 0x4C, 0xD6, 0x6A, 0x90, 0x4D, 0x7C, 0x95, 0xA0, 0x4E, 0xB6, 0x4C, 0x90, +0x4F, 0x5C, 0x77, 0xA0, 0x50, 0x96, 0x2E, 0x90, 0x51, 0x3C, 0x59, 0xA0, 0x52, 0x76, 0x10, 0x90, +0x53, 0x1C, 0x3B, 0xA0, 0x54, 0x55, 0xF2, 0x90, 0x54, 0xFC, 0x1D, 0xA0, 0x56, 0x35, 0xD4, 0x90, +0x56, 0xE5, 0x3A, 0x20, 0x58, 0x1E, 0xF1, 0x10, 0x58, 0xC5, 0x1C, 0x20, 0x59, 0xFE, 0xD3, 0x10, +0x5A, 0xA4, 0xFE, 0x20, 0x5B, 0xDE, 0xB5, 0x10, 0x5C, 0x84, 0xE0, 0x20, 0x5D, 0xBE, 0x97, 0x10, +0x5E, 0x64, 0xC2, 0x20, 0x5F, 0x9E, 0x79, 0x10, 0x60, 0x4D, 0xDE, 0xA0, 0x61, 0x87, 0x95, 0x90, +0x62, 0x2D, 0xC0, 0xA0, 0x63, 0x67, 0x77, 0x90, 0x64, 0x0D, 0xA2, 0xA0, 0x65, 0x47, 0x59, 0x90, +0x65, 0xED, 0x84, 0xA0, 0x67, 0x27, 0x3B, 0x90, 0x67, 0xCD, 0x66, 0xA0, 0x69, 0x07, 0x1D, 0x90, +0x69, 0xAD, 0x48, 0xA0, 0x6A, 0xE6, 0xFF, 0x90, 0x6B, 0x96, 0x65, 0x20, 0x6C, 0xD0, 0x1C, 0x10, +0x6D, 0x76, 0x47, 0x20, 0x6E, 0xAF, 0xFE, 0x10, 0x6F, 0x56, 0x29, 0x20, 0x70, 0x8F, 0xE0, 0x10, +0x71, 0x36, 0x0B, 0x20, 0x72, 0x6F, 0xC2, 0x10, 0x73, 0x15, 0xED, 0x20, 0x74, 0x4F, 0xA4, 0x10, +0x74, 0xFF, 0x09, 0xA0, 0x76, 0x38, 0xC0, 0x90, 0x76, 0xDE, 0xEB, 0xA0, 0x78, 0x18, 0xA2, 0x90, +0x78, 0xBE, 0xCD, 0xA0, 0x79, 0xF8, 0x84, 0x90, 0x7A, 0x9E, 0xAF, 0xA0, 0x7B, 0xD8, 0x66, 0x90, +0x7C, 0x7E, 0x91, 0xA0, 0x7D, 0xB8, 0x48, 0x90, 0x7E, 0x5E, 0x73, 0xA0, 0x7F, 0x98, 0x2A, 0x90, +0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x04, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0xFF, 0xFF, 0x92, 0x4C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, +0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, +0x90, 0x01, 0x10, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, +0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Mexico/BajaSur */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xA5, 0xB6, 0xE8, 0x70, +0xAF, 0xF2, 0x6E, 0xE0, 0xB6, 0x66, 0x56, 0x60, 0xB7, 0x43, 0xD2, 0x60, 0xB8, 0x0C, 0x36, 0x60, +0xB8, 0xFD, 0x86, 0xF0, 0xCB, 0xEA, 0x71, 0x60, 0xD8, 0x91, 0xB4, 0xF0, 0x00, 0x00, 0x70, 0x80, +0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, +0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, +0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xF5, 0x12, 0x90, 0x3B, 0xB6, 0xD1, 0x00, +0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, +0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, +0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x46, 0x0F, 0x74, 0x90, 0x47, 0x24, 0x41, 0x80, +0x47, 0xF8, 0x91, 0x10, 0x49, 0x04, 0x23, 0x80, 0x49, 0xD8, 0x73, 0x10, 0x4A, 0xE4, 0x05, 0x80, +0x4B, 0xB8, 0x55, 0x10, 0x4C, 0xCD, 0x22, 0x00, 0x4D, 0x98, 0x37, 0x10, 0x4E, 0xAD, 0x04, 0x00, +0x4F, 0x78, 0x19, 0x10, 0x50, 0x8C, 0xE6, 0x00, 0x51, 0x61, 0x35, 0x90, 0x52, 0x6C, 0xC8, 0x00, +0x53, 0x41, 0x17, 0x90, 0x54, 0x4C, 0xAA, 0x00, 0x55, 0x20, 0xF9, 0x90, 0x56, 0x2C, 0x8C, 0x00, +0x57, 0x00, 0xDB, 0x90, 0x58, 0x15, 0xA8, 0x80, 0x58, 0xE0, 0xBD, 0x90, 0x59, 0xF5, 0x8A, 0x80, +0x5A, 0xC0, 0x9F, 0x90, 0x5B, 0xD5, 0x6C, 0x80, 0x5C, 0xA9, 0xBC, 0x10, 0x5D, 0xB5, 0x4E, 0x80, +0x5E, 0x89, 0x9E, 0x10, 0x5F, 0x95, 0x30, 0x80, 0x60, 0x69, 0x80, 0x10, 0x61, 0x7E, 0x4D, 0x00, +0x62, 0x49, 0x62, 0x10, 0x63, 0x5E, 0x2F, 0x00, 0x64, 0x29, 0x44, 0x10, 0x65, 0x3E, 0x11, 0x00, +0x66, 0x12, 0x60, 0x90, 0x67, 0x1D, 0xF3, 0x00, 0x67, 0xF2, 0x42, 0x90, 0x68, 0xFD, 0xD5, 0x00, +0x69, 0xD2, 0x24, 0x90, 0x6A, 0xDD, 0xB7, 0x00, 0x6B, 0xB2, 0x06, 0x90, 0x6C, 0xC6, 0xD3, 0x80, +0x6D, 0x91, 0xE8, 0x90, 0x6E, 0xA6, 0xB5, 0x80, 0x6F, 0x71, 0xCA, 0x90, 0x70, 0x86, 0x97, 0x80, +0x71, 0x5A, 0xE7, 0x10, 0x72, 0x66, 0x79, 0x80, 0x73, 0x3A, 0xC9, 0x10, 0x74, 0x46, 0x5B, 0x80, +0x75, 0x1A, 0xAB, 0x10, 0x76, 0x2F, 0x78, 0x00, 0x76, 0xFA, 0x8D, 0x10, 0x78, 0x0F, 0x5A, 0x00, +0x78, 0xDA, 0x6F, 0x10, 0x79, 0xEF, 0x3C, 0x00, 0x7A, 0xBA, 0x51, 0x10, 0x7B, 0xCF, 0x1E, 0x00, +0x7C, 0xA3, 0x6D, 0x90, 0x7D, 0xAF, 0x00, 0x00, 0x7E, 0x83, 0x4F, 0x90, 0x7F, 0x8E, 0xE2, 0x00, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, +0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0xFF, 0xFF, 0x9C, +0x3C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, +0xFF, 0x8F, 0x80, 0x00, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, +0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, +0x80, 0x00, 0x00, 0x00, 0x00, + +/* Mexico/General */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xA5, 0xB6, 0xE8, 0x70, +0xAF, 0xF2, 0x6E, 0xE0, 0xB6, 0x66, 0x56, 0x60, 0xB7, 0x43, 0xD2, 0x60, 0xB8, 0x0C, 0x36, 0x60, +0xB8, 0xFD, 0x86, 0xF0, 0xC5, 0xDE, 0xB0, 0x60, 0xC6, 0x97, 0x34, 0x50, 0xC9, 0x55, 0xF1, 0xE0, +0xC9, 0xEA, 0xDD, 0x50, 0xCF, 0x02, 0xC6, 0xE0, 0xCF, 0xB7, 0x56, 0x50, 0xDA, 0x99, 0x15, 0xE0, +0xDB, 0x76, 0x83, 0xD0, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, 0x33, 0x47, 0x58, 0x00, +0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, 0x37, 0x07, 0x1C, 0x00, +0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0xF5, 0x04, 0x80, +0x3B, 0xB6, 0xC2, 0xF0, 0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, 0x3E, 0x8F, 0xDE, 0x80, +0x3F, 0x9B, 0x70, 0xF0, 0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, 0x42, 0x4F, 0xA2, 0x80, +0x43, 0x64, 0x6F, 0x70, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, 0x46, 0x0F, 0x66, 0x80, +0x47, 0x24, 0x33, 0x70, 0x47, 0xF8, 0x83, 0x00, 0x49, 0x04, 0x15, 0x70, 0x49, 0xD8, 0x65, 0x00, +0x4A, 0xE3, 0xF7, 0x70, 0x4B, 0xB8, 0x47, 0x00, 0x4C, 0xCD, 0x13, 0xF0, 0x4D, 0x98, 0x29, 0x00, +0x4E, 0xAC, 0xF5, 0xF0, 0x4F, 0x78, 0x0B, 0x00, 0x50, 0x8C, 0xD7, 0xF0, 0x51, 0x61, 0x27, 0x80, +0x52, 0x6C, 0xB9, 0xF0, 0x53, 0x41, 0x09, 0x80, 0x54, 0x4C, 0x9B, 0xF0, 0x55, 0x20, 0xEB, 0x80, +0x56, 0x2C, 0x7D, 0xF0, 0x57, 0x00, 0xCD, 0x80, 0x58, 0x15, 0x9A, 0x70, 0x58, 0xE0, 0xAF, 0x80, +0x59, 0xF5, 0x7C, 0x70, 0x5A, 0xC0, 0x91, 0x80, 0x5B, 0xD5, 0x5E, 0x70, 0x5C, 0xA9, 0xAE, 0x00, +0x5D, 0xB5, 0x40, 0x70, 0x5E, 0x89, 0x90, 0x00, 0x5F, 0x95, 0x22, 0x70, 0x60, 0x69, 0x72, 0x00, +0x61, 0x7E, 0x3E, 0xF0, 0x62, 0x49, 0x54, 0x00, 0x63, 0x5E, 0x20, 0xF0, 0x64, 0x29, 0x36, 0x00, +0x65, 0x3E, 0x02, 0xF0, 0x66, 0x12, 0x52, 0x80, 0x67, 0x1D, 0xE4, 0xF0, 0x67, 0xF2, 0x34, 0x80, +0x68, 0xFD, 0xC6, 0xF0, 0x69, 0xD2, 0x16, 0x80, 0x6A, 0xDD, 0xA8, 0xF0, 0x6B, 0xB1, 0xF8, 0x80, +0x6C, 0xC6, 0xC5, 0x70, 0x6D, 0x91, 0xDA, 0x80, 0x6E, 0xA6, 0xA7, 0x70, 0x6F, 0x71, 0xBC, 0x80, +0x70, 0x86, 0x89, 0x70, 0x71, 0x5A, 0xD9, 0x00, 0x72, 0x66, 0x6B, 0x70, 0x73, 0x3A, 0xBB, 0x00, +0x74, 0x46, 0x4D, 0x70, 0x75, 0x1A, 0x9D, 0x00, 0x76, 0x2F, 0x69, 0xF0, 0x76, 0xFA, 0x7F, 0x00, +0x78, 0x0F, 0x4B, 0xF0, 0x78, 0xDA, 0x61, 0x00, 0x79, 0xEF, 0x2D, 0xF0, 0x7A, 0xBA, 0x43, 0x00, +0x7B, 0xCF, 0x0F, 0xF0, 0x7C, 0xA3, 0x5F, 0x80, 0x7D, 0xAE, 0xF1, 0xF0, 0x7E, 0x83, 0x41, 0x80, +0x7F, 0x8E, 0xD3, 0xF0, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0xFF, 0xFF, 0xA3, 0x0C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, +0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, +0xB9, 0xB0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, +0x43, 0x44, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* MST */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0x9D, 0x90, +0x00, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* MST7MDT */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xA6, 0x3A, 0x90, +0x9F, 0xBB, 0x07, 0x80, 0xA0, 0x86, 0x1C, 0x90, 0xA1, 0x9A, 0xE9, 0x80, 0xCB, 0x89, 0x0C, 0x90, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xFA, 0xF8, 0x75, 0x10, 0xFB, 0xE8, 0x58, 0x00, +0xFC, 0xD8, 0x57, 0x10, 0xFD, 0xC8, 0x3A, 0x00, 0xFE, 0xB8, 0x39, 0x10, 0xFF, 0xA8, 0x1C, 0x00, +0x00, 0x98, 0x1B, 0x10, 0x01, 0x87, 0xFE, 0x00, 0x02, 0x77, 0xFD, 0x10, 0x03, 0x71, 0x1A, 0x80, +0x04, 0x61, 0x19, 0x90, 0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90, 0x07, 0x30, 0xDE, 0x80, +0x07, 0x8D, 0x35, 0x90, 0x09, 0x10, 0xC0, 0x80, 0x09, 0xAD, 0xB1, 0x10, 0x0A, 0xF0, 0xA2, 0x80, +0x0B, 0xE0, 0xA1, 0x90, 0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x0E, 0xB9, 0xA1, 0x00, +0x0F, 0xA9, 0xA0, 0x10, 0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10, 0x12, 0x79, 0x65, 0x00, +0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, 0x16, 0x39, 0x29, 0x00, +0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, 0x1A, 0x02, 0x27, 0x80, +0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, 0x1D, 0xC1, 0xEB, 0x80, +0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, 0x21, 0x81, 0xAF, 0x80, +0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x25, 0x4A, 0xAE, 0x00, +0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x29, 0x0A, 0x72, 0x00, +0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x2C, 0xD3, 0x70, 0x80, +0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, 0x30, 0x93, 0x34, 0x80, +0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, +0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, +0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, +0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, +0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, +0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, 0x47, 0x2D, 0x7C, 0x00, +0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x4A, 0xED, 0x40, 0x00, +0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, 0x4E, 0xB6, 0x3E, 0x80, +0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, 0x52, 0x76, 0x02, 0x80, +0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, 0x56, 0x35, 0xC6, 0x80, +0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x59, 0xFE, 0xC5, 0x00, +0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x5D, 0xBE, 0x89, 0x00, +0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x61, 0x87, 0x87, 0x80, +0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80, +0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80, +0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00, +0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00, +0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00, +0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80, +0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80, +0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, +0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0x4D, 0x44, 0x54, +0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, +0x00, + +/* Navajo */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xA6, 0x3A, 0x90, +0x9F, 0xBB, 0x07, 0x80, 0xA0, 0x86, 0x1C, 0x90, 0xA1, 0x9A, 0xE9, 0x80, 0xA2, 0x65, 0xFE, 0x90, +0xA3, 0x84, 0x06, 0x00, 0xA4, 0x45, 0xE0, 0x90, 0xA4, 0x8F, 0xA6, 0x80, 0xCB, 0x89, 0x0C, 0x90, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xF7, 0x2F, 0x76, 0x90, 0xF8, 0x28, 0x94, 0x00, +0xF9, 0x0F, 0x58, 0x90, 0xFA, 0x08, 0x76, 0x00, 0xFA, 0xF8, 0x75, 0x10, 0xFB, 0xE8, 0x58, 0x00, +0xFC, 0xD8, 0x57, 0x10, 0xFD, 0xC8, 0x3A, 0x00, 0xFE, 0xB8, 0x39, 0x10, 0xFF, 0xA8, 0x1C, 0x00, +0x00, 0x98, 0x1B, 0x10, 0x01, 0x87, 0xFE, 0x00, 0x02, 0x77, 0xFD, 0x10, 0x03, 0x71, 0x1A, 0x80, +0x04, 0x61, 0x19, 0x90, 0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90, 0x07, 0x30, 0xDE, 0x80, +0x07, 0x8D, 0x35, 0x90, 0x09, 0x10, 0xC0, 0x80, 0x09, 0xAD, 0xB1, 0x10, 0x0A, 0xF0, 0xA2, 0x80, +0x0B, 0xE0, 0xA1, 0x90, 0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x0E, 0xB9, 0xA1, 0x00, +0x0F, 0xA9, 0xA0, 0x10, 0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10, 0x12, 0x79, 0x65, 0x00, +0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, 0x16, 0x39, 0x29, 0x00, +0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, 0x1A, 0x02, 0x27, 0x80, +0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, 0x1D, 0xC1, 0xEB, 0x80, +0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, 0x21, 0x81, 0xAF, 0x80, +0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x25, 0x4A, 0xAE, 0x00, +0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x29, 0x0A, 0x72, 0x00, +0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x2C, 0xD3, 0x70, 0x80, +0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, 0x30, 0x93, 0x34, 0x80, +0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, +0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, +0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, +0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, +0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, +0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, 0x47, 0x2D, 0x7C, 0x00, +0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x4A, 0xED, 0x40, 0x00, +0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, 0x4E, 0xB6, 0x3E, 0x80, +0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, 0x52, 0x76, 0x02, 0x80, +0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, 0x56, 0x35, 0xC6, 0x80, +0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x59, 0xFE, 0xC5, 0x00, +0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x5D, 0xBE, 0x89, 0x00, +0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x61, 0x87, 0x87, 0x80, +0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80, +0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80, +0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00, +0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00, +0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00, +0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80, +0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80, +0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xAB, +0xA0, 0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, +0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, +0x00, 0x4D, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* NZ */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0F, 0xB0, 0xB4, 0xB2, 0xE8, +0xB1, 0x51, 0x87, 0x58, 0xB2, 0x78, 0xE5, 0x68, 0xB3, 0x43, 0xE5, 0x60, 0xB4, 0x58, 0xC7, 0x68, +0xB5, 0x23, 0xC7, 0x60, 0xB6, 0x38, 0xA9, 0x68, 0xB7, 0x03, 0xA9, 0x60, 0xB8, 0x18, 0x8B, 0x68, +0xB8, 0xEC, 0xC5, 0xE0, 0xB9, 0xF8, 0x6D, 0x68, 0xBA, 0xCC, 0xA7, 0xE0, 0xBB, 0xD8, 0x4F, 0x68, +0xBC, 0xE3, 0xE8, 0xE0, 0xBD, 0xAE, 0xF6, 0xE8, 0xBE, 0xC3, 0xCA, 0xE0, 0xBF, 0x8E, 0xD8, 0xE8, +0xC0, 0xA3, 0xAC, 0xE0, 0xC1, 0x6E, 0xBA, 0xE8, 0xC2, 0x83, 0x8E, 0xE0, 0xC3, 0x4E, 0x9C, 0xE8, +0xC4, 0x63, 0x70, 0xE0, 0xC5, 0x2E, 0x7E, 0xE8, 0xC6, 0x4C, 0x8D, 0x60, 0xC7, 0x0E, 0x60, 0xE8, +0xC8, 0x2C, 0x6F, 0x60, 0xC8, 0xF7, 0x7D, 0x68, 0xD2, 0xDA, 0x9A, 0x40, 0x09, 0x18, 0xFD, 0xE0, +0x09, 0xAC, 0xA5, 0xE0, 0x0A, 0xEF, 0xA5, 0x60, 0x0B, 0x9E, 0xFC, 0xE0, 0x0C, 0xD8, 0xC1, 0xE0, +0x0D, 0x7E, 0xDE, 0xE0, 0x0E, 0xB8, 0xA3, 0xE0, 0x0F, 0x5E, 0xC0, 0xE0, 0x10, 0x98, 0x85, 0xE0, +0x11, 0x3E, 0xA2, 0xE0, 0x12, 0x78, 0x67, 0xE0, 0x13, 0x1E, 0x84, 0xE0, 0x14, 0x58, 0x49, 0xE0, +0x14, 0xFE, 0x66, 0xE0, 0x16, 0x38, 0x2B, 0xE0, 0x16, 0xE7, 0x83, 0x60, 0x18, 0x21, 0x48, 0x60, +0x18, 0xC7, 0x65, 0x60, 0x1A, 0x01, 0x2A, 0x60, 0x1A, 0xA7, 0x47, 0x60, 0x1B, 0xE1, 0x0C, 0x60, +0x1C, 0x87, 0x29, 0x60, 0x1D, 0xC0, 0xEE, 0x60, 0x1E, 0x67, 0x0B, 0x60, 0x1F, 0xA0, 0xD0, 0x60, +0x20, 0x46, 0xED, 0x60, 0x21, 0x80, 0xB2, 0x60, 0x22, 0x30, 0x09, 0xE0, 0x23, 0x69, 0xCE, 0xE0, +0x24, 0x0F, 0xEB, 0xE0, 0x25, 0x2E, 0x01, 0x60, 0x26, 0x02, 0x42, 0xE0, 0x27, 0x0D, 0xE3, 0x60, +0x27, 0xE2, 0x24, 0xE0, 0x28, 0xED, 0xC5, 0x60, 0x29, 0xC2, 0x06, 0xE0, 0x2A, 0xCD, 0xA7, 0x60, +0x2B, 0xAB, 0x23, 0x60, 0x2C, 0xAD, 0x89, 0x60, 0x2D, 0x8B, 0x05, 0x60, 0x2E, 0x8D, 0x6B, 0x60, +0x2F, 0x6A, 0xE7, 0x60, 0x30, 0x6D, 0x4D, 0x60, 0x31, 0x4A, 0xC9, 0x60, 0x32, 0x56, 0x69, 0xE0, +0x33, 0x2A, 0xAB, 0x60, 0x34, 0x36, 0x4B, 0xE0, 0x35, 0x0A, 0x8D, 0x60, 0x36, 0x16, 0x2D, 0xE0, +0x36, 0xF3, 0xA9, 0xE0, 0x37, 0xF6, 0x0F, 0xE0, 0x38, 0xD3, 0x8B, 0xE0, 0x39, 0xD5, 0xF1, 0xE0, +0x3A, 0xB3, 0x6D, 0xE0, 0x3B, 0xBF, 0x0E, 0x60, 0x3C, 0x93, 0x4F, 0xE0, 0x3D, 0x9E, 0xF0, 0x60, +0x3E, 0x73, 0x31, 0xE0, 0x3F, 0x7E, 0xD2, 0x60, 0x40, 0x5C, 0x4E, 0x60, 0x41, 0x5E, 0xB4, 0x60, +0x42, 0x3C, 0x30, 0x60, 0x43, 0x3E, 0x96, 0x60, 0x44, 0x1C, 0x12, 0x60, 0x45, 0x1E, 0x78, 0x60, +0x45, 0xFB, 0xF4, 0x60, 0x46, 0xFE, 0x5A, 0x60, 0x47, 0xF7, 0x85, 0xE0, 0x48, 0xDE, 0x3C, 0x60, +0x49, 0xD7, 0x67, 0xE0, 0x4A, 0xBE, 0x1E, 0x60, 0x4B, 0xB7, 0x49, 0xE0, 0x4C, 0x9E, 0x00, 0x60, +0x4D, 0x97, 0x2B, 0xE0, 0x4E, 0x7D, 0xE2, 0x60, 0x4F, 0x77, 0x0D, 0xE0, 0x50, 0x66, 0xFE, 0xE0, +0x51, 0x60, 0x2A, 0x60, 0x52, 0x46, 0xE0, 0xE0, 0x53, 0x40, 0x0C, 0x60, 0x54, 0x26, 0xC2, 0xE0, +0x55, 0x1F, 0xEE, 0x60, 0x56, 0x06, 0xA4, 0xE0, 0x56, 0xFF, 0xD0, 0x60, 0x57, 0xE6, 0x86, 0xE0, +0x58, 0xDF, 0xB2, 0x60, 0x59, 0xC6, 0x68, 0xE0, 0x5A, 0xBF, 0x94, 0x60, 0x5B, 0xAF, 0x85, 0x60, +0x5C, 0xA8, 0xB0, 0xE0, 0x5D, 0x8F, 0x67, 0x60, 0x5E, 0x88, 0x92, 0xE0, 0x5F, 0x6F, 0x49, 0x60, +0x60, 0x68, 0x74, 0xE0, 0x61, 0x4F, 0x2B, 0x60, 0x62, 0x48, 0x56, 0xE0, 0x63, 0x2F, 0x0D, 0x60, +0x64, 0x28, 0x38, 0xE0, 0x65, 0x0E, 0xEF, 0x60, 0x66, 0x11, 0x55, 0x60, 0x66, 0xF8, 0x0B, 0xE0, +0x67, 0xF1, 0x37, 0x60, 0x68, 0xD7, 0xED, 0xE0, 0x69, 0xD1, 0x19, 0x60, 0x6A, 0xB7, 0xCF, 0xE0, +0x6B, 0xB0, 0xFB, 0x60, 0x6C, 0x97, 0xB1, 0xE0, 0x6D, 0x90, 0xDD, 0x60, 0x6E, 0x77, 0x93, 0xE0, +0x6F, 0x70, 0xBF, 0x60, 0x70, 0x60, 0xB0, 0x60, 0x71, 0x59, 0xDB, 0xE0, 0x72, 0x40, 0x92, 0x60, +0x73, 0x39, 0xBD, 0xE0, 0x74, 0x20, 0x74, 0x60, 0x75, 0x19, 0x9F, 0xE0, 0x76, 0x00, 0x56, 0x60, +0x76, 0xF9, 0x81, 0xE0, 0x77, 0xE0, 0x38, 0x60, 0x78, 0xD9, 0x63, 0xE0, 0x79, 0xC0, 0x1A, 0x60, +0x7A, 0xB9, 0x45, 0xE0, 0x7B, 0xA9, 0x36, 0xE0, 0x7C, 0xA2, 0x62, 0x60, 0x7D, 0x89, 0x18, 0xE0, +0x7E, 0x82, 0x44, 0x60, 0x7F, 0x68, 0xFA, 0xE0, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x05, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x00, 0x00, 0xAF, 0xC8, 0x01, 0x00, 0x00, 0x00, 0xA1, 0xB8, 0x00, 0x05, 0x00, +0x00, 0xA8, 0xC0, 0x01, 0x00, 0x00, 0x00, 0xB6, 0xD0, 0x01, 0x0A, 0x00, 0x00, 0xA8, 0xC0, 0x00, +0x00, 0x00, 0x00, 0xA8, 0xC0, 0x00, 0x00, 0x4E, 0x5A, 0x53, 0x54, 0x00, 0x4E, 0x5A, 0x4D, 0x54, +0x00, 0x4E, 0x5A, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* NZ-CHAT */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xE7, 0x8B, 0xC2, 0x04, +0x09, 0x18, 0xFD, 0xE0, 0x09, 0xAC, 0xA5, 0xE0, 0x0A, 0xEF, 0xA5, 0x60, 0x0B, 0x9E, 0xFC, 0xE0, +0x0C, 0xD8, 0xC1, 0xE0, 0x0D, 0x7E, 0xDE, 0xE0, 0x0E, 0xB8, 0xA3, 0xE0, 0x0F, 0x5E, 0xC0, 0xE0, +0x10, 0x98, 0x85, 0xE0, 0x11, 0x3E, 0xA2, 0xE0, 0x12, 0x78, 0x67, 0xE0, 0x13, 0x1E, 0x84, 0xE0, +0x14, 0x58, 0x49, 0xE0, 0x14, 0xFE, 0x66, 0xE0, 0x16, 0x38, 0x2B, 0xE0, 0x16, 0xE7, 0x83, 0x60, +0x18, 0x21, 0x48, 0x60, 0x18, 0xC7, 0x65, 0x60, 0x1A, 0x01, 0x2A, 0x60, 0x1A, 0xA7, 0x47, 0x60, +0x1B, 0xE1, 0x0C, 0x60, 0x1C, 0x87, 0x29, 0x60, 0x1D, 0xC0, 0xEE, 0x60, 0x1E, 0x67, 0x0B, 0x60, +0x1F, 0xA0, 0xD0, 0x60, 0x20, 0x46, 0xED, 0x60, 0x21, 0x80, 0xB2, 0x60, 0x22, 0x30, 0x09, 0xE0, +0x23, 0x69, 0xCE, 0xE0, 0x24, 0x0F, 0xEB, 0xE0, 0x25, 0x2E, 0x01, 0x60, 0x26, 0x02, 0x42, 0xE0, +0x27, 0x0D, 0xE3, 0x60, 0x27, 0xE2, 0x24, 0xE0, 0x28, 0xED, 0xC5, 0x60, 0x29, 0xC2, 0x06, 0xE0, +0x2A, 0xCD, 0xA7, 0x60, 0x2B, 0xAB, 0x23, 0x60, 0x2C, 0xAD, 0x89, 0x60, 0x2D, 0x8B, 0x05, 0x60, +0x2E, 0x8D, 0x6B, 0x60, 0x2F, 0x6A, 0xE7, 0x60, 0x30, 0x6D, 0x4D, 0x60, 0x31, 0x4A, 0xC9, 0x60, +0x32, 0x56, 0x69, 0xE0, 0x33, 0x2A, 0xAB, 0x60, 0x34, 0x36, 0x4B, 0xE0, 0x35, 0x0A, 0x8D, 0x60, +0x36, 0x16, 0x2D, 0xE0, 0x36, 0xF3, 0xA9, 0xE0, 0x37, 0xF6, 0x0F, 0xE0, 0x38, 0xD3, 0x8B, 0xE0, +0x39, 0xD5, 0xF1, 0xE0, 0x3A, 0xB3, 0x6D, 0xE0, 0x3B, 0xBF, 0x0E, 0x60, 0x3C, 0x93, 0x4F, 0xE0, +0x3D, 0x9E, 0xF0, 0x60, 0x3E, 0x73, 0x31, 0xE0, 0x3F, 0x7E, 0xD2, 0x60, 0x40, 0x5C, 0x4E, 0x60, +0x41, 0x5E, 0xB4, 0x60, 0x42, 0x3C, 0x30, 0x60, 0x43, 0x3E, 0x96, 0x60, 0x44, 0x1C, 0x12, 0x60, +0x45, 0x1E, 0x78, 0x60, 0x45, 0xFB, 0xF4, 0x60, 0x46, 0xFE, 0x5A, 0x60, 0x47, 0xF7, 0x85, 0xE0, +0x48, 0xDE, 0x3C, 0x60, 0x49, 0xD7, 0x67, 0xE0, 0x4A, 0xBE, 0x1E, 0x60, 0x4B, 0xB7, 0x49, 0xE0, +0x4C, 0x9E, 0x00, 0x60, 0x4D, 0x97, 0x2B, 0xE0, 0x4E, 0x7D, 0xE2, 0x60, 0x4F, 0x77, 0x0D, 0xE0, +0x50, 0x66, 0xFE, 0xE0, 0x51, 0x60, 0x2A, 0x60, 0x52, 0x46, 0xE0, 0xE0, 0x53, 0x40, 0x0C, 0x60, +0x54, 0x26, 0xC2, 0xE0, 0x55, 0x1F, 0xEE, 0x60, 0x56, 0x06, 0xA4, 0xE0, 0x56, 0xFF, 0xD0, 0x60, +0x57, 0xE6, 0x86, 0xE0, 0x58, 0xDF, 0xB2, 0x60, 0x59, 0xC6, 0x68, 0xE0, 0x5A, 0xBF, 0x94, 0x60, +0x5B, 0xAF, 0x85, 0x60, 0x5C, 0xA8, 0xB0, 0xE0, 0x5D, 0x8F, 0x67, 0x60, 0x5E, 0x88, 0x92, 0xE0, +0x5F, 0x6F, 0x49, 0x60, 0x60, 0x68, 0x74, 0xE0, 0x61, 0x4F, 0x2B, 0x60, 0x62, 0x48, 0x56, 0xE0, +0x63, 0x2F, 0x0D, 0x60, 0x64, 0x28, 0x38, 0xE0, 0x65, 0x0E, 0xEF, 0x60, 0x66, 0x11, 0x55, 0x60, +0x66, 0xF8, 0x0B, 0xE0, 0x67, 0xF1, 0x37, 0x60, 0x68, 0xD7, 0xED, 0xE0, 0x69, 0xD1, 0x19, 0x60, +0x6A, 0xB7, 0xCF, 0xE0, 0x6B, 0xB0, 0xFB, 0x60, 0x6C, 0x97, 0xB1, 0xE0, 0x6D, 0x90, 0xDD, 0x60, +0x6E, 0x77, 0x93, 0xE0, 0x6F, 0x70, 0xBF, 0x60, 0x70, 0x60, 0xB0, 0x60, 0x71, 0x59, 0xDB, 0xE0, +0x72, 0x40, 0x92, 0x60, 0x73, 0x39, 0xBD, 0xE0, 0x74, 0x20, 0x74, 0x60, 0x75, 0x19, 0x9F, 0xE0, +0x76, 0x00, 0x56, 0x60, 0x76, 0xF9, 0x81, 0xE0, 0x77, 0xE0, 0x38, 0x60, 0x78, 0xD9, 0x63, 0xE0, +0x79, 0xC0, 0x1A, 0x60, 0x7A, 0xB9, 0x45, 0xE0, 0x7B, 0xA9, 0x36, 0xE0, 0x7C, 0xA2, 0x62, 0x60, +0x7D, 0x89, 0x18, 0xE0, 0x7E, 0x82, 0x44, 0x60, 0x7F, 0x68, 0xFA, 0xE0, 0x03, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0xAB, 0xFC, +0x00, 0x00, 0x00, 0x00, 0xC1, 0x5C, 0x01, 0x04, 0x00, 0x00, 0xB3, 0x4C, 0x00, 0x0A, 0x00, 0x00, +0xB3, 0x4C, 0x00, 0x0A, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x48, 0x41, 0x44, 0x54, 0x00, 0x43, 0x48, +0x41, 0x53, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, +0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Apia */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x57, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0x91, 0x05, 0xFC, 0x00, +0xDA, 0x62, 0x04, 0x38, 0x4C, 0x9F, 0x27, 0xB0, 0x4D, 0x97, 0x2B, 0xE0, 0x4E, 0x7D, 0xE2, 0x60, +0x4E, 0xFD, 0x8B, 0xA0, 0x4F, 0x77, 0x0D, 0xE0, 0x50, 0x66, 0xFE, 0xE0, 0x51, 0x60, 0x2A, 0x60, +0x52, 0x46, 0xE0, 0xE0, 0x53, 0x40, 0x0C, 0x60, 0x54, 0x26, 0xC2, 0xE0, 0x55, 0x1F, 0xEE, 0x60, +0x56, 0x06, 0xA4, 0xE0, 0x56, 0xFF, 0xD0, 0x60, 0x57, 0xE6, 0x86, 0xE0, 0x58, 0xDF, 0xB2, 0x60, +0x59, 0xC6, 0x68, 0xE0, 0x5A, 0xBF, 0x94, 0x60, 0x5B, 0xAF, 0x85, 0x60, 0x5C, 0xA8, 0xB0, 0xE0, +0x5D, 0x8F, 0x67, 0x60, 0x5E, 0x88, 0x92, 0xE0, 0x5F, 0x6F, 0x49, 0x60, 0x60, 0x68, 0x74, 0xE0, +0x61, 0x4F, 0x2B, 0x60, 0x62, 0x48, 0x56, 0xE0, 0x63, 0x2F, 0x0D, 0x60, 0x64, 0x28, 0x38, 0xE0, +0x65, 0x0E, 0xEF, 0x60, 0x66, 0x11, 0x55, 0x60, 0x66, 0xF8, 0x0B, 0xE0, 0x67, 0xF1, 0x37, 0x60, +0x68, 0xD7, 0xED, 0xE0, 0x69, 0xD1, 0x19, 0x60, 0x6A, 0xB7, 0xCF, 0xE0, 0x6B, 0xB0, 0xFB, 0x60, +0x6C, 0x97, 0xB1, 0xE0, 0x6D, 0x90, 0xDD, 0x60, 0x6E, 0x77, 0x93, 0xE0, 0x6F, 0x70, 0xBF, 0x60, +0x70, 0x60, 0xB0, 0x60, 0x71, 0x59, 0xDB, 0xE0, 0x72, 0x40, 0x92, 0x60, 0x73, 0x39, 0xBD, 0xE0, +0x74, 0x20, 0x74, 0x60, 0x75, 0x19, 0x9F, 0xE0, 0x76, 0x00, 0x56, 0x60, 0x76, 0xF9, 0x81, 0xE0, +0x77, 0xE0, 0x38, 0x60, 0x78, 0xD9, 0x63, 0xE0, 0x79, 0xC0, 0x1A, 0x60, 0x7A, 0xB9, 0x45, 0xE0, +0x7B, 0xA9, 0x36, 0xE0, 0x7C, 0xA2, 0x62, 0x60, 0x7D, 0x89, 0x18, 0xE0, 0x7E, 0x82, 0x44, 0x60, +0x7F, 0x68, 0xFA, 0xE0, 0x01, 0x02, 0x03, 0x02, 0x03, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, +0x5F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x5E, 0x48, 0x00, 0x04, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x09, +0xFF, 0xFF, 0x73, 0x60, 0x01, 0x0D, 0x00, 0x00, 0xC4, 0xE0, 0x01, 0x0D, 0x00, 0x00, 0xB6, 0xD0, +0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x53, 0x41, 0x4D, 0x54, 0x00, 0x57, 0x53, 0x54, 0x00, 0x57, +0x53, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x74, 0x38, 0x9A, 0x00, 0x0C, 0x9D, 0x2A, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Auckland */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4E, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0F, 0xB0, 0xB4, 0xB2, 0xE8, +0xB1, 0x51, 0x87, 0x58, 0xB2, 0x78, 0xE5, 0x68, 0xB3, 0x43, 0xE5, 0x60, 0xB4, 0x58, 0xC7, 0x68, +0xB5, 0x23, 0xC7, 0x60, 0xB6, 0x38, 0xA9, 0x68, 0xB7, 0x03, 0xA9, 0x60, 0xB8, 0x18, 0x8B, 0x68, +0xB8, 0xEC, 0xC5, 0xE0, 0xB9, 0xF8, 0x6D, 0x68, 0xBA, 0xCC, 0xA7, 0xE0, 0xBB, 0xD8, 0x4F, 0x68, +0xBC, 0xE3, 0xE8, 0xE0, 0xBD, 0xAE, 0xF6, 0xE8, 0xBE, 0xC3, 0xCA, 0xE0, 0xBF, 0x8E, 0xD8, 0xE8, +0xC0, 0xA3, 0xAC, 0xE0, 0xC1, 0x6E, 0xBA, 0xE8, 0xC2, 0x83, 0x8E, 0xE0, 0xC3, 0x4E, 0x9C, 0xE8, +0xC4, 0x63, 0x70, 0xE0, 0xC5, 0x2E, 0x7E, 0xE8, 0xC6, 0x4C, 0x8D, 0x60, 0xC7, 0x0E, 0x60, 0xE8, +0xC8, 0x2C, 0x6F, 0x60, 0xC8, 0xF7, 0x7D, 0x68, 0xD2, 0xDA, 0x9A, 0x40, 0x09, 0x18, 0xFD, 0xE0, +0x09, 0xAC, 0xA5, 0xE0, 0x0A, 0xEF, 0xA5, 0x60, 0x0B, 0x9E, 0xFC, 0xE0, 0x0C, 0xD8, 0xC1, 0xE0, +0x0D, 0x7E, 0xDE, 0xE0, 0x0E, 0xB8, 0xA3, 0xE0, 0x0F, 0x5E, 0xC0, 0xE0, 0x10, 0x98, 0x85, 0xE0, +0x11, 0x3E, 0xA2, 0xE0, 0x12, 0x78, 0x67, 0xE0, 0x13, 0x1E, 0x84, 0xE0, 0x14, 0x58, 0x49, 0xE0, +0x14, 0xFE, 0x66, 0xE0, 0x16, 0x38, 0x2B, 0xE0, 0x16, 0xE7, 0x83, 0x60, 0x18, 0x21, 0x48, 0x60, +0x18, 0xC7, 0x65, 0x60, 0x1A, 0x01, 0x2A, 0x60, 0x1A, 0xA7, 0x47, 0x60, 0x1B, 0xE1, 0x0C, 0x60, +0x1C, 0x87, 0x29, 0x60, 0x1D, 0xC0, 0xEE, 0x60, 0x1E, 0x67, 0x0B, 0x60, 0x1F, 0xA0, 0xD0, 0x60, +0x20, 0x46, 0xED, 0x60, 0x21, 0x80, 0xB2, 0x60, 0x22, 0x30, 0x09, 0xE0, 0x23, 0x69, 0xCE, 0xE0, +0x24, 0x0F, 0xEB, 0xE0, 0x25, 0x2E, 0x01, 0x60, 0x26, 0x02, 0x42, 0xE0, 0x27, 0x0D, 0xE3, 0x60, +0x27, 0xE2, 0x24, 0xE0, 0x28, 0xED, 0xC5, 0x60, 0x29, 0xC2, 0x06, 0xE0, 0x2A, 0xCD, 0xA7, 0x60, +0x2B, 0xAB, 0x23, 0x60, 0x2C, 0xAD, 0x89, 0x60, 0x2D, 0x8B, 0x05, 0x60, 0x2E, 0x8D, 0x6B, 0x60, +0x2F, 0x6A, 0xE7, 0x60, 0x30, 0x6D, 0x4D, 0x60, 0x31, 0x4A, 0xC9, 0x60, 0x32, 0x56, 0x69, 0xE0, +0x33, 0x2A, 0xAB, 0x60, 0x34, 0x36, 0x4B, 0xE0, 0x35, 0x0A, 0x8D, 0x60, 0x36, 0x16, 0x2D, 0xE0, +0x36, 0xF3, 0xA9, 0xE0, 0x37, 0xF6, 0x0F, 0xE0, 0x38, 0xD3, 0x8B, 0xE0, 0x39, 0xD5, 0xF1, 0xE0, +0x3A, 0xB3, 0x6D, 0xE0, 0x3B, 0xBF, 0x0E, 0x60, 0x3C, 0x93, 0x4F, 0xE0, 0x3D, 0x9E, 0xF0, 0x60, +0x3E, 0x73, 0x31, 0xE0, 0x3F, 0x7E, 0xD2, 0x60, 0x40, 0x5C, 0x4E, 0x60, 0x41, 0x5E, 0xB4, 0x60, +0x42, 0x3C, 0x30, 0x60, 0x43, 0x3E, 0x96, 0x60, 0x44, 0x1C, 0x12, 0x60, 0x45, 0x1E, 0x78, 0x60, +0x45, 0xFB, 0xF4, 0x60, 0x46, 0xFE, 0x5A, 0x60, 0x47, 0xF7, 0x85, 0xE0, 0x48, 0xDE, 0x3C, 0x60, +0x49, 0xD7, 0x67, 0xE0, 0x4A, 0xBE, 0x1E, 0x60, 0x4B, 0xB7, 0x49, 0xE0, 0x4C, 0x9E, 0x00, 0x60, +0x4D, 0x97, 0x2B, 0xE0, 0x4E, 0x7D, 0xE2, 0x60, 0x4F, 0x77, 0x0D, 0xE0, 0x50, 0x66, 0xFE, 0xE0, +0x51, 0x60, 0x2A, 0x60, 0x52, 0x46, 0xE0, 0xE0, 0x53, 0x40, 0x0C, 0x60, 0x54, 0x26, 0xC2, 0xE0, +0x55, 0x1F, 0xEE, 0x60, 0x56, 0x06, 0xA4, 0xE0, 0x56, 0xFF, 0xD0, 0x60, 0x57, 0xE6, 0x86, 0xE0, +0x58, 0xDF, 0xB2, 0x60, 0x59, 0xC6, 0x68, 0xE0, 0x5A, 0xBF, 0x94, 0x60, 0x5B, 0xAF, 0x85, 0x60, +0x5C, 0xA8, 0xB0, 0xE0, 0x5D, 0x8F, 0x67, 0x60, 0x5E, 0x88, 0x92, 0xE0, 0x5F, 0x6F, 0x49, 0x60, +0x60, 0x68, 0x74, 0xE0, 0x61, 0x4F, 0x2B, 0x60, 0x62, 0x48, 0x56, 0xE0, 0x63, 0x2F, 0x0D, 0x60, +0x64, 0x28, 0x38, 0xE0, 0x65, 0x0E, 0xEF, 0x60, 0x66, 0x11, 0x55, 0x60, 0x66, 0xF8, 0x0B, 0xE0, +0x67, 0xF1, 0x37, 0x60, 0x68, 0xD7, 0xED, 0xE0, 0x69, 0xD1, 0x19, 0x60, 0x6A, 0xB7, 0xCF, 0xE0, +0x6B, 0xB0, 0xFB, 0x60, 0x6C, 0x97, 0xB1, 0xE0, 0x6D, 0x90, 0xDD, 0x60, 0x6E, 0x77, 0x93, 0xE0, +0x6F, 0x70, 0xBF, 0x60, 0x70, 0x60, 0xB0, 0x60, 0x71, 0x59, 0xDB, 0xE0, 0x72, 0x40, 0x92, 0x60, +0x73, 0x39, 0xBD, 0xE0, 0x74, 0x20, 0x74, 0x60, 0x75, 0x19, 0x9F, 0xE0, 0x76, 0x00, 0x56, 0x60, +0x76, 0xF9, 0x81, 0xE0, 0x77, 0xE0, 0x38, 0x60, 0x78, 0xD9, 0x63, 0xE0, 0x79, 0xC0, 0x1A, 0x60, +0x7A, 0xB9, 0x45, 0xE0, 0x7B, 0xA9, 0x36, 0xE0, 0x7C, 0xA2, 0x62, 0x60, 0x7D, 0x89, 0x18, 0xE0, +0x7E, 0x82, 0x44, 0x60, 0x7F, 0x68, 0xFA, 0xE0, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x05, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x00, 0x00, 0xAF, 0xC8, 0x01, 0x00, 0x00, 0x00, 0xA1, 0xB8, 0x00, 0x05, 0x00, +0x00, 0xA8, 0xC0, 0x01, 0x00, 0x00, 0x00, 0xB6, 0xD0, 0x01, 0x0A, 0x00, 0x00, 0xA8, 0xC0, 0x00, +0x00, 0x00, 0x00, 0xA8, 0xC0, 0x00, 0x00, 0x4E, 0x5A, 0x53, 0x54, 0x00, 0x4E, 0x5A, 0x4D, 0x54, +0x00, 0x4E, 0x5A, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x51, 0x13, 0x35, 0x02, 0x1D, 0x54, 0xBA, 0x00, 0x00, 0x00, 0x0E, 0x6D, 0x6F, +0x73, 0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* Pacific/Chatham */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4E, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xE7, 0x8B, 0xC2, 0x04, +0x09, 0x18, 0xFD, 0xE0, 0x09, 0xAC, 0xA5, 0xE0, 0x0A, 0xEF, 0xA5, 0x60, 0x0B, 0x9E, 0xFC, 0xE0, +0x0C, 0xD8, 0xC1, 0xE0, 0x0D, 0x7E, 0xDE, 0xE0, 0x0E, 0xB8, 0xA3, 0xE0, 0x0F, 0x5E, 0xC0, 0xE0, +0x10, 0x98, 0x85, 0xE0, 0x11, 0x3E, 0xA2, 0xE0, 0x12, 0x78, 0x67, 0xE0, 0x13, 0x1E, 0x84, 0xE0, +0x14, 0x58, 0x49, 0xE0, 0x14, 0xFE, 0x66, 0xE0, 0x16, 0x38, 0x2B, 0xE0, 0x16, 0xE7, 0x83, 0x60, +0x18, 0x21, 0x48, 0x60, 0x18, 0xC7, 0x65, 0x60, 0x1A, 0x01, 0x2A, 0x60, 0x1A, 0xA7, 0x47, 0x60, +0x1B, 0xE1, 0x0C, 0x60, 0x1C, 0x87, 0x29, 0x60, 0x1D, 0xC0, 0xEE, 0x60, 0x1E, 0x67, 0x0B, 0x60, +0x1F, 0xA0, 0xD0, 0x60, 0x20, 0x46, 0xED, 0x60, 0x21, 0x80, 0xB2, 0x60, 0x22, 0x30, 0x09, 0xE0, +0x23, 0x69, 0xCE, 0xE0, 0x24, 0x0F, 0xEB, 0xE0, 0x25, 0x2E, 0x01, 0x60, 0x26, 0x02, 0x42, 0xE0, +0x27, 0x0D, 0xE3, 0x60, 0x27, 0xE2, 0x24, 0xE0, 0x28, 0xED, 0xC5, 0x60, 0x29, 0xC2, 0x06, 0xE0, +0x2A, 0xCD, 0xA7, 0x60, 0x2B, 0xAB, 0x23, 0x60, 0x2C, 0xAD, 0x89, 0x60, 0x2D, 0x8B, 0x05, 0x60, +0x2E, 0x8D, 0x6B, 0x60, 0x2F, 0x6A, 0xE7, 0x60, 0x30, 0x6D, 0x4D, 0x60, 0x31, 0x4A, 0xC9, 0x60, +0x32, 0x56, 0x69, 0xE0, 0x33, 0x2A, 0xAB, 0x60, 0x34, 0x36, 0x4B, 0xE0, 0x35, 0x0A, 0x8D, 0x60, +0x36, 0x16, 0x2D, 0xE0, 0x36, 0xF3, 0xA9, 0xE0, 0x37, 0xF6, 0x0F, 0xE0, 0x38, 0xD3, 0x8B, 0xE0, +0x39, 0xD5, 0xF1, 0xE0, 0x3A, 0xB3, 0x6D, 0xE0, 0x3B, 0xBF, 0x0E, 0x60, 0x3C, 0x93, 0x4F, 0xE0, +0x3D, 0x9E, 0xF0, 0x60, 0x3E, 0x73, 0x31, 0xE0, 0x3F, 0x7E, 0xD2, 0x60, 0x40, 0x5C, 0x4E, 0x60, +0x41, 0x5E, 0xB4, 0x60, 0x42, 0x3C, 0x30, 0x60, 0x43, 0x3E, 0x96, 0x60, 0x44, 0x1C, 0x12, 0x60, +0x45, 0x1E, 0x78, 0x60, 0x45, 0xFB, 0xF4, 0x60, 0x46, 0xFE, 0x5A, 0x60, 0x47, 0xF7, 0x85, 0xE0, +0x48, 0xDE, 0x3C, 0x60, 0x49, 0xD7, 0x67, 0xE0, 0x4A, 0xBE, 0x1E, 0x60, 0x4B, 0xB7, 0x49, 0xE0, +0x4C, 0x9E, 0x00, 0x60, 0x4D, 0x97, 0x2B, 0xE0, 0x4E, 0x7D, 0xE2, 0x60, 0x4F, 0x77, 0x0D, 0xE0, +0x50, 0x66, 0xFE, 0xE0, 0x51, 0x60, 0x2A, 0x60, 0x52, 0x46, 0xE0, 0xE0, 0x53, 0x40, 0x0C, 0x60, +0x54, 0x26, 0xC2, 0xE0, 0x55, 0x1F, 0xEE, 0x60, 0x56, 0x06, 0xA4, 0xE0, 0x56, 0xFF, 0xD0, 0x60, +0x57, 0xE6, 0x86, 0xE0, 0x58, 0xDF, 0xB2, 0x60, 0x59, 0xC6, 0x68, 0xE0, 0x5A, 0xBF, 0x94, 0x60, +0x5B, 0xAF, 0x85, 0x60, 0x5C, 0xA8, 0xB0, 0xE0, 0x5D, 0x8F, 0x67, 0x60, 0x5E, 0x88, 0x92, 0xE0, +0x5F, 0x6F, 0x49, 0x60, 0x60, 0x68, 0x74, 0xE0, 0x61, 0x4F, 0x2B, 0x60, 0x62, 0x48, 0x56, 0xE0, +0x63, 0x2F, 0x0D, 0x60, 0x64, 0x28, 0x38, 0xE0, 0x65, 0x0E, 0xEF, 0x60, 0x66, 0x11, 0x55, 0x60, +0x66, 0xF8, 0x0B, 0xE0, 0x67, 0xF1, 0x37, 0x60, 0x68, 0xD7, 0xED, 0xE0, 0x69, 0xD1, 0x19, 0x60, +0x6A, 0xB7, 0xCF, 0xE0, 0x6B, 0xB0, 0xFB, 0x60, 0x6C, 0x97, 0xB1, 0xE0, 0x6D, 0x90, 0xDD, 0x60, +0x6E, 0x77, 0x93, 0xE0, 0x6F, 0x70, 0xBF, 0x60, 0x70, 0x60, 0xB0, 0x60, 0x71, 0x59, 0xDB, 0xE0, +0x72, 0x40, 0x92, 0x60, 0x73, 0x39, 0xBD, 0xE0, 0x74, 0x20, 0x74, 0x60, 0x75, 0x19, 0x9F, 0xE0, +0x76, 0x00, 0x56, 0x60, 0x76, 0xF9, 0x81, 0xE0, 0x77, 0xE0, 0x38, 0x60, 0x78, 0xD9, 0x63, 0xE0, +0x79, 0xC0, 0x1A, 0x60, 0x7A, 0xB9, 0x45, 0xE0, 0x7B, 0xA9, 0x36, 0xE0, 0x7C, 0xA2, 0x62, 0x60, +0x7D, 0x89, 0x18, 0xE0, 0x7E, 0x82, 0x44, 0x60, 0x7F, 0x68, 0xFA, 0xE0, 0x03, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0xAB, 0xFC, +0x00, 0x00, 0x00, 0x00, 0xC1, 0x5C, 0x01, 0x04, 0x00, 0x00, 0xB3, 0x4C, 0x00, 0x0A, 0x00, 0x00, +0xB3, 0x4C, 0x00, 0x0A, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x48, 0x41, 0x44, 0x54, 0x00, 0x43, 0x48, +0x41, 0x53, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x44, 0x48, +0x00, 0x05, 0x43, 0xA7, 0x00, 0x00, 0x00, 0x0F, 0x43, 0x68, 0x61, 0x74, 0x68, 0x61, 0x6D, 0x20, +0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, 0x73, + +/* Pacific/Chuuk */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x46, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x8C, 0xA0, +0x00, 0x00, 0x43, 0x48, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x94, 0xA5, 0x62, 0x01, 0xFA, 0x42, +0xDD, 0x00, 0x00, 0x00, 0x14, 0x43, 0x68, 0x75, 0x75, 0x6B, 0x20, 0x28, 0x54, 0x72, 0x75, 0x6B, +0x29, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x59, 0x61, 0x70, + +/* Pacific/Easter */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0F, 0xB9, 0xC7, 0x40, 0x88, +0xCC, 0x1C, 0x6E, 0x40, 0xCC, 0x6C, 0xE7, 0xD0, 0xD4, 0x1B, 0xC9, 0xB0, 0xFD, 0xD1, 0x3C, 0x40, +0xFE, 0x92, 0xFA, 0xB0, 0xFF, 0xCC, 0xCD, 0xC0, 0x00, 0x72, 0xDC, 0xB0, 0x01, 0x75, 0x50, 0xC0, +0x02, 0x40, 0x49, 0xB0, 0x03, 0x55, 0x32, 0xC0, 0x04, 0x20, 0x2B, 0xB0, 0x05, 0x3E, 0x4F, 0x40, +0x06, 0x00, 0x0D, 0xB0, 0x07, 0x0B, 0xBC, 0x40, 0x07, 0xDF, 0xEF, 0xB0, 0x08, 0xFE, 0x13, 0x40, +0x09, 0xBF, 0xD1, 0xB0, 0x0A, 0xDD, 0xF5, 0x40, 0x0B, 0xA8, 0xEE, 0x30, 0x0C, 0xBD, 0xD7, 0x40, +0x0D, 0x88, 0xD0, 0x30, 0x0E, 0x9D, 0xB9, 0x40, 0x0F, 0x68, 0xB2, 0x30, 0x10, 0x86, 0xD5, 0xC0, +0x11, 0x48, 0x94, 0x30, 0x12, 0x66, 0xB7, 0xC0, 0x13, 0x28, 0x76, 0x30, 0x14, 0x46, 0x99, 0xC0, +0x15, 0x11, 0x92, 0xB0, 0x16, 0x26, 0x7B, 0xC0, 0x16, 0xF1, 0x74, 0xB0, 0x18, 0x06, 0x5D, 0xC0, +0x18, 0xD1, 0x56, 0xB0, 0x19, 0xE6, 0x3F, 0xC0, 0x1A, 0xB1, 0x38, 0xB0, 0x1B, 0xCF, 0x5C, 0x40, +0x1C, 0x91, 0x1A, 0xB0, 0x1D, 0xAF, 0x3E, 0x40, 0x1E, 0x70, 0xFC, 0xB0, 0x1F, 0x8F, 0x20, 0x40, +0x20, 0x7F, 0x03, 0x30, 0x21, 0x6F, 0x02, 0x40, 0x22, 0x39, 0xFB, 0x30, 0x23, 0x45, 0xA9, 0xC0, +0x24, 0x19, 0xDD, 0x30, 0x25, 0x38, 0x00, 0xC0, 0x26, 0x02, 0xF9, 0xB0, 0x26, 0xF2, 0xF8, 0xC0, +0x27, 0xD9, 0xA1, 0x30, 0x28, 0xF7, 0xC4, 0xC0, 0x29, 0xC2, 0xBD, 0xB0, 0x2A, 0xD7, 0xA6, 0xC0, +0x2B, 0xA2, 0x9F, 0xB0, 0x2C, 0xB7, 0x88, 0xC0, 0x2D, 0x82, 0x81, 0xB0, 0x2E, 0x97, 0x6A, 0xC0, +0x2F, 0x62, 0x63, 0xB0, 0x30, 0x80, 0x87, 0x40, 0x31, 0x42, 0x45, 0xB0, 0x32, 0x60, 0x69, 0x40, +0x33, 0x3D, 0xD7, 0x30, 0x34, 0x40, 0x4B, 0x40, 0x35, 0x0B, 0x44, 0x30, 0x36, 0x0D, 0xB8, 0x40, +0x37, 0x06, 0xD5, 0xB0, 0x38, 0x00, 0x0F, 0x40, 0x38, 0xCB, 0x08, 0x30, 0x39, 0xE9, 0x2B, 0xC0, +0x3A, 0xAA, 0xEA, 0x30, 0x3B, 0xC9, 0x0D, 0xC0, 0x3C, 0x8A, 0xCC, 0x30, 0x3D, 0xA8, 0xEF, 0xC0, +0x3E, 0x6A, 0xAE, 0x30, 0x3F, 0x88, 0xD1, 0xC0, 0x40, 0x53, 0xCA, 0xB0, 0x41, 0x68, 0xB3, 0xC0, +0x42, 0x33, 0xAC, 0xB0, 0x43, 0x48, 0x95, 0xC0, 0x44, 0x13, 0x8E, 0xB0, 0x45, 0x31, 0xB2, 0x40, +0x45, 0xF3, 0x70, 0xB0, 0x47, 0x11, 0x94, 0x40, 0x47, 0xEF, 0x02, 0x30, 0x48, 0xF1, 0x76, 0x40, +0x49, 0xBC, 0x6F, 0x30, 0x4A, 0xD1, 0x58, 0x40, 0x4B, 0xB8, 0x00, 0xB0, 0x4C, 0xB1, 0x3A, 0x40, +0x4D, 0xC6, 0x07, 0x30, 0x4E, 0x50, 0x82, 0xC0, 0x4F, 0x9C, 0xAE, 0xB0, 0x50, 0x42, 0xD9, 0xC0, +0x51, 0x3B, 0xF7, 0x30, 0x52, 0x5A, 0x1A, 0xC0, 0x53, 0x1B, 0xD9, 0x30, 0x54, 0x39, 0xFC, 0xC0, +0x55, 0x04, 0xF5, 0xB0, 0x56, 0x19, 0xDE, 0xC0, 0x56, 0xE4, 0xD7, 0xB0, 0x57, 0xF9, 0xC0, 0xC0, +0x58, 0xC4, 0xB9, 0xB0, 0x59, 0xE2, 0xDD, 0x40, 0x5A, 0xA4, 0x9B, 0xB0, 0x5B, 0xC2, 0xBF, 0x40, +0x5C, 0x84, 0x7D, 0xB0, 0x5D, 0xA2, 0xA1, 0x40, 0x5E, 0x6D, 0x9A, 0x30, 0x5F, 0x82, 0x83, 0x40, +0x60, 0x4D, 0x7C, 0x30, 0x61, 0x62, 0x65, 0x40, 0x62, 0x2D, 0x5E, 0x30, 0x63, 0x42, 0x47, 0x40, +0x64, 0x0D, 0x40, 0x30, 0x65, 0x2B, 0x63, 0xC0, 0x65, 0xED, 0x22, 0x30, 0x67, 0x0B, 0x45, 0xC0, +0x67, 0xCD, 0x04, 0x30, 0x68, 0xEB, 0x27, 0xC0, 0x69, 0xB6, 0x20, 0xB0, 0x6A, 0xCB, 0x09, 0xC0, +0x6B, 0x96, 0x02, 0xB0, 0x6C, 0xAA, 0xEB, 0xC0, 0x6D, 0x75, 0xE4, 0xB0, 0x6E, 0x94, 0x08, 0x40, +0x6F, 0x55, 0xC6, 0xB0, 0x70, 0x73, 0xEA, 0x40, 0x71, 0x35, 0xA8, 0xB0, 0x72, 0x53, 0xCC, 0x40, +0x73, 0x15, 0x8A, 0xB0, 0x74, 0x33, 0xAE, 0x40, 0x74, 0xFE, 0xA7, 0x30, 0x76, 0x13, 0x90, 0x40, +0x76, 0xDE, 0x89, 0x30, 0x77, 0xF3, 0x72, 0x40, 0x78, 0xBE, 0x6B, 0x30, 0x79, 0xDC, 0x8E, 0xC0, +0x7A, 0x9E, 0x4D, 0x30, 0x7B, 0xBC, 0x70, 0xC0, 0x7C, 0x7E, 0x2F, 0x30, 0x7D, 0x9C, 0x52, 0xC0, +0x7E, 0x67, 0x4B, 0xB0, 0x7F, 0x7C, 0x34, 0xC0, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0xFF, 0xFF, 0x99, 0x78, 0x00, 0x00, 0xFF, 0xFF, 0x9D, +0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x09, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x09, 0xFF, +0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x09, 0x45, 0x4D, 0x54, 0x00, 0x45, +0x41, 0x53, 0x54, 0x00, 0x45, 0x41, 0x53, 0x53, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, +0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x5F, 0xE6, 0xC8, 0x00, 0x6B, 0xAD, 0x1A, 0x00, 0x00, +0x00, 0x1C, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, 0x20, +0x26, 0x20, 0x53, 0x61, 0x6C, 0x61, 0x20, 0x79, 0x20, 0x47, 0x6F, 0x6D, 0x65, 0x7A, + +/* Pacific/Efate */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x56, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x92, 0xF5, 0xC2, 0xB4, +0x19, 0xD2, 0xF7, 0xD0, 0x1A, 0xC2, 0xDA, 0xC0, 0x1B, 0xDA, 0x66, 0xD0, 0x1C, 0xA2, 0xBC, 0xC0, +0x1D, 0x9B, 0xF6, 0x50, 0x1E, 0x82, 0x9E, 0xC0, 0x1F, 0x7B, 0xD8, 0x50, 0x20, 0x6B, 0xBB, 0x40, +0x21, 0x5B, 0xBA, 0x50, 0x22, 0x4B, 0x9D, 0x40, 0x23, 0x3B, 0x9C, 0x50, 0x24, 0x2B, 0x7F, 0x40, +0x25, 0x1B, 0x7E, 0x50, 0x26, 0x0B, 0x61, 0x40, 0x26, 0xFB, 0x60, 0x50, 0x27, 0xEB, 0x43, 0x40, +0x28, 0xE4, 0x7C, 0xD0, 0x29, 0x81, 0x51, 0x40, 0x2A, 0xE9, 0x48, 0xD0, 0x2B, 0x61, 0x33, 0x40, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x9D, 0xCC, 0x00, 0x00, 0x00, 0x00, 0xA8, 0xC0, 0x01, +0x04, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x56, 0x55, 0x53, 0x54, 0x00, +0x56, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x5F, 0x35, 0x02, 0x13, +0xA4, 0x42, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Enderbury */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x12, 0x56, 0x04, 0xC0, +0x2F, 0x06, 0x8B, 0x30, 0x01, 0x02, 0xFF, 0xFF, 0x57, 0x40, 0x00, 0x00, 0xFF, 0xFF, 0x65, 0x50, +0x00, 0x00, 0x00, 0x00, 0xB6, 0xD0, 0x00, 0x00, 0x50, 0x48, 0x4F, 0x54, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x84, 0x8C, 0x4A, 0x00, 0x0D, 0x9B, 0x12, 0x00, 0x00, 0x00, 0x0F, 0x50, +0x68, 0x6F, 0x65, 0x6E, 0x69, 0x78, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, 0x73, + +/* Pacific/Fakaofo */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x4E, 0xFD, 0x99, 0xB0, +0x01, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x00, 0x00, 0x00, 0xB6, 0xD0, 0x00, 0x00, 0x54, 0x4B, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7B, 0x09, 0x65, 0x00, 0x0D, 0x60, 0x7A, 0x00, 0x00, 0x00, +0x00, + +/* Pacific/Fiji */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x46, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0x9A, 0x13, 0xB2, 0x3C, +0x36, 0x3B, 0x17, 0xE0, 0x36, 0xD7, 0xFA, 0x60, 0x38, 0x24, 0x34, 0x60, 0x38, 0xB7, 0xDC, 0x60, +0x4B, 0x11, 0x2C, 0xE0, 0x4B, 0xAE, 0x0F, 0x60, 0x4C, 0xC2, 0xEA, 0x60, 0x4D, 0x72, 0x41, 0xE0, +0x4E, 0xA2, 0xCC, 0x60, 0x4F, 0x1A, 0xC4, 0xE0, 0x50, 0x82, 0xAE, 0x60, 0x50, 0xFA, 0xA6, 0xE0, +0x52, 0x62, 0x90, 0x60, 0x52, 0xDA, 0x88, 0xE0, 0x54, 0x42, 0x72, 0x60, 0x54, 0xBA, 0x6A, 0xE0, +0x56, 0x22, 0x54, 0x60, 0x56, 0xA3, 0x87, 0x60, 0x58, 0x0B, 0x70, 0xE0, 0x58, 0x83, 0x69, 0x60, +0x59, 0xEB, 0x52, 0xE0, 0x5A, 0x63, 0x4B, 0x60, 0x5B, 0xCB, 0x34, 0xE0, 0x5C, 0x43, 0x2D, 0x60, +0x5D, 0xAB, 0x16, 0xE0, 0x5E, 0x23, 0x0F, 0x60, 0x5F, 0x8A, 0xF8, 0xE0, 0x60, 0x0C, 0x2B, 0xE0, +0x61, 0x74, 0x15, 0x60, 0x61, 0xEC, 0x0D, 0xE0, 0x63, 0x53, 0xF7, 0x60, 0x63, 0xCB, 0xEF, 0xE0, +0x65, 0x33, 0xD9, 0x60, 0x65, 0xAB, 0xD1, 0xE0, 0x67, 0x13, 0xBB, 0x60, 0x67, 0x8B, 0xB3, 0xE0, +0x68, 0xF3, 0x9D, 0x60, 0x69, 0x6B, 0x95, 0xE0, 0x6A, 0xD3, 0x7F, 0x60, 0x6B, 0x54, 0xB2, 0x60, +0x6C, 0xBC, 0x9B, 0xE0, 0x6D, 0x34, 0x94, 0x60, 0x6E, 0x9C, 0x7D, 0xE0, 0x6F, 0x14, 0x76, 0x60, +0x70, 0x7C, 0x5F, 0xE0, 0x70, 0xF4, 0x58, 0x60, 0x72, 0x5C, 0x41, 0xE0, 0x72, 0xD4, 0x3A, 0x60, +0x74, 0x3C, 0x23, 0xE0, 0x74, 0xB4, 0x1C, 0x60, 0x76, 0x25, 0x40, 0x60, 0x76, 0x9D, 0x38, 0xE0, +0x78, 0x05, 0x22, 0x60, 0x78, 0x7D, 0x1A, 0xE0, 0x79, 0xE5, 0x04, 0x60, 0x7A, 0x5C, 0xFC, 0xE0, +0x7B, 0xC4, 0xE6, 0x60, 0x7C, 0x3C, 0xDE, 0xE0, 0x7D, 0xA4, 0xC8, 0x60, 0x7E, 0x1C, 0xC0, 0xE0, +0x7F, 0x84, 0xAA, 0x60, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x00, 0x00, 0xA7, 0x44, 0x00, 0x00, 0x00, 0x00, 0xB6, 0xD0, 0x01, 0x04, 0x00, 0x00, +0xA8, 0xC0, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x46, 0x4A, 0x53, 0x54, 0x00, 0x46, 0x4A, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0xA8, 0xEA, 0x02, 0x22, 0xE6, 0x82, 0x00, +0x00, 0x00, 0x00, + +/* Pacific/Funafuti */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xA8, 0xC0, +0x00, 0x00, 0x54, 0x56, 0x54, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x55, 0x6D, 0x02, 0x24, 0x1F, 0x02, +0x00, 0x00, 0x00, 0x00, + +/* Pacific/Galapagos */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x45, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0D, 0xB6, 0xA4, 0x4C, 0x80, +0x1E, 0x18, 0xC4, 0x50, 0x01, 0x02, 0xFF, 0xFF, 0xAC, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, +0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x43, 0x54, 0x00, +0x47, 0x41, 0x4C, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xF4, 0xB0, 0x00, +0x89, 0xF0, 0x80, 0x00, 0x00, 0x00, 0x11, 0x47, 0x61, 0x6C, 0x61, 0x70, 0x61, 0x67, 0x6F, 0x73, +0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, 0x73, + +/* Pacific/Gambier */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x94, 0x50, 0x48, 0x04, +0x01, 0xFF, 0xFF, 0x81, 0x7C, 0x00, 0x00, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x47, 0x41, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x07, 0xCA, 0x00, 0x44, +0xBD, 0xA8, 0x00, 0x00, 0x00, 0x0F, 0x47, 0x61, 0x6D, 0x62, 0x69, 0x65, 0x72, 0x20, 0x49, 0x73, +0x6C, 0x61, 0x6E, 0x64, 0x73, + +/* Pacific/Guadalcanal */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x94, 0x4F, 0x33, 0x8C, +0x01, 0x00, 0x00, 0x95, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x53, 0x42, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7A, 0xC8, 0x4A, 0x02, 0x07, 0x1A, +0xA0, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Guam */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x47, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x3A, 0x43, 0x5E, 0x60, +0x01, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x04, 0x47, 0x53, 0x54, +0x00, 0x43, 0x68, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xE0, 0xAA, 0x01, 0xEF, +0x87, 0x78, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Honolulu */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0xBB, 0x05, 0x43, 0x48, +0xBB, 0x21, 0x71, 0x58, 0xCB, 0x89, 0x3D, 0xC8, 0xD2, 0x61, 0x49, 0x38, 0xD5, 0x8D, 0x73, 0x48, +0x01, 0x00, 0x01, 0x00, 0x02, 0xFF, 0xFF, 0x6C, 0x58, 0x00, 0x00, 0xFF, 0xFF, 0x7A, 0x68, 0x01, +0x04, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x00, 0x48, 0x53, 0x54, 0x00, 0x48, 0x44, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA9, 0xD7, 0x46, 0x00, 0x21, 0xC9, 0x16, 0x00, 0x00, 0x00, +0x06, 0x48, 0x61, 0x77, 0x61, 0x69, 0x69, + +/* Pacific/Johnston */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0x73, 0x60, +0x00, 0x00, 0x48, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0xA2, 0xE3, 0x38, 0x00, 0x0F, 0xFF, 0x0D, +0x00, 0x00, 0x00, 0x0E, 0x4A, 0x6F, 0x68, 0x6E, 0x73, 0x74, 0x6F, 0x6E, 0x20, 0x41, 0x74, 0x6F, +0x6C, 0x6C, + +/* Pacific/Kiritimati */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x12, 0x55, 0xF2, 0x00, +0x2F, 0x06, 0x7D, 0x20, 0x01, 0x02, 0xFF, 0xFF, 0x6A, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x73, 0x60, +0x00, 0x00, 0x00, 0x00, 0xC4, 0xE0, 0x00, 0x00, 0x4C, 0x49, 0x4E, 0x54, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x8C, 0x2D, 0x6A, 0x00, 0x22, 0x96, 0x2A, 0x00, 0x00, 0x00, 0x0C, 0x4C, +0x69, 0x6E, 0x65, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, 0x73, + +/* Pacific/Kosrae */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x46, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0xFF, 0x86, 0x1B, 0x50, +0x36, 0x8B, 0x67, 0x40, 0x01, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x00, 0x00, 0x00, 0xA8, 0xC0, +0x00, 0x00, 0x4B, 0x4F, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x71, 0x12, 0x02, +0x0B, 0x59, 0xDD, 0x00, 0x00, 0x00, 0x06, 0x4B, 0x6F, 0x73, 0x72, 0x61, 0x65, + +/* Pacific/Kwajalein */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x09, 0xFF, 0x86, 0x1B, 0x50, +0x2C, 0x74, 0xBC, 0xC0, 0x01, 0x02, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x00, 0xFF, 0xFF, 0x57, 0x40, +0x00, 0x04, 0x00, 0x00, 0xA8, 0xC0, 0x00, 0x00, 0x4D, 0x48, 0x54, 0x00, 0x4B, 0x57, 0x41, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x30, 0x6D, 0x02, 0x11, 0xFD, 0x15, 0x00, +0x00, 0x00, 0x09, 0x4B, 0x77, 0x61, 0x6A, 0x61, 0x6C, 0x65, 0x69, 0x6E, + +/* Pacific/Majuro */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0xFF, 0x86, 0x1B, 0x50, +0x01, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x00, 0x00, 0x00, 0xA8, 0xC0, 0x00, 0x00, 0x4D, 0x48, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3D, 0x38, 0x02, 0x17, 0xE3, 0x80, 0x00, 0x00, 0x00, +0x0E, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, + +/* Pacific/Marquesas */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x94, 0x50, 0x4C, 0x48, +0x01, 0xFF, 0xFF, 0x7D, 0x38, 0x00, 0x00, 0xFF, 0xFF, 0x7A, 0x68, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x4D, 0x41, 0x52, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7B, 0x98, 0xA0, 0x00, 0x3D, +0xCC, 0x50, 0x00, 0x00, 0x00, 0x11, 0x4D, 0x61, 0x72, 0x71, 0x75, 0x65, 0x73, 0x61, 0x73, 0x20, +0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, 0x73, + +/* Pacific/Midway */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xE6, 0x75, 0x8A, 0xB0, +0xE6, 0xED, 0x75, 0x20, 0xFA, 0xD2, 0x55, 0xB0, 0x1A, 0x2B, 0x30, 0x30, 0x01, 0x00, 0x02, 0x03, +0xFF, 0xFF, 0x65, 0x50, 0x00, 0x00, 0xFF, 0xFF, 0x73, 0x60, 0x01, 0x04, 0xFF, 0xFF, 0x65, 0x50, +0x00, 0x08, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x0C, 0x4E, 0x53, 0x54, 0x00, 0x4E, 0x44, 0x54, 0x00, +0x42, 0x53, 0x54, 0x00, 0x53, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xB4, 0x62, 0x62, 0x00, 0x04, 0x04, 0xA5, 0x00, 0x00, 0x00, 0x0E, 0x4D, 0x69, 0x64, 0x77, +0x61, 0x79, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, 0x73, + +/* Pacific/Nauru */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4E, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0xA3, 0xE7, 0x2B, 0x04, +0xCB, 0xB4, 0xBF, 0x48, 0xD0, 0x42, 0x50, 0x70, 0x11, 0x8B, 0x04, 0xC8, 0x01, 0x02, 0x01, 0x03, +0x00, 0x00, 0x9C, 0x7C, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xB8, 0x00, 0x04, 0x00, 0x00, 0x7E, 0x90, +0x00, 0x08, 0x00, 0x00, 0xA8, 0xC0, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x4E, 0x52, 0x54, 0x00, +0x4A, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x8A, 0x6D, +0x02, 0x11, 0x5A, 0x52, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Niue */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4E, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0xDC, 0x43, 0x35, 0x60, +0x10, 0x74, 0xCA, 0x38, 0x01, 0x02, 0xFF, 0xFF, 0x60, 0xA0, 0x00, 0x00, 0xFF, 0xFF, 0x5E, 0x48, +0x00, 0x00, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x00, 0x4E, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x6C, 0x4F, 0xDD, 0x00, 0x0F, 0x62, 0xCD, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Norfolk */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4E, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xDC, 0x41, 0xF8, 0x80, +0x01, 0x00, 0x00, 0x9D, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xB8, 0x00, 0x04, 0x4E, 0x4D, 0x54, +0x00, 0x4E, 0x46, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x98, 0x02, 0x12, 0xF4, +0x7A, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Noumea */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4E, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D, 0x92, 0xF5, 0xC4, 0x74, +0x0E, 0xE6, 0xBA, 0x50, 0x0F, 0x56, 0xBB, 0xC0, 0x10, 0xC6, 0x9C, 0x50, 0x11, 0x37, 0xEF, 0x40, +0x32, 0xA0, 0x4B, 0xF0, 0x33, 0x18, 0x44, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x00, +0x00, 0x9C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0xA8, 0xC0, 0x01, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x00, +0x09, 0x00, 0x00, 0xA8, 0xC0, 0x01, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x09, 0x4C, 0x4D, 0x54, +0x00, 0x4E, 0x43, 0x53, 0x54, 0x00, 0x4E, 0x43, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x5A, 0x55, 0x02, 0x10, 0xA4, 0x08, 0x00, 0x00, 0x00, 0x00, + + +/* Pacific/Pago_Pago */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0x91, 0x05, 0xFB, 0x08, +0xDA, 0x62, 0x04, 0x38, 0xFA, 0xD2, 0x55, 0xB0, 0x1A, 0x2B, 0x30, 0x30, 0x01, 0x02, 0x03, 0x04, +0xFF, 0xFF, 0x5F, 0xF8, 0x00, 0x00, 0xFF, 0xFF, 0x5E, 0x48, 0x00, 0x04, 0xFF, 0xFF, 0x65, 0x50, +0x00, 0x09, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x0D, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x11, 0x4C, 0x4D, +0x54, 0x00, 0x53, 0x41, 0x4D, 0x54, 0x00, 0x4E, 0x53, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x53, +0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x8F, +0x55, 0x00, 0x0E, 0x30, 0xD0, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Palau */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x7E, 0x90, +0x00, 0x00, 0x50, 0x57, 0x54, 0x00, 0x00, 0x00, 0x00, 0x94, 0x84, 0xD5, 0x01, 0xDF, 0xDD, 0x0D, +0x00, 0x00, 0x00, 0x00, + +/* Pacific/Pitcairn */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x35, 0x44, 0x42, 0x08, +0x01, 0xFF, 0xFF, 0x88, 0x78, 0x00, 0x00, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x04, 0x50, 0x4E, 0x54, +0x00, 0x50, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x14, 0x95, 0x00, 0x4C, 0x2A, +0xB2, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Pohnpei */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x46, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x9A, 0xB0, +0x00, 0x00, 0x50, 0x4F, 0x4E, 0x54, 0x00, 0x00, 0x00, 0x00, 0x93, 0xF5, 0x9A, 0x02, 0x04, 0x13, +0xE2, 0x00, 0x00, 0x00, 0x10, 0x50, 0x6F, 0x68, 0x6E, 0x70, 0x65, 0x69, 0x20, 0x28, 0x50, 0x6F, +0x6E, 0x61, 0x70, 0x65, 0x29, + +/* Pacific/Ponape */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x9A, 0xB0, +0x00, 0x00, 0x50, 0x4F, 0x4E, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, +0x80, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Port_Moresby */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x8C, 0xA0, +0x00, 0x00, 0x50, 0x47, 0x54, 0x00, 0x00, 0x00, 0x00, 0x7A, 0xD5, 0x50, 0x01, 0xF3, 0x37, 0x7A, +0x00, 0x00, 0x00, 0x00, + +/* Pacific/Rarotonga */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0A, 0x10, 0xAC, 0x1B, 0x28, +0x11, 0x3F, 0xB5, 0x18, 0x12, 0x79, 0x81, 0x20, 0x13, 0x1F, 0x97, 0x18, 0x14, 0x59, 0x63, 0x20, +0x14, 0xFF, 0x79, 0x18, 0x16, 0x39, 0x45, 0x20, 0x16, 0xE8, 0x95, 0x98, 0x18, 0x22, 0x61, 0xA0, +0x18, 0xC8, 0x77, 0x98, 0x1A, 0x02, 0x43, 0xA0, 0x1A, 0xA8, 0x59, 0x98, 0x1B, 0xE2, 0x25, 0xA0, +0x1C, 0x88, 0x3B, 0x98, 0x1D, 0xC2, 0x07, 0xA0, 0x1E, 0x68, 0x1D, 0x98, 0x1F, 0xA1, 0xE9, 0xA0, +0x20, 0x47, 0xFF, 0x98, 0x21, 0x81, 0xCB, 0xA0, 0x22, 0x31, 0x1C, 0x18, 0x23, 0x6A, 0xE8, 0x20, +0x24, 0x10, 0xFE, 0x18, 0x25, 0x4A, 0xCA, 0x20, 0x25, 0xF0, 0xE0, 0x18, 0x27, 0x2A, 0xAC, 0x20, +0x27, 0xD0, 0xC2, 0x18, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, +0x6C, 0x58, 0x00, 0x00, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x00, 0xFF, 0xFF, 0x7A, 0x68, 0x01, 0x04, +0x43, 0x4B, 0x54, 0x00, 0x43, 0x4B, 0x48, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x68, 0xED, 0xFA, 0x00, 0x1E, 0xDF, 0xA5, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Saipan */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x09, 0xFF, 0x86, 0x37, 0x70, +0x3A, 0x43, 0x5E, 0x60, 0x01, 0x02, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, +0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x04, 0x4D, 0x50, 0x54, 0x00, 0x43, 0x68, 0x53, 0x54, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x85, 0xC0, 0x01, 0xF1, 0x0E, 0x18, 0x00, +0x00, 0x00, 0x00, + +/* Pacific/Samoa */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0x91, 0x05, 0xFB, 0x08, +0xDA, 0x62, 0x04, 0x38, 0xFA, 0xD2, 0x55, 0xB0, 0x1A, 0x2B, 0x30, 0x30, 0x01, 0x02, 0x03, 0x04, +0xFF, 0xFF, 0x5F, 0xF8, 0x00, 0x00, 0xFF, 0xFF, 0x5E, 0x48, 0x00, 0x04, 0xFF, 0xFF, 0x65, 0x50, +0x00, 0x09, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x0D, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x11, 0x4C, 0x4D, +0x54, 0x00, 0x53, 0x41, 0x4D, 0x54, 0x00, 0x4E, 0x53, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x53, +0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Tahiti */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x94, 0x50, 0x55, 0xB8, +0x01, 0xFF, 0xFF, 0x73, 0xC8, 0x00, 0x00, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x04, 0x4C, 0x4D, 0x54, +0x00, 0x54, 0x41, 0x48, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x93, 0x4A, 0x00, 0x2E, +0x70, 0x05, 0x00, 0x00, 0x00, 0x0F, 0x53, 0x6F, 0x63, 0x69, 0x65, 0x74, 0x79, 0x20, 0x49, 0x73, +0x6C, 0x61, 0x6E, 0x64, 0x73, + +/* Pacific/Tarawa */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x4B, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xA8, 0xC0, +0x00, 0x00, 0x47, 0x49, 0x4C, 0x54, 0x00, 0x00, 0x00, 0x00, 0x8B, 0x7D, 0xA2, 0x02, 0x1A, 0xA2, +0xA0, 0x00, 0x00, 0x00, 0x0F, 0x47, 0x69, 0x6C, 0x62, 0x65, 0x72, 0x74, 0x20, 0x49, 0x73, 0x6C, +0x61, 0x6E, 0x64, 0x73, + +/* Pacific/Tongatapu */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x09, 0xC9, 0x73, 0x42, 0x90, +0x37, 0xFB, 0x47, 0xD0, 0x38, 0xD3, 0x7D, 0xD0, 0x3A, 0x04, 0x08, 0x50, 0x3A, 0x72, 0xB8, 0x40, +0x3B, 0xE3, 0xEA, 0x50, 0x3C, 0x52, 0x9A, 0x40, 0x01, 0x02, 0x03, 0x04, 0x01, 0x04, 0x01, 0x00, +0x00, 0xAD, 0x70, 0x00, 0x00, 0x00, 0x00, 0xB6, 0xD0, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xE0, 0x01, +0x04, 0x00, 0x00, 0xB6, 0xD0, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xE0, 0x01, 0x04, 0x54, 0x4F, 0x54, +0x00, 0x54, 0x4F, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x69, 0x08, 0x05, 0x00, 0x07, 0x60, 0x05, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Truk */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x8C, 0xA0, +0x00, 0x00, 0x43, 0x48, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, +0x80, 0x00, 0x00, 0x00, 0x00, + +/* Pacific/Wake */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x55, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xA8, 0xC0, +0x00, 0x00, 0x57, 0x41, 0x4B, 0x54, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xC0, 0xCD, 0x02, 0x10, 0xE5, +0x22, 0x00, 0x00, 0x00, 0x0B, 0x57, 0x61, 0x6B, 0x65, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, + + +/* Pacific/Wallis */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x57, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xA8, 0xC0, +0x00, 0x00, 0x57, 0x46, 0x54, 0x00, 0x00, 0x00, 0x00, 0x75, 0x08, 0xF0, 0x00, 0x05, 0xD9, 0x65, +0x00, 0x00, 0x00, 0x00, + +/* Pacific/Yap */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x8C, 0xA0, +0x00, 0x00, 0x43, 0x48, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, +0x80, 0x00, 0x00, 0x00, 0x00, + +/* Poland */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x16, 0x99, 0xA8, 0x2A, 0xD0, +0x9B, 0x0C, 0x17, 0x60, 0x9B, 0xD5, 0xDA, 0xF0, 0x9C, 0xD9, 0xAE, 0x90, 0x9D, 0xA4, 0xB5, 0x90, +0x9E, 0xB9, 0x90, 0x90, 0x9F, 0x84, 0x97, 0x90, 0xA0, 0x9A, 0xB6, 0x00, 0xA1, 0x65, 0xBD, 0x00, +0xA6, 0x7D, 0x7C, 0x60, 0xC8, 0x76, 0xDE, 0x10, 0xCC, 0xE7, 0x4B, 0x10, 0xCD, 0xA9, 0x17, 0x90, +0xCE, 0xA2, 0x43, 0x10, 0xCF, 0x92, 0x34, 0x10, 0xD0, 0x80, 0xA9, 0x60, 0xD0, 0x84, 0xBA, 0x00, +0xD1, 0x95, 0x92, 0x70, 0xD2, 0x8A, 0xBB, 0x60, 0xD3, 0x62, 0xFF, 0x70, 0xD4, 0x4B, 0x23, 0x90, +0xD5, 0x5E, 0xAD, 0x10, 0xD6, 0x29, 0xB4, 0x10, 0xD7, 0x2C, 0x1A, 0x10, 0xD8, 0x09, 0x96, 0x10, +0xD9, 0x02, 0xC1, 0x90, 0xD9, 0xE9, 0x78, 0x10, 0xE8, 0x54, 0xD2, 0x00, 0xE8, 0xF1, 0xB4, 0x80, +0xE9, 0xE1, 0xA5, 0x80, 0xEA, 0xD1, 0x96, 0x80, 0xEC, 0x14, 0x96, 0x00, 0xEC, 0xBA, 0xB3, 0x00, +0xED, 0xAA, 0xA4, 0x00, 0xEE, 0x9A, 0x95, 0x00, 0xEF, 0xD4, 0x5A, 0x00, 0xF0, 0x7A, 0x77, 0x00, +0xF1, 0xB4, 0x3C, 0x00, 0xF2, 0x5A, 0x59, 0x00, 0xF3, 0x94, 0x1E, 0x00, 0xF4, 0x3A, 0x3B, 0x00, +0xF5, 0x7D, 0x3A, 0x80, 0xF6, 0x1A, 0x1D, 0x00, 0x0D, 0x2A, 0xFD, 0x70, 0x0D, 0xA4, 0x55, 0x80, +0x0E, 0x8B, 0x0C, 0x00, 0x0F, 0x84, 0x37, 0x80, 0x10, 0x74, 0x28, 0x80, 0x11, 0x64, 0x19, 0x80, +0x12, 0x54, 0x0A, 0x80, 0x13, 0x4D, 0x36, 0x00, 0x14, 0x33, 0xEC, 0x80, 0x15, 0x23, 0xDD, 0x80, +0x16, 0x13, 0xCE, 0x80, 0x17, 0x03, 0xBF, 0x80, 0x17, 0xF3, 0xB0, 0x80, 0x18, 0xE3, 0xA1, 0x80, +0x19, 0xD3, 0x92, 0x80, 0x1A, 0xC3, 0x83, 0x80, 0x1B, 0xBC, 0xAF, 0x00, 0x1C, 0xAC, 0xA0, 0x00, +0x1D, 0x9C, 0x91, 0x00, 0x1E, 0x8C, 0x82, 0x00, 0x1F, 0x7C, 0x73, 0x00, 0x20, 0x6C, 0x64, 0x00, +0x21, 0x5C, 0x55, 0x00, 0x21, 0xDA, 0xD6, 0xF0, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, +0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, +0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, +0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, +0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, +0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, +0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, +0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, +0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, +0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x02, 0x01, 0x02, 0x03, 0x04, 0x03, 0x07, 0x05, +0x06, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x02, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, +0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x00, +0x00, 0x13, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, +0x09, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x2A, +0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x12, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x12, 0x00, +0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, 0x57, 0x4D, 0x54, 0x00, 0x43, +0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, +0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, +0x00, + +/* Portugal */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xDD, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x1B, 0x92, 0xE6, 0x97, 0x10, +0x9B, 0x4B, 0x6D, 0x70, 0x9B, 0xFE, 0xC7, 0x80, 0x9C, 0x9C, 0xED, 0x70, 0x9D, 0xC9, 0x83, 0x70, +0x9E, 0x7F, 0x72, 0x70, 0x9F, 0xAA, 0xB6, 0xF0, 0xA0, 0x5F, 0x54, 0x70, 0xA1, 0x8B, 0xEA, 0x70, +0xA2, 0x41, 0xD9, 0x70, 0xA3, 0x6E, 0x6F, 0x70, 0xA4, 0x23, 0x0C, 0xF0, 0xA5, 0x4F, 0xA2, 0xF0, +0xAA, 0x05, 0xEF, 0x70, 0xAA, 0xF4, 0x8E, 0xF0, 0xAD, 0xC9, 0xA7, 0xF0, 0xAE, 0xA7, 0x23, 0xF0, +0xAF, 0xA0, 0x4F, 0x70, 0xB0, 0x87, 0x05, 0xF0, 0xB1, 0x89, 0x6B, 0xF0, 0xB2, 0x70, 0x22, 0x70, +0xB3, 0x72, 0x88, 0x70, 0xB4, 0x50, 0x04, 0x70, 0xB7, 0x32, 0x4C, 0x70, 0xB8, 0x0F, 0xC8, 0x70, +0xB8, 0xFF, 0xB9, 0x70, 0xB9, 0xEF, 0xAA, 0x70, 0xBC, 0xC8, 0xB7, 0xF0, 0xBD, 0xB8, 0xA8, 0xF0, +0xBE, 0x9F, 0x5F, 0x70, 0xBF, 0x98, 0x8A, 0xF0, 0xC0, 0x9A, 0xF0, 0xF0, 0xC1, 0x78, 0x6C, 0xF0, +0xC2, 0x68, 0x5D, 0xF0, 0xC3, 0x58, 0x4E, 0xF0, 0xC4, 0x3F, 0x05, 0x70, 0xC5, 0x38, 0x30, 0xF0, +0xC6, 0x3A, 0x96, 0xF0, 0xC7, 0x58, 0xAC, 0x70, 0xC7, 0xD9, 0xDF, 0x70, 0xC9, 0x01, 0x2F, 0x70, +0xC9, 0xF1, 0x20, 0x70, 0xCA, 0xE2, 0x62, 0xF0, 0xCB, 0xB5, 0x52, 0xF0, 0xCB, 0xEC, 0xA3, 0xE0, +0xCC, 0x80, 0x4B, 0xE0, 0xCC, 0xDC, 0xA2, 0xF0, 0xCD, 0x95, 0x34, 0xF0, 0xCD, 0xC3, 0x4B, 0x60, +0xCE, 0x72, 0xA2, 0xE0, 0xCE, 0xC5, 0xBF, 0x70, 0xCF, 0x75, 0x16, 0xF0, 0xCF, 0xAC, 0x67, 0xE0, +0xD0, 0x52, 0x84, 0xE0, 0xD0, 0xA5, 0xA1, 0x70, 0xD1, 0x54, 0xF8, 0xF0, 0xD1, 0x8C, 0x49, 0xE0, +0xD2, 0x32, 0x66, 0xE0, 0xD2, 0x85, 0x83, 0x70, 0xD3, 0x59, 0xC4, 0xF0, 0xD4, 0x49, 0xB5, 0xF0, +0xD5, 0x39, 0xD1, 0x20, 0xD6, 0x29, 0xC2, 0x20, 0xD7, 0x19, 0xB3, 0x20, 0xD8, 0x09, 0xA4, 0x20, +0xD8, 0xF9, 0x95, 0x20, 0xD9, 0xE9, 0x86, 0x20, 0xDC, 0xB9, 0x59, 0x20, 0xDD, 0xB2, 0x84, 0xA0, +0xDE, 0xA2, 0x75, 0xA0, 0xDF, 0x92, 0x66, 0xA0, 0xE0, 0x82, 0x57, 0xA0, 0xE1, 0x72, 0x48, 0xA0, +0xE2, 0x62, 0x39, 0xA0, 0xE3, 0x52, 0x2A, 0xA0, 0xE4, 0x42, 0x1B, 0xA0, 0xE5, 0x32, 0x0C, 0xA0, +0xE6, 0x21, 0xFD, 0xA0, 0xE7, 0x1B, 0x29, 0x20, 0xE8, 0x0B, 0x1A, 0x20, 0xE8, 0xFB, 0x0B, 0x20, +0xE9, 0xEA, 0xFC, 0x20, 0xEA, 0xDA, 0xED, 0x20, 0xEB, 0xCA, 0xDE, 0x20, 0xEC, 0xBA, 0xCF, 0x20, +0xED, 0xAA, 0xC0, 0x20, 0xEE, 0x9A, 0xB1, 0x20, 0xEF, 0x8A, 0xA2, 0x20, 0xF0, 0x7A, 0x93, 0x20, +0xF1, 0x6A, 0x84, 0x20, 0xF2, 0x63, 0xAF, 0xA0, 0xF3, 0x53, 0xA0, 0xA0, 0xF4, 0x43, 0x91, 0xA0, +0xF5, 0x33, 0x82, 0xA0, 0xF6, 0x23, 0x73, 0xA0, 0xF7, 0x13, 0x64, 0xA0, 0xF8, 0x03, 0x55, 0xA0, +0xF8, 0xF3, 0x46, 0xA0, 0x0C, 0xAB, 0x2A, 0x00, 0x0D, 0x9B, 0x1B, 0x00, 0x0E, 0x8B, 0x0C, 0x00, +0x0F, 0x84, 0x37, 0x80, 0x10, 0x74, 0x28, 0x80, 0x11, 0x64, 0x19, 0x80, 0x12, 0x54, 0x18, 0x90, +0x13, 0x43, 0xFB, 0x80, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, +0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xBD, 0xA0, 0x19, 0xD3, 0xA0, 0x90, +0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, +0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, 0x21, 0x5C, 0x63, 0x10, +0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, 0x25, 0x1C, 0x27, 0x10, +0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, 0x28, 0xE5, 0x25, 0x90, +0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, 0x2C, 0xA4, 0xE9, 0x90, +0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, 0x30, 0x64, 0xAD, 0x90, +0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, 0x34, 0x52, 0x96, 0x10, +0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, 0x38, 0x1B, 0x94, 0x90, +0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, 0x3B, 0xDB, 0x58, 0x90, +0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, 0x3F, 0x9B, 0x1C, 0x90, +0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, 0x43, 0x64, 0x1B, 0x10, +0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, +0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, +0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, 0x4E, 0xAC, 0xA1, 0x90, +0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, +0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, +0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, +0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, +0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, +0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, +0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, +0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, +0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, +0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, +0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, +0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, +0x02, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, 0x03, +0x05, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, 0x03, 0x05, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x06, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, +0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0x09, 0x0A, 0xFF, 0xFF, 0xF7, +0x70, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, +0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x01, +0x0D, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x12, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x12, 0x00, 0x00, 0x1C, +0x20, 0x01, 0x16, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x4C, +0x4D, 0x54, 0x00, 0x57, 0x45, 0x53, 0x54, 0x00, 0x57, 0x45, 0x54, 0x00, 0x57, 0x45, 0x4D, 0x54, +0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, +0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, +0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* PRC */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xB0, 0xFE, 0x9A, 0xA0, +0xC8, 0x5C, 0x01, 0x80, 0xC8, 0xFA, 0x27, 0x70, 0xC9, 0xD5, 0x0E, 0x80, 0xCA, 0xDB, 0x5A, 0xF0, +0x1E, 0xBA, 0x36, 0x00, 0x1F, 0x69, 0x7F, 0x70, 0x20, 0x7E, 0x68, 0x80, 0x21, 0x49, 0x61, 0x70, +0x22, 0x5E, 0x4A, 0x80, 0x23, 0x29, 0x43, 0x70, 0x24, 0x47, 0x67, 0x00, 0x25, 0x12, 0x5F, 0xF0, +0x26, 0x27, 0x49, 0x00, 0x26, 0xF2, 0x41, 0xF0, 0x28, 0x07, 0x2B, 0x00, 0x28, 0xD2, 0x23, 0xF0, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x00, 0x00, 0x71, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x04, 0x00, 0x00, 0x70, +0x80, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, +0x00, + +/* PST8PDT */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xA6, 0x48, 0xA0, +0x9F, 0xBB, 0x15, 0x90, 0xA0, 0x86, 0x2A, 0xA0, 0xA1, 0x9A, 0xF7, 0x90, 0xCB, 0x89, 0x1A, 0xA0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x26, 0x10, 0xFA, 0xF8, 0x83, 0x20, 0xFB, 0xE8, 0x66, 0x10, +0xFC, 0xD8, 0x65, 0x20, 0xFD, 0xC8, 0x48, 0x10, 0xFE, 0xB8, 0x47, 0x20, 0xFF, 0xA8, 0x2A, 0x10, +0x00, 0x98, 0x29, 0x20, 0x01, 0x88, 0x0C, 0x10, 0x02, 0x78, 0x0B, 0x20, 0x03, 0x71, 0x28, 0x90, +0x04, 0x61, 0x27, 0xA0, 0x05, 0x51, 0x0A, 0x90, 0x06, 0x41, 0x09, 0xA0, 0x07, 0x30, 0xEC, 0x90, +0x07, 0x8D, 0x43, 0xA0, 0x09, 0x10, 0xCE, 0x90, 0x09, 0xAD, 0xBF, 0x20, 0x0A, 0xF0, 0xB0, 0x90, +0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, +0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x73, 0x10, +0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, +0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, +0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, 0x1D, 0xC1, 0xF9, 0x90, +0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20, 0x21, 0x81, 0xBD, 0x90, +0x22, 0x56, 0x0D, 0x20, 0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20, 0x25, 0x4A, 0xBC, 0x10, +0x26, 0x15, 0xD1, 0x20, 0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0, 0x29, 0x0A, 0x80, 0x10, +0x29, 0xDE, 0xCF, 0xA0, 0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0, 0x2C, 0xD3, 0x7E, 0x90, +0x2D, 0x9E, 0x93, 0xA0, 0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0, 0x30, 0x93, 0x42, 0x90, +0x31, 0x67, 0x92, 0x20, 0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20, 0x34, 0x53, 0x06, 0x90, +0x35, 0x27, 0x56, 0x20, 0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20, 0x38, 0x1C, 0x05, 0x10, +0x38, 0xE7, 0x1A, 0x20, 0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20, 0x3B, 0xDB, 0xC9, 0x10, +0x3C, 0xB0, 0x18, 0xA0, 0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0, 0x3F, 0x9B, 0x8D, 0x10, +0x40, 0x6F, 0xDC, 0xA0, 0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0, 0x43, 0x64, 0x8B, 0x90, +0x44, 0x2F, 0xA0, 0xA0, 0x45, 0x44, 0x6D, 0x90, 0x45, 0xF3, 0xD3, 0x20, 0x47, 0x2D, 0x8A, 0x10, +0x47, 0xD3, 0xB5, 0x20, 0x49, 0x0D, 0x6C, 0x10, 0x49, 0xB3, 0x97, 0x20, 0x4A, 0xED, 0x4E, 0x10, +0x4B, 0x9C, 0xB3, 0xA0, 0x4C, 0xD6, 0x6A, 0x90, 0x4D, 0x7C, 0x95, 0xA0, 0x4E, 0xB6, 0x4C, 0x90, +0x4F, 0x5C, 0x77, 0xA0, 0x50, 0x96, 0x2E, 0x90, 0x51, 0x3C, 0x59, 0xA0, 0x52, 0x76, 0x10, 0x90, +0x53, 0x1C, 0x3B, 0xA0, 0x54, 0x55, 0xF2, 0x90, 0x54, 0xFC, 0x1D, 0xA0, 0x56, 0x35, 0xD4, 0x90, +0x56, 0xE5, 0x3A, 0x20, 0x58, 0x1E, 0xF1, 0x10, 0x58, 0xC5, 0x1C, 0x20, 0x59, 0xFE, 0xD3, 0x10, +0x5A, 0xA4, 0xFE, 0x20, 0x5B, 0xDE, 0xB5, 0x10, 0x5C, 0x84, 0xE0, 0x20, 0x5D, 0xBE, 0x97, 0x10, +0x5E, 0x64, 0xC2, 0x20, 0x5F, 0x9E, 0x79, 0x10, 0x60, 0x4D, 0xDE, 0xA0, 0x61, 0x87, 0x95, 0x90, +0x62, 0x2D, 0xC0, 0xA0, 0x63, 0x67, 0x77, 0x90, 0x64, 0x0D, 0xA2, 0xA0, 0x65, 0x47, 0x59, 0x90, +0x65, 0xED, 0x84, 0xA0, 0x67, 0x27, 0x3B, 0x90, 0x67, 0xCD, 0x66, 0xA0, 0x69, 0x07, 0x1D, 0x90, +0x69, 0xAD, 0x48, 0xA0, 0x6A, 0xE6, 0xFF, 0x90, 0x6B, 0x96, 0x65, 0x20, 0x6C, 0xD0, 0x1C, 0x10, +0x6D, 0x76, 0x47, 0x20, 0x6E, 0xAF, 0xFE, 0x10, 0x6F, 0x56, 0x29, 0x20, 0x70, 0x8F, 0xE0, 0x10, +0x71, 0x36, 0x0B, 0x20, 0x72, 0x6F, 0xC2, 0x10, 0x73, 0x15, 0xED, 0x20, 0x74, 0x4F, 0xA4, 0x10, +0x74, 0xFF, 0x09, 0xA0, 0x76, 0x38, 0xC0, 0x90, 0x76, 0xDE, 0xEB, 0xA0, 0x78, 0x18, 0xA2, 0x90, +0x78, 0xBE, 0xCD, 0xA0, 0x79, 0xF8, 0x84, 0x90, 0x7A, 0x9E, 0xAF, 0xA0, 0x7B, 0xD8, 0x66, 0x90, +0x7C, 0x7E, 0x91, 0xA0, 0x7D, 0xB8, 0x48, 0x90, 0x7E, 0x5E, 0x73, 0xA0, 0x7F, 0x98, 0x2A, 0x90, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x00, 0xFF, 0xFF, 0x8F, 0x80, 0x00, +0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0x50, 0x44, 0x54, +0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, +0x00, + +/* ROC */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xD1, 0x97, 0xD3, 0x00, +0xD2, 0x61, 0x7A, 0x70, 0xD3, 0x79, 0x06, 0x80, 0xD4, 0x42, 0xAD, 0xF0, 0xD5, 0x5A, 0x3A, 0x00, +0xD6, 0x23, 0xE1, 0x70, 0xD7, 0x3C, 0xBF, 0x00, 0xD8, 0x06, 0x66, 0x70, 0xD9, 0x1D, 0xF2, 0x80, +0xD9, 0xE7, 0x99, 0xF0, 0xDA, 0xFF, 0x26, 0x00, 0xDB, 0xC8, 0xCD, 0x70, 0xDC, 0xE0, 0x59, 0x80, +0xDD, 0xAA, 0x00, 0xF0, 0xDE, 0x72, 0x73, 0x00, 0xDF, 0xB5, 0x64, 0x70, 0xE0, 0x7C, 0x85, 0x00, +0xE1, 0x96, 0x97, 0xF0, 0xE2, 0x5D, 0xB8, 0x80, 0xE3, 0x77, 0xCB, 0x70, 0xE4, 0x3E, 0xEC, 0x00, +0xE5, 0x30, 0x20, 0x70, 0xE6, 0x21, 0x71, 0x00, 0xE7, 0x12, 0xA5, 0x70, 0xE8, 0x02, 0xA4, 0x80, +0xE8, 0xF3, 0xD8, 0xF0, 0xE9, 0xE3, 0xD8, 0x00, 0xEA, 0xD5, 0x0C, 0x70, 0xEB, 0xC5, 0x0B, 0x80, +0xEC, 0xB6, 0x3F, 0xF0, 0xED, 0xF7, 0xFC, 0x00, 0xEE, 0x98, 0xC4, 0xF0, 0xEF, 0xD9, 0x2F, 0x80, +0xF0, 0x79, 0xF8, 0x70, 0x07, 0xFC, 0x56, 0x00, 0x08, 0xED, 0x8A, 0x70, 0x09, 0xDD, 0x89, 0x80, +0x0A, 0xCE, 0xBD, 0xF0, 0x11, 0xDA, 0x50, 0x00, 0x12, 0x53, 0x8B, 0xF0, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, +0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, +0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* ROK */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x85, 0x93, 0x7E, 0x78, +0xB0, 0xFE, 0x8D, 0xF0, 0xB8, 0x84, 0xB4, 0x78, 0xE2, 0x4F, 0x29, 0xF0, 0xED, 0xE1, 0x92, 0x80, +0xEE, 0x81, 0x09, 0xF0, 0xF0, 0x35, 0x78, 0x80, 0xFD, 0xA5, 0x0A, 0xF8, 0x20, 0xA3, 0x44, 0x70, +0x21, 0x6E, 0x3D, 0x60, 0x22, 0x83, 0x26, 0x70, 0x23, 0x4E, 0x1F, 0x60, 0x01, 0x00, 0x01, 0x03, +0x02, 0x03, 0x00, 0x01, 0x04, 0x01, 0x04, 0x01, 0x00, 0x00, 0x77, 0x88, 0x00, 0x00, 0x00, 0x00, +0x7E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x90, 0x01, 0x04, 0x00, 0x00, 0x70, 0x80, 0x00, 0x00, +0x00, 0x00, 0x8C, 0xA0, 0x01, 0x04, 0x4B, 0x53, 0x54, 0x00, 0x4B, 0x44, 0x54, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Singapore */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x17, 0x86, 0x83, 0x85, 0xA3, +0xBA, 0x67, 0x4E, 0x90, 0xC0, 0x0A, 0xE4, 0x60, 0xCA, 0xB3, 0xE5, 0x60, 0xCB, 0x91, 0x5F, 0x08, +0xD2, 0x48, 0x6D, 0xF0, 0xF7, 0xBA, 0x4D, 0x88, 0x16, 0x91, 0xF5, 0x08, 0x01, 0x02, 0x03, 0x04, +0x05, 0x04, 0x06, 0x07, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, +0x00, 0x00, 0x67, 0x20, 0x01, 0x09, 0x00, 0x00, 0x67, 0x20, 0x00, 0x04, 0x00, 0x00, 0x69, 0x78, +0x00, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x0F, 0x00, 0x00, 0x69, 0x78, 0x00, 0x13, 0x00, 0x00, +0x70, 0x80, 0x00, 0x13, 0x53, 0x4D, 0x54, 0x00, 0x4D, 0x41, 0x4C, 0x54, 0x00, 0x4D, 0x41, 0x4C, +0x53, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x53, 0x47, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, +0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Turkey */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x16, 0x90, 0x8B, 0xF5, 0x98, +0x9B, 0x0C, 0x17, 0x60, 0x9B, 0xD5, 0xBE, 0xD0, 0xA2, 0x65, 0x63, 0xE0, 0xA3, 0x7B, 0x82, 0x50, +0xA4, 0x4E, 0x80, 0x60, 0xA5, 0x3F, 0xB4, 0xD0, 0xA6, 0x25, 0x27, 0xE0, 0xA7, 0x27, 0x7F, 0xD0, +0xAA, 0x28, 0x28, 0x60, 0xAA, 0xE1, 0xFD, 0xD0, 0xAB, 0xF9, 0x89, 0xE0, 0xAC, 0xC3, 0x31, 0x50, +0xC8, 0x7F, 0xEE, 0x60, 0xC8, 0xFF, 0xC1, 0xD0, 0xC9, 0x4A, 0xF5, 0x60, 0xCA, 0xCE, 0x80, 0x50, +0xCB, 0xCB, 0xAE, 0x60, 0xCC, 0xE5, 0xC1, 0x50, 0xD1, 0x71, 0xEB, 0xE0, 0xD2, 0x6B, 0x09, 0x50, +0xD3, 0xA2, 0x39, 0x60, 0xD4, 0x43, 0x02, 0x50, 0xD5, 0x4C, 0x0D, 0xE0, 0xD6, 0x29, 0x7B, 0xD0, +0xD7, 0x2B, 0xEF, 0xE0, 0xD8, 0x09, 0x5D, 0xD0, 0xD9, 0x02, 0x97, 0x60, 0xD9, 0xE9, 0x3F, 0xD0, +0xDA, 0xEF, 0xA8, 0x60, 0xDB, 0xD2, 0x5C, 0x50, 0xDC, 0xD4, 0xD0, 0x60, 0xDD, 0xB3, 0x8F, 0xD0, +0xF1, 0xF4, 0xB9, 0x60, 0xF2, 0x64, 0xBA, 0xD0, 0xF5, 0x68, 0x06, 0x60, 0xF6, 0x1F, 0x38, 0xD0, +0x00, 0xA0, 0xBA, 0xE0, 0x01, 0x6B, 0xB3, 0xD0, 0x02, 0x80, 0x9C, 0xE0, 0x03, 0x4B, 0x95, 0xD0, +0x04, 0x69, 0xB9, 0x60, 0x05, 0x34, 0xB2, 0x50, 0x06, 0x6E, 0x93, 0x70, 0x07, 0x39, 0xA8, 0x80, +0x07, 0xFB, 0x75, 0x00, 0x09, 0x19, 0xA6, 0xA0, 0x09, 0xDB, 0x3A, 0xE0, 0x0A, 0xF0, 0x07, 0xD0, +0x0C, 0x10, 0xCE, 0x60, 0x0C, 0xD9, 0x24, 0x50, 0x0D, 0xA4, 0x39, 0x60, 0x0E, 0xA6, 0x91, 0x50, +0x0F, 0x84, 0x1B, 0x60, 0x10, 0x86, 0x73, 0x50, 0x12, 0x67, 0x98, 0xC0, 0x13, 0x4D, 0x36, 0x00, +0x14, 0x47, 0x7A, 0xC0, 0x15, 0x23, 0xDD, 0x80, 0x16, 0x27, 0x5C, 0xC0, 0x17, 0x03, 0xBF, 0x80, +0x18, 0x07, 0x3E, 0xC0, 0x19, 0x89, 0x94, 0x50, 0x19, 0xDC, 0x94, 0xC0, 0x1C, 0xC6, 0xD3, 0xD0, +0x1D, 0x9B, 0x15, 0x50, 0x1E, 0x8C, 0x82, 0x00, 0x1F, 0x7C, 0x73, 0x00, 0x20, 0x6C, 0x64, 0x00, +0x21, 0x5C, 0x55, 0x00, 0x22, 0x4C, 0x46, 0x00, 0x23, 0x3C, 0x37, 0x00, 0x24, 0x2C, 0x28, 0x00, +0x25, 0x1C, 0x19, 0x00, 0x26, 0x0C, 0x0A, 0x00, 0x27, 0x05, 0x35, 0x80, 0x27, 0xF5, 0x18, 0x70, +0x28, 0xE5, 0x09, 0x70, 0x29, 0xD4, 0xFA, 0x70, 0x2A, 0xC4, 0xEB, 0x70, 0x2B, 0xB4, 0xDC, 0x70, +0x2C, 0xA4, 0xCD, 0x70, 0x2D, 0x94, 0xBE, 0x70, 0x2E, 0x84, 0xAF, 0x70, 0x2F, 0x74, 0xA0, 0x70, +0x30, 0x64, 0x91, 0x70, 0x31, 0x5D, 0xBC, 0xF0, 0x32, 0x72, 0x97, 0xF0, 0x33, 0x3D, 0x9E, 0xF0, +0x34, 0x52, 0x79, 0xF0, 0x35, 0x1D, 0x80, 0xF0, 0x36, 0x32, 0x5B, 0xF0, 0x36, 0xFD, 0x62, 0xF0, +0x38, 0x1B, 0x78, 0x70, 0x38, 0xDD, 0x44, 0xF0, 0x39, 0xFB, 0x5A, 0x70, 0x3A, 0xBD, 0x26, 0xF0, +0x3B, 0xDB, 0x3C, 0x70, 0x3C, 0xA6, 0x43, 0x70, 0x3D, 0xBB, 0x1E, 0x70, 0x3E, 0x86, 0x25, 0x70, +0x3F, 0x9B, 0x00, 0x70, 0x40, 0x66, 0x07, 0x70, 0x41, 0x84, 0x1C, 0xF0, 0x42, 0x45, 0xE9, 0x70, +0x43, 0x63, 0xFE, 0xF0, 0x44, 0x25, 0xCB, 0x70, 0x45, 0x43, 0xE0, 0xF0, 0x45, 0x98, 0x32, 0xE0, +0x46, 0x05, 0xC9, 0x90, 0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, +0x49, 0xCE, 0xC8, 0x10, 0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, +0x4D, 0x8F, 0xDD, 0x90, 0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, +0x51, 0x57, 0x8A, 0x90, 0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, +0x55, 0x17, 0x4E, 0x90, 0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, +0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, +0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, +0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, +0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, +0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, +0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, +0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, +0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, +0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, +0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, +0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x01, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x02, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x00, 0x00, 0x1B, 0x68, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, +0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x38, 0x40, 0x01, 0x0D, 0x00, 0x00, 0x2A, 0x30, 0x00, +0x12, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, +0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x49, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, +0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x54, 0x52, 0x53, 0x54, 0x00, 0x54, 0x52, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* UCT */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x55, 0x43, 0x54, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* Universal */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x55, 0x54, 0x43, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* US/Alaska */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x26, 0xCB, 0x89, 0x36, 0xC0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x42, 0x30, 0xFA, 0xD2, 0x47, 0xA0, 0xFE, 0xB8, 0x63, 0x40, +0xFF, 0xA8, 0x46, 0x30, 0x00, 0x98, 0x45, 0x40, 0x01, 0x88, 0x28, 0x30, 0x02, 0x78, 0x27, 0x40, +0x03, 0x71, 0x44, 0xB0, 0x04, 0x61, 0x43, 0xC0, 0x05, 0x51, 0x26, 0xB0, 0x06, 0x41, 0x25, 0xC0, +0x07, 0x31, 0x08, 0xB0, 0x07, 0x8D, 0x5F, 0xC0, 0x09, 0x10, 0xEA, 0xB0, 0x09, 0xAD, 0xDB, 0x40, +0x0A, 0xF0, 0xCC, 0xB0, 0x0B, 0xE0, 0xCB, 0xC0, 0x0C, 0xD9, 0xE9, 0x30, 0x0D, 0xC0, 0xAD, 0xC0, +0x0E, 0xB9, 0xCB, 0x30, 0x0F, 0xA9, 0xCA, 0x40, 0x10, 0x99, 0xAD, 0x30, 0x11, 0x89, 0xAC, 0x40, +0x12, 0x79, 0x8F, 0x30, 0x13, 0x69, 0x8E, 0x40, 0x14, 0x59, 0x71, 0x30, 0x15, 0x49, 0x70, 0x40, +0x16, 0x39, 0x53, 0x30, 0x17, 0x29, 0x52, 0x40, 0x18, 0x22, 0x6F, 0xB0, 0x19, 0x09, 0x34, 0x40, +0x1A, 0x02, 0x51, 0xB0, 0x1A, 0x2B, 0x14, 0x10, 0x1A, 0xF2, 0x42, 0xB0, 0x1B, 0xE2, 0x25, 0xA0, +0x1C, 0xD2, 0x24, 0xB0, 0x1D, 0xC2, 0x07, 0xA0, 0x1E, 0xB2, 0x06, 0xB0, 0x1F, 0xA1, 0xE9, 0xA0, +0x20, 0x76, 0x39, 0x30, 0x21, 0x81, 0xCB, 0xA0, 0x22, 0x56, 0x1B, 0x30, 0x23, 0x6A, 0xE8, 0x20, +0x24, 0x35, 0xFD, 0x30, 0x25, 0x4A, 0xCA, 0x20, 0x26, 0x15, 0xDF, 0x30, 0x27, 0x2A, 0xAC, 0x20, +0x27, 0xFE, 0xFB, 0xB0, 0x29, 0x0A, 0x8E, 0x20, 0x29, 0xDE, 0xDD, 0xB0, 0x2A, 0xEA, 0x70, 0x20, +0x2B, 0xBE, 0xBF, 0xB0, 0x2C, 0xD3, 0x8C, 0xA0, 0x2D, 0x9E, 0xA1, 0xB0, 0x2E, 0xB3, 0x6E, 0xA0, +0x2F, 0x7E, 0x83, 0xB0, 0x30, 0x93, 0x50, 0xA0, 0x31, 0x67, 0xA0, 0x30, 0x32, 0x73, 0x32, 0xA0, +0x33, 0x47, 0x82, 0x30, 0x34, 0x53, 0x14, 0xA0, 0x35, 0x27, 0x64, 0x30, 0x36, 0x32, 0xF6, 0xA0, +0x37, 0x07, 0x46, 0x30, 0x38, 0x1C, 0x13, 0x20, 0x38, 0xE7, 0x28, 0x30, 0x39, 0xFB, 0xF5, 0x20, +0x3A, 0xC7, 0x0A, 0x30, 0x3B, 0xDB, 0xD7, 0x20, 0x3C, 0xB0, 0x26, 0xB0, 0x3D, 0xBB, 0xB9, 0x20, +0x3E, 0x90, 0x08, 0xB0, 0x3F, 0x9B, 0x9B, 0x20, 0x40, 0x6F, 0xEA, 0xB0, 0x41, 0x84, 0xB7, 0xA0, +0x42, 0x4F, 0xCC, 0xB0, 0x43, 0x64, 0x99, 0xA0, 0x44, 0x2F, 0xAE, 0xB0, 0x45, 0x44, 0x7B, 0xA0, +0x45, 0xF3, 0xE1, 0x30, 0x47, 0x2D, 0x98, 0x20, 0x47, 0xD3, 0xC3, 0x30, 0x49, 0x0D, 0x7A, 0x20, +0x49, 0xB3, 0xA5, 0x30, 0x4A, 0xED, 0x5C, 0x20, 0x4B, 0x9C, 0xC1, 0xB0, 0x4C, 0xD6, 0x78, 0xA0, +0x4D, 0x7C, 0xA3, 0xB0, 0x4E, 0xB6, 0x5A, 0xA0, 0x4F, 0x5C, 0x85, 0xB0, 0x50, 0x96, 0x3C, 0xA0, +0x51, 0x3C, 0x67, 0xB0, 0x52, 0x76, 0x1E, 0xA0, 0x53, 0x1C, 0x49, 0xB0, 0x54, 0x56, 0x00, 0xA0, +0x54, 0xFC, 0x2B, 0xB0, 0x56, 0x35, 0xE2, 0xA0, 0x56, 0xE5, 0x48, 0x30, 0x58, 0x1E, 0xFF, 0x20, +0x58, 0xC5, 0x2A, 0x30, 0x59, 0xFE, 0xE1, 0x20, 0x5A, 0xA5, 0x0C, 0x30, 0x5B, 0xDE, 0xC3, 0x20, +0x5C, 0x84, 0xEE, 0x30, 0x5D, 0xBE, 0xA5, 0x20, 0x5E, 0x64, 0xD0, 0x30, 0x5F, 0x9E, 0x87, 0x20, +0x60, 0x4D, 0xEC, 0xB0, 0x61, 0x87, 0xA3, 0xA0, 0x62, 0x2D, 0xCE, 0xB0, 0x63, 0x67, 0x85, 0xA0, +0x64, 0x0D, 0xB0, 0xB0, 0x65, 0x47, 0x67, 0xA0, 0x65, 0xED, 0x92, 0xB0, 0x67, 0x27, 0x49, 0xA0, +0x67, 0xCD, 0x74, 0xB0, 0x69, 0x07, 0x2B, 0xA0, 0x69, 0xAD, 0x56, 0xB0, 0x6A, 0xE7, 0x0D, 0xA0, +0x6B, 0x96, 0x73, 0x30, 0x6C, 0xD0, 0x2A, 0x20, 0x6D, 0x76, 0x55, 0x30, 0x6E, 0xB0, 0x0C, 0x20, +0x6F, 0x56, 0x37, 0x30, 0x70, 0x8F, 0xEE, 0x20, 0x71, 0x36, 0x19, 0x30, 0x72, 0x6F, 0xD0, 0x20, +0x73, 0x15, 0xFB, 0x30, 0x74, 0x4F, 0xB2, 0x20, 0x74, 0xFF, 0x17, 0xB0, 0x76, 0x38, 0xCE, 0xA0, +0x76, 0xDE, 0xF9, 0xB0, 0x78, 0x18, 0xB0, 0xA0, 0x78, 0xBE, 0xDB, 0xB0, 0x79, 0xF8, 0x92, 0xA0, +0x7A, 0x9E, 0xBD, 0xB0, 0x7B, 0xD8, 0x74, 0xA0, 0x7C, 0x7E, 0x9F, 0xB0, 0x7D, 0xB8, 0x56, 0xA0, +0x7E, 0x5E, 0x81, 0xB0, 0x7F, 0x98, 0x38, 0xA0, 0x01, 0x02, 0x00, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x05, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x00, 0xFF, 0xFF, 0x81, +0x70, 0x01, 0x04, 0xFF, 0xFF, 0x81, 0x70, 0x01, 0x09, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x0E, 0xFF, +0xFF, 0x81, 0x70, 0x01, 0x13, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x18, 0xFF, 0xFF, 0x8F, 0x80, 0x01, +0x1C, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x21, 0x43, 0x41, 0x54, 0x00, 0x43, 0x41, 0x57, 0x54, 0x00, +0x43, 0x41, 0x50, 0x54, 0x00, 0x41, 0x48, 0x53, 0x54, 0x00, 0x41, 0x48, 0x44, 0x54, 0x00, 0x59, +0x53, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00, 0x41, 0x4B, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* US/Aleutian */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x23, 0xCB, 0x89, 0x44, 0xD0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x50, 0x40, 0xFA, 0xD2, 0x55, 0xB0, 0xFE, 0xB8, 0x71, 0x50, +0xFF, 0xA8, 0x54, 0x40, 0x00, 0x98, 0x53, 0x50, 0x01, 0x88, 0x36, 0x40, 0x02, 0x78, 0x35, 0x50, +0x03, 0x71, 0x52, 0xC0, 0x04, 0x61, 0x51, 0xD0, 0x05, 0x51, 0x34, 0xC0, 0x06, 0x41, 0x33, 0xD0, +0x07, 0x31, 0x16, 0xC0, 0x07, 0x8D, 0x6D, 0xD0, 0x09, 0x10, 0xF8, 0xC0, 0x09, 0xAD, 0xE9, 0x50, +0x0A, 0xF0, 0xDA, 0xC0, 0x0B, 0xE0, 0xD9, 0xD0, 0x0C, 0xD9, 0xF7, 0x40, 0x0D, 0xC0, 0xBB, 0xD0, +0x0E, 0xB9, 0xD9, 0x40, 0x0F, 0xA9, 0xD8, 0x50, 0x10, 0x99, 0xBB, 0x40, 0x11, 0x89, 0xBA, 0x50, +0x12, 0x79, 0x9D, 0x40, 0x13, 0x69, 0x9C, 0x50, 0x14, 0x59, 0x7F, 0x40, 0x15, 0x49, 0x7E, 0x50, +0x16, 0x39, 0x61, 0x40, 0x17, 0x29, 0x60, 0x50, 0x18, 0x22, 0x7D, 0xC0, 0x19, 0x09, 0x42, 0x50, +0x1A, 0x02, 0x5F, 0xC0, 0x1A, 0x2B, 0x22, 0x20, 0x1A, 0xF2, 0x50, 0xC0, 0x1B, 0xE2, 0x33, 0xB0, +0x1C, 0xD2, 0x32, 0xC0, 0x1D, 0xC2, 0x15, 0xB0, 0x1E, 0xB2, 0x14, 0xC0, 0x1F, 0xA1, 0xF7, 0xB0, +0x20, 0x76, 0x47, 0x40, 0x21, 0x81, 0xD9, 0xB0, 0x22, 0x56, 0x29, 0x40, 0x23, 0x6A, 0xF6, 0x30, +0x24, 0x36, 0x0B, 0x40, 0x25, 0x4A, 0xD8, 0x30, 0x26, 0x15, 0xED, 0x40, 0x27, 0x2A, 0xBA, 0x30, +0x27, 0xFF, 0x09, 0xC0, 0x29, 0x0A, 0x9C, 0x30, 0x29, 0xDE, 0xEB, 0xC0, 0x2A, 0xEA, 0x7E, 0x30, +0x2B, 0xBE, 0xCD, 0xC0, 0x2C, 0xD3, 0x9A, 0xB0, 0x2D, 0x9E, 0xAF, 0xC0, 0x2E, 0xB3, 0x7C, 0xB0, +0x2F, 0x7E, 0x91, 0xC0, 0x30, 0x93, 0x5E, 0xB0, 0x31, 0x67, 0xAE, 0x40, 0x32, 0x73, 0x40, 0xB0, +0x33, 0x47, 0x90, 0x40, 0x34, 0x53, 0x22, 0xB0, 0x35, 0x27, 0x72, 0x40, 0x36, 0x33, 0x04, 0xB0, +0x37, 0x07, 0x54, 0x40, 0x38, 0x1C, 0x21, 0x30, 0x38, 0xE7, 0x36, 0x40, 0x39, 0xFC, 0x03, 0x30, +0x3A, 0xC7, 0x18, 0x40, 0x3B, 0xDB, 0xE5, 0x30, 0x3C, 0xB0, 0x34, 0xC0, 0x3D, 0xBB, 0xC7, 0x30, +0x3E, 0x90, 0x16, 0xC0, 0x3F, 0x9B, 0xA9, 0x30, 0x40, 0x6F, 0xF8, 0xC0, 0x41, 0x84, 0xC5, 0xB0, +0x42, 0x4F, 0xDA, 0xC0, 0x43, 0x64, 0xA7, 0xB0, 0x44, 0x2F, 0xBC, 0xC0, 0x45, 0x44, 0x89, 0xB0, +0x45, 0xF3, 0xEF, 0x40, 0x47, 0x2D, 0xA6, 0x30, 0x47, 0xD3, 0xD1, 0x40, 0x49, 0x0D, 0x88, 0x30, +0x49, 0xB3, 0xB3, 0x40, 0x4A, 0xED, 0x6A, 0x30, 0x4B, 0x9C, 0xCF, 0xC0, 0x4C, 0xD6, 0x86, 0xB0, +0x4D, 0x7C, 0xB1, 0xC0, 0x4E, 0xB6, 0x68, 0xB0, 0x4F, 0x5C, 0x93, 0xC0, 0x50, 0x96, 0x4A, 0xB0, +0x51, 0x3C, 0x75, 0xC0, 0x52, 0x76, 0x2C, 0xB0, 0x53, 0x1C, 0x57, 0xC0, 0x54, 0x56, 0x0E, 0xB0, +0x54, 0xFC, 0x39, 0xC0, 0x56, 0x35, 0xF0, 0xB0, 0x56, 0xE5, 0x56, 0x40, 0x58, 0x1F, 0x0D, 0x30, +0x58, 0xC5, 0x38, 0x40, 0x59, 0xFE, 0xEF, 0x30, 0x5A, 0xA5, 0x1A, 0x40, 0x5B, 0xDE, 0xD1, 0x30, +0x5C, 0x84, 0xFC, 0x40, 0x5D, 0xBE, 0xB3, 0x30, 0x5E, 0x64, 0xDE, 0x40, 0x5F, 0x9E, 0x95, 0x30, +0x60, 0x4D, 0xFA, 0xC0, 0x61, 0x87, 0xB1, 0xB0, 0x62, 0x2D, 0xDC, 0xC0, 0x63, 0x67, 0x93, 0xB0, +0x64, 0x0D, 0xBE, 0xC0, 0x65, 0x47, 0x75, 0xB0, 0x65, 0xED, 0xA0, 0xC0, 0x67, 0x27, 0x57, 0xB0, +0x67, 0xCD, 0x82, 0xC0, 0x69, 0x07, 0x39, 0xB0, 0x69, 0xAD, 0x64, 0xC0, 0x6A, 0xE7, 0x1B, 0xB0, +0x6B, 0x96, 0x81, 0x40, 0x6C, 0xD0, 0x38, 0x30, 0x6D, 0x76, 0x63, 0x40, 0x6E, 0xB0, 0x1A, 0x30, +0x6F, 0x56, 0x45, 0x40, 0x70, 0x8F, 0xFC, 0x30, 0x71, 0x36, 0x27, 0x40, 0x72, 0x6F, 0xDE, 0x30, +0x73, 0x16, 0x09, 0x40, 0x74, 0x4F, 0xC0, 0x30, 0x74, 0xFF, 0x25, 0xC0, 0x76, 0x38, 0xDC, 0xB0, +0x76, 0xDF, 0x07, 0xC0, 0x78, 0x18, 0xBE, 0xB0, 0x78, 0xBE, 0xE9, 0xC0, 0x79, 0xF8, 0xA0, 0xB0, +0x7A, 0x9E, 0xCB, 0xC0, 0x7B, 0xD8, 0x82, 0xB0, 0x7C, 0x7E, 0xAD, 0xC0, 0x7D, 0xB8, 0x64, 0xB0, +0x7E, 0x5E, 0x8F, 0xC0, 0x7F, 0x98, 0x46, 0xB0, 0x01, 0x02, 0x00, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x05, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, +0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x00, 0xFF, 0xFF, 0x73, +0x60, 0x01, 0x04, 0xFF, 0xFF, 0x73, 0x60, 0x01, 0x08, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x0C, 0xFF, +0xFF, 0x73, 0x60, 0x01, 0x10, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x14, 0xFF, 0xFF, 0x81, 0x70, 0x01, +0x19, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x1E, 0x4E, 0x53, 0x54, 0x00, 0x4E, 0x57, 0x54, 0x00, 0x4E, +0x50, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x42, 0x44, 0x54, 0x00, 0x41, 0x48, 0x53, 0x54, 0x00, +0x48, 0x41, 0x44, 0x54, 0x00, 0x48, 0x41, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, +0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* US/Arizona */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x9E, 0xA6, 0x3A, 0x90, +0x9F, 0xBB, 0x07, 0x80, 0xA0, 0x86, 0x1C, 0x90, 0xA1, 0x9A, 0xE9, 0x80, 0xCB, 0x89, 0x0C, 0x90, +0xCF, 0x17, 0xDF, 0x1C, 0xCF, 0x8F, 0xE5, 0xAC, 0xD0, 0x81, 0x1A, 0x1C, 0xFA, 0xF8, 0x75, 0x10, +0xFB, 0xE8, 0x58, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x01, 0xFF, 0xFF, +0xAB, 0xA0, 0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, +0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* US/Central */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xA2, 0xCB, 0x74, 0x00, +0xA3, 0x83, 0xF7, 0xF0, 0xA4, 0x45, 0xD2, 0x80, 0xA5, 0x63, 0xD9, 0xF0, 0xA6, 0x53, 0xD9, 0x00, +0xA7, 0x15, 0x97, 0x70, 0xA8, 0x33, 0xBB, 0x00, 0xA8, 0xFE, 0xB3, 0xF0, 0xAA, 0x13, 0x9D, 0x00, +0xAA, 0xDE, 0x95, 0xF0, 0xAB, 0xF3, 0x7F, 0x00, 0xAC, 0xBE, 0x77, 0xF0, 0xAD, 0xD3, 0x61, 0x00, +0xAE, 0x9E, 0x59, 0xF0, 0xAF, 0xB3, 0x43, 0x00, 0xB0, 0x7E, 0x3B, 0xF0, 0xB1, 0x9C, 0x5F, 0x80, +0xB2, 0x67, 0x58, 0x70, 0xB3, 0x7C, 0x41, 0x80, 0xB4, 0x47, 0x3A, 0x70, 0xB5, 0x5C, 0x23, 0x80, +0xB6, 0x27, 0x1C, 0x70, 0xB7, 0x3C, 0x05, 0x80, 0xB8, 0x06, 0xFE, 0x70, 0xB9, 0x1B, 0xE7, 0x80, +0xB9, 0xE6, 0xE0, 0x70, 0xBB, 0x05, 0x04, 0x00, 0xBB, 0xC6, 0xC2, 0x70, 0xBC, 0xE4, 0xE6, 0x00, +0xBD, 0xAF, 0xDE, 0xF0, 0xBE, 0xC4, 0xC8, 0x00, 0xBF, 0x8F, 0xC0, 0xF0, 0xC0, 0x5A, 0xD6, 0x00, +0xC1, 0xB0, 0x3C, 0x70, 0xC2, 0x84, 0x8C, 0x00, 0xC3, 0x4F, 0x84, 0xF0, 0xC4, 0x64, 0x6E, 0x00, +0xC5, 0x2F, 0x66, 0xF0, 0xC6, 0x4D, 0x8A, 0x80, 0xC7, 0x0F, 0x48, 0xF0, 0xC8, 0x2D, 0x6C, 0x80, +0xC8, 0xF8, 0x65, 0x70, 0xCA, 0x0D, 0x4E, 0x80, 0xCA, 0xD8, 0x47, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD3, 0x75, 0xF3, 0x00, 0xD4, 0x40, 0xEB, 0xF0, +0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0, 0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, +0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0, 0xDA, 0xFE, 0xB5, 0x80, 0xDB, 0xC0, 0x73, 0xF0, +0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, 0xDE, 0xBE, 0x79, 0x80, 0xDF, 0x89, 0x72, 0x70, +0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, 0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, +0xE4, 0x5E, 0x1F, 0x80, 0xE5, 0x57, 0x3C, 0xF0, 0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x37, 0x1E, 0xF0, +0xE8, 0x27, 0x1E, 0x00, 0xE9, 0x17, 0x00, 0xF0, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0xF6, 0xE2, 0xF0, +0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xD6, 0xC4, 0xF0, 0xED, 0xC6, 0xC4, 0x00, 0xEE, 0xBF, 0xE1, 0x70, +0xEF, 0xAF, 0xE0, 0x80, 0xF0, 0x9F, 0xC3, 0x70, 0xF1, 0x8F, 0xC2, 0x80, 0xF2, 0x7F, 0xA5, 0x70, +0xF3, 0x6F, 0xA4, 0x80, 0xF4, 0x5F, 0x87, 0x70, 0xF5, 0x4F, 0x86, 0x80, 0xF6, 0x3F, 0x69, 0x70, +0xF7, 0x2F, 0x68, 0x80, 0xF8, 0x28, 0x85, 0xF0, 0xF9, 0x0F, 0x4A, 0x80, 0xFA, 0x08, 0x67, 0xF0, +0xFA, 0xF8, 0x67, 0x00, 0xFB, 0xE8, 0x49, 0xF0, 0xFC, 0xD8, 0x49, 0x00, 0xFD, 0xC8, 0x2B, 0xF0, +0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xA8, 0x0D, 0xF0, 0x00, 0x98, 0x0D, 0x00, 0x01, 0x87, 0xEF, 0xF0, +0x02, 0x77, 0xEF, 0x00, 0x03, 0x71, 0x0C, 0x70, 0x04, 0x61, 0x0B, 0x80, 0x05, 0x50, 0xEE, 0x70, +0x06, 0x40, 0xED, 0x80, 0x07, 0x30, 0xD0, 0x70, 0x07, 0x8D, 0x27, 0x80, 0x09, 0x10, 0xB2, 0x70, +0x09, 0xAD, 0xA3, 0x00, 0x0A, 0xF0, 0x94, 0x70, 0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xB0, 0xF0, +0x0D, 0xC0, 0x75, 0x80, 0x0E, 0xB9, 0x92, 0xF0, 0x0F, 0xA9, 0x92, 0x00, 0x10, 0x99, 0x74, 0xF0, +0x11, 0x89, 0x74, 0x00, 0x12, 0x79, 0x56, 0xF0, 0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, +0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x1A, 0xF0, 0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, +0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x19, 0x70, 0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, +0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xDD, 0x70, 0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, +0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70, 0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, +0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0, 0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, +0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0, 0x29, 0xDE, 0xB3, 0x80, 0x2A, 0xEA, 0x45, 0xF0, +0x2B, 0xBE, 0x95, 0x80, 0x2C, 0xD3, 0x62, 0x70, 0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x44, 0x70, +0x2F, 0x7E, 0x59, 0x80, 0x30, 0x93, 0x26, 0x70, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, +0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, +0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, +0x3A, 0xC6, 0xE0, 0x00, 0x3B, 0xDB, 0xAC, 0xF0, 0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, +0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x70, 0xF0, 0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, +0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, +0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, +0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, +0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, 0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, +0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, 0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, +0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, 0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, +0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, +0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, +0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, +0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, +0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, +0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, +0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, +0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, +0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, +0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, +0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x03, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, +0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, +0x10, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, +0x00, 0x43, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, +0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* US/Eastern */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xA6, 0x1E, 0x70, +0x9F, 0xBA, 0xEB, 0x60, 0xA0, 0x86, 0x00, 0x70, 0xA1, 0x9A, 0xCD, 0x60, 0xA2, 0x65, 0xE2, 0x70, +0xA3, 0x83, 0xE9, 0xE0, 0xA4, 0x6A, 0xAE, 0x70, 0xA5, 0x35, 0xA7, 0x60, 0xA6, 0x53, 0xCA, 0xF0, +0xA7, 0x15, 0x89, 0x60, 0xA8, 0x33, 0xAC, 0xF0, 0xA8, 0xFE, 0xA5, 0xE0, 0xAA, 0x13, 0x8E, 0xF0, +0xAA, 0xDE, 0x87, 0xE0, 0xAB, 0xF3, 0x70, 0xF0, 0xAC, 0xBE, 0x69, 0xE0, 0xAD, 0xD3, 0x52, 0xF0, +0xAE, 0x9E, 0x4B, 0xE0, 0xAF, 0xB3, 0x34, 0xF0, 0xB0, 0x7E, 0x2D, 0xE0, 0xB1, 0x9C, 0x51, 0x70, +0xB2, 0x67, 0x4A, 0x60, 0xB3, 0x7C, 0x33, 0x70, 0xB4, 0x47, 0x2C, 0x60, 0xB5, 0x5C, 0x15, 0x70, +0xB6, 0x27, 0x0E, 0x60, 0xB7, 0x3B, 0xF7, 0x70, 0xB8, 0x06, 0xF0, 0x60, 0xB9, 0x1B, 0xD9, 0x70, +0xB9, 0xE6, 0xD2, 0x60, 0xBB, 0x04, 0xF5, 0xF0, 0xBB, 0xC6, 0xB4, 0x60, 0xBC, 0xE4, 0xD7, 0xF0, +0xBD, 0xAF, 0xD0, 0xE0, 0xBE, 0xC4, 0xB9, 0xF0, 0xBF, 0x8F, 0xB2, 0xE0, 0xC0, 0xA4, 0x9B, 0xF0, +0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0, 0xC4, 0x64, 0x5F, 0xF0, +0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0, 0xC8, 0x2D, 0x5E, 0x70, +0xC8, 0xF8, 0x57, 0x60, 0xCA, 0x0D, 0x40, 0x70, 0xCA, 0xD8, 0x39, 0x60, 0xCB, 0x88, 0xF0, 0x70, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, 0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, +0xD5, 0x55, 0xC6, 0xF0, 0xD6, 0x20, 0xBF, 0xE0, 0xD7, 0x35, 0xA8, 0xF0, 0xD8, 0x00, 0xA1, 0xE0, +0xD9, 0x15, 0x8A, 0xF0, 0xD9, 0xE0, 0x83, 0xE0, 0xDA, 0xFE, 0xA7, 0x70, 0xDB, 0xC0, 0x65, 0xE0, +0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, 0xDF, 0x89, 0x64, 0x60, +0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, 0xE3, 0x49, 0x28, 0x60, +0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x57, 0x2E, 0xE0, 0xE6, 0x47, 0x2D, 0xF0, 0xE7, 0x37, 0x10, 0xE0, +0xE8, 0x27, 0x0F, 0xF0, 0xE9, 0x16, 0xF2, 0xE0, 0xEA, 0x06, 0xF1, 0xF0, 0xEA, 0xF6, 0xD4, 0xE0, +0xEB, 0xE6, 0xD3, 0xF0, 0xEC, 0xD6, 0xB6, 0xE0, 0xED, 0xC6, 0xB5, 0xF0, 0xEE, 0xBF, 0xD3, 0x60, +0xEF, 0xAF, 0xD2, 0x70, 0xF0, 0x9F, 0xB5, 0x60, 0xF1, 0x8F, 0xB4, 0x70, 0xF2, 0x7F, 0x97, 0x60, +0xF3, 0x6F, 0x96, 0x70, 0xF4, 0x5F, 0x79, 0x60, 0xF5, 0x4F, 0x78, 0x70, 0xF6, 0x3F, 0x5B, 0x60, +0xF7, 0x2F, 0x5A, 0x70, 0xF8, 0x28, 0x77, 0xE0, 0xF9, 0x0F, 0x3C, 0x70, 0xFA, 0x08, 0x59, 0xE0, +0xFA, 0xF8, 0x58, 0xF0, 0xFB, 0xE8, 0x3B, 0xE0, 0xFC, 0xD8, 0x3A, 0xF0, 0xFD, 0xC8, 0x1D, 0xE0, +0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, 0x01, 0x87, 0xE1, 0xE0, +0x02, 0x77, 0xE0, 0xF0, 0x03, 0x70, 0xFE, 0x60, 0x04, 0x60, 0xFD, 0x70, 0x05, 0x50, 0xE0, 0x60, +0x06, 0x40, 0xDF, 0x70, 0x07, 0x30, 0xC2, 0x60, 0x07, 0x8D, 0x19, 0x70, 0x09, 0x10, 0xA4, 0x60, +0x09, 0xAD, 0x94, 0xF0, 0x0A, 0xF0, 0x86, 0x60, 0x0B, 0xE0, 0x85, 0x70, 0x0C, 0xD9, 0xA2, 0xE0, +0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, 0x0F, 0xA9, 0x83, 0xF0, 0x10, 0x99, 0x66, 0xE0, +0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, 0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, +0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, 0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, +0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, 0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, +0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, 0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, +0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, 0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, +0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, 0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, +0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, 0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, +0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, 0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, +0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, +0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, +0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, 0x38, 0xE6, 0xEF, 0xF0, 0x39, 0xFB, 0xBC, 0xE0, +0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, +0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, +0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, +0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, +0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, +0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, +0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, +0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, +0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, +0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, +0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, +0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, +0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, +0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, +0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, +0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, +0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, +0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, +0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0xFF, +0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0x45, 0x44, 0x54, 0x00, 0x45, +0x53, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x45, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, +0x00, 0x00, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* US/East-Indiana */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCA, 0x57, 0x22, 0x80, +0xCA, 0xD8, 0x47, 0x70, 0xCB, 0x88, 0xFE, 0x80, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, +0xD3, 0x75, 0xF3, 0x00, 0xD4, 0x40, 0xEB, 0xF0, 0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0, +0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, 0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0, +0xDA, 0xFE, 0xB5, 0x80, 0xDB, 0xC0, 0x73, 0xF0, 0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, +0xDE, 0xBE, 0x79, 0x80, 0xDF, 0x89, 0x72, 0x70, 0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, +0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, 0xE4, 0x5E, 0x1F, 0x80, 0xE8, 0xF2, 0x16, 0xF0, +0xEA, 0x07, 0x00, 0x00, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, +0x01, 0x87, 0xE1, 0xE0, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, +0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, +0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, +0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, +0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, +0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, +0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, +0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, +0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, +0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, +0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, +0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, +0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, +0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, +0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, +0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, +0x7F, 0x98, 0x00, 0x60, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, +0x01, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, +0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, +0xB9, 0xB0, 0x00, 0x10, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x14, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, +0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x44, +0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x89, +0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* US/Hawaii */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0xBB, 0x05, 0x43, 0x48, +0xBB, 0x21, 0x71, 0x58, 0xCB, 0x89, 0x3D, 0xC8, 0xD2, 0x61, 0x49, 0x38, 0xD5, 0x8D, 0x73, 0x48, +0x01, 0x00, 0x01, 0x00, 0x02, 0xFF, 0xFF, 0x6C, 0x58, 0x00, 0x00, 0xFF, 0xFF, 0x7A, 0x68, 0x01, +0x04, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x00, 0x48, 0x53, 0x54, 0x00, 0x48, 0x44, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, +0x00, + +/* US/Indiana-Starke */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x9E, 0xA6, 0x2C, 0x80, +0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0, +0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, 0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0, +0xDA, 0xFE, 0xB5, 0x80, 0xDB, 0xC0, 0x73, 0xF0, 0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, +0xDE, 0xBE, 0x79, 0x80, 0xDF, 0x89, 0x72, 0x70, 0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, +0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70, 0xE4, 0x5E, 0x1F, 0x80, 0xE5, 0x57, 0x3C, 0xF0, +0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x37, 0x1E, 0xF0, 0xE8, 0x27, 0x1E, 0x00, 0xE8, 0xF2, 0x16, 0xF0, +0xEA, 0x07, 0x00, 0x00, 0xEA, 0xD1, 0xF8, 0xF0, 0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xD6, 0xC4, 0xF0, +0xED, 0xC6, 0xC4, 0x00, 0xEE, 0xBF, 0xE1, 0x70, 0xEF, 0xAF, 0xE0, 0x80, 0xF0, 0x9F, 0xC3, 0x70, +0xF1, 0x8F, 0xC2, 0x80, 0xF4, 0x5F, 0x87, 0x70, 0xFA, 0xF8, 0x67, 0x00, 0xFB, 0xE8, 0x49, 0xF0, +0xFC, 0xD8, 0x49, 0x00, 0xFD, 0xC8, 0x2B, 0xF0, 0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xA8, 0x0D, 0xF0, +0x00, 0x98, 0x0D, 0x00, 0x01, 0x87, 0xEF, 0xF0, 0x02, 0x77, 0xEF, 0x00, 0x03, 0x71, 0x0C, 0x70, +0x04, 0x61, 0x0B, 0x80, 0x05, 0x50, 0xEE, 0x70, 0x06, 0x40, 0xED, 0x80, 0x07, 0x30, 0xD0, 0x70, +0x07, 0x8D, 0x27, 0x80, 0x09, 0x10, 0xB2, 0x70, 0x09, 0xAD, 0xA3, 0x00, 0x0A, 0xF0, 0x94, 0x70, +0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xB0, 0xF0, 0x0D, 0xC0, 0x75, 0x80, 0x0E, 0xB9, 0x92, 0xF0, +0x0F, 0xA9, 0x92, 0x00, 0x10, 0x99, 0x74, 0xF0, 0x11, 0x89, 0x74, 0x00, 0x12, 0x79, 0x56, 0xF0, +0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, 0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x1A, 0xF0, +0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, 0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x19, 0x70, +0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, 0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xDD, 0x70, +0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, 0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70, +0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0, +0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0, +0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, +0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, +0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, +0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, +0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, +0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, +0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, +0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, +0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, +0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, +0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, +0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, +0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, +0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, +0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, +0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, +0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, +0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, +0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, +0x00, + +/* US/Michigan */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x85, 0xBD, 0x22, 0x5B, +0x99, 0x3C, 0x94, 0x00, 0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, +0xD7, 0x35, 0xA8, 0xF0, 0xD8, 0x00, 0xA1, 0xE0, 0xFB, 0x33, 0xAC, 0x70, 0xFB, 0xE8, 0x3B, 0xE0, +0x06, 0x40, 0xDF, 0x70, 0x07, 0x30, 0xC2, 0x60, 0x07, 0x8D, 0x19, 0x70, 0x09, 0x10, 0xA4, 0x60, +0x0A, 0x00, 0xA3, 0x70, 0x0A, 0xF0, 0x86, 0x60, 0x0B, 0xE0, 0x85, 0x70, 0x0C, 0xD9, 0xA2, 0xE0, +0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, 0x0F, 0xA9, 0x83, 0xF0, 0x10, 0x99, 0x66, 0xE0, +0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, 0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, +0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, 0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, +0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, 0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, +0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, 0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, +0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, 0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, +0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, 0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, +0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, 0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, +0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, 0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, +0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, +0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, +0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, 0x38, 0xE6, 0xEF, 0xF0, 0x39, 0xFB, 0xBC, 0xE0, +0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, +0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, +0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, +0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, +0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, +0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, +0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, +0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, +0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, +0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, +0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, +0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, +0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, +0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, +0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, +0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, +0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, +0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, +0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x01, 0x02, 0x03, 0x04, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, +0x02, 0x05, 0x02, 0xFF, 0xFF, 0xB2, 0x25, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, +0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, +0x10, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, +0x53, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x45, 0x50, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, +0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* US/Mountain */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xA6, 0x3A, 0x90, +0x9F, 0xBB, 0x07, 0x80, 0xA0, 0x86, 0x1C, 0x90, 0xA1, 0x9A, 0xE9, 0x80, 0xA2, 0x65, 0xFE, 0x90, +0xA3, 0x84, 0x06, 0x00, 0xA4, 0x45, 0xE0, 0x90, 0xA4, 0x8F, 0xA6, 0x80, 0xCB, 0x89, 0x0C, 0x90, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xF7, 0x2F, 0x76, 0x90, 0xF8, 0x28, 0x94, 0x00, +0xF9, 0x0F, 0x58, 0x90, 0xFA, 0x08, 0x76, 0x00, 0xFA, 0xF8, 0x75, 0x10, 0xFB, 0xE8, 0x58, 0x00, +0xFC, 0xD8, 0x57, 0x10, 0xFD, 0xC8, 0x3A, 0x00, 0xFE, 0xB8, 0x39, 0x10, 0xFF, 0xA8, 0x1C, 0x00, +0x00, 0x98, 0x1B, 0x10, 0x01, 0x87, 0xFE, 0x00, 0x02, 0x77, 0xFD, 0x10, 0x03, 0x71, 0x1A, 0x80, +0x04, 0x61, 0x19, 0x90, 0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90, 0x07, 0x30, 0xDE, 0x80, +0x07, 0x8D, 0x35, 0x90, 0x09, 0x10, 0xC0, 0x80, 0x09, 0xAD, 0xB1, 0x10, 0x0A, 0xF0, 0xA2, 0x80, +0x0B, 0xE0, 0xA1, 0x90, 0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x0E, 0xB9, 0xA1, 0x00, +0x0F, 0xA9, 0xA0, 0x10, 0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10, 0x12, 0x79, 0x65, 0x00, +0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, 0x16, 0x39, 0x29, 0x00, +0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, 0x1A, 0x02, 0x27, 0x80, +0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, 0x1D, 0xC1, 0xEB, 0x80, +0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, 0x21, 0x81, 0xAF, 0x80, +0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x25, 0x4A, 0xAE, 0x00, +0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x29, 0x0A, 0x72, 0x00, +0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x2C, 0xD3, 0x70, 0x80, +0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, 0x30, 0x93, 0x34, 0x80, +0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, +0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, +0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, +0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, +0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, +0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, 0x47, 0x2D, 0x7C, 0x00, +0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x4A, 0xED, 0x40, 0x00, +0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, 0x4E, 0xB6, 0x3E, 0x80, +0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, 0x52, 0x76, 0x02, 0x80, +0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, 0x56, 0x35, 0xC6, 0x80, +0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x59, 0xFE, 0xC5, 0x00, +0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x5D, 0xBE, 0x89, 0x00, +0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x61, 0x87, 0x87, 0x80, +0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80, +0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80, +0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00, +0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00, +0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00, +0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80, +0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80, +0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xAB, +0xA0, 0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, +0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, +0x00, 0x4D, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* US/Pacific */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xA6, 0x48, 0xA0, +0x9F, 0xBB, 0x15, 0x90, 0xA0, 0x86, 0x2A, 0xA0, 0xA1, 0x9A, 0xF7, 0x90, 0xCB, 0x89, 0x1A, 0xA0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x26, 0x10, 0xD6, 0xFE, 0x74, 0x20, 0xD8, 0x80, 0xAD, 0x90, +0xDA, 0xFE, 0xD1, 0xA0, 0xDB, 0xC0, 0x90, 0x10, 0xDC, 0xDE, 0xB3, 0xA0, 0xDD, 0xA9, 0xAC, 0x90, +0xDE, 0xBE, 0x95, 0xA0, 0xDF, 0x89, 0x8E, 0x90, 0xE0, 0x9E, 0x77, 0xA0, 0xE1, 0x69, 0x70, 0x90, +0xE2, 0x7E, 0x59, 0xA0, 0xE3, 0x49, 0x52, 0x90, 0xE4, 0x5E, 0x3B, 0xA0, 0xE5, 0x29, 0x34, 0x90, +0xE6, 0x47, 0x58, 0x20, 0xE7, 0x12, 0x51, 0x10, 0xE8, 0x27, 0x3A, 0x20, 0xE8, 0xF2, 0x33, 0x10, +0xEA, 0x07, 0x1C, 0x20, 0xEA, 0xD2, 0x15, 0x10, 0xEB, 0xE6, 0xFE, 0x20, 0xEC, 0xB1, 0xF7, 0x10, +0xED, 0xC6, 0xE0, 0x20, 0xEE, 0x91, 0xD9, 0x10, 0xEF, 0xAF, 0xFC, 0xA0, 0xF0, 0x71, 0xBB, 0x10, +0xF1, 0x8F, 0xDE, 0xA0, 0xF2, 0x7F, 0xC1, 0x90, 0xF3, 0x6F, 0xC0, 0xA0, 0xF4, 0x5F, 0xA3, 0x90, +0xF5, 0x4F, 0xA2, 0xA0, 0xF6, 0x3F, 0x85, 0x90, 0xF7, 0x2F, 0x84, 0xA0, 0xF8, 0x28, 0xA2, 0x10, +0xF9, 0x0F, 0x66, 0xA0, 0xFA, 0x08, 0x84, 0x10, 0xFA, 0xF8, 0x83, 0x20, 0xFB, 0xE8, 0x66, 0x10, +0xFC, 0xD8, 0x65, 0x20, 0xFD, 0xC8, 0x48, 0x10, 0xFE, 0xB8, 0x47, 0x20, 0xFF, 0xA8, 0x2A, 0x10, +0x00, 0x98, 0x29, 0x20, 0x01, 0x88, 0x0C, 0x10, 0x02, 0x78, 0x0B, 0x20, 0x03, 0x71, 0x28, 0x90, +0x04, 0x61, 0x27, 0xA0, 0x05, 0x51, 0x0A, 0x90, 0x06, 0x41, 0x09, 0xA0, 0x07, 0x30, 0xEC, 0x90, +0x07, 0x8D, 0x43, 0xA0, 0x09, 0x10, 0xCE, 0x90, 0x09, 0xAD, 0xBF, 0x20, 0x0A, 0xF0, 0xB0, 0x90, +0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, +0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x73, 0x10, +0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, +0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, +0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, 0x1D, 0xC1, 0xF9, 0x90, +0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20, 0x21, 0x81, 0xBD, 0x90, +0x22, 0x56, 0x0D, 0x20, 0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20, 0x25, 0x4A, 0xBC, 0x10, +0x26, 0x15, 0xD1, 0x20, 0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0, 0x29, 0x0A, 0x80, 0x10, +0x29, 0xDE, 0xCF, 0xA0, 0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0, 0x2C, 0xD3, 0x7E, 0x90, +0x2D, 0x9E, 0x93, 0xA0, 0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0, 0x30, 0x93, 0x42, 0x90, +0x31, 0x67, 0x92, 0x20, 0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20, 0x34, 0x53, 0x06, 0x90, +0x35, 0x27, 0x56, 0x20, 0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20, 0x38, 0x1C, 0x05, 0x10, +0x38, 0xE7, 0x1A, 0x20, 0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20, 0x3B, 0xDB, 0xC9, 0x10, +0x3C, 0xB0, 0x18, 0xA0, 0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0, 0x3F, 0x9B, 0x8D, 0x10, +0x40, 0x6F, 0xDC, 0xA0, 0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0, 0x43, 0x64, 0x8B, 0x90, +0x44, 0x2F, 0xA0, 0xA0, 0x45, 0x44, 0x6D, 0x90, 0x45, 0xF3, 0xD3, 0x20, 0x47, 0x2D, 0x8A, 0x10, +0x47, 0xD3, 0xB5, 0x20, 0x49, 0x0D, 0x6C, 0x10, 0x49, 0xB3, 0x97, 0x20, 0x4A, 0xED, 0x4E, 0x10, +0x4B, 0x9C, 0xB3, 0xA0, 0x4C, 0xD6, 0x6A, 0x90, 0x4D, 0x7C, 0x95, 0xA0, 0x4E, 0xB6, 0x4C, 0x90, +0x4F, 0x5C, 0x77, 0xA0, 0x50, 0x96, 0x2E, 0x90, 0x51, 0x3C, 0x59, 0xA0, 0x52, 0x76, 0x10, 0x90, +0x53, 0x1C, 0x3B, 0xA0, 0x54, 0x55, 0xF2, 0x90, 0x54, 0xFC, 0x1D, 0xA0, 0x56, 0x35, 0xD4, 0x90, +0x56, 0xE5, 0x3A, 0x20, 0x58, 0x1E, 0xF1, 0x10, 0x58, 0xC5, 0x1C, 0x20, 0x59, 0xFE, 0xD3, 0x10, +0x5A, 0xA4, 0xFE, 0x20, 0x5B, 0xDE, 0xB5, 0x10, 0x5C, 0x84, 0xE0, 0x20, 0x5D, 0xBE, 0x97, 0x10, +0x5E, 0x64, 0xC2, 0x20, 0x5F, 0x9E, 0x79, 0x10, 0x60, 0x4D, 0xDE, 0xA0, 0x61, 0x87, 0x95, 0x90, +0x62, 0x2D, 0xC0, 0xA0, 0x63, 0x67, 0x77, 0x90, 0x64, 0x0D, 0xA2, 0xA0, 0x65, 0x47, 0x59, 0x90, +0x65, 0xED, 0x84, 0xA0, 0x67, 0x27, 0x3B, 0x90, 0x67, 0xCD, 0x66, 0xA0, 0x69, 0x07, 0x1D, 0x90, +0x69, 0xAD, 0x48, 0xA0, 0x6A, 0xE6, 0xFF, 0x90, 0x6B, 0x96, 0x65, 0x20, 0x6C, 0xD0, 0x1C, 0x10, +0x6D, 0x76, 0x47, 0x20, 0x6E, 0xAF, 0xFE, 0x10, 0x6F, 0x56, 0x29, 0x20, 0x70, 0x8F, 0xE0, 0x10, +0x71, 0x36, 0x0B, 0x20, 0x72, 0x6F, 0xC2, 0x10, 0x73, 0x15, 0xED, 0x20, 0x74, 0x4F, 0xA4, 0x10, +0x74, 0xFF, 0x09, 0xA0, 0x76, 0x38, 0xC0, 0x90, 0x76, 0xDE, 0xEB, 0xA0, 0x78, 0x18, 0xA2, 0x90, +0x78, 0xBE, 0xCD, 0xA0, 0x79, 0xF8, 0x84, 0x90, 0x7A, 0x9E, 0xAF, 0xA0, 0x7B, 0xD8, 0x66, 0x90, +0x7C, 0x7E, 0x91, 0xA0, 0x7D, 0xB8, 0x48, 0x90, 0x7E, 0x5E, 0x73, 0xA0, 0x7F, 0x98, 0x2A, 0x90, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x00, 0xFF, +0xFF, 0x8F, 0x80, 0x00, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, +0x0C, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, +0x80, 0x00, 0x00, 0x00, 0x00, + +/* US/Pacific-New */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x9E, 0xA6, 0x48, 0xA0, +0x9F, 0xBB, 0x15, 0x90, 0xA0, 0x86, 0x2A, 0xA0, 0xA1, 0x9A, 0xF7, 0x90, 0xCB, 0x89, 0x1A, 0xA0, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x26, 0x10, 0xD6, 0xFE, 0x74, 0x20, 0xD8, 0x80, 0xAD, 0x90, +0xDA, 0xFE, 0xD1, 0xA0, 0xDB, 0xC0, 0x90, 0x10, 0xDC, 0xDE, 0xB3, 0xA0, 0xDD, 0xA9, 0xAC, 0x90, +0xDE, 0xBE, 0x95, 0xA0, 0xDF, 0x89, 0x8E, 0x90, 0xE0, 0x9E, 0x77, 0xA0, 0xE1, 0x69, 0x70, 0x90, +0xE2, 0x7E, 0x59, 0xA0, 0xE3, 0x49, 0x52, 0x90, 0xE4, 0x5E, 0x3B, 0xA0, 0xE5, 0x29, 0x34, 0x90, +0xE6, 0x47, 0x58, 0x20, 0xE7, 0x12, 0x51, 0x10, 0xE8, 0x27, 0x3A, 0x20, 0xE8, 0xF2, 0x33, 0x10, +0xEA, 0x07, 0x1C, 0x20, 0xEA, 0xD2, 0x15, 0x10, 0xEB, 0xE6, 0xFE, 0x20, 0xEC, 0xB1, 0xF7, 0x10, +0xED, 0xC6, 0xE0, 0x20, 0xEE, 0x91, 0xD9, 0x10, 0xEF, 0xAF, 0xFC, 0xA0, 0xF0, 0x71, 0xBB, 0x10, +0xF1, 0x8F, 0xDE, 0xA0, 0xF2, 0x7F, 0xC1, 0x90, 0xF3, 0x6F, 0xC0, 0xA0, 0xF4, 0x5F, 0xA3, 0x90, +0xF5, 0x4F, 0xA2, 0xA0, 0xF6, 0x3F, 0x85, 0x90, 0xF7, 0x2F, 0x84, 0xA0, 0xF8, 0x28, 0xA2, 0x10, +0xF9, 0x0F, 0x66, 0xA0, 0xFA, 0x08, 0x84, 0x10, 0xFA, 0xF8, 0x83, 0x20, 0xFB, 0xE8, 0x66, 0x10, +0xFC, 0xD8, 0x65, 0x20, 0xFD, 0xC8, 0x48, 0x10, 0xFE, 0xB8, 0x47, 0x20, 0xFF, 0xA8, 0x2A, 0x10, +0x00, 0x98, 0x29, 0x20, 0x01, 0x88, 0x0C, 0x10, 0x02, 0x78, 0x0B, 0x20, 0x03, 0x71, 0x28, 0x90, +0x04, 0x61, 0x27, 0xA0, 0x05, 0x51, 0x0A, 0x90, 0x06, 0x41, 0x09, 0xA0, 0x07, 0x30, 0xEC, 0x90, +0x07, 0x8D, 0x43, 0xA0, 0x09, 0x10, 0xCE, 0x90, 0x09, 0xAD, 0xBF, 0x20, 0x0A, 0xF0, 0xB0, 0x90, +0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, +0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x73, 0x10, +0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, +0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, +0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, 0x1D, 0xC1, 0xF9, 0x90, +0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20, 0x21, 0x81, 0xBD, 0x90, +0x22, 0x56, 0x0D, 0x20, 0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20, 0x25, 0x4A, 0xBC, 0x10, +0x26, 0x15, 0xD1, 0x20, 0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0, 0x29, 0x0A, 0x80, 0x10, +0x29, 0xDE, 0xCF, 0xA0, 0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0, 0x2C, 0xD3, 0x7E, 0x90, +0x2D, 0x9E, 0x93, 0xA0, 0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0, 0x30, 0x93, 0x42, 0x90, +0x31, 0x67, 0x92, 0x20, 0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20, 0x34, 0x53, 0x06, 0x90, +0x35, 0x27, 0x56, 0x20, 0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20, 0x38, 0x1C, 0x05, 0x10, +0x38, 0xE7, 0x1A, 0x20, 0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20, 0x3B, 0xDB, 0xC9, 0x10, +0x3C, 0xB0, 0x18, 0xA0, 0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0, 0x3F, 0x9B, 0x8D, 0x10, +0x40, 0x6F, 0xDC, 0xA0, 0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0, 0x43, 0x64, 0x8B, 0x90, +0x44, 0x2F, 0xA0, 0xA0, 0x45, 0x44, 0x6D, 0x90, 0x45, 0xF3, 0xD3, 0x20, 0x47, 0x2D, 0x8A, 0x10, +0x47, 0xD3, 0xB5, 0x20, 0x49, 0x0D, 0x6C, 0x10, 0x49, 0xB3, 0x97, 0x20, 0x4A, 0xED, 0x4E, 0x10, +0x4B, 0x9C, 0xB3, 0xA0, 0x4C, 0xD6, 0x6A, 0x90, 0x4D, 0x7C, 0x95, 0xA0, 0x4E, 0xB6, 0x4C, 0x90, +0x4F, 0x5C, 0x77, 0xA0, 0x50, 0x96, 0x2E, 0x90, 0x51, 0x3C, 0x59, 0xA0, 0x52, 0x76, 0x10, 0x90, +0x53, 0x1C, 0x3B, 0xA0, 0x54, 0x55, 0xF2, 0x90, 0x54, 0xFC, 0x1D, 0xA0, 0x56, 0x35, 0xD4, 0x90, +0x56, 0xE5, 0x3A, 0x20, 0x58, 0x1E, 0xF1, 0x10, 0x58, 0xC5, 0x1C, 0x20, 0x59, 0xFE, 0xD3, 0x10, +0x5A, 0xA4, 0xFE, 0x20, 0x5B, 0xDE, 0xB5, 0x10, 0x5C, 0x84, 0xE0, 0x20, 0x5D, 0xBE, 0x97, 0x10, +0x5E, 0x64, 0xC2, 0x20, 0x5F, 0x9E, 0x79, 0x10, 0x60, 0x4D, 0xDE, 0xA0, 0x61, 0x87, 0x95, 0x90, +0x62, 0x2D, 0xC0, 0xA0, 0x63, 0x67, 0x77, 0x90, 0x64, 0x0D, 0xA2, 0xA0, 0x65, 0x47, 0x59, 0x90, +0x65, 0xED, 0x84, 0xA0, 0x67, 0x27, 0x3B, 0x90, 0x67, 0xCD, 0x66, 0xA0, 0x69, 0x07, 0x1D, 0x90, +0x69, 0xAD, 0x48, 0xA0, 0x6A, 0xE6, 0xFF, 0x90, 0x6B, 0x96, 0x65, 0x20, 0x6C, 0xD0, 0x1C, 0x10, +0x6D, 0x76, 0x47, 0x20, 0x6E, 0xAF, 0xFE, 0x10, 0x6F, 0x56, 0x29, 0x20, 0x70, 0x8F, 0xE0, 0x10, +0x71, 0x36, 0x0B, 0x20, 0x72, 0x6F, 0xC2, 0x10, 0x73, 0x15, 0xED, 0x20, 0x74, 0x4F, 0xA4, 0x10, +0x74, 0xFF, 0x09, 0xA0, 0x76, 0x38, 0xC0, 0x90, 0x76, 0xDE, 0xEB, 0xA0, 0x78, 0x18, 0xA2, 0x90, +0x78, 0xBE, 0xCD, 0xA0, 0x79, 0xF8, 0x84, 0x90, 0x7A, 0x9E, 0xAF, 0xA0, 0x7B, 0xD8, 0x66, 0x90, +0x7C, 0x7E, 0x91, 0xA0, 0x7D, 0xB8, 0x48, 0x90, 0x7E, 0x5E, 0x73, 0xA0, 0x7F, 0x98, 0x2A, 0x90, +0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x00, 0xFF, +0xFF, 0x8F, 0x80, 0x00, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, +0x0C, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, +0x80, 0x00, 0x00, 0x00, 0x00, + +/* US/Samoa */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0x91, 0x05, 0xFB, 0x08, +0xDA, 0x62, 0x04, 0x38, 0xFA, 0xD2, 0x55, 0xB0, 0x1A, 0x2B, 0x30, 0x30, 0x01, 0x02, 0x03, 0x04, +0xFF, 0xFF, 0x5F, 0xF8, 0x00, 0x00, 0xFF, 0xFF, 0x5E, 0x48, 0x00, 0x04, 0xFF, 0xFF, 0x65, 0x50, +0x00, 0x09, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x0D, 0xFF, 0xFF, 0x65, 0x50, 0x00, 0x11, 0x4C, 0x4D, +0x54, 0x00, 0x53, 0x41, 0x4D, 0x54, 0x00, 0x4E, 0x53, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x53, +0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, +0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* UTC */ +0x50, 0x48, 0x50, 0x31, 0x01, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x55, 0x54, 0x43, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, + +/* WET */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x0D, 0xA4, 0x63, 0x90, +0x0E, 0x8B, 0x1A, 0x10, 0x0F, 0x84, 0x45, 0x90, 0x10, 0x74, 0x36, 0x90, 0x11, 0x64, 0x27, 0x90, +0x12, 0x54, 0x18, 0x90, 0x13, 0x4D, 0x44, 0x10, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, +0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, +0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, +0x1D, 0x9C, 0x9F, 0x10, 0x1E, 0x8C, 0x90, 0x10, 0x1F, 0x7C, 0x81, 0x10, 0x20, 0x6C, 0x72, 0x10, +0x21, 0x5C, 0x63, 0x10, 0x22, 0x4C, 0x54, 0x10, 0x23, 0x3C, 0x45, 0x10, 0x24, 0x2C, 0x36, 0x10, +0x25, 0x1C, 0x27, 0x10, 0x26, 0x0C, 0x18, 0x10, 0x27, 0x05, 0x43, 0x90, 0x27, 0xF5, 0x34, 0x90, +0x28, 0xE5, 0x25, 0x90, 0x29, 0xD5, 0x16, 0x90, 0x2A, 0xC5, 0x07, 0x90, 0x2B, 0xB4, 0xF8, 0x90, +0x2C, 0xA4, 0xE9, 0x90, 0x2D, 0x94, 0xDA, 0x90, 0x2E, 0x84, 0xCB, 0x90, 0x2F, 0x74, 0xBC, 0x90, +0x30, 0x64, 0xAD, 0x90, 0x31, 0x5D, 0xD9, 0x10, 0x32, 0x72, 0xB4, 0x10, 0x33, 0x3D, 0xBB, 0x10, +0x34, 0x52, 0x96, 0x10, 0x35, 0x1D, 0x9D, 0x10, 0x36, 0x32, 0x78, 0x10, 0x36, 0xFD, 0x7F, 0x10, +0x38, 0x1B, 0x94, 0x90, 0x38, 0xDD, 0x61, 0x10, 0x39, 0xFB, 0x76, 0x90, 0x3A, 0xBD, 0x43, 0x10, +0x3B, 0xDB, 0x58, 0x90, 0x3C, 0xA6, 0x5F, 0x90, 0x3D, 0xBB, 0x3A, 0x90, 0x3E, 0x86, 0x41, 0x90, +0x3F, 0x9B, 0x1C, 0x90, 0x40, 0x66, 0x23, 0x90, 0x41, 0x84, 0x39, 0x10, 0x42, 0x46, 0x05, 0x90, +0x43, 0x64, 0x1B, 0x10, 0x44, 0x25, 0xE7, 0x90, 0x45, 0x43, 0xFD, 0x10, 0x46, 0x05, 0xC9, 0x90, +0x47, 0x23, 0xDF, 0x10, 0x47, 0xEE, 0xE6, 0x10, 0x49, 0x03, 0xC1, 0x10, 0x49, 0xCE, 0xC8, 0x10, +0x4A, 0xE3, 0xA3, 0x10, 0x4B, 0xAE, 0xAA, 0x10, 0x4C, 0xCC, 0xBF, 0x90, 0x4D, 0x8E, 0x8C, 0x10, +0x4E, 0xAC, 0xA1, 0x90, 0x4F, 0x6E, 0x6E, 0x10, 0x50, 0x8C, 0x83, 0x90, 0x51, 0x57, 0x8A, 0x90, +0x52, 0x6C, 0x65, 0x90, 0x53, 0x37, 0x6C, 0x90, 0x54, 0x4C, 0x47, 0x90, 0x55, 0x17, 0x4E, 0x90, +0x56, 0x2C, 0x29, 0x90, 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, +0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, +0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, +0x61, 0x7D, 0xEA, 0x90, 0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, +0x65, 0x3D, 0xAE, 0x90, 0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, +0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, +0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, +0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, +0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, +0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, +0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, +0x7F, 0x8E, 0x7F, 0x90, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, +0x0E, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x57, 0x45, 0x53, 0x54, 0x00, 0x57, +0x45, 0x54, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, +0x00, 0x00, 0x00, + +/* W-SU */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x1E, 0x9B, 0x5F, 0x1E, 0xD8, +0x9D, 0x3E, 0xF2, 0x98, 0x9E, 0x2A, 0xEF, 0x18, 0x9E, 0xF7, 0x39, 0x88, 0x9F, 0x84, 0x58, 0x18, +0xA0, 0xD8, 0x6D, 0x08, 0xA1, 0x00, 0x16, 0x28, 0xA1, 0x3C, 0xA6, 0x40, 0xA4, 0x10, 0x6D, 0xC0, +0xA4, 0x3D, 0x32, 0xB0, 0xA5, 0x15, 0x68, 0xB0, 0xA5, 0x3D, 0x03, 0xC0, 0xA7, 0x1E, 0x45, 0x50, +0xB5, 0xA4, 0x19, 0x60, 0x15, 0x27, 0xA7, 0xD0, 0x16, 0x18, 0xDC, 0x40, 0x17, 0x08, 0xDB, 0x50, +0x17, 0xFA, 0x0F, 0xC0, 0x18, 0xEA, 0x0E, 0xD0, 0x19, 0xDB, 0x43, 0x40, 0x1A, 0xCC, 0x93, 0xD0, +0x1B, 0xBC, 0xA0, 0xF0, 0x1C, 0xAC, 0x91, 0xF0, 0x1D, 0x9C, 0x82, 0xF0, 0x1E, 0x8C, 0x73, 0xF0, +0x1F, 0x7C, 0x64, 0xF0, 0x20, 0x6C, 0x55, 0xF0, 0x21, 0x5C, 0x46, 0xF0, 0x22, 0x4C, 0x37, 0xF0, +0x23, 0x3C, 0x28, 0xF0, 0x24, 0x2C, 0x19, 0xF0, 0x25, 0x1C, 0x0A, 0xF0, 0x26, 0x0B, 0xFB, 0xF0, +0x27, 0x05, 0x27, 0x70, 0x27, 0xF5, 0x18, 0x70, 0x28, 0xE5, 0x17, 0x80, 0x29, 0x78, 0xBF, 0x80, +0x29, 0xD4, 0xD0, 0x40, 0x2A, 0xC4, 0xB3, 0x30, 0x2B, 0xB4, 0xDC, 0x70, 0x2C, 0xA4, 0xCD, 0x70, +0x2D, 0x94, 0xBE, 0x70, 0x2E, 0x84, 0xAF, 0x70, 0x2F, 0x74, 0xA0, 0x70, 0x30, 0x64, 0x91, 0x70, +0x31, 0x5D, 0xBC, 0xF0, 0x32, 0x72, 0x97, 0xF0, 0x33, 0x3D, 0x9E, 0xF0, 0x34, 0x52, 0x79, 0xF0, +0x35, 0x1D, 0x80, 0xF0, 0x36, 0x32, 0x5B, 0xF0, 0x36, 0xFD, 0x62, 0xF0, 0x38, 0x1B, 0x78, 0x70, +0x38, 0xDD, 0x44, 0xF0, 0x39, 0xFB, 0x5A, 0x70, 0x3A, 0xBD, 0x26, 0xF0, 0x3B, 0xDB, 0x3C, 0x70, +0x3C, 0xA6, 0x43, 0x70, 0x3D, 0xBB, 0x1E, 0x70, 0x3E, 0x86, 0x25, 0x70, 0x3F, 0x9B, 0x00, 0x70, +0x40, 0x66, 0x07, 0x70, 0x41, 0x84, 0x1C, 0xF0, 0x42, 0x45, 0xE9, 0x70, 0x43, 0x63, 0xFE, 0xF0, +0x44, 0x25, 0xCB, 0x70, 0x45, 0x43, 0xE0, 0xF0, 0x46, 0x05, 0xAD, 0x70, 0x47, 0x23, 0xC2, 0xF0, +0x47, 0xEE, 0xC9, 0xF0, 0x49, 0x03, 0xA4, 0xF0, 0x49, 0xCE, 0xAB, 0xF0, 0x4A, 0xE3, 0x86, 0xF0, +0x4B, 0xAE, 0x8D, 0xF0, 0x4C, 0xCC, 0xA3, 0x70, 0x4D, 0x8E, 0x6F, 0xF0, 0x02, 0x01, 0x02, 0x03, +0x01, 0x03, 0x05, 0x04, 0x05, 0x06, 0x05, 0x04, 0x07, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x0A, 0x0B, +0x08, 0x05, 0x04, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x09, +0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x0C, 0x00, 0x00, 0x23, 0x28, 0x00, 0x00, 0x00, 0x00, +0x31, 0x68, 0x01, 0x04, 0x00, 0x00, 0x23, 0x58, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x78, 0x01, 0x08, +0x00, 0x00, 0x2A, 0x30, 0x00, 0x0D, 0x00, 0x00, 0x38, 0x40, 0x01, 0x11, 0x00, 0x00, 0x46, 0x50, +0x01, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x15, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0D, 0x00, 0x00, +0x38, 0x40, 0x01, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x19, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x15, +0x00, 0x00, 0x38, 0x40, 0x00, 0x0D, 0x4D, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44, +0x53, 0x54, 0x00, 0x4D, 0x53, 0x4B, 0x00, 0x4D, 0x53, 0x44, 0x00, 0x45, 0x45, 0x54, 0x00, 0x45, +0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, +0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, + +/* Zulu */ +0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x55, 0x54, 0x43, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, +0x00, 0x00, 0x00, 0x00, }; + +const timelib_tzdb timezonedb_builtin = { "2012.10", 576, timezonedb_idx_builtin, timelib_timezone_db_data_builtin }; diff --git a/ext/date/lib/timezonemap.h b/ext/date/lib/timezonemap.h new file mode 100644 index 0000000..4601923 --- /dev/null +++ b/ext/date/lib/timezonemap.h @@ -0,0 +1,1980 @@ + { "acst", 1, -14400, "America/Porto_Acre" }, + { "acst", 1, -14400, "America/Eirunepe" }, + { "acst", 1, -14400, "America/Rio_Branco" }, + { "acst", 1, -14400, "Brazil/Acre" }, + { "act", 0, -18000, "America/Porto_Acre" }, + { "act", 0, -18000, "America/Eirunepe" }, + { "act", 0, -18000, "America/Rio_Branco" }, + { "act", 0, -18000, "Brazil/Acre" }, + { "addt", 1, -7200, "America/Goose_Bay" }, + { "addt", 1, -7200, "America/Pangnirtung" }, + { "admt", 0, 9320, "Africa/Addis_Ababa" }, + { "admt", 0, 9320, "Africa/Asmara" }, + { "admt", 0, 9320, "Africa/Asmera" }, + { "adt", 1, -10800, "America/Halifax" }, + { "adt", 1, -10800, "America/Barbados" }, + { "adt", 1, -10800, "America/Blanc-Sablon" }, + { "adt", 1, -10800, "America/Glace_Bay" }, + { "adt", 1, -10800, "America/Goose_Bay" }, + { "adt", 1, -10800, "America/Martinique" }, + { "adt", 1, -10800, "America/Moncton" }, + { "adt", 1, -10800, "America/Pangnirtung" }, + { "adt", 1, -10800, "America/Thule" }, + { "adt", 1, -10800, "Atlantic/Bermuda" }, + { "adt", 1, -10800, "Canada/Atlantic" }, + { "adt", 1, 14400, "Asia/Baghdad" }, + { "aft", 0, 14400, "Asia/Kabul" }, + { "aft", 0, 16200, "Asia/Kabul" }, + { "ahdt", 1, -32400, "America/Anchorage" }, + { "ahst", 0, -36000, "America/Anchorage" }, + { "ahst", 0, -36000, "America/Adak" }, + { "ahst", 0, -36000, "America/Atka" }, + { "akdt", 1, -28800, "America/Anchorage" }, + { "akdt", 1, -28800, "America/Juneau" }, + { "akdt", 1, -28800, "America/Nome" }, + { "akdt", 1, -28800, "America/Yakutat" }, + { "akst", 0, -32400, "America/Anchorage" }, + { "akst", 0, -32400, "America/Juneau" }, + { "akst", 0, -32400, "America/Nome" }, + { "akst", 0, -32400, "America/Yakutat" }, + { "aktst", 1, 21600, "Asia/Aqtobe" }, + { "aktt", 0, 14400, "Asia/Aqtobe" }, + { "aktt", 0, 18000, "Asia/Aqtobe" }, + { "aktt", 0, 21600, "Asia/Aqtobe" }, + { "almst", 1, 25200, "Asia/Almaty" }, + { "almt", 0, 18000, "Asia/Almaty" }, + { "almt", 0, 21600, "Asia/Almaty" }, + { "amst", 1, 14400, "Asia/Yerevan" }, + { "amst", 1, 18000, "Asia/Yerevan" }, + { "amst", 1, -10800, "America/Boa_Vista" }, + { "amst", 1, -10800, "America/Campo_Grande" }, + { "amst", 1, -10800, "America/Cuiaba" }, + { "amst", 1, -10800, "America/Manaus" }, + { "amst", 1, -10800, "America/Porto_Velho" }, + { "amst", 1, -10800, "America/Santarem" }, + { "amst", 1, -10800, "Brazil/West" }, + { "amt", 0, 10800, "Asia/Yerevan" }, + { "amt", 0, 14400, "Asia/Yerevan" }, + { "amt", 0, -13840, "America/Asuncion" }, + { "amt", 0, -14400, "America/Boa_Vista" }, + { "amt", 0, -14400, "America/Campo_Grande" }, + { "amt", 0, -14400, "America/Cuiaba" }, + { "amt", 0, -14400, "America/Eirunepe" }, + { "amt", 0, -14400, "America/Manaus" }, + { "amt", 0, -14400, "America/Porto_Acre" }, + { "amt", 0, -14400, "America/Porto_Velho" }, + { "amt", 0, -14400, "America/Rio_Branco" }, + { "amt", 0, -14400, "America/Santarem" }, + { "amt", 0, -14400, "Brazil/Acre" }, + { "amt", 0, -14400, "Brazil/West" }, + { "amt", 0, 1172, "Europe/Amsterdam" }, + { "amt", 0, 5692, "Europe/Athens" }, + { "anast", 1, 43200, "Asia/Anadyr" }, + { "anast", 1, 46800, "Asia/Anadyr" }, + { "anast", 1, 50400, "Asia/Anadyr" }, + { "anat", 0, 39600, "Asia/Anadyr" }, + { "anat", 0, 43200, "Asia/Anadyr" }, + { "anat", 0, 46800, "Asia/Anadyr" }, + { "ant", 0, -16200, "America/Curacao" }, + { "ant", 0, -16200, "America/Aruba" }, + { "aot", 0, 3124, "Africa/Luanda" }, + { "apt", 1, -10800, "America/Halifax" }, + { "apt", 1, -10800, "America/Blanc-Sablon" }, + { "apt", 1, -10800, "America/Glace_Bay" }, + { "apt", 1, -10800, "America/Moncton" }, + { "apt", 1, -10800, "America/Pangnirtung" }, + { "apt", 1, -10800, "America/Puerto_Rico" }, + { "apt", 1, -10800, "Canada/Atlantic" }, + { "aqtst", 1, 18000, "Asia/Aqtau" }, + { "aqtst", 1, 21600, "Asia/Aqtau" }, + { "aqtst", 1, 21600, "Asia/Aqtobe" }, + { "aqtt", 0, 14400, "Asia/Aqtau" }, + { "aqtt", 0, 18000, "Asia/Aqtau" }, + { "aqtt", 0, 18000, "Asia/Aqtobe" }, + { "arst", 1, -10800, "America/Buenos_Aires" }, + { "arst", 1, -7200, "America/Buenos_Aires" }, + { "arst", 1, -10800, "America/Argentina/Buenos_Aires" }, + { "arst", 1, -10800, "America/Argentina/Catamarca" }, + { "arst", 1, -10800, "America/Argentina/ComodRivadavia" }, + { "arst", 1, -10800, "America/Argentina/Cordoba" }, + { "arst", 1, -10800, "America/Argentina/Jujuy" }, + { "arst", 1, -10800, "America/Argentina/La_Rioja" }, + { "arst", 1, -10800, "America/Argentina/Mendoza" }, + { "arst", 1, -10800, "America/Argentina/Rio_Gallegos" }, + { "arst", 1, -10800, "America/Argentina/Salta" }, + { "arst", 1, -10800, "America/Argentina/San_Juan" }, + { "arst", 1, -10800, "America/Argentina/San_Luis" }, + { "arst", 1, -10800, "America/Argentina/Tucuman" }, + { "arst", 1, -10800, "America/Argentina/Ushuaia" }, + { "arst", 1, -10800, "America/Catamarca" }, + { "arst", 1, -10800, "America/Cordoba" }, + { "arst", 1, -10800, "America/Jujuy" }, + { "arst", 1, -10800, "America/Mendoza" }, + { "arst", 1, -10800, "America/Rosario" }, + { "arst", 1, -10800, "Antarctica/Palmer" }, + { "arst", 1, -7200, "America/Argentina/Buenos_Aires" }, + { "arst", 1, -7200, "America/Argentina/Catamarca" }, + { "arst", 1, -7200, "America/Argentina/ComodRivadavia" }, + { "arst", 1, -7200, "America/Argentina/Cordoba" }, + { "arst", 1, -7200, "America/Argentina/Jujuy" }, + { "arst", 1, -7200, "America/Argentina/La_Rioja" }, + { "arst", 1, -7200, "America/Argentina/Mendoza" }, + { "arst", 1, -7200, "America/Argentina/Rio_Gallegos" }, + { "arst", 1, -7200, "America/Argentina/Salta" }, + { "arst", 1, -7200, "America/Argentina/San_Juan" }, + { "arst", 1, -7200, "America/Argentina/San_Luis" }, + { "arst", 1, -7200, "America/Argentina/Tucuman" }, + { "arst", 1, -7200, "America/Argentina/Ushuaia" }, + { "arst", 1, -7200, "America/Catamarca" }, + { "arst", 1, -7200, "America/Cordoba" }, + { "arst", 1, -7200, "America/Jujuy" }, + { "arst", 1, -7200, "America/Mendoza" }, + { "arst", 1, -7200, "America/Rosario" }, + { "arst", 1, -7200, "Antarctica/Palmer" }, + { "art", 0, -10800, "America/Buenos_Aires" }, + { "art", 0, -14400, "America/Buenos_Aires" }, + { "art", 0, -10800, "America/Argentina/Buenos_Aires" }, + { "art", 0, -10800, "America/Argentina/Catamarca" }, + { "art", 0, -10800, "America/Argentina/ComodRivadavia" }, + { "art", 0, -10800, "America/Argentina/Cordoba" }, + { "art", 0, -10800, "America/Argentina/Jujuy" }, + { "art", 0, -10800, "America/Argentina/La_Rioja" }, + { "art", 0, -10800, "America/Argentina/Mendoza" }, + { "art", 0, -10800, "America/Argentina/Rio_Gallegos" }, + { "art", 0, -10800, "America/Argentina/Salta" }, + { "art", 0, -10800, "America/Argentina/San_Juan" }, + { "art", 0, -10800, "America/Argentina/San_Luis" }, + { "art", 0, -10800, "America/Argentina/Tucuman" }, + { "art", 0, -10800, "America/Argentina/Ushuaia" }, + { "art", 0, -10800, "America/Catamarca" }, + { "art", 0, -10800, "America/Cordoba" }, + { "art", 0, -10800, "America/Jujuy" }, + { "art", 0, -10800, "America/Mendoza" }, + { "art", 0, -10800, "America/Rosario" }, + { "art", 0, -10800, "Antarctica/Palmer" }, + { "art", 0, -14400, "America/Argentina/Buenos_Aires" }, + { "art", 0, -14400, "America/Argentina/Catamarca" }, + { "art", 0, -14400, "America/Argentina/ComodRivadavia" }, + { "art", 0, -14400, "America/Argentina/Cordoba" }, + { "art", 0, -14400, "America/Argentina/Jujuy" }, + { "art", 0, -14400, "America/Argentina/La_Rioja" }, + { "art", 0, -14400, "America/Argentina/Mendoza" }, + { "art", 0, -14400, "America/Argentina/Rio_Gallegos" }, + { "art", 0, -14400, "America/Argentina/Salta" }, + { "art", 0, -14400, "America/Argentina/San_Juan" }, + { "art", 0, -14400, "America/Argentina/San_Luis" }, + { "art", 0, -14400, "America/Argentina/Tucuman" }, + { "art", 0, -14400, "America/Argentina/Ushuaia" }, + { "art", 0, -14400, "America/Catamarca" }, + { "art", 0, -14400, "America/Cordoba" }, + { "art", 0, -14400, "America/Jujuy" }, + { "art", 0, -14400, "America/Mendoza" }, + { "art", 0, -14400, "America/Rosario" }, + { "art", 0, -14400, "Antarctica/Palmer" }, + { "ashst", 1, 18000, "Asia/Ashkhabad" }, + { "ashst", 1, 21600, "Asia/Ashkhabad" }, + { "ashst", 1, 18000, "Asia/Ashgabat" }, + { "ashst", 1, 21600, "Asia/Ashgabat" }, + { "asht", 0, 14400, "Asia/Ashkhabad" }, + { "asht", 0, 18000, "Asia/Ashkhabad" }, + { "asht", 0, 14400, "Asia/Ashgabat" }, + { "asht", 0, 18000, "Asia/Ashgabat" }, + { "ast", 0, 10800, "Asia/Riyadh" }, + { "ast", 0, -14400, "America/Anguilla" }, + { "ast", 0, -14400, "America/Antigua" }, + { "ast", 0, -14400, "America/Aruba" }, + { "ast", 0, -14400, "America/Barbados" }, + { "ast", 0, -14400, "America/Blanc-Sablon" }, + { "ast", 0, -14400, "America/Curacao" }, + { "ast", 0, -14400, "America/Dominica" }, + { "ast", 0, -14400, "America/Glace_Bay" }, + { "ast", 0, -14400, "America/Goose_Bay" }, + { "ast", 0, -14400, "America/Grenada" }, + { "ast", 0, -14400, "America/Guadeloupe" }, + { "ast", 0, -14400, "America/Halifax" }, + { "ast", 0, -14400, "America/Marigot" }, + { "ast", 0, -14400, "America/Martinique" }, + { "ast", 0, -14400, "America/Miquelon" }, + { "ast", 0, -14400, "America/Moncton" }, + { "ast", 0, -14400, "America/Montserrat" }, + { "ast", 0, -14400, "America/Pangnirtung" }, + { "ast", 0, -14400, "America/Port_of_Spain" }, + { "ast", 0, -14400, "America/Puerto_Rico" }, + { "ast", 0, -14400, "America/Santo_Domingo" }, + { "ast", 0, -14400, "America/St_Barthelemy" }, + { "ast", 0, -14400, "America/St_Kitts" }, + { "ast", 0, -14400, "America/St_Lucia" }, + { "ast", 0, -14400, "America/St_Thomas" }, + { "ast", 0, -14400, "America/St_Vincent" }, + { "ast", 0, -14400, "America/Thule" }, + { "ast", 0, -14400, "America/Tortola" }, + { "ast", 0, -14400, "America/Virgin" }, + { "ast", 0, -14400, "Atlantic/Bermuda" }, + { "ast", 0, -14400, "Canada/Atlantic" }, + { "ast", 0, 10800, "Asia/Aden" }, + { "ast", 0, 10800, "Asia/Baghdad" }, + { "ast", 0, 10800, "Asia/Bahrain" }, + { "ast", 0, 10800, "Asia/Kuwait" }, + { "ast", 0, 10800, "Asia/Qatar" }, + { "awt", 1, -10800, "America/Halifax" }, + { "awt", 1, -10800, "America/Blanc-Sablon" }, + { "awt", 1, -10800, "America/Glace_Bay" }, + { "awt", 1, -10800, "America/Moncton" }, + { "awt", 1, -10800, "America/Pangnirtung" }, + { "awt", 1, -10800, "America/Puerto_Rico" }, + { "awt", 1, -10800, "Canada/Atlantic" }, + { "azomt", 1, 0, "Atlantic/Azores" }, + { "azost", 1, -3600, "Atlantic/Azores" }, + { "azost", 1, 0, "Atlantic/Azores" }, + { "azot", 0, -3600, "Atlantic/Azores" }, + { "azot", 0, -7200, "Atlantic/Azores" }, + { "azst", 1, 14400, "Asia/Baku" }, + { "azst", 1, 18000, "Asia/Baku" }, + { "azt", 0, 10800, "Asia/Baku" }, + { "azt", 0, 14400, "Asia/Baku" }, + { "bakst", 1, 14400, "Asia/Baku" }, + { "bakst", 1, 18000, "Asia/Baku" }, + { "bakt", 0, 10800, "Asia/Baku" }, + { "bakt", 0, 14400, "Asia/Baku" }, + { "bdst", 1, 7200, "Europe/London" }, + { "bdst", 1, 25200, "Asia/Dacca" }, + { "bdst", 1, 25200, "Asia/Dhaka" }, + { "bdst", 1, 7200, "Europe/Belfast" }, + { "bdst", 1, 7200, "Europe/Gibraltar" }, + { "bdst", 1, 7200, "Europe/Guernsey" }, + { "bdst", 1, 7200, "Europe/Isle_of_Man" }, + { "bdst", 1, 7200, "Europe/Jersey" }, + { "bdst", 1, 7200, "GB" }, + { "bdt", 1, -36000, "America/Adak" }, + { "bdt", 1, -36000, "America/Atka" }, + { "bdt", 1, -36000, "America/Nome" }, + { "bdt", 0, 21600, "Asia/Dacca" }, + { "bdt", 0, 21600, "Asia/Dhaka" }, + { "beat", 0, 9000, "Africa/Mogadishu" }, + { "beat", 0, 9000, "Africa/Kampala" }, + { "beat", 0, 9000, "Africa/Nairobi" }, + { "beaut", 0, 9885, "Africa/Nairobi" }, + { "beaut", 0, 9885, "Africa/Dar_es_Salaam" }, + { "beaut", 0, 9885, "Africa/Kampala" }, + { "bmt", 0, -14308, "America/Barbados" }, + { "bmt", 0, -17780, "America/Bogota" }, + { "bmt", 0, -3996, "Africa/Banjul" }, + { "bmt", 0, 10656, "Asia/Baghdad" }, + { "bmt", 0, 24124, "Asia/Bangkok" }, + { "bmt", 0, 6264, "Europe/Tiraspol" }, + { "bmt", 0, 6264, "Europe/Bucharest" }, + { "bmt", 0, 6264, "Europe/Chisinau" }, + { "bnt", 0, 27000, "Asia/Brunei" }, + { "bnt", 0, 28800, "Asia/Brunei" }, + { "bortst", 1, 30000, "Asia/Kuching" }, + { "bort", 0, 27000, "Asia/Kuching" }, + { "bort", 0, 28800, "Asia/Kuching" }, + { "bost", 1, -12756, "America/La_Paz" }, + { "bot", 0, -14400, "America/La_Paz" }, + { "brst", 1, -7200, "America/Sao_Paulo" }, + { "brst", 1, -7200, "America/Araguaina" }, + { "brst", 1, -7200, "America/Bahia" }, + { "brst", 1, -7200, "America/Belem" }, + { "brst", 1, -7200, "America/Fortaleza" }, + { "brst", 1, -7200, "America/Maceio" }, + { "brst", 1, -7200, "America/Recife" }, + { "brst", 1, -7200, "Brazil/East" }, + { "brt", 0, -10800, "America/Sao_Paulo" }, + { "brt", 0, -10800, "America/Araguaina" }, + { "brt", 0, -10800, "America/Bahia" }, + { "brt", 0, -10800, "America/Belem" }, + { "brt", 0, -10800, "America/Fortaleza" }, + { "brt", 0, -10800, "America/Maceio" }, + { "brt", 0, -10800, "America/Recife" }, + { "brt", 0, -10800, "America/Santarem" }, + { "brt", 0, -10800, "Brazil/East" }, + { "bst", 0, 3600, "Europe/London" }, + { "bst", 1, 3600, "Europe/London" }, + { "bst", 0, -39600, "America/Adak" }, + { "bst", 0, -39600, "America/Atka" }, + { "bst", 0, -39600, "America/Nome" }, + { "bst", 0, -39600, "Pacific/Midway" }, + { "bst", 0, -39600, "Pacific/Pago_Pago" }, + { "bst", 0, -39600, "Pacific/Samoa" }, + { "bst", 0, 3600, "Europe/Belfast" }, + { "bst", 0, 3600, "Europe/Guernsey" }, + { "bst", 0, 3600, "Europe/Isle_of_Man" }, + { "bst", 0, 3600, "Europe/Jersey" }, + { "bst", 0, 3600, "GB" }, + { "bst", 1, 3600, "Europe/Belfast" }, + { "bst", 1, 3600, "Europe/Dublin" }, + { "bst", 1, 3600, "Europe/Gibraltar" }, + { "bst", 1, 3600, "Europe/Guernsey" }, + { "bst", 1, 3600, "Europe/Isle_of_Man" }, + { "bst", 1, 3600, "Europe/Jersey" }, + { "bst", 1, 3600, "GB" }, + { "btt", 0, 21600, "Asia/Thimbu" }, + { "btt", 0, 21600, "Asia/Thimphu" }, + { "burt", 0, 23400, "Asia/Kolkata" }, + { "burt", 0, 23400, "Asia/Calcutta" }, + { "burt", 0, 23400, "Asia/Dacca" }, + { "burt", 0, 23400, "Asia/Dhaka" }, + { "burt", 0, 23400, "Asia/Rangoon" }, + { "cant", 0, -3600, "Atlantic/Canary" }, + { "capt", 1, -32400, "America/Anchorage" }, + { "cast", 0, 34200, "Australia/Adelaide" }, + { "cast", 1, 10800, "Africa/Gaborone" }, + { "cast", 1, 10800, "Africa/Khartoum" }, + { "cast", 0, 39600, "Antarctica/Casey" }, + { "cat", 0, -36000, "America/Anchorage" }, + { "cat", 0, 7200, "Africa/Khartoum" }, + { "cat", 0, 7200, "Africa/Blantyre" }, + { "cat", 0, 7200, "Africa/Bujumbura" }, + { "cat", 0, 7200, "Africa/Gaborone" }, + { "cat", 0, 7200, "Africa/Harare" }, + { "cat", 0, 7200, "Africa/Kigali" }, + { "cat", 0, 7200, "Africa/Lubumbashi" }, + { "cat", 0, 7200, "Africa/Lusaka" }, + { "cat", 0, 7200, "Africa/Maputo" }, + { "cat", 0, 7200, "Africa/Windhoek" }, + { "cawt", 1, -32400, "America/Anchorage" }, + { "cct", 0, 23400, "Indian/Cocos" }, + { "cddt", 1, -14400, "America/Rankin_Inlet" }, + { "cddt", 1, -14400, "America/Resolute" }, + { "cdt", 1, -18000, "America/Chicago" }, + { "cdt", 1, -14400, "America/Havana" }, + { "cdt", 0, -18000, "America/Resolute" }, + { "cdt", 1, -18000, "America/Atikokan" }, + { "cdt", 1, -18000, "America/Bahia_Banderas" }, + { "cdt", 1, -18000, "America/Belize" }, + { "cdt", 1, -18000, "America/Cambridge_Bay" }, + { "cdt", 1, -18000, "America/Cancun" }, + { "cdt", 1, -18000, "America/Chihuahua" }, + { "cdt", 1, -18000, "America/Coral_Harbour" }, + { "cdt", 1, -18000, "America/Costa_Rica" }, + { "cdt", 1, -18000, "America/El_Salvador" }, + { "cdt", 1, -18000, "America/Fort_Wayne" }, + { "cdt", 1, -18000, "America/Guatemala" }, + { "cdt", 1, -18000, "America/Indiana/Indianapolis" }, + { "cdt", 1, -18000, "America/Indiana/Knox" }, + { "cdt", 1, -18000, "America/Indiana/Marengo" }, + { "cdt", 1, -18000, "America/Indiana/Petersburg" }, + { "cdt", 1, -18000, "America/Indiana/Tell_City" }, + { "cdt", 1, -18000, "America/Indiana/Vevay" }, + { "cdt", 1, -18000, "America/Indiana/Vincennes" }, + { "cdt", 1, -18000, "America/Indiana/Winamac" }, + { "cdt", 1, -18000, "America/Indianapolis" }, + { "cdt", 1, -18000, "America/Iqaluit" }, + { "cdt", 1, -18000, "America/Kentucky/Louisville" }, + { "cdt", 1, -18000, "America/Kentucky/Monticello" }, + { "cdt", 1, -18000, "America/Knox_IN" }, + { "cdt", 1, -18000, "America/Louisville" }, + { "cdt", 1, -18000, "America/Managua" }, + { "cdt", 1, -18000, "America/Matamoros" }, + { "cdt", 1, -18000, "America/Menominee" }, + { "cdt", 1, -18000, "America/Merida" }, + { "cdt", 1, -18000, "America/Mexico_City" }, + { "cdt", 1, -18000, "America/Monterrey" }, + { "cdt", 1, -18000, "America/North_Dakota/Center" }, + { "cdt", 1, -18000, "America/North_Dakota/New_Salem" }, + { "cdt", 1, -18000, "America/Ojinaga" }, + { "cdt", 1, -18000, "America/Pangnirtung" }, + { "cdt", 1, -18000, "America/Rainy_River" }, + { "cdt", 1, -18000, "America/Rankin_Inlet" }, + { "cdt", 1, -18000, "America/Resolute" }, + { "cdt", 1, -18000, "America/Tegucigalpa" }, + { "cdt", 1, -18000, "America/Winnipeg" }, + { "cdt", 1, -18000, "Canada/Central" }, + { "cdt", 1, -18000, "Mexico/General" }, + { "cdt", 1, 32400, "Asia/Shanghai" }, + { "cdt", 1, 32400, "Asia/Chongqing" }, + { "cdt", 1, 32400, "Asia/Chungking" }, + { "cdt", 1, 32400, "Asia/Harbin" }, + { "cdt", 1, 32400, "Asia/Kashgar" }, + { "cdt", 1, 32400, "Asia/Taipei" }, + { "cdt", 1, 32400, "Asia/Urumqi" }, + { "cdt", 1, 32400, "PRC" }, + { "cdt", 1, 32400, "ROC" }, + { "cemt", 1, 10800, "Europe/Berlin" }, + { "cemt", 1, 10800, "CET" }, + { "cest", 1, 7200, "Europe/Berlin" }, + { "cest", 1, 10800, "Europe/Kaliningrad" }, + { "cest", 1, 7200, "Africa/Algiers" }, + { "cest", 1, 7200, "Africa/Ceuta" }, + { "cest", 1, 7200, "Africa/Tripoli" }, + { "cest", 1, 7200, "Africa/Tunis" }, + { "cest", 1, 7200, "Arctic/Longyearbyen" }, + { "cest", 1, 7200, "Atlantic/Jan_Mayen" }, + { "cest", 1, 7200, "CET" }, + { "cest", 1, 7200, "Europe/Amsterdam" }, + { "cest", 1, 7200, "Europe/Andorra" }, + { "cest", 1, 7200, "Europe/Athens" }, + { "cest", 1, 7200, "Europe/Belgrade" }, + { "cest", 1, 7200, "Europe/Bratislava" }, + { "cest", 1, 7200, "Europe/Brussels" }, + { "cest", 1, 7200, "Europe/Budapest" }, + { "cest", 1, 7200, "Europe/Chisinau" }, + { "cest", 1, 7200, "Europe/Copenhagen" }, + { "cest", 1, 7200, "Europe/Gibraltar" }, + { "cest", 1, 7200, "Europe/Kaliningrad" }, + { "cest", 1, 7200, "Europe/Kiev" }, + { "cest", 1, 7200, "Europe/Lisbon" }, + { "cest", 1, 7200, "Europe/Ljubljana" }, + { "cest", 1, 7200, "Europe/Luxembourg" }, + { "cest", 1, 7200, "Europe/Madrid" }, + { "cest", 1, 7200, "Europe/Malta" }, + { "cest", 1, 7200, "Europe/Minsk" }, + { "cest", 1, 7200, "Europe/Monaco" }, + { "cest", 1, 7200, "Europe/Oslo" }, + { "cest", 1, 7200, "Europe/Paris" }, + { "cest", 1, 7200, "Europe/Podgorica" }, + { "cest", 1, 7200, "Europe/Prague" }, + { "cest", 1, 7200, "Europe/Riga" }, + { "cest", 1, 7200, "Europe/Rome" }, + { "cest", 1, 7200, "Europe/San_Marino" }, + { "cest", 1, 7200, "Europe/Sarajevo" }, + { "cest", 1, 7200, "Europe/Simferopol" }, + { "cest", 1, 7200, "Europe/Skopje" }, + { "cest", 1, 7200, "Europe/Sofia" }, + { "cest", 1, 7200, "Europe/Stockholm" }, + { "cest", 1, 7200, "Europe/Tallinn" }, + { "cest", 1, 7200, "Europe/Tirane" }, + { "cest", 1, 7200, "Europe/Tiraspol" }, + { "cest", 1, 7200, "Europe/Uzhgorod" }, + { "cest", 1, 7200, "Europe/Vaduz" }, + { "cest", 1, 7200, "Europe/Vatican" }, + { "cest", 1, 7200, "Europe/Vienna" }, + { "cest", 1, 7200, "Europe/Vilnius" }, + { "cest", 1, 7200, "Europe/Warsaw" }, + { "cest", 1, 7200, "Europe/Zagreb" }, + { "cest", 1, 7200, "Europe/Zaporozhye" }, + { "cest", 1, 7200, "Europe/Zurich" }, + { "cest", 1, 7200, "WET" }, + { "cet", 0, 3600, "Europe/Berlin" }, + { "cet", 0, 3600, "Africa/Algiers" }, + { "cet", 0, 3600, "Africa/Casablanca" }, + { "cet", 0, 3600, "Africa/Ceuta" }, + { "cet", 0, 3600, "Africa/Tripoli" }, + { "cet", 0, 3600, "Africa/Tunis" }, + { "cet", 0, 3600, "Arctic/Longyearbyen" }, + { "cet", 0, 3600, "Atlantic/Jan_Mayen" }, + { "cet", 0, 3600, "CET" }, + { "cet", 0, 3600, "Europe/Amsterdam" }, + { "cet", 0, 3600, "Europe/Andorra" }, + { "cet", 0, 3600, "Europe/Athens" }, + { "cet", 0, 3600, "Europe/Belgrade" }, + { "cet", 0, 3600, "Europe/Bratislava" }, + { "cet", 0, 3600, "Europe/Brussels" }, + { "cet", 0, 3600, "Europe/Budapest" }, + { "cet", 0, 3600, "Europe/Chisinau" }, + { "cet", 0, 3600, "Europe/Copenhagen" }, + { "cet", 0, 3600, "Europe/Gibraltar" }, + { "cet", 0, 3600, "Europe/Kaliningrad" }, + { "cet", 0, 3600, "Europe/Kiev" }, + { "cet", 0, 3600, "Europe/Lisbon" }, + { "cet", 0, 3600, "Europe/Ljubljana" }, + { "cet", 0, 3600, "Europe/Luxembourg" }, + { "cet", 0, 3600, "Europe/Madrid" }, + { "cet", 0, 3600, "Europe/Malta" }, + { "cet", 0, 3600, "Europe/Minsk" }, + { "cet", 0, 3600, "Europe/Monaco" }, + { "cet", 0, 3600, "Europe/Oslo" }, + { "cet", 0, 3600, "Europe/Paris" }, + { "cet", 0, 3600, "Europe/Podgorica" }, + { "cet", 0, 3600, "Europe/Prague" }, + { "cet", 0, 3600, "Europe/Riga" }, + { "cet", 0, 3600, "Europe/Rome" }, + { "cet", 0, 3600, "Europe/San_Marino" }, + { "cet", 0, 3600, "Europe/Sarajevo" }, + { "cet", 0, 3600, "Europe/Simferopol" }, + { "cet", 0, 3600, "Europe/Skopje" }, + { "cet", 0, 3600, "Europe/Sofia" }, + { "cet", 0, 3600, "Europe/Stockholm" }, + { "cet", 0, 3600, "Europe/Tallinn" }, + { "cet", 0, 3600, "Europe/Tirane" }, + { "cet", 0, 3600, "Europe/Tiraspol" }, + { "cet", 0, 3600, "Europe/Uzhgorod" }, + { "cet", 0, 3600, "Europe/Vaduz" }, + { "cet", 0, 3600, "Europe/Vatican" }, + { "cet", 0, 3600, "Europe/Vienna" }, + { "cet", 0, 3600, "Europe/Vilnius" }, + { "cet", 0, 3600, "Europe/Warsaw" }, + { "cet", 0, 3600, "Europe/Zagreb" }, + { "cet", 0, 3600, "Europe/Zaporozhye" }, + { "cet", 0, 3600, "Europe/Zurich" }, + { "cet", 0, 3600, "WET" }, + { "cet", 0, 7200, "Europe/Kaliningrad" }, + { "cgst", 1, -3600, "America/Scoresbysund" }, + { "cgt", 0, -7200, "America/Scoresbysund" }, + { "chadt", 1, 49500, "Pacific/Chatham" }, + { "chast", 0, 45900, "Pacific/Chatham" }, + { "chat", 0, 30600, "Asia/Harbin" }, + { "chat", 0, 32400, "Asia/Harbin" }, + { "chdt", 1, -19800, "America/Belize" }, + { "chost", 1, 36000, "Asia/Choibalsan" }, + { "chot", 0, 28800, "Asia/Choibalsan" }, + { "chot", 0, 32400, "Asia/Choibalsan" }, + { "chut", 0, 36000, "Pacific/Chuuk" }, + { "chut", 0, 36000, "Pacific/Truk" }, + { "chut", 0, 36000, "Pacific/Yap" }, + { "cit", 0, 28800, "Asia/Dili" }, + { "cit", 0, 28800, "Asia/Makassar" }, + { "cit", 0, 28800, "Asia/Pontianak" }, + { "cit", 0, 28800, "Asia/Ujung_Pandang" }, + { "cjt", 0, 32400, "Asia/Sakhalin" }, + { "cjt", 0, 32400, "Asia/Tokyo" }, + { "ckhst", 1, -34200, "Pacific/Rarotonga" }, + { "ckt", 0, -36000, "Pacific/Rarotonga" }, + { "ckt", 0, -37800, "Pacific/Rarotonga" }, + { "clst", 1, -10800, "America/Santiago" }, + { "clst", 1, -14400, "America/Santiago" }, + { "clst", 1, -10800, "Antarctica/Palmer" }, + { "clst", 1, -10800, "Chile/Continental" }, + { "clst", 1, -14400, "Chile/Continental" }, + { "clt", 0, -14400, "America/Santiago" }, + { "clt", 0, -18000, "America/Santiago" }, + { "clt", 0, -14400, "Antarctica/Palmer" }, + { "clt", 0, -14400, "Chile/Continental" }, + { "clt", 0, -18000, "Chile/Continental" }, + { "cmt", 0, -14640, "America/St_Lucia" }, + { "cmt", 0, -15408, "America/Argentina/Buenos_Aires" }, + { "cmt", 0, -15408, "America/Argentina/Catamarca" }, + { "cmt", 0, -15408, "America/Argentina/ComodRivadavia" }, + { "cmt", 0, -15408, "America/Argentina/Cordoba" }, + { "cmt", 0, -15408, "America/Argentina/Jujuy" }, + { "cmt", 0, -15408, "America/Argentina/La_Rioja" }, + { "cmt", 0, -15408, "America/Argentina/Mendoza" }, + { "cmt", 0, -15408, "America/Argentina/Rio_Gallegos" }, + { "cmt", 0, -15408, "America/Argentina/Salta" }, + { "cmt", 0, -15408, "America/Argentina/San_Juan" }, + { "cmt", 0, -15408, "America/Argentina/San_Luis" }, + { "cmt", 0, -15408, "America/Argentina/Tucuman" }, + { "cmt", 0, -15408, "America/Argentina/Ushuaia" }, + { "cmt", 0, -15408, "America/Buenos_Aires" }, + { "cmt", 0, -15408, "America/Catamarca" }, + { "cmt", 0, -15408, "America/Cordoba" }, + { "cmt", 0, -15408, "America/Jujuy" }, + { "cmt", 0, -15408, "America/Mendoza" }, + { "cmt", 0, -15408, "America/Rosario" }, + { "cmt", 0, -16060, "America/Caracas" }, + { "cmt", 0, -16356, "America/La_Paz" }, + { "cmt", 0, -19176, "America/Panama" }, + { "cmt", 0, 6900, "Europe/Chisinau" }, + { "cmt", 0, 6900, "Europe/Tiraspol" }, + { "cost", 1, -14400, "America/Bogota" }, + { "cot", 0, -18000, "America/Bogota" }, + { "cpt", 1, -18000, "America/Chicago" }, + { "cpt", 1, -18000, "America/Atikokan" }, + { "cpt", 1, -18000, "America/Coral_Harbour" }, + { "cpt", 1, -18000, "America/Fort_Wayne" }, + { "cpt", 1, -18000, "America/Indiana/Indianapolis" }, + { "cpt", 1, -18000, "America/Indiana/Knox" }, + { "cpt", 1, -18000, "America/Indiana/Marengo" }, + { "cpt", 1, -18000, "America/Indiana/Petersburg" }, + { "cpt", 1, -18000, "America/Indiana/Tell_City" }, + { "cpt", 1, -18000, "America/Indiana/Vevay" }, + { "cpt", 1, -18000, "America/Indiana/Vincennes" }, + { "cpt", 1, -18000, "America/Indiana/Winamac" }, + { "cpt", 1, -18000, "America/Indianapolis" }, + { "cpt", 1, -18000, "America/Kentucky/Louisville" }, + { "cpt", 1, -18000, "America/Kentucky/Monticello" }, + { "cpt", 1, -18000, "America/Knox_IN" }, + { "cpt", 1, -18000, "America/Louisville" }, + { "cpt", 1, -18000, "America/Menominee" }, + { "cpt", 1, -18000, "America/Rainy_River" }, + { "cpt", 1, -18000, "America/Winnipeg" }, + { "cpt", 1, -18000, "Canada/Central" }, + { "cst", 0, -21600, "America/Chicago" }, + { "cst", 0, -18000, "America/Havana" }, + { "cst", 0, -21600, "America/Atikokan" }, + { "cst", 0, -21600, "America/Bahia_Banderas" }, + { "cst", 0, -21600, "America/Belize" }, + { "cst", 0, -21600, "America/Cambridge_Bay" }, + { "cst", 0, -21600, "America/Cancun" }, + { "cst", 0, -21600, "America/Chihuahua" }, + { "cst", 0, -21600, "America/Coral_Harbour" }, + { "cst", 0, -21600, "America/Costa_Rica" }, + { "cst", 0, -21600, "America/Detroit" }, + { "cst", 0, -21600, "America/El_Salvador" }, + { "cst", 0, -21600, "America/Fort_Wayne" }, + { "cst", 0, -21600, "America/Guatemala" }, + { "cst", 0, -21600, "America/Hermosillo" }, + { "cst", 0, -21600, "America/Indiana/Indianapolis" }, + { "cst", 0, -21600, "America/Indiana/Knox" }, + { "cst", 0, -21600, "America/Indiana/Marengo" }, + { "cst", 0, -21600, "America/Indiana/Petersburg" }, + { "cst", 0, -21600, "America/Indiana/Tell_City" }, + { "cst", 0, -21600, "America/Indiana/Vevay" }, + { "cst", 0, -21600, "America/Indiana/Vincennes" }, + { "cst", 0, -21600, "America/Indiana/Winamac" }, + { "cst", 0, -21600, "America/Indianapolis" }, + { "cst", 0, -21600, "America/Iqaluit" }, + { "cst", 0, -21600, "America/Kentucky/Louisville" }, + { "cst", 0, -21600, "America/Kentucky/Monticello" }, + { "cst", 0, -21600, "America/Knox_IN" }, + { "cst", 0, -21600, "America/Louisville" }, + { "cst", 0, -21600, "America/Managua" }, + { "cst", 0, -21600, "America/Matamoros" }, + { "cst", 0, -21600, "America/Mazatlan" }, + { "cst", 0, -21600, "America/Menominee" }, + { "cst", 0, -21600, "America/Merida" }, + { "cst", 0, -21600, "America/Mexico_City" }, + { "cst", 0, -21600, "America/Monterrey" }, + { "cst", 0, -21600, "America/North_Dakota/Center" }, + { "cst", 0, -21600, "America/North_Dakota/New_Salem" }, + { "cst", 0, -21600, "America/Ojinaga" }, + { "cst", 0, -21600, "America/Pangnirtung" }, + { "cst", 0, -21600, "America/Rainy_River" }, + { "cst", 0, -21600, "America/Rankin_Inlet" }, + { "cst", 0, -21600, "America/Regina" }, + { "cst", 0, -21600, "America/Resolute" }, + { "cst", 0, -21600, "America/Swift_Current" }, + { "cst", 0, -21600, "America/Tegucigalpa" }, + { "cst", 0, -21600, "America/Thunder_Bay" }, + { "cst", 0, -21600, "America/Winnipeg" }, + { "cst", 0, -21600, "Canada/Central" }, + { "cst", 0, -21600, "Canada/East-Saskatchewan" }, + { "cst", 0, -21600, "Canada/Saskatchewan" }, + { "cst", 0, -21600, "Mexico/BajaSur" }, + { "cst", 0, -21600, "Mexico/General" }, + { "cst", 0, 28800, "Asia/Chongqing" }, + { "cst", 0, 28800, "Asia/Chungking" }, + { "cst", 0, 28800, "Asia/Harbin" }, + { "cst", 0, 28800, "Asia/Kashgar" }, + { "cst", 0, 28800, "Asia/Macao" }, + { "cst", 0, 28800, "Asia/Macau" }, + { "cst", 0, 28800, "Asia/Shanghai" }, + { "cst", 0, 28800, "Asia/Taipei" }, + { "cst", 0, 28800, "Asia/Urumqi" }, + { "cst", 0, 28800, "PRC" }, + { "cst", 0, 28800, "ROC" }, + { "cst", 0, 34200, "Asia/Jayapura" }, + { "cst", 0, 34200, "Australia/Adelaide" }, + { "cst", 0, 34200, "Australia/Broken_Hill" }, + { "cst", 0, 34200, "Australia/Darwin" }, + { "cst", 0, 34200, "Australia/North" }, + { "cst", 0, 34200, "Australia/South" }, + { "cst", 0, 34200, "Australia/Yancowinna" }, + { "cst", 1, 37800, "Australia/Adelaide" }, + { "cst", 1, 37800, "Australia/Broken_Hill" }, + { "cst", 1, 37800, "Australia/Darwin" }, + { "cst", 1, 37800, "Australia/North" }, + { "cst", 1, 37800, "Australia/South" }, + { "cst", 1, 37800, "Australia/Yancowinna" }, + { "cut", 0, 8400, "Europe/Zaporozhye" }, + { "cvst", 1, -3600, "Atlantic/Cape_Verde" }, + { "cvt", 0, -3600, "Atlantic/Cape_Verde" }, + { "cvt", 0, -7200, "Atlantic/Cape_Verde" }, + { "cwst", 0, 31500, "Australia/Eucla" }, + { "cwst", 1, 35100, "Australia/Eucla" }, + { "cwt", 1, -18000, "America/Chicago" }, + { "cwt", 1, -18000, "America/Atikokan" }, + { "cwt", 1, -18000, "America/Coral_Harbour" }, + { "cwt", 1, -18000, "America/Fort_Wayne" }, + { "cwt", 1, -18000, "America/Indiana/Indianapolis" }, + { "cwt", 1, -18000, "America/Indiana/Knox" }, + { "cwt", 1, -18000, "America/Indiana/Marengo" }, + { "cwt", 1, -18000, "America/Indiana/Petersburg" }, + { "cwt", 1, -18000, "America/Indiana/Tell_City" }, + { "cwt", 1, -18000, "America/Indiana/Vevay" }, + { "cwt", 1, -18000, "America/Indiana/Vincennes" }, + { "cwt", 1, -18000, "America/Indiana/Winamac" }, + { "cwt", 1, -18000, "America/Indianapolis" }, + { "cwt", 1, -18000, "America/Kentucky/Louisville" }, + { "cwt", 1, -18000, "America/Kentucky/Monticello" }, + { "cwt", 1, -18000, "America/Knox_IN" }, + { "cwt", 1, -18000, "America/Louisville" }, + { "cwt", 1, -18000, "America/Menominee" }, + { "cwt", 1, -18000, "America/Mexico_City" }, + { "cwt", 1, -18000, "America/Rainy_River" }, + { "cwt", 1, -18000, "America/Winnipeg" }, + { "cwt", 1, -18000, "Canada/Central" }, + { "cwt", 1, -18000, "Mexico/General" }, + { "cxt", 0, 25200, "Indian/Christmas" }, + { "chst", 0, 36000, "Pacific/Guam" }, + { "chst", 0, 36000, "Pacific/Saipan" }, + { "dact", 0, 21600, "Asia/Dacca" }, + { "dact", 0, 21600, "Asia/Dhaka" }, + { "davt", 0, 18000, "Antarctica/Davis" }, + { "davt", 0, 25200, "Antarctica/Davis" }, + { "ddut", 0, 36000, "Antarctica/DumontDUrville" }, + { "dmt", 0, -1521, "Europe/Dublin" }, + { "dusst", 1, 21600, "Asia/Dushanbe" }, + { "dusst", 1, 25200, "Asia/Dushanbe" }, + { "dust", 0, 18000, "Asia/Dushanbe" }, + { "dust", 0, 21600, "Asia/Dushanbe" }, + { "easst", 1, -18000, "Chile/EasterIsland" }, + { "easst", 1, -21600, "Chile/EasterIsland" }, + { "easst", 1, -18000, "Pacific/Easter" }, + { "easst", 1, -21600, "Pacific/Easter" }, + { "east", 0, -21600, "Chile/EasterIsland" }, + { "east", 0, -25200, "Chile/EasterIsland" }, + { "east", 0, -21600, "Pacific/Easter" }, + { "east", 0, -25200, "Pacific/Easter" }, + { "east", 1, 14400, "Indian/Antananarivo" }, + { "eat", 0, 10800, "Africa/Khartoum" }, + { "eat", 0, 10800, "Africa/Addis_Ababa" }, + { "eat", 0, 10800, "Africa/Asmara" }, + { "eat", 0, 10800, "Africa/Asmera" }, + { "eat", 0, 10800, "Africa/Dar_es_Salaam" }, + { "eat", 0, 10800, "Africa/Djibouti" }, + { "eat", 0, 10800, "Africa/Kampala" }, + { "eat", 0, 10800, "Africa/Mogadishu" }, + { "eat", 0, 10800, "Africa/Nairobi" }, + { "eat", 0, 10800, "Indian/Antananarivo" }, + { "eat", 0, 10800, "Indian/Comoro" }, + { "eat", 0, 10800, "Indian/Mayotte" }, + { "ect", 0, -18000, "America/Guayaquil" }, + { "ect", 0, -18000, "Pacific/Galapagos" }, + { "eddt", 1, -10800, "America/Iqaluit" }, + { "edt", 1, -14400, "America/New_York" }, + { "edt", 1, -14400, "America/Cancun" }, + { "edt", 1, -14400, "America/Detroit" }, + { "edt", 1, -14400, "America/Fort_Wayne" }, + { "edt", 1, -14400, "America/Grand_Turk" }, + { "edt", 1, -14400, "America/Indiana/Indianapolis" }, + { "edt", 1, -14400, "America/Indiana/Marengo" }, + { "edt", 1, -14400, "America/Indiana/Petersburg" }, + { "edt", 1, -14400, "America/Indiana/Tell_City" }, + { "edt", 1, -14400, "America/Indiana/Vevay" }, + { "edt", 1, -14400, "America/Indiana/Vincennes" }, + { "edt", 1, -14400, "America/Indiana/Winamac" }, + { "edt", 1, -14400, "America/Indianapolis" }, + { "edt", 1, -14400, "America/Iqaluit" }, + { "edt", 1, -14400, "America/Jamaica" }, + { "edt", 1, -14400, "America/Kentucky/Louisville" }, + { "edt", 1, -14400, "America/Kentucky/Monticello" }, + { "edt", 1, -14400, "America/Louisville" }, + { "edt", 1, -14400, "America/Montreal" }, + { "edt", 1, -14400, "America/Nassau" }, + { "edt", 1, -14400, "America/Nipigon" }, + { "edt", 1, -14400, "America/Pangnirtung" }, + { "edt", 1, -14400, "America/Port-au-Prince" }, + { "edt", 1, -14400, "America/Santo_Domingo" }, + { "edt", 1, -14400, "America/Thunder_Bay" }, + { "edt", 1, -14400, "America/Toronto" }, + { "edt", 1, -14400, "Canada/Eastern" }, + { "edt", 1, -14400, "EST" }, + { "eest", 1, 10800, "Europe/Helsinki" }, + { "eest", 1, 10800, "Africa/Cairo" }, + { "eest", 1, 10800, "Asia/Amman" }, + { "eest", 1, 10800, "Asia/Beirut" }, + { "eest", 1, 10800, "Asia/Damascus" }, + { "eest", 1, 10800, "Asia/Gaza" }, + { "eest", 1, 10800, "Asia/Istanbul" }, + { "eest", 1, 10800, "Asia/Nicosia" }, + { "eest", 1, 10800, "EET" }, + { "eest", 1, 10800, "Europe/Athens" }, + { "eest", 1, 10800, "Europe/Bucharest" }, + { "eest", 1, 10800, "Europe/Chisinau" }, + { "eest", 1, 10800, "Europe/Istanbul" }, + { "eest", 1, 10800, "Europe/Kaliningrad" }, + { "eest", 1, 10800, "Europe/Kiev" }, + { "eest", 1, 10800, "Europe/Mariehamn" }, + { "eest", 1, 10800, "Europe/Minsk" }, + { "eest", 1, 10800, "Europe/Moscow" }, + { "eest", 1, 10800, "Europe/Nicosia" }, + { "eest", 1, 10800, "Europe/Riga" }, + { "eest", 1, 10800, "Europe/Simferopol" }, + { "eest", 1, 10800, "Europe/Sofia" }, + { "eest", 1, 10800, "Europe/Tallinn" }, + { "eest", 1, 10800, "Europe/Tiraspol" }, + { "eest", 1, 10800, "Europe/Uzhgorod" }, + { "eest", 1, 10800, "Europe/Vilnius" }, + { "eest", 1, 10800, "Europe/Warsaw" }, + { "eest", 1, 10800, "Europe/Zaporozhye" }, + { "eet", 0, 7200, "Europe/Helsinki" }, + { "eet", 1, 10800, "Asia/Gaza" }, + { "eet", 0, 7200, "Africa/Cairo" }, + { "eet", 0, 7200, "Africa/Tripoli" }, + { "eet", 0, 7200, "Asia/Amman" }, + { "eet", 0, 7200, "Asia/Beirut" }, + { "eet", 0, 7200, "Asia/Damascus" }, + { "eet", 0, 7200, "Asia/Gaza" }, + { "eet", 0, 7200, "Asia/Istanbul" }, + { "eet", 0, 7200, "Asia/Nicosia" }, + { "eet", 0, 7200, "EET" }, + { "eet", 0, 7200, "Europe/Athens" }, + { "eet", 0, 7200, "Europe/Bucharest" }, + { "eet", 0, 7200, "Europe/Chisinau" }, + { "eet", 0, 7200, "Europe/Istanbul" }, + { "eet", 0, 7200, "Europe/Kaliningrad" }, + { "eet", 0, 7200, "Europe/Kiev" }, + { "eet", 0, 7200, "Europe/Mariehamn" }, + { "eet", 0, 7200, "Europe/Minsk" }, + { "eet", 0, 7200, "Europe/Moscow" }, + { "eet", 0, 7200, "Europe/Nicosia" }, + { "eet", 0, 7200, "Europe/Riga" }, + { "eet", 0, 7200, "Europe/Simferopol" }, + { "eet", 0, 7200, "Europe/Sofia" }, + { "eet", 0, 7200, "Europe/Tallinn" }, + { "eet", 0, 7200, "Europe/Tiraspol" }, + { "eet", 0, 7200, "Europe/Uzhgorod" }, + { "eet", 0, 7200, "Europe/Vilnius" }, + { "eet", 0, 7200, "Europe/Warsaw" }, + { "eet", 0, 7200, "Europe/Zaporozhye" }, + { "egst", 1, 0, "America/Scoresbysund" }, + { "egt", 0, -3600, "America/Scoresbysund" }, + { "ehdt", 1, -16200, "America/Santo_Domingo" }, + { "eit", 0, 32400, "Asia/Jayapura" }, + { "emt", 0, -26248, "Chile/EasterIsland" }, + { "emt", 0, -26248, "Pacific/Easter" }, + { "ept", 1, -14400, "America/New_York" }, + { "ept", 1, -14400, "America/Detroit" }, + { "ept", 1, -14400, "America/Iqaluit" }, + { "ept", 1, -14400, "America/Montreal" }, + { "ept", 1, -14400, "America/Nipigon" }, + { "ept", 1, -14400, "America/Thunder_Bay" }, + { "ept", 1, -14400, "America/Toronto" }, + { "ept", 1, -14400, "Canada/Eastern" }, + { "ept", 1, -14400, "EST" }, + { "est", 0, -18000, "America/New_York" }, + { "est", 0, -18000, "America/Antigua" }, + { "est", 0, -18000, "America/Atikokan" }, + { "est", 0, -18000, "America/Cambridge_Bay" }, + { "est", 0, -18000, "America/Cancun" }, + { "est", 0, -18000, "America/Cayman" }, + { "est", 0, -18000, "America/Chicago" }, + { "est", 0, -18000, "America/Coral_Harbour" }, + { "est", 0, -18000, "America/Detroit" }, + { "est", 0, -18000, "America/Fort_Wayne" }, + { "est", 0, -18000, "America/Grand_Turk" }, + { "est", 0, -18000, "America/Indiana/Indianapolis" }, + { "est", 0, -18000, "America/Indiana/Knox" }, + { "est", 0, -18000, "America/Indiana/Marengo" }, + { "est", 0, -18000, "America/Indiana/Petersburg" }, + { "est", 0, -18000, "America/Indiana/Tell_City" }, + { "est", 0, -18000, "America/Indiana/Vevay" }, + { "est", 0, -18000, "America/Indiana/Vincennes" }, + { "est", 0, -18000, "America/Indiana/Winamac" }, + { "est", 0, -18000, "America/Indianapolis" }, + { "est", 0, -18000, "America/Iqaluit" }, + { "est", 0, -18000, "America/Jamaica" }, + { "est", 0, -18000, "America/Kentucky/Louisville" }, + { "est", 0, -18000, "America/Kentucky/Monticello" }, + { "est", 0, -18000, "America/Knox_IN" }, + { "est", 0, -18000, "America/Louisville" }, + { "est", 0, -18000, "America/Managua" }, + { "est", 0, -18000, "America/Menominee" }, + { "est", 0, -18000, "America/Merida" }, + { "est", 0, -18000, "America/Moncton" }, + { "est", 0, -18000, "America/Montreal" }, + { "est", 0, -18000, "America/Nassau" }, + { "est", 0, -18000, "America/Nipigon" }, + { "est", 0, -18000, "America/Panama" }, + { "est", 0, -18000, "America/Pangnirtung" }, + { "est", 0, -18000, "America/Port-au-Prince" }, + { "est", 0, -18000, "America/Rankin_Inlet" }, + { "est", 0, -18000, "America/Resolute" }, + { "est", 0, -18000, "America/Santo_Domingo" }, + { "est", 0, -18000, "America/Thunder_Bay" }, + { "est", 0, -18000, "America/Toronto" }, + { "est", 0, -18000, "Canada/Eastern" }, + { "est", 0, -18000, "EST" }, + { "est", 0, 36000, "Antarctica/Macquarie" }, + { "est", 0, 36000, "Australia/ACT" }, + { "est", 0, 36000, "Australia/Brisbane" }, + { "est", 0, 36000, "Australia/Canberra" }, + { "est", 0, 36000, "Australia/Currie" }, + { "est", 0, 36000, "Australia/Hobart" }, + { "est", 0, 36000, "Australia/LHI" }, + { "est", 0, 36000, "Australia/Lindeman" }, + { "est", 0, 36000, "Australia/Lord_Howe" }, + { "est", 0, 36000, "Australia/Melbourne" }, + { "est", 0, 36000, "Australia/NSW" }, + { "est", 0, 36000, "Australia/Queensland" }, + { "est", 0, 36000, "Australia/Sydney" }, + { "est", 0, 36000, "Australia/Tasmania" }, + { "est", 0, 36000, "Australia/Victoria" }, + { "est", 1, 39600, "Australia/Melbourne" }, + { "est", 1, 39600, "Antarctica/Macquarie" }, + { "est", 1, 39600, "Australia/ACT" }, + { "est", 1, 39600, "Australia/Brisbane" }, + { "est", 1, 39600, "Australia/Canberra" }, + { "est", 1, 39600, "Australia/Currie" }, + { "est", 1, 39600, "Australia/Hobart" }, + { "est", 1, 39600, "Australia/Lindeman" }, + { "est", 1, 39600, "Australia/NSW" }, + { "est", 1, 39600, "Australia/Queensland" }, + { "est", 1, 39600, "Australia/Sydney" }, + { "est", 1, 39600, "Australia/Tasmania" }, + { "est", 1, 39600, "Australia/Victoria" }, + { "ewt", 1, -14400, "America/New_York" }, + { "ewt", 1, -14400, "America/Detroit" }, + { "ewt", 1, -14400, "America/Iqaluit" }, + { "ewt", 1, -14400, "America/Montreal" }, + { "ewt", 1, -14400, "America/Nipigon" }, + { "ewt", 1, -14400, "America/Thunder_Bay" }, + { "ewt", 1, -14400, "America/Toronto" }, + { "ewt", 1, -14400, "Canada/Eastern" }, + { "ewt", 1, -14400, "EST" }, + { "ffmt", 0, -14660, "America/Martinique" }, + { "fjst", 1, 46800, "Pacific/Fiji" }, + { "fjt", 0, 43200, "Pacific/Fiji" }, + { "fkst", 1, -10800, "Atlantic/Stanley" }, + { "fkst", 1, -7200, "Atlantic/Stanley" }, + { "fkt", 0, -10800, "Atlantic/Stanley" }, + { "fkt", 0, -14400, "Atlantic/Stanley" }, + { "fmt", 0, -3180, "Africa/Freetown" }, + { "fmt", 0, -4056, "Atlantic/Madeira" }, + { "fnst", 1, -3600, "America/Noronha" }, + { "fnst", 1, -3600, "Brazil/DeNoronha" }, + { "fnt", 0, -7200, "America/Noronha" }, + { "fnt", 0, -7200, "Brazil/DeNoronha" }, + { "fort", 0, 14400, "Asia/Aqtau" }, + { "fort", 0, 18000, "Asia/Aqtau" }, + { "frust", 1, 21600, "Asia/Bishkek" }, + { "frust", 1, 25200, "Asia/Bishkek" }, + { "frut", 0, 18000, "Asia/Bishkek" }, + { "frut", 0, 21600, "Asia/Bishkek" }, + { "galt", 0, -21600, "Pacific/Galapagos" }, + { "gamt", 0, -32400, "Pacific/Gambier" }, + { "gbgt", 0, -13500, "America/Guyana" }, + { "gest", 1, 14400, "Asia/Tbilisi" }, + { "gest", 1, 18000, "Asia/Tbilisi" }, + { "get", 0, 10800, "Asia/Tbilisi" }, + { "get", 0, 14400, "Asia/Tbilisi" }, + { "gft", 0, -10800, "America/Cayenne" }, + { "gft", 0, -14400, "America/Cayenne" }, + { "ghst", 1, 1200, "Africa/Accra" }, + { "gilt", 0, 43200, "Pacific/Tarawa" }, + { "gmt", 0, 0, "Africa/Abidjan" }, + { "gmt", 0, 0, "Africa/Accra" }, + { "gmt", 0, 0, "Africa/Bamako" }, + { "gmt", 0, 0, "Africa/Banjul" }, + { "gmt", 0, 0, "Africa/Bissau" }, + { "gmt", 0, 0, "Africa/Conakry" }, + { "gmt", 0, 0, "Africa/Dakar" }, + { "gmt", 0, 0, "Africa/Freetown" }, + { "gmt", 0, 0, "Africa/Lome" }, + { "gmt", 0, 0, "Africa/Malabo" }, + { "gmt", 0, 0, "Africa/Monrovia" }, + { "gmt", 0, 0, "Africa/Niamey" }, + { "gmt", 0, 0, "Africa/Nouakchott" }, + { "gmt", 0, 0, "Africa/Ouagadougou" }, + { "gmt", 0, 0, "Africa/Porto-Novo" }, + { "gmt", 0, 0, "Africa/Sao_Tome" }, + { "gmt", 0, 0, "Africa/Timbuktu" }, + { "gmt", 0, 0, "America/Danmarkshavn" }, + { "gmt", 0, 0, "Atlantic/Reykjavik" }, + { "gmt", 0, 0, "Atlantic/St_Helena" }, + { "gmt", 0, 0, "Etc/GMT" }, + { "gmt", 0, 0, "Etc/Greenwich" }, + { "gmt", 0, 0, "Europe/Belfast" }, + { "gmt", 0, 0, "Europe/Dublin" }, + { "gmt", 0, 0, "Europe/Gibraltar" }, + { "gmt", 0, 0, "Europe/Guernsey" }, + { "gmt", 0, 0, "Europe/Isle_of_Man" }, + { "gmt", 0, 0, "Europe/Jersey" }, + { "gmt", 0, 0, "Europe/London" }, + { "gmt", 0, 0, "GB" }, + { "gst", 0, 14400, "Asia/Dubai" }, + { "gst", 0, -7200, "Atlantic/South_Georgia" }, + { "gst", 0, 14400, "Asia/Bahrain" }, + { "gst", 0, 14400, "Asia/Muscat" }, + { "gst", 0, 14400, "Asia/Qatar" }, + { "gst", 0, 36000, "Pacific/Guam" }, + { "gyt", 0, -10800, "America/Guyana" }, + { "gyt", 0, -13500, "America/Guyana" }, + { "gyt", 0, -14400, "America/Guyana" }, + { "hadt", 1, -32400, "America/Adak" }, + { "hadt", 1, -32400, "America/Atka" }, + { "hast", 0, -36000, "America/Adak" }, + { "hast", 0, -36000, "America/Atka" }, + { "hdt", 1, -34200, "Pacific/Honolulu" }, + { "hdt", 1, -34200, "HST" }, + { "hkst", 1, 32400, "Asia/Hong_Kong" }, + { "hkt", 0, 28800, "Asia/Hong_Kong" }, + { "hmt", 0, -19776, "America/Havana" }, + { "hmt", 0, -6872, "Atlantic/Azores" }, + { "hmt", 0, 21200, "Asia/Calcutta" }, + { "hmt", 0, 21200, "Asia/Dacca" }, + { "hmt", 0, 21200, "Asia/Dhaka" }, + { "hmt", 0, 21200, "Asia/Kolkata" }, + { "hmt", 0, 5992, "EET" }, + { "hmt", 0, 5992, "Europe/Helsinki" }, + { "hmt", 0, 5992, "Europe/Mariehamn" }, + { "hovst", 1, 28800, "Asia/Hovd" }, + { "hovt", 0, 21600, "Asia/Hovd" }, + { "hovt", 0, 25200, "Asia/Hovd" }, + { "hpt", 1, -34200, "Pacific/Honolulu" }, + { "hpt", 1, -34200, "HST" }, + { "hst", 0, -36000, "Pacific/Honolulu" }, + { "hst", 0, -37800, "Pacific/Honolulu" }, + { "hst", 0, -36000, "HST" }, + { "hst", 0, -36000, "Pacific/Johnston" }, + { "hst", 0, -37800, "HST" }, + { "hwt", 1, -34200, "Pacific/Honolulu" }, + { "hwt", 1, -34200, "HST" }, + { "ict", 0, 25200, "Asia/Bangkok" }, + { "ict", 0, 25200, "Asia/Ho_Chi_Minh" }, + { "ict", 0, 25200, "Asia/Phnom_Penh" }, + { "ict", 0, 25200, "Asia/Saigon" }, + { "ict", 0, 25200, "Asia/Vientiane" }, + { "ict", 0, 28800, "Asia/Ho_Chi_Minh" }, + { "ict", 0, 28800, "Asia/Phnom_Penh" }, + { "ict", 0, 28800, "Asia/Saigon" }, + { "ict", 0, 28800, "Asia/Vientiane" }, + { "iddt", 1, 14400, "Asia/Jerusalem" }, + { "iddt", 1, 14400, "Asia/Tel_Aviv" }, + { "idt", 1, 10800, "Asia/Jerusalem" }, + { "idt", 1, 10800, "Asia/Gaza" }, + { "idt", 1, 10800, "Asia/Tel_Aviv" }, + { "ihst", 1, 21600, "Asia/Colombo" }, + { "imt", 0, 25040, "Asia/Irkutsk" }, + { "imt", 0, 7016, "Asia/Istanbul" }, + { "imt", 0, 7016, "Europe/Istanbul" }, + { "iot", 0, 18000, "Indian/Chagos" }, + { "iot", 0, 21600, "Indian/Chagos" }, + { "irdt", 1, 16200, "Asia/Tehran" }, + { "irdt", 1, 18000, "Asia/Tehran" }, + { "irkst", 1, 28800, "Asia/Irkutsk" }, + { "irkst", 1, 32400, "Asia/Irkutsk" }, + { "irkt", 0, 25200, "Asia/Irkutsk" }, + { "irkt", 0, 28800, "Asia/Irkutsk" }, + { "irst", 0, 12600, "Asia/Tehran" }, + { "irst", 0, 14400, "Asia/Tehran" }, + { "isst", 1, 0, "Atlantic/Reykjavik" }, + { "ist", 0, 7200, "Asia/Jerusalem" }, + { "ist", 0, -3600, "Atlantic/Reykjavik" }, + { "ist", 0, 19800, "Asia/Calcutta" }, + { "ist", 0, 19800, "Asia/Colombo" }, + { "ist", 0, 19800, "Asia/Dacca" }, + { "ist", 0, 19800, "Asia/Dhaka" }, + { "ist", 0, 19800, "Asia/Karachi" }, + { "ist", 0, 19800, "Asia/Kathmandu" }, + { "ist", 0, 19800, "Asia/Katmandu" }, + { "ist", 0, 19800, "Asia/Kolkata" }, + { "ist", 0, 19800, "Asia/Thimbu" }, + { "ist", 0, 19800, "Asia/Thimphu" }, + { "ist", 1, 2079, "Europe/Dublin" }, + { "ist", 1, 23400, "Asia/Calcutta" }, + { "ist", 1, 23400, "Asia/Colombo" }, + { "ist", 1, 23400, "Asia/Karachi" }, + { "ist", 1, 23400, "Asia/Kolkata" }, + { "ist", 0, 3600, "Europe/Dublin" }, + { "ist", 1, 3600, "Europe/Dublin" }, + { "ist", 0, 7200, "Asia/Gaza" }, + { "ist", 0, 7200, "Asia/Tel_Aviv" }, + { "javt", 0, 26400, "Asia/Jakarta" }, + { "jdt", 1, 36000, "Asia/Tokyo" }, + { "jmt", 0, -1368, "Atlantic/St_Helena" }, + { "jmt", 0, 25632, "Asia/Jakarta" }, + { "jmt", 0, 8440, "Asia/Jerusalem" }, + { "jmt", 0, 8440, "Asia/Tel_Aviv" }, + { "jst", 0, 32400, "Asia/Tokyo" }, + { "jst", 0, 32400, "Asia/Dili" }, + { "jst", 0, 32400, "Asia/Hong_Kong" }, + { "jst", 0, 32400, "Asia/Jakarta" }, + { "jst", 0, 32400, "Asia/Kuala_Lumpur" }, + { "jst", 0, 32400, "Asia/Kuching" }, + { "jst", 0, 32400, "Asia/Makassar" }, + { "jst", 0, 32400, "Asia/Manila" }, + { "jst", 0, 32400, "Asia/Pontianak" }, + { "jst", 0, 32400, "Asia/Rangoon" }, + { "jst", 0, 32400, "Asia/Sakhalin" }, + { "jst", 0, 32400, "Asia/Singapore" }, + { "jst", 0, 32400, "Asia/Ujung_Pandang" }, + { "jst", 0, 32400, "Pacific/Nauru" }, + { "kart", 0, 18000, "Asia/Karachi" }, + { "kast", 0, 18000, "Asia/Kashgar" }, + { "kast", 0, 19800, "Asia/Kashgar" }, + { "kdt", 1, 32400, "Asia/Seoul" }, + { "kdt", 1, 36000, "Asia/Seoul" }, + { "kdt", 1, 32400, "ROK" }, + { "kdt", 1, 36000, "ROK" }, + { "kgst", 1, 21600, "Asia/Bishkek" }, + { "kgt", 0, 18000, "Asia/Bishkek" }, + { "kgt", 0, 21600, "Asia/Bishkek" }, + { "kizst", 1, 21600, "Asia/Qyzylorda" }, + { "kizt", 0, 14400, "Asia/Qyzylorda" }, + { "kizt", 0, 18000, "Asia/Qyzylorda" }, + { "kizt", 0, 21600, "Asia/Qyzylorda" }, + { "kmt", 0, 5736, "Europe/Vilnius" }, + { "kmt", 0, -14696, "America/St_Vincent" }, + { "kmt", 0, -18432, "America/Cayman" }, + { "kmt", 0, -18432, "America/Grand_Turk" }, + { "kmt", 0, -18432, "America/Jamaica" }, + { "kmt", 0, 7324, "Europe/Kiev" }, + { "kost", 0, 39600, "Pacific/Kosrae" }, + { "kost", 0, 43200, "Pacific/Kosrae" }, + { "krast", 1, 25200, "Asia/Krasnoyarsk" }, + { "krast", 1, 28800, "Asia/Krasnoyarsk" }, + { "krast", 1, 25200, "Asia/Novokuznetsk" }, + { "krast", 1, 28800, "Asia/Novokuznetsk" }, + { "krat", 0, 21600, "Asia/Krasnoyarsk" }, + { "krat", 0, 25200, "Asia/Krasnoyarsk" }, + { "krat", 0, 21600, "Asia/Novokuznetsk" }, + { "krat", 0, 25200, "Asia/Novokuznetsk" }, + { "kst", 0, 28800, "Asia/Seoul" }, + { "kst", 0, 30600, "Asia/Seoul" }, + { "kst", 0, 32400, "Asia/Seoul" }, + { "kst", 0, 28800, "Asia/Pyongyang" }, + { "kst", 0, 28800, "ROK" }, + { "kst", 0, 30600, "Asia/Pyongyang" }, + { "kst", 0, 30600, "ROK" }, + { "kst", 0, 32400, "Asia/Pyongyang" }, + { "kst", 0, 32400, "ROK" }, + { "kuyst", 1, 10800, "Europe/Samara" }, + { "kuyst", 1, 14400, "Europe/Samara" }, + { "kuyst", 1, 18000, "Europe/Samara" }, + { "kuyt", 0, 10800, "Europe/Samara" }, + { "kuyt", 0, 14400, "Europe/Samara" }, + { "kwat", 0, -43200, "Pacific/Kwajalein" }, + { "lhst", 0, 37800, "Australia/Lord_Howe" }, + { "lhst", 1, 39600, "Australia/Lord_Howe" }, + { "lhst", 1, 41400, "Australia/Lord_Howe" }, + { "lhst", 0, 37800, "Australia/LHI" }, + { "lhst", 1, 39600, "Australia/LHI" }, + { "lhst", 1, 41400, "Australia/LHI" }, + { "lint", 0, -36000, "Pacific/Kiritimati" }, + { "lint", 0, -38400, "Pacific/Kiritimati" }, + { "lint", 0, 50400, "Pacific/Kiritimati" }, + { "lkt", 0, 21600, "Asia/Colombo" }, + { "lkt", 0, 23400, "Asia/Colombo" }, + { "lmt", 0, -11188, "America/Sao_Paulo" }, + { "lmt", 0, -11188, "Brazil/East" }, + { "lmt", 0, -11568, "America/Araguaina" }, + { "lmt", 0, -11636, "America/Belem" }, + { "lmt", 0, -12416, "America/Godthab" }, + { "lmt", 0, -12560, "America/Cayenne" }, + { "lmt", 0, -13108, "America/Campo_Grande" }, + { "lmt", 0, -13128, "America/Santarem" }, + { "lmt", 0, -13240, "America/Paramaribo" }, + { "lmt", 0, -13460, "America/Cuiaba" }, + { "lmt", 0, -13480, "America/Miquelon" }, + { "lmt", 0, -13960, "America/Guyana" }, + { "lmt", 0, -14308, "America/Barbados" }, + { "lmt", 0, -14388, "America/Glace_Bay" }, + { "lmt", 0, -14404, "America/Manaus" }, + { "lmt", 0, -14404, "Brazil/West" }, + { "lmt", 0, -14560, "America/Boa_Vista" }, + { "lmt", 0, -14736, "America/Dominica" }, + { "lmt", 0, -14764, "America/Port_of_Spain" }, + { "lmt", 0, -14768, "America/Guadeloupe" }, + { "lmt", 0, -14768, "America/Marigot" }, + { "lmt", 0, -14768, "America/St_Barthelemy" }, + { "lmt", 0, -14820, "America/Grenada" }, + { "lmt", 0, -14832, "America/Antigua" }, + { "lmt", 0, -14932, "America/Montserrat" }, + { "lmt", 0, -15052, "America/St_Kitts" }, + { "lmt", 0, -15136, "America/Anguilla" }, + { "lmt", 0, -15264, "America/Halifax" }, + { "lmt", 0, -15264, "Canada/Atlantic" }, + { "lmt", 0, -15336, "America/Porto_Velho" }, + { "lmt", 0, -15508, "America/Tortola" }, + { "lmt", 0, -15544, "Atlantic/Bermuda" }, + { "lmt", 0, -15584, "America/St_Thomas" }, + { "lmt", 0, -15584, "America/Virgin" }, + { "lmt", 0, -1624, "Atlantic/Faeroe" }, + { "lmt", 0, -1624, "Atlantic/Faroe" }, + { "lmt", 0, -16272, "America/Porto_Acre" }, + { "lmt", 0, -16272, "America/Rio_Branco" }, + { "lmt", 0, -16272, "Brazil/Acre" }, + { "lmt", 0, -16508, "America/Thule" }, + { "lmt", 0, -16544, "America/Curacao" }, + { "lmt", 0, -16768, "America/Eirunepe" }, + { "lmt", 0, -16824, "America/Aruba" }, + { "lmt", 0, -1820, "Africa/Casablanca" }, + { "lmt", 0, -18516, "America/Lima" }, + { "lmt", 0, -18564, "America/Nassau" }, + { "lmt", 0, -1920, "Africa/Bamako" }, + { "lmt", 0, -1920, "Africa/Timbuktu" }, + { "lmt", 0, -19931, "America/Detroit" }, + { "lmt", 0, -20824, "America/Cancun" }, + { "lmt", 0, -20932, "America/Tegucigalpa" }, + { "lmt", 0, -21168, "America/Belize" }, + { "lmt", 0, -21408, "America/El_Salvador" }, + { "lmt", 0, -21504, "Pacific/Galapagos" }, + { "lmt", 0, -21508, "America/Merida" }, + { "lmt", 0, -21724, "America/Guatemala" }, + { "lmt", 0, -2192, "Africa/Sao_Tome" }, + { "lmt", 0, -2192, "Europe/Lisbon" }, + { "lmt", 0, -23796, "America/Mexico_City" }, + { "lmt", 0, -23796, "Mexico/General" }, + { "lmt", 0, -24000, "America/Matamoros" }, + { "lmt", 0, -24076, "America/Monterrey" }, + { "lmt", 0, -25060, "America/Ojinaga" }, + { "lmt", 0, -25116, "America/Regina" }, + { "lmt", 0, -25116, "Canada/East-Saskatchewan" }, + { "lmt", 0, -25116, "Canada/Saskatchewan" }, + { "lmt", 0, -25260, "America/Bahia_Banderas" }, + { "lmt", 0, -25460, "America/Chihuahua" }, + { "lmt", 0, -25540, "America/Mazatlan" }, + { "lmt", 0, -25540, "Mexico/BajaSur" }, + { "lmt", 0, -25880, "America/Swift_Current" }, + { "lmt", 0, -26632, "America/Hermosillo" }, + { "lmt", 0, -27232, "America/Edmonton" }, + { "lmt", 0, -27232, "Canada/Mountain" }, + { "lmt", 0, -27568, "America/Santa_Isabel" }, + { "lmt", 0, -28084, "America/Ensenada" }, + { "lmt", 0, -28084, "America/Tijuana" }, + { "lmt", 0, -28084, "Mexico/BajaNorte" }, + { "lmt", 0, -3168, "Africa/El_Aaiun" }, + { "lmt", 0, -32388, "Pacific/Gambier" }, + { "lmt", 0, -3292, "Africa/Conakry" }, + { "lmt", 0, -33480, "Pacific/Marquesas" }, + { "lmt", 0, -35896, "Pacific/Tahiti" }, + { "lmt", 0, -364, "Africa/Ouagadougou" }, + { "lmt", 0, -3696, "Atlantic/Canary" }, + { "lmt", 0, -3740, "Africa/Bissau" }, + { "lmt", 0, -3828, "Africa/Nouakchott" }, + { "lmt", 0, -3996, "Africa/Banjul" }, + { "lmt", 0, -40968, "Pacific/Pago_Pago" }, + { "lmt", 0, -40968, "Pacific/Samoa" }, + { "lmt", 0, -41216, "Pacific/Apia" }, + { "lmt", 0, -4184, "Africa/Dakar" }, + { "lmt", 0, -4480, "America/Danmarkshavn" }, + { "lmt", 0, -5272, "America/Scoresbysund" }, + { "lmt", 0, -52, "Africa/Accra" }, + { "lmt", 0, -5644, "Atlantic/Cape_Verde" }, + { "lmt", 0, -7780, "America/Noronha" }, + { "lmt", 0, -7780, "Brazil/DeNoronha" }, + { "lmt", 0, -8376, "America/Recife" }, + { "lmt", 0, -8572, "America/Maceio" }, + { "lmt", 0, -9240, "America/Fortaleza" }, + { "lmt", 0, -9244, "America/Bahia" }, + { "lmt", 0, -968, "Africa/Abidjan" }, + { "lmt", 0, 10356, "Africa/Djibouti" }, + { "lmt", 0, 10384, "Indian/Comoro" }, + { "lmt", 0, 10660, "Europe/Volgograd" }, + { "lmt", 0, 10680, "Asia/Yerevan" }, + { "lmt", 0, 10848, "Asia/Aden" }, + { "lmt", 0, 10856, "Indian/Mayotte" }, + { "lmt", 0, 11212, "Asia/Riyadh" }, + { "lmt", 0, 11404, "Indian/Antananarivo" }, + { "lmt", 0, 11516, "Asia/Kuwait" }, + { "lmt", 0, 11964, "Asia/Baku" }, + { "lmt", 0, 12036, "Europe/Samara" }, + { "lmt", 0, 12064, "Asia/Aqtau" }, + { "lmt", 0, 12140, "Asia/Bahrain" }, + { "lmt", 0, 12324, "Asia/Oral" }, + { "lmt", 0, 12344, "Asia/Tehran" }, + { "lmt", 0, 12368, "Asia/Qatar" }, + { "lmt", 0, 13272, "Asia/Dubai" }, + { "lmt", 0, 13308, "Indian/Mahe" }, + { "lmt", 0, 13312, "Indian/Reunion" }, + { "lmt", 0, 13720, "Asia/Aqtobe" }, + { "lmt", 0, 13800, "Indian/Mauritius" }, + { "lmt", 0, 14012, "Asia/Ashgabat" }, + { "lmt", 0, 14012, "Asia/Ashkhabad" }, + { "lmt", 0, 14060, "Asia/Muscat" }, + { "lmt", 0, 14544, "Asia/Yekaterinburg" }, + { "lmt", 0, 1476, "Europe/Luxembourg" }, + { "lmt", 0, 15712, "Asia/Qyzylorda" }, + { "lmt", 0, 16032, "Asia/Samarkand" }, + { "lmt", 0, 16092, "Asia/Karachi" }, + { "lmt", 0, 16512, "Asia/Dushanbe" }, + { "lmt", 0, 16632, "Asia/Tashkent" }, + { "lmt", 0, 17380, "Indian/Chagos" }, + { "lmt", 0, 17616, "Asia/Omsk" }, + { "lmt", 0, 17904, "Asia/Bishkek" }, + { "lmt", 0, 18236, "Asia/Kashgar" }, + { "lmt", 0, 18468, "Asia/Almaty" }, + { "lmt", 0, 19900, "Asia/Novosibirsk" }, + { "lmt", 0, 20476, "Asia/Kathmandu" }, + { "lmt", 0, 20476, "Asia/Katmandu" }, + { "lmt", 0, 21020, "Asia/Urumqi" }, + { "lmt", 0, 2108, "Africa/Malabo" }, + { "lmt", 0, 21516, "Asia/Thimbu" }, + { "lmt", 0, 21516, "Asia/Thimphu" }, + { "lmt", 0, 21996, "Asia/Hovd" }, + { "lmt", 0, 22280, "Asia/Krasnoyarsk" }, + { "lmt", 0, 2268, "Africa/Libreville" }, + { "lmt", 0, 2328, "Africa/Douala" }, + { "lmt", 0, 24624, "Asia/Vientiane" }, + { "lmt", 0, 25180, "Asia/Phnom_Penh" }, + { "lmt", 0, 25580, "Asia/Chongqing" }, + { "lmt", 0, 25580, "Asia/Chungking" }, + { "lmt", 0, 25600, "Asia/Ho_Chi_Minh" }, + { "lmt", 0, 25600, "Asia/Saigon" }, + { "lmt", 0, 25652, "Asia/Ulaanbaatar" }, + { "lmt", 0, 25652, "Asia/Ulan_Bator" }, + { "lmt", 0, 26240, "Asia/Pontianak" }, + { "lmt", 0, 26480, "Asia/Kuching" }, + { "lmt", 0, 27260, "Asia/Macao" }, + { "lmt", 0, 27260, "Asia/Macau" }, + { "lmt", 0, 27396, "Asia/Hong_Kong" }, + { "lmt", 0, 27480, "Asia/Choibalsan" }, + { "lmt", 0, 27580, "Asia/Brunei" }, + { "lmt", 0, 28656, "Asia/Makassar" }, + { "lmt", 0, 28656, "Asia/Ujung_Pandang" }, + { "lmt", 0, 29152, "Asia/Shanghai" }, + { "lmt", 0, 29152, "PRC" }, + { "lmt", 0, 30140, "Asia/Dili" }, + { "lmt", 0, 30404, "Asia/Harbin" }, + { "lmt", 0, 31120, "Asia/Yakutsk" }, + { "lmt", 0, 3164, "Africa/Tripoli" }, + { "lmt", 0, 31664, "Asia/Vladivostok" }, + { "lmt", 0, 33768, "Asia/Jayapura" }, + { "lmt", 0, 34248, "Asia/Sakhalin" }, + { "lmt", 0, 3612, "Africa/Ndjamena" }, + { "lmt", 0, 36192, "Asia/Magadan" }, + { "lmt", 0, 3668, "Africa/Brazzaville" }, + { "lmt", 0, 38076, "Asia/Kamchatka" }, + { "lmt", 0, 38388, "Pacific/Guadalcanal" }, + { "lmt", 0, 39948, "Pacific/Noumea" }, + { "lmt", 0, 40060, "Pacific/Nauru" }, + { "lmt", 0, 40396, "Pacific/Efate" }, + { "lmt", 0, 42596, "Asia/Anadyr" }, + { "lmt", 0, 42820, "Pacific/Fiji" }, + { "lmt", 0, 44028, "Pacific/Chatham" }, + { "lmt", 0, 4460, "Africa/Bangui" }, + { "lmt", 0, 4760, "Europe/Tirane" }, + { "lmt", 0, 508, "Africa/Niamey" }, + { "lmt", 0, 628, "Africa/Porto-Novo" }, + { "lmt", 0, 6600, "Africa/Maseru" }, + { "lmt", 0, 6788, "Africa/Lusaka" }, + { "lmt", 0, 7216, "Africa/Kigali" }, + { "lmt", 0, 7452, "Africa/Harare" }, + { "lmt", 0, 7464, "Africa/Mbabane" }, + { "lmt", 0, 7780, "Africa/Kampala" }, + { "lmt", 0, 7808, "Africa/Khartoum" }, + { "lmt", 0, 7820, "Africa/Maputo" }, + { "lmt", 0, 8008, "Asia/Nicosia" }, + { "lmt", 0, 8008, "Europe/Nicosia" }, + { "lmt", 0, 816, "Africa/Lagos" }, + { "lmt", 0, 8400, "Africa/Blantyre" }, + { "lmt", 0, 8624, "Asia/Amman" }, + { "lmt", 0, 8712, "Asia/Damascus" }, + { "lmt", 0, 8836, "Africa/Nairobi" }, + { "lmt", 0, 9428, "Africa/Dar_es_Salaam" }, + { "lont", 0, 25200, "Asia/Chongqing" }, + { "lont", 0, 25200, "Asia/Chungking" }, + { "lrt", 0, -2670, "Africa/Monrovia" }, + { "lst", 1, 9384, "Europe/Riga" }, + { "madmt", 1, 3600, "Atlantic/Madeira" }, + { "madst", 1, 0, "Atlantic/Madeira" }, + { "madt", 0, -3600, "Atlantic/Madeira" }, + { "magst", 1, 39600, "Asia/Magadan" }, + { "magst", 1, 43200, "Asia/Magadan" }, + { "magt", 0, 36000, "Asia/Magadan" }, + { "magt", 0, 39600, "Asia/Magadan" }, + { "malst", 1, 26400, "Asia/Singapore" }, + { "malst", 1, 26400, "Asia/Kuala_Lumpur" }, + { "malt", 0, 25200, "Asia/Singapore" }, + { "malt", 0, 26400, "Asia/Singapore" }, + { "malt", 0, 27000, "Asia/Singapore" }, + { "malt", 0, 25200, "Asia/Kuala_Lumpur" }, + { "malt", 0, 26400, "Asia/Kuala_Lumpur" }, + { "malt", 0, 27000, "Asia/Kuala_Lumpur" }, + { "mart", 0, -34200, "Pacific/Marquesas" }, + { "mawt", 0, 18000, "Antarctica/Mawson" }, + { "mawt", 0, 21600, "Antarctica/Mawson" }, + { "mddt", 1, -18000, "America/Cambridge_Bay" }, + { "mddt", 1, -18000, "America/Yellowknife" }, + { "mdst", 1, 16248, "Europe/Moscow" }, + { "mdt", 1, -21600, "America/Denver" }, + { "mdt", 1, -21600, "America/Bahia_Banderas" }, + { "mdt", 1, -21600, "America/Boise" }, + { "mdt", 1, -21600, "America/Cambridge_Bay" }, + { "mdt", 1, -21600, "America/Chihuahua" }, + { "mdt", 1, -21600, "America/Edmonton" }, + { "mdt", 1, -21600, "America/Hermosillo" }, + { "mdt", 1, -21600, "America/Inuvik" }, + { "mdt", 1, -21600, "America/Mazatlan" }, + { "mdt", 1, -21600, "America/North_Dakota/Center" }, + { "mdt", 1, -21600, "America/North_Dakota/New_Salem" }, + { "mdt", 1, -21600, "America/Ojinaga" }, + { "mdt", 1, -21600, "America/Phoenix" }, + { "mdt", 1, -21600, "America/Regina" }, + { "mdt", 1, -21600, "America/Shiprock" }, + { "mdt", 1, -21600, "America/Swift_Current" }, + { "mdt", 1, -21600, "America/Yellowknife" }, + { "mdt", 1, -21600, "Canada/East-Saskatchewan" }, + { "mdt", 1, -21600, "Canada/Mountain" }, + { "mdt", 1, -21600, "Canada/Saskatchewan" }, + { "mdt", 1, -21600, "Mexico/BajaSur" }, + { "mdt", 1, -21600, "MST" }, + { "mest", 1, 7200, "MET" }, + { "met", 0, 3600, "MET" }, + { "mht", 0, 39600, "Pacific/Kwajalein" }, + { "mht", 0, 43200, "Pacific/Kwajalein" }, + { "mht", 0, 39600, "Pacific/Majuro" }, + { "mht", 0, 43200, "Pacific/Majuro" }, + { "mist", 0, 39600, "Antarctica/Macquarie" }, + { "mmt", 0, 9000, "Europe/Moscow" }, + { "mmt", 0, 9048, "Europe/Moscow" }, + { "mmt", 0, -13484, "America/Montevideo" }, + { "mmt", 0, -20712, "America/Managua" }, + { "mmt", 0, -2588, "Africa/Monrovia" }, + { "mmt", 0, 17640, "Indian/Maldives" }, + { "mmt", 0, 19172, "Asia/Colombo" }, + { "mmt", 0, 23400, "Asia/Rangoon" }, + { "mmt", 0, 28656, "Asia/Makassar" }, + { "mmt", 0, 28656, "Asia/Ujung_Pandang" }, + { "mmt", 0, 6600, "Europe/Minsk" }, + { "most", 1, 32400, "Asia/Macao" }, + { "most", 1, 32400, "Asia/Macau" }, + { "mot", 0, 28800, "Asia/Macao" }, + { "mot", 0, 28800, "Asia/Macau" }, + { "mpt", 1, -21600, "America/Denver" }, + { "mpt", 1, -21600, "America/Boise" }, + { "mpt", 1, -21600, "America/Cambridge_Bay" }, + { "mpt", 1, -21600, "America/Edmonton" }, + { "mpt", 1, -21600, "America/North_Dakota/Center" }, + { "mpt", 1, -21600, "America/North_Dakota/New_Salem" }, + { "mpt", 1, -21600, "America/Regina" }, + { "mpt", 1, -21600, "America/Shiprock" }, + { "mpt", 1, -21600, "America/Swift_Current" }, + { "mpt", 1, -21600, "America/Yellowknife" }, + { "mpt", 1, -21600, "Canada/East-Saskatchewan" }, + { "mpt", 1, -21600, "Canada/Mountain" }, + { "mpt", 1, -21600, "Canada/Saskatchewan" }, + { "mpt", 1, -21600, "MST" }, + { "mpt", 0, 32400, "Pacific/Saipan" }, + { "mpt", 0, 36000, "Pacific/Saipan" }, + { "msd", 1, 14400, "Europe/Moscow" }, + { "msd", 1, 18000, "Europe/Moscow" }, + { "msd", 1, 14400, "Europe/Chisinau" }, + { "msd", 1, 14400, "Europe/Kaliningrad" }, + { "msd", 1, 14400, "Europe/Kiev" }, + { "msd", 1, 14400, "Europe/Minsk" }, + { "msd", 1, 14400, "Europe/Riga" }, + { "msd", 1, 14400, "Europe/Simferopol" }, + { "msd", 1, 14400, "Europe/Tallinn" }, + { "msd", 1, 14400, "Europe/Tiraspol" }, + { "msd", 1, 14400, "Europe/Uzhgorod" }, + { "msd", 1, 14400, "Europe/Vilnius" }, + { "msd", 1, 14400, "Europe/Zaporozhye" }, + { "msk", 0, 10800, "Europe/Moscow" }, + { "msk", 0, 10800, "Europe/Chisinau" }, + { "msk", 0, 10800, "Europe/Kaliningrad" }, + { "msk", 0, 10800, "Europe/Kiev" }, + { "msk", 0, 10800, "Europe/Minsk" }, + { "msk", 0, 10800, "Europe/Riga" }, + { "msk", 0, 10800, "Europe/Simferopol" }, + { "msk", 0, 10800, "Europe/Tallinn" }, + { "msk", 0, 10800, "Europe/Tiraspol" }, + { "msk", 0, 10800, "Europe/Uzhgorod" }, + { "msk", 0, 10800, "Europe/Vilnius" }, + { "msk", 0, 10800, "Europe/Zaporozhye" }, + { "mst", 0, -25200, "America/Denver" }, + { "mst", 0, -25200, "America/Bahia_Banderas" }, + { "mst", 0, -25200, "America/Boise" }, + { "mst", 0, -25200, "America/Cambridge_Bay" }, + { "mst", 0, -25200, "America/Chihuahua" }, + { "mst", 0, -25200, "America/Dawson_Creek" }, + { "mst", 0, -25200, "America/Edmonton" }, + { "mst", 0, -25200, "America/Ensenada" }, + { "mst", 0, -25200, "America/Hermosillo" }, + { "mst", 0, -25200, "America/Inuvik" }, + { "mst", 0, -25200, "America/Mazatlan" }, + { "mst", 0, -25200, "America/Mexico_City" }, + { "mst", 0, -25200, "America/North_Dakota/Center" }, + { "mst", 0, -25200, "America/North_Dakota/New_Salem" }, + { "mst", 0, -25200, "America/Ojinaga" }, + { "mst", 0, -25200, "America/Phoenix" }, + { "mst", 0, -25200, "America/Regina" }, + { "mst", 0, -25200, "America/Santa_Isabel" }, + { "mst", 0, -25200, "America/Shiprock" }, + { "mst", 0, -25200, "America/Swift_Current" }, + { "mst", 0, -25200, "America/Tijuana" }, + { "mst", 0, -25200, "America/Yellowknife" }, + { "mst", 0, -25200, "Canada/East-Saskatchewan" }, + { "mst", 0, -25200, "Canada/Mountain" }, + { "mst", 0, -25200, "Canada/Saskatchewan" }, + { "mst", 0, -25200, "Mexico/BajaNorte" }, + { "mst", 0, -25200, "Mexico/BajaSur" }, + { "mst", 0, -25200, "Mexico/General" }, + { "mst", 0, -25200, "MST" }, + { "mst", 1, 12648, "Europe/Moscow" }, + { "must", 1, 18000, "Indian/Mauritius" }, + { "mut", 0, 14400, "Indian/Mauritius" }, + { "mvt", 0, 18000, "Indian/Maldives" }, + { "mwt", 1, -21600, "America/Denver" }, + { "mwt", 1, -21600, "America/Boise" }, + { "mwt", 1, -21600, "America/Cambridge_Bay" }, + { "mwt", 1, -21600, "America/Edmonton" }, + { "mwt", 1, -21600, "America/North_Dakota/Center" }, + { "mwt", 1, -21600, "America/North_Dakota/New_Salem" }, + { "mwt", 1, -21600, "America/Phoenix" }, + { "mwt", 1, -21600, "America/Regina" }, + { "mwt", 1, -21600, "America/Shiprock" }, + { "mwt", 1, -21600, "America/Swift_Current" }, + { "mwt", 1, -21600, "America/Yellowknife" }, + { "mwt", 1, -21600, "Canada/East-Saskatchewan" }, + { "mwt", 1, -21600, "Canada/Mountain" }, + { "mwt", 1, -21600, "Canada/Saskatchewan" }, + { "mwt", 1, -21600, "MST" }, + { "myt", 0, 28800, "Asia/Kuala_Lumpur" }, + { "myt", 0, 28800, "Asia/Kuching" }, + { "ncst", 1, 43200, "Pacific/Noumea" }, + { "nct", 0, 39600, "Pacific/Noumea" }, + { "nddt", 1, -5400, "America/St_Johns" }, + { "nddt", 1, -5400, "Canada/Newfoundland" }, + { "ndt", 1, -9000, "America/St_Johns" }, + { "ndt", 1, -9052, "America/St_Johns" }, + { "ndt", 1, -36000, "Pacific/Midway" }, + { "ndt", 1, -9000, "America/Goose_Bay" }, + { "ndt", 1, -9000, "Canada/Newfoundland" }, + { "ndt", 1, -9052, "America/Goose_Bay" }, + { "ndt", 1, -9052, "Canada/Newfoundland" }, + { "negt", 0, -12600, "America/Paramaribo" }, + { "nest", 1, 4800, "Europe/Amsterdam" }, + { "net", 0, 1200, "Europe/Amsterdam" }, + { "nft", 0, 41400, "Pacific/Norfolk" }, + { "nmt", 0, 20928, "Asia/Novokuznetsk" }, + { "nmt", 0, 40320, "Pacific/Norfolk" }, + { "novst", 1, 25200, "Asia/Novosibirsk" }, + { "novst", 1, 28800, "Asia/Novosibirsk" }, + { "novst", 1, 25200, "Asia/Novokuznetsk" }, + { "novt", 0, 21600, "Asia/Novosibirsk" }, + { "novt", 0, 25200, "Asia/Novosibirsk" }, + { "novt", 0, 21600, "Asia/Novokuznetsk" }, + { "npt", 1, -9000, "America/St_Johns" }, + { "npt", 1, -36000, "America/Adak" }, + { "npt", 1, -36000, "America/Atka" }, + { "npt", 1, -36000, "America/Nome" }, + { "npt", 1, -9000, "America/Goose_Bay" }, + { "npt", 1, -9000, "Canada/Newfoundland" }, + { "npt", 0, 20700, "Asia/Katmandu" }, + { "npt", 0, 20700, "Asia/Kathmandu" }, + { "nrt", 0, 41400, "Pacific/Nauru" }, + { "nrt", 0, 43200, "Pacific/Nauru" }, + { "nst", 0, -12600, "America/St_Johns" }, + { "nst", 0, -12652, "America/St_Johns" }, + { "nst", 0, -12600, "America/Goose_Bay" }, + { "nst", 0, -12600, "Canada/Newfoundland" }, + { "nst", 0, -12652, "America/Goose_Bay" }, + { "nst", 0, -12652, "Canada/Newfoundland" }, + { "nst", 0, -39600, "America/Adak" }, + { "nst", 0, -39600, "America/Atka" }, + { "nst", 0, -39600, "America/Nome" }, + { "nst", 0, -39600, "Pacific/Midway" }, + { "nst", 0, -39600, "Pacific/Pago_Pago" }, + { "nst", 0, -39600, "Pacific/Samoa" }, + { "nst", 1, 4772, "Europe/Amsterdam" }, + { "nut", 0, -39600, "Pacific/Niue" }, + { "nut", 0, -40800, "Pacific/Niue" }, + { "nut", 0, -41400, "Pacific/Niue" }, + { "nwt", 1, -9000, "America/St_Johns" }, + { "nwt", 1, -36000, "America/Adak" }, + { "nwt", 1, -36000, "America/Atka" }, + { "nwt", 1, -36000, "America/Nome" }, + { "nwt", 1, -9000, "America/Goose_Bay" }, + { "nwt", 1, -9000, "Canada/Newfoundland" }, + { "nzdt", 1, 46800, "Pacific/Auckland" }, + { "nzdt", 1, 46800, "Antarctica/McMurdo" }, + { "nzdt", 1, 46800, "Antarctica/South_Pole" }, + { "nzdt", 1, 46800, "NZ" }, + { "nzmt", 0, 41400, "Pacific/Auckland" }, + { "nzmt", 0, 41400, "NZ" }, + { "nzst", 0, 43200, "Pacific/Auckland" }, + { "nzst", 1, 43200, "Pacific/Auckland" }, + { "nzst", 1, 45000, "Pacific/Auckland" }, + { "nzst", 0, 43200, "Antarctica/McMurdo" }, + { "nzst", 0, 43200, "Antarctica/South_Pole" }, + { "nzst", 0, 43200, "NZ" }, + { "nzst", 1, 43200, "NZ" }, + { "nzst", 1, 45000, "NZ" }, + { "omsst", 1, 21600, "Asia/Omsk" }, + { "omsst", 1, 25200, "Asia/Omsk" }, + { "omst", 0, 18000, "Asia/Omsk" }, + { "omst", 0, 21600, "Asia/Omsk" }, + { "orast", 1, 18000, "Asia/Oral" }, + { "orat", 0, 14400, "Asia/Oral" }, + { "orat", 0, 18000, "Asia/Oral" }, + { "pddt", 1, -21600, "America/Inuvik" }, + { "pdt", 1, -25200, "America/Los_Angeles" }, + { "pdt", 1, -25200, "America/Boise" }, + { "pdt", 1, -25200, "America/Dawson" }, + { "pdt", 1, -25200, "America/Dawson_Creek" }, + { "pdt", 1, -25200, "America/Ensenada" }, + { "pdt", 1, -25200, "America/Juneau" }, + { "pdt", 1, -25200, "America/Santa_Isabel" }, + { "pdt", 1, -25200, "America/Tijuana" }, + { "pdt", 1, -25200, "America/Vancouver" }, + { "pdt", 1, -25200, "America/Whitehorse" }, + { "pdt", 1, -25200, "Canada/Pacific" }, + { "pdt", 1, -25200, "Canada/Yukon" }, + { "pdt", 1, -25200, "Mexico/BajaNorte" }, + { "pest", 1, -14400, "America/Lima" }, + { "petst", 1, 43200, "Asia/Kamchatka" }, + { "petst", 1, 46800, "Asia/Kamchatka" }, + { "pett", 0, 39600, "Asia/Kamchatka" }, + { "pett", 0, 43200, "Asia/Kamchatka" }, + { "pet", 0, -18000, "America/Lima" }, + { "pgt", 0, 36000, "Pacific/Port_Moresby" }, + { "phot", 0, -39600, "Pacific/Enderbury" }, + { "phot", 0, -43200, "Pacific/Enderbury" }, + { "phot", 0, 46800, "Pacific/Enderbury" }, + { "phst", 1, 32400, "Asia/Manila" }, + { "pht", 0, 28800, "Asia/Manila" }, + { "pkst", 1, 21600, "Asia/Karachi" }, + { "pkt", 0, 18000, "Asia/Karachi" }, + { "pmdt", 1, -7200, "America/Miquelon" }, + { "pmst", 0, -10800, "America/Miquelon" }, + { "pmt", 0, -13236, "America/Paramaribo" }, + { "pmt", 0, -13252, "America/Paramaribo" }, + { "pmt", 0, 26240, "Asia/Pontianak" }, + { "pmt", 0, 36000, "Antarctica/DumontDUrville" }, + { "pmt", 0, 561, "Africa/Algiers" }, + { "pmt", 0, 561, "Africa/Tunis" }, + { "pmt", 0, 561, "Europe/Monaco" }, + { "pmt", 0, 561, "Europe/Paris" }, + { "pmt", 0, 561, "WET" }, + { "pnt", 0, -30600, "Pacific/Pitcairn" }, + { "pont", 0, 39600, "Pacific/Pohnpei" }, + { "pont", 0, 39600, "Pacific/Ponape" }, + { "ppmt", 0, -17340, "America/Port-au-Prince" }, + { "ppt", 1, -25200, "America/Los_Angeles" }, + { "ppt", 1, -25200, "America/Dawson_Creek" }, + { "ppt", 1, -25200, "America/Ensenada" }, + { "ppt", 1, -25200, "America/Juneau" }, + { "ppt", 1, -25200, "America/Santa_Isabel" }, + { "ppt", 1, -25200, "America/Tijuana" }, + { "ppt", 1, -25200, "America/Vancouver" }, + { "ppt", 1, -25200, "Canada/Pacific" }, + { "ppt", 1, -25200, "Mexico/BajaNorte" }, + { "pst", 0, -28800, "America/Los_Angeles" }, + { "pst", 0, -28800, "America/Bahia_Banderas" }, + { "pst", 0, -28800, "America/Boise" }, + { "pst", 0, -28800, "America/Dawson" }, + { "pst", 0, -28800, "America/Dawson_Creek" }, + { "pst", 0, -28800, "America/Ensenada" }, + { "pst", 0, -28800, "America/Hermosillo" }, + { "pst", 0, -28800, "America/Inuvik" }, + { "pst", 0, -28800, "America/Juneau" }, + { "pst", 0, -28800, "America/Mazatlan" }, + { "pst", 0, -28800, "America/Santa_Isabel" }, + { "pst", 0, -28800, "America/Tijuana" }, + { "pst", 0, -28800, "America/Vancouver" }, + { "pst", 0, -28800, "America/Whitehorse" }, + { "pst", 0, -28800, "Canada/Pacific" }, + { "pst", 0, -28800, "Canada/Yukon" }, + { "pst", 0, -28800, "Mexico/BajaNorte" }, + { "pst", 0, -28800, "Mexico/BajaSur" }, + { "pst", 0, -28800, "Pacific/Pitcairn" }, + { "pwt", 1, -25200, "America/Los_Angeles" }, + { "pwt", 1, -25200, "America/Dawson_Creek" }, + { "pwt", 1, -25200, "America/Ensenada" }, + { "pwt", 1, -25200, "America/Juneau" }, + { "pwt", 1, -25200, "America/Santa_Isabel" }, + { "pwt", 1, -25200, "America/Tijuana" }, + { "pwt", 1, -25200, "America/Vancouver" }, + { "pwt", 1, -25200, "Canada/Pacific" }, + { "pwt", 1, -25200, "Mexico/BajaNorte" }, + { "pwt", 0, 32400, "Pacific/Palau" }, + { "pyst", 1, -10800, "America/Asuncion" }, + { "pyt", 0, -10800, "America/Asuncion" }, + { "pyt", 0, -14400, "America/Asuncion" }, + { "qmt", 0, -18840, "America/Guayaquil" }, + { "qyzst", 1, 25200, "Asia/Qyzylorda" }, + { "qyzt", 0, 18000, "Asia/Qyzylorda" }, + { "qyzt", 0, 21600, "Asia/Qyzylorda" }, + { "ret", 0, 14400, "Indian/Reunion" }, + { "rmt", 0, 5784, "Europe/Riga" }, + { "rmt", 0, -5268, "Atlantic/Reykjavik" }, + { "rmt", 0, 23076, "Asia/Rangoon" }, + { "rott", 0, -10800, "Antarctica/Rothera" }, + { "sakst", 1, 39600, "Asia/Sakhalin" }, + { "sakst", 1, 43200, "Asia/Sakhalin" }, + { "sakt", 0, 36000, "Asia/Sakhalin" }, + { "sakt", 0, 39600, "Asia/Sakhalin" }, + { "samst", 1, 21600, "Asia/Samarkand" }, + { "samst", 1, 14400, "Europe/Samara" }, + { "samst", 1, 18000, "Europe/Samara" }, + { "samt", 0, 14400, "Asia/Samarkand" }, + { "samt", 0, 18000, "Asia/Samarkand" }, + { "samt", 0, -41400, "Pacific/Apia" }, + { "samt", 0, -41400, "Pacific/Pago_Pago" }, + { "samt", 0, -41400, "Pacific/Samoa" }, + { "samt", 0, 10800, "Europe/Samara" }, + { "samt", 0, 14400, "Europe/Samara" }, + { "sast", 1, 10800, "Africa/Johannesburg" }, + { "sast", 0, 5400, "Africa/Johannesburg" }, + { "sast", 0, 7200, "Africa/Johannesburg" }, + { "sast", 1, 10800, "Africa/Maseru" }, + { "sast", 1, 10800, "Africa/Windhoek" }, + { "sast", 0, 7200, "Africa/Maseru" }, + { "sast", 0, 7200, "Africa/Mbabane" }, + { "sast", 0, 7200, "Africa/Windhoek" }, + { "sbt", 0, 39600, "Pacific/Guadalcanal" }, + { "sct", 0, 14400, "Indian/Mahe" }, + { "sdmt", 0, -16800, "America/Santo_Domingo" }, + { "sgt", 0, 27000, "Asia/Singapore" }, + { "sgt", 0, 28800, "Asia/Singapore" }, + { "shest", 1, 21600, "Asia/Aqtau" }, + { "shet", 0, 18000, "Asia/Aqtau" }, + { "shet", 0, 21600, "Asia/Aqtau" }, + { "sjmt", 0, -20180, "America/Costa_Rica" }, + { "slst", 1, -1200, "Africa/Freetown" }, + { "slst", 1, 3600, "Africa/Freetown" }, + { "smt", 0, 25580, "Asia/Saigon" }, + { "smt", 0, -13884, "Atlantic/Stanley" }, + { "smt", 0, -16966, "America/Santiago" }, + { "smt", 0, -16966, "Chile/Continental" }, + { "smt", 0, 24925, "Asia/Kuala_Lumpur" }, + { "smt", 0, 24925, "Asia/Singapore" }, + { "smt", 0, 25580, "Asia/Ho_Chi_Minh" }, + { "smt", 0, 25580, "Asia/Phnom_Penh" }, + { "smt", 0, 25580, "Asia/Vientiane" }, + { "smt", 0, 8160, "Europe/Simferopol" }, + { "srt", 0, -10800, "America/Paramaribo" }, + { "srt", 0, -12600, "America/Paramaribo" }, + { "sst", 0, -39600, "Pacific/Samoa" }, + { "sst", 0, -39600, "Pacific/Midway" }, + { "sst", 0, -39600, "Pacific/Pago_Pago" }, + { "stat", 0, 10800, "Europe/Volgograd" }, + { "stat", 0, 14400, "Europe/Volgograd" }, + { "svest", 1, 18000, "Asia/Yekaterinburg" }, + { "svest", 1, 21600, "Asia/Yekaterinburg" }, + { "svet", 0, 14400, "Asia/Yekaterinburg" }, + { "svet", 0, 18000, "Asia/Yekaterinburg" }, + { "swat", 0, 5400, "Africa/Windhoek" }, + { "syot", 0, 10800, "Antarctica/Syowa" }, + { "taht", 0, -36000, "Pacific/Tahiti" }, + { "tasst", 1, 25200, "Asia/Samarkand" }, + { "tasst", 1, 21600, "Asia/Tashkent" }, + { "tasst", 1, 25200, "Asia/Tashkent" }, + { "tast", 0, 21600, "Asia/Samarkand" }, + { "tast", 0, 18000, "Asia/Tashkent" }, + { "tast", 0, 21600, "Asia/Tashkent" }, + { "tbist", 1, 14400, "Asia/Tbilisi" }, + { "tbist", 1, 18000, "Asia/Tbilisi" }, + { "tbit", 0, 10800, "Asia/Tbilisi" }, + { "tbit", 0, 14400, "Asia/Tbilisi" }, + { "tbmt", 0, 10756, "Asia/Tbilisi" }, + { "tft", 0, 18000, "Indian/Kerguelen" }, + { "tjt", 0, 18000, "Asia/Dushanbe" }, + { "tkt", 0, -36000, "Pacific/Fakaofo" }, + { "tlt", 0, 28800, "Asia/Dili" }, + { "tlt", 0, 32400, "Asia/Dili" }, + { "tmt", 0, 12344, "Asia/Tehran" }, + { "tmt", 0, 14400, "Asia/Ashgabat" }, + { "tmt", 0, 14400, "Asia/Ashkhabad" }, + { "tmt", 0, 18000, "Asia/Ashgabat" }, + { "tmt", 0, 18000, "Asia/Ashkhabad" }, + { "tmt", 0, 5940, "Europe/Tallinn" }, + { "tost", 1, 50400, "Pacific/Tongatapu" }, + { "tot", 0, 44400, "Pacific/Tongatapu" }, + { "tot", 0, 46800, "Pacific/Tongatapu" }, + { "trst", 1, 14400, "Europe/Istanbul" }, + { "trst", 1, 14400, "Asia/Istanbul" }, + { "trt", 0, 10800, "Europe/Istanbul" }, + { "trt", 0, 10800, "Asia/Istanbul" }, + { "tsat", 0, 10800, "Europe/Volgograd" }, + { "tvt", 0, 43200, "Pacific/Funafuti" }, + { "uct", 0, 0, "Etc/UCT" }, + { "uct", 0, 0, "UCT" }, + { "ulast", 1, 32400, "Asia/Ulaanbaatar" }, + { "ulast", 1, 32400, "Asia/Ulan_Bator" }, + { "ulat", 0, 25200, "Asia/Ulaanbaatar" }, + { "ulat", 0, 28800, "Asia/Ulaanbaatar" }, + { "ulat", 0, 25200, "Asia/Choibalsan" }, + { "ulat", 0, 25200, "Asia/Ulan_Bator" }, + { "ulat", 0, 28800, "Asia/Choibalsan" }, + { "ulat", 0, 28800, "Asia/Ulan_Bator" }, + { "urast", 1, 18000, "Asia/Oral" }, + { "urast", 1, 21600, "Asia/Oral" }, + { "urat", 0, 14400, "Asia/Oral" }, + { "urat", 0, 18000, "Asia/Oral" }, + { "urat", 0, 21600, "Asia/Oral" }, + { "urut", 0, 21600, "Asia/Urumqi" }, + { "utc", 0, 0, "Etc/Universal" }, + { "utc", 0, 0, "Etc/UTC" }, + { "utc", 0, 0, "Etc/Zulu" }, + { "utc", 0, 0, "GMT" }, + { "utc", 0, 0, "UTC" }, + { "utc", 0, 0, "UTC" }, + { "uyhst", 1, -10800, "America/Montevideo" }, + { "uyhst", 1, -9000, "America/Montevideo" }, + { "uyst", 1, -7200, "America/Montevideo" }, + { "uyt", 0, -10800, "America/Montevideo" }, + { "uyt", 0, -12600, "America/Montevideo" }, + { "uzst", 1, 21600, "Asia/Samarkand" }, + { "uzst", 1, 21600, "Asia/Tashkent" }, + { "uzt", 0, 18000, "Asia/Samarkand" }, + { "uzt", 0, 18000, "Asia/Tashkent" }, + { "vet", 0, -14400, "America/Caracas" }, + { "vet", 0, -16200, "America/Caracas" }, + { "vlasst", 1, 36000, "Asia/Vladivostok" }, + { "vlast", 0, 32400, "Asia/Vladivostok" }, + { "vlast", 1, 39600, "Asia/Vladivostok" }, + { "vlat", 0, 32400, "Asia/Vladivostok" }, + { "vlat", 0, 36000, "Asia/Vladivostok" }, + { "volst", 1, 14400, "Europe/Volgograd" }, + { "volst", 1, 18000, "Europe/Volgograd" }, + { "volt", 0, 10800, "Europe/Volgograd" }, + { "volt", 0, 14400, "Europe/Volgograd" }, + { "vost", 0, 21600, "Antarctica/Vostok" }, + { "vust", 1, 43200, "Pacific/Efate" }, + { "vut", 0, 39600, "Pacific/Efate" }, + { "wakt", 0, 43200, "Pacific/Wake" }, + { "warst", 1, -10800, "America/Mendoza" }, + { "warst", 1, -10800, "America/Argentina/Jujuy" }, + { "warst", 1, -10800, "America/Argentina/Mendoza" }, + { "warst", 1, -10800, "America/Argentina/San_Luis" }, + { "warst", 1, -10800, "America/Jujuy" }, + { "wart", 0, -14400, "America/Mendoza" }, + { "wart", 0, -14400, "America/Argentina/Catamarca" }, + { "wart", 0, -14400, "America/Argentina/ComodRivadavia" }, + { "wart", 0, -14400, "America/Argentina/Cordoba" }, + { "wart", 0, -14400, "America/Argentina/Jujuy" }, + { "wart", 0, -14400, "America/Argentina/La_Rioja" }, + { "wart", 0, -14400, "America/Argentina/Mendoza" }, + { "wart", 0, -14400, "America/Argentina/Rio_Gallegos" }, + { "wart", 0, -14400, "America/Argentina/Salta" }, + { "wart", 0, -14400, "America/Argentina/San_Juan" }, + { "wart", 0, -14400, "America/Argentina/San_Luis" }, + { "wart", 0, -14400, "America/Argentina/Tucuman" }, + { "wart", 0, -14400, "America/Argentina/Ushuaia" }, + { "wart", 0, -14400, "America/Catamarca" }, + { "wart", 0, -14400, "America/Cordoba" }, + { "wart", 0, -14400, "America/Jujuy" }, + { "wart", 0, -14400, "America/Rosario" }, + { "wast", 1, 7200, "Africa/Windhoek" }, + { "wast", 1, 7200, "Africa/Ndjamena" }, + { "wat", 0, -3600, "Africa/Dakar" }, + { "wat", 0, -3600, "Africa/Bamako" }, + { "wat", 0, -3600, "Africa/Banjul" }, + { "wat", 0, -3600, "Africa/Bissau" }, + { "wat", 0, -3600, "Africa/Conakry" }, + { "wat", 0, -3600, "Africa/El_Aaiun" }, + { "wat", 0, -3600, "Africa/Freetown" }, + { "wat", 0, -3600, "Africa/Niamey" }, + { "wat", 0, -3600, "Africa/Nouakchott" }, + { "wat", 0, -3600, "Africa/Timbuktu" }, + { "wat", 0, 0, "Africa/Freetown" }, + { "wat", 0, 3600, "Africa/Brazzaville" }, + { "wat", 0, 3600, "Africa/Bangui" }, + { "wat", 0, 3600, "Africa/Douala" }, + { "wat", 0, 3600, "Africa/Kinshasa" }, + { "wat", 0, 3600, "Africa/Lagos" }, + { "wat", 0, 3600, "Africa/Libreville" }, + { "wat", 0, 3600, "Africa/Luanda" }, + { "wat", 0, 3600, "Africa/Malabo" }, + { "wat", 0, 3600, "Africa/Ndjamena" }, + { "wat", 0, 3600, "Africa/Niamey" }, + { "wat", 0, 3600, "Africa/Porto-Novo" }, + { "wat", 0, 3600, "Africa/Windhoek" }, + { "wemt", 1, 7200, "Europe/Lisbon" }, + { "wemt", 1, 7200, "Europe/Madrid" }, + { "wemt", 1, 7200, "Europe/Monaco" }, + { "wemt", 1, 7200, "Europe/Paris" }, + { "wemt", 1, 7200, "WET" }, + { "west", 1, 3600, "Europe/Paris" }, + { "west", 1, 3600, "Africa/Algiers" }, + { "west", 1, 3600, "Africa/Casablanca" }, + { "west", 1, 3600, "Africa/Ceuta" }, + { "west", 1, 3600, "Atlantic/Canary" }, + { "west", 1, 3600, "Atlantic/Faeroe" }, + { "west", 1, 3600, "Atlantic/Faroe" }, + { "west", 1, 3600, "Atlantic/Madeira" }, + { "west", 1, 3600, "Europe/Brussels" }, + { "west", 1, 3600, "Europe/Lisbon" }, + { "west", 1, 3600, "Europe/Luxembourg" }, + { "west", 1, 3600, "Europe/Madrid" }, + { "west", 1, 3600, "Europe/Monaco" }, + { "west", 1, 3600, "WET" }, + { "west", 1, 7200, "Europe/Luxembourg" }, + { "wet", 0, 0, "Europe/Paris" }, + { "wet", 0, 0, "Africa/Algiers" }, + { "wet", 0, 0, "Africa/Casablanca" }, + { "wet", 0, 0, "Africa/Ceuta" }, + { "wet", 0, 0, "Africa/El_Aaiun" }, + { "wet", 0, 0, "Atlantic/Azores" }, + { "wet", 0, 0, "Atlantic/Canary" }, + { "wet", 0, 0, "Atlantic/Faeroe" }, + { "wet", 0, 0, "Atlantic/Faroe" }, + { "wet", 0, 0, "Atlantic/Madeira" }, + { "wet", 0, 0, "Europe/Andorra" }, + { "wet", 0, 0, "Europe/Brussels" }, + { "wet", 0, 0, "Europe/Lisbon" }, + { "wet", 0, 0, "Europe/Luxembourg" }, + { "wet", 0, 0, "Europe/Madrid" }, + { "wet", 0, 0, "Europe/Monaco" }, + { "wet", 0, 0, "WET" }, + { "wet", 0, 3600, "Europe/Luxembourg" }, + { "wft", 0, 43200, "Pacific/Wallis" }, + { "wgst", 1, -7200, "America/Godthab" }, + { "wgst", 1, -7200, "America/Danmarkshavn" }, + { "wgt", 0, -10800, "America/Godthab" }, + { "wgt", 0, -10800, "America/Danmarkshavn" }, + { "wit", 0, 25200, "Asia/Jakarta" }, + { "wit", 0, 27000, "Asia/Jakarta" }, + { "wit", 0, 28800, "Asia/Jakarta" }, + { "wit", 0, 25200, "Asia/Pontianak" }, + { "wit", 0, 27000, "Asia/Pontianak" }, + { "wit", 0, 28800, "Asia/Pontianak" }, + { "wmt", 0, 5040, "Europe/Vilnius" }, + { "wmt", 0, 5040, "Europe/Warsaw" }, + { "wsdt", 1, -36000, "Pacific/Apia" }, + { "wst", 0, 28800, "Australia/Perth" }, + { "wst", 1, 32400, "Australia/Perth" }, + { "wst", 0, -39600, "Pacific/Apia" }, + { "wst", 0, 28800, "Antarctica/Casey" }, + { "wst", 0, 28800, "Australia/West" }, + { "wst", 1, 32400, "Australia/West" }, + { "yakst", 1, 32400, "Asia/Yakutsk" }, + { "yakst", 1, 36000, "Asia/Yakutsk" }, + { "yakt", 0, 28800, "Asia/Yakutsk" }, + { "yakt", 0, 32400, "Asia/Yakutsk" }, + { "yddt", 1, -25200, "America/Dawson" }, + { "yddt", 1, -25200, "America/Whitehorse" }, + { "yddt", 1, -25200, "Canada/Yukon" }, + { "ydt", 1, -28800, "America/Dawson" }, + { "ydt", 1, -28800, "America/Whitehorse" }, + { "ydt", 1, -28800, "America/Yakutat" }, + { "ydt", 1, -28800, "Canada/Yukon" }, + { "yekst", 1, 21600, "Asia/Yekaterinburg" }, + { "yekt", 0, 18000, "Asia/Yekaterinburg" }, + { "yerst", 1, 14400, "Asia/Yerevan" }, + { "yerst", 1, 18000, "Asia/Yerevan" }, + { "yert", 0, 10800, "Asia/Yerevan" }, + { "yert", 0, 14400, "Asia/Yerevan" }, + { "ypt", 1, -28800, "America/Dawson" }, + { "ypt", 1, -28800, "America/Whitehorse" }, + { "ypt", 1, -28800, "America/Yakutat" }, + { "ypt", 1, -28800, "Canada/Yukon" }, + { "yst", 0, -32400, "America/Anchorage" }, + { "yst", 0, -32400, "America/Dawson" }, + { "yst", 0, -32400, "America/Juneau" }, + { "yst", 0, -32400, "America/Nome" }, + { "yst", 0, -32400, "America/Whitehorse" }, + { "yst", 0, -32400, "America/Yakutat" }, + { "yst", 0, -32400, "Canada/Yukon" }, + { "ywt", 1, -28800, "America/Dawson" }, + { "ywt", 1, -28800, "America/Whitehorse" }, + { "ywt", 1, -28800, "America/Yakutat" }, + { "ywt", 1, -28800, "Canada/Yukon" }, + { "a", 0, 3600, NULL }, + { "b", 0, 7200, NULL }, + { "c", 0, 10800, NULL }, + { "d", 0, 14400, NULL }, + { "e", 0, 18000, NULL }, + { "f", 0, 21600, NULL }, + { "g", 0, 25200, NULL }, + { "h", 0, 28800, NULL }, + { "i", 0, 32400, NULL }, + { "k", 0, 36000, NULL }, + { "l", 0, 39600, NULL }, + { "m", 0, 43200, NULL }, + { "n", 0, -3600, NULL }, + { "o", 0, -7200, NULL }, + { "p", 0, -10800, NULL }, + { "q", 0, -14400, NULL }, + { "r", 0, -18000, NULL }, + { "s", 0, -21600, NULL }, + { "t", 0, -25200, NULL }, + { "u", 0, -28800, NULL }, + { "v", 0, -32400, NULL }, + { "w", 0, -36000, NULL }, + { "x", 0, -39600, NULL }, + { "y", 0, -43200, NULL }, + { "zzz", 0, 0, "Antarctica/Davis" }, + { "zzz", 0, 0, "America/Cambridge_Bay" }, + { "zzz", 0, 0, "America/Inuvik" }, + { "zzz", 0, 0, "America/Iqaluit" }, + { "zzz", 0, 0, "America/Pangnirtung" }, + { "zzz", 0, 0, "America/Rankin_Inlet" }, + { "zzz", 0, 0, "America/Resolute" }, + { "zzz", 0, 0, "America/Yellowknife" }, + { "zzz", 0, 0, "Antarctica/Casey" }, + { "zzz", 0, 0, "Antarctica/DumontDUrville" }, + { "zzz", 0, 0, "Antarctica/Macquarie" }, + { "zzz", 0, 0, "Antarctica/Mawson" }, + { "zzz", 0, 0, "Antarctica/McMurdo" }, + { "zzz", 0, 0, "Antarctica/Palmer" }, + { "zzz", 0, 0, "Antarctica/Rothera" }, + { "zzz", 0, 0, "Antarctica/South_Pole" }, + { "zzz", 0, 0, "Antarctica/Syowa" }, + { "zzz", 0, 0, "Antarctica/Vostok" }, + { "zzz", 0, 0, "Indian/Kerguelen" }, + { "z", 0, 0, NULL }, diff --git a/ext/date/lib/tm2unixtime.c b/ext/date/lib/tm2unixtime.c new file mode 100644 index 0000000..e15a381 --- /dev/null +++ b/ext/date/lib/tm2unixtime.c @@ -0,0 +1,471 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#include "timelib.h" + +/* jan feb mrt apr may jun jul aug sep oct nov dec */ +static int month_tab_leap[12] = { -1, 30, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }; +static int month_tab[12] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }; + +/* dec jan feb mrt apr may jun jul aug sep oct nov dec */ +static int days_in_month_leap[13] = { 31, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; +static int days_in_month[13] = { 31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; + +static int do_range_limit(timelib_sll start, timelib_sll end, timelib_sll adj, timelib_sll *a, timelib_sll *b) +{ + if (*a < start) { + *b -= (start - *a - 1) / adj + 1; + *a += adj * ((start - *a - 1) / adj + 1); + } + if (*a >= end) { + *b += *a / adj; + *a -= adj * (*a / adj); + } + return 0; +} + +static void inc_month(timelib_sll *y, timelib_sll *m) +{ + (*m)++; + if (*m > 12) { + *m -= 12; + (*y)++; + } +} + +static void dec_month(timelib_sll *y, timelib_sll *m) +{ + (*m)--; + if (*m < 1) { + *m += 12; + (*y)--; + } +} + +static void do_range_limit_days_relative(timelib_sll *base_y, timelib_sll *base_m, timelib_sll *y, timelib_sll *m, timelib_sll *d, timelib_sll invert) +{ + timelib_sll leapyear; + timelib_sll month, year; + timelib_sll days; + + do_range_limit(1, 13, 12, base_m, base_y); + + year = *base_y; + month = *base_m; + +/* + printf( "S: Y%d M%d %d %d %d %d\n", year, month, *y, *m, *d, days); +*/ + if (!invert) { + while (*d < 0) { + dec_month(&year, &month); + leapyear = timelib_is_leap(year); + days = leapyear ? days_in_month_leap[month] : days_in_month[month]; + + /* printf( "I Y%d M%d %d %d %d %d\n", year, month, *y, *m, *d, days); */ + + *d += days; + (*m)--; + } + } else { + while (*d < 0) { + leapyear = timelib_is_leap(year); + days = leapyear ? days_in_month_leap[month] : days_in_month[month]; + + /* printf( "I Y%d M%d %d %d %d %d\n", year, month, *y, *m, *d, days); */ + + *d += days; + (*m)--; + inc_month(&year, &month); + } + } + /* + printf( "E: Y%d M%d %d %d %d %d\n", year, month, *y, *m, *d, days); + */ +} + +static int do_range_limit_days(timelib_sll *y, timelib_sll *m, timelib_sll *d) +{ + timelib_sll leapyear; + timelib_sll days_this_month; + timelib_sll last_month, last_year; + timelib_sll days_last_month; + + /* can jump an entire leap year period quickly */ + if (*d >= DAYS_PER_LYEAR_PERIOD || *d <= -DAYS_PER_LYEAR_PERIOD) { + *y += YEARS_PER_LYEAR_PERIOD * (*d / DAYS_PER_LYEAR_PERIOD); + *d -= DAYS_PER_LYEAR_PERIOD * (*d / DAYS_PER_LYEAR_PERIOD); + } + + do_range_limit(1, 13, 12, m, y); + + leapyear = timelib_is_leap(*y); + days_this_month = leapyear ? days_in_month_leap[*m] : days_in_month[*m]; + last_month = (*m) - 1; + + if (last_month < 1) { + last_month += 12; + last_year = (*y) - 1; + } else { + last_year = (*y); + } + leapyear = timelib_is_leap(last_year); + days_last_month = leapyear ? days_in_month_leap[last_month] : days_in_month[last_month]; + + if (*d <= 0) { + *d += days_last_month; + (*m)--; + return 1; + } + if (*d > days_this_month) { + *d -= days_this_month; + (*m)++; + return 1; + } + return 0; +} + +static void do_adjust_for_weekday(timelib_time* time) +{ + timelib_sll current_dow, difference; + + current_dow = timelib_day_of_week(time->y, time->m, time->d); + if (time->relative.weekday_behavior == 2) + { + if (time->relative.weekday == 0) { + time->relative.weekday = 7; + } + time->d -= current_dow; + time->d += time->relative.weekday; + return; + } + difference = time->relative.weekday - current_dow; + if ((time->relative.d < 0 && difference < 0) || (time->relative.d >= 0 && difference <= -time->relative.weekday_behavior)) { + difference += 7; + } + if (time->relative.weekday >= 0) { + time->d += difference; + } else { + time->d -= (7 - (abs(time->relative.weekday) - current_dow)); + } + time->relative.have_weekday_relative = 0; +} + +void timelib_do_rel_normalize(timelib_time *base, timelib_rel_time *rt) +{ + do {} while (do_range_limit(0, 60, 60, &rt->s, &rt->i)); + do {} while (do_range_limit(0, 60, 60, &rt->i, &rt->h)); + do {} while (do_range_limit(0, 24, 24, &rt->h, &rt->d)); + do {} while (do_range_limit(0, 12, 12, &rt->m, &rt->y)); + + do_range_limit_days_relative(&base->y, &base->m, &rt->y, &rt->m, &rt->d, rt->invert); + do {} while (do_range_limit(0, 12, 12, &rt->m, &rt->y)); +} + +void timelib_do_normalize(timelib_time* time) +{ + if (time->s != TIMELIB_UNSET) do {} while (do_range_limit(0, 60, 60, &time->s, &time->i)); + if (time->s != TIMELIB_UNSET) do {} while (do_range_limit(0, 60, 60, &time->i, &time->h)); + if (time->s != TIMELIB_UNSET) do {} while (do_range_limit(0, 24, 24, &time->h, &time->d)); + do {} while (do_range_limit(1, 13, 12, &time->m, &time->y)); + + do {} while (do_range_limit_days(&time->y, &time->m, &time->d)); + do {} while (do_range_limit(1, 13, 12, &time->m, &time->y)); +} + +static void do_adjust_relative(timelib_time* time) +{ + if (time->relative.have_weekday_relative) { + do_adjust_for_weekday(time); + } + timelib_do_normalize(time); + + if (time->have_relative) { + time->s += time->relative.s; + time->i += time->relative.i; + time->h += time->relative.h; + + time->d += time->relative.d; + time->m += time->relative.m; + time->y += time->relative.y; + } + switch (time->relative.first_last_day_of) { + case 1: /* first */ + time->d = 1; + break; + case 2: /* last */ + time->d = 0; + time->m++; + break; + } + timelib_do_normalize(time); +} + +static void do_adjust_special_weekday(timelib_time* time) +{ + timelib_sll current_dow, count; + + count = time->relative.special.amount; + + current_dow = timelib_day_of_week(time->y, time->m, time->d); + if (count == 0) { + /* skip over saturday and sunday */ + if (current_dow == 6) { + time->d += 2; + } + /* skip over sunday */ + if (current_dow == 0) { + time->d += 1; + } + } else if (count > 0) { + /* skip over saturday and sunday */ + if (current_dow == 5) { + time->d += 2; + } + /* skip over sunday */ + if (current_dow == 6) { + time->d += 1; + } + /* add increments of 5 weekdays as a week */ + time->d += (count / 5) * 7; + /* if current DOW plus the remainder > 5, add two days */ + current_dow = timelib_day_of_week(time->y, time->m, time->d); + time->d += (count % 5); + if ((count % 5) + current_dow > 5) { + time->d += 2; + } + } else if (count < 0) { + /* skip over sunday and saturday */ + if (current_dow == 1) { + time->d -= 2; + } + /* skip over satruday */ + if (current_dow == 0 ) { + time->d -= 1; + } + /* subtract increments of 5 weekdays as a week */ + time->d += (count / 5) * 7; + /* if current DOW minus the remainder < 0, subtract two days */ + current_dow = timelib_day_of_week(time->y, time->m, time->d); + time->d += (count % 5); + if ((count % 5) + current_dow < 1) { + time->d -= 2; + } + } +} + +static void do_adjust_special(timelib_time* time) +{ + if (time->relative.have_special_relative) { + switch (time->relative.special.type) { + case TIMELIB_SPECIAL_WEEKDAY: + do_adjust_special_weekday(time); + break; + } + } + timelib_do_normalize(time); + memset(&(time->relative.special), 0, sizeof(time->relative.special)); +} + +static void do_adjust_special_early(timelib_time* time) +{ + if (time->relative.have_special_relative) { + switch (time->relative.special.type) { + case TIMELIB_SPECIAL_DAY_OF_WEEK_IN_MONTH: + time->d = 1; + time->m += time->relative.m; + time->relative.m = 0; + break; + case TIMELIB_SPECIAL_LAST_DAY_OF_WEEK_IN_MONTH: + time->d = 1; + time->m += time->relative.m + 1; + time->relative.m = 0; + break; + } + } + timelib_do_normalize(time); +} + +static timelib_sll do_years(timelib_sll year) +{ + timelib_sll i; + timelib_sll res = 0; + timelib_sll eras; + + eras = (year - 1970) / 40000; + if (eras != 0) { + year = year - (eras * 40000); + res += (SECS_PER_ERA * eras * 100); + } + + if (year >= 1970) { + for (i = year - 1; i >= 1970; i--) { + if (timelib_is_leap(i)) { + res += (DAYS_PER_LYEAR * SECS_PER_DAY); + } else { + res += (DAYS_PER_YEAR * SECS_PER_DAY); + } + } + } else { + for (i = 1969; i >= year; i--) { + if (timelib_is_leap(i)) { + res -= (DAYS_PER_LYEAR * SECS_PER_DAY); + } else { + res -= (DAYS_PER_YEAR * SECS_PER_DAY); + } + } + } + return res; +} + +static timelib_sll do_months(timelib_ull month, timelib_ull year) +{ + if (timelib_is_leap(year)) { + return ((month_tab_leap[month - 1] + 1) * SECS_PER_DAY); + } else { + return ((month_tab[month - 1]) * SECS_PER_DAY); + } +} + +static timelib_sll do_days(timelib_ull day) +{ + return ((day - 1) * SECS_PER_DAY); +} + +static timelib_sll do_time(timelib_ull hour, timelib_ull minute, timelib_ull second) +{ + timelib_sll res = 0; + + res += hour * 3600; + res += minute * 60; + res += second; + return res; +} + +static timelib_sll do_adjust_timezone(timelib_time *tz, timelib_tzinfo *tzi) +{ + switch (tz->zone_type) { + case TIMELIB_ZONETYPE_OFFSET: + + tz->is_localtime = 1; + return tz->z * 60; + break; + + case TIMELIB_ZONETYPE_ABBR: { + timelib_sll tmp; + + tz->is_localtime = 1; + tmp = tz->z; + tmp -= tz->dst * 60; + tmp *= 60; + return tmp; + } + break; + + case TIMELIB_ZONETYPE_ID: + tzi = tz->tz_info; + /* Break intentionally missing */ + + default: + /* No timezone in struct, fallback to reference if possible */ + if (tzi) { + timelib_time_offset *before, *after; + timelib_sll tmp; + int in_transistion; + + tz->is_localtime = 1; + before = timelib_get_time_zone_info(tz->sse, tzi); + after = timelib_get_time_zone_info(tz->sse - before->offset, tzi); + timelib_set_timezone(tz, tzi); + + in_transistion = ( + ((tz->sse - after->offset) >= (after->transistion_time + (before->offset - after->offset))) && + ((tz->sse - after->offset) < after->transistion_time) + ); + + if ((before->offset != after->offset) && !in_transistion) { + tmp = -after->offset; + } else { + tmp = -tz->z; + } + timelib_time_offset_dtor(before); + timelib_time_offset_dtor(after); + + { + timelib_time_offset *gmt_offset; + + gmt_offset = timelib_get_time_zone_info(tz->sse + tmp, tzi); + tz->z = gmt_offset->offset; + + tz->dst = gmt_offset->is_dst; + if (tz->tz_abbr) { + free(tz->tz_abbr); + } + tz->tz_abbr = strdup(gmt_offset->abbr); + timelib_time_offset_dtor(gmt_offset); + } + return tmp; + } + } + return 0; +} + +void timelib_update_ts(timelib_time* time, timelib_tzinfo* tzi) +{ + timelib_sll res = 0; + + do_adjust_special_early(time); + do_adjust_relative(time); + do_adjust_special(time); + res += do_years(time->y); + res += do_months(time->m, time->y); + res += do_days(time->d); + res += do_time(time->h, time->i, time->s); + time->sse = res; + + res += do_adjust_timezone(time, tzi); + time->sse = res; + + time->sse_uptodate = 1; + time->have_relative = time->relative.have_weekday_relative = time->relative.have_special_relative = 0; +} + +#if 0 +int main(void) +{ + timelib_sll res; + timelib_time time; + + time = timelib_strtotime("10 Feb 2005 06:07:03 PM CET"); /* 1108055223 */ + printf ("%04d-%02d-%02d %02d:%02d:%02d.%-5d %+04d %1d", + time.y, time.m, time.d, time.h, time.i, time.s, time.f, time.z, time.dst); + if (time.have_relative) { + printf ("%3dY %3dM %3dD / %3dH %3dM %3dS", + time.relative.y, time.relative.m, time.relative.d, time.relative.h, time.relative.i, time.relative.s); + } + if (time.have_weekday_relative) { + printf (" / %d", time.relative.weekday); + } + res = time2unixtime(&time); + printf("%Ld\n", res); + + return 0; +} +#endif diff --git a/ext/date/lib/unixtime2tm.c b/ext/date/lib/unixtime2tm.c new file mode 100644 index 0000000..c177fee --- /dev/null +++ b/ext/date/lib/unixtime2tm.c @@ -0,0 +1,265 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#include "timelib.h" + +#include + +#ifdef HAVE_STDLIB_H +#include +#endif + +#ifdef HAVE_STRING_H +#include +#else +#include +#endif + +static int month_tab_leap[12] = { -1, 30, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }; +static int month_tab[12] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }; + + +/* Converts a Unix timestamp value into broken down time, in GMT */ +void timelib_unixtime2gmt(timelib_time* tm, timelib_sll ts) +{ + timelib_sll days, remainder, tmp_days; + timelib_sll cur_year = 1970; + timelib_sll i; + timelib_sll hours, minutes, seconds; + int *months; + + days = ts / SECS_PER_DAY; + remainder = ts - (days * SECS_PER_DAY); + if (ts < 0 && remainder == 0) { + days++; + remainder -= SECS_PER_DAY; + } + TIMELIB_DEBUG(printf("days=%lld, rem=%lld\n", days, remainder);); + + if (ts >= 0) { + tmp_days = days + 1; + + if (tmp_days >= DAYS_PER_LYEAR_PERIOD || tmp_days <= -DAYS_PER_LYEAR_PERIOD) { + cur_year += YEARS_PER_LYEAR_PERIOD * (tmp_days / DAYS_PER_LYEAR_PERIOD); + tmp_days -= DAYS_PER_LYEAR_PERIOD * (tmp_days / DAYS_PER_LYEAR_PERIOD); + } + + while (tmp_days >= DAYS_PER_LYEAR) { + cur_year++; + if (timelib_is_leap(cur_year)) { + tmp_days -= DAYS_PER_LYEAR; + } else { + tmp_days -= DAYS_PER_YEAR; + } + } + } else { + tmp_days = days; + + /* Guess why this might be for, it has to do with a pope ;-). It's also + * only valid for Great Brittain and it's colonies. It needs fixing for + * other locales. *sigh*, why is this crap so complex! */ + /* + if (ts <= TIMELIB_LL_CONST(-6857352000)) { + tmp_days -= 11; + } + */ + + while (tmp_days <= 0) { + if (tmp_days < -1460970) { + cur_year -= 4000; + TIMELIB_DEBUG(printf("tmp_days=%lld, year=%lld\n", tmp_days, cur_year);); + tmp_days += 1460970; + } else { + cur_year--; + TIMELIB_DEBUG(printf("tmp_days=%lld, year=%lld\n", tmp_days, cur_year);); + if (timelib_is_leap(cur_year)) { + tmp_days += DAYS_PER_LYEAR; + } else { + tmp_days += DAYS_PER_YEAR; + } + } + } + remainder += SECS_PER_DAY; + } + TIMELIB_DEBUG(printf("tmp_days=%lld, year=%lld\n", tmp_days, cur_year);); + + months = timelib_is_leap(cur_year) ? month_tab_leap : month_tab; + if (timelib_is_leap(cur_year) && cur_year < 1970) { + tmp_days--; + } + i = 11; + while (i > 0) { + TIMELIB_DEBUG(printf("month=%lld (%d)\n", i, months[i]);); + if (tmp_days > months[i]) { + break; + } + i--; + } + TIMELIB_DEBUG(printf("A: ts=%lld, year=%lld, month=%lld, day=%lld,", ts, cur_year, i + 1, tmp_days - months[i]);); + + /* That was the date, now we do the tiiiime */ + hours = remainder / 3600; + minutes = (remainder - hours * 3600) / 60; + seconds = remainder % 60; + TIMELIB_DEBUG(printf(" hour=%lld, minute=%lld, second=%lld\n", hours, minutes, seconds);); + + tm->y = cur_year; + tm->m = i + 1; + tm->d = tmp_days - months[i]; + tm->h = hours; + tm->i = minutes; + tm->s = seconds; + tm->z = 0; + tm->dst = 0; + tm->sse = ts; + tm->sse_uptodate = 1; + tm->tim_uptodate = 1; + tm->is_localtime = 0; +} + +void timelib_update_from_sse(timelib_time *tm) +{ + timelib_sll sse; + + sse = tm->sse; + + switch (tm->zone_type) { + case TIMELIB_ZONETYPE_ABBR: + case TIMELIB_ZONETYPE_OFFSET: { + int z = tm->z; + signed int dst = tm->dst; + + timelib_unixtime2gmt(tm, tm->sse - (tm->z * 60) + (tm->dst * 3600)); + + tm->z = z; + tm->dst = dst; + goto cleanup; + } + + case TIMELIB_ZONETYPE_ID: { + timelib_time_offset *gmt_offset; + + gmt_offset = timelib_get_time_zone_info(tm->sse, tm->tz_info); + timelib_unixtime2gmt(tm, tm->sse + gmt_offset->offset); + timelib_time_offset_dtor(gmt_offset); + + goto cleanup; + } + + default: + timelib_unixtime2gmt(tm, tm->sse); + goto cleanup; + } +cleanup: + tm->sse = sse; + tm->is_localtime = 1; + tm->have_zone = 1; +} + +void timelib_unixtime2local(timelib_time *tm, timelib_sll ts) +{ + timelib_time_offset *gmt_offset; + timelib_tzinfo *tz = tm->tz_info; + + switch (tm->zone_type) { + case TIMELIB_ZONETYPE_ABBR: + case TIMELIB_ZONETYPE_OFFSET: { + int z = tm->z; + signed int dst = tm->dst; + + timelib_unixtime2gmt(tm, ts - (tm->z * 60) + (tm->dst * 3600)); + + tm->z = z; + tm->dst = dst; + break; + } + + case TIMELIB_ZONETYPE_ID: + gmt_offset = timelib_get_time_zone_info(ts, tz); + timelib_unixtime2gmt(tm, ts + gmt_offset->offset); + + /* we need to reset the sse here as unixtime2gmt modifies it */ + tm->sse = ts; + tm->dst = gmt_offset->is_dst; + tm->z = gmt_offset->offset; + tm->tz_info = tz; + + timelib_time_tz_abbr_update(tm, gmt_offset->abbr); + timelib_time_offset_dtor(gmt_offset); + break; + + default: + tm->is_localtime = 0; + tm->have_zone = 0; + return; + } + + tm->is_localtime = 1; + tm->have_zone = 1; +} + +void timelib_set_timezone(timelib_time *t, timelib_tzinfo *tz) +{ + timelib_time_offset *gmt_offset; + + gmt_offset = timelib_get_time_zone_info(t->sse, tz); + t->z = gmt_offset->offset; +/* + if (t->dst != gmt_offset->is_dst) { + printf("ERROR (%d, %d)\n", t->dst, gmt_offset->is_dst); + exit(1); + } +*/ + t->dst = gmt_offset->is_dst; + t->tz_info = tz; + if (t->tz_abbr) { + free(t->tz_abbr); + } + t->tz_abbr = strdup(gmt_offset->abbr); + timelib_time_offset_dtor(gmt_offset); + + t->have_zone = 1; + t->zone_type = TIMELIB_ZONETYPE_ID; +} + +/* Converts the time stored in the struct to localtime if localtime = true, + * otherwise it converts it to gmttime. This is only done when necessary + * ofcourse. */ +int timelib_apply_localtime(timelib_time *t, unsigned int localtime) +{ + if (localtime) { + /* Converting from GMT time to local time */ + TIMELIB_DEBUG(printf("Converting from GMT time to local time\n");); + + /* Check if TZ is set */ + if (!t->tz_info) { + TIMELIB_DEBUG(printf("E: No timezone configured, can't switch to local time\n");); + return -1; + } + + timelib_unixtime2local(t, t->sse); + } else { + /* Converting from local time to GMT time */ + TIMELIB_DEBUG(printf("Converting from local time to GMT time\n");); + + timelib_unixtime2gmt(t, t->sse); + } + return 0; +} diff --git a/ext/date/php_date.c b/ext/date/php_date.c new file mode 100644 index 0000000..fd6453f --- /dev/null +++ b/ext/date/php_date.c @@ -0,0 +1,4259 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ + */ + +/* $Id$ */ + +#include "php.h" +#include "php_streams.h" +#include "php_main.h" +#include "php_globals.h" +#include "php_ini.h" +#include "ext/standard/info.h" +#include "ext/standard/php_versioning.h" +#include "ext/standard/php_math.h" +#include "php_date.h" +#include "zend_interfaces.h" +#include "lib/timelib.h" +#include + +#ifdef PHP_WIN32 +static __inline __int64 php_date_llabs( __int64 i ) { return i >= 0? i: -i; } +#elif defined(__GNUC__) && __GNUC__ < 3 +static __inline __int64_t php_date_llabs( __int64_t i ) { return i >= 0 ? i : -i; } +#else +static inline long long php_date_llabs( long long i ) { return i >= 0 ? i : -i; } +#endif + +/* {{{ arginfo */ +ZEND_BEGIN_ARG_INFO_EX(arginfo_date, 0, 0, 1) + ZEND_ARG_INFO(0, format) + ZEND_ARG_INFO(0, timestamp) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_gmdate, 0, 0, 1) + ZEND_ARG_INFO(0, format) + ZEND_ARG_INFO(0, timestamp) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_idate, 0, 0, 1) + ZEND_ARG_INFO(0, format) + ZEND_ARG_INFO(0, timestamp) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_strtotime, 0, 0, 1) + ZEND_ARG_INFO(0, time) + ZEND_ARG_INFO(0, now) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mktime, 0, 0, 0) + ZEND_ARG_INFO(0, hour) + ZEND_ARG_INFO(0, min) + ZEND_ARG_INFO(0, sec) + ZEND_ARG_INFO(0, mon) + ZEND_ARG_INFO(0, day) + ZEND_ARG_INFO(0, year) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_gmmktime, 0, 0, 0) + ZEND_ARG_INFO(0, hour) + ZEND_ARG_INFO(0, min) + ZEND_ARG_INFO(0, sec) + ZEND_ARG_INFO(0, mon) + ZEND_ARG_INFO(0, day) + ZEND_ARG_INFO(0, year) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_checkdate, 0) + ZEND_ARG_INFO(0, month) + ZEND_ARG_INFO(0, day) + ZEND_ARG_INFO(0, year) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_strftime, 0, 0, 1) + ZEND_ARG_INFO(0, format) + ZEND_ARG_INFO(0, timestamp) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_gmstrftime, 0, 0, 1) + ZEND_ARG_INFO(0, format) + ZEND_ARG_INFO(0, timestamp) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_time, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_localtime, 0, 0, 0) + ZEND_ARG_INFO(0, timestamp) + ZEND_ARG_INFO(0, associative_array) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_getdate, 0, 0, 0) + ZEND_ARG_INFO(0, timestamp) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_date_default_timezone_set, 0) + ZEND_ARG_INFO(0, timezone_identifier) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_date_default_timezone_get, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_sunrise, 0, 0, 1) + ZEND_ARG_INFO(0, time) + ZEND_ARG_INFO(0, format) + ZEND_ARG_INFO(0, latitude) + ZEND_ARG_INFO(0, longitude) + ZEND_ARG_INFO(0, zenith) + ZEND_ARG_INFO(0, gmt_offset) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_sunset, 0, 0, 1) + ZEND_ARG_INFO(0, time) + ZEND_ARG_INFO(0, format) + ZEND_ARG_INFO(0, latitude) + ZEND_ARG_INFO(0, longitude) + ZEND_ARG_INFO(0, zenith) + ZEND_ARG_INFO(0, gmt_offset) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_date_sun_info, 0) + ZEND_ARG_INFO(0, time) + ZEND_ARG_INFO(0, latitude) + ZEND_ARG_INFO(0, longitude) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_create, 0, 0, 0) + ZEND_ARG_INFO(0, time) + ZEND_ARG_INFO(0, object) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_create_from_format, 0, 0, 2) + ZEND_ARG_INFO(0, format) + ZEND_ARG_INFO(0, time) + ZEND_ARG_INFO(0, object) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_parse, 0, 0, 1) + ZEND_ARG_INFO(0, date) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_parse_from_format, 0, 0, 2) + ZEND_ARG_INFO(0, format) + ZEND_ARG_INFO(0, date) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_date_get_last_errors, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_format, 0, 0, 2) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, format) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_method_format, 0, 0, 1) + ZEND_ARG_INFO(0, format) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_modify, 0, 0, 2) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, modify) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_method_modify, 0, 0, 1) + ZEND_ARG_INFO(0, modify) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_add, 0, 0, 2) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, interval) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_method_add, 0, 0, 1) + ZEND_ARG_INFO(0, interval) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_sub, 0, 0, 2) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, interval) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_method_sub, 0, 0, 1) + ZEND_ARG_INFO(0, interval) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_timezone_get, 0, 0, 1) + ZEND_ARG_INFO(0, object) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_date_method_timezone_get, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_timezone_set, 0, 0, 2) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, timezone) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_method_timezone_set, 0, 0, 1) + ZEND_ARG_INFO(0, timezone) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_offset_get, 0, 0, 1) + ZEND_ARG_INFO(0, object) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_date_method_offset_get, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_diff, 0, 0, 2) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, object2) + ZEND_ARG_INFO(0, absolute) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_method_diff, 0, 0, 1) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, absolute) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_time_set, 0, 0, 3) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, hour) + ZEND_ARG_INFO(0, minute) + ZEND_ARG_INFO(0, second) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_method_time_set, 0, 0, 2) + ZEND_ARG_INFO(0, hour) + ZEND_ARG_INFO(0, minute) + ZEND_ARG_INFO(0, second) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_date_set, 0, 0, 4) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, year) + ZEND_ARG_INFO(0, month) + ZEND_ARG_INFO(0, day) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_method_date_set, 0, 0, 3) + ZEND_ARG_INFO(0, year) + ZEND_ARG_INFO(0, month) + ZEND_ARG_INFO(0, day) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_isodate_set, 0, 0, 3) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, year) + ZEND_ARG_INFO(0, week) + ZEND_ARG_INFO(0, day) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_method_isodate_set, 0, 0, 2) + ZEND_ARG_INFO(0, year) + ZEND_ARG_INFO(0, week) + ZEND_ARG_INFO(0, day) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_timestamp_set, 0, 0, 2) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, unixtimestamp) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_method_timestamp_set, 0, 0, 1) + ZEND_ARG_INFO(0, unixtimestamp) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_timestamp_get, 0, 0, 1) + ZEND_ARG_INFO(0, object) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_date_method_timestamp_get, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_timezone_open, 0, 0, 1) + ZEND_ARG_INFO(0, timezone) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_timezone_name_get, 0, 0, 1) + ZEND_ARG_INFO(0, object) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_timezone_method_name_get, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_timezone_name_from_abbr, 0, 0, 1) + ZEND_ARG_INFO(0, abbr) + ZEND_ARG_INFO(0, gmtoffset) + ZEND_ARG_INFO(0, isdst) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_timezone_offset_get, 0, 0, 2) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, datetime) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_timezone_method_offset_get, 0, 0, 1) + ZEND_ARG_INFO(0, datetime) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_timezone_transitions_get, 0, 0, 1) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, timestamp_begin) + ZEND_ARG_INFO(0, timestamp_end) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_timezone_method_transitions_get, 0) + ZEND_ARG_INFO(0, timestamp_begin) + ZEND_ARG_INFO(0, timestamp_end) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_timezone_location_get, 0, 0, 1) + ZEND_ARG_INFO(0, object) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_timezone_method_location_get, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_timezone_identifiers_list, 0, 0, 0) + ZEND_ARG_INFO(0, what) + ZEND_ARG_INFO(0, country) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_timezone_abbreviations_list, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_timezone_version_get, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_interval_create_from_date_string, 0, 0, 1) + ZEND_ARG_INFO(0, time) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_interval_format, 0, 0, 2) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, format) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo_date_method_interval_format, 0) + ZEND_ARG_INFO(0, format) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_period_construct, 0, 0, 3) + ZEND_ARG_INFO(0, start) + ZEND_ARG_INFO(0, interval) + ZEND_ARG_INFO(0, end) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_date_interval_construct, 0, 0, 0) + ZEND_ARG_INFO(0, interval_spec) +ZEND_END_ARG_INFO() +/* }}} */ + +/* {{{ Function table */ +const zend_function_entry date_functions[] = { + PHP_FE(strtotime, arginfo_strtotime) + PHP_FE(date, arginfo_date) + PHP_FE(idate, arginfo_idate) + PHP_FE(gmdate, arginfo_gmdate) + PHP_FE(mktime, arginfo_mktime) + PHP_FE(gmmktime, arginfo_gmmktime) + PHP_FE(checkdate, arginfo_checkdate) + +#ifdef HAVE_STRFTIME + PHP_FE(strftime, arginfo_strftime) + PHP_FE(gmstrftime, arginfo_gmstrftime) +#endif + + PHP_FE(time, arginfo_time) + PHP_FE(localtime, arginfo_localtime) + PHP_FE(getdate, arginfo_getdate) + + /* Advanced Interface */ + PHP_FE(date_create, arginfo_date_create) + PHP_FE(date_create_from_format, arginfo_date_create_from_format) + PHP_FE(date_parse, arginfo_date_parse) + PHP_FE(date_parse_from_format, arginfo_date_parse_from_format) + PHP_FE(date_get_last_errors, arginfo_date_get_last_errors) + PHP_FE(date_format, arginfo_date_format) + PHP_FE(date_modify, arginfo_date_modify) + PHP_FE(date_add, arginfo_date_add) + PHP_FE(date_sub, arginfo_date_sub) + PHP_FE(date_timezone_get, arginfo_date_timezone_get) + PHP_FE(date_timezone_set, arginfo_date_timezone_set) + PHP_FE(date_offset_get, arginfo_date_offset_get) + PHP_FE(date_diff, arginfo_date_diff) + + PHP_FE(date_time_set, arginfo_date_time_set) + PHP_FE(date_date_set, arginfo_date_date_set) + PHP_FE(date_isodate_set, arginfo_date_isodate_set) + PHP_FE(date_timestamp_set, arginfo_date_timestamp_set) + PHP_FE(date_timestamp_get, arginfo_date_timestamp_get) + + PHP_FE(timezone_open, arginfo_timezone_open) + PHP_FE(timezone_name_get, arginfo_timezone_name_get) + PHP_FE(timezone_name_from_abbr, arginfo_timezone_name_from_abbr) + PHP_FE(timezone_offset_get, arginfo_timezone_offset_get) + PHP_FE(timezone_transitions_get, arginfo_timezone_transitions_get) + PHP_FE(timezone_location_get, arginfo_timezone_location_get) + PHP_FE(timezone_identifiers_list, arginfo_timezone_identifiers_list) + PHP_FE(timezone_abbreviations_list, arginfo_timezone_abbreviations_list) + PHP_FE(timezone_version_get, arginfo_timezone_version_get) + + PHP_FE(date_interval_create_from_date_string, arginfo_date_interval_create_from_date_string) + PHP_FE(date_interval_format, arginfo_date_interval_format) + + /* Options and Configuration */ + PHP_FE(date_default_timezone_set, arginfo_date_default_timezone_set) + PHP_FE(date_default_timezone_get, arginfo_date_default_timezone_get) + + /* Astronomical functions */ + PHP_FE(date_sunrise, arginfo_date_sunrise) + PHP_FE(date_sunset, arginfo_date_sunset) + PHP_FE(date_sun_info, arginfo_date_sun_info) + PHP_FE_END +}; + +const zend_function_entry date_funcs_date[] = { + PHP_ME(DateTime, __construct, arginfo_date_create, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) + PHP_ME(DateTime, __wakeup, NULL, ZEND_ACC_PUBLIC) + PHP_ME(DateTime, __set_state, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) + PHP_ME_MAPPING(createFromFormat, date_create_from_format, arginfo_date_create_from_format, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) + PHP_ME_MAPPING(getLastErrors, date_get_last_errors, arginfo_date_get_last_errors, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) + PHP_ME_MAPPING(format, date_format, arginfo_date_method_format, 0) + PHP_ME_MAPPING(modify, date_modify, arginfo_date_method_modify, 0) + PHP_ME_MAPPING(add, date_add, arginfo_date_method_add, 0) + PHP_ME_MAPPING(sub, date_sub, arginfo_date_method_sub, 0) + PHP_ME_MAPPING(getTimezone, date_timezone_get, arginfo_date_method_timezone_get, 0) + PHP_ME_MAPPING(setTimezone, date_timezone_set, arginfo_date_method_timezone_set, 0) + PHP_ME_MAPPING(getOffset, date_offset_get, arginfo_date_method_offset_get, 0) + PHP_ME_MAPPING(setTime, date_time_set, arginfo_date_method_time_set, 0) + PHP_ME_MAPPING(setDate, date_date_set, arginfo_date_method_date_set, 0) + PHP_ME_MAPPING(setISODate, date_isodate_set, arginfo_date_method_isodate_set, 0) + PHP_ME_MAPPING(setTimestamp, date_timestamp_set, arginfo_date_method_timestamp_set, 0) + PHP_ME_MAPPING(getTimestamp, date_timestamp_get, arginfo_date_method_timestamp_get, 0) + PHP_ME_MAPPING(diff, date_diff, arginfo_date_method_diff, 0) + PHP_FE_END +}; + +const zend_function_entry date_funcs_timezone[] = { + PHP_ME(DateTimeZone, __construct, arginfo_timezone_open, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) + PHP_ME_MAPPING(getName, timezone_name_get, arginfo_timezone_method_name_get, 0) + PHP_ME_MAPPING(getOffset, timezone_offset_get, arginfo_timezone_method_offset_get, 0) + PHP_ME_MAPPING(getTransitions, timezone_transitions_get, arginfo_timezone_method_transitions_get, 0) + PHP_ME_MAPPING(getLocation, timezone_location_get, arginfo_timezone_method_location_get, 0) + PHP_ME_MAPPING(listAbbreviations, timezone_abbreviations_list, arginfo_timezone_abbreviations_list, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) + PHP_ME_MAPPING(listIdentifiers, timezone_identifiers_list, arginfo_timezone_identifiers_list, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) + PHP_FE_END +}; + +const zend_function_entry date_funcs_interval[] = { + PHP_ME(DateInterval, __construct, arginfo_date_interval_construct, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) + PHP_ME(DateInterval, __wakeup, NULL, ZEND_ACC_PUBLIC) + PHP_ME(DateInterval, __set_state, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) + PHP_ME_MAPPING(format, date_interval_format, arginfo_date_method_interval_format, 0) + PHP_ME_MAPPING(createFromDateString, date_interval_create_from_date_string, arginfo_date_interval_create_from_date_string, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) + PHP_FE_END +}; + +const zend_function_entry date_funcs_period[] = { + PHP_ME(DatePeriod, __construct, arginfo_date_period_construct, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC) + PHP_FE_END +}; + +static char* guess_timezone(const timelib_tzdb *tzdb TSRMLS_DC); +static void date_register_classes(TSRMLS_D); +/* }}} */ + +ZEND_DECLARE_MODULE_GLOBALS(date) +static PHP_GINIT_FUNCTION(date); + +/* True global */ +timelib_tzdb *php_date_global_timezone_db; +int php_date_global_timezone_db_enabled; + +#define DATE_DEFAULT_LATITUDE "31.7667" +#define DATE_DEFAULT_LONGITUDE "35.2333" + +/* on 90'35; common sunset declaration (start of sun body appear) */ +#define DATE_SUNSET_ZENITH "90.583333" + +/* on 90'35; common sunrise declaration (sun body disappeared) */ +#define DATE_SUNRISE_ZENITH "90.583333" + +static PHP_INI_MH(OnUpdate_date_timezone); + +/* {{{ INI Settings */ +PHP_INI_BEGIN() + STD_PHP_INI_ENTRY("date.timezone", "", PHP_INI_ALL, OnUpdate_date_timezone, default_timezone, zend_date_globals, date_globals) + PHP_INI_ENTRY("date.default_latitude", DATE_DEFAULT_LATITUDE, PHP_INI_ALL, NULL) + PHP_INI_ENTRY("date.default_longitude", DATE_DEFAULT_LONGITUDE, PHP_INI_ALL, NULL) + PHP_INI_ENTRY("date.sunset_zenith", DATE_SUNSET_ZENITH, PHP_INI_ALL, NULL) + PHP_INI_ENTRY("date.sunrise_zenith", DATE_SUNRISE_ZENITH, PHP_INI_ALL, NULL) +PHP_INI_END() +/* }}} */ + +zend_class_entry *date_ce_date, *date_ce_timezone, *date_ce_interval, *date_ce_period; + + +PHPAPI zend_class_entry *php_date_get_date_ce(void) +{ + return date_ce_date; +} + +PHPAPI zend_class_entry *php_date_get_timezone_ce(void) +{ + return date_ce_timezone; +} + +static zend_object_handlers date_object_handlers_date; +static zend_object_handlers date_object_handlers_timezone; +static zend_object_handlers date_object_handlers_interval; +static zend_object_handlers date_object_handlers_period; + +#define DATE_SET_CONTEXT \ + zval *object; \ + object = getThis(); \ + +#define DATE_FETCH_OBJECT \ + php_date_obj *obj; \ + DATE_SET_CONTEXT; \ + if (object) { \ + if (zend_parse_parameters_none() == FAILURE) { \ + return; \ + } \ + } else { \ + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, NULL, "O", &object, date_ce_date) == FAILURE) { \ + RETURN_FALSE; \ + } \ + } \ + obj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); \ + +#define DATE_CHECK_INITIALIZED(member, class_name) \ + if (!(member)) { \ + php_error_docref(NULL TSRMLS_CC, E_WARNING, "The " #class_name " object has not been correctly initialized by its constructor"); \ + RETURN_FALSE; \ + } + +static void date_object_free_storage_date(void *object TSRMLS_DC); +static void date_object_free_storage_timezone(void *object TSRMLS_DC); +static void date_object_free_storage_interval(void *object TSRMLS_DC); +static void date_object_free_storage_period(void *object TSRMLS_DC); + +static zend_object_value date_object_new_date(zend_class_entry *class_type TSRMLS_DC); +static zend_object_value date_object_new_timezone(zend_class_entry *class_type TSRMLS_DC); +static zend_object_value date_object_new_interval(zend_class_entry *class_type TSRMLS_DC); +static zend_object_value date_object_new_period(zend_class_entry *class_type TSRMLS_DC); + +static zend_object_value date_object_clone_date(zval *this_ptr TSRMLS_DC); +static zend_object_value date_object_clone_timezone(zval *this_ptr TSRMLS_DC); +static zend_object_value date_object_clone_interval(zval *this_ptr TSRMLS_DC); +static zend_object_value date_object_clone_period(zval *this_ptr TSRMLS_DC); + +static int date_object_compare_date(zval *d1, zval *d2 TSRMLS_DC); +static HashTable *date_object_get_gc(zval *object, zval ***table, int *n TSRMLS_DC); +static HashTable *date_object_get_properties(zval *object TSRMLS_DC); +static HashTable *date_object_get_gc_interval(zval *object, zval ***table, int *n TSRMLS_DC); +static HashTable *date_object_get_properties_interval(zval *object TSRMLS_DC); + +zval *date_interval_read_property(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC); +void date_interval_write_property(zval *object, zval *member, zval *value, const zend_literal *key TSRMLS_DC); + +/* {{{ Module struct */ +zend_module_entry date_module_entry = { + STANDARD_MODULE_HEADER_EX, + NULL, + NULL, + "date", /* extension name */ + date_functions, /* function list */ + PHP_MINIT(date), /* process startup */ + PHP_MSHUTDOWN(date), /* process shutdown */ + PHP_RINIT(date), /* request startup */ + PHP_RSHUTDOWN(date), /* request shutdown */ + PHP_MINFO(date), /* extension info */ + PHP_VERSION, /* extension version */ + PHP_MODULE_GLOBALS(date), /* globals descriptor */ + PHP_GINIT(date), /* globals ctor */ + NULL, /* globals dtor */ + NULL, /* post deactivate */ + STANDARD_MODULE_PROPERTIES_EX +}; +/* }}} */ + + +/* {{{ PHP_GINIT_FUNCTION */ +static PHP_GINIT_FUNCTION(date) +{ + date_globals->default_timezone = NULL; + date_globals->timezone = NULL; + date_globals->tzcache = NULL; + date_globals->timezone_valid = 0; +} +/* }}} */ + + +static void _php_date_tzinfo_dtor(void *tzinfo) +{ + timelib_tzinfo **tzi = (timelib_tzinfo **)tzinfo; + + timelib_tzinfo_dtor(*tzi); +} + +/* {{{ PHP_RINIT_FUNCTION */ +PHP_RINIT_FUNCTION(date) +{ + if (DATEG(timezone)) { + efree(DATEG(timezone)); + } + DATEG(timezone) = NULL; + DATEG(tzcache) = NULL; + DATEG(last_errors) = NULL; + + return SUCCESS; +} +/* }}} */ + +/* {{{ PHP_RSHUTDOWN_FUNCTION */ +PHP_RSHUTDOWN_FUNCTION(date) +{ + if (DATEG(timezone)) { + efree(DATEG(timezone)); + } + DATEG(timezone) = NULL; + if(DATEG(tzcache)) { + zend_hash_destroy(DATEG(tzcache)); + FREE_HASHTABLE(DATEG(tzcache)); + DATEG(tzcache) = NULL; + } + if (DATEG(last_errors)) { + timelib_error_container_dtor(DATEG(last_errors)); + DATEG(last_errors) = NULL; + } + + return SUCCESS; +} +/* }}} */ + +#define DATE_TIMEZONEDB php_date_global_timezone_db ? php_date_global_timezone_db : timelib_builtin_db() + +/* + * RFC822, Section 5.1: http://www.ietf.org/rfc/rfc822.txt + * date-time = [ day "," ] date time ; dd mm yy hh:mm:ss zzz + * day = "Mon" / "Tue" / "Wed" / "Thu" / "Fri" / "Sat" / "Sun" + * date = 1*2DIGIT month 2DIGIT ; day month year e.g. 20 Jun 82 + * month = "Jan" / "Feb" / "Mar" / "Apr" / "May" / "Jun" / "Jul" / "Aug" / "Sep" / "Oct" / "Nov" / "Dec" + * time = hour zone ; ANSI and Military + * hour = 2DIGIT ":" 2DIGIT [":" 2DIGIT] ; 00:00:00 - 23:59:59 + * zone = "UT" / "GMT" / "EST" / "EDT" / "CST" / "CDT" / "MST" / "MDT" / "PST" / "PDT" / 1ALPHA / ( ("+" / "-") 4DIGIT ) + */ +#define DATE_FORMAT_RFC822 "D, d M y H:i:s O" + +/* + * RFC850, Section 2.1.4: http://www.ietf.org/rfc/rfc850.txt + * Format must be acceptable both to the ARPANET and to the getdate routine. + * One format that is acceptable to both is Weekday, DD-Mon-YY HH:MM:SS TIMEZONE + * TIMEZONE can be any timezone name (3 or more letters) + */ +#define DATE_FORMAT_RFC850 "l, d-M-y H:i:s T" + +/* + * RFC1036, Section 2.1.2: http://www.ietf.org/rfc/rfc1036.txt + * Its format must be acceptable both in RFC-822 and to the getdate(3) + * Wdy, DD Mon YY HH:MM:SS TIMEZONE + * There is no hope of having a complete list of timezones. Universal + * Time (GMT), the North American timezones (PST, PDT, MST, MDT, CST, + * CDT, EST, EDT) and the +/-hhmm offset specifed in RFC-822 should be supported. + */ +#define DATE_FORMAT_RFC1036 "D, d M y H:i:s O" + +/* + * RFC1123, Section 5.2.14: http://www.ietf.org/rfc/rfc1123.txt + * RFC-822 Date and Time Specification: RFC-822 Section 5 + * The syntax for the date is hereby changed to: date = 1*2DIGIT month 2*4DIGIT + */ +#define DATE_FORMAT_RFC1123 "D, d M Y H:i:s O" + +/* + * RFC2822, Section 3.3: http://www.ietf.org/rfc/rfc2822.txt + * FWS = ([*WSP CRLF] 1*WSP) / ; Folding white space + * CFWS = *([FWS] comment) (([FWS] comment) / FWS) + * + * date-time = [ day-of-week "," ] date FWS time [CFWS] + * day-of-week = ([FWS] day-name) + * day-name = "Mon" / "Tue" / "Wed" / "Thu" / "Fri" / "Sat" / "Sun" + * date = day month year + * year = 4*DIGIT + * month = (FWS month-name FWS) + * month-name = "Jan" / "Feb" / "Mar" / "Apr" / "May" / "Jun" / "Jul" / "Aug" / "Sep" / "Oct" / "Nov" / "Dec" + * day = ([FWS] 1*2DIGIT) + * time = time-of-day FWS zone + * time-of-day = hour ":" minute [ ":" second ] + * hour = 2DIGIT + * minute = 2DIGIT + * second = 2DIGIT + * zone = (( "+" / "-" ) 4DIGIT) + */ +#define DATE_FORMAT_RFC2822 "D, d M Y H:i:s O" +/* + * RFC3339, Section 5.6: http://www.ietf.org/rfc/rfc3339.txt + * date-fullyear = 4DIGIT + * date-month = 2DIGIT ; 01-12 + * date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on month/year + * + * time-hour = 2DIGIT ; 00-23 + * time-minute = 2DIGIT ; 00-59 + * time-second = 2DIGIT ; 00-58, 00-59, 00-60 based on leap second rules + * + * time-secfrac = "." 1*DIGIT + * time-numoffset = ("+" / "-") time-hour ":" time-minute + * time-offset = "Z" / time-numoffset + * + * partial-time = time-hour ":" time-minute ":" time-second [time-secfrac] + * full-date = date-fullyear "-" date-month "-" date-mday + * full-time = partial-time time-offset + * + * date-time = full-date "T" full-time + */ +#define DATE_FORMAT_RFC3339 "Y-m-d\\TH:i:sP" + +#define DATE_FORMAT_ISO8601 "Y-m-d\\TH:i:sO" + +#define DATE_TZ_ERRMSG \ + "It is not safe to rely on the system's timezone settings. You are " \ + "*required* to use the date.timezone setting or the " \ + "date_default_timezone_set() function. In case you used any of those " \ + "methods and you are still getting this warning, you most likely " \ + "misspelled the timezone identifier. " + +#define SUNFUNCS_RET_TIMESTAMP 0 +#define SUNFUNCS_RET_STRING 1 +#define SUNFUNCS_RET_DOUBLE 2 + + +/* {{{ PHP_MINIT_FUNCTION */ +PHP_MINIT_FUNCTION(date) +{ + REGISTER_INI_ENTRIES(); + date_register_classes(TSRMLS_C); +/* + * RFC4287, Section 3.3: http://www.ietf.org/rfc/rfc4287.txt + * A Date construct is an element whose content MUST conform to the + * "date-time" production in [RFC3339]. In addition, an uppercase "T" + * character MUST be used to separate date and time, and an uppercase + * "Z" character MUST be present in the absence of a numeric time zone offset. + */ + REGISTER_STRING_CONSTANT("DATE_ATOM", DATE_FORMAT_RFC3339, CONST_CS | CONST_PERSISTENT); +/* + * Preliminary specification: http://wp.netscape.com/newsref/std/cookie_spec.html + * "This is based on RFC 822, RFC 850, RFC 1036, and RFC 1123, + * with the variations that the only legal time zone is GMT + * and the separators between the elements of the date must be dashes." + */ + REGISTER_STRING_CONSTANT("DATE_COOKIE", DATE_FORMAT_RFC850, CONST_CS | CONST_PERSISTENT); + REGISTER_STRING_CONSTANT("DATE_ISO8601", DATE_FORMAT_ISO8601, CONST_CS | CONST_PERSISTENT); + REGISTER_STRING_CONSTANT("DATE_RFC822", DATE_FORMAT_RFC822, CONST_CS | CONST_PERSISTENT); + REGISTER_STRING_CONSTANT("DATE_RFC850", DATE_FORMAT_RFC850, CONST_CS | CONST_PERSISTENT); + REGISTER_STRING_CONSTANT("DATE_RFC1036", DATE_FORMAT_RFC1036, CONST_CS | CONST_PERSISTENT); + REGISTER_STRING_CONSTANT("DATE_RFC1123", DATE_FORMAT_RFC1123, CONST_CS | CONST_PERSISTENT); + REGISTER_STRING_CONSTANT("DATE_RFC2822", DATE_FORMAT_RFC2822, CONST_CS | CONST_PERSISTENT); + REGISTER_STRING_CONSTANT("DATE_RFC3339", DATE_FORMAT_RFC3339, CONST_CS | CONST_PERSISTENT); +/* + * RSS 2.0 Specification: http://blogs.law.harvard.edu/tech/rss + * "All date-times in RSS conform to the Date and Time Specification of RFC 822, + * with the exception that the year may be expressed with two characters or four characters (four preferred)" + */ + REGISTER_STRING_CONSTANT("DATE_RSS", DATE_FORMAT_RFC1123, CONST_CS | CONST_PERSISTENT); + REGISTER_STRING_CONSTANT("DATE_W3C", DATE_FORMAT_RFC3339, CONST_CS | CONST_PERSISTENT); + + REGISTER_LONG_CONSTANT("SUNFUNCS_RET_TIMESTAMP", SUNFUNCS_RET_TIMESTAMP, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SUNFUNCS_RET_STRING", SUNFUNCS_RET_STRING, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SUNFUNCS_RET_DOUBLE", SUNFUNCS_RET_DOUBLE, CONST_CS | CONST_PERSISTENT); + + php_date_global_timezone_db = NULL; + php_date_global_timezone_db_enabled = 0; + DATEG(last_errors) = NULL; + return SUCCESS; +} +/* }}} */ + +/* {{{ PHP_MSHUTDOWN_FUNCTION */ +PHP_MSHUTDOWN_FUNCTION(date) +{ + UNREGISTER_INI_ENTRIES(); + + if (DATEG(last_errors)) { + timelib_error_container_dtor(DATEG(last_errors)); + } + + return SUCCESS; +} +/* }}} */ + +/* {{{ PHP_MINFO_FUNCTION */ +PHP_MINFO_FUNCTION(date) +{ + const timelib_tzdb *tzdb = DATE_TIMEZONEDB; + + php_info_print_table_start(); + php_info_print_table_row(2, "date/time support", "enabled"); + php_info_print_table_row(2, "\"Olson\" Timezone Database Version", tzdb->version); + php_info_print_table_row(2, "Timezone Database", php_date_global_timezone_db_enabled ? "external" : "internal"); + php_info_print_table_row(2, "Default timezone", guess_timezone(tzdb TSRMLS_CC)); + php_info_print_table_end(); + + DISPLAY_INI_ENTRIES(); +} +/* }}} */ + +/* {{{ Timezone Cache functions */ +static timelib_tzinfo *php_date_parse_tzfile(char *formal_tzname, const timelib_tzdb *tzdb TSRMLS_DC) +{ + timelib_tzinfo *tzi, **ptzi; + + if(!DATEG(tzcache)) { + ALLOC_HASHTABLE(DATEG(tzcache)); + zend_hash_init(DATEG(tzcache), 4, NULL, _php_date_tzinfo_dtor, 0); + } + + if (zend_hash_find(DATEG(tzcache), formal_tzname, strlen(formal_tzname) + 1, (void **) &ptzi) == SUCCESS) { + return *ptzi; + } + + tzi = timelib_parse_tzfile(formal_tzname, tzdb); + if (tzi) { + zend_hash_add(DATEG(tzcache), formal_tzname, strlen(formal_tzname) + 1, (void *) &tzi, sizeof(timelib_tzinfo*), NULL); + } + return tzi; +} + +timelib_tzinfo *php_date_parse_tzfile_wrapper(char *formal_tzname, const timelib_tzdb *tzdb) +{ + TSRMLS_FETCH(); + return php_date_parse_tzfile(formal_tzname, tzdb TSRMLS_CC); +} +/* }}} */ + +/* Callback to check the date.timezone only when changed increases performance */ +/* {{{ static PHP_INI_MH(OnUpdate_date_timezone) */ +static PHP_INI_MH(OnUpdate_date_timezone) +{ + if (OnUpdateString(entry, new_value, new_value_length, mh_arg1, mh_arg2, mh_arg3, stage TSRMLS_CC) == FAILURE) { + return FAILURE; + } + + DATEG(timezone_valid) = 0; + if (stage == PHP_INI_STAGE_RUNTIME) { + if (!timelib_timezone_id_is_valid(DATEG(default_timezone), DATE_TIMEZONEDB)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, DATE_TZ_ERRMSG); + } else { + DATEG(timezone_valid) = 1; + } + } + + return SUCCESS; +} +/* }}} */ + +/* {{{ Helper functions */ +static char* guess_timezone(const timelib_tzdb *tzdb TSRMLS_DC) +{ + /* Checking configure timezone */ + if (DATEG(timezone) && (strlen(DATEG(timezone))) > 0) { + return DATEG(timezone); + } + /* Check config setting for default timezone */ + if (!DATEG(default_timezone)) { + /* Special case: ext/date wasn't initialized yet */ + zval ztz; + + if (SUCCESS == zend_get_configuration_directive("date.timezone", sizeof("date.timezone"), &ztz) + && Z_TYPE(ztz) == IS_STRING && Z_STRLEN(ztz) > 0 && timelib_timezone_id_is_valid(Z_STRVAL(ztz), tzdb)) { + return Z_STRVAL(ztz); + } + } else if (*DATEG(default_timezone)) { + if (DATEG(timezone_valid) == 1) { + return DATEG(default_timezone); + } + + if (!timelib_timezone_id_is_valid(DATEG(default_timezone), tzdb)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid date.timezone value '%s', we selected the timezone 'UTC' for now.", DATEG(default_timezone)); + return "UTC"; + } + + DATEG(timezone_valid) = 1; + return DATEG(default_timezone); + } + /* Fallback to UTC */ + php_error_docref(NULL TSRMLS_CC, E_WARNING, DATE_TZ_ERRMSG "We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone."); + return "UTC"; +} + +PHPAPI timelib_tzinfo *get_timezone_info(TSRMLS_D) +{ + char *tz; + timelib_tzinfo *tzi; + + tz = guess_timezone(DATE_TIMEZONEDB TSRMLS_CC); + tzi = php_date_parse_tzfile(tz, DATE_TIMEZONEDB TSRMLS_CC); + if (! tzi) { + php_error_docref(NULL TSRMLS_CC, E_ERROR, "Timezone database is corrupt - this should *never* happen!"); + } + return tzi; +} +/* }}} */ + + +/* {{{ date() and gmdate() data */ +#include "ext/standard/php_smart_str.h" + +static char *mon_full_names[] = { + "January", "February", "March", "April", + "May", "June", "July", "August", + "September", "October", "November", "December" +}; + +static char *mon_short_names[] = { + "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" +}; + +static char *day_full_names[] = { + "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" +}; + +static char *day_short_names[] = { + "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" +}; + +static char *english_suffix(timelib_sll number) +{ + if (number >= 10 && number <= 19) { + return "th"; + } else { + switch (number % 10) { + case 1: return "st"; + case 2: return "nd"; + case 3: return "rd"; + } + } + return "th"; +} +/* }}} */ + +/* {{{ day of week helpers */ +char *php_date_full_day_name(timelib_sll y, timelib_sll m, timelib_sll d) +{ + timelib_sll day_of_week = timelib_day_of_week(y, m, d); + if (day_of_week < 0) { + return "Unknown"; + } + return day_full_names[day_of_week]; +} + +char *php_date_short_day_name(timelib_sll y, timelib_sll m, timelib_sll d) +{ + timelib_sll day_of_week = timelib_day_of_week(y, m, d); + if (day_of_week < 0) { + return "Unknown"; + } + return day_short_names[day_of_week]; +} +/* }}} */ + +/* {{{ date_format - (gm)date helper */ +static char *date_format(char *format, int format_len, timelib_time *t, int localtime) +{ + smart_str string = {0}; + int i, length; + char buffer[97]; + timelib_time_offset *offset = NULL; + timelib_sll isoweek, isoyear; + int rfc_colon; + int weekYearSet = 0; + + if (!format_len) { + return estrdup(""); + } + + if (localtime) { + if (t->zone_type == TIMELIB_ZONETYPE_ABBR) { + offset = timelib_time_offset_ctor(); + offset->offset = (t->z - (t->dst * 60)) * -60; + offset->leap_secs = 0; + offset->is_dst = t->dst; + offset->abbr = strdup(t->tz_abbr); + } else if (t->zone_type == TIMELIB_ZONETYPE_OFFSET) { + offset = timelib_time_offset_ctor(); + offset->offset = (t->z) * -60; + offset->leap_secs = 0; + offset->is_dst = 0; + offset->abbr = malloc(9); /* GMT�xxxx\0 */ + snprintf(offset->abbr, 9, "GMT%c%02d%02d", + localtime ? ((offset->offset < 0) ? '-' : '+') : '+', + localtime ? abs(offset->offset / 3600) : 0, + localtime ? abs((offset->offset % 3600) / 60) : 0 ); + } else { + offset = timelib_get_time_zone_info(t->sse, t->tz_info); + } + } + + for (i = 0; i < format_len; i++) { + rfc_colon = 0; + switch (format[i]) { + /* day */ + case 'd': length = slprintf(buffer, 32, "%02d", (int) t->d); break; + case 'D': length = slprintf(buffer, 32, "%s", php_date_short_day_name(t->y, t->m, t->d)); break; + case 'j': length = slprintf(buffer, 32, "%d", (int) t->d); break; + case 'l': length = slprintf(buffer, 32, "%s", php_date_full_day_name(t->y, t->m, t->d)); break; + case 'S': length = slprintf(buffer, 32, "%s", english_suffix(t->d)); break; + case 'w': length = slprintf(buffer, 32, "%d", (int) timelib_day_of_week(t->y, t->m, t->d)); break; + case 'N': length = slprintf(buffer, 32, "%d", (int) timelib_iso_day_of_week(t->y, t->m, t->d)); break; + case 'z': length = slprintf(buffer, 32, "%d", (int) timelib_day_of_year(t->y, t->m, t->d)); break; + + /* week */ + case 'W': + if(!weekYearSet) { timelib_isoweek_from_date(t->y, t->m, t->d, &isoweek, &isoyear); weekYearSet = 1; } + length = slprintf(buffer, 32, "%02d", (int) isoweek); break; /* iso weeknr */ + case 'o': + if(!weekYearSet) { timelib_isoweek_from_date(t->y, t->m, t->d, &isoweek, &isoyear); weekYearSet = 1; } + length = slprintf(buffer, 32, "%d", (int) isoyear); break; /* iso year */ + + /* month */ + case 'F': length = slprintf(buffer, 32, "%s", mon_full_names[t->m - 1]); break; + case 'm': length = slprintf(buffer, 32, "%02d", (int) t->m); break; + case 'M': length = slprintf(buffer, 32, "%s", mon_short_names[t->m - 1]); break; + case 'n': length = slprintf(buffer, 32, "%d", (int) t->m); break; + case 't': length = slprintf(buffer, 32, "%d", (int) timelib_days_in_month(t->y, t->m)); break; + + /* year */ + case 'L': length = slprintf(buffer, 32, "%d", timelib_is_leap((int) t->y)); break; + case 'y': length = slprintf(buffer, 32, "%02d", (int) t->y % 100); break; + case 'Y': length = slprintf(buffer, 32, "%s%04lld", t->y < 0 ? "-" : "", php_date_llabs((timelib_sll) t->y)); break; + + /* time */ + case 'a': length = slprintf(buffer, 32, "%s", t->h >= 12 ? "pm" : "am"); break; + case 'A': length = slprintf(buffer, 32, "%s", t->h >= 12 ? "PM" : "AM"); break; + case 'B': { + int retval = (((((long)t->sse)-(((long)t->sse) - ((((long)t->sse) % 86400) + 3600))) * 10) / 864); + while (retval < 0) { + retval += 1000; + } + retval = retval % 1000; + length = slprintf(buffer, 32, "%03d", retval); + break; + } + case 'g': length = slprintf(buffer, 32, "%d", (t->h % 12) ? (int) t->h % 12 : 12); break; + case 'G': length = slprintf(buffer, 32, "%d", (int) t->h); break; + case 'h': length = slprintf(buffer, 32, "%02d", (t->h % 12) ? (int) t->h % 12 : 12); break; + case 'H': length = slprintf(buffer, 32, "%02d", (int) t->h); break; + case 'i': length = slprintf(buffer, 32, "%02d", (int) t->i); break; + case 's': length = slprintf(buffer, 32, "%02d", (int) t->s); break; + case 'u': length = slprintf(buffer, 32, "%06d", (int) floor(t->f * 1000000 + 0.5)); break; + + /* timezone */ + case 'I': length = slprintf(buffer, 32, "%d", localtime ? offset->is_dst : 0); break; + case 'P': rfc_colon = 1; /* break intentionally missing */ + case 'O': length = slprintf(buffer, 32, "%c%02d%s%02d", + localtime ? ((offset->offset < 0) ? '-' : '+') : '+', + localtime ? abs(offset->offset / 3600) : 0, + rfc_colon ? ":" : "", + localtime ? abs((offset->offset % 3600) / 60) : 0 + ); + break; + case 'T': length = slprintf(buffer, 32, "%s", localtime ? offset->abbr : "GMT"); break; + case 'e': if (!localtime) { + length = slprintf(buffer, 32, "%s", "UTC"); + } else { + switch (t->zone_type) { + case TIMELIB_ZONETYPE_ID: + length = slprintf(buffer, 32, "%s", t->tz_info->name); + break; + case TIMELIB_ZONETYPE_ABBR: + length = slprintf(buffer, 32, "%s", offset->abbr); + break; + case TIMELIB_ZONETYPE_OFFSET: + length = slprintf(buffer, 32, "%c%02d:%02d", + ((offset->offset < 0) ? '-' : '+'), + abs(offset->offset / 3600), + abs((offset->offset % 3600) / 60) + ); + break; + } + } + break; + case 'Z': length = slprintf(buffer, 32, "%d", localtime ? offset->offset : 0); break; + + /* full date/time */ + case 'c': length = slprintf(buffer, 96, "%04d-%02d-%02dT%02d:%02d:%02d%c%02d:%02d", + (int) t->y, (int) t->m, (int) t->d, + (int) t->h, (int) t->i, (int) t->s, + localtime ? ((offset->offset < 0) ? '-' : '+') : '+', + localtime ? abs(offset->offset / 3600) : 0, + localtime ? abs((offset->offset % 3600) / 60) : 0 + ); + break; + case 'r': length = slprintf(buffer, 96, "%3s, %02d %3s %04d %02d:%02d:%02d %c%02d%02d", + php_date_short_day_name(t->y, t->m, t->d), + (int) t->d, mon_short_names[t->m - 1], + (int) t->y, (int) t->h, (int) t->i, (int) t->s, + localtime ? ((offset->offset < 0) ? '-' : '+') : '+', + localtime ? abs(offset->offset / 3600) : 0, + localtime ? abs((offset->offset % 3600) / 60) : 0 + ); + break; + case 'U': length = slprintf(buffer, 32, "%lld", (timelib_sll) t->sse); break; + + case '\\': if (i < format_len) i++; /* break intentionally missing */ + + default: buffer[0] = format[i]; buffer[1] = '\0'; length = 1; break; + } + smart_str_appendl(&string, buffer, length); + } + + smart_str_0(&string); + + if (localtime) { + timelib_time_offset_dtor(offset); + } + + return string.c; +} + +static void php_date(INTERNAL_FUNCTION_PARAMETERS, int localtime) +{ + char *format; + int format_len; + long ts; + char *string; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &format, &format_len, &ts) == FAILURE) { + RETURN_FALSE; + } + if (ZEND_NUM_ARGS() == 1) { + ts = time(NULL); + } + + string = php_format_date(format, format_len, ts, localtime TSRMLS_CC); + + RETVAL_STRING(string, 0); +} +/* }}} */ + +PHPAPI char *php_format_date(char *format, int format_len, time_t ts, int localtime TSRMLS_DC) /* {{{ */ +{ + timelib_time *t; + timelib_tzinfo *tzi; + char *string; + + t = timelib_time_ctor(); + + if (localtime) { + tzi = get_timezone_info(TSRMLS_C); + t->tz_info = tzi; + t->zone_type = TIMELIB_ZONETYPE_ID; + timelib_unixtime2local(t, ts); + } else { + tzi = NULL; + timelib_unixtime2gmt(t, ts); + } + + string = date_format(format, format_len, t, localtime); + + timelib_time_dtor(t); + return string; +} +/* }}} */ + +/* {{{ php_idate + */ +PHPAPI int php_idate(char format, time_t ts, int localtime TSRMLS_DC) +{ + timelib_time *t; + timelib_tzinfo *tzi; + int retval = -1; + timelib_time_offset *offset = NULL; + timelib_sll isoweek, isoyear; + + t = timelib_time_ctor(); + + if (!localtime) { + tzi = get_timezone_info(TSRMLS_C); + t->tz_info = tzi; + t->zone_type = TIMELIB_ZONETYPE_ID; + timelib_unixtime2local(t, ts); + } else { + tzi = NULL; + timelib_unixtime2gmt(t, ts); + } + + if (!localtime) { + if (t->zone_type == TIMELIB_ZONETYPE_ABBR) { + offset = timelib_time_offset_ctor(); + offset->offset = (t->z - (t->dst * 60)) * -60; + offset->leap_secs = 0; + offset->is_dst = t->dst; + offset->abbr = strdup(t->tz_abbr); + } else if (t->zone_type == TIMELIB_ZONETYPE_OFFSET) { + offset = timelib_time_offset_ctor(); + offset->offset = (t->z - (t->dst * 60)) * -60; + offset->leap_secs = 0; + offset->is_dst = t->dst; + offset->abbr = malloc(9); /* GMT�xxxx\0 */ + snprintf(offset->abbr, 9, "GMT%c%02d%02d", + !localtime ? ((offset->offset < 0) ? '-' : '+') : '+', + !localtime ? abs(offset->offset / 3600) : 0, + !localtime ? abs((offset->offset % 3600) / 60) : 0 ); + } else { + offset = timelib_get_time_zone_info(t->sse, t->tz_info); + } + } + + timelib_isoweek_from_date(t->y, t->m, t->d, &isoweek, &isoyear); + + switch (format) { + /* day */ + case 'd': case 'j': retval = (int) t->d; break; + + case 'w': retval = (int) timelib_day_of_week(t->y, t->m, t->d); break; + case 'z': retval = (int) timelib_day_of_year(t->y, t->m, t->d); break; + + /* week */ + case 'W': retval = (int) isoweek; break; /* iso weeknr */ + + /* month */ + case 'm': case 'n': retval = (int) t->m; break; + case 't': retval = (int) timelib_days_in_month(t->y, t->m); break; + + /* year */ + case 'L': retval = (int) timelib_is_leap((int) t->y); break; + case 'y': retval = (int) (t->y % 100); break; + case 'Y': retval = (int) t->y; break; + + /* Swatch Beat a.k.a. Internet Time */ + case 'B': + retval = (((((long)t->sse)-(((long)t->sse) - ((((long)t->sse) % 86400) + 3600))) * 10) / 864); + while (retval < 0) { + retval += 1000; + } + retval = retval % 1000; + break; + + /* time */ + case 'g': case 'h': retval = (int) ((t->h % 12) ? (int) t->h % 12 : 12); break; + case 'H': case 'G': retval = (int) t->h; break; + case 'i': retval = (int) t->i; break; + case 's': retval = (int) t->s; break; + + /* timezone */ + case 'I': retval = (int) (!localtime ? offset->is_dst : 0); break; + case 'Z': retval = (int) (!localtime ? offset->offset : 0); break; + + case 'U': retval = (int) t->sse; break; + } + + if (!localtime) { + timelib_time_offset_dtor(offset); + } + timelib_time_dtor(t); + + return retval; +} +/* }}} */ + +/* {{{ proto string date(string format [, long timestamp]) + Format a local date/time */ +PHP_FUNCTION(date) +{ + php_date(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1); +} +/* }}} */ + +/* {{{ proto string gmdate(string format [, long timestamp]) + Format a GMT date/time */ +PHP_FUNCTION(gmdate) +{ + php_date(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); +} +/* }}} */ + +/* {{{ proto int idate(string format [, int timestamp]) + Format a local time/date as integer */ +PHP_FUNCTION(idate) +{ + char *format; + int format_len; + long ts = 0; + int ret; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &format, &format_len, &ts) == FAILURE) { + RETURN_FALSE; + } + + if (format_len != 1) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "idate format is one char"); + RETURN_FALSE; + } + + if (ZEND_NUM_ARGS() == 1) { + ts = time(NULL); + } + + ret = php_idate(format[0], ts, 0 TSRMLS_CC); + if (ret == -1) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unrecognized date format token."); + RETURN_FALSE; + } + RETURN_LONG(ret); +} +/* }}} */ + +/* {{{ php_date_set_tzdb - NOT THREADSAFE */ +PHPAPI void php_date_set_tzdb(timelib_tzdb *tzdb) +{ + const timelib_tzdb *builtin = timelib_builtin_db(); + + if (php_version_compare(tzdb->version, builtin->version) > 0) { + php_date_global_timezone_db = tzdb; + php_date_global_timezone_db_enabled = 1; + } +} +/* }}} */ + +/* {{{ php_parse_date: Backwards compability function */ +PHPAPI signed long php_parse_date(char *string, signed long *now) +{ + timelib_time *parsed_time; + timelib_error_container *error = NULL; + int error2; + signed long retval; + + parsed_time = timelib_strtotime(string, strlen(string), &error, DATE_TIMEZONEDB, php_date_parse_tzfile_wrapper); + if (error->error_count) { + timelib_error_container_dtor(error); + return -1; + } + timelib_error_container_dtor(error); + timelib_update_ts(parsed_time, NULL); + retval = timelib_date_to_int(parsed_time, &error2); + timelib_time_dtor(parsed_time); + if (error2) { + return -1; + } + return retval; +} +/* }}} */ + + +/* {{{ proto int strtotime(string time [, int now ]) + Convert string representation of date and time to a timestamp */ +PHP_FUNCTION(strtotime) +{ + char *times, *initial_ts; + int time_len, error1, error2; + struct timelib_error_container *error; + long preset_ts = 0, ts; + + timelib_time *t, *now; + timelib_tzinfo *tzi; + + tzi = get_timezone_info(TSRMLS_C); + + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "sl", ×, &time_len, &preset_ts) != FAILURE) { + /* We have an initial timestamp */ + now = timelib_time_ctor(); + + initial_ts = emalloc(25); + snprintf(initial_ts, 24, "@%ld UTC", preset_ts); + t = timelib_strtotime(initial_ts, strlen(initial_ts), NULL, DATE_TIMEZONEDB, php_date_parse_tzfile_wrapper); /* we ignore the error here, as this should never fail */ + timelib_update_ts(t, tzi); + now->tz_info = tzi; + now->zone_type = TIMELIB_ZONETYPE_ID; + timelib_unixtime2local(now, t->sse); + timelib_time_dtor(t); + efree(initial_ts); + } else if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", ×, &time_len, &preset_ts) != FAILURE) { + /* We have no initial timestamp */ + now = timelib_time_ctor(); + now->tz_info = tzi; + now->zone_type = TIMELIB_ZONETYPE_ID; + timelib_unixtime2local(now, (timelib_sll) time(NULL)); + } else { + RETURN_FALSE; + } + + if (!time_len) { + timelib_time_dtor(now); + RETURN_FALSE; + } + + t = timelib_strtotime(times, time_len, &error, DATE_TIMEZONEDB, php_date_parse_tzfile_wrapper); + error1 = error->error_count; + timelib_error_container_dtor(error); + timelib_fill_holes(t, now, TIMELIB_NO_CLONE); + timelib_update_ts(t, tzi); + ts = timelib_date_to_int(t, &error2); + + timelib_time_dtor(now); + timelib_time_dtor(t); + + if (error1 || error2) { + RETURN_FALSE; + } else { + RETURN_LONG(ts); + } +} +/* }}} */ + + +/* {{{ php_mktime - (gm)mktime helper */ +PHPAPI void php_mktime(INTERNAL_FUNCTION_PARAMETERS, int gmt) +{ + long hou = 0, min = 0, sec = 0, mon = 0, day = 0, yea = 0, dst = -1; + timelib_time *now; + timelib_tzinfo *tzi = NULL; + long ts, adjust_seconds = 0; + int error; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|lllllll", &hou, &min, &sec, &mon, &day, &yea, &dst) == FAILURE) { + RETURN_FALSE; + } + /* Initialize structure with current time */ + now = timelib_time_ctor(); + if (gmt) { + timelib_unixtime2gmt(now, (timelib_sll) time(NULL)); + } else { + tzi = get_timezone_info(TSRMLS_C); + now->tz_info = tzi; + now->zone_type = TIMELIB_ZONETYPE_ID; + timelib_unixtime2local(now, (timelib_sll) time(NULL)); + } + /* Fill in the new data */ + switch (ZEND_NUM_ARGS()) { + case 7: + /* break intentionally missing */ + case 6: + if (yea >= 0 && yea < 70) { + yea += 2000; + } else if (yea >= 70 && yea <= 100) { + yea += 1900; + } + now->y = yea; + /* break intentionally missing again */ + case 5: + now->d = day; + /* break missing intentionally here too */ + case 4: + now->m = mon; + /* and here */ + case 3: + now->s = sec; + /* yup, this break isn't here on purpose too */ + case 2: + now->i = min; + /* last intentionally missing break */ + case 1: + now->h = hou; + break; + default: + php_error_docref(NULL TSRMLS_CC, E_STRICT, "You should be using the time() function instead"); + } + /* Update the timestamp */ + if (gmt) { + timelib_update_ts(now, NULL); + } else { + timelib_update_ts(now, tzi); + } + /* Support for the deprecated is_dst parameter */ + if (dst != -1) { + php_error_docref(NULL TSRMLS_CC, E_DEPRECATED, "The is_dst parameter is deprecated"); + if (gmt) { + /* GMT never uses DST */ + if (dst == 1) { + adjust_seconds = -3600; + } + } else { + /* Figure out is_dst for current TS */ + timelib_time_offset *tmp_offset; + tmp_offset = timelib_get_time_zone_info(now->sse, tzi); + if (dst == 1 && tmp_offset->is_dst == 0) { + adjust_seconds = -3600; + } + if (dst == 0 && tmp_offset->is_dst == 1) { + adjust_seconds = +3600; + } + timelib_time_offset_dtor(tmp_offset); + } + } + /* Clean up and return */ + ts = timelib_date_to_int(now, &error); + ts += adjust_seconds; + timelib_time_dtor(now); + + if (error) { + RETURN_FALSE; + } else { + RETURN_LONG(ts); + } +} +/* }}} */ + +/* {{{ proto int mktime([int hour [, int min [, int sec [, int mon [, int day [, int year]]]]]]) + Get UNIX timestamp for a date */ +PHP_FUNCTION(mktime) +{ + php_mktime(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); +} +/* }}} */ + +/* {{{ proto int gmmktime([int hour [, int min [, int sec [, int mon [, int day [, int year]]]]]]) + Get UNIX timestamp for a GMT date */ +PHP_FUNCTION(gmmktime) +{ + php_mktime(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1); +} +/* }}} */ + + +/* {{{ proto bool checkdate(int month, int day, int year) + Returns true(1) if it is a valid date in gregorian calendar */ +PHP_FUNCTION(checkdate) +{ + long m, d, y; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lll", &m, &d, &y) == FAILURE) { + RETURN_FALSE; + } + + if (y < 1 || y > 32767 || !timelib_valid_date(y, m, d)) { + RETURN_FALSE; + } + RETURN_TRUE; /* True : This month, day, year arguments are valid */ +} +/* }}} */ + +#ifdef HAVE_STRFTIME +/* {{{ php_strftime - (gm)strftime helper */ +PHPAPI void php_strftime(INTERNAL_FUNCTION_PARAMETERS, int gmt) +{ + char *format, *buf; + int format_len; + long timestamp = 0; + struct tm ta; + int max_reallocs = 5; + size_t buf_len = 64, real_len; + timelib_time *ts; + timelib_tzinfo *tzi; + timelib_time_offset *offset = NULL; + + timestamp = (long) time(NULL); + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &format, &format_len, ×tamp) == FAILURE) { + RETURN_FALSE; + } + + if (format_len == 0) { + RETURN_FALSE; + } + + ts = timelib_time_ctor(); + if (gmt) { + tzi = NULL; + timelib_unixtime2gmt(ts, (timelib_sll) timestamp); + } else { + tzi = get_timezone_info(TSRMLS_C); + ts->tz_info = tzi; + ts->zone_type = TIMELIB_ZONETYPE_ID; + timelib_unixtime2local(ts, (timelib_sll) timestamp); + } + ta.tm_sec = ts->s; + ta.tm_min = ts->i; + ta.tm_hour = ts->h; + ta.tm_mday = ts->d; + ta.tm_mon = ts->m - 1; + ta.tm_year = ts->y - 1900; + ta.tm_wday = timelib_day_of_week(ts->y, ts->m, ts->d); + ta.tm_yday = timelib_day_of_year(ts->y, ts->m, ts->d); + if (gmt) { + ta.tm_isdst = 0; +#if HAVE_TM_GMTOFF + ta.tm_gmtoff = 0; +#endif +#if HAVE_TM_ZONE + ta.tm_zone = "GMT"; +#endif + } else { + offset = timelib_get_time_zone_info(timestamp, tzi); + + ta.tm_isdst = offset->is_dst; +#if HAVE_TM_GMTOFF + ta.tm_gmtoff = offset->offset; +#endif +#if HAVE_TM_ZONE + ta.tm_zone = offset->abbr; +#endif + } + + buf = (char *) emalloc(buf_len); + while ((real_len=strftime(buf, buf_len, format, &ta))==buf_len || real_len==0) { + buf_len *= 2; + buf = (char *) erealloc(buf, buf_len); + if (!--max_reallocs) { + break; + } + } + + timelib_time_dtor(ts); + if (!gmt) { + timelib_time_offset_dtor(offset); + } + + if (real_len && real_len != buf_len) { + buf = (char *) erealloc(buf, real_len + 1); + RETURN_STRINGL(buf, real_len, 0); + } + efree(buf); + RETURN_FALSE; +} +/* }}} */ + +/* {{{ proto string strftime(string format [, int timestamp]) + Format a local time/date according to locale settings */ +PHP_FUNCTION(strftime) +{ + php_strftime(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); +} +/* }}} */ + +/* {{{ proto string gmstrftime(string format [, int timestamp]) + Format a GMT/UCT time/date according to locale settings */ +PHP_FUNCTION(gmstrftime) +{ + php_strftime(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1); +} +/* }}} */ +#endif + +/* {{{ proto int time(void) + Return current UNIX timestamp */ +PHP_FUNCTION(time) +{ + RETURN_LONG((long)time(NULL)); +} +/* }}} */ + +/* {{{ proto array localtime([int timestamp [, bool associative_array]]) + Returns the results of the C system call localtime as an associative array if the associative_array argument is set to 1 other wise it is a regular array */ +PHP_FUNCTION(localtime) +{ + long timestamp = (long)time(NULL); + zend_bool associative = 0; + timelib_tzinfo *tzi; + timelib_time *ts; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|lb", ×tamp, &associative) == FAILURE) { + RETURN_FALSE; + } + + tzi = get_timezone_info(TSRMLS_C); + ts = timelib_time_ctor(); + ts->tz_info = tzi; + ts->zone_type = TIMELIB_ZONETYPE_ID; + timelib_unixtime2local(ts, (timelib_sll) timestamp); + + array_init(return_value); + + if (associative) { + add_assoc_long(return_value, "tm_sec", ts->s); + add_assoc_long(return_value, "tm_min", ts->i); + add_assoc_long(return_value, "tm_hour", ts->h); + add_assoc_long(return_value, "tm_mday", ts->d); + add_assoc_long(return_value, "tm_mon", ts->m - 1); + add_assoc_long(return_value, "tm_year", ts->y - 1900); + add_assoc_long(return_value, "tm_wday", timelib_day_of_week(ts->y, ts->m, ts->d)); + add_assoc_long(return_value, "tm_yday", timelib_day_of_year(ts->y, ts->m, ts->d)); + add_assoc_long(return_value, "tm_isdst", ts->dst); + } else { + add_next_index_long(return_value, ts->s); + add_next_index_long(return_value, ts->i); + add_next_index_long(return_value, ts->h); + add_next_index_long(return_value, ts->d); + add_next_index_long(return_value, ts->m - 1); + add_next_index_long(return_value, ts->y- 1900); + add_next_index_long(return_value, timelib_day_of_week(ts->y, ts->m, ts->d)); + add_next_index_long(return_value, timelib_day_of_year(ts->y, ts->m, ts->d)); + add_next_index_long(return_value, ts->dst); + } + + timelib_time_dtor(ts); +} +/* }}} */ + +/* {{{ proto array getdate([int timestamp]) + Get date/time information */ +PHP_FUNCTION(getdate) +{ + long timestamp = (long)time(NULL); + timelib_tzinfo *tzi; + timelib_time *ts; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", ×tamp) == FAILURE) { + RETURN_FALSE; + } + + tzi = get_timezone_info(TSRMLS_C); + ts = timelib_time_ctor(); + ts->tz_info = tzi; + ts->zone_type = TIMELIB_ZONETYPE_ID; + timelib_unixtime2local(ts, (timelib_sll) timestamp); + + array_init(return_value); + + add_assoc_long(return_value, "seconds", ts->s); + add_assoc_long(return_value, "minutes", ts->i); + add_assoc_long(return_value, "hours", ts->h); + add_assoc_long(return_value, "mday", ts->d); + add_assoc_long(return_value, "wday", timelib_day_of_week(ts->y, ts->m, ts->d)); + add_assoc_long(return_value, "mon", ts->m); + add_assoc_long(return_value, "year", ts->y); + add_assoc_long(return_value, "yday", timelib_day_of_year(ts->y, ts->m, ts->d)); + add_assoc_string(return_value, "weekday", php_date_full_day_name(ts->y, ts->m, ts->d), 1); + add_assoc_string(return_value, "month", mon_full_names[ts->m - 1], 1); + add_index_long(return_value, 0, timestamp); + + timelib_time_dtor(ts); +} +/* }}} */ + +#define PHP_DATE_TIMEZONE_GROUP_AFRICA 0x0001 +#define PHP_DATE_TIMEZONE_GROUP_AMERICA 0x0002 +#define PHP_DATE_TIMEZONE_GROUP_ANTARCTICA 0x0004 +#define PHP_DATE_TIMEZONE_GROUP_ARCTIC 0x0008 +#define PHP_DATE_TIMEZONE_GROUP_ASIA 0x0010 +#define PHP_DATE_TIMEZONE_GROUP_ATLANTIC 0x0020 +#define PHP_DATE_TIMEZONE_GROUP_AUSTRALIA 0x0040 +#define PHP_DATE_TIMEZONE_GROUP_EUROPE 0x0080 +#define PHP_DATE_TIMEZONE_GROUP_INDIAN 0x0100 +#define PHP_DATE_TIMEZONE_GROUP_PACIFIC 0x0200 +#define PHP_DATE_TIMEZONE_GROUP_UTC 0x0400 +#define PHP_DATE_TIMEZONE_GROUP_ALL 0x07FF +#define PHP_DATE_TIMEZONE_GROUP_ALL_W_BC 0x0FFF +#define PHP_DATE_TIMEZONE_PER_COUNTRY 0x1000 + +#define PHP_DATE_PERIOD_EXCLUDE_START_DATE 0x0001 + + +/* define an overloaded iterator structure */ +typedef struct { + zend_object_iterator intern; + zval *date_period_zval; + zval *current; + php_period_obj *object; + int current_index; +} date_period_it; + +/* {{{ date_period_it_invalidate_current */ +static void date_period_it_invalidate_current(zend_object_iterator *iter TSRMLS_DC) +{ + date_period_it *iterator = (date_period_it *)iter; + + if (iterator->current) { + zval_ptr_dtor(&iterator->current); + iterator->current = NULL; + } +} +/* }}} */ + + +/* {{{ date_period_it_dtor */ +static void date_period_it_dtor(zend_object_iterator *iter TSRMLS_DC) +{ + date_period_it *iterator = (date_period_it *)iter; + + date_period_it_invalidate_current(iter TSRMLS_CC); + + zval_ptr_dtor(&iterator->date_period_zval); + + efree(iterator); +} +/* }}} */ + + +/* {{{ date_period_it_has_more */ +static int date_period_it_has_more(zend_object_iterator *iter TSRMLS_DC) +{ + date_period_it *iterator = (date_period_it *)iter; + php_period_obj *object = iterator->object; + timelib_time *it_time = object->current; + + /* apply modification if it's not the first iteration */ + if (!object->include_start_date || iterator->current_index > 0) { + it_time->have_relative = 1; + it_time->relative = *object->interval; + it_time->sse_uptodate = 0; + timelib_update_ts(it_time, NULL); + timelib_update_from_sse(it_time); + } + + if (object->end) { + return object->current->sse < object->end->sse ? SUCCESS : FAILURE; + } else { + return (iterator->current_index < object->recurrences) ? SUCCESS : FAILURE; + } +} +/* }}} */ + + +/* {{{ date_period_it_current_data */ +static void date_period_it_current_data(zend_object_iterator *iter, zval ***data TSRMLS_DC) +{ + date_period_it *iterator = (date_period_it *)iter; + php_period_obj *object = iterator->object; + timelib_time *it_time = object->current; + php_date_obj *newdateobj; + + /* Create new object */ + MAKE_STD_ZVAL(iterator->current); + php_date_instantiate(date_ce_date, iterator->current TSRMLS_CC); + newdateobj = (php_date_obj *) zend_object_store_get_object(iterator->current TSRMLS_CC); + newdateobj->time = timelib_time_ctor(); + *newdateobj->time = *it_time; + if (it_time->tz_abbr) { + newdateobj->time->tz_abbr = strdup(it_time->tz_abbr); + } + if (it_time->tz_info) { + newdateobj->time->tz_info = it_time->tz_info; + } + + *data = &iterator->current; +} +/* }}} */ + + +/* {{{ date_period_it_current_key */ +static int date_period_it_current_key(zend_object_iterator *iter, char **str_key, uint *str_key_len, ulong *int_key TSRMLS_DC) +{ + date_period_it *iterator = (date_period_it *)iter; + *int_key = iterator->current_index; + return HASH_KEY_IS_LONG; +} +/* }}} */ + + +/* {{{ date_period_it_move_forward */ +static void date_period_it_move_forward(zend_object_iterator *iter TSRMLS_DC) +{ + date_period_it *iterator = (date_period_it *)iter; + + iterator->current_index++; + date_period_it_invalidate_current(iter TSRMLS_CC); +} +/* }}} */ + + +/* {{{ date_period_it_rewind */ +static void date_period_it_rewind(zend_object_iterator *iter TSRMLS_DC) +{ + date_period_it *iterator = (date_period_it *)iter; + + iterator->current_index = 0; + if (iterator->object->current) { + timelib_time_dtor(iterator->object->current); + } + iterator->object->current = timelib_time_clone(iterator->object->start); + date_period_it_invalidate_current(iter TSRMLS_CC); +} +/* }}} */ + + +/* iterator handler table */ +zend_object_iterator_funcs date_period_it_funcs = { + date_period_it_dtor, + date_period_it_has_more, + date_period_it_current_data, + date_period_it_current_key, + date_period_it_move_forward, + date_period_it_rewind, + date_period_it_invalidate_current +}; + + + +zend_object_iterator *date_object_period_get_iterator(zend_class_entry *ce, zval *object, int by_ref TSRMLS_DC) +{ + date_period_it *iterator = emalloc(sizeof(date_period_it)); + php_period_obj *dpobj = (php_period_obj *)zend_object_store_get_object(object TSRMLS_CC); + + if (by_ref) { + zend_error(E_ERROR, "An iterator cannot be used with foreach by reference"); + } + + Z_ADDREF_P(object); + iterator->intern.data = (void*) dpobj; + iterator->intern.funcs = &date_period_it_funcs; + iterator->date_period_zval = object; + iterator->object = dpobj; + iterator->current = NULL; + + return (zend_object_iterator*)iterator; +} + +static void date_register_classes(TSRMLS_D) +{ + zend_class_entry ce_date, ce_timezone, ce_interval, ce_period; + + INIT_CLASS_ENTRY(ce_date, "DateTime", date_funcs_date); + ce_date.create_object = date_object_new_date; + date_ce_date = zend_register_internal_class_ex(&ce_date, NULL, NULL TSRMLS_CC); + memcpy(&date_object_handlers_date, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); + date_object_handlers_date.clone_obj = date_object_clone_date; + date_object_handlers_date.compare_objects = date_object_compare_date; + date_object_handlers_date.get_properties = date_object_get_properties; + date_object_handlers_date.get_gc = date_object_get_gc; + +#define REGISTER_DATE_CLASS_CONST_STRING(const_name, value) \ + zend_declare_class_constant_stringl(date_ce_date, const_name, sizeof(const_name)-1, value, sizeof(value)-1 TSRMLS_CC); + + REGISTER_DATE_CLASS_CONST_STRING("ATOM", DATE_FORMAT_RFC3339); + REGISTER_DATE_CLASS_CONST_STRING("COOKIE", DATE_FORMAT_RFC850); + REGISTER_DATE_CLASS_CONST_STRING("ISO8601", DATE_FORMAT_ISO8601); + REGISTER_DATE_CLASS_CONST_STRING("RFC822", DATE_FORMAT_RFC822); + REGISTER_DATE_CLASS_CONST_STRING("RFC850", DATE_FORMAT_RFC850); + REGISTER_DATE_CLASS_CONST_STRING("RFC1036", DATE_FORMAT_RFC1036); + REGISTER_DATE_CLASS_CONST_STRING("RFC1123", DATE_FORMAT_RFC1123); + REGISTER_DATE_CLASS_CONST_STRING("RFC2822", DATE_FORMAT_RFC2822); + REGISTER_DATE_CLASS_CONST_STRING("RFC3339", DATE_FORMAT_RFC3339); + REGISTER_DATE_CLASS_CONST_STRING("RSS", DATE_FORMAT_RFC1123); + REGISTER_DATE_CLASS_CONST_STRING("W3C", DATE_FORMAT_RFC3339); + + + INIT_CLASS_ENTRY(ce_timezone, "DateTimeZone", date_funcs_timezone); + ce_timezone.create_object = date_object_new_timezone; + date_ce_timezone = zend_register_internal_class_ex(&ce_timezone, NULL, NULL TSRMLS_CC); + memcpy(&date_object_handlers_timezone, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); + date_object_handlers_timezone.clone_obj = date_object_clone_timezone; + +#define REGISTER_TIMEZONE_CLASS_CONST_STRING(const_name, value) \ + zend_declare_class_constant_long(date_ce_timezone, const_name, sizeof(const_name)-1, value TSRMLS_CC); + + REGISTER_TIMEZONE_CLASS_CONST_STRING("AFRICA", PHP_DATE_TIMEZONE_GROUP_AFRICA); + REGISTER_TIMEZONE_CLASS_CONST_STRING("AMERICA", PHP_DATE_TIMEZONE_GROUP_AMERICA); + REGISTER_TIMEZONE_CLASS_CONST_STRING("ANTARCTICA", PHP_DATE_TIMEZONE_GROUP_ANTARCTICA); + REGISTER_TIMEZONE_CLASS_CONST_STRING("ARCTIC", PHP_DATE_TIMEZONE_GROUP_ARCTIC); + REGISTER_TIMEZONE_CLASS_CONST_STRING("ASIA", PHP_DATE_TIMEZONE_GROUP_ASIA); + REGISTER_TIMEZONE_CLASS_CONST_STRING("ATLANTIC", PHP_DATE_TIMEZONE_GROUP_ATLANTIC); + REGISTER_TIMEZONE_CLASS_CONST_STRING("AUSTRALIA", PHP_DATE_TIMEZONE_GROUP_AUSTRALIA); + REGISTER_TIMEZONE_CLASS_CONST_STRING("EUROPE", PHP_DATE_TIMEZONE_GROUP_EUROPE); + REGISTER_TIMEZONE_CLASS_CONST_STRING("INDIAN", PHP_DATE_TIMEZONE_GROUP_INDIAN); + REGISTER_TIMEZONE_CLASS_CONST_STRING("PACIFIC", PHP_DATE_TIMEZONE_GROUP_PACIFIC); + REGISTER_TIMEZONE_CLASS_CONST_STRING("UTC", PHP_DATE_TIMEZONE_GROUP_UTC); + REGISTER_TIMEZONE_CLASS_CONST_STRING("ALL", PHP_DATE_TIMEZONE_GROUP_ALL); + REGISTER_TIMEZONE_CLASS_CONST_STRING("ALL_WITH_BC", PHP_DATE_TIMEZONE_GROUP_ALL_W_BC); + REGISTER_TIMEZONE_CLASS_CONST_STRING("PER_COUNTRY", PHP_DATE_TIMEZONE_PER_COUNTRY); + + INIT_CLASS_ENTRY(ce_interval, "DateInterval", date_funcs_interval); + ce_interval.create_object = date_object_new_interval; + date_ce_interval = zend_register_internal_class_ex(&ce_interval, NULL, NULL TSRMLS_CC); + memcpy(&date_object_handlers_interval, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); + date_object_handlers_interval.clone_obj = date_object_clone_interval; + date_object_handlers_interval.read_property = date_interval_read_property; + date_object_handlers_interval.write_property = date_interval_write_property; + date_object_handlers_interval.get_properties = date_object_get_properties_interval; + date_object_handlers_interval.get_property_ptr_ptr = NULL; + date_object_handlers_interval.get_gc = date_object_get_gc_interval; + + INIT_CLASS_ENTRY(ce_period, "DatePeriod", date_funcs_period); + ce_period.create_object = date_object_new_period; + date_ce_period = zend_register_internal_class_ex(&ce_period, NULL, NULL TSRMLS_CC); + date_ce_period->get_iterator = date_object_period_get_iterator; + date_ce_period->iterator_funcs.funcs = &date_period_it_funcs; + zend_class_implements(date_ce_period TSRMLS_CC, 1, zend_ce_traversable); + memcpy(&date_object_handlers_period, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); + date_object_handlers_period.clone_obj = date_object_clone_period; + +#define REGISTER_PERIOD_CLASS_CONST_STRING(const_name, value) \ + zend_declare_class_constant_long(date_ce_period, const_name, sizeof(const_name)-1, value TSRMLS_CC); + + REGISTER_PERIOD_CLASS_CONST_STRING("EXCLUDE_START_DATE", PHP_DATE_PERIOD_EXCLUDE_START_DATE); +} + +static inline zend_object_value date_object_new_date_ex(zend_class_entry *class_type, php_date_obj **ptr TSRMLS_DC) +{ + php_date_obj *intern; + zend_object_value retval; + + intern = emalloc(sizeof(php_date_obj)); + memset(intern, 0, sizeof(php_date_obj)); + if (ptr) { + *ptr = intern; + } + + zend_object_std_init(&intern->std, class_type TSRMLS_CC); + object_properties_init(&intern->std, class_type); + + retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) date_object_free_storage_date, NULL TSRMLS_CC); + retval.handlers = &date_object_handlers_date; + + return retval; +} + +static zend_object_value date_object_new_date(zend_class_entry *class_type TSRMLS_DC) +{ + return date_object_new_date_ex(class_type, NULL TSRMLS_CC); +} + +static zend_object_value date_object_clone_date(zval *this_ptr TSRMLS_DC) +{ + php_date_obj *new_obj = NULL; + php_date_obj *old_obj = (php_date_obj *) zend_object_store_get_object(this_ptr TSRMLS_CC); + zend_object_value new_ov = date_object_new_date_ex(old_obj->std.ce, &new_obj TSRMLS_CC); + + zend_objects_clone_members(&new_obj->std, new_ov, &old_obj->std, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC); + if (!old_obj->time) { + return new_ov; + } + + /* this should probably moved to a new `timelib_time *timelime_time_clone(timelib_time *)` */ + new_obj->time = timelib_time_ctor(); + *new_obj->time = *old_obj->time; + if (old_obj->time->tz_abbr) { + new_obj->time->tz_abbr = strdup(old_obj->time->tz_abbr); + } + if (old_obj->time->tz_info) { + new_obj->time->tz_info = old_obj->time->tz_info; + } + + return new_ov; +} + +static int date_object_compare_date(zval *d1, zval *d2 TSRMLS_DC) +{ + if (Z_TYPE_P(d1) == IS_OBJECT && Z_TYPE_P(d2) == IS_OBJECT && + instanceof_function(Z_OBJCE_P(d1), date_ce_date TSRMLS_CC) && + instanceof_function(Z_OBJCE_P(d2), date_ce_date TSRMLS_CC)) { + php_date_obj *o1 = zend_object_store_get_object(d1 TSRMLS_CC); + php_date_obj *o2 = zend_object_store_get_object(d2 TSRMLS_CC); + + if (!o1->time || !o2->time) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Trying to compare an incomplete DateTime object"); + return 1; + } + if (!o1->time->sse_uptodate) { + timelib_update_ts(o1->time, o1->time->tz_info); + } + if (!o2->time->sse_uptodate) { + timelib_update_ts(o2->time, o2->time->tz_info); + } + + return (o1->time->sse == o2->time->sse) ? 0 : ((o1->time->sse < o2->time->sse) ? -1 : 1); + } + + return 1; +} + +static HashTable *date_object_get_gc(zval *object, zval ***table, int *n TSRMLS_DC) +{ + *table = NULL; + *n = 0; + return zend_std_get_properties(object TSRMLS_CC); +} + +static HashTable *date_object_get_properties(zval *object TSRMLS_DC) +{ + HashTable *props; + zval *zv; + php_date_obj *dateobj; + + + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + + props = zend_std_get_properties(object TSRMLS_CC); + + if (!dateobj->time) { + return props; + } + + /* first we add the date and time in ISO format */ + MAKE_STD_ZVAL(zv); + ZVAL_STRING(zv, date_format("Y-m-d H:i:s", 12, dateobj->time, 1), 0); + zend_hash_update(props, "date", 5, &zv, sizeof(zval), NULL); + + /* then we add the timezone name (or similar) */ + if (dateobj->time->is_localtime) { + MAKE_STD_ZVAL(zv); + ZVAL_LONG(zv, dateobj->time->zone_type); + zend_hash_update(props, "timezone_type", 14, &zv, sizeof(zval), NULL); + + MAKE_STD_ZVAL(zv); + switch (dateobj->time->zone_type) { + case TIMELIB_ZONETYPE_ID: + ZVAL_STRING(zv, dateobj->time->tz_info->name, 1); + break; + case TIMELIB_ZONETYPE_OFFSET: { + char *tmpstr = emalloc(sizeof("UTC+05:00")); + timelib_sll utc_offset = dateobj->time->z; + + snprintf(tmpstr, sizeof("+05:00"), "%c%02d:%02d", + utc_offset > 0 ? '-' : '+', + abs(utc_offset / 60), + abs((utc_offset % 60))); + + ZVAL_STRING(zv, tmpstr, 0); + } + break; + case TIMELIB_ZONETYPE_ABBR: + ZVAL_STRING(zv, dateobj->time->tz_abbr, 1); + break; + } + zend_hash_update(props, "timezone", 9, &zv, sizeof(zval), NULL); + } + + return props; +} + +static inline zend_object_value date_object_new_timezone_ex(zend_class_entry *class_type, php_timezone_obj **ptr TSRMLS_DC) +{ + php_timezone_obj *intern; + zend_object_value retval; + + intern = emalloc(sizeof(php_timezone_obj)); + memset(intern, 0, sizeof(php_timezone_obj)); + if (ptr) { + *ptr = intern; + } + + zend_object_std_init(&intern->std, class_type TSRMLS_CC); + object_properties_init(&intern->std, class_type); + + retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) date_object_free_storage_timezone, NULL TSRMLS_CC); + retval.handlers = &date_object_handlers_timezone; + + return retval; +} + +static zend_object_value date_object_new_timezone(zend_class_entry *class_type TSRMLS_DC) +{ + return date_object_new_timezone_ex(class_type, NULL TSRMLS_CC); +} + +static zend_object_value date_object_clone_timezone(zval *this_ptr TSRMLS_DC) +{ + php_timezone_obj *new_obj = NULL; + php_timezone_obj *old_obj = (php_timezone_obj *) zend_object_store_get_object(this_ptr TSRMLS_CC); + zend_object_value new_ov = date_object_new_timezone_ex(old_obj->std.ce, &new_obj TSRMLS_CC); + + zend_objects_clone_members(&new_obj->std, new_ov, &old_obj->std, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC); + if (!old_obj->initialized) { + return new_ov; + } + + new_obj->type = old_obj->type; + new_obj->initialized = 1; + switch (new_obj->type) { + case TIMELIB_ZONETYPE_ID: + new_obj->tzi.tz = old_obj->tzi.tz; + break; + case TIMELIB_ZONETYPE_OFFSET: + new_obj->tzi.utc_offset = old_obj->tzi.utc_offset; + break; + case TIMELIB_ZONETYPE_ABBR: + new_obj->tzi.z.utc_offset = old_obj->tzi.z.utc_offset; + new_obj->tzi.z.dst = old_obj->tzi.z.dst; + new_obj->tzi.z.abbr = old_obj->tzi.z.abbr; + break; + } + + return new_ov; +} + +static inline zend_object_value date_object_new_interval_ex(zend_class_entry *class_type, php_interval_obj **ptr TSRMLS_DC) +{ + php_interval_obj *intern; + zend_object_value retval; + + intern = emalloc(sizeof(php_interval_obj)); + memset(intern, 0, sizeof(php_interval_obj)); + if (ptr) { + *ptr = intern; + } + + zend_object_std_init(&intern->std, class_type TSRMLS_CC); + object_properties_init(&intern->std, class_type); + + retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) date_object_free_storage_interval, NULL TSRMLS_CC); + retval.handlers = &date_object_handlers_interval; + + return retval; +} + +static zend_object_value date_object_new_interval(zend_class_entry *class_type TSRMLS_DC) +{ + return date_object_new_interval_ex(class_type, NULL TSRMLS_CC); +} + +static zend_object_value date_object_clone_interval(zval *this_ptr TSRMLS_DC) +{ + php_interval_obj *new_obj = NULL; + php_interval_obj *old_obj = (php_interval_obj *) zend_object_store_get_object(this_ptr TSRMLS_CC); + zend_object_value new_ov = date_object_new_interval_ex(old_obj->std.ce, &new_obj TSRMLS_CC); + + zend_objects_clone_members(&new_obj->std, new_ov, &old_obj->std, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC); + + /** FIX ME ADD CLONE STUFF **/ + return new_ov; +} + +static HashTable *date_object_get_gc_interval(zval *object, zval ***table, int *n TSRMLS_DC) +{ + + *table = NULL; + *n = 0; + return zend_std_get_properties(object TSRMLS_CC); +} + +static HashTable *date_object_get_properties_interval(zval *object TSRMLS_DC) +{ + HashTable *props; + zval *zv; + php_interval_obj *intervalobj; + + + intervalobj = (php_interval_obj *) zend_object_store_get_object(object TSRMLS_CC); + + props = zend_std_get_properties(object TSRMLS_CC); + + if (!intervalobj->initialized) { + return props; + } + +#define PHP_DATE_INTERVAL_ADD_PROPERTY(n,f) \ + MAKE_STD_ZVAL(zv); \ + ZVAL_LONG(zv, intervalobj->diff->f); \ + zend_hash_update(props, n, strlen(n) + 1, &zv, sizeof(zval), NULL); + + PHP_DATE_INTERVAL_ADD_PROPERTY("y", y); + PHP_DATE_INTERVAL_ADD_PROPERTY("m", m); + PHP_DATE_INTERVAL_ADD_PROPERTY("d", d); + PHP_DATE_INTERVAL_ADD_PROPERTY("h", h); + PHP_DATE_INTERVAL_ADD_PROPERTY("i", i); + PHP_DATE_INTERVAL_ADD_PROPERTY("s", s); + PHP_DATE_INTERVAL_ADD_PROPERTY("invert", invert); + if (intervalobj->diff->days != -99999) { + PHP_DATE_INTERVAL_ADD_PROPERTY("days", days); + } else { + MAKE_STD_ZVAL(zv); + ZVAL_FALSE(zv); + zend_hash_update(props, "days", 5, &zv, sizeof(zval), NULL); + } + + return props; +} + +static inline zend_object_value date_object_new_period_ex(zend_class_entry *class_type, php_period_obj **ptr TSRMLS_DC) +{ + php_period_obj *intern; + zend_object_value retval; + + intern = emalloc(sizeof(php_period_obj)); + memset(intern, 0, sizeof(php_period_obj)); + if (ptr) { + *ptr = intern; + } + + zend_object_std_init(&intern->std, class_type TSRMLS_CC); + object_properties_init(&intern->std, class_type); + + retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) date_object_free_storage_period, NULL TSRMLS_CC); + retval.handlers = &date_object_handlers_period; + + return retval; +} + +static zend_object_value date_object_new_period(zend_class_entry *class_type TSRMLS_DC) +{ + return date_object_new_period_ex(class_type, NULL TSRMLS_CC); +} + +static zend_object_value date_object_clone_period(zval *this_ptr TSRMLS_DC) +{ + php_period_obj *new_obj = NULL; + php_period_obj *old_obj = (php_period_obj *) zend_object_store_get_object(this_ptr TSRMLS_CC); + zend_object_value new_ov = date_object_new_period_ex(old_obj->std.ce, &new_obj TSRMLS_CC); + + zend_objects_clone_members(&new_obj->std, new_ov, &old_obj->std, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC); + + /** FIX ME ADD CLONE STUFF **/ + return new_ov; +} + +static void date_object_free_storage_date(void *object TSRMLS_DC) +{ + php_date_obj *intern = (php_date_obj *)object; + + if (intern->time) { + timelib_time_dtor(intern->time); + } + + zend_object_std_dtor(&intern->std TSRMLS_CC); + efree(object); +} + +static void date_object_free_storage_timezone(void *object TSRMLS_DC) +{ + php_timezone_obj *intern = (php_timezone_obj *)object; + + if (intern->type == TIMELIB_ZONETYPE_ABBR) { + free(intern->tzi.z.abbr); + } + zend_object_std_dtor(&intern->std TSRMLS_CC); + efree(object); +} + +static void date_object_free_storage_interval(void *object TSRMLS_DC) +{ + php_interval_obj *intern = (php_interval_obj *)object; + + timelib_rel_time_dtor(intern->diff); + zend_object_std_dtor(&intern->std TSRMLS_CC); + efree(object); +} + +static void date_object_free_storage_period(void *object TSRMLS_DC) +{ + php_period_obj *intern = (php_period_obj *)object; + + if (intern->start) { + timelib_time_dtor(intern->start); + } + + if (intern->current) { + timelib_time_dtor(intern->current); + } + + if (intern->end) { + timelib_time_dtor(intern->end); + } + + timelib_rel_time_dtor(intern->interval); + zend_object_std_dtor(&intern->std TSRMLS_CC); + efree(object); +} + +/* Advanced Interface */ +PHPAPI zval *php_date_instantiate(zend_class_entry *pce, zval *object TSRMLS_DC) +{ + Z_TYPE_P(object) = IS_OBJECT; + object_init_ex(object, pce); + Z_SET_REFCOUNT_P(object, 1); + Z_UNSET_ISREF_P(object); + return object; +} + +/* Helper function used to store the latest found warnings and errors while + * parsing, from either strtotime or parse_from_format. */ +static void update_errors_warnings(timelib_error_container *last_errors TSRMLS_DC) +{ + if (DATEG(last_errors)) { + timelib_error_container_dtor(DATEG(last_errors)); + DATEG(last_errors) = NULL; + } + DATEG(last_errors) = last_errors; +} + +PHPAPI int php_date_initialize(php_date_obj *dateobj, /*const*/ char *time_str, int time_str_len, char *format, zval *timezone_object, int ctor TSRMLS_DC) +{ + timelib_time *now; + timelib_tzinfo *tzi = NULL; + timelib_error_container *err = NULL; + int type = TIMELIB_ZONETYPE_ID, new_dst; + char *new_abbr; + timelib_sll new_offset; + + if (dateobj->time) { + timelib_time_dtor(dateobj->time); + } + if (format) { + dateobj->time = timelib_parse_from_format(format, time_str_len ? time_str : "", time_str_len ? time_str_len : 0, &err, DATE_TIMEZONEDB, php_date_parse_tzfile_wrapper); + } else { + dateobj->time = timelib_strtotime(time_str_len ? time_str : "now", time_str_len ? time_str_len : sizeof("now") -1, &err, DATE_TIMEZONEDB, php_date_parse_tzfile_wrapper); + } + + /* update last errors and warnings */ + update_errors_warnings(err TSRMLS_CC); + + + if (ctor && err && err->error_count) { + /* spit out the first library error message, at least */ + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to parse time string (%s) at position %d (%c): %s", time_str, + err->error_messages[0].position, err->error_messages[0].character, err->error_messages[0].message); + } + if (err && err->error_count) { + return 0; + } + + if (timezone_object) { + php_timezone_obj *tzobj; + + tzobj = (php_timezone_obj *) zend_object_store_get_object(timezone_object TSRMLS_CC); + switch (tzobj->type) { + case TIMELIB_ZONETYPE_ID: + tzi = tzobj->tzi.tz; + break; + case TIMELIB_ZONETYPE_OFFSET: + new_offset = tzobj->tzi.utc_offset; + break; + case TIMELIB_ZONETYPE_ABBR: + new_offset = tzobj->tzi.z.utc_offset; + new_dst = tzobj->tzi.z.dst; + new_abbr = strdup(tzobj->tzi.z.abbr); + break; + } + type = tzobj->type; + } else if (dateobj->time->tz_info) { + tzi = dateobj->time->tz_info; + } else { + tzi = get_timezone_info(TSRMLS_C); + } + + now = timelib_time_ctor(); + now->zone_type = type; + switch (type) { + case TIMELIB_ZONETYPE_ID: + now->tz_info = tzi; + break; + case TIMELIB_ZONETYPE_OFFSET: + now->z = new_offset; + break; + case TIMELIB_ZONETYPE_ABBR: + now->z = new_offset; + now->dst = new_dst; + now->tz_abbr = new_abbr; + break; + } + timelib_unixtime2local(now, (timelib_sll) time(NULL)); + + timelib_fill_holes(dateobj->time, now, TIMELIB_NO_CLONE); + timelib_update_ts(dateobj->time, tzi); + + dateobj->time->have_relative = 0; + + timelib_time_dtor(now); + + return 1; +} + +/* {{{ proto DateTime date_create([string time[, DateTimeZone object]]) + Returns new DateTime object +*/ +PHP_FUNCTION(date_create) +{ + zval *timezone_object = NULL; + char *time_str = NULL; + int time_str_len = 0; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sO!", &time_str, &time_str_len, &timezone_object, date_ce_timezone) == FAILURE) { + RETURN_FALSE; + } + + php_date_instantiate(date_ce_date, return_value TSRMLS_CC); + if (!php_date_initialize(zend_object_store_get_object(return_value TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 0 TSRMLS_CC)) { + RETURN_FALSE; + } +} +/* }}} */ + +/* {{{ proto DateTime date_create_from_format(string format, string time[, DateTimeZone object]) + Returns new DateTime object formatted according to the specified format +*/ +PHP_FUNCTION(date_create_from_format) +{ + zval *timezone_object = NULL; + char *time_str = NULL, *format_str = NULL; + int time_str_len = 0, format_str_len = 0; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|O", &format_str, &format_str_len, &time_str, &time_str_len, &timezone_object, date_ce_timezone) == FAILURE) { + RETURN_FALSE; + } + + php_date_instantiate(date_ce_date, return_value TSRMLS_CC); + if (!php_date_initialize(zend_object_store_get_object(return_value TSRMLS_CC), time_str, time_str_len, format_str, timezone_object, 0 TSRMLS_CC)) { + RETURN_FALSE; + } +} +/* }}} */ + +/* {{{ proto DateTime::__construct([string time[, DateTimeZone object]]) + Creates new DateTime object +*/ +PHP_METHOD(DateTime, __construct) +{ + zval *timezone_object = NULL; + char *time_str = NULL; + int time_str_len = 0; + zend_error_handling error_handling; + + zend_replace_error_handling(EH_THROW, NULL, &error_handling TSRMLS_CC); + if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sO!", &time_str, &time_str_len, &timezone_object, date_ce_timezone)) { + php_date_initialize(zend_object_store_get_object(getThis() TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 1 TSRMLS_CC); + } + zend_restore_error_handling(&error_handling TSRMLS_CC); +} +/* }}} */ + +static int php_date_initialize_from_hash(zval **return_value, php_date_obj **dateobj, HashTable *myht TSRMLS_DC) +{ + zval **z_date = NULL; + zval **z_timezone = NULL; + zval **z_timezone_type = NULL; + zval *tmp_obj = NULL; + timelib_tzinfo *tzi; + php_timezone_obj *tzobj; + + if (zend_hash_find(myht, "date", 5, (void**) &z_date) == SUCCESS) { + convert_to_string(*z_date); + if (zend_hash_find(myht, "timezone_type", 14, (void**) &z_timezone_type) == SUCCESS) { + convert_to_long(*z_timezone_type); + if (zend_hash_find(myht, "timezone", 9, (void**) &z_timezone) == SUCCESS) { + convert_to_string(*z_timezone); + + switch (Z_LVAL_PP(z_timezone_type)) { + case TIMELIB_ZONETYPE_OFFSET: + case TIMELIB_ZONETYPE_ABBR: { + char *tmp = emalloc(Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 2); + snprintf(tmp, Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 2, "%s %s", Z_STRVAL_PP(z_date), Z_STRVAL_PP(z_timezone)); + php_date_initialize(*dateobj, tmp, Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 1, NULL, NULL, 0 TSRMLS_CC); + efree(tmp); + return 1; + } + + case TIMELIB_ZONETYPE_ID: + convert_to_string(*z_timezone); + + tzi = php_date_parse_tzfile(Z_STRVAL_PP(z_timezone), DATE_TIMEZONEDB TSRMLS_CC); + + ALLOC_INIT_ZVAL(tmp_obj); + tzobj = zend_object_store_get_object(php_date_instantiate(date_ce_timezone, tmp_obj TSRMLS_CC) TSRMLS_CC); + tzobj->type = TIMELIB_ZONETYPE_ID; + tzobj->tzi.tz = tzi; + tzobj->initialized = 1; + + php_date_initialize(*dateobj, Z_STRVAL_PP(z_date), Z_STRLEN_PP(z_date), NULL, tmp_obj, 0 TSRMLS_CC); + zval_ptr_dtor(&tmp_obj); + return 1; + } + } + } + } + return 0; +} + +/* {{{ proto DateTime::__set_state() +*/ +PHP_METHOD(DateTime, __set_state) +{ + php_date_obj *dateobj; + zval *array; + HashTable *myht; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &array) == FAILURE) { + RETURN_FALSE; + } + + myht = HASH_OF(array); + + php_date_instantiate(date_ce_date, return_value TSRMLS_CC); + dateobj = (php_date_obj *) zend_object_store_get_object(return_value TSRMLS_CC); + php_date_initialize_from_hash(&return_value, &dateobj, myht TSRMLS_CC); +} +/* }}} */ + +/* {{{ proto DateTime::__wakeup() +*/ +PHP_METHOD(DateTime, __wakeup) +{ + zval *object = getThis(); + php_date_obj *dateobj; + HashTable *myht; + + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + + myht = Z_OBJPROP_P(object); + + php_date_initialize_from_hash(&return_value, &dateobj, myht TSRMLS_CC); +} +/* }}} */ + +/* Helper function used to add an associative array of warnings and errors to a zval */ +static void zval_from_error_container(zval *z, timelib_error_container *error) +{ + int i; + zval *element; + + add_assoc_long(z, "warning_count", error->warning_count); + MAKE_STD_ZVAL(element); + array_init(element); + for (i = 0; i < error->warning_count; i++) { + add_index_string(element, error->warning_messages[i].position, error->warning_messages[i].message, 1); + } + add_assoc_zval(z, "warnings", element); + + add_assoc_long(z, "error_count", error->error_count); + MAKE_STD_ZVAL(element); + array_init(element); + for (i = 0; i < error->error_count; i++) { + add_index_string(element, error->error_messages[i].position, error->error_messages[i].message, 1); + } + add_assoc_zval(z, "errors", element); +} + +/* {{{ proto array date_get_last_errors() + Returns the warnings and errors found while parsing a date/time string. +*/ +PHP_FUNCTION(date_get_last_errors) +{ + if (DATEG(last_errors)) { + array_init(return_value); + zval_from_error_container(return_value, DATEG(last_errors)); + } else { + RETURN_FALSE; + } +} +/* }}} */ + +void php_date_do_return_parsed_time(INTERNAL_FUNCTION_PARAMETERS, timelib_time *parsed_time, struct timelib_error_container *error) +{ + zval *element; + + array_init(return_value); +#define PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(name, elem) \ + if (parsed_time->elem == -99999) { \ + add_assoc_bool(return_value, #name, 0); \ + } else { \ + add_assoc_long(return_value, #name, parsed_time->elem); \ + } + PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(year, y); + PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(month, m); + PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(day, d); + PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(hour, h); + PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(minute, i); + PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(second, s); + + if (parsed_time->f == -99999) { + add_assoc_bool(return_value, "fraction", 0); + } else { + add_assoc_double(return_value, "fraction", parsed_time->f); + } + + zval_from_error_container(return_value, error); + + timelib_error_container_dtor(error); + + add_assoc_bool(return_value, "is_localtime", parsed_time->is_localtime); + + if (parsed_time->is_localtime) { + PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(zone_type, zone_type); + switch (parsed_time->zone_type) { + case TIMELIB_ZONETYPE_OFFSET: + PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(zone, z); + add_assoc_bool(return_value, "is_dst", parsed_time->dst); + break; + case TIMELIB_ZONETYPE_ID: + if (parsed_time->tz_abbr) { + add_assoc_string(return_value, "tz_abbr", parsed_time->tz_abbr, 1); + } + if (parsed_time->tz_info) { + add_assoc_string(return_value, "tz_id", parsed_time->tz_info->name, 1); + } + break; + case TIMELIB_ZONETYPE_ABBR: + PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(zone, z); + add_assoc_bool(return_value, "is_dst", parsed_time->dst); + add_assoc_string(return_value, "tz_abbr", parsed_time->tz_abbr, 1); + break; + } + } + if (parsed_time->have_relative) { + MAKE_STD_ZVAL(element); + array_init(element); + add_assoc_long(element, "year", parsed_time->relative.y); + add_assoc_long(element, "month", parsed_time->relative.m); + add_assoc_long(element, "day", parsed_time->relative.d); + add_assoc_long(element, "hour", parsed_time->relative.h); + add_assoc_long(element, "minute", parsed_time->relative.i); + add_assoc_long(element, "second", parsed_time->relative.s); + if (parsed_time->relative.have_weekday_relative) { + add_assoc_long(element, "weekday", parsed_time->relative.weekday); + } + if (parsed_time->relative.have_special_relative && (parsed_time->relative.special.type == TIMELIB_SPECIAL_WEEKDAY)) { + add_assoc_long(element, "weekdays", parsed_time->relative.special.amount); + } + if (parsed_time->relative.first_last_day_of) { + add_assoc_bool(element, parsed_time->relative.first_last_day_of == 1 ? "first_day_of_month" : "last_day_of_month", 1); + } + add_assoc_zval(return_value, "relative", element); + } + timelib_time_dtor(parsed_time); +} + +/* {{{ proto array date_parse(string date) + Returns associative array with detailed info about given date +*/ +PHP_FUNCTION(date_parse) +{ + char *date; + int date_len; + struct timelib_error_container *error; + timelib_time *parsed_time; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &date, &date_len) == FAILURE) { + RETURN_FALSE; + } + + parsed_time = timelib_strtotime(date, date_len, &error, DATE_TIMEZONEDB, php_date_parse_tzfile_wrapper); + php_date_do_return_parsed_time(INTERNAL_FUNCTION_PARAM_PASSTHRU, parsed_time, error); +} +/* }}} */ + +/* {{{ proto array date_parse_from_format(string format, string date) + Returns associative array with detailed info about given date +*/ +PHP_FUNCTION(date_parse_from_format) +{ + char *date, *format; + int date_len, format_len; + struct timelib_error_container *error; + timelib_time *parsed_time; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &format, &format_len, &date, &date_len) == FAILURE) { + RETURN_FALSE; + } + + parsed_time = timelib_parse_from_format(format, date, date_len, &error, DATE_TIMEZONEDB, php_date_parse_tzfile_wrapper); + php_date_do_return_parsed_time(INTERNAL_FUNCTION_PARAM_PASSTHRU, parsed_time, error); +} +/* }}} */ + +/* {{{ proto string date_format(DateTime object, string format) + Returns date formatted according to given format +*/ +PHP_FUNCTION(date_format) +{ + zval *object; + php_date_obj *dateobj; + char *format; + int format_len; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &object, date_ce_date, &format, &format_len) == FAILURE) { + RETURN_FALSE; + } + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj->time, DateTime); + RETURN_STRING(date_format(format, format_len, dateobj->time, dateobj->time->is_localtime), 0); +} +/* }}} */ + +/* {{{ proto DateTime date_modify(DateTime object, string modify) + Alters the timestamp. +*/ +PHP_FUNCTION(date_modify) +{ + zval *object; + php_date_obj *dateobj; + char *modify; + int modify_len; + timelib_time *tmp_time; + timelib_error_container *err = NULL; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &object, date_ce_date, &modify, &modify_len) == FAILURE) { + RETURN_FALSE; + } + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj->time, DateTime); + + tmp_time = timelib_strtotime(modify, modify_len, &err, DATE_TIMEZONEDB, php_date_parse_tzfile_wrapper); + + /* update last errors and warnings */ + update_errors_warnings(err TSRMLS_CC); + if (err && err->error_count) { + /* spit out the first library error message, at least */ + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to parse time string (%s) at position %d (%c): %s", modify, + err->error_messages[0].position, err->error_messages[0].character, err->error_messages[0].message); + timelib_time_dtor(tmp_time); + RETURN_FALSE; + } + + memcpy(&dateobj->time->relative, &tmp_time->relative, sizeof(struct timelib_rel_time)); + dateobj->time->have_relative = tmp_time->have_relative; + dateobj->time->sse_uptodate = 0; + + if (tmp_time->y != -99999) { + dateobj->time->y = tmp_time->y; + } + if (tmp_time->m != -99999) { + dateobj->time->m = tmp_time->m; + } + if (tmp_time->d != -99999) { + dateobj->time->d = tmp_time->d; + } + + if (tmp_time->h != -99999) { + dateobj->time->h = tmp_time->h; + if (tmp_time->i != -99999) { + dateobj->time->i = tmp_time->i; + if (tmp_time->s != -99999) { + dateobj->time->s = tmp_time->s; + } else { + dateobj->time->s = 0; + } + } else { + dateobj->time->i = 0; + dateobj->time->s = 0; + } + } + timelib_time_dtor(tmp_time); + + timelib_update_ts(dateobj->time, NULL); + timelib_update_from_sse(dateobj->time); + dateobj->time->have_relative = 0; + + RETURN_ZVAL(object, 1, 0); +} +/* }}} */ + +/* {{{ proto DateTime date_add(DateTime object, DateInterval interval) + Adds an interval to the current date in object. +*/ +PHP_FUNCTION(date_add) +{ + zval *object, *interval; + php_date_obj *dateobj; + php_interval_obj *intobj; + int bias = 1; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "OO", &object, date_ce_date, &interval, date_ce_interval) == FAILURE) { + RETURN_FALSE; + } + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj->time, DateTime); + intobj = (php_interval_obj *) zend_object_store_get_object(interval TSRMLS_CC); + DATE_CHECK_INITIALIZED(intobj->initialized, DateInterval); + + + if (intobj->diff->have_weekday_relative || intobj->diff->have_special_relative) { + memcpy(&dateobj->time->relative, intobj->diff, sizeof(struct timelib_rel_time)); + } else { + if (intobj->diff->invert) { + bias = -1; + } + memset(&dateobj->time->relative, 0, sizeof(struct timelib_rel_time)); + dateobj->time->relative.y = intobj->diff->y * bias; + dateobj->time->relative.m = intobj->diff->m * bias; + dateobj->time->relative.d = intobj->diff->d * bias; + dateobj->time->relative.h = intobj->diff->h * bias; + dateobj->time->relative.i = intobj->diff->i * bias; + dateobj->time->relative.s = intobj->diff->s * bias; + } + dateobj->time->have_relative = 1; + dateobj->time->sse_uptodate = 0; + + timelib_update_ts(dateobj->time, NULL); + timelib_update_from_sse(dateobj->time); + dateobj->time->have_relative = 0; + + RETURN_ZVAL(object, 1, 0); +} +/* }}} */ + +/* {{{ proto DateTime date_sub(DateTime object, DateInterval interval) + Subtracts an interval to the current date in object. +*/ +PHP_FUNCTION(date_sub) +{ + zval *object, *interval; + php_date_obj *dateobj; + php_interval_obj *intobj; + int bias = 1; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "OO", &object, date_ce_date, &interval, date_ce_interval) == FAILURE) { + RETURN_FALSE; + } + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj->time, DateTime); + intobj = (php_interval_obj *) zend_object_store_get_object(interval TSRMLS_CC); + DATE_CHECK_INITIALIZED(intobj->initialized, DateInterval); + + if (intobj->diff->have_special_relative) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Only non-special relative time specifications are supported for subtraction"); + return; + } + + if (intobj->diff->invert) { + bias = -1; + } + + memset(&dateobj->time->relative, 0, sizeof(struct timelib_rel_time)); + dateobj->time->relative.y = 0 - (intobj->diff->y * bias); + dateobj->time->relative.m = 0 - (intobj->diff->m * bias); + dateobj->time->relative.d = 0 - (intobj->diff->d * bias); + dateobj->time->relative.h = 0 - (intobj->diff->h * bias); + dateobj->time->relative.i = 0 - (intobj->diff->i * bias); + dateobj->time->relative.s = 0 - (intobj->diff->s * bias); + dateobj->time->have_relative = 1; + dateobj->time->sse_uptodate = 0; + + timelib_update_ts(dateobj->time, NULL); + timelib_update_from_sse(dateobj->time); + + dateobj->time->have_relative = 0; + + RETURN_ZVAL(object, 1, 0); +} +/* }}} */ + +/* {{{ proto DateTimeZone date_timezone_get(DateTime object) + Return new DateTimeZone object relative to give DateTime +*/ +PHP_FUNCTION(date_timezone_get) +{ + zval *object; + php_date_obj *dateobj; + php_timezone_obj *tzobj; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &object, date_ce_date) == FAILURE) { + RETURN_FALSE; + } + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj->time, DateTime); + if (dateobj->time->is_localtime/* && dateobj->time->tz_info*/) { + php_date_instantiate(date_ce_timezone, return_value TSRMLS_CC); + tzobj = (php_timezone_obj *) zend_object_store_get_object(return_value TSRMLS_CC); + tzobj->initialized = 1; + tzobj->type = dateobj->time->zone_type; + switch (dateobj->time->zone_type) { + case TIMELIB_ZONETYPE_ID: + tzobj->tzi.tz = dateobj->time->tz_info; + break; + case TIMELIB_ZONETYPE_OFFSET: + tzobj->tzi.utc_offset = dateobj->time->z; + break; + case TIMELIB_ZONETYPE_ABBR: + tzobj->tzi.z.utc_offset = dateobj->time->z; + tzobj->tzi.z.dst = dateobj->time->dst; + tzobj->tzi.z.abbr = strdup(dateobj->time->tz_abbr); + break; + } + } else { + RETURN_FALSE; + } +} +/* }}} */ + +/* {{{ proto DateTime date_timezone_set(DateTime object, DateTimeZone object) + Sets the timezone for the DateTime object. +*/ +PHP_FUNCTION(date_timezone_set) +{ + zval *object; + zval *timezone_object; + php_date_obj *dateobj; + php_timezone_obj *tzobj; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "OO", &object, date_ce_date, &timezone_object, date_ce_timezone) == FAILURE) { + RETURN_FALSE; + } + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj->time, DateTime); + tzobj = (php_timezone_obj *) zend_object_store_get_object(timezone_object TSRMLS_CC); + if (tzobj->type != TIMELIB_ZONETYPE_ID) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can only do this for zones with ID for now"); + return; + } + timelib_set_timezone(dateobj->time, tzobj->tzi.tz); + timelib_unixtime2local(dateobj->time, dateobj->time->sse); + + RETURN_ZVAL(object, 1, 0); +} +/* }}} */ + +/* {{{ proto long date_offset_get(DateTime object) + Returns the DST offset. +*/ +PHP_FUNCTION(date_offset_get) +{ + zval *object; + php_date_obj *dateobj; + timelib_time_offset *offset; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &object, date_ce_date) == FAILURE) { + RETURN_FALSE; + } + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj->time, DateTime); + if (dateobj->time->is_localtime/* && dateobj->time->tz_info*/) { + switch (dateobj->time->zone_type) { + case TIMELIB_ZONETYPE_ID: + offset = timelib_get_time_zone_info(dateobj->time->sse, dateobj->time->tz_info); + RETVAL_LONG(offset->offset); + timelib_time_offset_dtor(offset); + break; + case TIMELIB_ZONETYPE_OFFSET: + RETVAL_LONG(dateobj->time->z * -60); + break; + case TIMELIB_ZONETYPE_ABBR: + RETVAL_LONG((dateobj->time->z - (60 * dateobj->time->dst)) * -60); + break; + } + return; + } else { + RETURN_LONG(0); + } +} +/* }}} */ + +/* {{{ proto DateTime date_time_set(DateTime object, long hour, long minute[, long second]) + Sets the time. +*/ +PHP_FUNCTION(date_time_set) +{ + zval *object; + php_date_obj *dateobj; + long h, i, s = 0; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Oll|l", &object, date_ce_date, &h, &i, &s) == FAILURE) { + RETURN_FALSE; + } + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj->time, DateTime); + dateobj->time->h = h; + dateobj->time->i = i; + dateobj->time->s = s; + timelib_update_ts(dateobj->time, NULL); + + RETURN_ZVAL(object, 1, 0); +} +/* }}} */ + +/* {{{ proto DateTime date_date_set(DateTime object, long year, long month, long day) + Sets the date. +*/ +PHP_FUNCTION(date_date_set) +{ + zval *object; + php_date_obj *dateobj; + long y, m, d; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Olll", &object, date_ce_date, &y, &m, &d) == FAILURE) { + RETURN_FALSE; + } + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj->time, DateTime); + dateobj->time->y = y; + dateobj->time->m = m; + dateobj->time->d = d; + timelib_update_ts(dateobj->time, NULL); + + RETURN_ZVAL(object, 1, 0); +} +/* }}} */ + +/* {{{ proto DateTime date_isodate_set(DateTime object, long year, long week[, long day]) + Sets the ISO date. +*/ +PHP_FUNCTION(date_isodate_set) +{ + zval *object; + php_date_obj *dateobj; + long y, w, d = 1; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Oll|l", &object, date_ce_date, &y, &w, &d) == FAILURE) { + RETURN_FALSE; + } + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj->time, DateTime); + dateobj->time->y = y; + dateobj->time->m = 1; + dateobj->time->d = 1; + memset(&dateobj->time->relative, 0, sizeof(dateobj->time->relative)); + dateobj->time->relative.d = timelib_daynr_from_weeknr(y, w, d); + dateobj->time->have_relative = 1; + + timelib_update_ts(dateobj->time, NULL); + + RETURN_ZVAL(object, 1, 0); +} +/* }}} */ + +/* {{{ proto DateTime date_timestamp_set(DateTime object, long unixTimestamp) + Sets the date and time based on an Unix timestamp. +*/ +PHP_FUNCTION(date_timestamp_set) +{ + zval *object; + php_date_obj *dateobj; + long timestamp; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &object, date_ce_date, ×tamp) == FAILURE) { + RETURN_FALSE; + } + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj->time, DateTime); + timelib_unixtime2local(dateobj->time, (timelib_sll)timestamp); + timelib_update_ts(dateobj->time, NULL); + + RETURN_ZVAL(object, 1, 0); +} +/* }}} */ + +/* {{{ proto long date_timestamp_get(DateTime object) + Gets the Unix timestamp. +*/ +PHP_FUNCTION(date_timestamp_get) +{ + zval *object; + php_date_obj *dateobj; + long timestamp; + int error; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &object, date_ce_date) == FAILURE) { + RETURN_FALSE; + } + dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj->time, DateTime); + timelib_update_ts(dateobj->time, NULL); + + timestamp = timelib_date_to_int(dateobj->time, &error); + if (error) { + RETURN_FALSE; + } else { + RETVAL_LONG(timestamp); + } +} +/* }}} */ + +/* {{{ proto DateInterval date_diff(DateTime object [, bool absolute]) + Returns the difference between two DateTime objects. +*/ +PHP_FUNCTION(date_diff) +{ + zval *object1, *object2; + php_date_obj *dateobj1, *dateobj2; + php_interval_obj *interval; + long absolute = 0; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "OO|l", &object1, date_ce_date, &object2, date_ce_date, &absolute) == FAILURE) { + RETURN_FALSE; + } + dateobj1 = (php_date_obj *) zend_object_store_get_object(object1 TSRMLS_CC); + dateobj2 = (php_date_obj *) zend_object_store_get_object(object2 TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj1->time, DateTime); + DATE_CHECK_INITIALIZED(dateobj2->time, DateTime); + timelib_update_ts(dateobj1->time, NULL); + timelib_update_ts(dateobj2->time, NULL); + + php_date_instantiate(date_ce_interval, return_value TSRMLS_CC); + interval = zend_object_store_get_object(return_value TSRMLS_CC); + interval->diff = timelib_diff(dateobj1->time, dateobj2->time); + if (absolute) { + interval->diff->invert = 0; + } + interval->initialized = 1; +} +/* }}} */ + +static int timezone_initialize(timelib_tzinfo **tzi, /*const*/ char *tz TSRMLS_DC) +{ + char *tzid; + + *tzi = NULL; + + if ((tzid = timelib_timezone_id_from_abbr(tz, -1, 0))) { + *tzi = php_date_parse_tzfile(tzid, DATE_TIMEZONEDB TSRMLS_CC); + } else { + *tzi = php_date_parse_tzfile(tz, DATE_TIMEZONEDB TSRMLS_CC); + } + + if (*tzi) { + return SUCCESS; + } else { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown or bad timezone (%s)", tz); + return FAILURE; + } +} + +/* {{{ proto DateTimeZone timezone_open(string timezone) + Returns new DateTimeZone object +*/ +PHP_FUNCTION(timezone_open) +{ + char *tz; + int tz_len; + timelib_tzinfo *tzi = NULL; + php_timezone_obj *tzobj; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &tz, &tz_len) == FAILURE) { + RETURN_FALSE; + } + if (SUCCESS != timezone_initialize(&tzi, tz TSRMLS_CC)) { + RETURN_FALSE; + } + tzobj = zend_object_store_get_object(php_date_instantiate(date_ce_timezone, return_value TSRMLS_CC) TSRMLS_CC); + tzobj->type = TIMELIB_ZONETYPE_ID; + tzobj->tzi.tz = tzi; + tzobj->initialized = 1; +} +/* }}} */ + +/* {{{ proto DateTimeZone::__construct(string timezone) + Creates new DateTimeZone object. +*/ +PHP_METHOD(DateTimeZone, __construct) +{ + char *tz; + int tz_len; + timelib_tzinfo *tzi = NULL; + php_timezone_obj *tzobj; + zend_error_handling error_handling; + + zend_replace_error_handling(EH_THROW, NULL, &error_handling TSRMLS_CC); + if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &tz, &tz_len)) { + if (SUCCESS == timezone_initialize(&tzi, tz TSRMLS_CC)) { + tzobj = zend_object_store_get_object(getThis() TSRMLS_CC); + tzobj->type = TIMELIB_ZONETYPE_ID; + tzobj->tzi.tz = tzi; + tzobj->initialized = 1; + } else { + ZVAL_NULL(getThis()); + } + } + zend_restore_error_handling(&error_handling TSRMLS_CC); +} +/* }}} */ + +/* {{{ proto string timezone_name_get(DateTimeZone object) + Returns the name of the timezone. +*/ +PHP_FUNCTION(timezone_name_get) +{ + zval *object; + php_timezone_obj *tzobj; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &object, date_ce_timezone) == FAILURE) { + RETURN_FALSE; + } + tzobj = (php_timezone_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(tzobj->initialized, DateTimeZone); + + switch (tzobj->type) { + case TIMELIB_ZONETYPE_ID: + RETURN_STRING(tzobj->tzi.tz->name, 1); + break; + case TIMELIB_ZONETYPE_OFFSET: { + char *tmpstr = emalloc(sizeof("UTC+05:00")); + timelib_sll utc_offset = tzobj->tzi.utc_offset; + + snprintf(tmpstr, sizeof("+05:00"), "%c%02d:%02d", + utc_offset > 0 ? '-' : '+', + abs(utc_offset / 60), + abs((utc_offset % 60))); + + RETURN_STRING(tmpstr, 0); + } + break; + case TIMELIB_ZONETYPE_ABBR: + RETURN_STRING(tzobj->tzi.z.abbr, 1); + break; + } +} +/* }}} */ + +/* {{{ proto string timezone_name_from_abbr(string abbr[, long gmtOffset[, long isdst]]) + Returns the timezone name from abbrevation +*/ +PHP_FUNCTION(timezone_name_from_abbr) +{ + char *abbr; + char *tzid; + int abbr_len; + long gmtoffset = -1; + long isdst = -1; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|ll", &abbr, &abbr_len, &gmtoffset, &isdst) == FAILURE) { + RETURN_FALSE; + } + tzid = timelib_timezone_id_from_abbr(abbr, gmtoffset, isdst); + + if (tzid) { + RETURN_STRING(tzid, 1); + } else { + RETURN_FALSE; + } +} +/* }}} */ + +/* {{{ proto long timezone_offset_get(DateTimeZone object, DateTime object) + Returns the timezone offset. +*/ +PHP_FUNCTION(timezone_offset_get) +{ + zval *object, *dateobject; + php_timezone_obj *tzobj; + php_date_obj *dateobj; + timelib_time_offset *offset; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "OO", &object, date_ce_timezone, &dateobject, date_ce_date) == FAILURE) { + RETURN_FALSE; + } + tzobj = (php_timezone_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(tzobj->initialized, DateTimeZone); + dateobj = (php_date_obj *) zend_object_store_get_object(dateobject TSRMLS_CC); + DATE_CHECK_INITIALIZED(dateobj->time, DateTime); + + switch (tzobj->type) { + case TIMELIB_ZONETYPE_ID: + offset = timelib_get_time_zone_info(dateobj->time->sse, tzobj->tzi.tz); + RETVAL_LONG(offset->offset); + timelib_time_offset_dtor(offset); + break; + case TIMELIB_ZONETYPE_OFFSET: + RETURN_LONG(tzobj->tzi.utc_offset * -60); + break; + case TIMELIB_ZONETYPE_ABBR: + RETURN_LONG((tzobj->tzi.z.utc_offset - (tzobj->tzi.z.dst*60)) * -60); + break; + } +} +/* }}} */ + +/* {{{ proto array timezone_transitions_get(DateTimeZone object [, long timestamp_begin [, long timestamp_end ]]) + Returns numerically indexed array containing associative array for all transitions in the specified range for the timezone. +*/ +PHP_FUNCTION(timezone_transitions_get) +{ + zval *object, *element; + php_timezone_obj *tzobj; + unsigned int i, begin = 0, found; + long timestamp_begin = LONG_MIN, timestamp_end = LONG_MAX; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O|ll", &object, date_ce_timezone, ×tamp_begin, ×tamp_end) == FAILURE) { + RETURN_FALSE; + } + tzobj = (php_timezone_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(tzobj->initialized, DateTimeZone); + if (tzobj->type != TIMELIB_ZONETYPE_ID) { + RETURN_FALSE; + } + +#define add_nominal() \ + MAKE_STD_ZVAL(element); \ + array_init(element); \ + add_assoc_long(element, "ts", timestamp_begin); \ + add_assoc_string(element, "time", php_format_date(DATE_FORMAT_ISO8601, 13, timestamp_begin, 0 TSRMLS_CC), 0); \ + add_assoc_long(element, "offset", tzobj->tzi.tz->type[0].offset); \ + add_assoc_bool(element, "isdst", tzobj->tzi.tz->type[0].isdst); \ + add_assoc_string(element, "abbr", &tzobj->tzi.tz->timezone_abbr[tzobj->tzi.tz->type[0].abbr_idx], 1); \ + add_next_index_zval(return_value, element); + +#define add(i,ts) \ + MAKE_STD_ZVAL(element); \ + array_init(element); \ + add_assoc_long(element, "ts", ts); \ + add_assoc_string(element, "time", php_format_date(DATE_FORMAT_ISO8601, 13, ts, 0 TSRMLS_CC), 0); \ + add_assoc_long(element, "offset", tzobj->tzi.tz->type[tzobj->tzi.tz->trans_idx[i]].offset); \ + add_assoc_bool(element, "isdst", tzobj->tzi.tz->type[tzobj->tzi.tz->trans_idx[i]].isdst); \ + add_assoc_string(element, "abbr", &tzobj->tzi.tz->timezone_abbr[tzobj->tzi.tz->type[tzobj->tzi.tz->trans_idx[i]].abbr_idx], 1); \ + add_next_index_zval(return_value, element); + +#define add_last() add(tzobj->tzi.tz->timecnt - 1, timestamp_begin) + + array_init(return_value); + + if (timestamp_begin == LONG_MIN) { + add_nominal(); + begin = 0; + found = 1; + } else { + begin = 0; + found = 0; + if (tzobj->tzi.tz->timecnt > 0) { + do { + if (tzobj->tzi.tz->trans[begin] > timestamp_begin) { + if (begin > 0) { + add(begin - 1, timestamp_begin); + } else { + add_nominal(); + } + found = 1; + break; + } + begin++; + } while (begin < tzobj->tzi.tz->timecnt); + } + } + + if (!found) { + if (tzobj->tzi.tz->timecnt > 0) { + add_last(); + } else { + add_nominal(); + } + } else { + for (i = begin; i < tzobj->tzi.tz->timecnt; ++i) { + if (tzobj->tzi.tz->trans[i] < timestamp_end) { + add(i, tzobj->tzi.tz->trans[i]); + } + } + } +} +/* }}} */ + +/* {{{ proto array timezone_location_get() + Returns location information for a timezone, including country code, latitude/longitude and comments +*/ +PHP_FUNCTION(timezone_location_get) +{ + zval *object; + php_timezone_obj *tzobj; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &object, date_ce_timezone) == FAILURE) { + RETURN_FALSE; + } + tzobj = (php_timezone_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(tzobj->initialized, DateTimeZone); + if (tzobj->type != TIMELIB_ZONETYPE_ID) { + RETURN_FALSE; + } + + array_init(return_value); + add_assoc_string(return_value, "country_code", tzobj->tzi.tz->location.country_code, 1); + add_assoc_double(return_value, "latitude", tzobj->tzi.tz->location.latitude); + add_assoc_double(return_value, "longitude", tzobj->tzi.tz->location.longitude); + add_assoc_string(return_value, "comments", tzobj->tzi.tz->location.comments, 1); +} +/* }}} */ + +static int date_interval_initialize(timelib_rel_time **rt, /*const*/ char *format, int format_length TSRMLS_DC) +{ + timelib_time *b = NULL, *e = NULL; + timelib_rel_time *p = NULL; + int r = 0; + int retval = 0; + struct timelib_error_container *errors; + + timelib_strtointerval(format, format_length, &b, &e, &p, &r, &errors); + + if (errors->error_count > 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown or bad format (%s)", format); + retval = FAILURE; + } else { + if(p) { + *rt = p; + retval = SUCCESS; + } else { + if(b && e) { + timelib_update_ts(b, NULL); + timelib_update_ts(e, NULL); + *rt = timelib_diff(b, e); + retval = SUCCESS; + } else { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to parse interval (%s)", format); + retval = FAILURE; + } + } + } + timelib_error_container_dtor(errors); + return retval; +} + +/* {{{ date_interval_read_property */ +zval *date_interval_read_property(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC) +{ + php_interval_obj *obj; + zval *retval; + zval tmp_member; + timelib_sll value = -1; + + if (member->type != IS_STRING) { + tmp_member = *member; + zval_copy_ctor(&tmp_member); + convert_to_string(&tmp_member); + member = &tmp_member; + key = NULL; + } + + obj = (php_interval_obj *)zend_objects_get_address(object TSRMLS_CC); + + if (!obj->initialized) { + retval = (zend_get_std_object_handlers())->read_property(object, member, type, key TSRMLS_CC); + if (member == &tmp_member) { + zval_dtor(member); + } + return retval; + } + +#define GET_VALUE_FROM_STRUCT(n,m) \ + if (strcmp(Z_STRVAL_P(member), m) == 0) { \ + value = obj->diff->n; \ + break; \ + } + do { + GET_VALUE_FROM_STRUCT(y, "y"); + GET_VALUE_FROM_STRUCT(m, "m"); + GET_VALUE_FROM_STRUCT(d, "d"); + GET_VALUE_FROM_STRUCT(h, "h"); + GET_VALUE_FROM_STRUCT(i, "i"); + GET_VALUE_FROM_STRUCT(s, "s"); + GET_VALUE_FROM_STRUCT(invert, "invert"); + GET_VALUE_FROM_STRUCT(days, "days"); + /* didn't find any */ + retval = (zend_get_std_object_handlers())->read_property(object, member, type, key TSRMLS_CC); + + if (member == &tmp_member) { + zval_dtor(member); + } + + return retval; + } while(0); + + ALLOC_INIT_ZVAL(retval); + Z_SET_REFCOUNT_P(retval, 0); + + ZVAL_LONG(retval, value); + + if (member == &tmp_member) { + zval_dtor(member); + } + + return retval; +} +/* }}} */ + +/* {{{ date_interval_write_property */ +void date_interval_write_property(zval *object, zval *member, zval *value, const zend_literal *key TSRMLS_DC) +{ + php_interval_obj *obj; + zval tmp_member, tmp_value; + + if (member->type != IS_STRING) { + tmp_member = *member; + zval_copy_ctor(&tmp_member); + convert_to_string(&tmp_member); + member = &tmp_member; + key = NULL; + } + + obj = (php_interval_obj *)zend_objects_get_address(object TSRMLS_CC); + + if (!obj->initialized) { + (zend_get_std_object_handlers())->write_property(object, member, value, key TSRMLS_CC); + if (member == &tmp_member) { + zval_dtor(member); + } + return; + } + +#define SET_VALUE_FROM_STRUCT(n,m) \ + if (strcmp(Z_STRVAL_P(member), m) == 0) { \ + if (value->type != IS_LONG) { \ + tmp_value = *value; \ + zval_copy_ctor(&tmp_value); \ + convert_to_long(&tmp_value); \ + value = &tmp_value; \ + } \ + obj->diff->n = Z_LVAL_P(value); \ + if (value == &tmp_value) { \ + zval_dtor(value); \ + } \ + break; \ + } + + do { + SET_VALUE_FROM_STRUCT(y, "y"); + SET_VALUE_FROM_STRUCT(m, "m"); + SET_VALUE_FROM_STRUCT(d, "d"); + SET_VALUE_FROM_STRUCT(h, "h"); + SET_VALUE_FROM_STRUCT(i, "i"); + SET_VALUE_FROM_STRUCT(s, "s"); + SET_VALUE_FROM_STRUCT(invert, "invert"); + /* didn't find any */ + (zend_get_std_object_handlers())->write_property(object, member, value, key TSRMLS_CC); + } while(0); + + if (member == &tmp_member) { + zval_dtor(member); + } +} +/* }}} */ + + +/* {{{ proto DateInterval::__construct([string interval_spec]) + Creates new DateInterval object. +*/ +PHP_METHOD(DateInterval, __construct) +{ + char *interval_string = NULL; + int interval_string_length; + php_interval_obj *diobj; + timelib_rel_time *reltime; + zend_error_handling error_handling; + + zend_replace_error_handling(EH_THROW, NULL, &error_handling TSRMLS_CC); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &interval_string, &interval_string_length) == SUCCESS) { + if (date_interval_initialize(&reltime, interval_string, interval_string_length TSRMLS_CC) == SUCCESS) { + diobj = zend_object_store_get_object(getThis() TSRMLS_CC); + diobj->diff = reltime; + diobj->initialized = 1; + } else { + ZVAL_NULL(getThis()); + } + } + zend_restore_error_handling(&error_handling TSRMLS_CC); +} +/* }}} */ + +static long php_date_long_from_hash_element(HashTable *myht, char *element, size_t size) +{ + zval **z_arg = NULL; + + if (zend_hash_find(myht, element, size + 1, (void**) &z_arg) == SUCCESS) { + convert_to_long(*z_arg); + return Z_LVAL_PP(z_arg); + } else { + return -1; + } +} + +static int php_date_interval_initialize_from_hash(zval **return_value, php_interval_obj **intobj, HashTable *myht TSRMLS_DC) +{ + (*intobj)->diff = timelib_rel_time_ctor(); + + (*intobj)->diff->y = php_date_long_from_hash_element(myht, "y", 1); + (*intobj)->diff->m = php_date_long_from_hash_element(myht, "m", 1); + (*intobj)->diff->d = php_date_long_from_hash_element(myht, "d", 1); + (*intobj)->diff->h = php_date_long_from_hash_element(myht, "h", 1); + (*intobj)->diff->i = php_date_long_from_hash_element(myht, "i", 1); + (*intobj)->diff->s = php_date_long_from_hash_element(myht, "s", 1); + (*intobj)->diff->invert = php_date_long_from_hash_element(myht, "invert", 6); + (*intobj)->diff->days = php_date_long_from_hash_element(myht, "days", 4); + (*intobj)->initialized = 1; + + return 0; +} + +/* {{{ proto DateInterval::__set_state() +*/ +PHP_METHOD(DateInterval, __set_state) +{ + php_interval_obj *intobj; + zval *array; + HashTable *myht; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &array) == FAILURE) { + RETURN_FALSE; + } + + myht = HASH_OF(array); + + php_date_instantiate(date_ce_interval, return_value TSRMLS_CC); + intobj = (php_interval_obj *) zend_object_store_get_object(return_value TSRMLS_CC); + php_date_interval_initialize_from_hash(&return_value, &intobj, myht TSRMLS_CC); +} +/* }}} */ + +/* {{{ proto DateInterval::__wakeup() +*/ +PHP_METHOD(DateInterval, __wakeup) +{ + zval *object = getThis(); + php_interval_obj *intobj; + HashTable *myht; + + intobj = (php_interval_obj *) zend_object_store_get_object(object TSRMLS_CC); + + myht = Z_OBJPROP_P(object); + + php_date_interval_initialize_from_hash(&return_value, &intobj, myht TSRMLS_CC); +} +/* }}} */ +/* {{{ proto DateInterval date_interval_create_from_date_string(string time) + Uses the normal date parsers and sets up a DateInterval from the relative parts of the parsed string +*/ +PHP_FUNCTION(date_interval_create_from_date_string) +{ + char *time_str = NULL; + int time_str_len = 0; + timelib_time *time; + timelib_error_container *err = NULL; + php_interval_obj *diobj; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &time_str, &time_str_len) == FAILURE) { + RETURN_FALSE; + } + + php_date_instantiate(date_ce_interval, return_value TSRMLS_CC); + + time = timelib_strtotime(time_str, time_str_len, &err, DATE_TIMEZONEDB, php_date_parse_tzfile_wrapper); + diobj = (php_interval_obj *) zend_object_store_get_object(return_value TSRMLS_CC); + diobj->diff = timelib_rel_time_clone(&time->relative); + diobj->initialized = 1; + timelib_time_dtor(time); + timelib_error_container_dtor(err); +} +/* }}} */ + +/* {{{ date_interval_format - */ +static char *date_interval_format(char *format, int format_len, timelib_rel_time *t) +{ + smart_str string = {0}; + int i, length, have_format_spec = 0; + char buffer[33]; + + if (!format_len) { + return estrdup(""); + } + + for (i = 0; i < format_len; i++) { + if (have_format_spec) { + switch (format[i]) { + case 'Y': length = slprintf(buffer, 32, "%02d", (int) t->y); break; + case 'y': length = slprintf(buffer, 32, "%d", (int) t->y); break; + + case 'M': length = slprintf(buffer, 32, "%02d", (int) t->m); break; + case 'm': length = slprintf(buffer, 32, "%d", (int) t->m); break; + + case 'D': length = slprintf(buffer, 32, "%02d", (int) t->d); break; + case 'd': length = slprintf(buffer, 32, "%d", (int) t->d); break; + + case 'H': length = slprintf(buffer, 32, "%02d", (int) t->h); break; + case 'h': length = slprintf(buffer, 32, "%d", (int) t->h); break; + + case 'I': length = slprintf(buffer, 32, "%02d", (int) t->i); break; + case 'i': length = slprintf(buffer, 32, "%d", (int) t->i); break; + + case 'S': length = slprintf(buffer, 32, "%02ld", (long) t->s); break; + case 's': length = slprintf(buffer, 32, "%ld", (long) t->s); break; + + case 'a': { + if ((int) t->days != -99999) { + length = slprintf(buffer, 32, "%d", (int) t->days); + } else { + length = slprintf(buffer, 32, "(unknown)"); + } + } break; + case 'r': length = slprintf(buffer, 32, "%s", t->invert ? "-" : ""); break; + case 'R': length = slprintf(buffer, 32, "%c", t->invert ? '-' : '+'); break; + + case '%': length = slprintf(buffer, 32, "%%"); break; + default: buffer[0] = '%'; buffer[1] = format[i]; buffer[2] = '\0'; length = 2; break; + } + smart_str_appendl(&string, buffer, length); + have_format_spec = 0; + } else { + if (format[i] == '%') { + have_format_spec = 1; + } else { + smart_str_appendc(&string, format[i]); + } + } + } + + smart_str_0(&string); + + return string.c; +} +/* }}} */ + +/* {{{ proto string date_interval_format(DateInterval object, string format) + Formats the interval. +*/ +PHP_FUNCTION(date_interval_format) +{ + zval *object; + php_interval_obj *diobj; + char *format; + int format_len; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &object, date_ce_interval, &format, &format_len) == FAILURE) { + RETURN_FALSE; + } + diobj = (php_interval_obj *) zend_object_store_get_object(object TSRMLS_CC); + DATE_CHECK_INITIALIZED(diobj->initialized, DateInterval); + + RETURN_STRING(date_interval_format(format, format_len, diobj->diff), 0); +} +/* }}} */ + +static int date_period_initialize(timelib_time **st, timelib_time **et, timelib_rel_time **d, long *recurrences, /*const*/ char *format, int format_length TSRMLS_DC) +{ + timelib_time *b = NULL, *e = NULL; + timelib_rel_time *p = NULL; + int r = 0; + int retval = 0; + struct timelib_error_container *errors; + + timelib_strtointerval(format, format_length, &b, &e, &p, &r, &errors); + + if (errors->error_count > 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown or bad format (%s)", format); + retval = FAILURE; + } else { + *st = b; + *et = e; + *d = p; + *recurrences = r; + retval = SUCCESS; + } + timelib_error_container_dtor(errors); + return retval; +} + +/* {{{ proto DatePeriod::__construct(DateTime $start, DateInterval $interval, int recurrences|DateTime $end) + Creates new DatePeriod object. +*/ +PHP_METHOD(DatePeriod, __construct) +{ + php_period_obj *dpobj; + php_date_obj *dateobj; + php_interval_obj *intobj; + zval *start, *end = NULL, *interval; + long recurrences = 0, options = 0; + char *isostr = NULL; + int isostr_len = 0; + timelib_time *clone; + zend_error_handling error_handling; + + zend_replace_error_handling(EH_THROW, NULL, &error_handling TSRMLS_CC); + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "OOl|l", &start, date_ce_date, &interval, date_ce_interval, &recurrences, &options) == FAILURE) { + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "OOO|l", &start, date_ce_date, &interval, date_ce_interval, &end, date_ce_date, &options) == FAILURE) { + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &isostr, &isostr_len, &options) == FAILURE) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "This constructor accepts either (DateTime, DateInterval, int) OR (DateTime, DateInterval, DateTime) OR (string) as arguments."); + zend_restore_error_handling(&error_handling TSRMLS_CC); + return; + } + } + } + + dpobj = zend_object_store_get_object(getThis() TSRMLS_CC); + dpobj->current = NULL; + + if (isostr) { + date_period_initialize(&(dpobj->start), &(dpobj->end), &(dpobj->interval), &recurrences, isostr, isostr_len TSRMLS_CC); + if (dpobj->start == NULL) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "The ISO interval '%s' did not contain a start date.", isostr); + } + if (dpobj->interval == NULL) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "The ISO interval '%s' did not contain an interval.", isostr); + } + if (dpobj->end == NULL && recurrences == 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "The ISO interval '%s' did not contain an end date or a recurrence count.", isostr); + } + + if (dpobj->start) { + timelib_update_ts(dpobj->start, NULL); + } + if (dpobj->end) { + timelib_update_ts(dpobj->end, NULL); + } + } else { + /* init */ + intobj = (php_interval_obj *) zend_object_store_get_object(interval TSRMLS_CC); + + /* start date */ + dateobj = (php_date_obj *) zend_object_store_get_object(start TSRMLS_CC); + clone = timelib_time_ctor(); + memcpy(clone, dateobj->time, sizeof(timelib_time)); + if (dateobj->time->tz_abbr) { + clone->tz_abbr = strdup(dateobj->time->tz_abbr); + } + if (dateobj->time->tz_info) { + clone->tz_info = dateobj->time->tz_info; + } + dpobj->start = clone; + + /* interval */ + dpobj->interval = timelib_rel_time_clone(intobj->diff); + + /* end date */ + if (end) { + dateobj = (php_date_obj *) zend_object_store_get_object(end TSRMLS_CC); + clone = timelib_time_clone(dateobj->time); + dpobj->end = clone; + } + } + + /* options */ + dpobj->include_start_date = !(options & PHP_DATE_PERIOD_EXCLUDE_START_DATE); + + /* recurrrences */ + dpobj->recurrences = recurrences + dpobj->include_start_date; + + dpobj->initialized = 1; + + zend_restore_error_handling(&error_handling TSRMLS_CC); +} +/* }}} */ + +static int check_id_allowed(char *id, long what) +{ + if (what & PHP_DATE_TIMEZONE_GROUP_AFRICA && strncasecmp(id, "Africa/", 7) == 0) return 1; + if (what & PHP_DATE_TIMEZONE_GROUP_AMERICA && strncasecmp(id, "America/", 8) == 0) return 1; + if (what & PHP_DATE_TIMEZONE_GROUP_ANTARCTICA && strncasecmp(id, "Antarctica/", 11) == 0) return 1; + if (what & PHP_DATE_TIMEZONE_GROUP_ARCTIC && strncasecmp(id, "Arctic/", 7) == 0) return 1; + if (what & PHP_DATE_TIMEZONE_GROUP_ASIA && strncasecmp(id, "Asia/", 5) == 0) return 1; + if (what & PHP_DATE_TIMEZONE_GROUP_ATLANTIC && strncasecmp(id, "Atlantic/", 9) == 0) return 1; + if (what & PHP_DATE_TIMEZONE_GROUP_AUSTRALIA && strncasecmp(id, "Australia/", 10) == 0) return 1; + if (what & PHP_DATE_TIMEZONE_GROUP_EUROPE && strncasecmp(id, "Europe/", 7) == 0) return 1; + if (what & PHP_DATE_TIMEZONE_GROUP_INDIAN && strncasecmp(id, "Indian/", 7) == 0) return 1; + if (what & PHP_DATE_TIMEZONE_GROUP_PACIFIC && strncasecmp(id, "Pacific/", 8) == 0) return 1; + if (what & PHP_DATE_TIMEZONE_GROUP_UTC && strncasecmp(id, "UTC", 3) == 0) return 1; + return 0; +} + +/* {{{ proto array timezone_identifiers_list([long what[, string country]]) + Returns numerically index array with all timezone identifiers. +*/ +PHP_FUNCTION(timezone_identifiers_list) +{ + const timelib_tzdb *tzdb; + const timelib_tzdb_index_entry *table; + int i, item_count; + long what = PHP_DATE_TIMEZONE_GROUP_ALL; + char *option = NULL; + int option_len = 0; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|ls", &what, &option, &option_len) == FAILURE) { + RETURN_FALSE; + } + + /* Extra validation */ + if (what == PHP_DATE_TIMEZONE_PER_COUNTRY && option_len != 2) { + php_error_docref(NULL TSRMLS_CC, E_NOTICE, "A two-letter ISO 3166-1 compatible country code is expected"); + RETURN_FALSE; + } + + tzdb = DATE_TIMEZONEDB; + item_count = tzdb->index_size; + table = tzdb->index; + + array_init(return_value); + + for (i = 0; i < item_count; ++i) { + if (what == PHP_DATE_TIMEZONE_PER_COUNTRY) { + if (tzdb->data[table[i].pos + 5] == option[0] && tzdb->data[table[i].pos + 6] == option[1]) { + add_next_index_string(return_value, table[i].id, 1); + } + } else if (what == PHP_DATE_TIMEZONE_GROUP_ALL_W_BC || (check_id_allowed(table[i].id, what) && (tzdb->data[table[i].pos + 4] == '\1'))) { + add_next_index_string(return_value, table[i].id, 1); + } + }; +} +/* }}} */ + +/* {{{ proto array timezone_version_get() + Returns the Olson database version number. +*/ +PHP_FUNCTION(timezone_version_get) +{ + const timelib_tzdb *tzdb; + + tzdb = DATE_TIMEZONEDB; + RETURN_STRING(tzdb->version, 1); +} +/* }}} */ + +/* {{{ proto array timezone_abbreviations_list() + Returns associative array containing dst, offset and the timezone name +*/ +PHP_FUNCTION(timezone_abbreviations_list) +{ + const timelib_tz_lookup_table *table, *entry; + zval *element, **abbr_array_pp, *abbr_array; + + table = timelib_timezone_abbreviations_list(); + array_init(return_value); + entry = table; + + do { + MAKE_STD_ZVAL(element); + array_init(element); + add_assoc_bool(element, "dst", entry->type); + add_assoc_long(element, "offset", entry->gmtoffset); + if (entry->full_tz_name) { + add_assoc_string(element, "timezone_id", entry->full_tz_name, 1); + } else { + add_assoc_null(element, "timezone_id"); + } + + if (zend_hash_find(HASH_OF(return_value), entry->name, strlen(entry->name) + 1, (void **) &abbr_array_pp) == FAILURE) { + MAKE_STD_ZVAL(abbr_array); + array_init(abbr_array); + add_assoc_zval(return_value, entry->name, abbr_array); + } else { + abbr_array = *abbr_array_pp; + } + add_next_index_zval(abbr_array, element); + entry++; + } while (entry->name); +} +/* }}} */ + +/* {{{ proto bool date_default_timezone_set(string timezone_identifier) + Sets the default timezone used by all date/time functions in a script */ +PHP_FUNCTION(date_default_timezone_set) +{ + char *zone; + int zone_len; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &zone, &zone_len) == FAILURE) { + RETURN_FALSE; + } + if (!timelib_timezone_id_is_valid(zone, DATE_TIMEZONEDB)) { + php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Timezone ID '%s' is invalid", zone); + RETURN_FALSE; + } + if (DATEG(timezone)) { + efree(DATEG(timezone)); + DATEG(timezone) = NULL; + } + DATEG(timezone) = estrndup(zone, zone_len); + RETURN_TRUE; +} +/* }}} */ + +/* {{{ proto string date_default_timezone_get() + Gets the default timezone used by all date/time functions in a script */ +PHP_FUNCTION(date_default_timezone_get) +{ + timelib_tzinfo *default_tz; + + default_tz = get_timezone_info(TSRMLS_C); + RETVAL_STRING(default_tz->name, 1); +} +/* }}} */ + +/* {{{ php_do_date_sunrise_sunset + * Common for date_sunrise() and date_sunset() functions + */ +static void php_do_date_sunrise_sunset(INTERNAL_FUNCTION_PARAMETERS, int calc_sunset) +{ + double latitude = 0.0, longitude = 0.0, zenith = 0.0, gmt_offset = 0, altitude; + double h_rise, h_set, N; + timelib_sll rise, set, transit; + long time, retformat = 0; + int rs; + timelib_time *t; + timelib_tzinfo *tzi; + char *retstr; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l|ldddd", &time, &retformat, &latitude, &longitude, &zenith, &gmt_offset) == FAILURE) { + RETURN_FALSE; + } + + switch (ZEND_NUM_ARGS()) { + case 1: + retformat = SUNFUNCS_RET_STRING; + case 2: + latitude = INI_FLT("date.default_latitude"); + case 3: + longitude = INI_FLT("date.default_longitude"); + case 4: + if (calc_sunset) { + zenith = INI_FLT("date.sunset_zenith"); + } else { + zenith = INI_FLT("date.sunrise_zenith"); + } + case 5: + case 6: + break; + default: + php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid format"); + RETURN_FALSE; + break; + } + if (retformat != SUNFUNCS_RET_TIMESTAMP && + retformat != SUNFUNCS_RET_STRING && + retformat != SUNFUNCS_RET_DOUBLE) + { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Wrong return format given, pick one of SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING or SUNFUNCS_RET_DOUBLE"); + RETURN_FALSE; + } + altitude = 90 - zenith; + + /* Initialize time struct */ + t = timelib_time_ctor(); + tzi = get_timezone_info(TSRMLS_C); + t->tz_info = tzi; + t->zone_type = TIMELIB_ZONETYPE_ID; + + if (ZEND_NUM_ARGS() <= 5) { + gmt_offset = timelib_get_current_offset(t) / 3600; + } + + timelib_unixtime2local(t, time); + rs = timelib_astro_rise_set_altitude(t, longitude, latitude, altitude, 1, &h_rise, &h_set, &rise, &set, &transit); + timelib_time_dtor(t); + + if (rs != 0) { + RETURN_FALSE; + } + + if (retformat == SUNFUNCS_RET_TIMESTAMP) { + RETURN_LONG(calc_sunset ? set : rise); + } + N = (calc_sunset ? h_set : h_rise) + gmt_offset; + + if (N > 24 || N < 0) { + N -= floor(N / 24) * 24; + } + + switch (retformat) { + case SUNFUNCS_RET_STRING: + spprintf(&retstr, 0, "%02d:%02d", (int) N, (int) (60 * (N - (int) N))); + RETURN_STRINGL(retstr, 5, 0); + break; + case SUNFUNCS_RET_DOUBLE: + RETURN_DOUBLE(N); + break; + } +} +/* }}} */ + +/* {{{ proto mixed date_sunrise(mixed time [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]]) + Returns time of sunrise for a given day and location */ +PHP_FUNCTION(date_sunrise) +{ + php_do_date_sunrise_sunset(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); +} +/* }}} */ + +/* {{{ proto mixed date_sunset(mixed time [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]]) + Returns time of sunset for a given day and location */ +PHP_FUNCTION(date_sunset) +{ + php_do_date_sunrise_sunset(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1); +} +/* }}} */ + +/* {{{ proto array date_sun_info(long time, float latitude, float longitude) + Returns an array with information about sun set/rise and twilight begin/end */ +PHP_FUNCTION(date_sun_info) +{ + long time; + double latitude, longitude; + timelib_time *t, *t2; + timelib_tzinfo *tzi; + int rs; + timelib_sll rise, set, transit; + int dummy; + double ddummy; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ldd", &time, &latitude, &longitude) == FAILURE) { + RETURN_FALSE; + } + /* Initialize time struct */ + t = timelib_time_ctor(); + tzi = get_timezone_info(TSRMLS_C); + t->tz_info = tzi; + t->zone_type = TIMELIB_ZONETYPE_ID; + timelib_unixtime2local(t, time); + + /* Setup */ + t2 = timelib_time_ctor(); + array_init(return_value); + + /* Get sun up/down and transit */ + rs = timelib_astro_rise_set_altitude(t, longitude, latitude, -35.0/60, 1, &ddummy, &ddummy, &rise, &set, &transit); + switch (rs) { + case -1: /* always below */ + add_assoc_bool(return_value, "sunrise", 0); + add_assoc_bool(return_value, "sunset", 0); + break; + case 1: /* always above */ + add_assoc_bool(return_value, "sunrise", 1); + add_assoc_bool(return_value, "sunset", 1); + break; + default: + t2->sse = rise; + add_assoc_long(return_value, "sunrise", timelib_date_to_int(t2, &dummy)); + t2->sse = set; + add_assoc_long(return_value, "sunset", timelib_date_to_int(t2, &dummy)); + } + t2->sse = transit; + add_assoc_long(return_value, "transit", timelib_date_to_int(t2, &dummy)); + + /* Get civil twilight */ + rs = timelib_astro_rise_set_altitude(t, longitude, latitude, -6.0, 0, &ddummy, &ddummy, &rise, &set, &transit); + switch (rs) { + case -1: /* always below */ + add_assoc_bool(return_value, "civil_twilight_begin", 0); + add_assoc_bool(return_value, "civil_twilight_end", 0); + break; + case 1: /* always above */ + add_assoc_bool(return_value, "civil_twilight_begin", 1); + add_assoc_bool(return_value, "civil_twilight_end", 1); + break; + default: + t2->sse = rise; + add_assoc_long(return_value, "civil_twilight_begin", timelib_date_to_int(t2, &dummy)); + t2->sse = set; + add_assoc_long(return_value, "civil_twilight_end", timelib_date_to_int(t2, &dummy)); + } + + /* Get nautical twilight */ + rs = timelib_astro_rise_set_altitude(t, longitude, latitude, -12.0, 0, &ddummy, &ddummy, &rise, &set, &transit); + switch (rs) { + case -1: /* always below */ + add_assoc_bool(return_value, "nautical_twilight_begin", 0); + add_assoc_bool(return_value, "nautical_twilight_end", 0); + break; + case 1: /* always above */ + add_assoc_bool(return_value, "nautical_twilight_begin", 1); + add_assoc_bool(return_value, "nautical_twilight_end", 1); + break; + default: + t2->sse = rise; + add_assoc_long(return_value, "nautical_twilight_begin", timelib_date_to_int(t2, &dummy)); + t2->sse = set; + add_assoc_long(return_value, "nautical_twilight_end", timelib_date_to_int(t2, &dummy)); + } + + /* Get astronomical twilight */ + rs = timelib_astro_rise_set_altitude(t, longitude, latitude, -18.0, 0, &ddummy, &ddummy, &rise, &set, &transit); + switch (rs) { + case -1: /* always below */ + add_assoc_bool(return_value, "astronomical_twilight_begin", 0); + add_assoc_bool(return_value, "astronomical_twilight_end", 0); + break; + case 1: /* always above */ + add_assoc_bool(return_value, "astronomical_twilight_begin", 1); + add_assoc_bool(return_value, "astronomical_twilight_end", 1); + break; + default: + t2->sse = rise; + add_assoc_long(return_value, "astronomical_twilight_begin", timelib_date_to_int(t2, &dummy)); + t2->sse = set; + add_assoc_long(return_value, "astronomical_twilight_end", timelib_date_to_int(t2, &dummy)); + } + timelib_time_dtor(t); + timelib_time_dtor(t2); +} +/* }}} */ +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * End: + * vim600: fdm=marker + * vim: noet sw=4 ts=4 + */ diff --git a/ext/date/php_date.h b/ext/date/php_date.h new file mode 100644 index 0000000..f0b662b --- /dev/null +++ b/ext/date/php_date.h @@ -0,0 +1,189 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Derick Rethans | + +----------------------------------------------------------------------+ +*/ + +/* $Id$ */ + +#ifndef PHP_DATE_H +#define PHP_DATE_H + +#include "lib/timelib.h" +#include "Zend/zend_hash.h" + +extern zend_module_entry date_module_entry; +#define phpext_date_ptr &date_module_entry + +PHP_FUNCTION(date); +PHP_FUNCTION(idate); +PHP_FUNCTION(gmdate); +PHP_FUNCTION(strtotime); + +PHP_FUNCTION(mktime); +PHP_FUNCTION(gmmktime); + +PHP_FUNCTION(checkdate); + +#ifdef HAVE_STRFTIME +PHP_FUNCTION(strftime); +PHP_FUNCTION(gmstrftime); +#endif + +PHP_FUNCTION(time); +PHP_FUNCTION(localtime); +PHP_FUNCTION(getdate); + +/* Advanced Interface */ +PHP_METHOD(DateTime, __construct); +PHP_METHOD(DateTime, __wakeup); +PHP_METHOD(DateTime, __set_state); +PHP_FUNCTION(date_create); +PHP_FUNCTION(date_create_from_format); +PHP_FUNCTION(date_parse); +PHP_FUNCTION(date_parse_from_format); +PHP_FUNCTION(date_get_last_errors); +PHP_FUNCTION(date_format); +PHP_FUNCTION(date_modify); +PHP_FUNCTION(date_add); +PHP_FUNCTION(date_sub); +PHP_FUNCTION(date_timezone_get); +PHP_FUNCTION(date_timezone_set); +PHP_FUNCTION(date_offset_get); +PHP_FUNCTION(date_diff); + +PHP_FUNCTION(date_time_set); +PHP_FUNCTION(date_date_set); +PHP_FUNCTION(date_isodate_set); +PHP_FUNCTION(date_timestamp_set); +PHP_FUNCTION(date_timestamp_get); + +PHP_METHOD(DateTimeZone, __construct); +PHP_FUNCTION(timezone_open); +PHP_FUNCTION(timezone_name_get); +PHP_FUNCTION(timezone_name_from_abbr); +PHP_FUNCTION(timezone_offset_get); +PHP_FUNCTION(timezone_transitions_get); +PHP_FUNCTION(timezone_location_get); +PHP_FUNCTION(timezone_identifiers_list); +PHP_FUNCTION(timezone_abbreviations_list); +PHP_FUNCTION(timezone_version_get); + +PHP_METHOD(DateInterval, __construct); +PHP_METHOD(DateInterval, __wakeup); +PHP_METHOD(DateInterval, __set_state); +PHP_FUNCTION(date_interval_format); +PHP_FUNCTION(date_interval_create_from_date_string); + +PHP_METHOD(DatePeriod, __construct); + +/* Options and Configuration */ +PHP_FUNCTION(date_default_timezone_set); +PHP_FUNCTION(date_default_timezone_get); + +/* Astro functions */ +PHP_FUNCTION(date_sunrise); +PHP_FUNCTION(date_sunset); +PHP_FUNCTION(date_sun_info); + +PHP_RINIT_FUNCTION(date); +PHP_RSHUTDOWN_FUNCTION(date); +PHP_MINIT_FUNCTION(date); +PHP_MSHUTDOWN_FUNCTION(date); +PHP_MINFO_FUNCTION(date); + +typedef struct _php_date_obj php_date_obj; +typedef struct _php_timezone_obj php_timezone_obj; +typedef struct _php_interval_obj php_interval_obj; +typedef struct _php_period_obj php_period_obj; + +struct _php_date_obj { + zend_object std; + timelib_time *time; + HashTable *props; +}; + +struct _php_timezone_obj { + zend_object std; + int initialized; + int type; + union { + timelib_tzinfo *tz; /* TIMELIB_ZONETYPE_ID; */ + timelib_sll utc_offset; /* TIMELIB_ZONETYPE_OFFSET */ + struct /* TIMELIB_ZONETYPE_ABBR */ + { + timelib_sll utc_offset; + char *abbr; + int dst; + } z; + } tzi; +}; + +struct _php_interval_obj { + zend_object std; + timelib_rel_time *diff; + HashTable *props; + int initialized; +}; + +struct _php_period_obj { + zend_object std; + timelib_time *start; + timelib_time *current; + timelib_time *end; + timelib_rel_time *interval; + int recurrences; + int initialized; + int include_start_date; +}; + +ZEND_BEGIN_MODULE_GLOBALS(date) + char *default_timezone; + char *timezone; + HashTable *tzcache; + timelib_error_container *last_errors; + int timezone_valid; +ZEND_END_MODULE_GLOBALS(date) + +#ifdef ZTS +#define DATEG(v) TSRMG(date_globals_id, zend_date_globals *, v) +#else +#define DATEG(v) (date_globals.v) +#endif + +/* Backwards compability wrapper */ +PHPAPI signed long php_parse_date(char *string, signed long *now); +PHPAPI void php_mktime(INTERNAL_FUNCTION_PARAMETERS, int gmt); +PHPAPI int php_idate(char format, time_t ts, int localtime TSRMLS_DC); +#if HAVE_STRFTIME +#define _php_strftime php_strftime +PHPAPI void php_strftime(INTERNAL_FUNCTION_PARAMETERS, int gm); +#endif +PHPAPI char *php_format_date(char *format, int format_len, time_t ts, int localtime TSRMLS_DC); + +/* Mechanism to set new TZ database */ +PHPAPI void php_date_set_tzdb(timelib_tzdb *tzdb); +PHPAPI timelib_tzinfo *get_timezone_info(TSRMLS_D); + +/* Grabbing CE's so that other exts can use the date objects too */ +PHPAPI zend_class_entry *php_date_get_date_ce(void); +PHPAPI zend_class_entry *php_date_get_timezone_ce(void); + +/* Functions for creating DateTime objects, and initializing them from a string */ +PHPAPI zval *php_date_instantiate(zend_class_entry *pce, zval *object TSRMLS_DC); +PHPAPI int php_date_initialize(php_date_obj *dateobj, /*const*/ char *time_str, int time_str_len, char *format, zval *timezone_object, int ctor TSRMLS_DC); + + +#endif /* PHP_DATE_H */ diff --git a/ext/date/tests/002.phpt b/ext/date/tests/002.phpt new file mode 100644 index 0000000..92d0d5f --- /dev/null +++ b/ext/date/tests/002.phpt @@ -0,0 +1,93 @@ +--TEST-- +strtotime() function +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +*** GMT0 +1999-10-13 00:00:00 +1999-10-13 00:00:00 +2000-01-19 00:00:00 +2000-01-19 00:00:00 +2001-12-21 00:00:00 +2001-12-21 00:00:00 +2001-12-21 12:16:00 +2001-12-21 12:16:00 +%d-12-21 12:16:00 +2001-10-22 21:19:58 +2001-10-22 23:19:58 +2001-10-22 23:32:58 +2001-10-22 19:19:58 +2001-10-22 19:06:58 +2001-10-23 01:00:58 +2001-10-22 23:19:58 +2001-10-22 19:06:58 +2001-10-22 19:05:00 +1996-12-30 00:00:00 +2004-03-01 05:00:00 +*** US/Eastern +1999-10-13 00:00:00 +1999-10-13 00:00:00 +2000-01-19 00:00:00 +2000-01-19 00:00:00 +2001-12-21 00:00:00 +2001-12-21 00:00:00 +2001-12-21 12:16:00 +2001-12-21 12:16:00 +%d-12-21 12:16:00 +2001-10-22 21:19:58 +2001-10-22 19:19:58 +2001-10-22 19:32:58 +2001-10-22 15:19:58 +2001-10-22 15:06:58 +2001-10-22 21:00:58 +2001-10-22 19:19:58 +2001-10-22 15:06:58 +2001-10-22 15:05:00 +1996-12-30 00:00:00 +2004-03-01 00:00:00 diff --git a/ext/date/tests/003.phpt b/ext/date/tests/003.phpt new file mode 100644 index 0000000..2be6cf7 --- /dev/null +++ b/ext/date/tests/003.phpt @@ -0,0 +1,46 @@ +--TEST-- +date suffixes test +--FILE-- + +--EXPECTF-- +string(4) "31st" +string(3) "1st" +string(3) "2nd" +string(3) "3rd" +string(3) "4th" +string(3) "5th" +string(3) "6th" +string(3) "7th" +string(3) "8th" +string(3) "9th" +string(4) "10th" +string(4) "11th" +string(4) "12th" +string(4) "13th" +string(4) "14th" +string(4) "15th" +string(4) "16th" +string(4) "17th" +string(4) "18th" +string(4) "19th" +string(4) "20th" +string(4) "21st" +string(4) "22nd" +string(4) "23rd" +string(4) "24th" +string(4) "25th" +string(4) "26th" +string(4) "27th" +string(4) "28th" +string(4) "29th" +string(4) "30th" +string(4) "31st" +Done diff --git a/ext/date/tests/004.phpt b/ext/date/tests/004.phpt new file mode 100644 index 0000000..33e1fc7 --- /dev/null +++ b/ext/date/tests/004.phpt @@ -0,0 +1,73 @@ +--TEST-- +date() format params +--FILE-- + +--EXPECTF-- +string(1) "2" +string(3) "177" +string(1) "6" +string(2) "30" +string(1) "0" +string(2) "am" +string(3) "041" +string(2) "12" +string(1) "0" +string(1) "0" +string(10) "1151366400" +string(1) "2" +string(3) "177" +string(1) "6" +string(2) "30" +string(1) "0" +string(2) "am" +string(3) "041" +string(1) "3" +string(1) "3" +string(5) "10800" +string(10) "1151366400" +string(1) "1" +string(3) "176" +string(1) "6" +string(2) "30" +string(1) "0" +string(2) "pm" +string(3) "041" +string(1) "7" +string(2) "19" +string(6) "-18000" +string(10) "1151366400" +string(1) "2" +string(3) "177" +string(1) "6" +string(2) "30" +string(1) "0" +string(2) "am" +string(3) "041" +string(1) "1" +string(1) "1" +string(4) "3600" +string(10) "1151366400" +Done diff --git a/ext/date/tests/005.phpt b/ext/date/tests/005.phpt new file mode 100644 index 0000000..911aea7 --- /dev/null +++ b/ext/date/tests/005.phpt @@ -0,0 +1,44 @@ +--TEST-- +idate() and invalid params +--FILE-- + +--EXPECTF-- +Warning: idate() expects at least 1 parameter, 0 given in %s on line %d +bool(false) + +Warning: idate() expects at most 2 parameters, 3 given in %s on line %d +bool(false) + +Warning: idate(): Unrecognized date format token. in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): Unrecognized date format token. in %s on line %d +bool(false) +int(41) + +Warning: idate(): Unrecognized date format token. in %s on line %d +bool(false) + +Warning: idate(): Unrecognized date format token. in %s on line %d +bool(false) +Done diff --git a/ext/date/tests/006.phpt b/ext/date/tests/006.phpt new file mode 100644 index 0000000..19a044a --- /dev/null +++ b/ext/date/tests/006.phpt @@ -0,0 +1,32 @@ +--TEST-- +checkdate() tests +--FILE-- + +--EXPECTF-- +Warning: checkdate() expects exactly 3 parameters, 0 given in %s on line %d +bool(false) +bool(true) +bool(false) +bool(false) +bool(false) +bool(true) +bool(false) +bool(false) +bool(false) +Done diff --git a/ext/date/tests/007.phpt b/ext/date/tests/007.phpt new file mode 100644 index 0000000..567777e --- /dev/null +++ b/ext/date/tests/007.phpt @@ -0,0 +1,100 @@ +--TEST-- +localtime() tests +--FILE-- + +--EXPECTF-- +Warning: localtime() expects at most 2 parameters, 3 given in %s on line %d +bool(false) +array(9) { + [0]=> + int(%d) + [1]=> + int(%d) + [2]=> + int(%d) + [3]=> + int(%d) + [4]=> + int(%d) + [5]=> + int(%d) + [6]=> + int(%d) + [7]=> + int(%d) + [8]=> + int(%d) +} +array(9) { + [0]=> + int(0) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(27) + [4]=> + int(5) + [5]=> + int(106) + [6]=> + int(2) + [7]=> + int(177) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(0) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(27) + ["tm_mon"]=> + int(5) + ["tm_year"]=> + int(106) + ["tm_wday"]=> + int(2) + ["tm_yday"]=> + int(177) + ["tm_isdst"]=> + int(0) +} +array(9) { + [0]=> + int(0) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(27) + [4]=> + int(5) + [5]=> + int(106) + [6]=> + int(2) + [7]=> + int(177) + [8]=> + int(0) +} +Done diff --git a/ext/date/tests/008.phpt b/ext/date/tests/008.phpt new file mode 100644 index 0000000..ce6be18 --- /dev/null +++ b/ext/date/tests/008.phpt @@ -0,0 +1,66 @@ +--TEST-- +getdate() tests +--FILE-- + +--EXPECTF-- +Warning: getdate() expects at most 1 parameter, 2 given in %s on line %d +bool(false) +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(0) + ["hours"]=> + int(0) + ["mday"]=> + int(27) + ["wday"]=> + int(2) + ["mon"]=> + int(6) + ["year"]=> + int(2006) + ["yday"]=> + int(177) + ["weekday"]=> + string(7) "Tuesday" + ["month"]=> + string(4) "June" + [0]=> + int(1151366400) +} +array(11) { + ["seconds"]=> + int(%d) + ["minutes"]=> + int(%d) + ["hours"]=> + int(%d) + ["mday"]=> + int(%d) + ["wday"]=> + int(%d) + ["mon"]=> + int(%d) + ["year"]=> + int(%d) + ["yday"]=> + int(%d) + ["weekday"]=> + string(%d) "%s" + ["month"]=> + string(%d) "%s" + [0]=> + int(%d) +} +Done diff --git a/ext/date/tests/009.phpt b/ext/date/tests/009.phpt new file mode 100644 index 0000000..3697ed6 --- /dev/null +++ b/ext/date/tests/009.phpt @@ -0,0 +1,50 @@ +--TEST-- +strftime() and gmstrftime() tests +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +Warning: strftime() expects at least 1 parameter, 0 given in %s on line %d +bool(false) +bool(false) +%unicode|string%(%d) "Tue Tuesday Jun June Tue Jun 27 00:00:00 2006 %s +%s %" +%unicode|string%(5) "%q %a" +%unicode|string%(%d) "%s" +%unicode|string%(4) "blah" + +Warning: gmstrftime() expects at least 1 parameter, 0 given in %s on line %d +bool(false) +bool(false) +%unicode|string%(%d) "Mon Monday Jun June Mon Jun 26 21:00:00 2006 %s +%s %" +%unicode|string%(5) "%q %a" +%unicode|string%(%d) "%s" +%unicode|string%(4) "blah" +Done diff --git a/ext/date/tests/009_win32.phpt b/ext/date/tests/009_win32.phpt new file mode 100644 index 0000000..cbdc8b7 --- /dev/null +++ b/ext/date/tests/009_win32.phpt @@ -0,0 +1,50 @@ +--TEST-- +strftime() and gmstrftime() tests +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +Warning: strftime() expects at least 1 parameter, 0 given in %s on line %d +bool(false) +bool(false) +string(%d) "Tue Tuesday Jun June 06/27/06 00:00:00 27 00 12 178 06 00 AM 00 26 26 2 06/27/06 00:00:00 06 2006 %s" +string(5) "%q %a" +string(4) "blah" + +Warning: gmstrftime() expects at least 1 parameter, 0 given in %s on line %d +bool(false) +bool(false) +string(%d) "Mon Monday Jun June 06/26/06 21:00:00 26 21 09 177 06 00 PM 00 26 26 1 06/26/06 21:00:00 06 2006 %s" +string(5) "%q %a" +string(4) "blah" +Done diff --git a/ext/date/tests/010.phpt b/ext/date/tests/010.phpt new file mode 100644 index 0000000..58b0ce8 --- /dev/null +++ b/ext/date/tests/010.phpt @@ -0,0 +1,67 @@ +--TEST-- +timezone_abbreviations_list() tests +--FILE-- + +--EXPECTF-- +array(6) { + [0]=> + array(3) { + ["dst"]=> + bool(false) + ["offset"]=> + int(0) + ["timezone_id"]=> + string(13) "Etc/Universal" + } + [1]=> + array(3) { + ["dst"]=> + bool(false) + ["offset"]=> + int(0) + ["timezone_id"]=> + string(7) "Etc/UTC" + } + [2]=> + array(3) { + ["dst"]=> + bool(false) + ["offset"]=> + int(0) + ["timezone_id"]=> + string(8) "Etc/Zulu" + } + [3]=> + array(3) { + ["dst"]=> + bool(false) + ["offset"]=> + int(0) + ["timezone_id"]=> + string(3) "GMT" + } + [4]=> + array(3) { + ["dst"]=> + bool(false) + ["offset"]=> + int(0) + ["timezone_id"]=> + string(3) "UTC" + } + [5]=> + array(3) { + ["dst"]=> + bool(false) + ["offset"]=> + int(0) + ["timezone_id"]=> + string(3) "UTC" + } +} +Done diff --git a/ext/date/tests/011.phpt b/ext/date/tests/011.phpt new file mode 100644 index 0000000..460e8c9 --- /dev/null +++ b/ext/date/tests/011.phpt @@ -0,0 +1,22 @@ +--TEST-- +timezone_name_from_abbr() tests +--FILE-- + +--EXPECTF-- +Warning: timezone_name_from_abbr() expects at least 1 parameter, 0 given in %s on line %d +bool(false) +string(13) "Europe/Berlin" +bool(false) +bool(false) +string(12) "Europe/Paris" +Done diff --git a/ext/date/tests/012.phpt b/ext/date/tests/012.phpt new file mode 100644 index 0000000..0577f18 --- /dev/null +++ b/ext/date/tests/012.phpt @@ -0,0 +1,57 @@ +--TEST-- +date_isodate_set() tests +--FILE-- +format("Y/m/d H:i:s")); +var_dump(date_isodate_set($dto, 2006)); +var_dump($dto->format("Y/m/d H:i:s")); +var_dump(date_isodate_set($dto, 2006, 5)); +var_dump($dto->format("Y/m/d H:i:s")); +var_dump(date_isodate_set($dto, 2006, 100, 15)); +var_dump($dto->format("Y/m/d H:i:s")); +var_dump(date_isodate_set($dto, 2006, 100, 15, 10)); +var_dump($dto->format("Y/m/d H:i:s")); + +echo "Done\n"; +?> +--EXPECTF-- +object(DateTime)#1 (3) { + ["date"]=> + string(19) "2006-01-23 00:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} +string(19) "2006/01/23 00:00:00" + +Warning: date_isodate_set() expects at least 3 parameters, 2 given in %s on line %d +bool(false) +string(19) "2006/01/23 00:00:00" +object(DateTime)#1 (3) { + ["date"]=> + string(19) "2006-01-30 00:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} +string(19) "2006/01/30 00:00:00" +object(DateTime)#1 (3) { + ["date"]=> + string(19) "2007-12-10 00:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} +string(19) "2007/12/10 00:00:00" + +Warning: date_isodate_set() expects at most 4 parameters, 5 given in %s on line %d +bool(false) +string(19) "2007/12/10 00:00:00" +Done diff --git a/ext/date/tests/013.phpt b/ext/date/tests/013.phpt new file mode 100644 index 0000000..60fac24 --- /dev/null +++ b/ext/date/tests/013.phpt @@ -0,0 +1,57 @@ +--TEST-- +date_date_set() tests +--FILE-- +format("Y.m.d H:i:s")); +var_dump(date_date_set()); +var_dump($dto->format("Y.m.d H:i:s")); +var_dump(date_date_set($dto, 2006, 5)); +var_dump($dto->format("Y.m.d H:i:s")); +var_dump(date_date_set($dto, 2006, 2, 15)); +var_dump($dto->format("Y.m.d H:i:s")); +var_dump(date_date_set($dto, 2006, 24, 60)); +var_dump($dto->format("Y.m.d H:i:s")); + +echo "Done\n"; +?> +--EXPECTF-- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2006-12-12 00:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} +string(19) "2006.12.12 00:00:00" + +Warning: date_date_set() expects exactly 4 parameters, 0 given in %s on line %d +bool(false) +string(19) "2006.12.12 00:00:00" + +Warning: date_date_set() expects exactly 4 parameters, 3 given in %s on line %d +bool(false) +string(19) "2006.12.12 00:00:00" +object(DateTime)#1 (3) { + ["date"]=> + string(19) "2006-02-15 00:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} +string(19) "2006.02.15 00:00:00" +object(DateTime)#1 (3) { + ["date"]=> + string(19) "2008-01-29 00:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} +string(19) "2008.01.29 00:00:00" +Done diff --git a/ext/date/tests/014.phpt b/ext/date/tests/014.phpt new file mode 100644 index 0000000..be08477 --- /dev/null +++ b/ext/date/tests/014.phpt @@ -0,0 +1,38 @@ +--TEST-- +timezone_offset_get() tests +--FILE-- + +--EXPECTF-- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2006-12-12 00:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} +object(DateTimeZone)#%d (0) { +} + +Warning: timezone_offset_get() expects exactly 2 parameters, 0 given in %s on line %d +bool(false) +int(0) + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, object given in %s on line %d +bool(false) +Done diff --git a/ext/date/tests/015.phpt b/ext/date/tests/015.phpt new file mode 100644 index 0000000..46001ad --- /dev/null +++ b/ext/date/tests/015.phpt @@ -0,0 +1,21 @@ +--TEST-- +timezone object reference handling +--FILE-- +getTimezone(); +var_dump($tzold->getName()); +$dto->setTimezone(new DateTimeZone('US/Eastern')); +var_dump($tzold->getName()); +var_dump($dto->getTimezone()->getName()); +unset($dto); +var_dump($tzold->getName()); +echo "Done\n"; +?> +--EXPECTF-- +string(3) "UTC" +string(3) "UTC" +string(10) "US/Eastern" +string(3) "UTC" +Done diff --git a/ext/date/tests/DateInterval_format.phpt b/ext/date/tests/DateInterval_format.phpt new file mode 100644 index 0000000..c144f58 --- /dev/null +++ b/ext/date/tests/DateInterval_format.phpt @@ -0,0 +1,71 @@ +--TEST-- +DateInterval::format(), except %a +--DESCRIPTION-- +%a is covered in a separate test. +Don't want an XFAIL here to cause confusion if a real bug comes up. +--CREDITS-- +Daniel Convissor +# TestFest 2010 BKTK +--SKIPIF-- + +--FILE-- +diff($date2); + +echo $interval->format('Y=%Y') . "\n"; +echo $interval->format('M=%M') . "\n"; +echo $interval->format('D=%D') . "\n"; +echo $interval->format('H=%H') . "\n"; +echo $interval->format('I=%I') . "\n"; +echo $interval->format('S=%S') . "\n"; +echo $interval->format('R=%R') . "\n"; + +echo $interval->format('y=%y') . "\n"; +echo $interval->format('m=%m') . "\n"; +echo $interval->format('d=%d') . "\n"; +echo $interval->format('h=%h') . "\n"; +echo $interval->format('i=%i') . "\n"; +echo $interval->format('s=%s') . "\n"; +echo $interval->format('r=%r') . "\n"; + +echo "\n"; + +$interval = $date2->diff($date1); + +echo $interval->format('inverted R=%R') . "\n"; +echo $interval->format('inverted r=%r') . "\n"; + +echo "\n"; + +echo $interval->format('%=%%') . "\n"; + +// Invalid valid format character does not raise warnings. +echo $interval->format('x=%x') . "\n"; + +?> +--EXPECT-- +Y=01 +M=02 +D=03 +H=04 +I=05 +S=06 +R=+ +y=1 +m=2 +d=3 +h=4 +i=5 +s=6 +r= + +inverted R=- +inverted r=- + +%=% +x=%x diff --git a/ext/date/tests/DateInterval_format_a.phpt b/ext/date/tests/DateInterval_format_a.phpt new file mode 100644 index 0000000..48c6cc1 --- /dev/null +++ b/ext/date/tests/DateInterval_format_a.phpt @@ -0,0 +1,24 @@ +--TEST-- +DateInterval::format(), %a +--CREDITS-- +Daniel Convissor +# TestFest 2010 BKTK +--INI-- +date.timezone=UTC +--SKIPIF-- + +--FILE-- +diff($date2); + +echo $interval->format('a=%a') . "\n"; + +?> +--EXPECT-- +a=428 diff --git a/ext/date/tests/DatePeriod_wrong_constructor.phpt b/ext/date/tests/DatePeriod_wrong_constructor.phpt new file mode 100644 index 0000000..62e6aa9 --- /dev/null +++ b/ext/date/tests/DatePeriod_wrong_constructor.phpt @@ -0,0 +1,17 @@ +--TEST-- +DatePeriod: Test wrong __construct parameter +--CREDITS-- +Havard Eide +#PHPTestFest2009 Norway 2009-06-09 \o/ +--INI-- +date.timezone=UTC +--FILE-- + +--EXPECTF-- +Fatal error: Uncaught exception 'Exception' with message 'DatePeriod::__construct(): This constructor accepts either (DateTime, DateInterval, int) OR (DateTime, DateInterval, DateTime) OR (string) as arguments.' in %s:%d +Stack trace: +#0 %s(%d): DatePeriod->__construct() +#1 {main} + thrown in %s on line %d \ No newline at end of file diff --git a/ext/date/tests/DateTimeZone_clone_basic1.phpt b/ext/date/tests/DateTimeZone_clone_basic1.phpt new file mode 100644 index 0000000..6de5d4b --- /dev/null +++ b/ext/date/tests/DateTimeZone_clone_basic1.phpt @@ -0,0 +1,39 @@ +--TEST-- +Test clone on DateTimeZone objects +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing clone on DateTime objects *** +object(DateTimeZone)#%d (0) { +} +object(DateTimeZone)#%d (0) { +} +TEST PASSED : Objects equal but not indetical +===DONE=== + + diff --git a/ext/date/tests/DateTimeZone_clone_basic2.phpt b/ext/date/tests/DateTimeZone_clone_basic2.phpt new file mode 100644 index 0000000..a499510 --- /dev/null +++ b/ext/date/tests/DateTimeZone_clone_basic2.phpt @@ -0,0 +1,66 @@ +--TEST-- +Testing clone on objects whoose class derived from DateTimeZone class +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing clone on objects whoose class derived from DateTimeZone class *** +object(DateTimeZoneExt1)#%d (2) { + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" +} +object(DateTimeZoneExt1)#%d (2) { + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" +} +object(DateTimeZoneExt2)#%d (4) { + ["property3"]=> + bool(true) + ["property4"]=> + float(10.5) + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" +} +object(DateTimeZoneExt2)#%d (4) { + ["property3"]=> + bool(true) + ["property4"]=> + float(10.5) + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" +} +===DONE=== diff --git a/ext/date/tests/DateTimeZone_clone_basic3.phpt b/ext/date/tests/DateTimeZone_clone_basic3.phpt new file mode 100644 index 0000000..e85f42e --- /dev/null +++ b/ext/date/tests/DateTimeZone_clone_basic3.phpt @@ -0,0 +1,75 @@ +--TEST-- +Test clone of DateTimeZOne objects +--FILE-- +property1 = 99; +$d1->property2 = "Hello"; +var_dump($d1); +echo "\n-- clone it --\n"; +$d1_clone = clone $d1; +var_dump($d1_clone); +echo "\n-- Add some more properties --\n"; +$d1_clone->property3 = true; +$d1_clone->property4 = 10.5; +var_dump($d1_clone); +echo "\n-- clone it --\n"; +$d2_clone = clone $d1_clone; +var_dump($d2_clone); +?> +===DONE=== +--EXPECTF-- +*** Testing clone on DateTime objects *** + +-- Create a DateTimeZone object -- +object(DateTimeZone)#%d (0) { +} + +-- Add some properties -- +object(DateTimeZone)#%d (2) { + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" +} + +-- clone it -- +object(DateTimeZone)#%d (2) { + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" +} + +-- Add some more properties -- +object(DateTimeZone)#%d (4) { + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" + ["property3"]=> + bool(true) + ["property4"]=> + float(10.5) +} + +-- clone it -- +object(DateTimeZone)#%d (4) { + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" + ["property3"]=> + bool(true) + ["property4"]=> + float(10.5) +} +===DONE=== diff --git a/ext/date/tests/DateTimeZone_clone_basic4.phpt b/ext/date/tests/DateTimeZone_clone_basic4.phpt new file mode 100644 index 0000000..a295b91 --- /dev/null +++ b/ext/date/tests/DateTimeZone_clone_basic4.phpt @@ -0,0 +1,28 @@ +--TEST-- +Test clone of DateTimeZone derived objects with __clone magic method +--FILE-- +getName() ); + +?> +===DONE=== +--EXPECTF-- +*** Testing clone of objects derived from DateTimeZone class with __clone magic method*** +-- DateTimeExt1 __clone magic method called -- +string(16) "America/New_York" +===DONE=== diff --git a/ext/date/tests/DateTimeZone_compare_basic1.phpt b/ext/date/tests/DateTimeZone_compare_basic1.phpt new file mode 100644 index 0000000..f3648cb --- /dev/null +++ b/ext/date/tests/DateTimeZone_compare_basic1.phpt @@ -0,0 +1,54 @@ +--TEST-- +Test of compare object handler for DateTime objects +--FILE-- + +===DONE=== +--EXPECT-- +Simple test for DateTimeZone compare object handler + +-- All the following tests should compare equal -- +bool(true) + +-- All the following tests should compare NOT equal -- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTimeZone_construct_basic.phpt b/ext/date/tests/DateTimeZone_construct_basic.phpt new file mode 100644 index 0000000..b681e8f --- /dev/null +++ b/ext/date/tests/DateTimeZone_construct_basic.phpt @@ -0,0 +1,30 @@ +--TEST-- +Test new DateTimeZone() : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing new DateTimeZone() : basic functionality *** +object(DateTimeZone)#%d (0) { +} +object(DateTimeZone)#%d (0) { +} +object(DateTimeZone)#%d (0) { +} +===DONE=== diff --git a/ext/date/tests/DateTimeZone_construct_error.phpt b/ext/date/tests/DateTimeZone_construct_error.phpt new file mode 100644 index 0000000..8ffe322 --- /dev/null +++ b/ext/date/tests/DateTimeZone_construct_error.phpt @@ -0,0 +1,32 @@ +--TEST-- +Test new DateTimeZone() : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing DateTimeZone() : error conditions *** + +-- Testing new DateTimeZone() with more than expected no. of arguments -- + +Fatal error: Uncaught exception 'Exception' with message 'DateTimeZone::__construct() expects exactly 1 parameter, 2 given' in %s:%d +Stack trace: +#0 %s(%d): DateTimeZone->__construct('GMT', 99) +#1 {main} + thrown in %s on line %d + \ No newline at end of file diff --git a/ext/date/tests/DateTimeZone_construct_variation1.phpt b/ext/date/tests/DateTimeZone_construct_variation1.phpt new file mode 100644 index 0000000..65e575e --- /dev/null +++ b/ext/date/tests/DateTimeZone_construct_variation1.phpt @@ -0,0 +1,200 @@ +--TEST-- +Test DateTime::__construct() function : usage variation - Passing unexpected values to first argument $timezone. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +foreach($inputs as $variation =>$timezone) { + echo "\n-- $variation --\n"; + try { + var_dump( new DateTimezone($timezone) ); + } catch(Exception $e) { + $msg = $e->getMessage(); + echo "FAILED: " . $msg . "\n"; + } + +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::__construct() : usage variation - unexpected values to first argument $timezone*** + +-- int 0 -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone (0) + +-- int 1 -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone (1) + +-- int 12345 -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone (12345) + +-- int -12345 -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone (-12345) + +-- float 10.5 -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone (10.5) + +-- float -10.5 -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone (-10.5) + +-- float .5 -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone (0.5) + +-- empty array -- +FAILED: DateTimeZone::__construct() expects parameter 1 to be string, array given + +-- int indexed array -- +FAILED: DateTimeZone::__construct() expects parameter 1 to be string, array given + +-- associative array -- +FAILED: DateTimeZone::__construct() expects parameter 1 to be string, array given + +-- nested arrays -- +FAILED: DateTimeZone::__construct() expects parameter 1 to be string, array given + +-- uppercase NULL -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone () + +-- lowercase null -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone () + +-- lowercase true -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone (1) + +-- lowercase false -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone () + +-- uppercase TRUE -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone (1) + +-- uppercase FALSE -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone () + +-- empty string DQ -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone () + +-- empty string SQ -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone () + +-- string DQ -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone (string) + +-- string SQ -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone (string) + +-- mixed case string -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone (sTrInG) + +-- heredoc -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone (hello world) + +-- instance of classWithToString -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone (Class A object) + +-- instance of classWithoutToString -- +FAILED: DateTimeZone::__construct() expects parameter 1 to be string, object given + +-- undefined var -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone () + +-- unset var -- +FAILED: DateTimeZone::__construct(): Unknown or bad timezone () + +-- resource -- +FAILED: DateTimeZone::__construct() expects parameter 1 to be string, resource given +===DONE=== diff --git a/ext/date/tests/DateTimeZone_extends_basic1.phpt b/ext/date/tests/DateTimeZone_extends_basic1.phpt new file mode 100644 index 0000000..afc2ed6 --- /dev/null +++ b/ext/date/tests/DateTimeZone_extends_basic1.phpt @@ -0,0 +1,34 @@ +--TEST-- +Test DateTimeZone class inheritance +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing basic DateTimeZone inheritance() *** + +-- Create an instance of DateTimeZoneExt -- + +-- Invoke __toString -- +America/Los_Angeles +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTimeZone_getName_basic1.phpt b/ext/date/tests/DateTimeZone_getName_basic1.phpt new file mode 100644 index 0000000..de5ca65 --- /dev/null +++ b/ext/date/tests/DateTimeZone_getName_basic1.phpt @@ -0,0 +1,32 @@ +--TEST-- +Test DateTimeZone::getName() function : basic functionality +--FILE-- +getName() ); + +$tz2 = new DateTimeZone("America/New_York"); +var_dump( $tz2->getName() ); + +$tz3 = new DateTimeZone("America/Los_Angeles"); +var_dump( $tz3->getName() ); + +?> +===DONE=== +--EXPECT-- +*** Testing DateTimeZone::getName() : basic functionality *** +string(13) "Europe/London" +string(16) "America/New_York" +string(19) "America/Los_Angeles" +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTimeZone_getName_error.phpt b/ext/date/tests/DateTimeZone_getName_error.phpt new file mode 100644 index 0000000..0a87b10 --- /dev/null +++ b/ext/date/tests/DateTimeZone_getName_error.phpt @@ -0,0 +1,31 @@ +--TEST-- +Test DateTimeZone::getName() function : error conditions +--FILE-- +getName($extra_arg) ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTimeZone::getName() : error conditions *** + +-- Testing DateTimeZone::getName() function with more than expected no. of arguments -- + +Warning: DateTimeZone::getName() expects exactly 0 parameters, 1 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTimeZone_getOffset_basic1.phpt b/ext/date/tests/DateTimeZone_getOffset_basic1.phpt new file mode 100644 index 0000000..ea3c280 --- /dev/null +++ b/ext/date/tests/DateTimeZone_getOffset_basic1.phpt @@ -0,0 +1,33 @@ +--TEST-- +Test DateTimeZone::getOffset() function : basic functionality +--FILE-- +getOffset($date) ); + +$tz2 = new DateTimeZone("America/New_York"); +var_dump( $tz2->getOffset($date) ); + +$tz3 = new DateTimeZone("America/Los_Angeles"); +var_dump( $tz3->getOffset($date) ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTimeZone::getOffset() : basic functionality *** +%rint\(0\)|int\(3600\)%r +%rint\(-18000\)|int\(-14400\)%r +%rint\(-28800\)|int\(-25200\)%r +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTimeZone_getOffset_error.phpt b/ext/date/tests/DateTimeZone_getOffset_error.phpt new file mode 100644 index 0000000..56e45b7 --- /dev/null +++ b/ext/date/tests/DateTimeZone_getOffset_error.phpt @@ -0,0 +1,40 @@ +--TEST-- +Test DateTimeZone::getOffset() function : error conditions +--FILE-- +getOffset() ); + +echo "\n-- Testing DateTimeZone::getOffset() function with more than expected no. of arguments --\n"; +$extra_arg = 99; +var_dump( $tz->getOffset($date, $extra_arg) ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTimeZone::getOffset() : error conditions *** + +-- Testing DateTimeZone::getOffset() function with zero arguments -- + +Warning: DateTimeZone::getOffset() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing DateTimeZone::getOffset() function with more than expected no. of arguments -- + +Warning: DateTimeZone::getOffset() expects exactly 1 parameter, 2 given in %s on line %d +bool(false) +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTimeZone_getOffset_variation1.phpt b/ext/date/tests/DateTimeZone_getOffset_variation1.phpt new file mode 100644 index 0000000..a86d5e1 --- /dev/null +++ b/ext/date/tests/DateTimeZone_getOffset_variation1.phpt @@ -0,0 +1,252 @@ +--TEST-- +Test DateTimeZone::getOffset() function : usage variation - Passing unexpected values to first argument $datetime. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$timezone = new DateTimezone("Europe/London"); + +foreach($inputs as $variation =>$datetime) { + echo "\n-- $variation --\n"; + var_dump( $timezone->getOffset($datetime) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTimeZone::getOffset() : usage variation - unexpected values to first argument $datetime*** + +-- int 0 -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- unset var -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- resource -- + +Warning: DateTimeZone::getOffset() expects parameter 1 to be DateTime, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTimeZone_getTransitions_basic1.phpt b/ext/date/tests/DateTimeZone_getTransitions_basic1.phpt new file mode 100644 index 0000000..f3640d1 --- /dev/null +++ b/ext/date/tests/DateTimeZone_getTransitions_basic1.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test DateTimeZone::getTransitions() function : basic functionality +--FILE-- +getTransitions(); + +if (!is_array($tran)) { + echo "TEST FAILED: Expected an array\n"; +} + +echo "\n-- Total number of transitions: " . count($tran). " --\n"; + +echo "\n-- Format a sample entry for Spring 1963 --\n"; +var_dump( $tran[97] ); + +?> +===DONE=== +--EXPECT-- +*** Testing DateTimeZone::getTransitions() : basic functionality *** + +-- Total number of transitions: 243 -- + +-- Format a sample entry for Spring 1963 -- +array(5) { + ["ts"]=> + int(-213228000) + ["time"]=> + string(24) "1963-03-31T02:00:00+0000" + ["offset"]=> + int(3600) + ["isdst"]=> + bool(true) + ["abbr"]=> + string(3) "BST" +} +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTimeZone_getTransitions_error.phpt b/ext/date/tests/DateTimeZone_getTransitions_error.phpt new file mode 100644 index 0000000..bfcd224 --- /dev/null +++ b/ext/date/tests/DateTimeZone_getTransitions_error.phpt @@ -0,0 +1,34 @@ +--TEST-- +Test DateTimeZone::getTransitions() function : error conditions +--FILE-- +getTransitions($timestamp_begin, $timestamp_end, $extra_arg) ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTimeZone::getTransitions() : error conditions *** + +-- Testing DateTimeZone::getTransitions() function with more than expected no. of arguments -- + +Warning: DateTimeZone::getTransitions() expects at most 2 parameters, 3 given in %s on line %d +bool(false) +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt b/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt new file mode 100644 index 0000000..015c9e8 --- /dev/null +++ b/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt @@ -0,0 +1,70 @@ +--TEST-- +Test DateTimeZone::listAbbreviations() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing DateTimeZone::listAbbreviations() : basic functionality *** +string(5) "array" +int(%d) + +-- Format a sample entry -- +array(4) { + [0]=> + array(3) { + ["dst"]=> + bool(true) + ["offset"]=> + int(-14400) + ["timezone_id"]=> + string(18) "America/Porto_Acre" + } + [1]=> + array(3) { + ["dst"]=> + bool(true) + ["offset"]=> + int(-14400) + ["timezone_id"]=> + string(16) "America/Eirunepe" + } + [2]=> + array(3) { + ["dst"]=> + bool(true) + ["offset"]=> + int(-14400) + ["timezone_id"]=> + string(18) "America/Rio_Branco" + } + [3]=> + array(3) { + ["dst"]=> + bool(true) + ["offset"]=> + int(-14400) + ["timezone_id"]=> + string(11) "Brazil/Acre" + } +} +===DONE=== diff --git a/ext/date/tests/DateTimeZone_listIdentifiers_basic1.phpt b/ext/date/tests/DateTimeZone_listIdentifiers_basic1.phpt new file mode 100644 index 0000000..7eebfa8 --- /dev/null +++ b/ext/date/tests/DateTimeZone_listIdentifiers_basic1.phpt @@ -0,0 +1,36 @@ +--TEST-- +Test DateTimeZone::listIdentifiers function : basic functionality +--FILE-- + +===DONE=== +--EXPECT-- +*** Testing DateTimeZone::listIdentifiers() : basic functionality *** +Check return tpe is ARRAY +bool(true) +Check array contains some common timezones +bool(true) +bool(true) +bool(true) +===DONE=== + \ No newline at end of file diff --git a/ext/date/tests/DateTimeZone_serialize.phpt b/ext/date/tests/DateTimeZone_serialize.phpt new file mode 100644 index 0000000..08dd934 --- /dev/null +++ b/ext/date/tests/DateTimeZone_serialize.phpt @@ -0,0 +1,29 @@ +--TEST-- +Test serialization of DateTimeZone objects +--FILE-- +getName() ); + +?> +===DONE=== +--EXPECTF-- +object(DateTimeZone)#%d (0) { +} +string(24) "O:12:"DateTimeZone":0:{}" +object(DateTimeZone)#%d (0) { +} + +Warning: DateTimeZone::getName(): The DateTimeZone object has not been correctly initialized by its constructor in %s on line %d +bool(false) +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTimeZone_verify.phpt b/ext/date/tests/DateTimeZone_verify.phpt new file mode 100644 index 0000000..3ca0913 --- /dev/null +++ b/ext/date/tests/DateTimeZone_verify.phpt @@ -0,0 +1,111 @@ +--TEST-- +Test DateTimeZone class registration +--FILE-- +getMethods(); +var_dump($methods); + +echo "..and get names of all its class constants\n"; +$constants = $class->getConstants(); +var_dump($constants); +?> +===DONE=== +--EXPECTF-- +*** Verify DateTimeZone class *** +Verify DateTimeZone class registered OK +object(ReflectionClass)#%d (1) { + ["name"]=> + string(12) "DateTimeZone" +} +..and get names of all its methods +array(7) { + [0]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(11) "__construct" + ["class"]=> + string(12) "DateTimeZone" + } + [1]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(7) "getName" + ["class"]=> + string(12) "DateTimeZone" + } + [2]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(9) "getOffset" + ["class"]=> + string(12) "DateTimeZone" + } + [3]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(14) "getTransitions" + ["class"]=> + string(12) "DateTimeZone" + } + [4]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(11) "getLocation" + ["class"]=> + string(12) "DateTimeZone" + } + [5]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(17) "listAbbreviations" + ["class"]=> + string(12) "DateTimeZone" + } + [6]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(15) "listIdentifiers" + ["class"]=> + string(12) "DateTimeZone" + } +} +..and get names of all its class constants +array(14) { + ["AFRICA"]=> + int(1) + ["AMERICA"]=> + int(2) + ["ANTARCTICA"]=> + int(4) + ["ARCTIC"]=> + int(8) + ["ASIA"]=> + int(16) + ["ATLANTIC"]=> + int(32) + ["AUSTRALIA"]=> + int(64) + ["EUROPE"]=> + int(128) + ["INDIAN"]=> + int(256) + ["PACIFIC"]=> + int(512) + ["UTC"]=> + int(1024) + ["ALL"]=> + int(2047) + ["ALL_WITH_BC"]=> + int(4095) + ["PER_COUNTRY"]=> + int(4096) +} +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTime_add-dates.phpt b/ext/date/tests/DateTime_add-dates.phpt new file mode 100644 index 0000000..48c821f --- /dev/null +++ b/ext/date/tests/DateTime_add-dates.phpt @@ -0,0 +1,29 @@ +--TEST-- +DateTime::add() -- dates +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test__7: ADD: 2009-01-07 00:00:00 EST + P+0Y0M7DT0H0M0S = **2009-01-14 00:00:00 EST** +test_years_positive__7_by_0_day: ADD: 2000-02-07 00:00:00 EST + P+7Y0M0DT0H0M0S = **2007-02-07 00:00:00 EST** +test_years_positive__7_by_1_day: ADD: 2000-02-07 00:00:00 EST + P+7Y0M1DT0H0M0S = **2007-02-08 00:00:00 EST** +test_years_positive__6_shy_1_day: ADD: 2000-02-07 00:00:00 EST + P+6Y11M30DT0H0M0S = **2007-02-06 00:00:00 EST** +test_years_positive__7_by_1_month: ADD: 2000-02-07 00:00:00 EST + P+7Y1M0DT0H0M0S = **2007-03-07 00:00:00 EST** +test_years_positive__6_shy_1_month: ADD: 2000-02-07 00:00:00 EST + P+6Y11M0DT0H0M0S = **2007-01-07 00:00:00 EST** +test_years_positive__7_by_1_month_split_newyear: ADD: 1999-12-07 00:00:00 EST + P+7Y1M0DT0H0M0S = **2007-01-07 00:00:00 EST** +test_years_positive__6_shy_1_month_split_newyear: ADD: 2000-01-07 00:00:00 EST + P+6Y11M0DT0H0M0S = **2006-12-07 00:00:00 EST** +test_negative__7: ADD: 2009-01-14 00:00:00 EST + P-0Y0M7DT0H0M0S = **2009-01-07 00:00:00 EST** +test_years_negative__7_by_0_day: ADD: 2007-02-07 00:00:00 EST + P-7Y0M0DT0H0M0S = **2000-02-07 00:00:00 EST** +test_years_negative__7_by_1_day: ADD: 2007-02-08 00:00:00 EST + P-7Y0M1DT0H0M0S = **2000-02-07 00:00:00 EST** +test_years_negative__6_shy_1_day: ADD: 2007-02-06 00:00:00 EST + P-6Y11M28DT0H0M0S = **2000-02-07 00:00:00 EST** +test_years_negative__7_by_1_month: ADD: 2007-03-07 00:00:00 EST + P-7Y1M0DT0H0M0S = **2000-02-07 00:00:00 EST** +test_years_negative__6_shy_1_month: ADD: 2007-01-07 00:00:00 EST + P-6Y11M0DT0H0M0S = **2000-02-07 00:00:00 EST** +test_years_negative__7_by_1_month_split_newyear: ADD: 2007-01-07 00:00:00 EST + P-7Y1M0DT0H0M0S = **1999-12-07 00:00:00 EST** +test_years_negative__6_shy_1_month_split_newyear: ADD: 2006-12-07 00:00:00 EST + P-6Y11M0DT0H0M0S = **2000-01-07 00:00:00 EST** diff --git a/ext/date/tests/DateTime_add-fall-type2-type2.phpt b/ext/date/tests/DateTime_add-fall-type2-type2.phpt new file mode 100644 index 0000000..894ff60 --- /dev/null +++ b/ext/date/tests/DateTime_add-fall-type2-type2.phpt @@ -0,0 +1,51 @@ +--TEST-- +DateTime::add() -- fall type2 type2 +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_time_fall_type2_prev_type2_prev: ADD: 2010-10-04 02:18:48 EDT + P+0Y1M2DT16H19M40S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_prev_type2_dt: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT5H31M52S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_prev_type2_redodt: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT6H34M5S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_prev_type2_redost: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT7H36M16S = **2010-11-07 02:14:44 EDT** +test_time_fall_type2_prev_type2_st: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT9H38M27S = **2010-11-07 04:16:55 EDT** +test_time_fall_type2_prev_type2_post: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M2DT1H21M31S = **2010-11-08 19:59:59 EDT** +test_time_fall_type2_dt_type2_prev: ADD: 2010-11-07 00:10:20 EDT + P-0Y0M0DT5H31M52S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_dt_type2_dt: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT0H5M15S = **2010-11-07 00:15:35 EDT** +test_time_fall_type2_dt_type2_redodt: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT1H2M13S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_dt_type2_redost: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT2H4M24S = **2010-11-07 02:14:44 EDT** +test_time_fall_type2_dt_type2_st: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT4H6M35S = **2010-11-07 04:16:55 EDT** +test_time_fall_type2_dt_type2_post: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M1DT20H49M39S = **2010-11-08 20:59:59 EDT** +test_time_fall_type2_redodt_type2_prev: ADD: 2010-11-07 01:12:33 EDT + P-0Y0M0DT6H34M5S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_redodt_type2_dt: ADD: 2010-11-07 01:12:33 EDT + P-0Y0M0DT1H2M13S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_redodt_type2_redodt: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M0DT0H3M2S = **2010-11-07 01:15:35 EDT** +test_time_fall_type2_redodt_type2_redost: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M0DT1H2M11S = **2010-11-07 02:14:44 EDT** +test_time_fall_type2_redodt_type2_st: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M0DT3H4M22S = **2010-11-07 04:16:55 EDT** +test_time_fall_type2_redodt_type2_post: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M1DT19H47M26S = **2010-11-08 20:59:59 EDT** +test_time_fall_type2_redost_type2_prev: ADD: 2010-11-07 01:14:44 EST + P-0Y0M0DT7H36M16S = **2010-11-06 17:38:28 EST** +test_time_fall_type2_redost_type2_dt: ADD: 2010-11-07 01:14:44 EST + P-0Y0M0DT2H4M24S = **2010-11-06 23:10:20 EST** +test_time_fall_type2_redost_type2_redodt: ADD: 2010-11-07 01:14:44 EST + P-0Y0M0DT1H2M11S = **2010-11-07 00:12:33 EST** +test_time_fall_type2_redost_type2_redost: ADD: 2010-11-07 01:14:44 EST + P+0Y0M0DT0H2M10S = **2010-11-07 01:16:54 EST** +test_time_fall_type2_redost_type2_st: ADD: 2010-11-07 01:14:44 EST + P+0Y0M0DT2H2M11S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_redost_type2_post: ADD: 2010-11-07 01:14:44 EST + P+0Y0M1DT18H45M15S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_st_type2_prev: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT9H38M27S = **2010-11-06 17:38:28 EST** +test_time_fall_type2_st_type2_dt: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT4H6M35S = **2010-11-06 23:10:20 EST** +test_time_fall_type2_st_type2_redodt: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT3H4M22S = **2010-11-07 00:12:33 EST** +test_time_fall_type2_st_type2_redost: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT2H2M11S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_st_type2_st: ADD: 2010-11-07 03:16:55 EST + P+0Y0M0DT2H3M1S = **2010-11-07 05:19:56 EST** +test_time_fall_type2_st_type2_post: ADD: 2010-11-07 03:16:55 EST + P+0Y0M1DT16H43M4S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_post_type2_prev: ADD: 2010-11-08 19:59:59 EST + P-0Y0M2DT1H21M31S = **2010-11-06 18:38:28 EST** +test_time_fall_type2_post_type2_dt: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT20H49M39S = **2010-11-06 23:10:20 EST** +test_time_fall_type2_post_type2_redodt: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT19H47M26S = **2010-11-07 00:12:33 EST** +test_time_fall_type2_post_type2_redost: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT18H45M15S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_post_type2_st: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT16H43M4S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_post_type2_post: ADD: 2010-11-08 18:57:55 EST + P+0Y0M0DT1H2M4S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_dtsec_type2_stsec: ADD: 2010-11-07 01:59:59 EDT + P+0Y0M0DT0H0M1S = **2010-11-07 02:00:00 EDT** +test_time_fall_type2_stsec_type2_dtsec: ADD: 2010-11-07 01:00:00 EST + P-0Y0M0DT0H0M1S = **2010-11-07 00:59:59 EST** diff --git a/ext/date/tests/DateTime_add-fall-type2-type3.phpt b/ext/date/tests/DateTime_add-fall-type2-type3.phpt new file mode 100644 index 0000000..077dd56 --- /dev/null +++ b/ext/date/tests/DateTime_add-fall-type2-type3.phpt @@ -0,0 +1,53 @@ +--TEST-- +DateTime::add() -- fall type2 type3 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_fall_type2_prev_type3_prev: ADD: 2010-10-04 02:18:48 EDT + P+0Y1M2DT16H19M40S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_prev_type3_dt: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT5H31M52S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_prev_type3_redodt: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT6H34M5S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_prev_type3_redost: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT7H36M16S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_prev_type3_st: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT9H38M27S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_prev_type3_post: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M2DT1H21M31S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_dt_type3_prev: ADD: 2010-11-07 00:10:20 EDT + P-0Y0M0DT5H31M52S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_dt_type3_dt: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT0H5M15S = **2010-11-07 00:15:35 EDT** +test_time_fall_type2_dt_type3_redodt: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT1H2M13S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_dt_type3_redost: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT2H4M24S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_dt_type3_st: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT4H6M35S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_dt_type3_post: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M1DT20H49M39S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_redodt_type3_prev: ADD: 2010-11-07 01:12:33 EDT + P-0Y0M0DT6H34M5S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_redodt_type3_dt: ADD: 2010-11-07 01:12:33 EDT + P-0Y0M0DT1H2M13S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_redodt_type3_redodt: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M0DT0H3M2S = **2010-11-07 01:15:35 EDT** +test_time_fall_type2_redodt_type3_redost: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M0DT1H2M11S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_redodt_type3_st: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M0DT3H4M22S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_redodt_type3_post: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M1DT19H47M26S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_redost_type3_prev: ADD: 2010-11-07 01:14:44 EST + P-0Y0M0DT7H36M16S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_redost_type3_dt: ADD: 2010-11-07 01:14:44 EST + P-0Y0M0DT2H4M24S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_redost_type3_redodt: ADD: 2010-11-07 01:14:44 EST + P-0Y0M0DT1H2M11S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_redost_type3_redost: ADD: 2010-11-07 01:14:44 EST + P+0Y0M0DT0H2M10S = **2010-11-07 01:16:54 EST** +test_time_fall_type2_redost_type3_st: ADD: 2010-11-07 01:14:44 EST + P+0Y0M0DT2H2M11S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_redost_type3_post: ADD: 2010-11-07 01:14:44 EST + P+0Y0M1DT18H45M15S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_st_type3_prev: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT9H38M27S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_st_type3_dt: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT4H6M35S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_st_type3_redodt: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT3H4M22S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_st_type3_redost: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT2H2M11S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_st_type3_st: ADD: 2010-11-07 03:16:55 EST + P+0Y0M0DT2H3M1S = **2010-11-07 05:19:56 EST** +test_time_fall_type2_st_type3_post: ADD: 2010-11-07 03:16:55 EST + P+0Y0M1DT16H43M4S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_post_type3_prev: ADD: 2010-11-08 19:59:59 EST + P-0Y0M2DT1H21M31S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_post_type3_dt: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT20H49M39S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_post_type3_redodt: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT19H47M26S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_post_type3_redost: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT18H45M15S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_post_type3_st: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT16H43M4S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_post_type3_post: ADD: 2010-11-08 18:57:55 EST + P+0Y0M0DT1H2M4S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_dtsec_type3_stsec: ADD: 2010-11-07 01:59:59 EDT + P+0Y0M0DT0H0M1S = **2010-11-07 01:00:00 EST** +test_time_fall_type2_stsec_type3_dtsec: ADD: 2010-11-07 01:00:00 EST + P-0Y0M0DT0H0M1S = **2010-11-07 01:59:59 EDT** diff --git a/ext/date/tests/DateTime_add-fall-type3-type2.phpt b/ext/date/tests/DateTime_add-fall-type3-type2.phpt new file mode 100644 index 0000000..0588cbf --- /dev/null +++ b/ext/date/tests/DateTime_add-fall-type3-type2.phpt @@ -0,0 +1,53 @@ +--TEST-- +DateTime::add() -- fall type3 type2 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_fall_type3_prev_type2_prev: ADD: 2010-10-04 02:18:48 EDT + P+0Y1M2DT16H19M40S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_prev_type2_dt: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT5H31M52S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_prev_type2_redodt: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT6H34M5S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_prev_type2_redost: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT7H36M16S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_prev_type2_st: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT9H38M27S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_prev_type2_post: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M2DT1H21M31S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_dt_type2_prev: ADD: 2010-11-07 00:10:20 EDT + P-0Y0M0DT5H31M52S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_dt_type2_dt: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT0H5M15S = **2010-11-07 00:15:35 EDT** +test_time_fall_type3_dt_type2_redodt: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT1H2M13S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_dt_type2_redost: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT2H4M24S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_dt_type2_st: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT4H6M35S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_dt_type2_post: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M1DT20H49M39S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_redodt_type2_prev: ADD: 2010-11-07 01:12:33 EDT + P-0Y0M0DT6H34M5S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_redodt_type2_dt: ADD: 2010-11-07 01:12:33 EDT + P-0Y0M0DT1H2M13S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_redodt_type2_redodt: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M0DT0H3M2S = **2010-11-07 01:15:35 EDT** +test_time_fall_type3_redodt_type2_redost: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M0DT1H2M11S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_redodt_type2_st: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M0DT3H4M22S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_redodt_type2_post: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M1DT19H47M26S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_redost_type2_prev: ADD: 2010-11-07 01:14:44 EST + P-0Y0M0DT7H36M16S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_redost_type2_dt: ADD: 2010-11-07 01:14:44 EST + P-0Y0M0DT2H4M24S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_redost_type2_redodt: ADD: 2010-11-07 01:14:44 EST + P-0Y0M0DT1H2M11S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_redost_type2_redost: ADD: 2010-11-07 01:14:44 EST + P+0Y0M0DT0H2M10S = **2010-11-07 01:16:54 EST** +test_time_fall_type3_redost_type2_st: ADD: 2010-11-07 01:14:44 EST + P+0Y0M0DT2H2M11S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_redost_type2_post: ADD: 2010-11-07 01:14:44 EST + P+0Y0M1DT18H45M15S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_st_type2_prev: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT9H38M27S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_st_type2_dt: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT4H6M35S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_st_type2_redodt: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT3H4M22S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_st_type2_redost: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT2H2M11S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_st_type2_st: ADD: 2010-11-07 03:16:55 EST + P+0Y0M0DT2H3M1S = **2010-11-07 05:19:56 EST** +test_time_fall_type3_st_type2_post: ADD: 2010-11-07 03:16:55 EST + P+0Y0M1DT16H43M4S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_post_type2_prev: ADD: 2010-11-08 19:59:59 EST + P-0Y0M2DT1H21M31S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_post_type2_dt: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT20H49M39S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_post_type2_redodt: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT19H47M26S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_post_type2_redost: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT18H45M15S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_post_type2_st: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT16H43M4S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_post_type2_post: ADD: 2010-11-08 18:57:55 EST + P+0Y0M0DT1H2M4S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_dtsec_type2_stsec: ADD: 2010-11-07 01:59:59 EDT + P+0Y0M0DT0H0M1S = **2010-11-07 01:00:00 EST** +test_time_fall_type3_stsec_type2_dtsec: ADD: 2010-11-07 01:00:00 EST + P-0Y0M0DT0H0M1S = **2010-11-07 01:59:59 EDT** diff --git a/ext/date/tests/DateTime_add-fall-type3-type3.phpt b/ext/date/tests/DateTime_add-fall-type3-type3.phpt new file mode 100644 index 0000000..2431552 --- /dev/null +++ b/ext/date/tests/DateTime_add-fall-type3-type3.phpt @@ -0,0 +1,53 @@ +--TEST-- +DateTime::add() -- fall type3 type3 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_fall_type3_prev_type3_prev: ADD: 2010-10-04 02:18:48 EDT + P+0Y1M2DT16H19M40S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_prev_type3_dt: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT5H31M52S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_prev_type3_redodt: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT6H34M5S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_prev_type3_redost: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT7H36M16S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_prev_type3_st: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M0DT9H38M27S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_prev_type3_post: ADD: 2010-11-06 18:38:28 EDT + P+0Y0M2DT1H21M31S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_dt_type3_prev: ADD: 2010-11-07 00:10:20 EDT + P-0Y0M0DT5H31M52S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_dt_type3_dt: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT0H5M15S = **2010-11-07 00:15:35 EDT** +test_time_fall_type3_dt_type3_redodt: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT1H2M13S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_dt_type3_redost: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT2H4M24S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_dt_type3_st: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M0DT4H6M35S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_dt_type3_post: ADD: 2010-11-07 00:10:20 EDT + P+0Y0M1DT20H49M39S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_redodt_type3_prev: ADD: 2010-11-07 01:12:33 EDT + P-0Y0M0DT6H34M5S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_redodt_type3_dt: ADD: 2010-11-07 01:12:33 EDT + P-0Y0M0DT1H2M13S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_redodt_type3_redodt: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M0DT0H3M2S = **2010-11-07 01:15:35 EDT** +test_time_fall_type3_redodt_type3_redost: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M0DT1H2M11S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_redodt_type3_st: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M0DT3H4M22S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_redodt_type3_post: ADD: 2010-11-07 01:12:33 EDT + P+0Y0M1DT19H47M26S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_redost_type3_prev: ADD: 2010-11-07 01:14:44 EST + P-0Y0M0DT7H36M16S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_redost_type3_dt: ADD: 2010-11-07 01:14:44 EST + P-0Y0M0DT2H4M24S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_redost_type3_redodt: ADD: 2010-11-07 01:14:44 EST + P-0Y0M0DT1H2M11S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_redost_type3_redost: ADD: 2010-11-07 01:14:44 EST + P+0Y0M0DT0H2M10S = **2010-11-07 01:16:54 EST** +test_time_fall_type3_redost_type3_st: ADD: 2010-11-07 01:14:44 EST + P+0Y0M0DT2H2M11S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_redost_type3_post: ADD: 2010-11-07 01:14:44 EST + P+0Y0M1DT18H45M15S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_st_type3_prev: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT9H38M27S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_st_type3_dt: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT4H6M35S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_st_type3_redodt: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT3H4M22S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_st_type3_redost: ADD: 2010-11-07 03:16:55 EST + P-0Y0M0DT2H2M11S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_st_type3_st: ADD: 2010-11-07 03:16:55 EST + P+0Y0M0DT2H3M1S = **2010-11-07 05:19:56 EST** +test_time_fall_type3_st_type3_post: ADD: 2010-11-07 03:16:55 EST + P+0Y0M1DT16H43M4S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_post_type3_prev: ADD: 2010-11-08 19:59:59 EST + P-0Y0M2DT1H21M31S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_post_type3_dt: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT20H49M39S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_post_type3_redodt: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT19H47M26S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_post_type3_redost: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT18H45M15S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_post_type3_st: ADD: 2010-11-08 19:59:59 EST + P-0Y0M1DT16H43M4S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_post_type3_post: ADD: 2010-11-08 18:57:55 EST + P+0Y0M0DT1H2M4S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_dtsec_type3_stsec: ADD: 2010-11-07 01:59:59 EDT + P+0Y0M0DT0H0M1S = **2010-11-07 01:00:00 EST** +test_time_fall_type3_stsec_type3_dtsec: ADD: 2010-11-07 01:00:00 EST + P-0Y0M0DT0H0M1S = **2010-11-07 01:59:59 EDT** diff --git a/ext/date/tests/DateTime_add-february.phpt b/ext/date/tests/DateTime_add-february.phpt new file mode 100644 index 0000000..8e47c0e --- /dev/null +++ b/ext/date/tests/DateTime_add-february.phpt @@ -0,0 +1,77 @@ +--TEST-- +DateTime::add() -- february +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_bug_49081__1: ADD: 2010-03-01 00:00:00 EST + P+0Y0M30DT0H0M0S = **2010-03-31 00:00:00 EDT** +test_bug_49081__2: ADD: 2010-03-01 00:00:00 EST + P+0Y1M0DT0H0M0S = **2010-04-01 00:00:00 EDT** +test_bug_49081__3: ADD: 2010-03-31 00:00:00 EDT + P+0Y0M1DT0H0M0S = **2010-04-01 00:00:00 EDT** +test_bug_49081__4: ADD: 2010-03-31 00:00:00 EDT + P+0Y0M29DT0H0M0S = **2010-04-29 00:00:00 EDT** +test_bug_49081__5: ADD: 2010-03-31 00:00:00 EDT + P+0Y0M30DT0H0M0S = **2010-04-30 00:00:00 EDT** +test_bug_49081__6: ADD: 2010-03-30 00:00:00 EDT + P+0Y1M0DT0H0M0S = **2010-04-30 00:00:00 EDT** +test_bug_49081__7: ADD: 2010-03-29 00:00:00 EDT + P+0Y1M1DT0H0M0S = **2010-04-30 00:00:00 EDT** +test_bug_49081__8: ADD: 2010-01-01 00:00:00 EST + P+0Y0M28DT0H0M0S = **2010-01-29 00:00:00 EST** +test_bug_49081__9: ADD: 2010-01-01 00:00:00 EST + P+0Y0M29DT0H0M0S = **2010-01-30 00:00:00 EST** +test_bug_49081__10: ADD: 2010-01-01 00:00:00 EST + P+0Y0M30DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081__11: ADD: 2010-01-01 00:00:00 EST + P+0Y1M0DT0H0M0S = **2010-02-01 00:00:00 EST** +test_bug_49081__12: ADD: 2010-01-31 00:00:00 EST + P+0Y0M1DT0H0M0S = **2010-02-01 00:00:00 EST** +test_bug_49081__13: ADD: 2010-01-31 00:00:00 EST + P+0Y0M27DT0H0M0S = **2010-02-27 00:00:00 EST** +test_bug_49081__14: ADD: 2010-01-31 00:00:00 EST + P+0Y0M28DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081__15: ADD: 2010-01-30 00:00:00 EST + P+0Y0M29DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081__16: ADD: 2010-01-29 00:00:00 EST + P+0Y0M30DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081__17: ADD: 2010-01-28 00:00:00 EST + P+0Y1M0DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081__18: ADD: 2010-01-27 00:00:00 EST + P+0Y1M1DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081__19: ADD: 2010-01-01 00:00:00 EST + P+0Y2M0DT0H0M0S = **2010-03-01 00:00:00 EST** +test_bug_49081__20: ADD: 2010-01-31 00:00:00 EST + P+0Y0M29DT0H0M0S = **2010-03-01 00:00:00 EST** +test_bug_49081__21: ADD: 2010-01-31 00:00:00 EST + P+0Y1M24DT0H0M0S = **2010-03-27 00:00:00 EDT** +test_bug_49081__22: ADD: 2010-01-31 00:00:00 EST + P+0Y1M25DT0H0M0S = **2010-03-28 00:00:00 EDT** +test_bug_49081__23: ADD: 2010-01-31 00:00:00 EST + P+0Y1M26DT0H0M0S = **2010-03-29 00:00:00 EDT** +test_bug_49081__24: ADD: 2010-01-31 00:00:00 EST + P+0Y1M27DT0H0M0S = **2010-03-30 00:00:00 EDT** +test_bug_49081__25: ADD: 2010-01-31 00:00:00 EST + P+0Y2M0DT0H0M0S = **2010-03-31 00:00:00 EDT** +test_bug_49081__26: ADD: 2010-01-30 00:00:00 EST + P+0Y2M1DT0H0M0S = **2010-03-31 00:00:00 EDT** +test_bug_49081__27: ADD: 2009-01-01 00:00:00 EST + P+0Y0M30DT0H0M0S = **2009-01-31 00:00:00 EST** +test_bug_49081__28: ADD: 2010-02-28 00:00:00 EST + P+0Y0M27DT0H0M0S = **2010-03-27 00:00:00 EDT** +test_bug_49081__29: ADD: 2010-02-28 00:00:00 EST + P+0Y1M0DT0H0M0S = **2010-03-28 00:00:00 EDT** +test_bug_49081__30: ADD: 2010-02-28 00:00:00 EST + P+0Y1M1DT0H0M0S = **2010-03-29 00:00:00 EDT** +test_bug_49081__31: ADD: 2010-02-27 00:00:00 EST + P+0Y1M0DT0H0M0S = **2010-03-27 00:00:00 EDT** +test_bug_49081__32: ADD: 2010-02-26 00:00:00 EST + P+0Y1M1DT0H0M0S = **2010-03-27 00:00:00 EDT** +test_bug_49081_negative__1: ADD: 2010-03-31 00:00:00 EDT + P-0Y0M30DT0H0M0S = **2010-03-01 00:00:00 EST** +test_bug_49081_negative__2: ADD: 2010-04-01 00:00:00 EDT + P-0Y1M0DT0H0M0S = **2010-03-01 00:00:00 EST** +test_bug_49081_negative__3: ADD: 2010-04-01 00:00:00 EDT + P-0Y0M1DT0H0M0S = **2010-03-31 00:00:00 EDT** +test_bug_49081_negative__4: ADD: 2010-04-29 00:00:00 EDT + P-0Y0M29DT0H0M0S = **2010-03-31 00:00:00 EDT** +test_bug_49081_negative__5: ADD: 2010-04-30 00:00:00 EDT + P-0Y0M30DT0H0M0S = **2010-03-31 00:00:00 EDT** +test_bug_49081_negative__6: ADD: 2010-04-30 00:00:00 EDT + P-0Y1M0DT0H0M0S = **2010-03-30 00:00:00 EDT** +test_bug_49081_negative__7: ADD: 2010-04-30 00:00:00 EDT + P-0Y1M1DT0H0M0S = **2010-03-29 00:00:00 EDT** +test_bug_49081_negative__8: ADD: 2010-01-29 00:00:00 EST + P-0Y0M28DT0H0M0S = **2010-01-01 00:00:00 EST** +test_bug_49081_negative__9: ADD: 2010-01-30 00:00:00 EST + P-0Y0M29DT0H0M0S = **2010-01-01 00:00:00 EST** +test_bug_49081_negative__10: ADD: 2010-01-31 00:00:00 EST + P-0Y0M30DT0H0M0S = **2010-01-01 00:00:00 EST** +test_bug_49081_negative__11: ADD: 2010-02-01 00:00:00 EST + P-0Y1M0DT0H0M0S = **2010-01-01 00:00:00 EST** +test_bug_49081_negative__12: ADD: 2010-02-01 00:00:00 EST + P-0Y0M1DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081_negative__13: ADD: 2010-02-27 00:00:00 EST + P-0Y0M27DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081_negative__14: ADD: 2010-02-28 00:00:00 EST + P-0Y0M28DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081_negative__15: ADD: 2010-02-28 00:00:00 EST + P-0Y0M29DT0H0M0S = **2010-01-30 00:00:00 EST** +test_bug_49081_negative__16: ADD: 2010-02-28 00:00:00 EST + P-0Y0M30DT0H0M0S = **2010-01-29 00:00:00 EST** +test_bug_49081_negative__17: ADD: 2010-02-28 00:00:00 EST + P-0Y1M0DT0H0M0S = **2010-01-28 00:00:00 EST** +test_bug_49081_negative__18: ADD: 2010-02-28 00:00:00 EST + P-0Y1M1DT0H0M0S = **2010-01-27 00:00:00 EST** +test_bug_49081_negative__19: ADD: 2010-03-01 00:00:00 EST + P-0Y2M0DT0H0M0S = **2010-01-01 00:00:00 EST** +test_bug_49081_negative__20: ADD: 2010-03-01 00:00:00 EST + P-0Y1M1DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081_negative__21: ADD: 2010-03-27 00:00:00 EDT + P-0Y1M27DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081_negative__22: ADD: 2010-03-28 00:00:00 EDT + P-0Y1M28DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081_negative__23: ADD: 2010-03-29 00:00:00 EDT + P-0Y1M29DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081_negative__24: ADD: 2010-03-30 00:00:00 EDT + P-0Y1M30DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081_negative__25: ADD: 2010-03-31 00:00:00 EDT + P-0Y2M0DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081_negative__26: ADD: 2010-03-31 00:00:00 EDT + P-0Y2M1DT0H0M0S = **2010-01-30 00:00:00 EST** +test_bug_49081_negative__27: ADD: 2009-01-31 00:00:00 EST + P-0Y0M30DT0H0M0S = **2009-01-01 00:00:00 EST** +test_bug_49081_negative__28: ADD: 2010-03-27 00:00:00 EDT + P-0Y0M27DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081_negative__29: ADD: 2010-03-28 00:00:00 EDT + P-0Y1M0DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081_negative__30: ADD: 2010-03-29 00:00:00 EDT + P-0Y1M1DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081_negative__31: ADD: 2010-03-27 00:00:00 EDT + P-0Y1M0DT0H0M0S = **2010-02-27 00:00:00 EST** +test_bug_49081_negative__32: ADD: 2010-03-27 00:00:00 EDT + P-0Y1M1DT0H0M0S = **2010-02-26 00:00:00 EST** diff --git a/ext/date/tests/DateTime_add-massive.phpt b/ext/date/tests/DateTime_add-massive.phpt new file mode 100644 index 0000000..ca5bef9 --- /dev/null +++ b/ext/date/tests/DateTime_add-massive.phpt @@ -0,0 +1,15 @@ +--TEST-- +DateTime::add() -- massive +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_massive_positive: ADD: -333333-01-01 16:18:02 EST + P+666666Y0M0DT0H0M0S = **333333-01-01 16:18:02 EST** +test_massive_negative: ADD: 333333-01-01 16:18:02 EST + P-666666Y0M0DT0H0M0S = **-333333-01-01 16:18:02 EST** diff --git a/ext/date/tests/DateTime_add-spring-type2-type2.phpt b/ext/date/tests/DateTime_add-spring-type2-type2.phpt new file mode 100644 index 0000000..e522873 --- /dev/null +++ b/ext/date/tests/DateTime_add-spring-type2-type2.phpt @@ -0,0 +1,31 @@ +--TEST-- +DateTime::add() -- spring type2 type2 +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_time_spring_type2_prev_type2_prev: ADD: 2010-02-11 02:18:48 EST + P+0Y1M2DT16H19M40S = **2010-03-13 18:38:28 EST** +test_time_spring_type2_prev_type2_st: ADD: 2010-03-13 18:38:28 EST + P+0Y0M0DT5H31M52S = **2010-03-14 00:10:20 EST** +test_time_spring_type2_prev_type2_dt: ADD: 2010-03-13 18:38:28 EST + P+0Y0M0DT7H38M27S = **2010-03-14 02:16:55 EST** +test_time_spring_type2_prev_type2_post: ADD: 2010-03-13 18:38:28 EST + P+0Y0M2DT1H21M31S = **2010-03-15 19:59:59 EST** +test_time_spring_type2_st_type2_prev: ADD: 2010-03-14 00:10:20 EST + P-0Y0M0DT5H31M52S = **2010-03-13 18:38:28 EST** +test_time_spring_type2_st_type2_st: ADD: 2010-03-14 00:10:20 EST + P+0Y0M0DT0H5M15S = **2010-03-14 00:15:35 EST** +test_time_spring_type2_st_type2_dt: ADD: 2010-03-14 00:10:20 EST + P+0Y0M0DT2H6M35S = **2010-03-14 02:16:55 EST** +test_time_spring_type2_st_type2_post: ADD: 2010-03-14 00:10:20 EST + P+0Y0M1DT18H49M39S = **2010-03-15 18:59:59 EST** +test_time_spring_type2_dt_type2_prev: ADD: 2010-03-14 03:16:55 EDT + P-0Y0M0DT7H38M27S = **2010-03-13 19:38:28 EDT** +test_time_spring_type2_dt_type2_st: ADD: 2010-03-14 03:16:55 EDT + P-0Y0M0DT2H6M35S = **2010-03-14 01:10:20 EDT** +test_time_spring_type2_dt_type2_dt: ADD: 2010-03-14 03:16:55 EDT + P+0Y0M0DT2H3M1S = **2010-03-14 05:19:56 EDT** +test_time_spring_type2_dt_type2_post: ADD: 2010-03-14 03:16:55 EDT + P+0Y0M1DT16H43M4S = **2010-03-15 19:59:59 EDT** +test_time_spring_type2_post_type2_prev: ADD: 2010-03-15 19:59:59 EDT + P-0Y0M2DT1H21M31S = **2010-03-13 18:38:28 EDT** +test_time_spring_type2_post_type2_st: ADD: 2010-03-15 19:59:59 EDT + P-0Y0M1DT18H49M39S = **2010-03-14 01:10:20 EDT** +test_time_spring_type2_post_type2_dt: ADD: 2010-03-15 19:59:59 EDT + P-0Y0M1DT16H43M4S = **2010-03-14 03:16:55 EDT** +test_time_spring_type2_post_type2_post: ADD: 2010-03-15 18:57:55 EDT + P+0Y0M0DT1H2M4S = **2010-03-15 19:59:59 EDT** +test_time_spring_type2_stsec_type2_dtsec: ADD: 2010-03-14 01:59:59 EST + P+0Y0M0DT0H0M1S = **2010-03-14 02:00:00 EST** +test_time_spring_type2_dtsec_type2_stsec: ADD: 2010-03-14 03:00:00 EDT + P-0Y0M0DT0H0M1S = **2010-03-14 02:59:59 EDT** diff --git a/ext/date/tests/DateTime_add-spring-type2-type3.phpt b/ext/date/tests/DateTime_add-spring-type2-type3.phpt new file mode 100644 index 0000000..5544651 --- /dev/null +++ b/ext/date/tests/DateTime_add-spring-type2-type3.phpt @@ -0,0 +1,33 @@ +--TEST-- +DateTime::add() -- spring type2 type3 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_spring_type2_prev_type3_prev: ADD: 2010-02-11 02:18:48 EST + P+0Y1M2DT16H19M40S = **2010-03-13 18:38:28 EST** +test_time_spring_type2_prev_type3_st: ADD: 2010-03-13 18:38:28 EST + P+0Y0M0DT5H31M52S = **2010-03-14 00:10:20 EST** +test_time_spring_type2_prev_type3_dt: ADD: 2010-03-13 18:38:28 EST + P+0Y0M0DT7H38M27S = **2010-03-14 03:16:55 EDT** +test_time_spring_type2_prev_type3_post: ADD: 2010-03-13 18:38:28 EST + P+0Y0M2DT1H21M31S = **2010-03-15 19:59:59 EDT** +test_time_spring_type2_st_type3_prev: ADD: 2010-03-14 00:10:20 EST + P-0Y0M0DT5H31M52S = **2010-03-13 18:38:28 EST** +test_time_spring_type2_st_type3_st: ADD: 2010-03-14 00:10:20 EST + P+0Y0M0DT0H5M15S = **2010-03-14 00:15:35 EST** +test_time_spring_type2_st_type3_dt: ADD: 2010-03-14 00:10:20 EST + P+0Y0M0DT2H6M35S = **2010-03-14 03:16:55 EDT** +test_time_spring_type2_st_type3_post: ADD: 2010-03-14 00:10:20 EST + P+0Y0M1DT18H49M39S = **2010-03-15 19:59:59 EDT** +test_time_spring_type2_dt_type3_prev: ADD: 2010-03-14 03:16:55 EDT + P-0Y0M0DT7H38M27S = **2010-03-13 18:38:28 EST** +test_time_spring_type2_dt_type3_st: ADD: 2010-03-14 03:16:55 EDT + P-0Y0M0DT2H6M35S = **2010-03-14 00:10:20 EST** +test_time_spring_type2_dt_type3_dt: ADD: 2010-03-14 03:16:55 EDT + P+0Y0M0DT2H3M1S = **2010-03-14 05:19:56 EDT** +test_time_spring_type2_dt_type3_post: ADD: 2010-03-14 03:16:55 EDT + P+0Y0M1DT16H43M4S = **2010-03-15 19:59:59 EDT** +test_time_spring_type2_post_type3_prev: ADD: 2010-03-15 19:59:59 EDT + P-0Y0M2DT1H21M31S = **2010-03-13 18:38:28 EST** +test_time_spring_type2_post_type3_st: ADD: 2010-03-15 19:59:59 EDT + P-0Y0M1DT18H49M39S = **2010-03-14 00:10:20 EST** +test_time_spring_type2_post_type3_dt: ADD: 2010-03-15 19:59:59 EDT + P-0Y0M1DT16H43M4S = **2010-03-14 03:16:55 EDT** +test_time_spring_type2_post_type3_post: ADD: 2010-03-15 18:57:55 EDT + P+0Y0M0DT1H2M4S = **2010-03-15 19:59:59 EDT** +test_time_spring_type2_stsec_type3_dtsec: ADD: 2010-03-13 01:59:59 EST + P+0Y0M0DT0H0M1S = **2010-03-15 03:00:00 EDT** +test_time_spring_type2_dtsec_type3_stsec: ADD: 2010-03-15 03:00:00 EDT + P-0Y0M0DT0H0M1S = **2010-03-15 01:59:59 EST** diff --git a/ext/date/tests/DateTime_add-spring-type3-type2.phpt b/ext/date/tests/DateTime_add-spring-type3-type2.phpt new file mode 100644 index 0000000..fe75a5c --- /dev/null +++ b/ext/date/tests/DateTime_add-spring-type3-type2.phpt @@ -0,0 +1,33 @@ +--TEST-- +DateTime::add() -- spring type3 type2 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_spring_type3_prev_type2_prev: ADD: 2010-02-11 02:18:48 EST + P+0Y1M2DT16H19M40S = **2010-03-13 18:38:28 EST** +test_time_spring_type3_prev_type2_st: ADD: 2010-03-13 18:38:28 EST + P+0Y0M0DT5H31M52S = **2010-03-14 00:10:20 EST** +test_time_spring_type3_prev_type2_dt: ADD: 2010-03-13 18:38:28 EST + P+0Y0M0DT7H38M27S = **2010-03-14 03:16:55 EDT** +test_time_spring_type3_prev_type2_post: ADD: 2010-03-13 18:38:28 EST + P+0Y0M2DT1H21M31S = **2010-03-15 19:59:59 EDT** +test_time_spring_type3_st_type2_prev: ADD: 2010-03-14 00:10:20 EST + P-0Y0M0DT5H31M52S = **2010-03-13 18:38:28 EST** +test_time_spring_type3_st_type2_st: ADD: 2010-03-14 00:10:20 EST + P+0Y0M0DT0H5M15S = **2010-03-14 00:15:35 EST** +test_time_spring_type3_st_type2_dt: ADD: 2010-03-14 00:10:20 EST + P+0Y0M0DT2H6M35S = **2010-03-14 03:16:55 EDT** +test_time_spring_type3_st_type2_post: ADD: 2010-03-14 00:10:20 EST + P+0Y0M1DT18H49M39S = **2010-03-15 19:59:59 EDT** +test_time_spring_type3_dt_type2_prev: ADD: 2010-03-14 03:16:55 EDT + P-0Y0M0DT7H38M27S = **2010-03-13 18:38:28 EST** +test_time_spring_type3_dt_type2_st: ADD: 2010-03-14 03:16:55 EDT + P-0Y0M0DT2H6M35S = **2010-03-14 00:10:20 EST** +test_time_spring_type3_dt_type2_dt: ADD: 2010-03-14 03:16:55 EDT + P+0Y0M0DT2H3M1S = **2010-03-14 05:19:56 EDT** +test_time_spring_type3_dt_type2_post: ADD: 2010-03-14 03:16:55 EDT + P+0Y0M1DT16H43M4S = **2010-03-15 19:59:59 EDT** +test_time_spring_type3_post_type2_prev: ADD: 2010-03-15 19:59:59 EDT + P-0Y0M2DT1H21M31S = **2010-03-13 18:38:28 EST** +test_time_spring_type3_post_type2_st: ADD: 2010-03-15 19:59:59 EDT + P-0Y0M1DT18H49M39S = **2010-03-14 00:10:20 EST** +test_time_spring_type3_post_type2_dt: ADD: 2010-03-15 19:59:59 EDT + P-0Y0M1DT16H43M4S = **2010-03-14 03:16:55 EDT** +test_time_spring_type3_post_type2_post: ADD: 2010-03-15 18:57:55 EDT + P+0Y0M0DT1H2M4S = **2010-03-15 19:59:59 EDT** +test_time_spring_type3_stsec_type2_dtsec: ADD: 2010-03-13 01:59:59 EST + P+0Y0M0DT0H0M1S = **2010-03-15 03:00:00 EDT** +test_time_spring_type3_dtsec_type2_stsec: ADD: 2010-03-15 03:00:00 EDT + P-0Y0M0DT0H0M1S = **2010-03-15 01:59:59 EST** diff --git a/ext/date/tests/DateTime_add-spring-type3-type3.phpt b/ext/date/tests/DateTime_add-spring-type3-type3.phpt new file mode 100644 index 0000000..b2a5c3e --- /dev/null +++ b/ext/date/tests/DateTime_add-spring-type3-type3.phpt @@ -0,0 +1,33 @@ +--TEST-- +DateTime::add() -- spring type3 type3 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_spring_type3_prev_type3_prev: ADD: 2010-02-11 02:18:48 EST + P+0Y1M2DT16H19M40S = **2010-03-13 18:38:28 EST** +test_time_spring_type3_prev_type3_st: ADD: 2010-03-13 18:38:28 EST + P+0Y0M0DT5H31M52S = **2010-03-14 00:10:20 EST** +test_time_spring_type3_prev_type3_dt: ADD: 2010-03-13 18:38:28 EST + P+0Y0M0DT7H38M27S = **2010-03-14 03:16:55 EDT** +test_time_spring_type3_prev_type3_post: ADD: 2010-03-13 18:38:28 EST + P+0Y0M2DT1H21M31S = **2010-03-15 19:59:59 EDT** +test_time_spring_type3_st_type3_prev: ADD: 2010-03-14 00:10:20 EST + P-0Y0M0DT5H31M52S = **2010-03-13 18:38:28 EST** +test_time_spring_type3_st_type3_st: ADD: 2010-03-14 00:10:20 EST + P+0Y0M0DT0H5M15S = **2010-03-14 00:15:35 EST** +test_time_spring_type3_st_type3_dt: ADD: 2010-03-14 00:10:20 EST + P+0Y0M0DT2H6M35S = **2010-03-14 03:16:55 EDT** +test_time_spring_type3_st_type3_post: ADD: 2010-03-14 00:10:20 EST + P+0Y0M1DT18H49M39S = **2010-03-15 19:59:59 EDT** +test_time_spring_type3_dt_type3_prev: ADD: 2010-03-14 03:16:55 EDT + P-0Y0M0DT7H38M27S = **2010-03-13 18:38:28 EST** +test_time_spring_type3_dt_type3_st: ADD: 2010-03-14 03:16:55 EDT + P-0Y0M0DT2H6M35S = **2010-03-14 00:10:20 EST** +test_time_spring_type3_dt_type3_dt: ADD: 2010-03-14 03:16:55 EDT + P+0Y0M0DT2H3M1S = **2010-03-14 05:19:56 EDT** +test_time_spring_type3_dt_type3_post: ADD: 2010-03-14 03:16:55 EDT + P+0Y0M1DT16H43M4S = **2010-03-15 19:59:59 EDT** +test_time_spring_type3_post_type3_prev: ADD: 2010-03-15 19:59:59 EDT + P-0Y0M2DT1H21M31S = **2010-03-13 18:38:28 EST** +test_time_spring_type3_post_type3_st: ADD: 2010-03-15 19:59:59 EDT + P-0Y0M1DT18H49M39S = **2010-03-14 00:10:20 EST** +test_time_spring_type3_post_type3_dt: ADD: 2010-03-15 19:59:59 EDT + P-0Y0M1DT16H43M4S = **2010-03-14 03:16:55 EDT** +test_time_spring_type3_post_type3_post: ADD: 2010-03-15 18:57:55 EDT + P+0Y0M0DT1H2M4S = **2010-03-15 19:59:59 EDT** +test_time_spring_type3_stsec_type3_dtsec: ADD: 2010-03-13 01:59:59 EST + P+0Y0M0DT0H0M1S = **2010-03-15 03:00:00 EDT** +test_time_spring_type3_dtsec_type3_stsec: ADD: 2010-03-15 03:00:00 EDT + P-0Y0M0DT0H0M1S = **2010-03-15 01:59:59 EST** diff --git a/ext/date/tests/DateTime_clone_basic1.phpt b/ext/date/tests/DateTime_clone_basic1.phpt new file mode 100644 index 0000000..cef6621 --- /dev/null +++ b/ext/date/tests/DateTime_clone_basic1.phpt @@ -0,0 +1,29 @@ +--TEST-- +Test clone on DateTime objects +--FILE-- +setTime(22, 41, 50); + +echo "Original: " . $orig->format("H:i:s") . "\n"; +echo "Clone: " . $clone->format("H:i:s") . "\n"; + +?> +===DONE=== +--EXPECTF-- +*** Testing clone on DateTime objects *** +Original: 22:41:50 +Clone: 14:25:41 +===DONE=== diff --git a/ext/date/tests/DateTime_clone_basic2.phpt b/ext/date/tests/DateTime_clone_basic2.phpt new file mode 100644 index 0000000..db7ba22 --- /dev/null +++ b/ext/date/tests/DateTime_clone_basic2.phpt @@ -0,0 +1,90 @@ +--TEST-- +Test clone of objects whoose class derived from DateTime class +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing clone on objects whoose class derived from DateTime class *** +object(DateTimeExt1)#%d (5) { + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" + ["date"]=> + string(19) "2009-02-03 12:34:41" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "GMT" +} +object(DateTimeExt1)#%d (5) { + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" + ["date"]=> + string(19) "2009-02-03 12:34:41" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "GMT" +} +object(DateTimeExt2)#%d (7) { + ["property3"]=> + bool(true) + ["property4"]=> + float(10.5) + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" + ["date"]=> + string(19) "2009-02-03 12:34:41" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "GMT" +} +object(DateTimeExt2)#%d (7) { + ["property3"]=> + bool(true) + ["property4"]=> + float(10.5) + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" + ["date"]=> + string(19) "2009-02-03 12:34:41" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "GMT" +} +===DONE=== diff --git a/ext/date/tests/DateTime_clone_basic3.phpt b/ext/date/tests/DateTime_clone_basic3.phpt new file mode 100644 index 0000000..43e2898 --- /dev/null +++ b/ext/date/tests/DateTime_clone_basic3.phpt @@ -0,0 +1,105 @@ +--TEST-- +Test clone of DateTime objects +--FILE-- +property1 = 99; +$d1->property2 = "Hello"; +var_dump($d1); +echo "\n-- clone it --\n"; +$d1_clone = clone $d1; +var_dump($d1_clone); +echo "\n-- Add some more properties --\n"; +$d1_clone->property3 = true; +$d1_clone->property4 = 10.5; +var_dump($d1_clone); +echo "\n-- clone it --\n"; +$d2_clone = clone $d1_clone; +var_dump($d2_clone); +?> +===DONE=== +--EXPECTF-- +*** Testing clone on DateTime objects *** + +-- Create a DateTime object -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-02-03 12:34:41" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "GMT" +} + +-- Add some properties -- +object(DateTime)#%d (5) { + ["date"]=> + string(19) "2009-02-03 12:34:41" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "GMT" + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" +} + +-- clone it -- +object(DateTime)#%d (5) { + ["date"]=> + string(19) "2009-02-03 12:34:41" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "GMT" + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" +} + +-- Add some more properties -- +object(DateTime)#%d (7) { + ["date"]=> + string(19) "2009-02-03 12:34:41" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "GMT" + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" + ["property3"]=> + bool(true) + ["property4"]=> + float(10.5) +} + +-- clone it -- +object(DateTime)#%d (7) { + ["date"]=> + string(19) "2009-02-03 12:34:41" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "GMT" + ["property1"]=> + int(99) + ["property2"]=> + string(5) "Hello" + ["property3"]=> + bool(true) + ["property4"]=> + float(10.5) +} +===DONE=== diff --git a/ext/date/tests/DateTime_clone_basic4.phpt b/ext/date/tests/DateTime_clone_basic4.phpt new file mode 100644 index 0000000..f19f23d --- /dev/null +++ b/ext/date/tests/DateTime_clone_basic4.phpt @@ -0,0 +1,31 @@ +--TEST-- +Test clone of DateTime derived objects with __clone magic method +--FILE-- +format( "m.d.y") ); + +?> +===DONE=== +--EXPECTF-- +*** Testing clone of objects derived from DateTime class with __clone magic method*** +-- DateTimeExt1 __clone magic method called -- +string(8) "02.03.09" +===DONE=== diff --git a/ext/date/tests/DateTime_compare_basic1.phpt b/ext/date/tests/DateTime_compare_basic1.phpt new file mode 100644 index 0000000..313dab1 --- /dev/null +++ b/ext/date/tests/DateTime_compare_basic1.phpt @@ -0,0 +1,77 @@ +--TEST-- +Test of compare object handler for DateTime objects +--FILE-- + +===DONE=== +--EXPECT-- +Simple test for DateTime compare object handler + +-- All the following tests should compare equal -- +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) + +-- The following test should still compare equal -- +bool(true) + +-- All the following tests should now compare NOT equal -- +bool(false) +bool(false) +bool(false) + +-- All the following tests should again compare equal -- +bool(true) +bool(true) +bool(true) +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTime_construct-dst-overlap.phpt b/ext/date/tests/DateTime_construct-dst-overlap.phpt new file mode 100644 index 0000000..05ed525 --- /dev/null +++ b/ext/date/tests/DateTime_construct-dst-overlap.phpt @@ -0,0 +1,15 @@ +--TEST-- +DateTime::__construct() -- fall daylight/standard overlap +--CREDITS-- +Daniel Convissor +--FILE-- +format('P') . "\n"; + +?> +--EXPECT-- +-04:00 diff --git a/ext/date/tests/DateTime_construct_basic1.phpt b/ext/date/tests/DateTime_construct_basic1.phpt new file mode 100644 index 0000000..a865e6b --- /dev/null +++ b/ext/date/tests/DateTime_construct_basic1.phpt @@ -0,0 +1,58 @@ +--TEST-- +Test new DateTime() : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing new DateTime() : basic functionality *** +object(DateTime)#%d (3) { + ["date"]=> + string(%d) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(%d) "%s" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "GMT" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2005-07-14 22:30:41" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2005-07-14 22:30:41" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "GMT" +} +===DONE=== diff --git a/ext/date/tests/DateTime_construct_error.phpt b/ext/date/tests/DateTime_construct_error.phpt new file mode 100644 index 0000000..ef79eb4 --- /dev/null +++ b/ext/date/tests/DateTime_construct_error.phpt @@ -0,0 +1,32 @@ +--TEST-- +Test new DateTime() : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_create() : error conditions *** + +-- Testing new DateTime() with more than expected no. of arguments -- + +Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct() expects at most 2 parameters, 3 given' in %s:%d +Stack trace: +#0 %s(%d): DateTime->__construct('GMT', Object(DateTimeZone), 99) +#1 {main} + thrown in %s on line %d \ No newline at end of file diff --git a/ext/date/tests/DateTime_construct_variation1.phpt b/ext/date/tests/DateTime_construct_variation1.phpt new file mode 100644 index 0000000..d335b5a --- /dev/null +++ b/ext/date/tests/DateTime_construct_variation1.phpt @@ -0,0 +1,377 @@ +--TEST-- +Test new DateTime() function : usage variation - Passing unexpected values to first argument $time. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$timezone = new DateTimeZone("Europe/London"); + +foreach($inputs as $variation =>$time) { + echo "\n-- $variation --\n"; + + try { + var_dump( new DateTime($time) ); + } catch(Exception $e) { + $msg = $e->getMessage(); + echo "FAILED: " . $msg . "\n"; + } + + try { + var_dump( new DateTime($time, $timezone) ); + } catch(Exception$e) { + $msg = $e->getMessage(); + echo "FAILED: " . $msg . "\n"; + } +}; + +// closing the resource +fclose( $file_handle); + +?> +===DONE=== +--EXPECTF-- +*** Testing new DateTime(): usage variation - unexpected values to first argument $time*** + +-- int 0 -- +FAILED: DateTime::__construct(): Failed to parse time string (0) at position 0 (0): Unexpected character +FAILED: DateTime::__construct(): Failed to parse time string (0) at position 0 (0): Unexpected character + +-- int 1 -- +FAILED: DateTime::__construct(): Failed to parse time string (1) at position 0 (1): Unexpected character +FAILED: DateTime::__construct(): Failed to parse time string (1) at position 0 (1): Unexpected character + +-- int 12345 -- +FAILED: DateTime::__construct(): Failed to parse time string (12345) at position 4 (5): Unexpected character +FAILED: DateTime::__construct(): Failed to parse time string (12345) at position 4 (5): Unexpected character + +-- int -12345 -- +FAILED: DateTime::__construct(): Failed to parse time string (-12345) at position 5 (5): Unexpected character +FAILED: DateTime::__construct(): Failed to parse time string (-12345) at position 5 (5): Unexpected character + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +FAILED: DateTime::__construct(): Failed to parse time string (-10.5) at position 4 (5): Unexpected character +FAILED: DateTime::__construct(): Failed to parse time string (-10.5) at position 4 (5): Unexpected character + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- +FAILED: DateTime::__construct() expects parameter 1 to be string, array given +FAILED: DateTime::__construct() expects parameter 1 to be string, array given + +-- int indexed array -- +FAILED: DateTime::__construct() expects parameter 1 to be string, array given +FAILED: DateTime::__construct() expects parameter 1 to be string, array given + +-- associative array -- +FAILED: DateTime::__construct() expects parameter 1 to be string, array given +FAILED: DateTime::__construct() expects parameter 1 to be string, array given + +-- nested arrays -- +FAILED: DateTime::__construct() expects parameter 1 to be string, array given +FAILED: DateTime::__construct() expects parameter 1 to be string, array given + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +FAILED: DateTime::__construct(): Failed to parse time string (1) at position 0 (1): Unexpected character +FAILED: DateTime::__construct(): Failed to parse time string (1) at position 0 (1): Unexpected character + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +FAILED: DateTime::__construct(): Failed to parse time string (1) at position 0 (1): Unexpected character +FAILED: DateTime::__construct(): Failed to parse time string (1) at position 0 (1): Unexpected character + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string SQ -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- string DQ -- +FAILED: DateTime::__construct(): Failed to parse time string (string) at position 0 (s): The timezone could not be found in the database +FAILED: DateTime::__construct(): Failed to parse time string (string) at position 0 (s): The timezone could not be found in the database + +-- string SQ -- +FAILED: DateTime::__construct(): Failed to parse time string (string) at position 0 (s): The timezone could not be found in the database +FAILED: DateTime::__construct(): Failed to parse time string (string) at position 0 (s): The timezone could not be found in the database + +-- mixed case string -- +FAILED: DateTime::__construct(): Failed to parse time string (sTrInG) at position 0 (s): The timezone could not be found in the database +FAILED: DateTime::__construct(): Failed to parse time string (sTrInG) at position 0 (s): The timezone could not be found in the database + +-- heredoc -- +FAILED: DateTime::__construct(): Failed to parse time string (hello world) at position 0 (h): The timezone could not be found in the database +FAILED: DateTime::__construct(): Failed to parse time string (hello world) at position 0 (h): The timezone could not be found in the database + +-- instance of classWithToString -- +FAILED: DateTime::__construct(): Failed to parse time string (Class A object) at position 0 (C): The timezone could not be found in the database +FAILED: DateTime::__construct(): Failed to parse time string (Class A object) at position 0 (C): The timezone could not be found in the database + +-- instance of classWithoutToString -- +FAILED: DateTime::__construct() expects parameter 1 to be string, object given +FAILED: DateTime::__construct() expects parameter 1 to be string, object given + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- +FAILED: DateTime::__construct() expects parameter 1 to be string, resource given +FAILED: DateTime::__construct() expects parameter 1 to be string, resource given +===DONE=== diff --git a/ext/date/tests/DateTime_construct_variation2.phpt b/ext/date/tests/DateTime_construct_variation2.phpt new file mode 100644 index 0000000..b1d80f9 --- /dev/null +++ b/ext/date/tests/DateTime_construct_variation2.phpt @@ -0,0 +1,232 @@ +--TEST-- +Test new DateTime() function : usage variation - Passing unexpected values to second argument $timezone. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$time = "2005-07-14 22:30:41"; + +foreach($inputs as $variation =>$timezone) { + echo "\n-- $variation --\n"; + + try { + var_dump( new DateTime($time, $timezone) ); + } catch(Exception $e) { + $msg = $e->getMessage(); + echo "FAILED: " . $msg . "\n"; + } + +}; + +// closing the resource +fclose( $file_handle); + +?> +===DONE=== +--EXPECTF-- +*** Testing new DateTime() : usage variation - unexpected values to second argument $timezone*** + +-- int 0 -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, integer given + +-- int 1 -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, integer given + +-- int 12345 -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, integer given + +-- int -12345 -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, integer given + +-- float 10.5 -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, double given + +-- float -10.5 -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, double given + +-- float .5 -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, double given + +-- empty array -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, array given + +-- int indexed array -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, array given + +-- associative array -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, array given + +-- nested arrays -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, array given + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2005-07-14 22:30:41" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2005-07-14 22:30:41" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, boolean given + +-- lowercase false -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, boolean given + +-- uppercase TRUE -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, boolean given + +-- uppercase FALSE -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, boolean given + +-- empty string DQ -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, string given + +-- empty string SQ -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, string given + +-- string DQ -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, string given + +-- string SQ -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, string given + +-- mixed case string -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, string given + +-- heredoc -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, string given + +-- instance of classWithToString -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, object given + +-- instance of classWithoutToString -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, object given + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2005-07-14 22:30:41" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2005-07-14 22:30:41" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- +FAILED: DateTime::__construct() expects parameter 2 to be DateTimeZone, resource given +===DONE=== + diff --git a/ext/date/tests/DateTime_data-absolute.inc b/ext/date/tests/DateTime_data-absolute.inc new file mode 100644 index 0000000..fa3acb8 --- /dev/null +++ b/ext/date/tests/DateTime_data-absolute.inc @@ -0,0 +1,24 @@ +setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2 +examine_diff($end, $start, 'P+0Y0M0DT6H34M5S', 0); + +echo "test_time_fall_type2_prev_type3_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2 +examine_diff($end, $start, 'P+0Y0M0DT7H36M16S', 0); + +echo "test_time_fall_type2_prev_type3_st: "; +$end = new DateTime('2010-11-07 03:16:55'); // st, zt3 +$start = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2 +examine_diff($end, $start, 'P+0Y0M0DT9H38M27S', 0); + +echo "test_time_fall_type2_prev_type3_post: "; +$end = new DateTime('2010-11-08 19:59:59'); // post, zt3 +$start = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2 +examine_diff($end, $start, 'P+0Y0M2DT1H21M31S', 2); + +echo "test_time_fall_type2_dt_type3_prev: "; +$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2 +examine_diff($end, $start, 'P-0Y0M0DT5H31M52S', 0); + +echo "test_time_fall_type2_dt_type3_dt: "; +$end = new DateTime('2010-11-07 00:15:35'); // sp dt, zt3 +$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2 +examine_diff($end, $start, 'P+0Y0M0DT0H5M15S', 0); + +echo "test_time_fall_type2_dt_type3_redodt: "; +$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2 +examine_diff($end, $start, 'P+0Y0M0DT1H2M13S', 0); + +echo "test_time_fall_type2_dt_type3_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2 +examine_diff($end, $start, 'P+0Y0M0DT2H4M24S', 0); + +echo "test_time_fall_type2_dt_type3_st: "; +$end = new DateTime('2010-11-07 03:16:55'); // st, zt3 +$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2 +examine_diff($end, $start, 'P+0Y0M0DT4H6M35S', 0); + +echo "test_time_fall_type2_dt_type3_post: "; +$end = new DateTime('2010-11-08 19:59:59'); // post, zt3 +$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2 +examine_diff($end, $start, 'P+0Y0M1DT20H49M39S', 1); + +echo "test_time_fall_type2_redodt_type3_prev: "; +$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +examine_diff($end, $start, 'P-0Y0M0DT6H34M5S', 0); + +echo "test_time_fall_type2_redodt_type3_dt: "; +$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +examine_diff($end, $start, 'P-0Y0M0DT1H2M13S', 0); + +echo "test_time_fall_type2_redodt_type3_redodt: "; +$end = new DateTime('2010-11-07 01:15:35 EDT'); // sp redodt, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +examine_diff($end, $start, 'P+0Y0M0DT0H3M2S', 0); + +echo "test_time_fall_type2_redodt_type3_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +examine_diff($end, $start, 'P+0Y0M0DT1H2M11S', 0); + +echo "test_time_fall_type2_redodt_type3_st: "; +$end = new DateTime('2010-11-07 03:16:55'); // st, zt3 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +examine_diff($end, $start, 'P+0Y0M0DT3H4M22S', 0); + +echo "test_time_fall_type2_redodt_type3_post: "; +$end = new DateTime('2010-11-08 19:59:59'); // post, zt3 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +examine_diff($end, $start, 'P+0Y0M1DT19H47M26S', 1); + +echo "test_time_fall_type2_redost_type3_prev: "; +$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +examine_diff($end, $start, 'P-0Y0M0DT7H36M16S', 0); + +echo "test_time_fall_type2_redost_type3_dt: "; +$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +examine_diff($end, $start, 'P-0Y0M0DT2H4M24S', 0); + +echo "test_time_fall_type2_redost_type3_redodt: "; +$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +examine_diff($end, $start, 'P-0Y0M0DT1H2M11S', 0); + +echo "test_time_fall_type2_redost_type3_redost: "; +$end = new DateTime('2010-11-07 01:16:54 EST'); // sp redodt, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +examine_diff($end, $start, 'P+0Y0M0DT0H2M10S', 0); + +echo "test_time_fall_type2_redost_type3_st: "; +$end = new DateTime('2010-11-07 03:16:55'); // st, zt3 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +examine_diff($end, $start, 'P+0Y0M0DT2H2M11S', 0); + +echo "test_time_fall_type2_redost_type3_post: "; +$end = new DateTime('2010-11-08 19:59:59'); // post, zt3 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +examine_diff($end, $start, 'P+0Y0M1DT18H45M15S', 1); + +echo "test_time_fall_type2_st_type3_prev: "; +$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2 +examine_diff($end, $start, 'P-0Y0M0DT9H38M27S', 0); + +echo "test_time_fall_type2_st_type3_dt: "; +$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2 +examine_diff($end, $start, 'P-0Y0M0DT4H6M35S', 0); + +echo "test_time_fall_type2_st_type3_redodt: "; +$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2 +examine_diff($end, $start, 'P-0Y0M0DT3H4M22S', 0); + +echo "test_time_fall_type2_st_type3_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2 +examine_diff($end, $start, 'P-0Y0M0DT2H2M11S', 0); + +echo "test_time_fall_type2_st_type3_st: "; +$end = new DateTime('2010-11-07 05:19:56'); // sp st, zt3 +$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2 +examine_diff($end, $start, 'P+0Y0M0DT2H3M1S', 0); + +echo "test_time_fall_type2_st_type3_post: "; +$end = new DateTime('2010-11-08 19:59:59'); // post, zt3 +$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2 +examine_diff($end, $start, 'P+0Y0M1DT16H43M4S', 1); + +echo "test_time_fall_type2_post_type3_prev: "; +$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2 +examine_diff($end, $start, 'P-0Y0M2DT1H21M31S', 2); + +echo "test_time_fall_type2_post_type3_dt: "; +$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2 +examine_diff($end, $start, 'P-0Y0M1DT20H49M39S', 1); + +echo "test_time_fall_type2_post_type3_redodt: "; +$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2 +examine_diff($end, $start, 'P-0Y0M1DT19H47M26S', 1); + +echo "test_time_fall_type2_post_type3_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2 +examine_diff($end, $start, 'P-0Y0M1DT18H45M15S', 1); + +echo "test_time_fall_type2_post_type3_st: "; +$end = new DateTime('2010-11-07 03:16:55'); // st, zt3 +$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2 +examine_diff($end, $start, 'P-0Y0M1DT16H43M4S', 1); + +echo "test_time_fall_type2_post_type3_post: "; +$end = new DateTime('2010-11-08 19:59:59'); // post, zt3 +$start = new DateTime('2010-11-08 18:57:55 EST'); // sp post, zt2 +examine_diff($end, $start, 'P+0Y0M0DT1H2M4S', 0); + +echo "test_time_fall_type2_dtsec_type3_stsec: "; +$end = new DateTime('2010-11-07 01:00:00 EST'); // stsec, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 01:59:59 EDT'); // dtsec, zt2 +examine_diff($end, $start, 'P+0Y0M0DT0H0M1S', 0); + +echo "test_time_fall_type2_stsec_type3_dtsec: "; +$end = new DateTime('2010-11-07 01:59:59 EDT'); // dtsec, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 01:00:00 EST'); // stsec, zt2 +examine_diff($end, $start, 'P-0Y0M0DT0H0M1S', 0); diff --git a/ext/date/tests/DateTime_data-fall-type3-type2.inc b/ext/date/tests/DateTime_data-fall-type3-type2.inc new file mode 100644 index 0000000..51ef5ff --- /dev/null +++ b/ext/date/tests/DateTime_data-fall-type3-type2.inc @@ -0,0 +1,227 @@ +setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +examine_diff($end, $start, 'P+0Y0M0DT6H34M5S', 0); + +echo "test_time_fall_type3_prev_type2_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +examine_diff($end, $start, 'P+0Y0M0DT7H36M16S', 0); + +echo "test_time_fall_type3_prev_type2_st: "; +$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2 +$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +examine_diff($end, $start, 'P+0Y0M0DT9H38M27S', 0); + +echo "test_time_fall_type3_prev_type2_post: "; +$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2 +$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +examine_diff($end, $start, 'P+0Y0M2DT1H21M31S', 2); + +echo "test_time_fall_type3_dt_type2_prev: "; +$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2 +$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +examine_diff($end, $start, 'P-0Y0M0DT5H31M52S', 0); + +echo "test_time_fall_type3_dt_type2_dt: "; +$end = new DateTime('2010-11-07 00:15:35 EDT'); // sp dt, zt2 +$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +examine_diff($end, $start, 'P+0Y0M0DT0H5M15S', 0); + +echo "test_time_fall_type3_dt_type2_redodt: "; +$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +examine_diff($end, $start, 'P+0Y0M0DT1H2M13S', 0); + +echo "test_time_fall_type3_dt_type2_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +examine_diff($end, $start, 'P+0Y0M0DT2H4M24S', 0); + +echo "test_time_fall_type3_dt_type2_st: "; +$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2 +$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +examine_diff($end, $start, 'P+0Y0M0DT4H6M35S', 0); + +echo "test_time_fall_type3_dt_type2_post: "; +$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2 +$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +examine_diff($end, $start, 'P+0Y0M1DT20H49M39S', 1); + +echo "test_time_fall_type3_redodt_type2_prev: "; +$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P-0Y0M0DT6H34M5S', 0); + +echo "test_time_fall_type3_redodt_type2_dt: "; +$end = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P-0Y0M0DT1H2M13S', 0); + +echo "test_time_fall_type3_redodt_type2_redodt: "; +$end = new DateTime('2010-11-07 01:15:35 EDT'); // sp redodt, zt2 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M0DT0H3M2S', 0); + +echo "test_time_fall_type3_redodt_type2_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M0DT1H2M11S', 0); + +echo "test_time_fall_type3_redodt_type2_st: "; +$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M0DT3H4M22S', 0); + +echo "test_time_fall_type3_redodt_type2_post: "; +$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M1DT19H47M26S', 1); + +echo "test_time_fall_type3_redost_type2_prev: "; +$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P-0Y0M0DT7H36M16S', 0); + +echo "test_time_fall_type3_redost_type2_dt: "; +$end = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P-0Y0M0DT2H4M24S', 0); + +echo "test_time_fall_type3_redost_type2_redodt: "; +$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P-0Y0M0DT1H2M11S', 0); + +echo "test_time_fall_type3_redost_type2_redost: "; +$end = new DateTime('2010-11-07 01:16:54 EST'); // sp redodt, zt2 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M0DT0H2M10S', 0); + +echo "test_time_fall_type3_redost_type2_st: "; +$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M0DT2H2M11S', 0); + +echo "test_time_fall_type3_redost_type2_post: "; +$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M1DT18H45M15S', 1); + +echo "test_time_fall_type3_st_type2_prev: "; +$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2 +$start = new DateTime('2010-11-07 03:16:55'); // st, zt3 +examine_diff($end, $start, 'P-0Y0M0DT9H38M27S', 0); + +echo "test_time_fall_type3_st_type2_dt: "; +$end = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2 +$start = new DateTime('2010-11-07 03:16:55'); // st, zt3 +examine_diff($end, $start, 'P-0Y0M0DT4H6M35S', 0); + +echo "test_time_fall_type3_st_type2_redodt: "; +$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start = new DateTime('2010-11-07 03:16:55'); // st, zt3 +examine_diff($end, $start, 'P-0Y0M0DT3H4M22S', 0); + +echo "test_time_fall_type3_st_type2_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start = new DateTime('2010-11-07 03:16:55'); // st, zt3 +examine_diff($end, $start, 'P-0Y0M0DT2H2M11S', 0); + +echo "test_time_fall_type3_st_type2_st: "; +$end = new DateTime('2010-11-07 05:19:56 EST'); // sp st, zt2 +$start = new DateTime('2010-11-07 03:16:55'); // st, zt3 +examine_diff($end, $start, 'P+0Y0M0DT2H3M1S', 0); + +echo "test_time_fall_type3_st_type2_post: "; +$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2 +$start = new DateTime('2010-11-07 03:16:55'); // st, zt3 +examine_diff($end, $start, 'P+0Y0M1DT16H43M4S', 1); + +echo "test_time_fall_type3_post_type2_prev: "; +$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2 +$start = new DateTime('2010-11-08 19:59:59'); // post, zt3 +examine_diff($end, $start, 'P-0Y0M2DT1H21M31S', 2); + +echo "test_time_fall_type3_post_type2_dt: "; +$end = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2 +$start = new DateTime('2010-11-08 19:59:59'); // post, zt3 +examine_diff($end, $start, 'P-0Y0M1DT20H49M39S', 1); + +echo "test_time_fall_type3_post_type2_redodt: "; +$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start = new DateTime('2010-11-08 19:59:59'); // post, zt3 +examine_diff($end, $start, 'P-0Y0M1DT19H47M26S', 1); + +echo "test_time_fall_type3_post_type2_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start = new DateTime('2010-11-08 19:59:59'); // post, zt3 +examine_diff($end, $start, 'P-0Y0M1DT18H45M15S', 1); + +echo "test_time_fall_type3_post_type2_st: "; +$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2 +$start = new DateTime('2010-11-08 19:59:59'); // post, zt3 +examine_diff($end, $start, 'P-0Y0M1DT16H43M4S', 1); + +echo "test_time_fall_type3_post_type2_post: "; +$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2 +$start = new DateTime('2010-11-08 18:57:55'); // sp post, zt3 +examine_diff($end, $start, 'P+0Y0M0DT1H2M4S', 0); + +echo "test_time_fall_type3_dtsec_type2_stsec: "; +$end = new DateTime('2010-11-07 01:00:00 EST'); // stsec, zt2 +$start = new DateTime('2010-11-07 01:59:59 EDT'); // dtsec, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M0DT0H0M1S', 0); + +echo "test_time_fall_type3_stsec_type2_dtsec: "; +$end = new DateTime('2010-11-07 01:59:59 EDT'); // dtsec, zt2 +$start = new DateTime('2010-11-07 01:00:00 EST'); // stsec, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P-0Y0M0DT0H0M1S', 0); diff --git a/ext/date/tests/DateTime_data-fall-type3-type3.inc b/ext/date/tests/DateTime_data-fall-type3-type3.inc new file mode 100644 index 0000000..48c1c33 --- /dev/null +++ b/ext/date/tests/DateTime_data-fall-type3-type3.inc @@ -0,0 +1,239 @@ +setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +examine_diff($end, $start, 'P+0Y0M0DT6H34M5S', 0); + +echo "test_time_fall_type3_prev_type3_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +examine_diff($end, $start, 'P+0Y0M0DT7H36M16S', 0); + +echo "test_time_fall_type3_prev_type3_st: "; +$end = new DateTime('2010-11-07 03:16:55'); // st, zt3 +$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +examine_diff($end, $start, 'P+0Y0M0DT9H38M27S', 0); + +echo "test_time_fall_type3_prev_type3_post: "; +$end = new DateTime('2010-11-08 19:59:59'); // post, zt3 +$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +examine_diff($end, $start, 'P+0Y0M2DT1H21M31S', 2); + +echo "test_time_fall_type3_dt_type3_prev: "; +$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +examine_diff($end, $start, 'P-0Y0M0DT5H31M52S', 0); + +echo "test_time_fall_type3_dt_type3_dt: "; +$end = new DateTime('2010-11-07 00:15:35'); // sp dt, zt3 +$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +examine_diff($end, $start, 'P+0Y0M0DT0H5M15S', 0); + +echo "test_time_fall_type3_dt_type3_redodt: "; +$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +examine_diff($end, $start, 'P+0Y0M0DT1H2M13S', 0); + +echo "test_time_fall_type3_dt_type3_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +examine_diff($end, $start, 'P+0Y0M0DT2H4M24S', 0); + +echo "test_time_fall_type3_dt_type3_st: "; +$end = new DateTime('2010-11-07 03:16:55'); // st, zt3 +$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +examine_diff($end, $start, 'P+0Y0M0DT4H6M35S', 0); + +echo "test_time_fall_type3_dt_type3_post: "; +$end = new DateTime('2010-11-08 19:59:59'); // post, zt3 +$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +examine_diff($end, $start, 'P+0Y0M1DT20H49M39S', 1); + +echo "test_time_fall_type3_redodt_type3_prev: "; +$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P-0Y0M0DT6H34M5S', 0); + +echo "test_time_fall_type3_redodt_type3_dt: "; +$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P-0Y0M0DT1H2M13S', 0); + +echo "test_time_fall_type3_redodt_type3_redodt: "; +$end = new DateTime('2010-11-07 01:15:35 EDT'); // sp redodt, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M0DT0H3M2S', 0); + +echo "test_time_fall_type3_redodt_type3_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M0DT1H2M11S', 0); + +echo "test_time_fall_type3_redodt_type3_st: "; +$end = new DateTime('2010-11-07 03:16:55'); // st, zt3 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M0DT3H4M22S', 0); + +echo "test_time_fall_type3_redodt_type3_post: "; +$end = new DateTime('2010-11-08 19:59:59'); // post, zt3 +$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M1DT19H47M26S', 1); + +echo "test_time_fall_type3_redost_type3_prev: "; +$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P-0Y0M0DT7H36M16S', 0); + +echo "test_time_fall_type3_redost_type3_dt: "; +$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P-0Y0M0DT2H4M24S', 0); + +echo "test_time_fall_type3_redost_type3_redodt: "; +$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P-0Y0M0DT1H2M11S', 0); + +echo "test_time_fall_type3_redost_type3_redost: "; +$end = new DateTime('2010-11-07 01:16:54 EST'); // sp redodt, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M0DT0H2M10S', 0); + +echo "test_time_fall_type3_redost_type3_st: "; +$end = new DateTime('2010-11-07 03:16:55'); // st, zt3 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M0DT2H2M11S', 0); + +echo "test_time_fall_type3_redost_type3_post: "; +$end = new DateTime('2010-11-08 19:59:59'); // post, zt3 +$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M1DT18H45M15S', 1); + +echo "test_time_fall_type3_st_type3_prev: "; +$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +$start = new DateTime('2010-11-07 03:16:55'); // st, zt3 +examine_diff($end, $start, 'P-0Y0M0DT9H38M27S', 0); + +echo "test_time_fall_type3_st_type3_dt: "; +$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +$start = new DateTime('2010-11-07 03:16:55'); // st, zt3 +examine_diff($end, $start, 'P-0Y0M0DT4H6M35S', 0); + +echo "test_time_fall_type3_st_type3_redodt: "; +$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 03:16:55'); // st, zt3 +examine_diff($end, $start, 'P-0Y0M0DT3H4M22S', 0); + +echo "test_time_fall_type3_st_type3_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 03:16:55'); // st, zt3 +examine_diff($end, $start, 'P-0Y0M0DT2H2M11S', 0); + +echo "test_time_fall_type3_st_type3_st: "; +$end = new DateTime('2010-11-07 05:19:56'); // sp st, zt3 +$start = new DateTime('2010-11-07 03:16:55'); // st, zt3 +examine_diff($end, $start, 'P+0Y0M0DT2H3M1S', 0); + +echo "test_time_fall_type3_st_type3_post: "; +$end = new DateTime('2010-11-08 19:59:59'); // post, zt3 +$start = new DateTime('2010-11-07 03:16:55'); // st, zt3 +examine_diff($end, $start, 'P+0Y0M1DT16H43M4S', 1); + +echo "test_time_fall_type3_post_type3_prev: "; +$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3 +$start = new DateTime('2010-11-08 19:59:59'); // post, zt3 +examine_diff($end, $start, 'P-0Y0M2DT1H21M31S', 2); + +echo "test_time_fall_type3_post_type3_dt: "; +$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3 +$start = new DateTime('2010-11-08 19:59:59'); // post, zt3 +examine_diff($end, $start, 'P-0Y0M1DT20H49M39S', 1); + +echo "test_time_fall_type3_post_type3_redodt: "; +$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-08 19:59:59'); // post, zt3 +examine_diff($end, $start, 'P-0Y0M1DT19H47M26S', 1); + +echo "test_time_fall_type3_post_type3_redost: "; +$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-08 19:59:59'); // post, zt3 +examine_diff($end, $start, 'P-0Y0M1DT18H45M15S', 1); + +echo "test_time_fall_type3_post_type3_st: "; +$end = new DateTime('2010-11-07 03:16:55'); // st, zt3 +$start = new DateTime('2010-11-08 19:59:59'); // post, zt3 +examine_diff($end, $start, 'P-0Y0M1DT16H43M4S', 1); + +echo "test_time_fall_type3_post_type3_post: "; +$end = new DateTime('2010-11-08 19:59:59'); // post, zt3 +$start = new DateTime('2010-11-08 18:57:55'); // sp post, zt3 +examine_diff($end, $start, 'P+0Y0M0DT1H2M4S', 0); + +echo "test_time_fall_type3_dtsec_type3_stsec: "; +$end = new DateTime('2010-11-07 01:00:00 EST'); // stsec, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 01:59:59 EDT'); // dtsec, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P+0Y0M0DT0H0M1S', 0); + +echo "test_time_fall_type3_stsec_type3_dtsec: "; +$end = new DateTime('2010-11-07 01:59:59 EDT'); // dtsec, zt2 +$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +$start = new DateTime('2010-11-07 01:00:00 EST'); // stsec, zt2 +$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3 +examine_diff($end, $start, 'P-0Y0M0DT0H0M1S', 0); diff --git a/ext/date/tests/DateTime_data-february.inc b/ext/date/tests/DateTime_data-february.inc new file mode 100644 index 0000000..cc9d85d --- /dev/null +++ b/ext/date/tests/DateTime_data-february.inc @@ -0,0 +1,217 @@ +setDate(333333, 1, 1); +$end->setTime(16, 18, 02); + +$start = new DateTime; +$start->setDate(-333333, 1, 1); +$start->setTime(16, 18, 02); + +examine_diff($end, $start, 'P+666666Y0M0DT0H0M0S', 243494757); + +echo "test_massive_negative: "; +$end = new DateTime; +$end->setDate(-333333, 1, 1); +$end->setTime(16, 18, 02); + +$start = new DateTime; +$start->setDate(333333, 1, 1); +$start->setTime(16, 18, 02); + +examine_diff($end, $start, 'P-666666Y0M0DT0H0M0S', 243494757); diff --git a/ext/date/tests/DateTime_data-spring-type2-type2.inc b/ext/date/tests/DateTime_data-spring-type2-type2.inc new file mode 100644 index 0000000..d9e07c3 --- /dev/null +++ b/ext/date/tests/DateTime_data-spring-type2-type2.inc @@ -0,0 +1,109 @@ + +--FILE-- + +--EXPECT-- +test_absolute_7: DAYS: **7** +test_absolute_negative_7: DAYS: **7** diff --git a/ext/date/tests/DateTime_days-dates.phpt b/ext/date/tests/DateTime_days-dates.phpt new file mode 100644 index 0000000..446d56d --- /dev/null +++ b/ext/date/tests/DateTime_days-dates.phpt @@ -0,0 +1,29 @@ +--TEST-- +DateTime::diff() days -- dates +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test__7: DAYS: **7** +test_years_positive__7_by_0_day: DAYS: **2557** +test_years_positive__7_by_1_day: DAYS: **2558** +test_years_positive__6_shy_1_day: DAYS: **2556** +test_years_positive__7_by_1_month: DAYS: **2585** +test_years_positive__6_shy_1_month: DAYS: **2526** +test_years_positive__7_by_1_month_split_newyear: DAYS: **2588** +test_years_positive__6_shy_1_month_split_newyear: DAYS: **2526** +test_negative__7: DAYS: **7** +test_years_negative__7_by_0_day: DAYS: **2557** +test_years_negative__7_by_1_day: DAYS: **2558** +test_years_negative__6_shy_1_day: DAYS: **2556** +test_years_negative__7_by_1_month: DAYS: **2585** +test_years_negative__6_shy_1_month: DAYS: **2526** +test_years_negative__7_by_1_month_split_newyear: DAYS: **2588** +test_years_negative__6_shy_1_month_split_newyear: DAYS: **2526** diff --git a/ext/date/tests/DateTime_days-fall-type2-type2.phpt b/ext/date/tests/DateTime_days-fall-type2-type2.phpt new file mode 100644 index 0000000..3af156c --- /dev/null +++ b/ext/date/tests/DateTime_days-fall-type2-type2.phpt @@ -0,0 +1,51 @@ +--TEST-- +DateTime::diff() days -- fall type2 type2 +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_time_fall_type2_prev_type2_prev: DAYS: **33** +test_time_fall_type2_prev_type2_dt: DAYS: **0** +test_time_fall_type2_prev_type2_redodt: DAYS: **0** +test_time_fall_type2_prev_type2_redost: DAYS: **0** +test_time_fall_type2_prev_type2_st: DAYS: **0** +test_time_fall_type2_prev_type2_post: DAYS: **2** +test_time_fall_type2_dt_type2_prev: DAYS: **0** +test_time_fall_type2_dt_type2_dt: DAYS: **0** +test_time_fall_type2_dt_type2_redodt: DAYS: **0** +test_time_fall_type2_dt_type2_redost: DAYS: **0** +test_time_fall_type2_dt_type2_st: DAYS: **0** +test_time_fall_type2_dt_type2_post: DAYS: **1** +test_time_fall_type2_redodt_type2_prev: DAYS: **0** +test_time_fall_type2_redodt_type2_dt: DAYS: **0** +test_time_fall_type2_redodt_type2_redodt: DAYS: **0** +test_time_fall_type2_redodt_type2_redost: DAYS: **0** +test_time_fall_type2_redodt_type2_st: DAYS: **0** +test_time_fall_type2_redodt_type2_post: DAYS: **1** +test_time_fall_type2_redost_type2_prev: DAYS: **0** +test_time_fall_type2_redost_type2_dt: DAYS: **0** +test_time_fall_type2_redost_type2_redodt: DAYS: **0** +test_time_fall_type2_redost_type2_redost: DAYS: **0** +test_time_fall_type2_redost_type2_st: DAYS: **0** +test_time_fall_type2_redost_type2_post: DAYS: **1** +test_time_fall_type2_st_type2_prev: DAYS: **0** +test_time_fall_type2_st_type2_dt: DAYS: **0** +test_time_fall_type2_st_type2_redodt: DAYS: **0** +test_time_fall_type2_st_type2_redost: DAYS: **0** +test_time_fall_type2_st_type2_st: DAYS: **0** +test_time_fall_type2_st_type2_post: DAYS: **1** +test_time_fall_type2_post_type2_prev: DAYS: **2** +test_time_fall_type2_post_type2_dt: DAYS: **1** +test_time_fall_type2_post_type2_redodt: DAYS: **1** +test_time_fall_type2_post_type2_redost: DAYS: **1** +test_time_fall_type2_post_type2_st: DAYS: **1** +test_time_fall_type2_post_type2_post: DAYS: **0** +test_time_fall_type2_dtsec_type2_stsec: DAYS: **0** +test_time_fall_type2_stsec_type2_dtsec: DAYS: **0** diff --git a/ext/date/tests/DateTime_days-fall-type2-type3.phpt b/ext/date/tests/DateTime_days-fall-type2-type3.phpt new file mode 100644 index 0000000..8a4296b --- /dev/null +++ b/ext/date/tests/DateTime_days-fall-type2-type3.phpt @@ -0,0 +1,51 @@ +--TEST-- +DateTime::diff() days -- fall type2 type3 +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_time_fall_type2_prev_type3_prev: DAYS: **33** +test_time_fall_type2_prev_type3_dt: DAYS: **0** +test_time_fall_type2_prev_type3_redodt: DAYS: **0** +test_time_fall_type2_prev_type3_redost: DAYS: **0** +test_time_fall_type2_prev_type3_st: DAYS: **0** +test_time_fall_type2_prev_type3_post: DAYS: **2** +test_time_fall_type2_dt_type3_prev: DAYS: **0** +test_time_fall_type2_dt_type3_dt: DAYS: **0** +test_time_fall_type2_dt_type3_redodt: DAYS: **0** +test_time_fall_type2_dt_type3_redost: DAYS: **0** +test_time_fall_type2_dt_type3_st: DAYS: **0** +test_time_fall_type2_dt_type3_post: DAYS: **1** +test_time_fall_type2_redodt_type3_prev: DAYS: **0** +test_time_fall_type2_redodt_type3_dt: DAYS: **0** +test_time_fall_type2_redodt_type3_redodt: DAYS: **0** +test_time_fall_type2_redodt_type3_redost: DAYS: **0** +test_time_fall_type2_redodt_type3_st: DAYS: **0** +test_time_fall_type2_redodt_type3_post: DAYS: **1** +test_time_fall_type2_redost_type3_prev: DAYS: **0** +test_time_fall_type2_redost_type3_dt: DAYS: **0** +test_time_fall_type2_redost_type3_redodt: DAYS: **0** +test_time_fall_type2_redost_type3_redost: DAYS: **0** +test_time_fall_type2_redost_type3_st: DAYS: **0** +test_time_fall_type2_redost_type3_post: DAYS: **1** +test_time_fall_type2_st_type3_prev: DAYS: **0** +test_time_fall_type2_st_type3_dt: DAYS: **0** +test_time_fall_type2_st_type3_redodt: DAYS: **0** +test_time_fall_type2_st_type3_redost: DAYS: **0** +test_time_fall_type2_st_type3_st: DAYS: **0** +test_time_fall_type2_st_type3_post: DAYS: **1** +test_time_fall_type2_post_type3_prev: DAYS: **2** +test_time_fall_type2_post_type3_dt: DAYS: **1** +test_time_fall_type2_post_type3_redodt: DAYS: **1** +test_time_fall_type2_post_type3_redost: DAYS: **1** +test_time_fall_type2_post_type3_st: DAYS: **1** +test_time_fall_type2_post_type3_post: DAYS: **0** +test_time_fall_type2_dtsec_type3_stsec: DAYS: **0** +test_time_fall_type2_stsec_type3_dtsec: DAYS: **0** diff --git a/ext/date/tests/DateTime_days-fall-type3-type2.phpt b/ext/date/tests/DateTime_days-fall-type3-type2.phpt new file mode 100644 index 0000000..d545603 --- /dev/null +++ b/ext/date/tests/DateTime_days-fall-type3-type2.phpt @@ -0,0 +1,51 @@ +--TEST-- +DateTime::diff() days -- fall type3 type2 +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_time_fall_type3_prev_type2_prev: DAYS: **33** +test_time_fall_type3_prev_type2_dt: DAYS: **0** +test_time_fall_type3_prev_type2_redodt: DAYS: **0** +test_time_fall_type3_prev_type2_redost: DAYS: **0** +test_time_fall_type3_prev_type2_st: DAYS: **0** +test_time_fall_type3_prev_type2_post: DAYS: **2** +test_time_fall_type3_dt_type2_prev: DAYS: **0** +test_time_fall_type3_dt_type2_dt: DAYS: **0** +test_time_fall_type3_dt_type2_redodt: DAYS: **0** +test_time_fall_type3_dt_type2_redost: DAYS: **0** +test_time_fall_type3_dt_type2_st: DAYS: **0** +test_time_fall_type3_dt_type2_post: DAYS: **1** +test_time_fall_type3_redodt_type2_prev: DAYS: **0** +test_time_fall_type3_redodt_type2_dt: DAYS: **0** +test_time_fall_type3_redodt_type2_redodt: DAYS: **0** +test_time_fall_type3_redodt_type2_redost: DAYS: **0** +test_time_fall_type3_redodt_type2_st: DAYS: **0** +test_time_fall_type3_redodt_type2_post: DAYS: **1** +test_time_fall_type3_redost_type2_prev: DAYS: **0** +test_time_fall_type3_redost_type2_dt: DAYS: **0** +test_time_fall_type3_redost_type2_redodt: DAYS: **0** +test_time_fall_type3_redost_type2_redost: DAYS: **0** +test_time_fall_type3_redost_type2_st: DAYS: **0** +test_time_fall_type3_redost_type2_post: DAYS: **1** +test_time_fall_type3_st_type2_prev: DAYS: **0** +test_time_fall_type3_st_type2_dt: DAYS: **0** +test_time_fall_type3_st_type2_redodt: DAYS: **0** +test_time_fall_type3_st_type2_redost: DAYS: **0** +test_time_fall_type3_st_type2_st: DAYS: **0** +test_time_fall_type3_st_type2_post: DAYS: **1** +test_time_fall_type3_post_type2_prev: DAYS: **2** +test_time_fall_type3_post_type2_dt: DAYS: **1** +test_time_fall_type3_post_type2_redodt: DAYS: **1** +test_time_fall_type3_post_type2_redost: DAYS: **1** +test_time_fall_type3_post_type2_st: DAYS: **1** +test_time_fall_type3_post_type2_post: DAYS: **0** +test_time_fall_type3_dtsec_type2_stsec: DAYS: **0** +test_time_fall_type3_stsec_type2_dtsec: DAYS: **0** diff --git a/ext/date/tests/DateTime_days-fall-type3-type3.phpt b/ext/date/tests/DateTime_days-fall-type3-type3.phpt new file mode 100644 index 0000000..38e4ef5 --- /dev/null +++ b/ext/date/tests/DateTime_days-fall-type3-type3.phpt @@ -0,0 +1,51 @@ +--TEST-- +DateTime::diff() days -- fall type3 type3 +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_time_fall_type3_prev_type3_prev: DAYS: **33** +test_time_fall_type3_prev_type3_dt: DAYS: **0** +test_time_fall_type3_prev_type3_redodt: DAYS: **0** +test_time_fall_type3_prev_type3_redost: DAYS: **0** +test_time_fall_type3_prev_type3_st: DAYS: **0** +test_time_fall_type3_prev_type3_post: DAYS: **2** +test_time_fall_type3_dt_type3_prev: DAYS: **0** +test_time_fall_type3_dt_type3_dt: DAYS: **0** +test_time_fall_type3_dt_type3_redodt: DAYS: **0** +test_time_fall_type3_dt_type3_redost: DAYS: **0** +test_time_fall_type3_dt_type3_st: DAYS: **0** +test_time_fall_type3_dt_type3_post: DAYS: **1** +test_time_fall_type3_redodt_type3_prev: DAYS: **0** +test_time_fall_type3_redodt_type3_dt: DAYS: **0** +test_time_fall_type3_redodt_type3_redodt: DAYS: **0** +test_time_fall_type3_redodt_type3_redost: DAYS: **0** +test_time_fall_type3_redodt_type3_st: DAYS: **0** +test_time_fall_type3_redodt_type3_post: DAYS: **1** +test_time_fall_type3_redost_type3_prev: DAYS: **0** +test_time_fall_type3_redost_type3_dt: DAYS: **0** +test_time_fall_type3_redost_type3_redodt: DAYS: **0** +test_time_fall_type3_redost_type3_redost: DAYS: **0** +test_time_fall_type3_redost_type3_st: DAYS: **0** +test_time_fall_type3_redost_type3_post: DAYS: **1** +test_time_fall_type3_st_type3_prev: DAYS: **0** +test_time_fall_type3_st_type3_dt: DAYS: **0** +test_time_fall_type3_st_type3_redodt: DAYS: **0** +test_time_fall_type3_st_type3_redost: DAYS: **0** +test_time_fall_type3_st_type3_st: DAYS: **0** +test_time_fall_type3_st_type3_post: DAYS: **1** +test_time_fall_type3_post_type3_prev: DAYS: **2** +test_time_fall_type3_post_type3_dt: DAYS: **1** +test_time_fall_type3_post_type3_redodt: DAYS: **1** +test_time_fall_type3_post_type3_redost: DAYS: **1** +test_time_fall_type3_post_type3_st: DAYS: **1** +test_time_fall_type3_post_type3_post: DAYS: **0** +test_time_fall_type3_dtsec_type3_stsec: DAYS: **0** +test_time_fall_type3_stsec_type3_dtsec: DAYS: **0** diff --git a/ext/date/tests/DateTime_days-february.phpt b/ext/date/tests/DateTime_days-february.phpt new file mode 100644 index 0000000..b8107d7 --- /dev/null +++ b/ext/date/tests/DateTime_days-february.phpt @@ -0,0 +1,77 @@ +--TEST-- +DateTime::diff() days -- february +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_bug_49081__1: DAYS: **30** +test_bug_49081__2: DAYS: **31** +test_bug_49081__3: DAYS: **1** +test_bug_49081__4: DAYS: **29** +test_bug_49081__5: DAYS: **30** +test_bug_49081__6: DAYS: **31** +test_bug_49081__7: DAYS: **32** +test_bug_49081__8: DAYS: **28** +test_bug_49081__9: DAYS: **29** +test_bug_49081__10: DAYS: **30** +test_bug_49081__11: DAYS: **31** +test_bug_49081__12: DAYS: **1** +test_bug_49081__13: DAYS: **27** +test_bug_49081__14: DAYS: **28** +test_bug_49081__15: DAYS: **29** +test_bug_49081__16: DAYS: **30** +test_bug_49081__17: DAYS: **31** +test_bug_49081__18: DAYS: **32** +test_bug_49081__19: DAYS: **59** +test_bug_49081__20: DAYS: **29** +test_bug_49081__21: DAYS: **55** +test_bug_49081__22: DAYS: **56** +test_bug_49081__23: DAYS: **57** +test_bug_49081__24: DAYS: **58** +test_bug_49081__25: DAYS: **59** +test_bug_49081__26: DAYS: **60** +test_bug_49081__27: DAYS: **30** +test_bug_49081__28: DAYS: **27** +test_bug_49081__29: DAYS: **28** +test_bug_49081__30: DAYS: **29** +test_bug_49081__31: DAYS: **28** +test_bug_49081__32: DAYS: **29** +test_bug_49081_negative__1: DAYS: **30** +test_bug_49081_negative__2: DAYS: **31** +test_bug_49081_negative__3: DAYS: **1** +test_bug_49081_negative__4: DAYS: **29** +test_bug_49081_negative__5: DAYS: **30** +test_bug_49081_negative__6: DAYS: **31** +test_bug_49081_negative__7: DAYS: **32** +test_bug_49081_negative__8: DAYS: **28** +test_bug_49081_negative__9: DAYS: **29** +test_bug_49081_negative__10: DAYS: **30** +test_bug_49081_negative__11: DAYS: **31** +test_bug_49081_negative__12: DAYS: **1** +test_bug_49081_negative__13: DAYS: **27** +test_bug_49081_negative__14: DAYS: **28** +test_bug_49081_negative__15: DAYS: **29** +test_bug_49081_negative__16: DAYS: **30** +test_bug_49081_negative__17: DAYS: **31** +test_bug_49081_negative__18: DAYS: **32** +test_bug_49081_negative__19: DAYS: **59** +test_bug_49081_negative__20: DAYS: **29** +test_bug_49081_negative__21: DAYS: **55** +test_bug_49081_negative__22: DAYS: **56** +test_bug_49081_negative__23: DAYS: **57** +test_bug_49081_negative__24: DAYS: **58** +test_bug_49081_negative__25: DAYS: **59** +test_bug_49081_negative__26: DAYS: **60** +test_bug_49081_negative__27: DAYS: **30** +test_bug_49081_negative__28: DAYS: **27** +test_bug_49081_negative__29: DAYS: **28** +test_bug_49081_negative__30: DAYS: **29** +test_bug_49081_negative__31: DAYS: **28** +test_bug_49081_negative__32: DAYS: **29** diff --git a/ext/date/tests/DateTime_days-massive.phpt b/ext/date/tests/DateTime_days-massive.phpt new file mode 100644 index 0000000..de51a66 --- /dev/null +++ b/ext/date/tests/DateTime_days-massive.phpt @@ -0,0 +1,15 @@ +--TEST-- +DateTime::diff() days -- massive +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_massive_positive: DAYS: **243494757** +test_massive_negative: DAYS: **243494757** diff --git a/ext/date/tests/DateTime_days-spring-type2-type2.phpt b/ext/date/tests/DateTime_days-spring-type2-type2.phpt new file mode 100644 index 0000000..3e702ac --- /dev/null +++ b/ext/date/tests/DateTime_days-spring-type2-type2.phpt @@ -0,0 +1,31 @@ +--TEST-- +DateTime::diff() days -- spring type2 type2 +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_time_spring_type2_prev_type2_prev: DAYS: **30** +test_time_spring_type2_prev_type2_st: DAYS: **0** +test_time_spring_type2_prev_type2_dt: DAYS: **0** +test_time_spring_type2_prev_type2_post: DAYS: **2** +test_time_spring_type2_st_type2_prev: DAYS: **0** +test_time_spring_type2_st_type2_st: DAYS: **0** +test_time_spring_type2_st_type2_dt: DAYS: **0** +test_time_spring_type2_st_type2_post: DAYS: **1** +test_time_spring_type2_dt_type2_prev: DAYS: **0** +test_time_spring_type2_dt_type2_st: DAYS: **0** +test_time_spring_type2_dt_type2_dt: DAYS: **0** +test_time_spring_type2_dt_type2_post: DAYS: **1** +test_time_spring_type2_post_type2_prev: DAYS: **2** +test_time_spring_type2_post_type2_st: DAYS: **1** +test_time_spring_type2_post_type2_dt: DAYS: **1** +test_time_spring_type2_post_type2_post: DAYS: **0** +test_time_spring_type2_stsec_type2_dtsec: DAYS: **0** +test_time_spring_type2_dtsec_type2_stsec: DAYS: **0** diff --git a/ext/date/tests/DateTime_days-spring-type2-type3.phpt b/ext/date/tests/DateTime_days-spring-type2-type3.phpt new file mode 100644 index 0000000..0e23ac3 --- /dev/null +++ b/ext/date/tests/DateTime_days-spring-type2-type3.phpt @@ -0,0 +1,31 @@ +--TEST-- +DateTime::diff() days -- spring type2 type3 +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_time_spring_type2_prev_type3_prev: DAYS: **30** +test_time_spring_type2_prev_type3_st: DAYS: **0** +test_time_spring_type2_prev_type3_dt: DAYS: **0** +test_time_spring_type2_prev_type3_post: DAYS: **2** +test_time_spring_type2_st_type3_prev: DAYS: **0** +test_time_spring_type2_st_type3_st: DAYS: **0** +test_time_spring_type2_st_type3_dt: DAYS: **0** +test_time_spring_type2_st_type3_post: DAYS: **1** +test_time_spring_type2_dt_type3_prev: DAYS: **0** +test_time_spring_type2_dt_type3_st: DAYS: **0** +test_time_spring_type2_dt_type3_dt: DAYS: **0** +test_time_spring_type2_dt_type3_post: DAYS: **1** +test_time_spring_type2_post_type3_prev: DAYS: **2** +test_time_spring_type2_post_type3_st: DAYS: **1** +test_time_spring_type2_post_type3_dt: DAYS: **1** +test_time_spring_type2_post_type3_post: DAYS: **0** +test_time_spring_type2_stsec_type3_dtsec: DAYS: **0** +test_time_spring_type2_dtsec_type3_stsec: DAYS: **0** diff --git a/ext/date/tests/DateTime_days-spring-type3-type2.phpt b/ext/date/tests/DateTime_days-spring-type3-type2.phpt new file mode 100644 index 0000000..4fb9ba7 --- /dev/null +++ b/ext/date/tests/DateTime_days-spring-type3-type2.phpt @@ -0,0 +1,31 @@ +--TEST-- +DateTime::diff() days -- spring type3 type2 +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_time_spring_type3_prev_type2_prev: DAYS: **30** +test_time_spring_type3_prev_type2_st: DAYS: **0** +test_time_spring_type3_prev_type2_dt: DAYS: **0** +test_time_spring_type3_prev_type2_post: DAYS: **2** +test_time_spring_type3_st_type2_prev: DAYS: **0** +test_time_spring_type3_st_type2_st: DAYS: **0** +test_time_spring_type3_st_type2_dt: DAYS: **0** +test_time_spring_type3_st_type2_post: DAYS: **1** +test_time_spring_type3_dt_type2_prev: DAYS: **0** +test_time_spring_type3_dt_type2_st: DAYS: **0** +test_time_spring_type3_dt_type2_dt: DAYS: **0** +test_time_spring_type3_dt_type2_post: DAYS: **1** +test_time_spring_type3_post_type2_prev: DAYS: **2** +test_time_spring_type3_post_type2_st: DAYS: **1** +test_time_spring_type3_post_type2_dt: DAYS: **1** +test_time_spring_type3_post_type2_post: DAYS: **0** +test_time_spring_type3_stsec_type2_dtsec: DAYS: **0** +test_time_spring_type3_dtsec_type2_stsec: DAYS: **0** diff --git a/ext/date/tests/DateTime_days-spring-type3-type3.phpt b/ext/date/tests/DateTime_days-spring-type3-type3.phpt new file mode 100644 index 0000000..df44925 --- /dev/null +++ b/ext/date/tests/DateTime_days-spring-type3-type3.phpt @@ -0,0 +1,31 @@ +--TEST-- +DateTime::diff() days -- spring type3 type3 +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_time_spring_type3_prev_type3_prev: DAYS: **30** +test_time_spring_type3_prev_type3_st: DAYS: **0** +test_time_spring_type3_prev_type3_dt: DAYS: **0** +test_time_spring_type3_prev_type3_post: DAYS: **2** +test_time_spring_type3_st_type3_prev: DAYS: **0** +test_time_spring_type3_st_type3_st: DAYS: **0** +test_time_spring_type3_st_type3_dt: DAYS: **0** +test_time_spring_type3_st_type3_post: DAYS: **1** +test_time_spring_type3_dt_type3_prev: DAYS: **0** +test_time_spring_type3_dt_type3_st: DAYS: **0** +test_time_spring_type3_dt_type3_dt: DAYS: **0** +test_time_spring_type3_dt_type3_post: DAYS: **1** +test_time_spring_type3_post_type3_prev: DAYS: **2** +test_time_spring_type3_post_type3_st: DAYS: **1** +test_time_spring_type3_post_type3_dt: DAYS: **1** +test_time_spring_type3_post_type3_post: DAYS: **0** +test_time_spring_type3_stsec_type3_dtsec: DAYS: **0** +test_time_spring_type3_dtsec_type3_stsec: DAYS: **0** diff --git a/ext/date/tests/DateTime_diff-absolute.phpt b/ext/date/tests/DateTime_diff-absolute.phpt new file mode 100644 index 0000000..5295b3a --- /dev/null +++ b/ext/date/tests/DateTime_diff-absolute.phpt @@ -0,0 +1,15 @@ +--TEST-- +DateTime::diff() -- absolute +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_absolute_7: DIFF: 2009-01-14 00:00:00 EST - 2009-01-07 00:00:00 EST = **P+0Y0M7DT0H0M0S** +test_absolute_negative_7: DIFF: 2009-01-07 00:00:00 EST - 2009-01-14 00:00:00 EST = **P+0Y0M7DT0H0M0S** diff --git a/ext/date/tests/DateTime_diff-dates.phpt b/ext/date/tests/DateTime_diff-dates.phpt new file mode 100644 index 0000000..71c5e1b --- /dev/null +++ b/ext/date/tests/DateTime_diff-dates.phpt @@ -0,0 +1,29 @@ +--TEST-- +DateTime::diff() -- dates +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test__7: DIFF: 2009-01-14 00:00:00 EST - 2009-01-07 00:00:00 EST = **P+0Y0M7DT0H0M0S** +test_years_positive__7_by_0_day: DIFF: 2007-02-07 00:00:00 EST - 2000-02-07 00:00:00 EST = **P+7Y0M0DT0H0M0S** +test_years_positive__7_by_1_day: DIFF: 2007-02-08 00:00:00 EST - 2000-02-07 00:00:00 EST = **P+7Y0M1DT0H0M0S** +test_years_positive__6_shy_1_day: DIFF: 2007-02-06 00:00:00 EST - 2000-02-07 00:00:00 EST = **P+6Y11M30DT0H0M0S** +test_years_positive__7_by_1_month: DIFF: 2007-03-07 00:00:00 EST - 2000-02-07 00:00:00 EST = **P+7Y1M0DT0H0M0S** +test_years_positive__6_shy_1_month: DIFF: 2007-01-07 00:00:00 EST - 2000-02-07 00:00:00 EST = **P+6Y11M0DT0H0M0S** +test_years_positive__7_by_1_month_split_newyear: DIFF: 2007-01-07 00:00:00 EST - 1999-12-07 00:00:00 EST = **P+7Y1M0DT0H0M0S** +test_years_positive__6_shy_1_month_split_newyear: DIFF: 2006-12-07 00:00:00 EST - 2000-01-07 00:00:00 EST = **P+6Y11M0DT0H0M0S** +test_negative__7: DIFF: 2009-01-07 00:00:00 EST - 2009-01-14 00:00:00 EST = **P-0Y0M7DT0H0M0S** +test_years_negative__7_by_0_day: DIFF: 2000-02-07 00:00:00 EST - 2007-02-07 00:00:00 EST = **P-7Y0M0DT0H0M0S** +test_years_negative__7_by_1_day: DIFF: 2000-02-07 00:00:00 EST - 2007-02-08 00:00:00 EST = **P-7Y0M1DT0H0M0S** +test_years_negative__6_shy_1_day: DIFF: 2000-02-07 00:00:00 EST - 2007-02-06 00:00:00 EST = **P-6Y11M28DT0H0M0S** +test_years_negative__7_by_1_month: DIFF: 2000-02-07 00:00:00 EST - 2007-03-07 00:00:00 EST = **P-7Y1M0DT0H0M0S** +test_years_negative__6_shy_1_month: DIFF: 2000-02-07 00:00:00 EST - 2007-01-07 00:00:00 EST = **P-6Y11M0DT0H0M0S** +test_years_negative__7_by_1_month_split_newyear: DIFF: 1999-12-07 00:00:00 EST - 2007-01-07 00:00:00 EST = **P-7Y1M0DT0H0M0S** +test_years_negative__6_shy_1_month_split_newyear: DIFF: 2000-01-07 00:00:00 EST - 2006-12-07 00:00:00 EST = **P-6Y11M0DT0H0M0S** diff --git a/ext/date/tests/DateTime_diff-fall-type2-type2.phpt b/ext/date/tests/DateTime_diff-fall-type2-type2.phpt new file mode 100644 index 0000000..d655637 --- /dev/null +++ b/ext/date/tests/DateTime_diff-fall-type2-type2.phpt @@ -0,0 +1,51 @@ +--TEST-- +DateTime::diff() -- fall type2 type2 +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_time_fall_type2_prev_type2_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-10-04 02:18:48 EDT = **P+0Y1M2DT16H19M40S** +test_time_fall_type2_prev_type2_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT5H31M52S** +test_time_fall_type2_prev_type2_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT6H34M5S** +test_time_fall_type2_prev_type2_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT7H36M16S** +test_time_fall_type2_prev_type2_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT9H38M27S** +test_time_fall_type2_prev_type2_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M2DT2H21M31S** +test_time_fall_type2_dt_type2_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 00:10:20 EDT = **P-0Y0M0DT5H31M52S** +test_time_fall_type2_dt_type2_dt: DIFF: 2010-11-07 00:15:35 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT0H5M15S** +test_time_fall_type2_dt_type2_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT1H2M13S** +test_time_fall_type2_dt_type2_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT2H4M24S** +test_time_fall_type2_dt_type2_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT4H6M35S** +test_time_fall_type2_dt_type2_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M1DT20H49M39S** +test_time_fall_type2_redodt_type2_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT6H34M5S** +test_time_fall_type2_redodt_type2_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT1H2M13S** +test_time_fall_type2_redodt_type2_redodt: DIFF: 2010-11-07 01:15:35 EDT - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT0H3M2S** +test_time_fall_type2_redodt_type2_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT1H2M11S** +test_time_fall_type2_redodt_type2_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT3H4M22S** +test_time_fall_type2_redodt_type2_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M1DT19H47M26S** +test_time_fall_type2_redost_type2_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT7H36M16S** +test_time_fall_type2_redost_type2_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT2H4M24S** +test_time_fall_type2_redost_type2_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT1H2M11S** +test_time_fall_type2_redost_type2_redost: DIFF: 2010-11-07 01:16:54 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT0H2M10S** +test_time_fall_type2_redost_type2_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT2H2M11S** +test_time_fall_type2_redost_type2_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 01:14:44 EST = **P+0Y0M1DT18H45M15S** +test_time_fall_type2_st_type2_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT9H38M27S** +test_time_fall_type2_st_type2_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT4H6M35S** +test_time_fall_type2_st_type2_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT3H4M22S** +test_time_fall_type2_st_type2_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-07 03:16:55 EST = **P-0Y0M0DT2H2M11S** +test_time_fall_type2_st_type2_st: DIFF: 2010-11-07 05:19:56 EST - 2010-11-07 03:16:55 EST = **P+0Y0M0DT2H3M1S** +test_time_fall_type2_st_type2_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 03:16:55 EST = **P+0Y0M1DT16H43M4S** +test_time_fall_type2_post_type2_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M2DT2H21M31S** +test_time_fall_type2_post_type2_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT20H49M39S** +test_time_fall_type2_post_type2_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT19H47M26S** +test_time_fall_type2_post_type2_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT18H45M15S** +test_time_fall_type2_post_type2_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT16H43M4S** +test_time_fall_type2_post_type2_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-08 18:57:55 EST = **P+0Y0M0DT1H2M4S** +test_time_fall_type2_dtsec_type2_stsec: DIFF: 2010-11-07 01:00:00 EST - 2010-11-07 01:59:59 EDT = **P+0Y0M0DT0H0M1S** +test_time_fall_type2_stsec_type2_dtsec: DIFF: 2010-11-07 01:59:59 EDT - 2010-11-07 01:00:00 EST = **P-0Y0M0DT0H0M1S** diff --git a/ext/date/tests/DateTime_diff-fall-type2-type3.phpt b/ext/date/tests/DateTime_diff-fall-type2-type3.phpt new file mode 100644 index 0000000..ec790f0 --- /dev/null +++ b/ext/date/tests/DateTime_diff-fall-type2-type3.phpt @@ -0,0 +1,53 @@ +--TEST-- +DateTime::diff() -- fall type2 type3 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_fall_type2_prev_type3_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-10-04 02:18:48 EDT = **P+0Y1M2DT16H19M40S** +test_time_fall_type2_prev_type3_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT5H31M52S** +test_time_fall_type2_prev_type3_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT6H34M5S** +test_time_fall_type2_prev_type3_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT7H36M16S** +test_time_fall_type2_prev_type3_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT9H38M27S** +test_time_fall_type2_prev_type3_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M2DT1H21M31S** +test_time_fall_type2_dt_type3_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 00:10:20 EDT = **P-0Y0M0DT5H31M52S** +test_time_fall_type2_dt_type3_dt: DIFF: 2010-11-07 00:15:35 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT0H5M15S** +test_time_fall_type2_dt_type3_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT1H2M13S** +test_time_fall_type2_dt_type3_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT2H4M24S** +test_time_fall_type2_dt_type3_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT4H6M35S** +test_time_fall_type2_dt_type3_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M1DT20H49M39S** +test_time_fall_type2_redodt_type3_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT6H34M5S** +test_time_fall_type2_redodt_type3_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT1H2M13S** +test_time_fall_type2_redodt_type3_redodt: DIFF: 2010-11-07 01:15:35 EDT - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT0H3M2S** +test_time_fall_type2_redodt_type3_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT1H2M11S** +test_time_fall_type2_redodt_type3_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT3H4M22S** +test_time_fall_type2_redodt_type3_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M1DT19H47M26S** +test_time_fall_type2_redost_type3_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT7H36M16S** +test_time_fall_type2_redost_type3_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT2H4M24S** +test_time_fall_type2_redost_type3_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT1H2M11S** +test_time_fall_type2_redost_type3_redost: DIFF: 2010-11-07 01:16:54 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT0H2M10S** +test_time_fall_type2_redost_type3_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT2H2M11S** +test_time_fall_type2_redost_type3_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 01:14:44 EST = **P+0Y0M1DT18H45M15S** +test_time_fall_type2_st_type3_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT9H38M27S** +test_time_fall_type2_st_type3_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT4H6M35S** +test_time_fall_type2_st_type3_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT3H4M22S** +test_time_fall_type2_st_type3_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-07 03:16:55 EST = **P-0Y0M0DT2H2M11S** +test_time_fall_type2_st_type3_st: DIFF: 2010-11-07 05:19:56 EST - 2010-11-07 03:16:55 EST = **P+0Y0M0DT2H3M1S** +test_time_fall_type2_st_type3_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 03:16:55 EST = **P+0Y0M1DT16H43M4S** +test_time_fall_type2_post_type3_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M2DT1H21M31S** +test_time_fall_type2_post_type3_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT20H49M39S** +test_time_fall_type2_post_type3_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT19H47M26S** +test_time_fall_type2_post_type3_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT18H45M15S** +test_time_fall_type2_post_type3_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT16H43M4S** +test_time_fall_type2_post_type3_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-08 18:57:55 EST = **P+0Y0M0DT1H2M4S** +test_time_fall_type2_dtsec_type3_stsec: DIFF: 2010-11-07 01:00:00 EST - 2010-11-07 01:59:59 EDT = **P+0Y0M0DT0H0M1S** +test_time_fall_type2_stsec_type3_dtsec: DIFF: 2010-11-07 01:59:59 EDT - 2010-11-07 01:00:00 EST = **P-0Y0M0DT0H0M1S** diff --git a/ext/date/tests/DateTime_diff-fall-type3-type2.phpt b/ext/date/tests/DateTime_diff-fall-type3-type2.phpt new file mode 100644 index 0000000..c9f268f --- /dev/null +++ b/ext/date/tests/DateTime_diff-fall-type3-type2.phpt @@ -0,0 +1,53 @@ +--TEST-- +DateTime::diff() -- fall type3 type2 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_fall_type3_prev_type2_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-10-04 02:18:48 EDT = **P+0Y1M2DT16H19M40S** +test_time_fall_type3_prev_type2_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT5H31M52S** +test_time_fall_type3_prev_type2_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT6H34M5S** +test_time_fall_type3_prev_type2_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT7H36M16S** +test_time_fall_type3_prev_type2_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT9H38M27S** +test_time_fall_type3_prev_type2_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M2DT1H21M31S** +test_time_fall_type3_dt_type2_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 00:10:20 EDT = **P-0Y0M0DT5H31M52S** +test_time_fall_type3_dt_type2_dt: DIFF: 2010-11-07 00:15:35 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT0H5M15S** +test_time_fall_type3_dt_type2_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT1H2M13S** +test_time_fall_type3_dt_type2_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT2H4M24S** +test_time_fall_type3_dt_type2_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT4H6M35S** +test_time_fall_type3_dt_type2_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M1DT20H49M39S** +test_time_fall_type3_redodt_type2_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT6H34M5S** +test_time_fall_type3_redodt_type2_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT1H2M13S** +test_time_fall_type3_redodt_type2_redodt: DIFF: 2010-11-07 01:15:35 EDT - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT0H3M2S** +test_time_fall_type3_redodt_type2_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT1H2M11S** +test_time_fall_type3_redodt_type2_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT3H4M22S** +test_time_fall_type3_redodt_type2_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M1DT19H47M26S** +test_time_fall_type3_redost_type2_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT7H36M16S** +test_time_fall_type3_redost_type2_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT2H4M24S** +test_time_fall_type3_redost_type2_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT1H2M11S** +test_time_fall_type3_redost_type2_redost: DIFF: 2010-11-07 01:16:54 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT0H2M10S** +test_time_fall_type3_redost_type2_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT2H2M11S** +test_time_fall_type3_redost_type2_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 01:14:44 EST = **P+0Y0M1DT18H45M15S** +test_time_fall_type3_st_type2_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT9H38M27S** +test_time_fall_type3_st_type2_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT4H6M35S** +test_time_fall_type3_st_type2_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT3H4M22S** +test_time_fall_type3_st_type2_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-07 03:16:55 EST = **P-0Y0M0DT2H2M11S** +test_time_fall_type3_st_type2_st: DIFF: 2010-11-07 05:19:56 EST - 2010-11-07 03:16:55 EST = **P+0Y0M0DT2H3M1S** +test_time_fall_type3_st_type2_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 03:16:55 EST = **P+0Y0M1DT16H43M4S** +test_time_fall_type3_post_type2_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M2DT1H21M31S** +test_time_fall_type3_post_type2_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT20H49M39S** +test_time_fall_type3_post_type2_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT19H47M26S** +test_time_fall_type3_post_type2_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT18H45M15S** +test_time_fall_type3_post_type2_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT16H43M4S** +test_time_fall_type3_post_type2_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-08 18:57:55 EST = **P+0Y0M0DT1H2M4S** +test_time_fall_type3_dtsec_type2_stsec: DIFF: 2010-11-07 01:00:00 EST - 2010-11-07 01:59:59 EDT = **P+0Y0M0DT0H0M1S** +test_time_fall_type3_stsec_type2_dtsec: DIFF: 2010-11-07 01:59:59 EDT - 2010-11-07 01:00:00 EST = **P-0Y0M0DT0H0M1S** diff --git a/ext/date/tests/DateTime_diff-fall-type3-type3.phpt b/ext/date/tests/DateTime_diff-fall-type3-type3.phpt new file mode 100644 index 0000000..bf25fef --- /dev/null +++ b/ext/date/tests/DateTime_diff-fall-type3-type3.phpt @@ -0,0 +1,53 @@ +--TEST-- +DateTime::diff() -- fall type3 type3 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_fall_type3_prev_type3_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-10-04 02:18:48 EDT = **P+0Y1M2DT16H19M40S** +test_time_fall_type3_prev_type3_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT5H31M52S** +test_time_fall_type3_prev_type3_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT6H34M5S** +test_time_fall_type3_prev_type3_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT7H36M16S** +test_time_fall_type3_prev_type3_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT9H38M27S** +test_time_fall_type3_prev_type3_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M2DT1H21M31S** +test_time_fall_type3_dt_type3_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 00:10:20 EDT = **P-0Y0M0DT5H31M52S** +test_time_fall_type3_dt_type3_dt: DIFF: 2010-11-07 00:15:35 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT0H5M15S** +test_time_fall_type3_dt_type3_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT1H2M13S** +test_time_fall_type3_dt_type3_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT2H4M24S** +test_time_fall_type3_dt_type3_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT4H6M35S** +test_time_fall_type3_dt_type3_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M1DT20H49M39S** +test_time_fall_type3_redodt_type3_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT6H34M5S** +test_time_fall_type3_redodt_type3_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT1H2M13S** +test_time_fall_type3_redodt_type3_redodt: DIFF: 2010-11-07 01:15:35 EDT - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT0H3M2S** +test_time_fall_type3_redodt_type3_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT1H2M11S** +test_time_fall_type3_redodt_type3_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT3H4M22S** +test_time_fall_type3_redodt_type3_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M1DT19H47M26S** +test_time_fall_type3_redost_type3_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT7H36M16S** +test_time_fall_type3_redost_type3_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT2H4M24S** +test_time_fall_type3_redost_type3_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT1H2M11S** +test_time_fall_type3_redost_type3_redost: DIFF: 2010-11-07 01:16:54 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT0H2M10S** +test_time_fall_type3_redost_type3_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT2H2M11S** +test_time_fall_type3_redost_type3_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 01:14:44 EST = **P+0Y0M1DT18H45M15S** +test_time_fall_type3_st_type3_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT9H38M27S** +test_time_fall_type3_st_type3_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT4H6M35S** +test_time_fall_type3_st_type3_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT3H4M22S** +test_time_fall_type3_st_type3_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-07 03:16:55 EST = **P-0Y0M0DT2H2M11S** +test_time_fall_type3_st_type3_st: DIFF: 2010-11-07 05:19:56 EST - 2010-11-07 03:16:55 EST = **P+0Y0M0DT2H3M1S** +test_time_fall_type3_st_type3_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-07 03:16:55 EST = **P+0Y0M1DT16H43M4S** +test_time_fall_type3_post_type3_prev: DIFF: 2010-11-06 18:38:28 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M2DT1H21M31S** +test_time_fall_type3_post_type3_dt: DIFF: 2010-11-07 00:10:20 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT20H49M39S** +test_time_fall_type3_post_type3_redodt: DIFF: 2010-11-07 01:12:33 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT19H47M26S** +test_time_fall_type3_post_type3_redost: DIFF: 2010-11-07 01:14:44 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT18H45M15S** +test_time_fall_type3_post_type3_st: DIFF: 2010-11-07 03:16:55 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT16H43M4S** +test_time_fall_type3_post_type3_post: DIFF: 2010-11-08 19:59:59 EST - 2010-11-08 18:57:55 EST = **P+0Y0M0DT1H2M4S** +test_time_fall_type3_dtsec_type3_stsec: DIFF: 2010-11-07 01:00:00 EST - 2010-11-07 01:59:59 EDT = **P+0Y0M0DT0H0M1S** +test_time_fall_type3_stsec_type3_dtsec: DIFF: 2010-11-07 01:59:59 EDT - 2010-11-07 01:00:00 EST = **P-0Y0M0DT0H0M1S** diff --git a/ext/date/tests/DateTime_diff-february.phpt b/ext/date/tests/DateTime_diff-february.phpt new file mode 100644 index 0000000..7705b12 --- /dev/null +++ b/ext/date/tests/DateTime_diff-february.phpt @@ -0,0 +1,77 @@ +--TEST-- +DateTime::diff() -- february +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_bug_49081__1: DIFF: 2010-03-31 00:00:00 EDT - 2010-03-01 00:00:00 EST = **P+0Y0M30DT0H0M0S** +test_bug_49081__2: DIFF: 2010-04-01 00:00:00 EDT - 2010-03-01 00:00:00 EST = **P+0Y1M0DT0H0M0S** +test_bug_49081__3: DIFF: 2010-04-01 00:00:00 EDT - 2010-03-31 00:00:00 EDT = **P+0Y0M1DT0H0M0S** +test_bug_49081__4: DIFF: 2010-04-29 00:00:00 EDT - 2010-03-31 00:00:00 EDT = **P+0Y0M29DT0H0M0S** +test_bug_49081__5: DIFF: 2010-04-30 00:00:00 EDT - 2010-03-31 00:00:00 EDT = **P+0Y0M30DT0H0M0S** +test_bug_49081__6: DIFF: 2010-04-30 00:00:00 EDT - 2010-03-30 00:00:00 EDT = **P+0Y1M0DT0H0M0S** +test_bug_49081__7: DIFF: 2010-04-30 00:00:00 EDT - 2010-03-29 00:00:00 EDT = **P+0Y1M1DT0H0M0S** +test_bug_49081__8: DIFF: 2010-01-29 00:00:00 EST - 2010-01-01 00:00:00 EST = **P+0Y0M28DT0H0M0S** +test_bug_49081__9: DIFF: 2010-01-30 00:00:00 EST - 2010-01-01 00:00:00 EST = **P+0Y0M29DT0H0M0S** +test_bug_49081__10: DIFF: 2010-01-31 00:00:00 EST - 2010-01-01 00:00:00 EST = **P+0Y0M30DT0H0M0S** +test_bug_49081__11: DIFF: 2010-02-01 00:00:00 EST - 2010-01-01 00:00:00 EST = **P+0Y1M0DT0H0M0S** +test_bug_49081__12: DIFF: 2010-02-01 00:00:00 EST - 2010-01-31 00:00:00 EST = **P+0Y0M1DT0H0M0S** +test_bug_49081__13: DIFF: 2010-02-27 00:00:00 EST - 2010-01-31 00:00:00 EST = **P+0Y0M27DT0H0M0S** +test_bug_49081__14: DIFF: 2010-02-28 00:00:00 EST - 2010-01-31 00:00:00 EST = **P+0Y0M28DT0H0M0S** +test_bug_49081__15: DIFF: 2010-02-28 00:00:00 EST - 2010-01-30 00:00:00 EST = **P+0Y0M29DT0H0M0S** +test_bug_49081__16: DIFF: 2010-02-28 00:00:00 EST - 2010-01-29 00:00:00 EST = **P+0Y0M30DT0H0M0S** +test_bug_49081__17: DIFF: 2010-02-28 00:00:00 EST - 2010-01-28 00:00:00 EST = **P+0Y1M0DT0H0M0S** +test_bug_49081__18: DIFF: 2010-02-28 00:00:00 EST - 2010-01-27 00:00:00 EST = **P+0Y1M1DT0H0M0S** +test_bug_49081__19: DIFF: 2010-03-01 00:00:00 EST - 2010-01-01 00:00:00 EST = **P+0Y2M0DT0H0M0S** +test_bug_49081__20: DIFF: 2010-03-01 00:00:00 EST - 2010-01-31 00:00:00 EST = **P+0Y0M29DT0H0M0S** +test_bug_49081__21: DIFF: 2010-03-27 00:00:00 EDT - 2010-01-31 00:00:00 EST = **P+0Y1M24DT0H0M0S** +test_bug_49081__22: DIFF: 2010-03-28 00:00:00 EDT - 2010-01-31 00:00:00 EST = **P+0Y1M25DT0H0M0S** +test_bug_49081__23: DIFF: 2010-03-29 00:00:00 EDT - 2010-01-31 00:00:00 EST = **P+0Y1M26DT0H0M0S** +test_bug_49081__24: DIFF: 2010-03-30 00:00:00 EDT - 2010-01-31 00:00:00 EST = **P+0Y1M27DT0H0M0S** +test_bug_49081__25: DIFF: 2010-03-31 00:00:00 EDT - 2010-01-31 00:00:00 EST = **P+0Y2M0DT0H0M0S** +test_bug_49081__26: DIFF: 2010-03-31 00:00:00 EDT - 2010-01-30 00:00:00 EST = **P+0Y2M1DT0H0M0S** +test_bug_49081__27: DIFF: 2009-01-31 00:00:00 EST - 2009-01-01 00:00:00 EST = **P+0Y0M30DT0H0M0S** +test_bug_49081__28: DIFF: 2010-03-27 00:00:00 EDT - 2010-02-28 00:00:00 EST = **P+0Y0M27DT0H0M0S** +test_bug_49081__29: DIFF: 2010-03-28 00:00:00 EDT - 2010-02-28 00:00:00 EST = **P+0Y1M0DT0H0M0S** +test_bug_49081__30: DIFF: 2010-03-29 00:00:00 EDT - 2010-02-28 00:00:00 EST = **P+0Y1M1DT0H0M0S** +test_bug_49081__31: DIFF: 2010-03-27 00:00:00 EDT - 2010-02-27 00:00:00 EST = **P+0Y1M0DT0H0M0S** +test_bug_49081__32: DIFF: 2010-03-27 00:00:00 EDT - 2010-02-26 00:00:00 EST = **P+0Y1M1DT0H0M0S** +test_bug_49081_negative__1: DIFF: 2010-03-01 00:00:00 EST - 2010-03-31 00:00:00 EDT = **P-0Y0M30DT0H0M0S** +test_bug_49081_negative__2: DIFF: 2010-03-01 00:00:00 EST - 2010-04-01 00:00:00 EDT = **P-0Y1M0DT0H0M0S** +test_bug_49081_negative__3: DIFF: 2010-03-31 00:00:00 EDT - 2010-04-01 00:00:00 EDT = **P-0Y0M1DT0H0M0S** +test_bug_49081_negative__4: DIFF: 2010-03-31 00:00:00 EDT - 2010-04-29 00:00:00 EDT = **P-0Y0M29DT0H0M0S** +test_bug_49081_negative__5: DIFF: 2010-03-31 00:00:00 EDT - 2010-04-30 00:00:00 EDT = **P-0Y0M30DT0H0M0S** +test_bug_49081_negative__6: DIFF: 2010-03-30 00:00:00 EDT - 2010-04-30 00:00:00 EDT = **P-0Y1M0DT0H0M0S** +test_bug_49081_negative__7: DIFF: 2010-03-29 00:00:00 EDT - 2010-04-30 00:00:00 EDT = **P-0Y1M1DT0H0M0S** +test_bug_49081_negative__8: DIFF: 2010-01-01 00:00:00 EST - 2010-01-29 00:00:00 EST = **P-0Y0M28DT0H0M0S** +test_bug_49081_negative__9: DIFF: 2010-01-01 00:00:00 EST - 2010-01-30 00:00:00 EST = **P-0Y0M29DT0H0M0S** +test_bug_49081_negative__10: DIFF: 2010-01-01 00:00:00 EST - 2010-01-31 00:00:00 EST = **P-0Y0M30DT0H0M0S** +test_bug_49081_negative__11: DIFF: 2010-01-01 00:00:00 EST - 2010-02-01 00:00:00 EST = **P-0Y1M0DT0H0M0S** +test_bug_49081_negative__12: DIFF: 2010-01-31 00:00:00 EST - 2010-02-01 00:00:00 EST = **P-0Y0M1DT0H0M0S** +test_bug_49081_negative__13: DIFF: 2010-01-31 00:00:00 EST - 2010-02-27 00:00:00 EST = **P-0Y0M27DT0H0M0S** +test_bug_49081_negative__14: DIFF: 2010-01-31 00:00:00 EST - 2010-02-28 00:00:00 EST = **P-0Y0M28DT0H0M0S** +test_bug_49081_negative__15: DIFF: 2010-01-30 00:00:00 EST - 2010-02-28 00:00:00 EST = **P-0Y0M29DT0H0M0S** +test_bug_49081_negative__16: DIFF: 2010-01-29 00:00:00 EST - 2010-02-28 00:00:00 EST = **P-0Y0M30DT0H0M0S** +test_bug_49081_negative__17: DIFF: 2010-01-28 00:00:00 EST - 2010-02-28 00:00:00 EST = **P-0Y1M0DT0H0M0S** +test_bug_49081_negative__18: DIFF: 2010-01-27 00:00:00 EST - 2010-02-28 00:00:00 EST = **P-0Y1M1DT0H0M0S** +test_bug_49081_negative__19: DIFF: 2010-01-01 00:00:00 EST - 2010-03-01 00:00:00 EST = **P-0Y2M0DT0H0M0S** +test_bug_49081_negative__20: DIFF: 2010-01-31 00:00:00 EST - 2010-03-01 00:00:00 EST = **P-0Y1M1DT0H0M0S** +test_bug_49081_negative__21: DIFF: 2010-01-31 00:00:00 EST - 2010-03-27 00:00:00 EDT = **P-0Y1M27DT0H0M0S** +test_bug_49081_negative__22: DIFF: 2010-01-31 00:00:00 EST - 2010-03-28 00:00:00 EDT = **P-0Y1M28DT0H0M0S** +test_bug_49081_negative__23: DIFF: 2010-01-31 00:00:00 EST - 2010-03-29 00:00:00 EDT = **P-0Y1M29DT0H0M0S** +test_bug_49081_negative__24: DIFF: 2010-01-31 00:00:00 EST - 2010-03-30 00:00:00 EDT = **P-0Y1M30DT0H0M0S** +test_bug_49081_negative__25: DIFF: 2010-01-31 00:00:00 EST - 2010-03-31 00:00:00 EDT = **P-0Y2M0DT0H0M0S** +test_bug_49081_negative__26: DIFF: 2010-01-30 00:00:00 EST - 2010-03-31 00:00:00 EDT = **P-0Y2M1DT0H0M0S** +test_bug_49081_negative__27: DIFF: 2009-01-01 00:00:00 EST - 2009-01-31 00:00:00 EST = **P-0Y0M30DT0H0M0S** +test_bug_49081_negative__28: DIFF: 2010-02-28 00:00:00 EST - 2010-03-27 00:00:00 EDT = **P-0Y0M27DT0H0M0S** +test_bug_49081_negative__29: DIFF: 2010-02-28 00:00:00 EST - 2010-03-28 00:00:00 EDT = **P-0Y1M0DT0H0M0S** +test_bug_49081_negative__30: DIFF: 2010-02-28 00:00:00 EST - 2010-03-29 00:00:00 EDT = **P-0Y1M1DT0H0M0S** +test_bug_49081_negative__31: DIFF: 2010-02-27 00:00:00 EST - 2010-03-27 00:00:00 EDT = **P-0Y1M0DT0H0M0S** +test_bug_49081_negative__32: DIFF: 2010-02-26 00:00:00 EST - 2010-03-27 00:00:00 EDT = **P-0Y1M1DT0H0M0S** diff --git a/ext/date/tests/DateTime_diff-massive.phpt b/ext/date/tests/DateTime_diff-massive.phpt new file mode 100644 index 0000000..2199f84 --- /dev/null +++ b/ext/date/tests/DateTime_diff-massive.phpt @@ -0,0 +1,15 @@ +--TEST-- +DateTime::diff() -- massive +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_massive_positive: DIFF: 333333-01-01 16:18:02 EST - -333333-01-01 16:18:02 EST = **P+666666Y0M0DT0H0M0S** +test_massive_negative: DIFF: -333333-01-01 16:18:02 EST - 333333-01-01 16:18:02 EST = **P-666666Y0M0DT0H0M0S** diff --git a/ext/date/tests/DateTime_diff-spring-type2-type2.phpt b/ext/date/tests/DateTime_diff-spring-type2-type2.phpt new file mode 100644 index 0000000..730cfd1 --- /dev/null +++ b/ext/date/tests/DateTime_diff-spring-type2-type2.phpt @@ -0,0 +1,31 @@ +--TEST-- +DateTime::diff() -- spring type2 type2 +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_time_spring_type2_prev_type2_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-02-11 02:18:48 EST = **P+0Y1M2DT16H19M40S** +test_time_spring_type2_prev_type2_st: DIFF: 2010-03-14 00:10:20 EST - 2010-03-13 18:38:28 EST = **P+0Y0M0DT5H31M52S** +test_time_spring_type2_prev_type2_dt: DIFF: 2010-03-14 03:16:55 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M0DT7H38M27S** +test_time_spring_type2_prev_type2_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M2DT0H21M31S** +test_time_spring_type2_st_type2_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-03-14 00:10:20 EST = **P-0Y0M0DT5H31M52S** +test_time_spring_type2_st_type2_st: DIFF: 2010-03-14 00:15:35 EST - 2010-03-14 00:10:20 EST = **P+0Y0M0DT0H5M15S** +test_time_spring_type2_st_type2_dt: DIFF: 2010-03-14 03:16:55 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M0DT2H6M35S** +test_time_spring_type2_st_type2_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M1DT18H49M39S** +test_time_spring_type2_dt_type2_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT7H38M27S** +test_time_spring_type2_dt_type2_st: DIFF: 2010-03-14 00:10:20 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT2H6M35S** +test_time_spring_type2_dt_type2_dt: DIFF: 2010-03-14 05:19:56 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M0DT2H3M1S** +test_time_spring_type2_dt_type2_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M1DT16H43M4S** +test_time_spring_type2_post_type2_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M2DT0H21M31S** +test_time_spring_type2_post_type2_st: DIFF: 2010-03-14 00:10:20 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT18H49M39S** +test_time_spring_type2_post_type2_dt: DIFF: 2010-03-14 03:16:55 EDT - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT16H43M4S** +test_time_spring_type2_post_type2_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-15 18:57:55 EDT = **P+0Y0M0DT1H2M4S** +test_time_spring_type2_stsec_type2_dtsec: DIFF: 2010-03-14 03:00:00 EDT - 2010-03-14 01:59:59 EST = **P+0Y0M0DT0H0M1S** +test_time_spring_type2_dtsec_type2_stsec: DIFF: 2010-03-14 01:59:59 EST - 2010-03-14 03:00:00 EDT = **P-0Y0M0DT0H0M1S** diff --git a/ext/date/tests/DateTime_diff-spring-type2-type3.phpt b/ext/date/tests/DateTime_diff-spring-type2-type3.phpt new file mode 100644 index 0000000..98dcf79 --- /dev/null +++ b/ext/date/tests/DateTime_diff-spring-type2-type3.phpt @@ -0,0 +1,33 @@ +--TEST-- +DateTime::diff() -- spring type2 type3 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_spring_type2_prev_type3_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-02-11 02:18:48 EST = **P+0Y1M2DT16H19M40S** +test_time_spring_type2_prev_type3_st: DIFF: 2010-03-14 00:10:20 EST - 2010-03-13 18:38:28 EST = **P+0Y0M0DT5H31M52S** +test_time_spring_type2_prev_type3_dt: DIFF: 2010-03-14 03:16:55 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M0DT7H38M27S** +test_time_spring_type2_prev_type3_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M2DT1H21M31S** +test_time_spring_type2_st_type3_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-03-14 00:10:20 EST = **P-0Y0M0DT5H31M52S** +test_time_spring_type2_st_type3_st: DIFF: 2010-03-14 00:15:35 EST - 2010-03-14 00:10:20 EST = **P+0Y0M0DT0H5M15S** +test_time_spring_type2_st_type3_dt: DIFF: 2010-03-14 03:16:55 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M0DT2H6M35S** +test_time_spring_type2_st_type3_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M1DT18H49M39S** +test_time_spring_type2_dt_type3_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT7H38M27S** +test_time_spring_type2_dt_type3_st: DIFF: 2010-03-14 00:10:20 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT2H6M35S** +test_time_spring_type2_dt_type3_dt: DIFF: 2010-03-14 05:19:56 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M0DT2H3M1S** +test_time_spring_type2_dt_type3_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M1DT16H43M4S** +test_time_spring_type2_post_type3_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M2DT1H21M31S** +test_time_spring_type2_post_type3_st: DIFF: 2010-03-14 00:10:20 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT18H49M39S** +test_time_spring_type2_post_type3_dt: DIFF: 2010-03-14 03:16:55 EDT - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT16H43M4S** +test_time_spring_type2_post_type3_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-15 18:57:55 EDT = **P+0Y0M0DT1H2M4S** +test_time_spring_type2_stsec_type3_dtsec: DIFF: 2010-03-15 03:00:00 EDT - 2010-03-13 01:59:59 EST = **P+0Y0M0DT0H0M1S** +test_time_spring_type2_dtsec_type3_stsec: DIFF: 2010-03-15 01:59:59 EST - 2010-03-15 03:00:00 EDT = **P-0Y0M0DT0H0M1S** diff --git a/ext/date/tests/DateTime_diff-spring-type3-type2.phpt b/ext/date/tests/DateTime_diff-spring-type3-type2.phpt new file mode 100644 index 0000000..5a59f78 --- /dev/null +++ b/ext/date/tests/DateTime_diff-spring-type3-type2.phpt @@ -0,0 +1,33 @@ +--TEST-- +DateTime::diff() -- spring type3 type2 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_spring_type3_prev_type2_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-02-11 02:18:48 EST = **P+0Y1M2DT16H19M40S** +test_time_spring_type3_prev_type2_st: DIFF: 2010-03-14 00:10:20 EST - 2010-03-13 18:38:28 EST = **P+0Y0M0DT5H31M52S** +test_time_spring_type3_prev_type2_dt: DIFF: 2010-03-14 03:16:55 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M0DT7H38M27S** +test_time_spring_type3_prev_type2_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M2DT1H21M31S** +test_time_spring_type3_st_type2_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-03-14 00:10:20 EST = **P-0Y0M0DT5H31M52S** +test_time_spring_type3_st_type2_st: DIFF: 2010-03-14 00:15:35 EST - 2010-03-14 00:10:20 EST = **P+0Y0M0DT0H5M15S** +test_time_spring_type3_st_type2_dt: DIFF: 2010-03-14 03:16:55 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M0DT2H6M35S** +test_time_spring_type3_st_type2_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M1DT18H49M39S** +test_time_spring_type3_dt_type2_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT7H38M27S** +test_time_spring_type3_dt_type2_st: DIFF: 2010-03-14 00:10:20 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT2H6M35S** +test_time_spring_type3_dt_type2_dt: DIFF: 2010-03-14 05:19:56 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M0DT2H3M1S** +test_time_spring_type3_dt_type2_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M1DT16H43M4S** +test_time_spring_type3_post_type2_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M2DT1H21M31S** +test_time_spring_type3_post_type2_st: DIFF: 2010-03-14 00:10:20 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT18H49M39S** +test_time_spring_type3_post_type2_dt: DIFF: 2010-03-14 03:16:55 EDT - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT16H43M4S** +test_time_spring_type3_post_type2_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-15 18:57:55 EDT = **P+0Y0M0DT1H2M4S** +test_time_spring_type3_stsec_type2_dtsec: DIFF: 2010-03-15 03:00:00 EDT - 2010-03-13 01:59:59 EST = **P+0Y0M0DT0H0M1S** +test_time_spring_type3_dtsec_type2_stsec: DIFF: 2010-03-15 01:59:59 EST - 2010-03-15 03:00:00 EDT = **P-0Y0M0DT0H0M1S** diff --git a/ext/date/tests/DateTime_diff-spring-type3-type3.phpt b/ext/date/tests/DateTime_diff-spring-type3-type3.phpt new file mode 100644 index 0000000..926f299 --- /dev/null +++ b/ext/date/tests/DateTime_diff-spring-type3-type3.phpt @@ -0,0 +1,33 @@ +--TEST-- +DateTime::diff() -- spring type3 type3 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_spring_type3_prev_type3_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-02-11 02:18:48 EST = **P+0Y1M2DT16H19M40S** +test_time_spring_type3_prev_type3_st: DIFF: 2010-03-14 00:10:20 EST - 2010-03-13 18:38:28 EST = **P+0Y0M0DT5H31M52S** +test_time_spring_type3_prev_type3_dt: DIFF: 2010-03-14 03:16:55 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M0DT7H38M27S** +test_time_spring_type3_prev_type3_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M2DT1H21M31S** +test_time_spring_type3_st_type3_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-03-14 00:10:20 EST = **P-0Y0M0DT5H31M52S** +test_time_spring_type3_st_type3_st: DIFF: 2010-03-14 00:15:35 EST - 2010-03-14 00:10:20 EST = **P+0Y0M0DT0H5M15S** +test_time_spring_type3_st_type3_dt: DIFF: 2010-03-14 03:16:55 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M0DT2H6M35S** +test_time_spring_type3_st_type3_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M1DT18H49M39S** +test_time_spring_type3_dt_type3_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT7H38M27S** +test_time_spring_type3_dt_type3_st: DIFF: 2010-03-14 00:10:20 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT2H6M35S** +test_time_spring_type3_dt_type3_dt: DIFF: 2010-03-14 05:19:56 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M0DT2H3M1S** +test_time_spring_type3_dt_type3_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M1DT16H43M4S** +test_time_spring_type3_post_type3_prev: DIFF: 2010-03-13 18:38:28 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M2DT1H21M31S** +test_time_spring_type3_post_type3_st: DIFF: 2010-03-14 00:10:20 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT18H49M39S** +test_time_spring_type3_post_type3_dt: DIFF: 2010-03-14 03:16:55 EDT - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT16H43M4S** +test_time_spring_type3_post_type3_post: DIFF: 2010-03-15 19:59:59 EDT - 2010-03-15 18:57:55 EDT = **P+0Y0M0DT1H2M4S** +test_time_spring_type3_stsec_type2_dtsec: DIFF: 2010-03-15 03:00:00 EDT - 2010-03-13 01:59:59 EST = **P+0Y0M0DT0H0M1S** +test_time_spring_type3_dtsec_type2_stsec: DIFF: 2010-03-15 01:59:59 EST - 2010-03-15 03:00:00 EDT = **P-0Y0M0DT0H0M1S** diff --git a/ext/date/tests/DateTime_extends_basic1.phpt b/ext/date/tests/DateTime_extends_basic1.phpt new file mode 100644 index 0000000..8fe53d6 --- /dev/null +++ b/ext/date/tests/DateTime_extends_basic1.phpt @@ -0,0 +1,49 @@ +--TEST-- +Test DateTime class inheritance +--FILE-- +setDate(1963, 7, 2); +$d->setTime(10, 45, 30); + +echo "\n-- Invoke __toString again --\n"; +echo $d . "\n"; + +?> +===DONE=== +--EXPECTF-- +*** Testing basic DateTime inheritance() *** + +-- Create an instance of DateTimeExt -- + +-- Invoke __toString -- +May 1, 1967, 10:30:41 pm + + -- modify date and time -- + +-- Invoke __toString again -- +July 2, 1963, 10:45:30 am +===DONE=== diff --git a/ext/date/tests/DateTime_extends_basic2.phpt b/ext/date/tests/DateTime_extends_basic2.phpt new file mode 100644 index 0000000..a4bf4aa --- /dev/null +++ b/ext/date/tests/DateTime_extends_basic2.phpt @@ -0,0 +1,31 @@ +--TEST-- +Test DateTime class inheritance : with user space __construct magic method +--FILE-- +format("F j, Y, g:i:s a") . "\n"; + +?> +===DONE=== +--EXPECTF-- +*** Testing new DateTime() : with user space __construct magic method *** +May 1, 1967, 10:30:41 pm +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTime_extends_basic3.phpt b/ext/date/tests/DateTime_extends_basic3.phpt new file mode 100644 index 0000000..bee395a --- /dev/null +++ b/ext/date/tests/DateTime_extends_basic3.phpt @@ -0,0 +1,26 @@ +--TEST-- +Test DateTime class inheritance : with user space fromat() method +--FILE-- +format() . "\n"; + +?> +===DONE=== +--EXPECTF-- +*** Testing new DateTime() : with user format() method *** +May 1, 1967, 10:30:41 pm +===DONE=== diff --git a/ext/date/tests/DateTime_format_basic1.phpt b/ext/date/tests/DateTime_format_basic1.phpt new file mode 100644 index 0000000..b5bbecf --- /dev/null +++ b/ext/date/tests/DateTime_format_basic1.phpt @@ -0,0 +1,40 @@ +--TEST-- +Test DateTime::format() function : basic functionality +--FILE-- +format( "F j, Y, g:i a") ); +var_dump( $date->format( "m.d.y") ); +var_dump( $date->format( "j, n, Y") ); +var_dump( $date->format( "Ymd") ); +var_dump( $date->format( 'h-i-s, j-m-y, it is w Day') ); +var_dump( $date->format( '\i\t \i\s \t\h\e jS \d\a\y.') ); +var_dump( $date->format( "D M j G:i:s T Y") ); +var_dump( $date->format( 'H:m:s \m \i\s\ \m\o\n\t\h') ); +var_dump( $date->format( "H:i:s") ); + +?> +===DONE=== +--EXPECT-- +*** Testing DateTime::format() : basic functionality *** +string(23) "July 14, 2005, 10:30 pm" +string(8) "07.14.05" +string(11) "14, 7, 2005" +string(8) "20050714" +string(39) "10-30-41, 14-07-05, 3031 3041 4 Thupm05" +string(19) "it is the 14th day." +string(28) "Thu Jul 14 22:30:41 BST 2005" +string(19) "22:07:41 m is month" +string(8) "22:30:41" +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTime_format_basic2.phpt b/ext/date/tests/DateTime_format_basic2.phpt new file mode 100644 index 0000000..d7adaa5 --- /dev/null +++ b/ext/date/tests/DateTime_format_basic2.phpt @@ -0,0 +1,44 @@ +--TEST-- +Test date_format() function : basic functionality +--FILE-- +format( DateTime::ATOM) ) ; +var_dump( $date->format( DateTime::COOKIE) ) ; +var_dump( $date->format( DateTime::ISO8601) ) ; +var_dump( $date->format( DateTime::RFC822) ) ; +var_dump( $date->format( DateTime::RFC850) ) ; +var_dump( $date->format( DateTime::RFC1036) ) ; +var_dump( $date->format( DateTime::RFC1123) ) ; +var_dump( $date->format( DateTime:: RFC2822) ) ; +var_dump( $date->format( DateTime::RFC3339) ) ; +var_dump( $date->format( DateTime::RSS) ) ; +var_dump( $date->format( DateTime::W3C) ) ; + +?> +===DONE=== +--EXPECT-- +*** Testing date_format() : basic functionality - formatting coinstants *** +string(25) "2005-07-14T22:30:41+01:00" +string(32) "Thursday, 14-Jul-05 22:30:41 BST" +string(24) "2005-07-14T22:30:41+0100" +string(29) "Thu, 14 Jul 05 22:30:41 +0100" +string(32) "Thursday, 14-Jul-05 22:30:41 BST" +string(29) "Thu, 14 Jul 05 22:30:41 +0100" +string(31) "Thu, 14 Jul 2005 22:30:41 +0100" +string(31) "Thu, 14 Jul 2005 22:30:41 +0100" +string(25) "2005-07-14T22:30:41+01:00" +string(31) "Thu, 14 Jul 2005 22:30:41 +0100" +string(25) "2005-07-14T22:30:41+01:00" +===DONE=== diff --git a/ext/date/tests/DateTime_format_error.phpt b/ext/date/tests/DateTime_format_error.phpt new file mode 100644 index 0000000..db1be92 --- /dev/null +++ b/ext/date/tests/DateTime_format_error.phpt @@ -0,0 +1,41 @@ +--TEST-- +Test DateTime::format() function : error conditions +--FILE-- +format() ); + +echo "\n-- Testing date_date_formatcreate() function with more than expected no. of arguments --\n"; +$format = "F j, Y, g:i a"; +$extra_arg = 10; +var_dump( $date->format($format, $extra_arg) ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::format() : error conditions *** + +-- Testing date_date_formatcreate() function with zero arguments -- + +Warning: DateTime::format() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing date_date_formatcreate() function with more than expected no. of arguments -- + +Warning: DateTime::format() expects exactly 1 parameter, 2 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_format_variation1.phpt b/ext/date/tests/DateTime_format_variation1.phpt new file mode 100644 index 0000000..87a9922 --- /dev/null +++ b/ext/date/tests/DateTime_format_variation1.phpt @@ -0,0 +1,208 @@ +--TEST-- +Test DateTime::format() function : usage variation - Passing unexpected values to first argument $format. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = new DateTime("2005-07-14 22:30:41"); + +foreach($inputs as $variation =>$format) { + echo "\n-- $variation --\n"; + var_dump( $object->format($format) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::format() : usage variation - unexpected values to first argument $format*** + +-- int 0 -- +string(1) "0" + +-- int 1 -- +string(1) "1" + +-- int 12345 -- +string(5) "12345" + +-- int -12345 -- +string(6) "-12345" + +-- float 10.5 -- +string(4) "10.5" + +-- float -10.5 -- +string(5) "-10.5" + +-- float .5 -- +string(3) "0.5" + +-- empty array -- + +Warning: DateTime::format() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: DateTime::format() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: DateTime::format() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: DateTime::format() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +string(0) "" + +-- lowercase null -- +string(0) "" + +-- lowercase true -- +string(1) "1" + +-- lowercase false -- +string(0) "" + +-- uppercase TRUE -- +string(1) "1" + +-- uppercase FALSE -- +string(0) "" + +-- empty string DQ -- +string(0) "" + +-- empty string SQ -- +string(0) "" + +-- string DQ -- +string(40) "4131Thu, 14 Jul 2005 22:30:41 +010030710" + +-- string SQ -- +string(40) "4131Thu, 14 Jul 2005 22:30:41 +010030710" + +-- mixed case string -- +string(40) "41BSTThu, 14 Jul 2005 22:30:41 +01001722" + +-- heredoc -- +string(82) "10Europe/LondonThursdayThursday2005 42005Thu, 14 Jul 2005 22:30:41 +0100Thursday14" + +-- instance of classWithToString -- +string(66) "CThursdaypm4141 PM 2005b14Europe/London2005-07-14T22:30:41+01:0031" + +-- instance of classWithoutToString -- + +Warning: DateTime::format() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +-- undefined var -- +string(0) "" + +-- unset var -- +string(0) "" + +-- resource -- + +Warning: DateTime::format() expects parameter 1 to be string, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_getOffset_basic1.phpt b/ext/date/tests/DateTime_getOffset_basic1.phpt new file mode 100644 index 0000000..41b1a78 --- /dev/null +++ b/ext/date/tests/DateTime_getOffset_basic1.phpt @@ -0,0 +1,28 @@ +--TEST-- +Test DateTime::getOffset() function : basic functionality +--FILE-- +getOffset() / 3600 . " hours\n"; +echo "Summer offset: " . $summer->getOffset() / 3600 . " hours\n"; + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::getOffset() : basic functionality *** +Winter offset: 0 hours +Summer offset: 1 hours +===DONE=== diff --git a/ext/date/tests/DateTime_getOffset_error.phpt b/ext/date/tests/DateTime_getOffset_error.phpt new file mode 100644 index 0000000..6e9c3f4 --- /dev/null +++ b/ext/date/tests/DateTime_getOffset_error.phpt @@ -0,0 +1,33 @@ +--TEST-- +Test DateTime::getOffset() function : error conditions +--FILE-- +getOffset($extra_arg) ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::getOffset() : error conditions *** + +-- Testing DateTime::getOffset() function with more than expected no. of arguments -- + +Warning: DateTime::getOffset() expects exactly 0 parameters, 1 given in %s on line %d +bool(false) +===DONE=== + diff --git a/ext/date/tests/DateTime_getTimeZone_basic1.phpt b/ext/date/tests/DateTime_getTimeZone_basic1.phpt new file mode 100644 index 0000000..ee8a0db --- /dev/null +++ b/ext/date/tests/DateTime_getTimeZone_basic1.phpt @@ -0,0 +1,33 @@ +--TEST-- +Test DateTime::getTimezone() function : basic functionality +--FILE-- +getTimeZone()->getName() ); + + +date_default_timezone_set("America/New_York"); +$object = new DateTime("2009-01-30 17:57:32"); +var_dump( $object->getTimeZone()->getName() ); + +$la_time = new DateTimeZone("America/Los_Angeles"); +$object->setTimeZone($la_time); +var_dump( $object->getTimeZone()->getName() ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::getTimezone() : basic functionality *** +string(13) "Europe/London" +string(16) "America/New_York" +string(19) "America/Los_Angeles" +===DONE=== diff --git a/ext/date/tests/DateTime_modify_basic1.phpt b/ext/date/tests/DateTime_modify_basic1.phpt new file mode 100644 index 0000000..052524d --- /dev/null +++ b/ext/date/tests/DateTime_modify_basic1.phpt @@ -0,0 +1,39 @@ +--TEST-- +Test DateTime::modify() function : basic functionality +--FILE-- +modify("+1 day"); +echo "After modification 1: " . $datetime->format("D, d M Y") . "\n"; + +$datetime->modify("+1 week 2 days 4 hours 2 seconds"); +echo "After modification 2: " . $datetime->format("D, d M Y H:i:s") . "\n"; + +$datetime->modify("next Thursday"); +echo "After modification 3: " . $datetime->format("D, d M Y") . "\n"; + +$datetime->modify("last Sunday"); +echo "After modification 4: " . $datetime->format("D, d M Y") . "\n"; + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::modify() : basic functionality *** +After modification 1: Sun, 01 Feb 2009 +After modification 2: Tue, 10 Feb 2009 18:28:43 +After modification 3: Thu, 12 Feb 2009 +After modification 4: Sun, 08 Feb 2009 +===DONE=== diff --git a/ext/date/tests/DateTime_modify_error.phpt b/ext/date/tests/DateTime_modify_error.phpt new file mode 100644 index 0000000..bc4f242 --- /dev/null +++ b/ext/date/tests/DateTime_modify_error.phpt @@ -0,0 +1,42 @@ +--TEST-- +Test DateTime::modify() function : error conditions +--FILE-- +modify() ); + +echo "\n-- Testing DateTime::modify() function with more than expected no. of arguments --\n"; +$modify = "+1 day"; +$extra_arg = 99; +var_dump( $object->modify($modify, $extra_arg) ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::modify() : error conditions *** + +-- Testing DateTime::modify() function with less than expected no. of arguments -- + +Warning: DateTime::modify() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing DateTime::modify() function with more than expected no. of arguments -- + +Warning: DateTime::modify() expects exactly 1 parameter, 2 given in %s on line %d +bool(false) +===DONE=== + diff --git a/ext/date/tests/DateTime_modify_variation1.phpt b/ext/date/tests/DateTime_modify_variation1.phpt new file mode 100644 index 0000000..faeb70c --- /dev/null +++ b/ext/date/tests/DateTime_modify_variation1.phpt @@ -0,0 +1,262 @@ +--TEST-- +Test DateTime::modify() function : usage variation - Passing unexpected values to first argument $modify. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = new DateTime("2009-01-31 14:28:41"); + +foreach($inputs as $variation =>$format) { + echo "\n-- $variation --\n"; + var_dump( $object->modify($format) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::modify() : usage variation - unexpected values to first argument $modify*** + +-- int 0 -- + +Warning: DateTime::modify(): Failed to parse time string (0) at position 0 (0): Unexpected character in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- int 1 -- + +Warning: DateTime::modify(): Failed to parse time string (1) at position 0 (1): Unexpected character in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- int 12345 -- + +Warning: DateTime::modify(): Failed to parse time string (12345) at position 4 (5): Unexpected character in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- int -12345 -- + +Warning: DateTime::modify(): Failed to parse time string (-12345) at position 5 (5): Unexpected character in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- float 10.5 -- +object(DateTime)#3 (3) { + ["date"]=> + string(19) "2009-01-31 10:05:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- + +Warning: DateTime::modify(): Failed to parse time string (-10.5) at position 4 (5): Unexpected character in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- float .5 -- +object(DateTime)#3 (3) { + ["date"]=> + string(19) "2009-01-31 00:05:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: DateTime::modify() expects parameter 1 to be string, array given in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- int indexed array -- + +Warning: DateTime::modify() expects parameter 1 to be string, array given in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- associative array -- + +Warning: DateTime::modify() expects parameter 1 to be string, array given in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- nested arrays -- + +Warning: DateTime::modify() expects parameter 1 to be string, array given in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- uppercase NULL -- + +Warning: DateTime::modify(): Failed to parse time string () at position 0 ( in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- lowercase null -- + +Warning: DateTime::modify(): Failed to parse time string () at position 0 ( in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- lowercase true -- + +Warning: DateTime::modify(): Failed to parse time string (1) at position 0 (1): Unexpected character in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- lowercase false -- + +Warning: DateTime::modify(): Failed to parse time string () at position 0 ( in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- uppercase TRUE -- + +Warning: DateTime::modify(): Failed to parse time string (1) at position 0 (1): Unexpected character in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- uppercase FALSE -- + +Warning: DateTime::modify(): Failed to parse time string () at position 0 ( in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- empty string DQ -- + +Warning: DateTime::modify(): Failed to parse time string () at position 0 ( in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- empty string SQ -- + +Warning: DateTime::modify(): Failed to parse time string () at position 0 ( in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- string DQ -- + +Warning: DateTime::modify(): Failed to parse time string (string) at position 0 (s): The timezone could not be found in the database in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- string SQ -- + +Warning: DateTime::modify(): Failed to parse time string (string) at position 0 (s): The timezone could not be found in the database in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- mixed case string -- + +Warning: DateTime::modify(): Failed to parse time string (sTrInG) at position 0 (s): The timezone could not be found in the database in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- heredoc -- + +Warning: DateTime::modify(): Failed to parse time string (hello world) at position 0 (h): The timezone could not be found in the database in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- instance of classWithToString -- + +Warning: DateTime::modify(): Failed to parse time string (Class A object) at position 0 (C): The timezone could not be found in the database in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- instance of classWithoutToString -- + +Warning: DateTime::modify() expects parameter 1 to be string, object given in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- undefined var -- + +Warning: DateTime::modify(): Failed to parse time string () at position 0 ( in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- unset var -- + +Warning: DateTime::modify(): Failed to parse time string () at position 0 ( in %sDateTime_modify_variation1.php on line 99 +bool(false) + +-- resource -- + +Warning: DateTime::modify() expects parameter 1 to be string, resource given in %sDateTime_modify_variation1.php on line 99 +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_serialize.phpt b/ext/date/tests/DateTime_serialize.phpt new file mode 100644 index 0000000..ff82736 --- /dev/null +++ b/ext/date/tests/DateTime_serialize.phpt @@ -0,0 +1,39 @@ +--TEST-- +Test serialization of DateTime objects +--FILE-- +format( "F j, Y, g:i a") ); + +?> +===DONE=== +--EXPECTF-- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2005-07-14 22:30:41" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +string(118) "O:8:"DateTime":3:{s:4:"date";s:19:"2005-07-14 22:30:41";s:13:"timezone_type";i:3;s:8:"timezone";s:13:"Europe/London";}" +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2005-07-14 22:30:41" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +string(23) "July 14, 2005, 10:30 pm" +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTime_setDate_basic1.phpt b/ext/date/tests/DateTime_setDate_basic1.phpt new file mode 100644 index 0000000..7989470 --- /dev/null +++ b/ext/date/tests/DateTime_setDate_basic1.phpt @@ -0,0 +1,30 @@ +--TEST-- +Test DateTime::setDate() function : basic functionality +--FILE-- +format(DATE_RFC2822) . "\n"; + +$datetime->setDate(2008, 02, 01); + +echo $datetime->format(DATE_RFC2822) . "\n"; + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setDate() : basic functionality *** +Fri, 30 Jan 2009 19:34:10 +0000 +Fri, 01 Feb 2008 19:34:10 +0000 +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTime_setDate_error.phpt b/ext/date/tests/DateTime_setDate_error.phpt new file mode 100644 index 0000000..29c019a --- /dev/null +++ b/ext/date/tests/DateTime_setDate_error.phpt @@ -0,0 +1,53 @@ +--TEST-- +Test DateTime::setDate() function : error conditions +--FILE-- +setDate() ); + +echo "\n-- Testing DateTime::setDate() function with less than expected no. of arguments --\n"; +$year = 2009; +$month = 1; +$day = 30; +var_dump( $datetime->setDate($year) ); +var_dump( $datetime->setDate($year, $month) ); + +echo "\n-- Testing DateTime::setDate() function with more than expected no. of arguments --\n"; +$extra_arg = 10; +var_dump( $datetime->setDate($year, $month, $day, $extra_arg) ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setDate() : error conditions *** + +-- Testing DateTime::setDate() function with zero arguments -- + +Warning: DateTime::setDate() expects exactly 3 parameters, 0 given in %s on line %d +bool(false) + +-- Testing DateTime::setDate() function with less than expected no. of arguments -- + +Warning: DateTime::setDate() expects exactly 3 parameters, 1 given in %s on line %d +bool(false) + +Warning: DateTime::setDate() expects exactly 3 parameters, 2 given in %s on line %d +bool(false) + +-- Testing DateTime::setDate() function with more than expected no. of arguments -- + +Warning: DateTime::setDate() expects exactly 3 parameters, 4 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_setDate_variation1.phpt b/ext/date/tests/DateTime_setDate_variation1.phpt new file mode 100644 index 0000000..5017cc1 --- /dev/null +++ b/ext/date/tests/DateTime_setDate_variation1.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test DateTime::setDate() function : usage variation - Passing unexpected values to first argument $year. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = new DateTime("2009-02-27 08:34:10"); +$day = 2; +$month = 7; + +foreach($inputs as $variation =>$year) { + echo "\n-- $variation --\n"; + var_dump( $object->setDate($year, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setDate() : usage variation - unexpected values to first argument $year*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0001-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(20) "12345-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(21) "-12345-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0010-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(20) "-0010-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: DateTime::setDate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: DateTime::setDate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: DateTime::setDate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: DateTime::setDate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0001-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0001-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: DateTime::setDate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: DateTime::setDate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: DateTime::setDate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: DateTime::setDate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: DateTime::setDate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: DateTime::setDate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: DateTime::setDate() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: DateTime::setDate() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: DateTime::setDate() expects parameter 1 to be long, resource given in %s on line %d +bool(false) +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/DateTime_setDate_variation2.phpt b/ext/date/tests/DateTime_setDate_variation2.phpt new file mode 100644 index 0000000..a853f5e --- /dev/null +++ b/ext/date/tests/DateTime_setDate_variation2.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test DateTime::setDate() function : usage variation - Passing unexpected values to second argument $month. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = new DateTime("2009-02-27 08:34:10"); +$day = 2; +$year = 1963; + +foreach($inputs as $variation =>$month) { + echo "\n-- $variation --\n"; + var_dump( $object->setDate($year, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setDate() : usage variation - unexpected values to second argument $month*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-01-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2991-09-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0934-03-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-10-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-02-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: DateTime::setDate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: DateTime::setDate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: DateTime::setDate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: DateTime::setDate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-01-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-01-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: DateTime::setDate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: DateTime::setDate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: DateTime::setDate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: DateTime::setDate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: DateTime::setDate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: DateTime::setDate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: DateTime::setDate() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: DateTime::setDate() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: DateTime::setDate() expects parameter 2 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_setDate_variation3.phpt b/ext/date/tests/DateTime_setDate_variation3.phpt new file mode 100644 index 0000000..da98e59 --- /dev/null +++ b/ext/date/tests/DateTime_setDate_variation3.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test DateTime::setDate() function : usage variation - Passing unexpected values to third argument $day. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = new DateTime("2009-02-27 08:34:10"); +$month = 7; +$year = 1963; + +foreach($inputs as $variation =>$day) { + echo "\n-- $variation --\n"; + var_dump( $object->setDate($year, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setDate() : usage variation - unexpected values to third argument $day*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-07-01 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1997-04-17 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1929-09-11 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-07-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-20 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: DateTime::setDate() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: DateTime::setDate() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: DateTime::setDate() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: DateTime::setDate() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-07-01 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-07-01 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: DateTime::setDate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: DateTime::setDate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: DateTime::setDate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: DateTime::setDate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: DateTime::setDate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: DateTime::setDate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: DateTime::setDate() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: DateTime::setDate() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: DateTime::setDate() expects parameter 3 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_setISODate_basic1.phpt b/ext/date/tests/DateTime_setISODate_basic1.phpt new file mode 100644 index 0000000..cdedb44 --- /dev/null +++ b/ext/date/tests/DateTime_setISODate_basic1.phpt @@ -0,0 +1,38 @@ +--TEST-- +Test DateTime::setISODate() function : basic functionality +--FILE-- +setISODate(2008, 40); +echo "Week 40 of 2009 is in \"" . $datetime->format("F") . "\"\n"; + +// What date is week week 30 day 3 ? +$datetime->setISODate(2009, 30, 3); +echo "Week 30 day 3 of 2009 is \"" . $datetime->format("D M j") . "\"\n"; + +// What date was is last year ? +$datetime->setISODate(2008, 30, 3); +echo "..same day last year was \"" . $datetime->format("D M j") . "\"\n"; + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setISODate() : basic functionality *** +Week 40 of 2009 is in "September" +Week 30 day 3 of 2009 is "Wed Jul 22" +..same day last year was "Wed Jul 23" +===DONE=== diff --git a/ext/date/tests/DateTime_setISODate_error.phpt b/ext/date/tests/DateTime_setISODate_error.phpt new file mode 100644 index 0000000..af22581 --- /dev/null +++ b/ext/date/tests/DateTime_setISODate_error.phpt @@ -0,0 +1,51 @@ +--TEST-- +Test DateTime::setISODate () function : error conditions +--FILE-- +setISODate() ); + +$year = 2009; +echo "\n-- Testing DateTime::setISODate() function with less than expected no. of arguments --\n"; +var_dump( $datetime->setISODate($year) ); + +echo "\n-- Testing date_isodate_set() function with more than expected no. of arguments --\n"; +$week = 30; +$day = 7; +$extra_arg = 30; +var_dump( $datetime->setISODate($year, $week, $day, $extra_arg) ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setISODate () : error conditions *** + +-- Testing DateTime::setISODate() function with zero arguments -- + +Warning: DateTime::setISODate() expects at least 2 parameters, 0 given in %s on line %d +bool(false) + +-- Testing DateTime::setISODate() function with less than expected no. of arguments -- + +Warning: DateTime::setISODate() expects at least 2 parameters, 1 given in %s on line %d +bool(false) + +-- Testing date_isodate_set() function with more than expected no. of arguments -- + +Warning: DateTime::setISODate() expects at most 3 parameters, 4 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_setISODate_variation1.phpt b/ext/date/tests/DateTime_setISODate_variation1.phpt new file mode 100644 index 0000000..ded968f --- /dev/null +++ b/ext/date/tests/DateTime_setISODate_variation1.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test DateTime::setISODate() function : usage variation - Passing unexpected values to first argument $year. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = new DateTime("2009-02-27 08:34:10"); +$day = 2; +$month = 7; + +foreach($inputs as $variation =>$year) { + echo "\n-- $variation --\n"; + var_dump( $object->setISODate($year, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setISODate() : usage variation - unexpected values to first argument $year*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0001-02-13 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(20) "12345-02-13 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(21) "-12345-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0010-02-16 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(20) "-0010-02-19 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: DateTime::setISODate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: DateTime::setISODate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: DateTime::setISODate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: DateTime::setISODate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0001-02-13 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0001-02-13 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: DateTime::setISODate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: DateTime::setISODate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: DateTime::setISODate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: DateTime::setISODate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: DateTime::setISODate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: DateTime::setISODate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: DateTime::setISODate() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: DateTime::setISODate() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: DateTime::setISODate() expects parameter 1 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_setISODate_variation2.phpt b/ext/date/tests/DateTime_setISODate_variation2.phpt new file mode 100644 index 0000000..ce322d2 --- /dev/null +++ b/ext/date/tests/DateTime_setISODate_variation2.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test DateTime::setISODate() function : usage variation - Passing unexpected values to second argument $week. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = date_create("2009-02-27 08:34:10"); +$day = 2; +$year = 1963; + +foreach($inputs as $variation =>$month) { + echo "\n-- $variation --\n"; + var_dump( $object->setISODate($year, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setISODate() : usage variation - unexpected values to second argument $week*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-01-01 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2199-07-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1726-05-21 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-03-05 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-10-16 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: DateTime::setISODate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: DateTime::setISODate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: DateTime::setISODate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: DateTime::setISODate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-01-01 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-01-01 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: DateTime::setISODate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: DateTime::setISODate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: DateTime::setISODate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: DateTime::setISODate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: DateTime::setISODate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: DateTime::setISODate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: DateTime::setISODate() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: DateTime::setISODate() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: DateTime::setISODate() expects parameter 2 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_setISODate_variation3.phpt b/ext/date/tests/DateTime_setISODate_variation3.phpt new file mode 100644 index 0000000..d2d5644 --- /dev/null +++ b/ext/date/tests/DateTime_setISODate_variation3.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test DateTime::setISODate() function : usage variation - Passing unexpected values to third argument $day. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = date_create("2009-02-27 08:34:10"); +$year = 1963; +$month = 7; + +foreach($inputs as $variation =>$day) { + echo "\n-- $variation --\n"; + var_dump( $object->setISODate($year, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setISODate() : usage variation - unexpected values to third argument $day*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-11 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1996-11-28 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1929-04-24 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-20 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-01-31 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: DateTime::setISODate() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: DateTime::setISODate() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: DateTime::setISODate() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: DateTime::setISODate() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-11 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-11 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: DateTime::setISODate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: DateTime::setISODate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: DateTime::setISODate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: DateTime::setISODate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: DateTime::setISODate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: DateTime::setISODate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: DateTime::setISODate() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: DateTime::setISODate() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: DateTime::setISODate() expects parameter 3 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_setTime_basic1.phpt b/ext/date/tests/DateTime_setTime_basic1.phpt new file mode 100644 index 0000000..bd95fec --- /dev/null +++ b/ext/date/tests/DateTime_setTime_basic1.phpt @@ -0,0 +1,46 @@ +--TEST-- +Test DateTime::setTime() function : basic functionality +--FILE-- +format(DATE_RFC2822) . "\n"; + +$datetime->setTime(17, 20); +echo "After modification1 " . $datetime ->format(DATE_RFC2822) . "\n"; + +$datetime->setTime(19, 05, 59); +echo "After modification2 " . $datetime ->format(DATE_RFC2822) . "\n"; + +$datetime->setTime(24, 10); +echo "After modification3 " . $datetime ->format(DATE_RFC2822) . "\n"; + +$datetime->setTime(47, 35, 47); +echo "After modification4 " . $datetime ->format(DATE_RFC2822) . "\n"; + +$datetime->setTime(54, 25); +echo "After modification5 " . $datetime ->format(DATE_RFC2822) . "\n"; + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setTime() : basic functionality *** +Initial date: Sat, 31 Jan 2009 15:14:10 +0000 +After modification1 Sat, 31 Jan 2009 17:20:00 +0000 +After modification2 Sat, 31 Jan 2009 19:05:59 +0000 +After modification3 Sun, 01 Feb 2009 00:10:00 +0000 +After modification4 Mon, 02 Feb 2009 23:35:47 +0000 +After modification5 Wed, 04 Feb 2009 06:25:00 +0000 +===DONE=== diff --git a/ext/date/tests/DateTime_setTime_error.phpt b/ext/date/tests/DateTime_setTime_error.phpt new file mode 100644 index 0000000..eaf1555 --- /dev/null +++ b/ext/date/tests/DateTime_setTime_error.phpt @@ -0,0 +1,49 @@ +--TEST-- +Test DateTime::setTime() function : error conditions +--FILE-- +setTime() ); + +echo "\n-- Testing DateTime::setTime() function with less than expected no. of arguments --\n"; +$hour = 18; +var_dump( $datetime->setTime($hour) ); + +echo "\n-- Testing DateTime::setTime() function with more than expected no. of arguments --\n"; +$min = 15; +$sec = 30; +$extra_arg = 10; +var_dump( $datetime->setTime($hour, $min, $sec, $extra_arg) ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setTime() : error conditions *** + +-- Testing DateTime::setTime() function with zero arguments -- + +Warning: DateTime::setTime() expects at least 2 parameters, 0 given in %s on line %d +bool(false) + +-- Testing DateTime::setTime() function with less than expected no. of arguments -- + +Warning: DateTime::setTime() expects at least 2 parameters, 1 given in %s on line %d +bool(false) + +-- Testing DateTime::setTime() function with more than expected no. of arguments -- + +Warning: DateTime::setTime() expects at most 3 parameters, 4 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_setTime_variation1.phpt b/ext/date/tests/DateTime_setTime_variation1.phpt new file mode 100644 index 0000000..7edbd4e --- /dev/null +++ b/ext/date/tests/DateTime_setTime_variation1.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test DateTime::setTime() function : usage variation - Passing unexpected values to first argument $hour. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = new DateTime("2009-01-31 15:14:10"); +$minute = 13; +$sec = 45; + +foreach($inputs as $variation =>$hour) { + echo "\n-- $variation --\n"; + var_dump( $object->setTime($hour, $minute, $sec) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setTime() : usage variation - unexpected values to first argument $hour*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 01:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2010-06-29 09:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 15:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 14:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: DateTime::setTime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: DateTime::setTime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: DateTime::setTime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: DateTime::setTime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 01:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 01:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: DateTime::setTime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: DateTime::setTime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: DateTime::setTime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: DateTime::setTime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: DateTime::setTime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: DateTime::setTime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: DateTime::setTime() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: DateTime::setTime() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: DateTime::setTime() expects parameter 1 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_setTime_variation2.phpt b/ext/date/tests/DateTime_setTime_variation2.phpt new file mode 100644 index 0000000..300eb9c --- /dev/null +++ b/ext/date/tests/DateTime_setTime_variation2.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test DateTime::setTime() function : usage variation - Passing unexpected values to second argument $minute. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = new DateTime("2009-01-31 15:14:10"); +$hour = 10; +$sec = 45; + +foreach($inputs as $variation =>$minute) { + echo "\n-- $variation --\n"; + var_dump( $object->setTime($hour, $minute, $sec) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setTime() : usage variation - unexpected values to second argument $minute*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:01:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-02-08 23:45:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 20:15:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:10:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 09:50:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: DateTime::setTime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: DateTime::setTime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: DateTime::setTime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: DateTime::setTime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:01:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:01:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: DateTime::setTime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: DateTime::setTime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: DateTime::setTime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: DateTime::setTime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: DateTime::setTime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: DateTime::setTime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: DateTime::setTime() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: DateTime::setTime() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: DateTime::setTime() expects parameter 2 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_setTime_variation3.phpt b/ext/date/tests/DateTime_setTime_variation3.phpt new file mode 100644 index 0000000..05bf4b5 --- /dev/null +++ b/ext/date/tests/DateTime_setTime_variation3.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test DateTime::setTime() function : usage variation - Passing unexpected values to third argument $second. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = new DateTime("2009-01-31 15:14:10"); +$hour = 10; +$minute = 13; + +foreach($inputs as $variation =>$sec) { + echo "\n-- $variation --\n"; + var_dump( $object->setTime($hour, $minute, $sec) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setTime() : usage variation - unexpected values to third argument $second*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:01" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 13:38:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 06:47:15" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:12:50" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: DateTime::setTime() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: DateTime::setTime() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: DateTime::setTime() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: DateTime::setTime() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:01" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:01" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: DateTime::setTime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: DateTime::setTime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: DateTime::setTime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: DateTime::setTime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: DateTime::setTime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: DateTime::setTime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: DateTime::setTime() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: DateTime::setTime() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: DateTime::setTime() expects parameter 3 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_setTimezone_basic1.phpt b/ext/date/tests/DateTime_setTimezone_basic1.phpt new file mode 100644 index 0000000..f4f479f --- /dev/null +++ b/ext/date/tests/DateTime_setTimezone_basic1.phpt @@ -0,0 +1,29 @@ +--TEST-- +Test DateTime::setTimezone() function : basic functionality +--FILE-- +getName() . "\n"; + +$la_time = new DateTimezone("America/Los_Angeles"); +$datetime->setTimezone($la_time); +echo "New timezone: " . date_timezone_get($datetime)->getName() . "\n"; + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setTimezone() : basic functionality *** +Default timezone: Europe/London +New timezone: America/Los_Angeles +===DONE=== diff --git a/ext/date/tests/DateTime_setTimezone_error.phpt b/ext/date/tests/DateTime_setTimezone_error.phpt new file mode 100644 index 0000000..32d03fb --- /dev/null +++ b/ext/date/tests/DateTime_setTimezone_error.phpt @@ -0,0 +1,39 @@ +--TEST-- +Test DateTime::setTimezone () function : error conditions +--FILE-- +setTimezone() ); + +echo "\n-- Testing DateTime::setTimezone () function with more than expected no. of arguments --\n"; +$timezone = new DateTimezone("GMT"); +$extra_arg = 99; +var_dump( $datetime->setTimezone($timezone, $extra_arg) ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setTimezone () : error conditions *** + +-- Testing DateTime::setTimezone () function with zero arguments -- + +Warning: DateTime::setTimezone() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing DateTime::setTimezone () function with more than expected no. of arguments -- + +Warning: DateTime::setTimezone() expects exactly 1 parameter, 2 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_setTimezone_variation1.phpt b/ext/date/tests/DateTime_setTimezone_variation1.phpt new file mode 100644 index 0000000..9ccfce0 --- /dev/null +++ b/ext/date/tests/DateTime_setTimezone_variation1.phpt @@ -0,0 +1,252 @@ +--TEST-- +Test DateTime::setTimezone() function : usage variation - Passing unexpected values to first argument $timezone. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = new DateTime("2009-01-30 17:57:32"); + +foreach($inputs as $variation =>$timezone) { + echo "\n-- $variation --\n"; + var_dump( $object->setTimezone($timezone) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing DateTime::setTimezone() : usage variation - unexpected values to first argument $timezone*** + +-- int 0 -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- unset var -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- resource -- + +Warning: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/DateTime_sub-dates.phpt b/ext/date/tests/DateTime_sub-dates.phpt new file mode 100644 index 0000000..26f49ba --- /dev/null +++ b/ext/date/tests/DateTime_sub-dates.phpt @@ -0,0 +1,29 @@ +--TEST-- +DateTime::sub() -- dates +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test__7: SUB: 2009-01-14 00:00:00 EST - P+0Y0M7DT0H0M0S = **2009-01-07 00:00:00 EST** +test_years_positive__7_by_0_day: SUB: 2007-02-07 00:00:00 EST - P+7Y0M0DT0H0M0S = **2000-02-07 00:00:00 EST** +test_years_positive__7_by_1_day: SUB: 2007-02-08 00:00:00 EST - P+7Y0M1DT0H0M0S = **2000-02-07 00:00:00 EST** +test_years_positive__6_shy_1_day: SUB: 2007-02-06 00:00:00 EST - P+6Y11M30DT0H0M0S = **2000-02-05 00:00:00 EST** +test_years_positive__7_by_1_month: SUB: 2007-03-07 00:00:00 EST - P+7Y1M0DT0H0M0S = **2000-02-07 00:00:00 EST** +test_years_positive__6_shy_1_month: SUB: 2007-01-07 00:00:00 EST - P+6Y11M0DT0H0M0S = **2000-02-07 00:00:00 EST** +test_years_positive__7_by_1_month_split_newyear: SUB: 2007-01-07 00:00:00 EST - P+7Y1M0DT0H0M0S = **1999-12-07 00:00:00 EST** +test_years_positive__6_shy_1_month_split_newyear: SUB: 2006-12-07 00:00:00 EST - P+6Y11M0DT0H0M0S = **2000-01-07 00:00:00 EST** +test_negative__7: SUB: 2009-01-07 00:00:00 EST - P-0Y0M7DT0H0M0S = **2009-01-14 00:00:00 EST** +test_years_negative__7_by_0_day: SUB: 2000-02-07 00:00:00 EST - P-7Y0M0DT0H0M0S = **2007-02-07 00:00:00 EST** +test_years_negative__7_by_1_day: SUB: 2000-02-07 00:00:00 EST - P-7Y0M1DT0H0M0S = **2007-02-08 00:00:00 EST** +test_years_negative__6_shy_1_day: SUB: 2000-02-07 00:00:00 EST - P-6Y11M28DT0H0M0S = **2007-02-04 00:00:00 EST** +test_years_negative__7_by_1_month: SUB: 2000-02-07 00:00:00 EST - P-7Y1M0DT0H0M0S = **2007-03-07 00:00:00 EST** +test_years_negative__6_shy_1_month: SUB: 2000-02-07 00:00:00 EST - P-6Y11M0DT0H0M0S = **2007-01-07 00:00:00 EST** +test_years_negative__7_by_1_month_split_newyear: SUB: 1999-12-07 00:00:00 EST - P-7Y1M0DT0H0M0S = **2007-01-07 00:00:00 EST** +test_years_negative__6_shy_1_month_split_newyear: SUB: 2000-01-07 00:00:00 EST - P-6Y11M0DT0H0M0S = **2006-12-07 00:00:00 EST** diff --git a/ext/date/tests/DateTime_sub-fall-type2-type2.phpt b/ext/date/tests/DateTime_sub-fall-type2-type2.phpt new file mode 100644 index 0000000..e133b1f --- /dev/null +++ b/ext/date/tests/DateTime_sub-fall-type2-type2.phpt @@ -0,0 +1,51 @@ +--TEST-- +DateTime::sub() -- fall type2 type2 +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_time_fall_type2_prev_type2_prev: SUB: 2010-11-06 18:38:28 EDT - P+0Y1M2DT16H19M40S = **2010-10-04 02:18:48 EDT** +test_time_fall_type2_prev_type2_dt: SUB: 2010-11-07 00:10:20 EDT - P+0Y0M0DT5H31M52S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_prev_type2_redodt: SUB: 2010-11-07 01:12:33 EDT - P+0Y0M0DT6H34M5S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_prev_type2_redost: SUB: 2010-11-07 01:14:44 EST - P+0Y0M0DT7H36M16S = **2010-11-06 17:38:28 EST** +test_time_fall_type2_prev_type2_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT9H38M27S = **2010-11-06 17:38:28 EST** +test_time_fall_type2_prev_type2_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M2DT1H21M31S = **2010-11-06 18:38:28 EST** +test_time_fall_type2_dt_type2_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT5H31M52S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_dt_type2_dt: SUB: 2010-11-07 00:15:35 EDT - P+0Y0M0DT0H5M15S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_dt_type2_redodt: SUB: 2010-11-07 01:12:33 EDT - P+0Y0M0DT1H2M13S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_dt_type2_redost: SUB: 2010-11-07 01:14:44 EST - P+0Y0M0DT2H4M24S = **2010-11-06 23:10:20 EST** +test_time_fall_type2_dt_type2_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT4H6M35S = **2010-11-06 23:10:20 EST** +test_time_fall_type2_dt_type2_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT20H49M39S = **2010-11-06 23:10:20 EST** +test_time_fall_type2_redodt_type2_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT6H34M5S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_redodt_type2_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M0DT1H2M13S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_redodt_type2_redodt: SUB: 2010-11-07 01:15:35 EDT - P+0Y0M0DT0H3M2S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_redodt_type2_redost: SUB: 2010-11-07 01:14:44 EST - P+0Y0M0DT1H2M11S = **2010-11-07 00:12:33 EST** +test_time_fall_type2_redodt_type2_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT3H4M22S = **2010-11-07 00:12:33 EST** +test_time_fall_type2_redodt_type2_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT19H47M26S = **2010-11-07 00:12:33 EST** +test_time_fall_type2_redost_type2_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT7H36M16S = **2010-11-07 02:14:44 EDT** +test_time_fall_type2_redost_type2_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M0DT2H4M24S = **2010-11-07 02:14:44 EDT** +test_time_fall_type2_redost_type2_redodt: SUB: 2010-11-07 01:12:33 EDT - P-0Y0M0DT1H2M11S = **2010-11-07 02:14:44 EDT** +test_time_fall_type2_redost_type2_redost: SUB: 2010-11-07 01:16:54 EST - P+0Y0M0DT0H2M10S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_redost_type2_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT2H2M11S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_redost_type2_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT18H45M15S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_st_type2_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT9H38M27S = **2010-11-07 04:16:55 EDT** +test_time_fall_type2_st_type2_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M0DT4H6M35S = **2010-11-07 04:16:55 EDT** +test_time_fall_type2_st_type2_redodt: SUB: 2010-11-07 01:12:33 EDT - P-0Y0M0DT3H4M22S = **2010-11-07 04:16:55 EDT** +test_time_fall_type2_st_type2_redost: SUB: 2010-11-07 01:14:44 EST - P-0Y0M0DT2H2M11S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_st_type2_st: SUB: 2010-11-07 05:19:56 EST - P+0Y0M0DT2H3M1S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_st_type2_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT16H43M4S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_post_type2_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M2DT1H21M31S = **2010-11-08 19:59:59 EDT** +test_time_fall_type2_post_type2_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M1DT20H49M39S = **2010-11-08 20:59:59 EDT** +test_time_fall_type2_post_type2_redodt: SUB: 2010-11-07 01:12:33 EDT - P-0Y0M1DT19H47M26S = **2010-11-08 20:59:59 EDT** +test_time_fall_type2_post_type2_redost: SUB: 2010-11-07 01:14:44 EST - P-0Y0M1DT18H45M15S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_post_type2_st: SUB: 2010-11-07 03:16:55 EST - P-0Y0M1DT16H43M4S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_post_type2_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M0DT1H2M4S = **2010-11-08 18:57:55 EST** +test_time_fall_type2_dtsec_type2_stsec: SUB: 2010-11-07 01:00:00 EST - P+0Y0M0DT0H0M1S = **2010-11-07 00:59:59 EST** +test_time_fall_type2_stsec_type2_dtsec: SUB: 2010-11-07 01:59:59 EDT - P-0Y0M0DT0H0M1S = **2010-11-07 02:00:00 EDT** diff --git a/ext/date/tests/DateTime_sub-fall-type2-type3.phpt b/ext/date/tests/DateTime_sub-fall-type2-type3.phpt new file mode 100644 index 0000000..6c2a9e0 --- /dev/null +++ b/ext/date/tests/DateTime_sub-fall-type2-type3.phpt @@ -0,0 +1,53 @@ +--TEST-- +DateTime::sub() -- fall type2 type3 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_fall_type2_prev_type3_prev: SUB: 2010-11-06 18:38:28 EDT - P+0Y1M2DT16H19M40S = **2010-10-04 02:18:48 EDT** +test_time_fall_type2_prev_type3_dt: SUB: 2010-11-07 00:10:20 EDT - P+0Y0M0DT5H31M52S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_prev_type3_redodt: SUB: 2010-11-07 01:12:33 EDT - P+0Y0M0DT6H34M5S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_prev_type3_redost: SUB: 2010-11-07 01:14:44 EST - P+0Y0M0DT7H36M16S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_prev_type3_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT9H38M27S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_prev_type3_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M2DT1H21M31S = **2010-11-06 18:38:28 EDT** +test_time_fall_type2_dt_type3_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT5H31M52S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_dt_type3_dt: SUB: 2010-11-07 00:15:35 EDT - P+0Y0M0DT0H5M15S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_dt_type3_redodt: SUB: 2010-11-07 01:12:33 EDT - P+0Y0M0DT1H2M13S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_dt_type3_redost: SUB: 2010-11-07 01:14:44 EST - P+0Y0M0DT2H4M24S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_dt_type3_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT4H6M35S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_dt_type3_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT20H49M39S = **2010-11-07 00:10:20 EDT** +test_time_fall_type2_redodt_type3_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT6H34M5S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_redodt_type3_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M0DT1H2M13S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_redodt_type3_redodt: SUB: 2010-11-07 01:15:35 EDT - P+0Y0M0DT0H3M2S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_redodt_type3_redost: SUB: 2010-11-07 01:14:44 EST - P+0Y0M0DT1H2M11S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_redodt_type3_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT3H4M22S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_redodt_type3_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT19H47M26S = **2010-11-07 01:12:33 EDT** +test_time_fall_type2_redost_type3_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT7H36M16S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_redost_type3_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M0DT2H4M24S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_redost_type3_redodt: SUB: 2010-11-07 01:12:33 EDT - P-0Y0M0DT1H2M11S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_redost_type3_redost: SUB: 2010-11-07 01:16:54 EST - P+0Y0M0DT0H2M10S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_redost_type3_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT2H2M11S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_redost_type3_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT18H45M15S = **2010-11-07 01:14:44 EST** +test_time_fall_type2_st_type3_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT9H38M27S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_st_type3_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M0DT4H6M35S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_st_type3_redodt: SUB: 2010-11-07 01:12:33 EDT - P-0Y0M0DT3H4M22S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_st_type3_redost: SUB: 2010-11-07 01:14:44 EST - P-0Y0M0DT2H2M11S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_st_type3_st: SUB: 2010-11-07 05:19:56 EST - P+0Y0M0DT2H3M1S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_st_type3_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT16H43M4S = **2010-11-07 03:16:55 EST** +test_time_fall_type2_post_type3_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M2DT1H21M31S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_post_type3_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M1DT20H49M39S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_post_type3_redodt: SUB: 2010-11-07 01:12:33 EDT - P-0Y0M1DT19H47M26S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_post_type3_redost: SUB: 2010-11-07 01:14:44 EST - P-0Y0M1DT18H45M15S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_post_type3_st: SUB: 2010-11-07 03:16:55 EST - P-0Y0M1DT16H43M4S = **2010-11-08 19:59:59 EST** +test_time_fall_type2_post_type3_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M0DT1H2M4S = **2010-11-08 18:57:55 EST** +test_time_fall_type2_dtsec_type3_stsec: SUB: 2010-11-07 01:00:00 EST - P+0Y0M0DT0H0M1S = **2010-11-07 01:59:59 EDT** +test_time_fall_type2_stsec_type3_dtsec: SUB: 2010-11-07 01:59:59 EDT - P-0Y0M0DT0H0M1S = **2010-11-07 01:00:00 EST** diff --git a/ext/date/tests/DateTime_sub-fall-type3-type2.phpt b/ext/date/tests/DateTime_sub-fall-type3-type2.phpt new file mode 100644 index 0000000..e545ea5 --- /dev/null +++ b/ext/date/tests/DateTime_sub-fall-type3-type2.phpt @@ -0,0 +1,53 @@ +--TEST-- +DateTime::sub() -- fall type3 type2 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_fall_type3_prev_type2_prev: SUB: 2010-11-06 18:38:28 EDT - P+0Y1M2DT16H19M40S = **2010-10-04 02:18:48 EDT** +test_time_fall_type3_prev_type2_dt: SUB: 2010-11-07 00:10:20 EDT - P+0Y0M0DT5H31M52S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_prev_type2_redodt: SUB: 2010-11-07 01:12:33 EDT - P+0Y0M0DT6H34M5S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_prev_type2_redost: SUB: 2010-11-07 01:14:44 EST - P+0Y0M0DT7H36M16S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_prev_type2_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT9H38M27S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_prev_type2_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M2DT1H21M31S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_dt_type2_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT5H31M52S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_dt_type2_dt: SUB: 2010-11-07 00:15:35 EDT - P+0Y0M0DT0H5M15S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_dt_type2_redodt: SUB: 2010-11-07 01:12:33 EDT - P+0Y0M0DT1H2M13S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_dt_type2_redost: SUB: 2010-11-07 01:14:44 EST - P+0Y0M0DT2H4M24S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_dt_type2_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT4H6M35S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_dt_type2_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT20H49M39S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_redodt_type2_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT6H34M5S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_redodt_type2_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M0DT1H2M13S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_redodt_type2_redodt: SUB: 2010-11-07 01:15:35 EDT - P+0Y0M0DT0H3M2S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_redodt_type2_redost: SUB: 2010-11-07 01:14:44 EST - P+0Y0M0DT1H2M11S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_redodt_type2_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT3H4M22S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_redodt_type2_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT19H47M26S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_redost_type2_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT7H36M16S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_redost_type2_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M0DT2H4M24S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_redost_type2_redodt: SUB: 2010-11-07 01:12:33 EDT - P-0Y0M0DT1H2M11S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_redost_type2_redost: SUB: 2010-11-07 01:16:54 EST - P+0Y0M0DT0H2M10S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_redost_type2_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT2H2M11S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_redost_type2_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT18H45M15S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_st_type2_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT9H38M27S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_st_type2_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M0DT4H6M35S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_st_type2_redodt: SUB: 2010-11-07 01:12:33 EDT - P-0Y0M0DT3H4M22S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_st_type2_redost: SUB: 2010-11-07 01:14:44 EST - P-0Y0M0DT2H2M11S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_st_type2_st: SUB: 2010-11-07 05:19:56 EST - P+0Y0M0DT2H3M1S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_st_type2_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT16H43M4S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_post_type2_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M2DT1H21M31S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_post_type2_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M1DT20H49M39S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_post_type2_redodt: SUB: 2010-11-07 01:12:33 EDT - P-0Y0M1DT19H47M26S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_post_type2_redost: SUB: 2010-11-07 01:14:44 EST - P-0Y0M1DT18H45M15S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_post_type2_st: SUB: 2010-11-07 03:16:55 EST - P-0Y0M1DT16H43M4S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_post_type2_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M0DT1H2M4S = **2010-11-08 18:57:55 EST** +test_time_fall_type3_dtsec_type2_stsec: SUB: 2010-11-07 01:00:00 EST - P+0Y0M0DT0H0M1S = **2010-11-07 01:59:59 EDT** +test_time_fall_type3_stsec_type2_dtsec: SUB: 2010-11-07 01:59:59 EDT - P-0Y0M0DT0H0M1S = **2010-11-07 01:00:00 EST** diff --git a/ext/date/tests/DateTime_sub-fall-type3-type3.phpt b/ext/date/tests/DateTime_sub-fall-type3-type3.phpt new file mode 100644 index 0000000..6448b5d --- /dev/null +++ b/ext/date/tests/DateTime_sub-fall-type3-type3.phpt @@ -0,0 +1,53 @@ +--TEST-- +DateTime::sub() -- fall type3 type3 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_fall_type3_prev_type3_prev: SUB: 2010-11-06 18:38:28 EDT - P+0Y1M2DT16H19M40S = **2010-10-04 02:18:48 EDT** +test_time_fall_type3_prev_type3_dt: SUB: 2010-11-07 00:10:20 EDT - P+0Y0M0DT5H31M52S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_prev_type3_redodt: SUB: 2010-11-07 01:12:33 EDT - P+0Y0M0DT6H34M5S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_prev_type3_redost: SUB: 2010-11-07 01:14:44 EST - P+0Y0M0DT7H36M16S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_prev_type3_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT9H38M27S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_prev_type3_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M2DT1H21M31S = **2010-11-06 18:38:28 EDT** +test_time_fall_type3_dt_type3_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT5H31M52S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_dt_type3_dt: SUB: 2010-11-07 00:15:35 EDT - P+0Y0M0DT0H5M15S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_dt_type3_redodt: SUB: 2010-11-07 01:12:33 EDT - P+0Y0M0DT1H2M13S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_dt_type3_redost: SUB: 2010-11-07 01:14:44 EST - P+0Y0M0DT2H4M24S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_dt_type3_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT4H6M35S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_dt_type3_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT20H49M39S = **2010-11-07 00:10:20 EDT** +test_time_fall_type3_redodt_type3_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT6H34M5S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_redodt_type3_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M0DT1H2M13S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_redodt_type3_redodt: SUB: 2010-11-07 01:15:35 EDT - P+0Y0M0DT0H3M2S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_redodt_type3_redost: SUB: 2010-11-07 01:14:44 EST - P+0Y0M0DT1H2M11S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_redodt_type3_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT3H4M22S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_redodt_type3_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT19H47M26S = **2010-11-07 01:12:33 EDT** +test_time_fall_type3_redost_type3_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT7H36M16S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_redost_type3_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M0DT2H4M24S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_redost_type3_redodt: SUB: 2010-11-07 01:12:33 EDT - P-0Y0M0DT1H2M11S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_redost_type3_redost: SUB: 2010-11-07 01:16:54 EST - P+0Y0M0DT0H2M10S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_redost_type3_st: SUB: 2010-11-07 03:16:55 EST - P+0Y0M0DT2H2M11S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_redost_type3_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT18H45M15S = **2010-11-07 01:14:44 EST** +test_time_fall_type3_st_type3_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M0DT9H38M27S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_st_type3_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M0DT4H6M35S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_st_type3_redodt: SUB: 2010-11-07 01:12:33 EDT - P-0Y0M0DT3H4M22S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_st_type3_redost: SUB: 2010-11-07 01:14:44 EST - P-0Y0M0DT2H2M11S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_st_type3_st: SUB: 2010-11-07 05:19:56 EST - P+0Y0M0DT2H3M1S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_st_type3_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M1DT16H43M4S = **2010-11-07 03:16:55 EST** +test_time_fall_type3_post_type3_prev: SUB: 2010-11-06 18:38:28 EDT - P-0Y0M2DT1H21M31S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_post_type3_dt: SUB: 2010-11-07 00:10:20 EDT - P-0Y0M1DT20H49M39S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_post_type3_redodt: SUB: 2010-11-07 01:12:33 EDT - P-0Y0M1DT19H47M26S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_post_type3_redost: SUB: 2010-11-07 01:14:44 EST - P-0Y0M1DT18H45M15S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_post_type3_st: SUB: 2010-11-07 03:16:55 EST - P-0Y0M1DT16H43M4S = **2010-11-08 19:59:59 EST** +test_time_fall_type3_post_type3_post: SUB: 2010-11-08 19:59:59 EST - P+0Y0M0DT1H2M4S = **2010-11-08 18:57:55 EST** +test_time_fall_type3_dtsec_type3_stsec: SUB: 2010-11-07 01:00:00 EST - P+0Y0M0DT0H0M1S = **2010-11-07 01:59:59 EDT** +test_time_fall_type3_stsec_type3_dtsec: SUB: 2010-11-07 01:59:59 EDT - P-0Y0M0DT0H0M1S = **2010-11-07 01:00:00 EST** diff --git a/ext/date/tests/DateTime_sub-february.phpt b/ext/date/tests/DateTime_sub-february.phpt new file mode 100644 index 0000000..23c8da4 --- /dev/null +++ b/ext/date/tests/DateTime_sub-february.phpt @@ -0,0 +1,77 @@ +--TEST-- +DateTime::sub() -- february +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_bug_49081__1: SUB: 2010-03-31 00:00:00 EDT - P+0Y0M30DT0H0M0S = **2010-03-01 00:00:00 EST** +test_bug_49081__2: SUB: 2010-04-01 00:00:00 EDT - P+0Y1M0DT0H0M0S = **2010-03-01 00:00:00 EST** +test_bug_49081__3: SUB: 2010-04-01 00:00:00 EDT - P+0Y0M1DT0H0M0S = **2010-03-31 00:00:00 EDT** +test_bug_49081__4: SUB: 2010-04-29 00:00:00 EDT - P+0Y0M29DT0H0M0S = **2010-03-31 00:00:00 EDT** +test_bug_49081__5: SUB: 2010-04-30 00:00:00 EDT - P+0Y0M30DT0H0M0S = **2010-03-31 00:00:00 EDT** +test_bug_49081__6: SUB: 2010-04-30 00:00:00 EDT - P+0Y1M0DT0H0M0S = **2010-03-30 00:00:00 EDT** +test_bug_49081__7: SUB: 2010-04-30 00:00:00 EDT - P+0Y1M1DT0H0M0S = **2010-03-29 00:00:00 EDT** +test_bug_49081__8: SUB: 2010-01-29 00:00:00 EST - P+0Y0M28DT0H0M0S = **2010-01-01 00:00:00 EST** +test_bug_49081__9: SUB: 2010-01-30 00:00:00 EST - P+0Y0M29DT0H0M0S = **2010-01-01 00:00:00 EST** +test_bug_49081__10: SUB: 2010-01-31 00:00:00 EST - P+0Y0M30DT0H0M0S = **2010-01-01 00:00:00 EST** +test_bug_49081__11: SUB: 2010-02-01 00:00:00 EST - P+0Y1M0DT0H0M0S = **2010-01-01 00:00:00 EST** +test_bug_49081__12: SUB: 2010-02-01 00:00:00 EST - P+0Y0M1DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081__13: SUB: 2010-02-27 00:00:00 EST - P+0Y0M27DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081__14: SUB: 2010-02-28 00:00:00 EST - P+0Y0M28DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081__15: SUB: 2010-02-28 00:00:00 EST - P+0Y0M29DT0H0M0S = **2010-01-30 00:00:00 EST** +test_bug_49081__16: SUB: 2010-02-28 00:00:00 EST - P+0Y0M30DT0H0M0S = **2010-01-29 00:00:00 EST** +test_bug_49081__17: SUB: 2010-02-28 00:00:00 EST - P+0Y1M0DT0H0M0S = **2010-01-28 00:00:00 EST** +test_bug_49081__18: SUB: 2010-02-28 00:00:00 EST - P+0Y1M1DT0H0M0S = **2010-01-27 00:00:00 EST** +test_bug_49081__19: SUB: 2010-03-01 00:00:00 EST - P+0Y2M0DT0H0M0S = **2010-01-01 00:00:00 EST** +test_bug_49081__20: SUB: 2010-03-01 00:00:00 EST - P+0Y0M29DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081__21: SUB: 2010-03-27 00:00:00 EDT - P+0Y1M24DT0H0M0S = **2010-02-03 00:00:00 EST** +test_bug_49081__22: SUB: 2010-03-28 00:00:00 EDT - P+0Y1M25DT0H0M0S = **2010-02-03 00:00:00 EST** +test_bug_49081__23: SUB: 2010-03-29 00:00:00 EDT - P+0Y1M26DT0H0M0S = **2010-02-03 00:00:00 EST** +test_bug_49081__24: SUB: 2010-03-30 00:00:00 EDT - P+0Y1M27DT0H0M0S = **2010-02-03 00:00:00 EST** +test_bug_49081__25: SUB: 2010-03-31 00:00:00 EDT - P+0Y2M0DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081__26: SUB: 2010-03-31 00:00:00 EDT - P+0Y2M1DT0H0M0S = **2010-01-30 00:00:00 EST** +test_bug_49081__27: SUB: 2009-01-31 00:00:00 EST - P+0Y0M30DT0H0M0S = **2009-01-01 00:00:00 EST** +test_bug_49081__28: SUB: 2010-03-27 00:00:00 EDT - P+0Y0M27DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081__29: SUB: 2010-03-28 00:00:00 EDT - P+0Y1M0DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081__30: SUB: 2010-03-29 00:00:00 EDT - P+0Y1M1DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081__31: SUB: 2010-03-27 00:00:00 EDT - P+0Y1M0DT0H0M0S = **2010-02-27 00:00:00 EST** +test_bug_49081__32: SUB: 2010-03-27 00:00:00 EDT - P+0Y1M1DT0H0M0S = **2010-02-26 00:00:00 EST** +test_bug_49081_negative__1: SUB: 2010-03-01 00:00:00 EST - P-0Y0M30DT0H0M0S = **2010-03-31 00:00:00 EDT** +test_bug_49081_negative__2: SUB: 2010-03-01 00:00:00 EST - P-0Y1M0DT0H0M0S = **2010-04-01 00:00:00 EDT** +test_bug_49081_negative__3: SUB: 2010-03-31 00:00:00 EDT - P-0Y0M1DT0H0M0S = **2010-04-01 00:00:00 EDT** +test_bug_49081_negative__4: SUB: 2010-03-31 00:00:00 EDT - P-0Y0M29DT0H0M0S = **2010-04-29 00:00:00 EDT** +test_bug_49081_negative__5: SUB: 2010-03-31 00:00:00 EDT - P-0Y0M30DT0H0M0S = **2010-04-30 00:00:00 EDT** +test_bug_49081_negative__6: SUB: 2010-03-30 00:00:00 EDT - P-0Y1M0DT0H0M0S = **2010-04-30 00:00:00 EDT** +test_bug_49081_negative__7: SUB: 2010-03-29 00:00:00 EDT - P-0Y1M1DT0H0M0S = **2010-04-30 00:00:00 EDT** +test_bug_49081_negative__8: SUB: 2010-01-01 00:00:00 EST - P-0Y0M28DT0H0M0S = **2010-01-29 00:00:00 EST** +test_bug_49081_negative__9: SUB: 2010-01-01 00:00:00 EST - P-0Y0M29DT0H0M0S = **2010-01-30 00:00:00 EST** +test_bug_49081_negative__10: SUB: 2010-01-01 00:00:00 EST - P-0Y0M30DT0H0M0S = **2010-01-31 00:00:00 EST** +test_bug_49081_negative__11: SUB: 2010-01-01 00:00:00 EST - P-0Y1M0DT0H0M0S = **2010-02-01 00:00:00 EST** +test_bug_49081_negative__12: SUB: 2010-01-31 00:00:00 EST - P-0Y0M1DT0H0M0S = **2010-02-01 00:00:00 EST** +test_bug_49081_negative__13: SUB: 2010-01-31 00:00:00 EST - P-0Y0M27DT0H0M0S = **2010-02-27 00:00:00 EST** +test_bug_49081_negative__14: SUB: 2010-01-31 00:00:00 EST - P-0Y0M28DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081_negative__15: SUB: 2010-01-30 00:00:00 EST - P-0Y0M29DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081_negative__16: SUB: 2010-01-29 00:00:00 EST - P-0Y0M30DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081_negative__17: SUB: 2010-01-28 00:00:00 EST - P-0Y1M0DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081_negative__18: SUB: 2010-01-27 00:00:00 EST - P-0Y1M1DT0H0M0S = **2010-02-28 00:00:00 EST** +test_bug_49081_negative__19: SUB: 2010-01-01 00:00:00 EST - P-0Y2M0DT0H0M0S = **2010-03-01 00:00:00 EST** +test_bug_49081_negative__20: SUB: 2010-01-31 00:00:00 EST - P-0Y1M1DT0H0M0S = **2010-03-04 00:00:00 EST** +test_bug_49081_negative__21: SUB: 2010-01-31 00:00:00 EST - P-0Y1M27DT0H0M0S = **2010-03-30 00:00:00 EDT** +test_bug_49081_negative__22: SUB: 2010-01-31 00:00:00 EST - P-0Y1M28DT0H0M0S = **2010-03-31 00:00:00 EDT** +test_bug_49081_negative__23: SUB: 2010-01-31 00:00:00 EST - P-0Y1M29DT0H0M0S = **2010-04-01 00:00:00 EDT** +test_bug_49081_negative__24: SUB: 2010-01-31 00:00:00 EST - P-0Y1M30DT0H0M0S = **2010-04-02 00:00:00 EDT** +test_bug_49081_negative__25: SUB: 2010-01-31 00:00:00 EST - P-0Y2M0DT0H0M0S = **2010-03-31 00:00:00 EDT** +test_bug_49081_negative__26: SUB: 2010-01-30 00:00:00 EST - P-0Y2M1DT0H0M0S = **2010-03-31 00:00:00 EDT** +test_bug_49081_negative__27: SUB: 2009-01-01 00:00:00 EST - P-0Y0M30DT0H0M0S = **2009-01-31 00:00:00 EST** +test_bug_49081_negative__28: SUB: 2010-02-28 00:00:00 EST - P-0Y0M27DT0H0M0S = **2010-03-27 00:00:00 EDT** +test_bug_49081_negative__29: SUB: 2010-02-28 00:00:00 EST - P-0Y1M0DT0H0M0S = **2010-03-28 00:00:00 EDT** +test_bug_49081_negative__30: SUB: 2010-02-28 00:00:00 EST - P-0Y1M1DT0H0M0S = **2010-03-29 00:00:00 EDT** +test_bug_49081_negative__31: SUB: 2010-02-27 00:00:00 EST - P-0Y1M0DT0H0M0S = **2010-03-27 00:00:00 EDT** +test_bug_49081_negative__32: SUB: 2010-02-26 00:00:00 EST - P-0Y1M1DT0H0M0S = **2010-03-27 00:00:00 EDT** diff --git a/ext/date/tests/DateTime_sub-massive.phpt b/ext/date/tests/DateTime_sub-massive.phpt new file mode 100644 index 0000000..a0520ec --- /dev/null +++ b/ext/date/tests/DateTime_sub-massive.phpt @@ -0,0 +1,15 @@ +--TEST-- +DateTime::sub() -- massive +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_massive_positive: SUB: 333333-01-01 16:18:02 EST - P+666666Y0M0DT0H0M0S = **-333333-01-01 16:18:02 EST** +test_massive_negative: SUB: -333333-01-01 16:18:02 EST - P-666666Y0M0DT0H0M0S = **333333-01-01 16:18:02 EST** diff --git a/ext/date/tests/DateTime_sub-spring-type2-type2.phpt b/ext/date/tests/DateTime_sub-spring-type2-type2.phpt new file mode 100644 index 0000000..925f141 --- /dev/null +++ b/ext/date/tests/DateTime_sub-spring-type2-type2.phpt @@ -0,0 +1,31 @@ +--TEST-- +DateTime::sub() -- spring type2 type2 +--CREDITS-- +Daniel Convissor +--FILE-- + +--EXPECT-- +test_time_spring_type2_prev_type2_prev: SUB: 2010-03-13 18:38:28 EST - P+0Y1M2DT16H19M40S = **2010-02-11 02:18:48 EST** +test_time_spring_type2_prev_type2_st: SUB: 2010-03-14 00:10:20 EST - P+0Y0M0DT5H31M52S = **2010-03-13 18:38:28 EST** +test_time_spring_type2_prev_type2_dt: SUB: 2010-03-14 03:16:55 EDT - P+0Y0M0DT7H38M27S = **2010-03-13 19:38:28 EDT** +test_time_spring_type2_prev_type2_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M2DT1H21M31S = **2010-03-13 18:38:28 EDT** +test_time_spring_type2_st_type2_prev: SUB: 2010-03-13 18:38:28 EST - P-0Y0M0DT5H31M52S = **2010-03-14 00:10:20 EST** +test_time_spring_type2_st_type2_st: SUB: 2010-03-14 00:15:35 EST - P+0Y0M0DT0H5M15S = **2010-03-14 00:10:20 EST** +test_time_spring_type2_st_type2_dt: SUB: 2010-03-14 03:16:55 EDT - P+0Y0M0DT2H6M35S = **2010-03-14 01:10:20 EDT** +test_time_spring_type2_st_type2_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M1DT18H49M39S = **2010-03-14 01:10:20 EDT** +test_time_spring_type2_dt_type2_prev: SUB: 2010-03-13 18:38:28 EST - P-0Y0M0DT7H38M27S = **2010-03-14 02:16:55 EST** +test_time_spring_type2_dt_type2_st: SUB: 2010-03-14 00:10:20 EST - P-0Y0M0DT2H6M35S = **2010-03-14 02:16:55 EST** +test_time_spring_type2_dt_type2_dt: SUB: 2010-03-14 05:19:56 EDT - P+0Y0M0DT2H3M1S = **2010-03-14 03:16:55 EDT** +test_time_spring_type2_dt_type2_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M1DT16H43M4S = **2010-03-14 03:16:55 EDT** +test_time_spring_type2_post_type2_prev: SUB: 2010-03-13 18:38:28 EST - P-0Y0M2DT1H21M31S = **2010-03-15 19:59:59 EST** +test_time_spring_type2_post_type2_st: SUB: 2010-03-14 00:10:20 EST - P-0Y0M1DT18H49M39S = **2010-03-15 18:59:59 EST** +test_time_spring_type2_post_type2_dt: SUB: 2010-03-14 03:16:55 EDT - P-0Y0M1DT16H43M4S = **2010-03-15 19:59:59 EDT** +test_time_spring_type2_post_type2_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M0DT1H2M4S = **2010-03-15 18:57:55 EDT** +test_time_spring_type2_stsec_type2_dtsec: SUB: 2010-03-14 03:00:00 EDT - P+0Y0M0DT0H0M1S = **2010-03-14 02:59:59 EDT** +test_time_spring_type2_dtsec_type2_stsec: SUB: 2010-03-14 01:59:59 EST - P-0Y0M0DT0H0M1S = **2010-03-14 02:00:00 EST** diff --git a/ext/date/tests/DateTime_sub-spring-type2-type3.phpt b/ext/date/tests/DateTime_sub-spring-type2-type3.phpt new file mode 100644 index 0000000..a5c43df --- /dev/null +++ b/ext/date/tests/DateTime_sub-spring-type2-type3.phpt @@ -0,0 +1,33 @@ +--TEST-- +DateTime::sub() -- spring type2 type3 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_spring_type2_prev_type3_prev: SUB: 2010-03-13 18:38:28 EST - P+0Y1M2DT16H19M40S = **2010-02-11 02:18:48 EST** +test_time_spring_type2_prev_type3_st: SUB: 2010-03-14 00:10:20 EST - P+0Y0M0DT5H31M52S = **2010-03-13 18:38:28 EST** +test_time_spring_type2_prev_type3_dt: SUB: 2010-03-14 03:16:55 EDT - P+0Y0M0DT7H38M27S = **2010-03-13 18:38:28 EST** +test_time_spring_type2_prev_type3_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M2DT1H21M31S = **2010-03-13 18:38:28 EST** +test_time_spring_type2_st_type3_prev: SUB: 2010-03-13 18:38:28 EST - P-0Y0M0DT5H31M52S = **2010-03-14 00:10:20 EST** +test_time_spring_type2_st_type3_st: SUB: 2010-03-14 00:15:35 EST - P+0Y0M0DT0H5M15S = **2010-03-14 00:10:20 EST** +test_time_spring_type2_st_type3_dt: SUB: 2010-03-14 03:16:55 EDT - P+0Y0M0DT2H6M35S = **2010-03-14 00:10:20 EST** +test_time_spring_type2_st_type3_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M1DT18H49M39S = **2010-03-14 00:10:20 EST** +test_time_spring_type2_dt_type3_prev: SUB: 2010-03-13 18:38:28 EST - P-0Y0M0DT7H38M27S = **2010-03-14 03:16:55 EDT** +test_time_spring_type2_dt_type3_st: SUB: 2010-03-14 00:10:20 EST - P-0Y0M0DT2H6M35S = **2010-03-14 03:16:55 EDT** +test_time_spring_type2_dt_type3_dt: SUB: 2010-03-14 05:19:56 EDT - P+0Y0M0DT2H3M1S = **2010-03-14 03:16:55 EDT** +test_time_spring_type2_dt_type3_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M1DT16H43M4S = **2010-03-14 03:16:55 EDT** +test_time_spring_type2_post_type3_prev: SUB: 2010-03-13 18:38:28 EST - P-0Y0M2DT1H21M31S = **2010-03-15 19:59:59 EDT** +test_time_spring_type2_post_type3_st: SUB: 2010-03-14 00:10:20 EST - P-0Y0M1DT18H49M39S = **2010-03-15 19:59:59 EDT** +test_time_spring_type2_post_type3_dt: SUB: 2010-03-14 03:16:55 EDT - P-0Y0M1DT16H43M4S = **2010-03-15 19:59:59 EDT** +test_time_spring_type2_post_type3_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M0DT1H2M4S = **2010-03-15 18:57:55 EDT** +test_time_spring_type2_stsec_type3_dtsec: SUB: 2010-03-15 03:00:00 EDT - P+0Y0M0DT0H0M1S = **2010-03-13 01:59:59 EST** +test_time_spring_type2_dtsec_type3_stsec: SUB: 2010-03-15 01:59:59 EST - P-0Y0M0DT0H0M1S = **2010-03-15 03:00:00 EDT** diff --git a/ext/date/tests/DateTime_sub-spring-type3-type2.phpt b/ext/date/tests/DateTime_sub-spring-type3-type2.phpt new file mode 100644 index 0000000..bcbbe25 --- /dev/null +++ b/ext/date/tests/DateTime_sub-spring-type3-type2.phpt @@ -0,0 +1,33 @@ +--TEST-- +DateTime::sub() -- spring type3 type2 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_spring_type3_prev_type2_prev: SUB: 2010-03-13 18:38:28 EST - P+0Y1M2DT16H19M40S = **2010-02-11 02:18:48 EST** +test_time_spring_type3_prev_type2_st: SUB: 2010-03-14 00:10:20 EST - P+0Y0M0DT5H31M52S = **2010-03-13 18:38:28 EST** +test_time_spring_type3_prev_type2_dt: SUB: 2010-03-14 03:16:55 EDT - P+0Y0M0DT7H38M27S = **2010-03-13 18:38:28 EST** +test_time_spring_type3_prev_type2_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M2DT1H21M31S = **2010-03-13 18:38:28 EST** +test_time_spring_type3_st_type2_prev: SUB: 2010-03-13 18:38:28 EST - P-0Y0M0DT5H31M52S = **2010-03-14 00:10:20 EST** +test_time_spring_type3_st_type2_st: SUB: 2010-03-14 00:15:35 EST - P+0Y0M0DT0H5M15S = **2010-03-14 00:10:20 EST** +test_time_spring_type3_st_type2_dt: SUB: 2010-03-14 03:16:55 EDT - P+0Y0M0DT2H6M35S = **2010-03-14 00:10:20 EST** +test_time_spring_type3_st_type2_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M1DT18H49M39S = **2010-03-14 00:10:20 EST** +test_time_spring_type3_dt_type2_prev: SUB: 2010-03-13 18:38:28 EST - P-0Y0M0DT7H38M27S = **2010-03-14 03:16:55 EDT** +test_time_spring_type3_dt_type2_st: SUB: 2010-03-14 00:10:20 EST - P-0Y0M0DT2H6M35S = **2010-03-14 03:16:55 EDT** +test_time_spring_type3_dt_type2_dt: SUB: 2010-03-14 05:19:56 EDT - P+0Y0M0DT2H3M1S = **2010-03-14 03:16:55 EDT** +test_time_spring_type3_dt_type2_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M1DT16H43M4S = **2010-03-14 03:16:55 EDT** +test_time_spring_type3_post_type2_prev: SUB: 2010-03-13 18:38:28 EST - P-0Y0M2DT1H21M31S = **2010-03-15 19:59:59 EDT** +test_time_spring_type3_post_type2_st: SUB: 2010-03-14 00:10:20 EST - P-0Y0M1DT18H49M39S = **2010-03-15 19:59:59 EDT** +test_time_spring_type3_post_type2_dt: SUB: 2010-03-14 03:16:55 EDT - P-0Y0M1DT16H43M4S = **2010-03-15 19:59:59 EDT** +test_time_spring_type3_post_type2_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M0DT1H2M4S = **2010-03-15 18:57:55 EDT** +test_time_spring_type3_stsec_type2_dtsec: SUB: 2010-03-15 03:00:00 EDT - P+0Y0M0DT0H0M1S = **2010-03-13 01:59:59 EST** +test_time_spring_type3_dtsec_type2_stsec: SUB: 2010-03-15 01:59:59 EST - P-0Y0M0DT0H0M1S = **2010-03-15 03:00:00 EDT** diff --git a/ext/date/tests/DateTime_sub-spring-type3-type3.phpt b/ext/date/tests/DateTime_sub-spring-type3-type3.phpt new file mode 100644 index 0000000..2ed190f --- /dev/null +++ b/ext/date/tests/DateTime_sub-spring-type3-type3.phpt @@ -0,0 +1,33 @@ +--TEST-- +DateTime::sub() -- spring type3 type3 +--CREDITS-- +Daniel Convissor +--XFAIL-- +Various bugs exist +--FILE-- + +--EXPECT-- +test_time_spring_type3_prev_type3_prev: SUB: 2010-03-13 18:38:28 EST - P+0Y1M2DT16H19M40S = **2010-02-11 02:18:48 EST** +test_time_spring_type3_prev_type3_st: SUB: 2010-03-14 00:10:20 EST - P+0Y0M0DT5H31M52S = **2010-03-13 18:38:28 EST** +test_time_spring_type3_prev_type3_dt: SUB: 2010-03-14 03:16:55 EDT - P+0Y0M0DT7H38M27S = **2010-03-13 18:38:28 EST** +test_time_spring_type3_prev_type3_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M2DT1H21M31S = **2010-03-13 18:38:28 EST** +test_time_spring_type3_st_type3_prev: SUB: 2010-03-13 18:38:28 EST - P-0Y0M0DT5H31M52S = **2010-03-14 00:10:20 EST** +test_time_spring_type3_st_type3_st: SUB: 2010-03-14 00:15:35 EST - P+0Y0M0DT0H5M15S = **2010-03-14 00:10:20 EST** +test_time_spring_type3_st_type3_dt: SUB: 2010-03-14 03:16:55 EDT - P+0Y0M0DT2H6M35S = **2010-03-14 00:10:20 EST** +test_time_spring_type3_st_type3_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M1DT18H49M39S = **2010-03-14 00:10:20 EST** +test_time_spring_type3_dt_type3_prev: SUB: 2010-03-13 18:38:28 EST - P-0Y0M0DT7H38M27S = **2010-03-14 03:16:55 EDT** +test_time_spring_type3_dt_type3_st: SUB: 2010-03-14 00:10:20 EST - P-0Y0M0DT2H6M35S = **2010-03-14 03:16:55 EDT** +test_time_spring_type3_dt_type3_dt: SUB: 2010-03-14 05:19:56 EDT - P+0Y0M0DT2H3M1S = **2010-03-14 03:16:55 EDT** +test_time_spring_type3_dt_type3_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M1DT16H43M4S = **2010-03-14 03:16:55 EDT** +test_time_spring_type3_post_type3_prev: SUB: 2010-03-13 18:38:28 EST - P-0Y0M2DT1H21M31S = **2010-03-15 19:59:59 EDT** +test_time_spring_type3_post_type3_st: SUB: 2010-03-14 00:10:20 EST - P-0Y0M1DT18H49M39S = **2010-03-15 19:59:59 EDT** +test_time_spring_type3_post_type3_dt: SUB: 2010-03-14 03:16:55 EDT - P-0Y0M1DT16H43M4S = **2010-03-15 19:59:59 EDT** +test_time_spring_type3_post_type3_post: SUB: 2010-03-15 19:59:59 EDT - P+0Y0M0DT1H2M4S = **2010-03-15 18:57:55 EDT** +test_time_spring_type3_stsec_type3_dtsec: SUB: 2010-03-15 03:00:00 EDT - P+0Y0M0DT0H0M1S = **2010-03-13 01:59:59 EST** +test_time_spring_type3_dtsec_type3_stsec: SUB: 2010-03-15 01:59:59 EST - P-0Y0M0DT0H0M1S = **2010-03-15 03:00:00 EDT** diff --git a/ext/date/tests/DateTime_verify.phpt b/ext/date/tests/DateTime_verify.phpt new file mode 100644 index 0000000..a03911f --- /dev/null +++ b/ext/date/tests/DateTime_verify.phpt @@ -0,0 +1,183 @@ +--TEST-- +Test DateTime class registration +--FILE-- +getMethods(); +var_dump($methods); + +echo "..and get names of all its class constants\n"; +$constants = $class->getConstants(); +var_dump($constants); + +?> +===DONE=== +--EXPECTF-- +*** Verify DateTime class *** +Verify DateTime class registered OK +object(ReflectionClass)#%d (1) { + ["name"]=> + string(8) "DateTime" +} +..and get names of all its methods +array(18) { + [0]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(11) "__construct" + ["class"]=> + string(8) "DateTime" + } + [1]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(8) "__wakeup" + ["class"]=> + string(8) "DateTime" + } + [2]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(11) "__set_state" + ["class"]=> + string(8) "DateTime" + } + [3]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(16) "createFromFormat" + ["class"]=> + string(8) "DateTime" + } + [4]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(13) "getLastErrors" + ["class"]=> + string(8) "DateTime" + } + [5]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(6) "format" + ["class"]=> + string(8) "DateTime" + } + [6]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(6) "modify" + ["class"]=> + string(8) "DateTime" + } + [7]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(3) "add" + ["class"]=> + string(8) "DateTime" + } + [8]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(3) "sub" + ["class"]=> + string(8) "DateTime" + } + [9]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(11) "getTimezone" + ["class"]=> + string(8) "DateTime" + } + [10]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(11) "setTimezone" + ["class"]=> + string(8) "DateTime" + } + [11]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(9) "getOffset" + ["class"]=> + string(8) "DateTime" + } + [12]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(7) "setTime" + ["class"]=> + string(8) "DateTime" + } + [13]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(7) "setDate" + ["class"]=> + string(8) "DateTime" + } + [14]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(10) "setISODate" + ["class"]=> + string(8) "DateTime" + } + [15]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(12) "setTimestamp" + ["class"]=> + string(8) "DateTime" + } + [16]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(12) "getTimestamp" + ["class"]=> + string(8) "DateTime" + } + [17]=> + &object(ReflectionMethod)#%d (2) { + ["name"]=> + string(4) "diff" + ["class"]=> + string(8) "DateTime" + } +} +..and get names of all its class constants +array(11) { + ["ATOM"]=> + string(13) "Y-m-d\TH:i:sP" + ["COOKIE"]=> + string(16) "l, d-M-y H:i:s T" + ["ISO8601"]=> + string(13) "Y-m-d\TH:i:sO" + ["RFC822"]=> + string(16) "D, d M y H:i:s O" + ["RFC850"]=> + string(16) "l, d-M-y H:i:s T" + ["RFC1036"]=> + string(16) "D, d M y H:i:s O" + ["RFC1123"]=> + string(16) "D, d M Y H:i:s O" + ["RFC2822"]=> + string(16) "D, d M Y H:i:s O" + ["RFC3339"]=> + string(13) "Y-m-d\TH:i:sP" + ["RSS"]=> + string(16) "D, d M Y H:i:s O" + ["W3C"]=> + string(13) "Y-m-d\TH:i:sP" +} +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/big_year.phpt b/ext/date/tests/big_year.phpt new file mode 100644 index 0000000..a15a093 --- /dev/null +++ b/ext/date/tests/big_year.phpt @@ -0,0 +1,17 @@ +--TEST-- +Handling of large year values +--SKIPIF-- + +--FILE-- + +--EXPECT-- +string(36) "Fri, 01 Jan 219250468 00:00:00 -0500" +OK diff --git a/ext/date/tests/bug13142.phpt b/ext/date/tests/bug13142.phpt new file mode 100644 index 0000000..5254142 --- /dev/null +++ b/ext/date/tests/bug13142.phpt @@ -0,0 +1,25 @@ +--TEST-- +Bug #13142 (strtotime handling of "M d H:i:s Y" format) +--INI-- +date.timezone=US/Eastern +--SKIPIF-- + +--FILE-- + +--EXPECT-- +Tue, 04 Sep 2001 16:39:45 -0400 +Tue, 04 Sep 2001 16:39:45 -0400 diff --git a/ext/date/tests/bug14561.phpt b/ext/date/tests/bug14561.phpt new file mode 100644 index 0000000..86a64fd --- /dev/null +++ b/ext/date/tests/bug14561.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #14561 (strtotime() bug) +--INI-- +date.timezone=GMT +--FILE-- + +--EXPECT-- +1134847800 +1134847800 diff --git a/ext/date/tests/bug17988.phpt b/ext/date/tests/bug17988.phpt new file mode 100644 index 0000000..e758b16 --- /dev/null +++ b/ext/date/tests/bug17988.phpt @@ -0,0 +1,34 @@ +--TEST-- +Bug #17988 (strtotime handling of postgresql timestamps) +--INI-- +date.timezone=GMT +--FILE-- + +--EXPECT-- +2002-06-25 14:18:48 +2002-06-25 14:18:48 +2002-06-25 13:18:48 +2002-06-25 12:18:48 +2002-06-25 18:18:48 +2002-06-25 14:18:48 +2002-06-25 14:18:48 +2002-06-25 18:18:48 +2002-06-25 10:18:48 +2002-06-25 17:18:48 +2002-06-25 11:18:48 +2002-06-25 17:48:48 +2002-06-25 10:48:48 diff --git a/ext/date/tests/bug20382-1.phpt b/ext/date/tests/bug20382-1.phpt new file mode 100644 index 0000000..e81ac20 --- /dev/null +++ b/ext/date/tests/bug20382-1.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #20382 [1] (strtotime ("Monday", $date) produces wrong result on DST changeover) +--INI-- +date.timezone=Europe/Amsterdam +--FILE-- + +--EXPECT-- +tStamp=Wednesday 2004-10-27 17:17:17 CEST +result=Monday 2004-11-01 00:00:00 CET +wanted=Monday 2004-11-01 00:00:00 CET diff --git a/ext/date/tests/bug20382-2.phpt b/ext/date/tests/bug20382-2.phpt new file mode 100644 index 0000000..5e07568 --- /dev/null +++ b/ext/date/tests/bug20382-2.phpt @@ -0,0 +1,170 @@ +--TEST-- +Bug #20382 [2] (strtotime ("Monday", $date) produces wrong result on DST changeover) +--FILE-- + +--EXPECT-- +Europe/Andorra +ts = Monday 2037-10-19 17:17:17 CEST +result = Monday 2037-10-26 00:00:00 CET +wanted = Monday 00:00:00 + +Asia/Dubai +ts = Thursday 1970-01-01 17:17:17 GST +result = Monday 1970-01-05 00:00:00 GST +wanted = Monday 00:00:00 + +Asia/Kabul +ts = Thursday 1970-01-01 17:17:17 AFT +result = Monday 1970-01-05 00:00:00 AFT +wanted = Monday 00:00:00 + +America/Antigua +ts = Thursday 1970-01-01 17:17:17 AST +result = Monday 1970-01-05 00:00:00 AST +wanted = Monday 00:00:00 + +America/Anguilla +ts = Thursday 1970-01-01 17:17:17 AST +result = Monday 1970-01-05 00:00:00 AST +wanted = Monday 00:00:00 + +Europe/Tirane +ts = Monday 1983-04-11 17:17:17 CET +result = Monday 1983-04-18 01:00:00 CEST +wanted = Monday 00:00:00 + +Asia/Yerevan +ts = Monday 2037-10-19 17:17:17 AMT +result = Monday 2037-10-26 00:00:00 AMT +wanted = Monday 00:00:00 + +America/Curacao +ts = Thursday 1970-01-01 17:17:17 AST +result = Monday 1970-01-05 00:00:00 AST +wanted = Monday 00:00:00 + +Africa/Luanda +ts = Thursday 1970-01-01 17:17:17 WAT +result = Monday 1970-01-05 00:00:00 WAT +wanted = Monday 00:00:00 + +Antarctica/McMurdo +ts = Monday 2037-09-28 17:17:17 NZDT +result = Monday 2037-10-05 00:00:00 NZDT +wanted = Monday 00:00:00 + +Australia/Adelaide +ts = Friday 1971-01-01 17:17:17 CST +result = Monday 1971-01-04 00:00:00 CST +wanted = Monday 00:00:00 + +Australia/Darwin +ts = Monday 1971-03-29 17:17:17 CST +result = Monday 1971-04-05 00:00:00 CST +wanted = Monday 00:00:00 + +Australia/Perth +ts = Friday 1971-01-01 17:17:17 WST +result = Monday 1971-01-04 00:00:00 WST +wanted = Monday 00:00:00 + +America/Aruba +ts = Monday 1971-03-29 17:17:17 AST +result = Monday 1971-04-05 00:00:00 AST +wanted = Monday 00:00:00 + +Asia/Baku +ts = Friday 1971-01-01 17:17:17 BAKT +result = Monday 1971-01-04 00:00:00 BAKT +wanted = Monday 00:00:00 + +Europe/Sarajevo +ts = Friday 1971-01-01 17:17:17 CET +result = Monday 1971-01-04 00:00:00 CET +wanted = Monday 00:00:00 + +America/Barbados +ts = Friday 1971-01-01 17:17:17 AST +result = Monday 1971-01-04 00:00:00 AST +wanted = Monday 00:00:00 + +Asia/Dacca +ts = Friday 1971-01-01 17:17:17 DACT +result = Monday 1971-01-04 00:00:00 DACT +wanted = Monday 00:00:00 + +Europe/Brussels +ts = Friday 1971-01-01 17:17:17 CET +result = Monday 1971-01-04 00:00:00 CET +wanted = Monday 00:00:00 + +Africa/Ouagadougou +ts = Monday 1971-03-29 17:17:17 GMT +result = Monday 1971-04-05 00:00:00 GMT +wanted = Monday 00:00:00 + +Europe/Tirane +ts = Monday 1983-04-11 17:17:17 CET +result = Monday 1983-04-18 01:00:00 CEST +wanted = Monday 00:00:00 + +America/Buenos_Aires +ts = Monday 1974-09-30 17:17:17 ART +result = Monday 1974-10-07 00:00:00 ART +wanted = Monday 00:00:00 + +America/Rosario +ts = Monday 1974-09-30 17:17:17 ART +result = Monday 1974-10-07 00:00:00 ART +wanted = Monday 00:00:00 + +Europe/Vienna +ts = Monday 1980-03-31 17:17:17 CET +result = Monday 1980-04-07 00:00:00 CEST +wanted = Monday 00:00:00 + +Asia/Baku +ts = Monday 1995-12-25 17:17:17 AZT +result = Monday 1996-01-01 00:00:00 AZT +wanted = Monday 00:00:00 diff --git a/ext/date/tests/bug21399.phpt b/ext/date/tests/bug21399.phpt new file mode 100644 index 0000000..a295c8b --- /dev/null +++ b/ext/date/tests/bug21399.phpt @@ -0,0 +1,10 @@ +--TEST-- +Bug #21399 (strtotime() request for "YYYYMMDDhhmmss [ZZZ]") +--INI-- +date.timezone=GMT +--FILE-- + +--EXPECT-- +2005-06-20 09:14:07 diff --git a/ext/date/tests/bug21966.phpt b/ext/date/tests/bug21966.phpt new file mode 100644 index 0000000..353e7e5 --- /dev/null +++ b/ext/date/tests/bug21966.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #21966 (date() or mktime() returning bad value for mktime month param of '2') +--INI-- +date.timezone=Europe/London +--FILE-- + +--EXPECT-- +27/3/04 = 1080345600 +28/3/04 = 1080432000 +28/3/04 = 1080435600 +29/3/04 = 1080514800 +30/3/04 = 1080601200 diff --git a/ext/date/tests/bug26090.phpt b/ext/date/tests/bug26090.phpt new file mode 100644 index 0000000..4b81949 --- /dev/null +++ b/ext/date/tests/bug26090.phpt @@ -0,0 +1,15 @@ +--TEST-- +Bug #26090 (allow colons in time zone offset to strtotime()) +--INI-- +date.timezone=America/New_York +--FILE-- + +--EXPECT-- +2003-10-28 13:20:30 EST +2003-10-28 13:20:30 EST diff --git a/ext/date/tests/bug26198.phpt b/ext/date/tests/bug26198.phpt new file mode 100644 index 0000000..c957bfc --- /dev/null +++ b/ext/date/tests/bug26198.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #26198 (strtotime handling of "M Y" and "Y M" format) +--FILE-- + +--EXPECT-- +October 2001 (2001-10-01 00:00:00 GMT) +Oct 2001 (2001-10-01 00:00:00 GMT) diff --git a/ext/date/tests/bug26317.phpt b/ext/date/tests/bug26317.phpt new file mode 100644 index 0000000..5b79bec --- /dev/null +++ b/ext/date/tests/bug26317.phpt @@ -0,0 +1,18 @@ +--TEST-- +Bug #26317 (military timezone offset signedness) +--INI-- +date.timezone=GMT0 +--SKIPIF-- +if (!@putenv("TZ=GMT0") || getenv("TZ") != 'GMT0') { + die("skip unable to change TZ enviroment variable\n"); +} +--FILE-- + +--EXPECT-- +2003-11-19 16:20:42 +2003-11-19 16:20:42 +2003-11-19 16:20:42 diff --git a/ext/date/tests/bug26320.phpt b/ext/date/tests/bug26320.phpt new file mode 100644 index 0000000..c8aeb00 --- /dev/null +++ b/ext/date/tests/bug26320.phpt @@ -0,0 +1,16 @@ +--TEST-- +Bug #26320 (strtotime handling of XML Schema/ISO 8601 format) +--INI-- +date.timezone=GMT0 +--SKIPIF-- +if (!@putenv("TZ=GMT0") || getenv("TZ") != 'GMT0') { + die("skip unable to change TZ enviroment variable\n"); +} +--FILE-- + +--EXPECT-- +2003-11-19 12:30:42 +2003-11-19 12:30:42 diff --git a/ext/date/tests/bug26694.phpt b/ext/date/tests/bug26694.phpt new file mode 100644 index 0000000..939b04c --- /dev/null +++ b/ext/date/tests/bug26694.phpt @@ -0,0 +1,10 @@ +--TEST-- +Bug #26694 (strtotime() request for "Sun, 21 Dec 2003 20:38:33 +0000 GMT") +--INI-- +date.timezone=GMT +--FILE-- + +--EXPECT-- +2003-12-21 20:38:33 diff --git a/ext/date/tests/bug27719.phpt b/ext/date/tests/bug27719.phpt new file mode 100644 index 0000000..88c1770 --- /dev/null +++ b/ext/date/tests/bug27719.phpt @@ -0,0 +1,67 @@ +--TEST-- +Bug #27719 (mktime returns incorrect timestamp for dst days) +--INI-- +date.timezone=EST +error_reporting=2047 +--FILE-- + +--EXPECTF-- +1081054800 04/04/04 12:00:00 +%s +1081054800 04/04/04 12:00:00 + +1075870800 02/04/04 12:00:00 +1075867200 02/03/04 11:00:00 +1075870800 02/04/04 12:00:00 + +1081054800 04/04/04 12:00:00 +1081051200 04/03/04 11:00:00 +1081054800 04/04/04 12:00:00 + +1081065600 04/04/04 04:00:00 +1081062000 04/04/04 03:00:00 +1081062000 04/04/04 03:00:00 + +1086325200 06/04/04 01:00:00 +1086321600 06/04/04 12:00:00 +1086321600 06/04/04 12:00:00 diff --git a/ext/date/tests/bug27780.phpt b/ext/date/tests/bug27780.phpt new file mode 100644 index 0000000..af35b8f --- /dev/null +++ b/ext/date/tests/bug27780.phpt @@ -0,0 +1,118 @@ +--TEST-- +Bug #27780 (strtotime(+1 xxx) returns a wrong date/time) +--SKIPIF-- + +--EXPECT-- +America/Chicago +1076824799 [2004-02-14 23:59:59 CST] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +59 seconds] +1076824800 [2004-02-15 00:00:00 CST] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +60 seconds] +1076824801 [2004-02-15 00:00:01 CST] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +61 seconds] +1079503200 [2004-03-17 00:00:00 CST] [2004-04-07 00:00:00 -21 days] +1080367200 [2004-03-27 00:00:00 CST] [2004-04-07 00:00:00 11 days ago] +1080460800 [2004-03-28 02:00:00 CST] [2004-04-07 00:00:00 -10 day +2 hours] +1081227600 [2004-04-06 00:00:00 CDT] [2004-04-07 00:00:00 -1 day] +1081314000 [2004-04-07 00:00:00 CDT] [2004-04-07 00:00:00] +1081317600 [2004-04-07 01:00:00 CDT] [2004-04-07 00:00:00 +1 hour] +1081321200 [2004-04-07 02:00:00 CDT] [2004-04-07 00:00:00 +2 hour] +1081400400 [2004-04-08 00:00:00 CDT] [2004-04-07 00:00:00 +1 day] +1081400400 [2004-04-08 00:00:00 CDT] [2004-04-07 00:00:00 1 day] +1083128400 [2004-04-28 00:00:00 CDT] [2004-04-07 00:00:00 +21 days] + +Europe/Amsterdam +1076799599 [2004-02-14 23:59:59 CET] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +59 seconds] +1076799600 [2004-02-15 00:00:00 CET] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +60 seconds] +1076799601 [2004-02-15 00:00:01 CET] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +61 seconds] +1079478000 [2004-03-17 00:00:00 CET] [2004-04-07 00:00:00 -21 days] +1080342000 [2004-03-27 00:00:00 CET] [2004-04-07 00:00:00 11 days ago] +1080435600 [2004-03-28 03:00:00 CEST] [2004-04-07 00:00:00 -10 day +2 hours] +1081202400 [2004-04-06 00:00:00 CEST] [2004-04-07 00:00:00 -1 day] +1081288800 [2004-04-07 00:00:00 CEST] [2004-04-07 00:00:00] +1081292400 [2004-04-07 01:00:00 CEST] [2004-04-07 00:00:00 +1 hour] +1081296000 [2004-04-07 02:00:00 CEST] [2004-04-07 00:00:00 +2 hour] +1081375200 [2004-04-08 00:00:00 CEST] [2004-04-07 00:00:00 +1 day] +1081375200 [2004-04-08 00:00:00 CEST] [2004-04-07 00:00:00 1 day] +1083103200 [2004-04-28 00:00:00 CEST] [2004-04-07 00:00:00 +21 days] + +Asia/Jerusalem +1076795999 [2004-02-14 23:59:59 IST] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +59 seconds] +1076796000 [2004-02-15 00:00:00 IST] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +60 seconds] +1076796001 [2004-02-15 00:00:01 IST] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +61 seconds] +1079474400 [2004-03-17 00:00:00 IST] [2004-04-07 00:00:00 -21 days] +1080338400 [2004-03-27 00:00:00 IST] [2004-04-07 00:00:00 11 days ago] +1080432000 [2004-03-28 02:00:00 IST] [2004-04-07 00:00:00 -10 day +2 hours] +1081202400 [2004-04-06 00:00:00 IST] [2004-04-07 00:00:00 -1 day] +1081288800 [2004-04-07 00:00:00 IST] [2004-04-07 00:00:00] +1081292400 [2004-04-07 02:00:00 IDT] [2004-04-07 00:00:00 +1 hour] +1081292400 [2004-04-07 02:00:00 IDT] [2004-04-07 00:00:00 +2 hour] +1081371600 [2004-04-08 00:00:00 IDT] [2004-04-07 00:00:00 +1 day] +1081371600 [2004-04-08 00:00:00 IDT] [2004-04-07 00:00:00 1 day] +1083099600 [2004-04-28 00:00:00 IDT] [2004-04-07 00:00:00 +21 days] + +Asia/Singapore +1076774399 [2004-02-14 23:59:59 SGT] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +59 seconds] +1076774400 [2004-02-15 00:00:00 SGT] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +60 seconds] +1076774401 [2004-02-15 00:00:01 SGT] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +61 seconds] +1079452800 [2004-03-17 00:00:00 SGT] [2004-04-07 00:00:00 -21 days] +1080316800 [2004-03-27 00:00:00 SGT] [2004-04-07 00:00:00 11 days ago] +1080410400 [2004-03-28 02:00:00 SGT] [2004-04-07 00:00:00 -10 day +2 hours] +1081180800 [2004-04-06 00:00:00 SGT] [2004-04-07 00:00:00 -1 day] +1081267200 [2004-04-07 00:00:00 SGT] [2004-04-07 00:00:00] +1081270800 [2004-04-07 01:00:00 SGT] [2004-04-07 00:00:00 +1 hour] +1081274400 [2004-04-07 02:00:00 SGT] [2004-04-07 00:00:00 +2 hour] +1081353600 [2004-04-08 00:00:00 SGT] [2004-04-07 00:00:00 +1 day] +1081353600 [2004-04-08 00:00:00 SGT] [2004-04-07 00:00:00 1 day] +1083081600 [2004-04-28 00:00:00 SGT] [2004-04-07 00:00:00 +21 days] + +America/Sao_Paulo +1076810399 [2004-02-14 23:59:59 BRST] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +59 seconds] +1076814000 [2004-02-15 00:00:00 BRT] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +60 seconds] +1076814001 [2004-02-15 00:00:01 BRT] [2004-04-07 00:00:00 -2 months +7 days +23 hours +59 minutes +61 seconds] +1079492400 [2004-03-17 00:00:00 BRT] [2004-04-07 00:00:00 -21 days] +1080356400 [2004-03-27 00:00:00 BRT] [2004-04-07 00:00:00 11 days ago] +1080450000 [2004-03-28 02:00:00 BRT] [2004-04-07 00:00:00 -10 day +2 hours] +1081220400 [2004-04-06 00:00:00 BRT] [2004-04-07 00:00:00 -1 day] +1081306800 [2004-04-07 00:00:00 BRT] [2004-04-07 00:00:00] +1081310400 [2004-04-07 01:00:00 BRT] [2004-04-07 00:00:00 +1 hour] +1081314000 [2004-04-07 02:00:00 BRT] [2004-04-07 00:00:00 +2 hour] +1081393200 [2004-04-08 00:00:00 BRT] [2004-04-07 00:00:00 +1 day] +1081393200 [2004-04-08 00:00:00 BRT] [2004-04-07 00:00:00 1 day] +1083121200 [2004-04-28 00:00:00 BRT] [2004-04-07 00:00:00 +21 days] diff --git a/ext/date/tests/bug28024.phpt b/ext/date/tests/bug28024.phpt new file mode 100644 index 0000000..b5f97bd --- /dev/null +++ b/ext/date/tests/bug28024.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #28024 (Changed behavior of strtotime()) +--INI-- +date.timezone=Europe/Berlin +--FILE-- + +--EXPECT-- +1072972800 +2004-01-01 17:00:00 CET diff --git a/ext/date/tests/bug28088.phpt b/ext/date/tests/bug28088.phpt new file mode 100644 index 0000000..c310139 --- /dev/null +++ b/ext/date/tests/bug28088.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #28088 (strtotime() cannot convert 00 hours") +--INI-- +date.timezone=UTC +--FILE-- + +--EXPECT-- +The following line rightly shows the correct date time: +04/04/04 2345 +But the following line fails to show the correct date time: +04/04/04 0045 diff --git a/ext/date/tests/bug28599.phpt b/ext/date/tests/bug28599.phpt new file mode 100644 index 0000000..fcd17b4 --- /dev/null +++ b/ext/date/tests/bug28599.phpt @@ -0,0 +1,9 @@ +--TEST-- +Bug #28599 (strtotime fails with zero base time) +--FILE-- + +--EXPECT-- +15-11-2004 16:49:33 diff --git a/ext/date/tests/bug29150.phpt b/ext/date/tests/bug29150.phpt new file mode 100644 index 0000000..d91d68d --- /dev/null +++ b/ext/date/tests/bug29150.phpt @@ -0,0 +1,10 @@ +--TEST-- +Bug #29150 (Roman number format for months) +--INI-- +date.timezone=GMT +--FILE-- + +--EXPECT-- +2005-06-20 00:00:00 diff --git a/ext/date/tests/bug29585.phpt b/ext/date/tests/bug29585.phpt new file mode 100644 index 0000000..3945699 --- /dev/null +++ b/ext/date/tests/bug29585.phpt @@ -0,0 +1,9 @@ +--TEST-- +Bug #29585 (Support week numbers in strtotime()) +--FILE-- + +--EXPECT-- +2004-07-19 00:00:00 diff --git a/ext/date/tests/bug29595.phpt b/ext/date/tests/bug29595.phpt new file mode 100644 index 0000000..285ade1 --- /dev/null +++ b/ext/date/tests/bug29595.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #29595 (Roman number format for months) +--FILE-- + +--EXPECT-- +1092026907 diff --git a/ext/date/tests/bug30096.phpt b/ext/date/tests/bug30096.phpt new file mode 100644 index 0000000..fa4f716 --- /dev/null +++ b/ext/date/tests/bug30096.phpt @@ -0,0 +1,48 @@ +--TEST-- +Bug #30096 (gmmktime does not return the corrent time) +--INI-- +error_reporting=2047 +--FILE-- + dst\n"; +$ts = -1; +gm_date_check(01,00,00,03,27,2005); +gm_date_check(02,00,00,03,27,2005); +gm_date_check(03,00,00,03,27,2005); +gm_date_check(04,00,00,03,27,2005); + +echo "\ndst --> no dst\n"; +$ts = -1; +gm_date_check(01,00,00,10,30,2005); +gm_date_check(02,00,00,10,30,2005); +gm_date_check(03,00,00,10,30,2005); +gm_date_check(04,00,00,10,30,2005); + +function gm_date_check($hour, $minute, $second, $month, $day, $year) { + global $ts, $tsold; + + echo "gmmktime($hour,$minute,$second,$month,$day,$year): "; + + $tsold = $ts; + $ts = gmmktime($hour, $minute, $second, $month, $day, $year); + + echo $ts, " | gmdate('r', $ts):", gmdate('r', $ts); + if ($tsold > 0) { + echo " | Diff: " . ($ts - $tsold); + } + echo "\n"; +} + +?> +--EXPECT-- +no dst --> dst +gmmktime(1,0,0,3,27,2005): 1111885200 | gmdate('r', 1111885200):Sun, 27 Mar 2005 01:00:00 +0000 +gmmktime(2,0,0,3,27,2005): 1111888800 | gmdate('r', 1111888800):Sun, 27 Mar 2005 02:00:00 +0000 | Diff: 3600 +gmmktime(3,0,0,3,27,2005): 1111892400 | gmdate('r', 1111892400):Sun, 27 Mar 2005 03:00:00 +0000 | Diff: 3600 +gmmktime(4,0,0,3,27,2005): 1111896000 | gmdate('r', 1111896000):Sun, 27 Mar 2005 04:00:00 +0000 | Diff: 3600 + +dst --> no dst +gmmktime(1,0,0,10,30,2005): 1130634000 | gmdate('r', 1130634000):Sun, 30 Oct 2005 01:00:00 +0000 +gmmktime(2,0,0,10,30,2005): 1130637600 | gmdate('r', 1130637600):Sun, 30 Oct 2005 02:00:00 +0000 | Diff: 3600 +gmmktime(3,0,0,10,30,2005): 1130641200 | gmdate('r', 1130641200):Sun, 30 Oct 2005 03:00:00 +0000 | Diff: 3600 +gmmktime(4,0,0,10,30,2005): 1130644800 | gmdate('r', 1130644800):Sun, 30 Oct 2005 04:00:00 +0000 | Diff: 3600 diff --git a/ext/date/tests/bug30532.phpt b/ext/date/tests/bug30532.phpt new file mode 100644 index 0000000..6794b9d --- /dev/null +++ b/ext/date/tests/bug30532.phpt @@ -0,0 +1,25 @@ +--TEST-- +Bug #30532 (strtotime - crossing daylight savings time) +--INI-- +date.timezone=America/New_York +--FILE-- + +--EXPECT-- +2004-10-31 01:00:00 EDT +2004-10-31 01:00:00 EST +2004-10-31 02:00:00 EST + +2004-10-31 01:00:00 EDT +2004-10-31 02:00:00 EST +2004-10-31 03:00:00 EST diff --git a/ext/date/tests/bug32086.phpt b/ext/date/tests/bug32086.phpt new file mode 100644 index 0000000..e065c0b --- /dev/null +++ b/ext/date/tests/bug32086.phpt @@ -0,0 +1,51 @@ +--TEST-- +Bug #32086 (strtotime don't work in DST) +--INI-- +date.timezone=America/Sao_Paulo +--FILE-- + +--EXPECT-- +1099278000 +1099364400 +1099364400 +1099364400 +1099447200 +2004-11-01 00:00:00 BRT +2004-11-02 01:00:00 BRST +2004-11-02 01:00:00 BRST +2004-11-02 01:00:00 BRST +2004-11-03 00:00:00 BRST +1108778400 +1108868400 +1108868400 +1108868400 +1108954800 +2005-02-19 00:00:00 BRST +2005-02-20 00:00:00 BRT +2005-02-20 00:00:00 BRT +2005-02-20 00:00:00 BRT +2005-02-21 00:00:00 BRT diff --git a/ext/date/tests/bug32270.phpt b/ext/date/tests/bug32270.phpt new file mode 100644 index 0000000..4533e06 --- /dev/null +++ b/ext/date/tests/bug32270.phpt @@ -0,0 +1,26 @@ +--TEST-- +Bug #32270 (strtotime/date behavior) +--INI-- +date.timezone=America/Los_Angeles +--FILE-- + +--EXPECT-- +01/01/1902 00:00:00 PST +-2145888000 +01/01/1950 00:00:00 PST +-631123200 +01/01/2000 00:00:00 PST +946713600 diff --git a/ext/date/tests/bug32555.phpt b/ext/date/tests/bug32555.phpt new file mode 100644 index 0000000..fca34ff --- /dev/null +++ b/ext/date/tests/bug32555.phpt @@ -0,0 +1,21 @@ +--TEST-- +Bug #32555 (strtotime("tomorrow") can return false) +--SKIPIF-- + +--INI-- +date.timezone=US/Eastern +--FILE-- + +--EXPECT-- +Sat Apr 2 02:30:00 2005 EST +Sun Apr 3 00:00:00 2005 EST +Sun Apr 3 03:30:00 2005 EDT +Mon Apr 4 02:30:00 2005 EDT diff --git a/ext/date/tests/bug32588.phpt b/ext/date/tests/bug32588.phpt new file mode 100644 index 0000000..4ecadf4 --- /dev/null +++ b/ext/date/tests/bug32588.phpt @@ -0,0 +1,14 @@ +--TEST-- +Bug #32588 (strtotime() error for 'last xxx' DST problem) +--INI-- +date.timezone=America/New_York +--FILE-- + +--EXPECT-- +1116406800 +1116407554 +1116443554 diff --git a/ext/date/tests/bug33414-1.phpt b/ext/date/tests/bug33414-1.phpt new file mode 100644 index 0000000..03d9b4c --- /dev/null +++ b/ext/date/tests/bug33414-1.phpt @@ -0,0 +1,321 @@ +--TEST-- +Bug #33414 [1] (Comprehensive list of incorrect days returned after strotime() / date() tests) +--INI-- +date.timezone=America/Mendoza +--FILE-- + +--EXPECT-- +TZ=America/Mendoza - wrong day. +tStamp=Sunday 1992-10-18 17:17:17 ARST 1 +result=Sunday 1992-10-25 00:00:00 ARST 1 +wanted=Sunday 00:00:00 + +TZ=America/Catamarca - wrong day. +tStamp=Sunday 1990-10-21 17:17:17 ARST 1 +result=Sunday 1990-10-28 00:00:00 ARST 1 +wanted=Sunday 00:00:00 + +TZ=America/Cordoba - wrong day. +tStamp=Sunday 1990-10-21 17:17:17 ARST 1 +result=Sunday 1990-10-28 00:00:00 ARST 1 +wanted=Sunday 00:00:00 + +TZ=America/Rosario - wrong day. +tStamp=Tuesday 1991-10-15 17:17:17 WART 0 +result=Tuesday 1991-10-22 00:00:00 ARST 1 +wanted=Tuesday 00:00:00 + +TZ=Europe/Vienna - wrong day - giving unexpected results, at +least on my system :-) +tStamp=Thursday 1980-04-03 17:17:17 CET 0 +result=Thursday 1980-04-10 00:00:00 CEST 1 +wanted=Thursday 00:00:00 + +TZ=Asia/Baku - wrong day. +tStamp=Sunday 1992-09-20 17:17:17 AZST 1 +result=Sunday 1992-09-27 00:00:00 AZT 0 +wanted=Sunday 00:00:00 + +TZ=America/Noronha - wrong day. +tStamp=Friday 1999-10-01 17:17:17 FNT 0 +result=Friday 1999-10-08 00:00:00 FNST 1 +wanted=Friday 00:00:00 + +TZ=America/Havana - wrong day. +tStamp=Thursday 2004-10-28 17:17:17 CDT 1 +result=Thursday 2004-11-04 00:00:00 CDT 1 +wanted=Thursday 00:00:00 + +TZ=Europe/Tallinn - wrong day. +tStamp=Saturday 2002-03-30 17:17:17 EET 0 +result=Saturday 2002-04-06 00:00:00 EEST 1 +wanted=Saturday 00:00:00 + +TZ=Asia/Jerusalem - wrong day. +tStamp=Thursday 2005-09-29 17:17:17 IDT 1 +result=Thursday 2005-10-06 00:00:00 IDT 1 +wanted=Thursday 00:00:00 + +TZ=Europe/Vilnius - wrong day. +tStamp=Friday 2003-03-28 17:17:17 EET 0 +result=Friday 2003-04-04 00:00:00 EEST 1 +wanted=Friday 00:00:00 + +TZ=Pacific/Kwajalein - wrong day. +tStamp=Friday 1993-08-13 17:17:17 KWAT 0 +result=Saturday 1993-08-21 00:00:00 MHT 0 +wanted=Friday 00:00:00 + +TZ=Asia/Ulan_Bator - wrong day. +tStamp=Saturday 2001-09-22 17:17:17 ULAST 1 +result=Saturday 2001-09-29 00:00:00 ULAST 1 +wanted=Saturday 00:00:00 + +TZ=America/Cancun - wrong day. +tStamp=Sunday 2002-04-07 17:17:17 CDT 1 +result=Sunday 2002-04-14 00:00:00 CDT 1 +wanted=Sunday 00:00:00 + +TZ=America/Mexico_City - wrong day. +tStamp=Wednesday 2002-04-03 17:17:17 CST 0 +result=Wednesday 2002-04-10 00:00:00 CDT 1 +wanted=Wednesday 00:00:00 + +TZ=America/Mazatlan - wrong day. +tStamp=Tuesday 2002-04-02 17:17:17 MST 0 +result=Tuesday 2002-04-09 00:00:00 MDT 1 +wanted=Tuesday 00:00:00 + +TZ=America/Chihuahua - wrong day. +tStamp=Thursday 2002-04-04 17:17:17 MST 0 +result=Thursday 2002-04-11 00:00:00 MDT 1 +wanted=Thursday 00:00:00 + +TZ=Asia/Kuala_Lumpur - wrong day. +tStamp=Monday 1981-12-28 17:17:17 MALT 0 +result=Monday 1982-01-04 00:00:00 MYT 0 +wanted=Monday 00:00:00 + +TZ=Pacific/Chatham - wrong day. +tStamp=Monday 1974-10-28 17:17:17 CHAST 0 +result=Monday 1974-11-04 00:00:00 CHADT 1 +wanted=Monday 00:00:00 + +TZ=America/Lima - wrong day. +tStamp=Thursday 1985-12-26 17:17:17 PET 0 +result=Thursday 1986-01-02 00:00:00 PEST 1 +wanted=Thursday 00:00:00 + +TZ=Asia/Karachi - wrong day. +tStamp=Friday 2002-04-05 17:17:17 PKT 0 +result=Friday 2002-04-12 00:00:00 PKST 1 +wanted=Friday 00:00:00 + +TZ=America/Asuncion - wrong day. +tStamp=Wednesday 2002-02-27 17:17:17 PYST 1 +result=Wednesday 2002-03-06 00:00:00 PYST 1 +wanted=Wednesday 00:00:00 + +TZ=Asia/Singapore - wrong day. +tStamp=Thursday 1981-12-31 17:17:17 SGT 0 +result=Thursday 1982-01-07 00:00:00 SGT 0 +wanted=Thursday 00:00:00 + +TZ=America/Montevideo - wrong day. +tStamp=Thursday 2004-09-16 17:17:17 UYT 0 +result=Thursday 2004-09-23 00:00:00 UYST 1 +wanted=Thursday 00:00:00 diff --git a/ext/date/tests/bug33414-2.phpt b/ext/date/tests/bug33414-2.phpt new file mode 100644 index 0000000..51cbe3b --- /dev/null +++ b/ext/date/tests/bug33414-2.phpt @@ -0,0 +1,121 @@ +--TEST-- +Bug #33414 [2] (Comprehensive list of incorrect days returned after strotime() / date() tests) +--FILE-- + +--EXPECT-- +TZ=Pacific/Rarotonga - wrong day. +tStamp=Thursday 1970-01-01 17:17:17 CKT 0 +result=Tuesday 1970-01-06 00:00:00 CKT 0 +wanted=Tuesday 00:00:00 + +TZ=Atlantic/South_Georgia - wrong day. +tStamp=Thursday 1970-01-01 17:17:17 GST 0 +result=Tuesday 1970-01-06 00:00:00 GST 0 +wanted=Tuesday 00:00:00 + +TZ=America/Port-au-Prince - wrong day. +tStamp=Monday 2005-03-28 17:17:17 EST 0 +result=Monday 2005-04-04 00:00:00 EDT 1 +wanted=Monday 00:00:00 + +TZ=Pacific/Enderbury - wrong day, off by 2 days. +tStamp=Thursday 1970-01-01 17:17:17 PHOT 0 +result=Monday 1970-01-05 00:00:00 PHOT 0 +wanted=Monday 00:00:00 + +TZ=Pacific/Kiritimati - wrong day, off by 2 days. +tStamp=Thursday 1970-01-01 17:17:17 LINT 0 +result=Monday 1970-01-05 00:00:00 LINT 0 +wanted=Monday 00:00:00 + +TZ=America/Managua - wrong day. +tStamp=Tuesday 2005-04-05 17:17:17 CST 0 +result=Tuesday 2005-04-12 00:00:00 CDT 1 +wanted=Tuesday 00:00:00 + +TZ=Pacific/Pitcairn - wrong day. +tStamp=Thursday 1970-01-01 17:17:17 PNT 0 +result=Wednesday 1970-01-07 00:00:00 PNT 0 +wanted=Wednesday 00:00:00 + +TZ=Pacific/Fakaofo - wrong day. +tStamp=Thursday 1970-01-01 17:17:17 TKT 0 +result=Saturday 1970-01-03 00:00:00 TKT 0 +wanted=Saturday 00:00:00 + +TZ=Pacific/Johnston - wrong day. +tStamp=Thursday 1970-01-01 17:17:17 HST 0 +result=Friday 1970-01-02 00:00:00 HST 0 +wanted=Friday 00:00:00 diff --git a/ext/date/tests/bug33415-1.phpt b/ext/date/tests/bug33415-1.phpt new file mode 100644 index 0000000..698252a --- /dev/null +++ b/ext/date/tests/bug33415-1.phpt @@ -0,0 +1,33 @@ +--TEST-- +Bug #33415 [1] (Possibly invalid non-one-hour DST or timezone shifts) +--FILE-- + +--EXPECT-- +TZ=America/Jujuy - Is it OK for this to be 2 AM, rather than 1 +AM as per most DST transitions? +tStamp=Monday 1990-10-15 17:17:17 WART 0 +result=Monday 1990-10-22 00:00:00 WART 0 +wanted=Monday 00:00:00 + +TZ=Asia/Tbilisi - Is it OK for this to be 2 AM? +tStamp=Sunday 2005-03-20 17:17:17 GET 0 +result=Sunday 2005-03-27 00:00:00 GET 0 +wanted=Sunday 00:00:00 diff --git a/ext/date/tests/bug33415-2.phpt b/ext/date/tests/bug33415-2.phpt new file mode 100644 index 0000000..424be76 --- /dev/null +++ b/ext/date/tests/bug33415-2.phpt @@ -0,0 +1,342 @@ +--TEST-- +Bug #33415 [2] (Possibly invalid non-one-hour DST or timezone shifts) +--FILE-- + +--EXPECT-- +TZ=Africa/Bujumbura - *Note*: Unexpected, as does not appear to +have a DST or timezone transition. +tStamp=Thursday 1970-01-01 17:17:17 CAT 0 +result=Wednesday 1970-01-07 00:00:00 CAT 0 +wanted=Wednesday 00:00:00 + +TZ=Asia/Thimbu - Is it OK for this to be 0:30 AM? yes +tStamp=Thursday 1987-09-24 17:17:17 IST 0 +result=Thursday 1987-10-01 00:30:00 BTT 0 +wanted=Thursday 00:30:00 + +TZ=Indian/Cocos - Is it OK for this to be 6:30 AM? Note: does not +appear to have a DST or timezone transition. +tStamp=Thursday 1970-01-01 17:17:17 CCT 0 +result=Thursday 1970-01-08 00:00:00 CCT 0 +wanted=Thursday 00:00:00 + +TZ=Africa/Lubumbashi - Is it OK for this to be 2 AM? Note: does +not appear to have a DST or timezone transition. +tStamp=Thursday 1970-01-01 17:17:17 CAT 0 +result=Saturday 1970-01-03 00:00:00 CAT 0 +wanted=Saturday 00:00:00 + +TZ=Asia/Kashgar - Is it OK for this to be 3 AM? yes +tStamp=Thursday 1980-04-24 17:17:17 KAST 0 +result=Thursday 1980-05-01 03:00:00 CST 0 +wanted=Thursday 03:00:00 + +TZ=Indian/Christmas - Is it OK for this to be 7 AM? Note: does +not appear to have a DST or timezone transition. +tStamp=Thursday 1970-01-01 17:17:17 CXT 0 +result=Sunday 1970-01-04 00:00:00 CXT 0 +wanted=Sunday 00:00:00 + +TZ=America/Santo_Domingo - Is it OK for this to be 0:30 AM? yes +tStamp=Sunday 1970-10-18 17:17:17 EST 0 +result=Sunday 1970-10-25 00:30:00 EHDT 1 +wanted=Sunday 00:30:00 + +TZ=Pacific/Truk - Is it OK for this to be 10 AM? Note: does not +appear to have a DST or timezone transition. +tStamp=Thursday 1970-01-01 17:17:17 CHUT 0 +result=Tuesday 1970-01-06 00:00:00 CHUT 0 +wanted=Tuesday 00:00:00 + +TZ=Pacific/Ponape - Is it OK for this to be 11 AM? Note: does +not appear to have a DST or timezone transition. +tStamp=Thursday 1970-01-01 17:17:17 PONT 0 +result=Monday 1970-01-05 00:00:00 PONT 0 +wanted=Monday 00:00:00 + +TZ=America/Scoresbysund - Is it OK for this to be 2 AM? yes +tStamp=Sunday 1981-03-22 17:17:17 CGT 0 +result=Sunday 1981-03-29 02:00:00 EGST 1 +wanted=Sunday 02:00:00 + +TZ=America/Guyana - Is it OK for this to be 0:45 AM? yes +tStamp=Thursday 1975-07-24 17:17:17 GYT 0 +result=Thursday 1975-07-31 00:45:00 GYT 0 +wanted=Thursday 00:45:00 + +TZ=Asia/Tehran - Is it OK for this to be 0:30 AM? yes +tStamp=Tuesday 1977-10-25 17:17:17 IRST 0 +result=Tuesday 1977-11-01 00:30:00 IRST 0 +wanted=Tuesday 00:30:00 + +TZ=Pacific/Tarawa - Is it OK for this to be Midday? Note: does +not appear to have a DST or timezone transition. +tStamp=Thursday 1970-01-01 17:17:17 GILT 0 +result=Monday 1970-01-05 00:00:00 GILT 0 +wanted=Monday 00:00:00 + +TZ=Africa/Monrovia - Is it OK for this to be 00:44:30 AM? yes +tStamp=Monday 1972-04-24 17:17:17 LRT 0 +result=Monday 1972-05-01 00:44:30 GMT 0 +wanted=Monday 00:44:30 + +TZ=Asia/Katmandu - Is it OK for this to 0:15 AM?. yes +tStamp=Wednesday 1985-12-25 17:17:17 IST 0 +result=Wednesday 1986-01-01 00:15:00 NPT 0 +wanted=Wednesday 00:15:00 + +TZ=Pacific/Nauru - Is it OK for this to be 0:30? yes +tStamp=Tuesday 1979-04-24 17:17:17 NRT 0 +result=Tuesday 1979-05-01 00:30:00 NRT 0 +wanted=Tuesday 00:30:00 + +TZ=Pacific/Niue - Is it OK for this to be 0:30 AM? yes +tStamp=Sunday 1978-09-24 17:17:17 NUT 0 +result=Sunday 1978-10-01 00:30:00 NUT 0 +wanted=Sunday 00:30:00 + +TZ=Pacific/Port_Moresby - Is it OK for this to be 10 AM? No DST +or timezone transition. +tStamp=Thursday 1970-01-01 17:17:17 PGT 0 +result=Thursday 1970-01-08 00:00:00 PGT 0 +wanted=Thursday 00:00:00 + +TZ=America/Miquelon - Is it OK for this to be 1 AM ? yes +tStamp=Thursday 1980-04-24 17:17:17 AST 0 +result=Thursday 1980-05-01 01:00:00 PMST 0 +wanted=Thursday 01:00:00 + +TZ=Pacific/Palau - Is it OK for this to be 9 AM? No DST or +timezone transition. +tStamp=Thursday 1970-01-01 17:17:17 PWT 0 +result=Saturday 1970-01-03 00:00:00 PWT 0 +wanted=Saturday 00:00:00 + +TZ=Pacific/Funafuti - Is it OK for this to be midday? Note: does +not appear to have a DST or timezone transition. +tStamp=Thursday 1970-01-01 17:17:17 TVT 0 +result=Wednesday 1970-01-07 00:00:00 TVT 0 +wanted=Wednesday 00:00:00 + +TZ=Pacific/Wake - Is it OK for this to be midday? Note: does not +appear to have a DST or timezone transition. +tStamp=Thursday 1970-01-01 17:17:17 WAKT 0 +result=Tuesday 1970-01-06 00:00:00 WAKT 0 +wanted=Tuesday 00:00:00 + +TZ=Pacific/Wallis - Is it OK for this to be midday? Note: does +not appear to have a DST or timezone transition. +tStamp=Thursday 1970-01-01 17:17:17 WFT 0 +result=Tuesday 1970-01-06 00:00:00 WFT 0 +wanted=Tuesday 00:00:00 + +TZ=America/Paramaribo - Is it OK for this to be 0:30 AM? yes +tStamp=Monday 1984-09-24 17:17:17 SRT 0 +result=Monday 1984-10-01 00:30:00 SRT 0 +wanted=Monday 00:30:00 diff --git a/ext/date/tests/bug33452.phpt b/ext/date/tests/bug33452.phpt new file mode 100644 index 0000000..e5abebf --- /dev/null +++ b/ext/date/tests/bug33452.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #33452 (Support for year accompanying ISO week nr) +--FILE-- + +--EXPECT-- +2005-53 +2004-53 diff --git a/ext/date/tests/bug33532.phpt b/ext/date/tests/bug33532.phpt new file mode 100644 index 0000000..1486308 --- /dev/null +++ b/ext/date/tests/bug33532.phpt @@ -0,0 +1,43 @@ +--TEST-- +Bug #33532 (Different output for strftime() and date()) +--INI-- +error_reporting=2047 +date.timezone=UTC +--SKIPIF-- + +--FILE-- + +--EXPECT-- +TZ has NOT been set +Should strftime==datestr? Strftime seems to assume GMT tStamp. +input 10:00:00 AM July 1 2005 +strftime 10:00:00 AM July 1 2005 UTC +0000 +datestr 10:00:00 AM July 1 2005 UTC + +Setting TZ +input 10:00:00 AM July 1 2005 +strftime 10:00:00 AM July 1 2005 EST +1000 +datestr 10:00:00 AM July 1 2005 EST diff --git a/ext/date/tests/bug33536.phpt b/ext/date/tests/bug33536.phpt new file mode 100644 index 0000000..aa5f5dd --- /dev/null +++ b/ext/date/tests/bug33536.phpt @@ -0,0 +1,13 @@ +--TEST-- +Bug #33456 (strtotime defaults to now even on non time string) +--FILE-- + +--EXPECT-- +bool(false) +1970-01-01 +1970-01-01 diff --git a/ext/date/tests/bug33562.phpt b/ext/date/tests/bug33562.phpt new file mode 100644 index 0000000..8383a79 --- /dev/null +++ b/ext/date/tests/bug33562.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #33562 (date("") crashes) +--FILE-- + +--EXPECT-- +[] +done diff --git a/ext/date/tests/bug33563.phpt b/ext/date/tests/bug33563.phpt new file mode 100644 index 0000000..9f4eb7b --- /dev/null +++ b/ext/date/tests/bug33563.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #33563 (strtotime('+1 month',$abc) cant get right time) +--FILE-- + +--EXPECT-- +strCurrDate:2005-06-30 21:04:23 strMonAfter:2005-07-30 21:04:23 diff --git a/ext/date/tests/bug33578.phpt b/ext/date/tests/bug33578.phpt new file mode 100644 index 0000000..4ba6df8 --- /dev/null +++ b/ext/date/tests/bug33578.phpt @@ -0,0 +1,21 @@ +--TEST-- +Bug #33578 (strtotime() doesn't parse "11 Oct" format") +--FILE-- + +--EXPECTF-- +10/11/%d +10/11/%d +10/11/2005 +10/11/%d +10/11/%d +10/11/2005 +10/11/2005 diff --git a/ext/date/tests/bug33869.phpt b/ext/date/tests/bug33869.phpt new file mode 100644 index 0000000..6957a6b --- /dev/null +++ b/ext/date/tests/bug33869.phpt @@ -0,0 +1,26 @@ +--TEST-- +Bug #33869 (strtotime() doesn't parse "+1days" format) +--FILE-- + +--EXPECT-- +2005-01-06T01:01:01+0000 +2005-02-01T01:01:01+0000 +2006-01-01T01:01:01+0000 +2005-01-06T01:01:01+0000 +2005-02-01T01:01:01+0000 +2006-01-01T01:01:01+0000 diff --git a/ext/date/tests/bug33957.phpt b/ext/date/tests/bug33957.phpt new file mode 100644 index 0000000..43f14ee --- /dev/null +++ b/ext/date/tests/bug33957.phpt @@ -0,0 +1,103 @@ +--TEST-- +Bug #33957 (gmdate('W')/date('W') sometimes returns wrong week number) +--FILE-- + +--EXPECT-- +1992-12-14 51 +1992-12-15 51 +1992-12-16 51 +1992-12-17 51 +1992-12-18 51 +1992-12-19 51 +1992-12-20 51 +1992-12-21 52 +1992-12-22 52 +1992-12-23 52 +1992-12-24 52 +1992-12-25 52 +1992-12-26 52 +1992-12-27 52 +1992-12-28 53 +1992-12-29 53 +1992-12-30 53 +1992-12-31 53 +1993-01-1 53 +1993-01-2 53 +1993-01-3 53 +1993-01-4 01 +1993-01-5 01 +1993-01-6 01 +1993-01-7 01 +1993-01-8 01 +---- + 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 + (12-14) 51-1992 50-1993 50-1994 50-1995 50-1996 50-1997 51-1998 50-1999 50-2000 50-2001 50-2002 50-2003 51-2004 50-2005 50-2006 50-2007 50-2008 51-2009 50-2010 50-2011 50-2012 50-2013 50-2014 51-2015 50-2016 50-2017 50-2018 50-2019 + (12-15) 51-1992 50-1993 50-1994 50-1995 50-1996 51-1997 51-1998 50-1999 50-2000 50-2001 50-2002 51-2003 51-2004 50-2005 50-2006 50-2007 51-2008 51-2009 50-2010 50-2011 50-2012 50-2013 51-2014 51-2015 50-2016 50-2017 50-2018 50-2019 + (12-16) 51-1992 50-1993 50-1994 50-1995 51-1996 51-1997 51-1998 50-1999 50-2000 50-2001 51-2002 51-2003 51-2004 50-2005 50-2006 50-2007 51-2008 51-2009 50-2010 50-2011 50-2012 51-2013 51-2014 51-2015 50-2016 50-2017 50-2018 51-2019 + (12-17) 51-1992 50-1993 50-1994 50-1995 51-1996 51-1997 51-1998 50-1999 50-2000 51-2001 51-2002 51-2003 51-2004 50-2005 50-2006 51-2007 51-2008 51-2009 50-2010 50-2011 51-2012 51-2013 51-2014 51-2015 50-2016 50-2017 51-2018 51-2019 + (12-18) 51-1992 50-1993 50-1994 51-1995 51-1996 51-1997 51-1998 50-1999 51-2000 51-2001 51-2002 51-2003 51-2004 50-2005 51-2006 51-2007 51-2008 51-2009 50-2010 50-2011 51-2012 51-2013 51-2014 51-2015 50-2016 51-2017 51-2018 51-2019 + (12-19) 51-1992 50-1993 51-1994 51-1995 51-1996 51-1997 51-1998 50-1999 51-2000 51-2001 51-2002 51-2003 51-2004 51-2005 51-2006 51-2007 51-2008 51-2009 50-2010 51-2011 51-2012 51-2013 51-2014 51-2015 51-2016 51-2017 51-2018 51-2019 + (12-20) 51-1992 51-1993 51-1994 51-1995 51-1996 51-1997 51-1998 51-1999 51-2000 51-2001 51-2002 51-2003 52-2004 51-2005 51-2006 51-2007 51-2008 51-2009 51-2010 51-2011 51-2012 51-2013 51-2014 51-2015 51-2016 51-2017 51-2018 51-2019 + (12-21) 52-1992 51-1993 51-1994 51-1995 51-1996 51-1997 52-1998 51-1999 51-2000 51-2001 51-2002 51-2003 52-2004 51-2005 51-2006 51-2007 51-2008 52-2009 51-2010 51-2011 51-2012 51-2013 51-2014 52-2015 51-2016 51-2017 51-2018 51-2019 + (12-22) 52-1992 51-1993 51-1994 51-1995 51-1996 52-1997 52-1998 51-1999 51-2000 51-2001 51-2002 52-2003 52-2004 51-2005 51-2006 51-2007 52-2008 52-2009 51-2010 51-2011 51-2012 51-2013 52-2014 52-2015 51-2016 51-2017 51-2018 51-2019 + (12-23) 52-1992 51-1993 51-1994 51-1995 52-1996 52-1997 52-1998 51-1999 51-2000 51-2001 52-2002 52-2003 52-2004 51-2005 51-2006 51-2007 52-2008 52-2009 51-2010 51-2011 51-2012 52-2013 52-2014 52-2015 51-2016 51-2017 51-2018 52-2019 + (12-24) 52-1992 51-1993 51-1994 51-1995 52-1996 52-1997 52-1998 51-1999 51-2000 52-2001 52-2002 52-2003 52-2004 51-2005 51-2006 52-2007 52-2008 52-2009 51-2010 51-2011 52-2012 52-2013 52-2014 52-2015 51-2016 51-2017 52-2018 52-2019 + (12-25) 52-1992 51-1993 51-1994 52-1995 52-1996 52-1997 52-1998 51-1999 52-2000 52-2001 52-2002 52-2003 52-2004 51-2005 52-2006 52-2007 52-2008 52-2009 51-2010 51-2011 52-2012 52-2013 52-2014 52-2015 51-2016 52-2017 52-2018 52-2019 + (12-26) 52-1992 51-1993 52-1994 52-1995 52-1996 52-1997 52-1998 51-1999 52-2000 52-2001 52-2002 52-2003 52-2004 52-2005 52-2006 52-2007 52-2008 52-2009 51-2010 52-2011 52-2012 52-2013 52-2014 52-2015 52-2016 52-2017 52-2018 52-2019 + (12-27) 52-1992 52-1993 52-1994 52-1995 52-1996 52-1997 52-1998 52-1999 52-2000 52-2001 52-2002 52-2003 53-2004 52-2005 52-2006 52-2007 52-2008 52-2009 52-2010 52-2011 52-2012 52-2013 52-2014 52-2015 52-2016 52-2017 52-2018 52-2019 + (12-28) 53-1992 52-1993 52-1994 52-1995 52-1996 52-1997 53-1998 52-1999 52-2000 52-2001 52-2002 52-2003 53-2004 52-2005 52-2006 52-2007 52-2008 53-2009 52-2010 52-2011 52-2012 52-2013 52-2014 53-2015 52-2016 52-2017 52-2018 52-2019 + (12-29) 53-1992 52-1993 52-1994 52-1995 52-1996 01-1998 53-1998 52-1999 52-2000 52-2001 52-2002 01-2004 53-2004 52-2005 52-2006 52-2007 01-2009 53-2009 52-2010 52-2011 52-2012 52-2013 01-2015 53-2015 52-2016 52-2017 52-2018 52-2019 + (12-30) 53-1992 52-1993 52-1994 52-1995 01-1997 01-1998 53-1998 52-1999 52-2000 52-2001 01-2003 01-2004 53-2004 52-2005 52-2006 52-2007 01-2009 53-2009 52-2010 52-2011 52-2012 01-2014 01-2015 53-2015 52-2016 52-2017 52-2018 01-2020 + (12-31) 53-1992 52-1993 52-1994 52-1995 01-1997 01-1998 53-1998 52-1999 52-2000 01-2002 01-2003 01-2004 53-2004 52-2005 52-2006 01-2008 01-2009 53-2009 52-2010 52-2011 01-2013 01-2014 01-2015 53-2015 52-2016 52-2017 01-2019 01-2020 ++1 (01-01) 53-1992 52-1993 52-1994 01-1996 01-1997 01-1998 53-1998 52-1999 01-2001 01-2002 01-2003 01-2004 53-2004 52-2005 01-2007 01-2008 01-2009 53-2009 52-2010 52-2011 01-2013 01-2014 01-2015 53-2015 52-2016 01-2018 01-2019 01-2020 ++1 (01-02) 53-1992 52-1993 01-1995 01-1996 01-1997 01-1998 53-1998 52-1999 01-2001 01-2002 01-2003 01-2004 53-2004 01-2006 01-2007 01-2008 01-2009 53-2009 52-2010 01-2012 01-2013 01-2014 01-2015 53-2015 01-2017 01-2018 01-2019 01-2020 ++1 (01-03) 53-1992 01-1994 01-1995 01-1996 01-1997 01-1998 53-1998 01-2000 01-2001 01-2002 01-2003 01-2004 01-2005 01-2006 01-2007 01-2008 01-2009 53-2009 01-2011 01-2012 01-2013 01-2014 01-2015 53-2015 01-2017 01-2018 01-2019 01-2020 ++1 (01-04) 01-1993 01-1994 01-1995 01-1996 01-1997 01-1998 01-1999 01-2000 01-2001 01-2002 01-2003 01-2004 01-2005 01-2006 01-2007 01-2008 01-2009 01-2010 01-2011 01-2012 01-2013 01-2014 01-2015 01-2016 01-2017 01-2018 01-2019 01-2020 ++1 (01-05) 01-1993 01-1994 01-1995 01-1996 01-1997 02-1998 01-1999 01-2000 01-2001 01-2002 01-2003 02-2004 01-2005 01-2006 01-2007 01-2008 02-2009 01-2010 01-2011 01-2012 01-2013 01-2014 02-2015 01-2016 01-2017 01-2018 01-2019 01-2020 ++1 (01-06) 01-1993 01-1994 01-1995 01-1996 02-1997 02-1998 01-1999 01-2000 01-2001 01-2002 02-2003 02-2004 01-2005 01-2006 01-2007 01-2008 02-2009 01-2010 01-2011 01-2012 01-2013 02-2014 02-2015 01-2016 01-2017 01-2018 01-2019 02-2020 ++1 (01-07) 01-1993 01-1994 01-1995 01-1996 02-1997 02-1998 01-1999 01-2000 01-2001 02-2002 02-2003 02-2004 01-2005 01-2006 01-2007 02-2008 02-2009 01-2010 01-2011 01-2012 02-2013 02-2014 02-2015 01-2016 01-2017 01-2018 02-2019 02-2020 ++1 (01-08) 01-1993 01-1994 01-1995 02-1996 02-1997 02-1998 01-1999 01-2000 02-2001 02-2002 02-2003 02-2004 01-2005 01-2006 02-2007 02-2008 02-2009 01-2010 01-2011 01-2012 02-2013 02-2014 02-2015 01-2016 01-2017 02-2018 02-2019 02-2020 ++1 (01-09) 01-1993 01-1994 02-1995 02-1996 02-1997 02-1998 01-1999 01-2000 02-2001 02-2002 02-2003 02-2004 01-2005 02-2006 02-2007 02-2008 02-2009 01-2010 01-2011 02-2012 02-2013 02-2014 02-2015 01-2016 02-2017 02-2018 02-2019 02-2020 ++1 (01-10) 01-1993 02-1994 02-1995 02-1996 02-1997 02-1998 01-1999 02-2000 02-2001 02-2002 02-2003 02-2004 02-2005 02-2006 02-2007 02-2008 02-2009 01-2010 02-2011 02-2012 02-2013 02-2014 02-2015 01-2016 02-2017 02-2018 02-2019 02-2020 ++1 (01-11) 02-1993 02-1994 02-1995 02-1996 02-1997 02-1998 02-1999 02-2000 02-2001 02-2002 02-2003 02-2004 02-2005 02-2006 02-2007 02-2008 02-2009 02-2010 02-2011 02-2012 02-2013 02-2014 02-2015 02-2016 02-2017 02-2018 02-2019 02-2020 ++1 (01-12) 02-1993 02-1994 02-1995 02-1996 02-1997 03-1998 02-1999 02-2000 02-2001 02-2002 02-2003 03-2004 02-2005 02-2006 02-2007 02-2008 03-2009 02-2010 02-2011 02-2012 02-2013 02-2014 03-2015 02-2016 02-2017 02-2018 02-2019 02-2020 ++1 (01-13) 02-1993 02-1994 02-1995 02-1996 03-1997 03-1998 02-1999 02-2000 02-2001 02-2002 03-2003 03-2004 02-2005 02-2006 02-2007 02-2008 03-2009 02-2010 02-2011 02-2012 02-2013 03-2014 03-2015 02-2016 02-2017 02-2018 02-2019 03-2020 ++1 (01-14) 02-1993 02-1994 02-1995 02-1996 03-1997 03-1998 02-1999 02-2000 02-2001 03-2002 03-2003 03-2004 02-2005 02-2006 02-2007 03-2008 03-2009 02-2010 02-2011 02-2012 03-2013 03-2014 03-2015 02-2016 02-2017 02-2018 03-2019 03-2020 ++1 (01-15) 02-1993 02-1994 02-1995 03-1996 03-1997 03-1998 02-1999 02-2000 03-2001 03-2002 03-2003 03-2004 02-2005 02-2006 03-2007 03-2008 03-2009 02-2010 02-2011 02-2012 03-2013 03-2014 03-2015 02-2016 02-2017 03-2018 03-2019 03-2020 ++1 (01-16) 02-1993 02-1994 03-1995 03-1996 03-1997 03-1998 02-1999 02-2000 03-2001 03-2002 03-2003 03-2004 02-2005 03-2006 03-2007 03-2008 03-2009 02-2010 02-2011 03-2012 03-2013 03-2014 03-2015 02-2016 03-2017 03-2018 03-2019 03-2020 ++1 (01-17) 02-1993 03-1994 03-1995 03-1996 03-1997 03-1998 02-1999 03-2000 03-2001 03-2002 03-2003 03-2004 03-2005 03-2006 03-2007 03-2008 03-2009 02-2010 03-2011 03-2012 03-2013 03-2014 03-2015 02-2016 03-2017 03-2018 03-2019 03-2020 ++1 (01-18) 03-1993 03-1994 03-1995 03-1996 03-1997 03-1998 03-1999 03-2000 03-2001 03-2002 03-2003 03-2004 03-2005 03-2006 03-2007 03-2008 03-2009 03-2010 03-2011 03-2012 03-2013 03-2014 03-2015 03-2016 03-2017 03-2018 03-2019 03-2020 +---- diff --git a/ext/date/tests/bug34087.phpt b/ext/date/tests/bug34087.phpt new file mode 100644 index 0000000..3fa3885 --- /dev/null +++ b/ext/date/tests/bug34087.phpt @@ -0,0 +1,20 @@ +--TEST-- +Bug #34087 (strtotime() does not work with date format "Y/m/d") +--FILE-- + +--EXPECT-- +Y/m/d: 1123804800 +Y-m-d: 1123804800 +2005-01-02T00:00:00+0000 +2005-01-02T00:00:00+0000 +2005-01-02T00:00:00+0000 +2005-01-02T00:00:00+0000 diff --git a/ext/date/tests/bug34304.phpt b/ext/date/tests/bug34304.phpt new file mode 100644 index 0000000..88030b7 --- /dev/null +++ b/ext/date/tests/bug34304.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #34304 (date('w') returns wrong number for sunday, 'N' modifier is missing) +--FILE-- + +--EXPECT-- +2004-W53-7 +2005-W01-7 diff --git a/ext/date/tests/bug34676.phpt b/ext/date/tests/bug34676.phpt new file mode 100644 index 0000000..6f616fe --- /dev/null +++ b/ext/date/tests/bug34676.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #34676 (missing support for strtotime("midnight") and strtotime("noon")) +--FILE-- + %s\n", $test, date(DATE_ISO8601, $t)); +} + +?> +--EXPECT-- +noon => 2005-12-22T12:00:00+0000 +midnight => 2005-12-22T00:00:00+0000 diff --git a/ext/date/tests/bug34771.phpt b/ext/date/tests/bug34771.phpt new file mode 100644 index 0000000..a27d085 --- /dev/null +++ b/ext/date/tests/bug34771.phpt @@ -0,0 +1,32 @@ +--TEST-- +Bug #34771 (strtotime() fails with 1-12am/pm) +--FILE-- + %s\n", $test, date(DATE_ISO8601, $t)); +} + +?> +--EXPECT-- +12am => 2005-12-22T00:00:00+0000 +1am => 2005-12-22T01:00:00+0000 +1pm => 2005-12-22T13:00:00+0000 +12a.m. => 2005-12-22T00:00:00+0000 +1a.m. => 2005-12-22T01:00:00+0000 +1p.m. => 2005-12-22T13:00:00+0000 +12:00am => 2005-12-22T00:00:00+0000 +1:00am => 2005-12-22T01:00:00+0000 +1:00pm => 2005-12-22T13:00:00+0000 +12:00a.m. => 2005-12-22T00:00:00+0000 +1:00a.m. => 2005-12-22T01:00:00+0000 +1:00p.m. => 2005-12-22T13:00:00+0000 diff --git a/ext/date/tests/bug35143.phpt b/ext/date/tests/bug35143.phpt new file mode 100644 index 0000000..02b0072 --- /dev/null +++ b/ext/date/tests/bug35143.phpt @@ -0,0 +1,21 @@ +--TEST-- +Bug #35143 (gettimeofday() ignores current time zone) +--FILE-- + +--EXPECTF-- +string(3) "UTC" +array(4) { + ["sec"]=> + int(%d) + ["usec"]=> + int(%d) + ["minuteswest"]=> + int(0) + ["dsttime"]=> + int(0) +} diff --git a/ext/date/tests/bug35218.phpt b/ext/date/tests/bug35218.phpt new file mode 100644 index 0000000..725f03c --- /dev/null +++ b/ext/date/tests/bug35218.phpt @@ -0,0 +1,14 @@ +--TEST-- +Bug #35218 (strtotime no longer ignores timezone comments like "(PST)") +--FILE-- + +--EXPECT-- +int(1131951370) +int(1131951370) diff --git a/ext/date/tests/bug35414.phpt b/ext/date/tests/bug35414.phpt new file mode 100644 index 0000000..f6af511 --- /dev/null +++ b/ext/date/tests/bug35414.phpt @@ -0,0 +1,16 @@ +--TEST-- +Bug #35414 (strtotime() no longer works with ordinal suffix) +--FILE-- + +--EXPECT-- +2005-11-26T18:18:00+0000 +2005-11-26T00:00:00+0000 +2005-12-04T00:00:00+0000 +2005-12-04T00:00:00+0000 diff --git a/ext/date/tests/bug35422.phpt b/ext/date/tests/bug35422.phpt new file mode 100644 index 0000000..8273c75 --- /dev/null +++ b/ext/date/tests/bug35422.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #35422 (strtotime() does not parse times with UTC as timezone) +--FILE-- + +--EXPECT-- +2000-07-01T00:00:00+0000 +2000-07-01T00:00:00+0000 diff --git a/ext/date/tests/bug35425.phpt b/ext/date/tests/bug35425.phpt new file mode 100644 index 0000000..e55a4f5 --- /dev/null +++ b/ext/date/tests/bug35425.phpt @@ -0,0 +1,31 @@ +--TEST-- +Bug #35425 (idate() function ignores timezone settings) +--INI-- +date.timezone=America/Montreal +--FILE-- + +--EXPECT-- +int(292) +int(1) +int(1) +int(1) +int(1) +int(0) +int(0) +int(1) +int(1) +int(31) +int(1104559261) +int(6) +int(53) +int(5) +int(2005) +int(0) +int(-18000) diff --git a/ext/date/tests/bug35456.phpt b/ext/date/tests/bug35456.phpt new file mode 100644 index 0000000..6432b99 --- /dev/null +++ b/ext/date/tests/bug35456.phpt @@ -0,0 +1,16 @@ +--TEST-- +Bug #35456 (+ 1 [time unit] format did not work) +--FILE-- + +--EXPECT-- +2005-11-29T22:15:19+0000 +2005-12-28T22:15:19+0000 +2005-12-05T22:15:19+0000 diff --git a/ext/date/tests/bug35499.phpt b/ext/date/tests/bug35499.phpt new file mode 100644 index 0000000..03f5205 --- /dev/null +++ b/ext/date/tests/bug35499.phpt @@ -0,0 +1,78 @@ +--TEST-- +Bug #35499 (strtotime() does not handle whitespace around the date string) +--FILE-- + +--EXPECT-- +2005-11-20T08:00:00+0000 +2005-11-20T08:00:00+0000 +array(16) { + ["year"]=> + bool(false) + ["month"]=> + bool(false) + ["day"]=> + bool(false) + ["hour"]=> + bool(false) + ["minute"]=> + bool(false) + ["second"]=> + bool(false) + ["fraction"]=> + bool(false) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(true) + ["zone_type"]=> + int(2) + ["zone"]=> + int(-60) + ["is_dst"]=> + bool(false) + ["tz_abbr"]=> + string(1) "A" +} +array(12) { + ["year"]=> + bool(false) + ["month"]=> + bool(false) + ["day"]=> + bool(false) + ["hour"]=> + bool(false) + ["minute"]=> + bool(false) + ["second"]=> + bool(false) + ["fraction"]=> + bool(false) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} diff --git a/ext/date/tests/bug35624.phpt b/ext/date/tests/bug35624.phpt new file mode 100644 index 0000000..722adba --- /dev/null +++ b/ext/date/tests/bug35624.phpt @@ -0,0 +1,29 @@ +--TEST-- +Bug #35624 (strtotime() does not handle 3 character weekdays) +--FILE-- + +--EXPECT-- +MonMon +MonMon +TueTue +TueTue +WedWed +WedWed +ThuThu +ThuThu +FriFri +FriFri +SatSat +SatSat +SunSun +SunSun diff --git a/ext/date/tests/bug35630.phpt b/ext/date/tests/bug35630.phpt new file mode 100644 index 0000000..b111b1a --- /dev/null +++ b/ext/date/tests/bug35630.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #35630 (strtotime() crashes on non-separated relative modifiers) +--FILE-- + +--EXPECT-- +2006-01-09T00:00:00+0000 diff --git a/ext/date/tests/bug35699.phpt b/ext/date/tests/bug35699.phpt new file mode 100644 index 0000000..5e4951e --- /dev/null +++ b/ext/date/tests/bug35699.phpt @@ -0,0 +1,14 @@ +--TEST-- +Bug #35699 (date() can't handle leap years before 1970) +--FILE-- + +--EXPECT-- +1964-06-06T00:00:00+0000 +1963-06-06T00:00:00+0000 +1964-01-06T00:00:00+0000 diff --git a/ext/date/tests/bug35705.phpt b/ext/date/tests/bug35705.phpt new file mode 100644 index 0000000..6894160 --- /dev/null +++ b/ext/date/tests/bug35705.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #35705 (strtotime() fails to parse soap date format without TZ) +--FILE-- + +--EXPECT-- +2000-10-10T10:12:30+0000 diff --git a/ext/date/tests/bug35885.phpt b/ext/date/tests/bug35885.phpt new file mode 100644 index 0000000..b3074f7 --- /dev/null +++ b/ext/date/tests/bug35885.phpt @@ -0,0 +1,21 @@ +--TEST-- +Bug #35885 (strtotime("NOW") no longer works) +--FILE-- + +--EXPECT-- +bool(true) diff --git a/ext/date/tests/bug35887.phpt b/ext/date/tests/bug35887.phpt new file mode 100644 index 0000000..e6ea7bd --- /dev/null +++ b/ext/date/tests/bug35887.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #35887 (wddx_deserialize not parsing dateTime fields properly) +--FILE-- + +--EXPECT-- +2006-01-06T08:00:00+0000 diff --git a/ext/date/tests/bug36224.phpt b/ext/date/tests/bug36224.phpt new file mode 100644 index 0000000..1690f4e --- /dev/null +++ b/ext/date/tests/bug36224.phpt @@ -0,0 +1,13 @@ +--TEST-- +Bug #36224 (date(DATE_ATOM) gives wrong resulsts) +--FILE-- + +--EXPECT-- +2006-01-31T20:23:56+01:00 +2006-01-31T19:23:56+01:00 diff --git a/ext/date/tests/bug36510.phpt b/ext/date/tests/bug36510.phpt new file mode 100644 index 0000000..ea8bb02 --- /dev/null +++ b/ext/date/tests/bug36510.phpt @@ -0,0 +1,14 @@ +--TEST-- +Bug #36510 (strtotime() fails to parse date strings with tabs) +--FILE-- + +--EXPECT-- +int(1140966188) +int(1140966188) diff --git a/ext/date/tests/bug36599.phpt b/ext/date/tests/bug36599.phpt new file mode 100644 index 0000000..b34a7c2 --- /dev/null +++ b/ext/date/tests/bug36599.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #36599 (DATE_W3C format constant incorrect). +--FILE-- + +--EXPECT-- +2006-03-03T08:47:55+00:00 +2006-03-03T08:47:55+00:00 diff --git a/ext/date/tests/bug36988.phpt b/ext/date/tests/bug36988.phpt new file mode 100644 index 0000000..c37d1fb --- /dev/null +++ b/ext/date/tests/bug36988.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #36988 (mktime freezes on long numbers) +--FILE-- + +--EXPECT-- +smaller than one second diff --git a/ext/date/tests/bug37017.phpt b/ext/date/tests/bug37017.phpt new file mode 100644 index 0000000..6336e71 --- /dev/null +++ b/ext/date/tests/bug37017.phpt @@ -0,0 +1,15 @@ +--TEST-- +Bug #37017 (strtotime fails before 13:00:00 with some time zones identifiers). +--FILE-- + +--EXPECT-- +1147453201 +1147453200 +1147453199 +1147438799 diff --git a/ext/date/tests/bug37368.phpt b/ext/date/tests/bug37368.phpt new file mode 100644 index 0000000..7f526a4 --- /dev/null +++ b/ext/date/tests/bug37368.phpt @@ -0,0 +1,9 @@ +--TEST-- +Bug #37368 (Incorrect timestamp returned for strtotime()). +--FILE-- + +--EXPECT-- +Wed, 07 Jun 2006 17:06:44 +0000 diff --git a/ext/date/tests/bug37514.phpt b/ext/date/tests/bug37514.phpt new file mode 100644 index 0000000..fbde5e2 --- /dev/null +++ b/ext/date/tests/bug37514.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #37514 (strtotime doesn't assume year correctly). +--FILE-- + +--EXPECT-- +Fri, 18 May 2007 05:05:00 +0000 +Fri, 18 May 2007 17:05:00 +0000 +Fri, 18 May 2007 17:05:00 +0000 +Fri, 18 May 2007 05:05:00 +0000 +Fri, 18 May 2007 05:05:00 +0000 +Thu, 18 May 2006 17:05:00 +0000 diff --git a/ext/date/tests/bug37616.phpt b/ext/date/tests/bug37616.phpt new file mode 100644 index 0000000..7652501 --- /dev/null +++ b/ext/date/tests/bug37616.phpt @@ -0,0 +1,9 @@ +--TEST-- +Bug #37616 (DATE_RFC822 does not product RFC 822 dates) +--FILE-- + +--EXPECT-- +string(29) "Sat, 01 Jul 06 14:27:30 +0200" diff --git a/ext/date/tests/bug37747.phpt b/ext/date/tests/bug37747.phpt new file mode 100644 index 0000000..465f791 --- /dev/null +++ b/ext/date/tests/bug37747.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #37747 (strtotime segfaults when given "nextyear") +--FILE-- + +--EXPECT-- +bool(false) +ALIVE diff --git a/ext/date/tests/bug38229.phpt b/ext/date/tests/bug38229.phpt new file mode 100644 index 0000000..472a05f --- /dev/null +++ b/ext/date/tests/bug38229.phpt @@ -0,0 +1,13 @@ +--TEST-- +Bug #38229 (strtotime() does not parse YYYY-MM) +--FILE-- + +--EXPECT-- +2006-01 +2006-03 +2006-12 diff --git a/ext/date/tests/bug39782.phpt b/ext/date/tests/bug39782.phpt new file mode 100644 index 0000000..99abdd7 --- /dev/null +++ b/ext/date/tests/bug39782.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #39782 (setTime() on a DateTime constructed with a Weekday yields incorrect results) +--FILE-- +format('D M j Y - H:i:s') . "\n"; + +$dttTest->setTime(12, 0, 0); +echo $dttTest->format('D M j Y - H:i:s') . "\n"; + +$dttTest->setTime(12, 0, 0); +echo $dttTest->format('D M j Y - H:i:s') . "\n"; +?> +--EXPECT-- +Wed Dec 13 2006 - 00:00:00 +Wed Dec 13 2006 - 12:00:00 +Wed Dec 13 2006 - 12:00:00 \ No newline at end of file diff --git a/ext/date/tests/bug40743.phpt b/ext/date/tests/bug40743.phpt new file mode 100644 index 0000000..f3ce171 --- /dev/null +++ b/ext/date/tests/bug40743.phpt @@ -0,0 +1,40 @@ +--TEST-- +Bug #40743 (DateTime ignores the TimeZone object passed to the constructor) +--FILE-- +format(DATE_RFC822), "\n"; +echo $dt->format('T e Z'), "\n"; +echo "-----\n"; + +date_default_timezone_set('America/New_York'); + +$dt = new DateTime('16 Jan 08 13:04:59'); +echo $dt->format(DATE_RFC822 . " e T O U"), "\n"; + +$dt = new DateTime('@1200506699'); +echo $dt->format(DATE_RFC822 . " e T O U"), "\n"; + +$dt = new DateTime('@1200506699'); +$dt->setTimezone( new DateTimeZone( 'America/New_York' ) ); +echo $dt->format(DATE_RFC822 . " e T O U"), "\n"; + +$dt = new DateTime('@1200506699', new DateTimeZone('Europe/Berlin')); +echo $dt->format(DATE_RFC822 . " e T O U"), "\n"; + +$dt = new DateTime('16 Jan 08 13:04:59 America/Chicago'); +echo $dt->format(DATE_RFC822 . " e T O U"), "\n"; + +$dt = new DateTime('16 Jan 08 13:04:59 America/Chicago', new DateTimeZone('Europe/Berlin')); +echo $dt->format(DATE_RFC822 . " e T O U"), "\n"; +?> +--EXPECT-- +Wed, 16 Jan 08 18:04:59 +0000 +GMT+0000 +00:00 0 +----- +Wed, 16 Jan 08 13:04:59 -0500 America/New_York EST -0500 1200506699 +Wed, 16 Jan 08 18:04:59 +0000 +00:00 GMT+0000 +0000 1200506699 +Wed, 16 Jan 08 13:04:59 -0500 America/New_York EST -0500 1200506699 +Wed, 16 Jan 08 18:04:59 +0000 +00:00 GMT+0000 +0000 1200506699 +Wed, 16 Jan 08 13:04:59 -0600 America/Chicago CST -0600 1200510299 +Wed, 16 Jan 08 13:04:59 -0600 America/Chicago CST -0600 1200510299 diff --git a/ext/date/tests/bug40861.phpt b/ext/date/tests/bug40861.phpt new file mode 100644 index 0000000..d4ef961 --- /dev/null +++ b/ext/date/tests/bug40861.phpt @@ -0,0 +1,33 @@ +--TEST-- +Bug #40861 (Multiple +/- on relative units breaks strtotime()) +--FILE-- + +--EXPECT-- +2000-01-01 13:00:00 +2000-01-01 11:00:00 +2000-01-01 13:00:00 +2000-01-01 13:00:00 diff --git a/ext/date/tests/bug41523-64bit.phpt b/ext/date/tests/bug41523-64bit.phpt new file mode 100644 index 0000000..d6d1320 --- /dev/null +++ b/ext/date/tests/bug41523-64bit.phpt @@ -0,0 +1,55 @@ +--TEST-- +Bug #41523 (strtotime('0000-00-00 00:00:00') is parsed as 1999-11-30) (64 bit) +--SKIPIF-- + +--FILE-- +format( DateTime::ISO8601 ), "\n"; + +?> +--EXPECT-- +array(12) { + ["year"]=> + int(0) + ["month"]=> + int(0) + ["day"]=> + int(0) + ["hour"]=> + int(0) + ["minute"]=> + int(0) + ["second"]=> + int(0) + ["fraction"]=> + float(0) + ["warning_count"]=> + int(1) + ["warnings"]=> + array(1) { + [20]=> + string(27) "The parsed date was invalid" + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} +int(-62169984000) +object(DateTime)#1 (3) { + ["date"]=> + string(20) "-0001-11-30 00:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} +-0001-11-30T00:00:00+0000 diff --git a/ext/date/tests/bug41523.phpt b/ext/date/tests/bug41523.phpt new file mode 100644 index 0000000..948dae7 --- /dev/null +++ b/ext/date/tests/bug41523.phpt @@ -0,0 +1,55 @@ +--TEST-- +Bug #41523 (strtotime('0000-00-00 00:00:00') is parsed as 1999-11-30) (32 bit) +--SKIPIF-- + +--FILE-- +format( DateTime::ISO8601 ), "\n"; + +?> +--EXPECT-- +array(12) { + ["year"]=> + int(0) + ["month"]=> + int(0) + ["day"]=> + int(0) + ["hour"]=> + int(0) + ["minute"]=> + int(0) + ["second"]=> + int(0) + ["fraction"]=> + float(0) + ["warning_count"]=> + int(1) + ["warnings"]=> + array(1) { + [20]=> + string(27) "The parsed date was invalid" + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} +bool(false) +object(DateTime)#1 (3) { + ["date"]=> + string(20) "-0001-11-30 00:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} +-0001-11-30T00:00:00+0000 diff --git a/ext/date/tests/bug41599.phpt b/ext/date/tests/bug41599.phpt new file mode 100644 index 0000000..e4febe2 --- /dev/null +++ b/ext/date/tests/bug41599.phpt @@ -0,0 +1,27 @@ +--TEST-- +Bug #41599 (setTime() fails after modify() is used) +--FILE-- +format('Y-m-d H:i:s'),PHP_EOL; +//good + +$start->modify('Tuesday'); +echo $start->format('Y-m-d H:i:s'),PHP_EOL; +//good + +$start->setTime(4, 0, 0); +echo $start->format('Y-m-d H:i:s'),PHP_EOL; +//jumped to next Sunday + +$start->setTime(8, 0, 0); +echo $start->format('Y-m-d H:i:s'),PHP_EOL; +//jumped to next Sunday again +?> +--EXPECT-- +2008-01-14 00:00:00 +2008-01-15 00:00:00 +2008-01-15 04:00:00 +2008-01-15 08:00:00 diff --git a/ext/date/tests/bug41709.phpt b/ext/date/tests/bug41709.phpt new file mode 100644 index 0000000..624da0c --- /dev/null +++ b/ext/date/tests/bug41709.phpt @@ -0,0 +1,34 @@ +--TEST-- +Bug #41709 (strtotime() does not handle 00.00.0000) +--FILE-- + +--EXPECT-- +Array +( + [year] => 0 + [month] => 0 + [day] => 0 + [hour] => 0 + [minute] => 0 + [second] => 0 + [fraction] => 0 + [warning_count] => 1 + [warnings] => Array + ( + [22] => The parsed date was invalid + ) + + [error_count] => 1 + [errors] => Array + ( + [11] => Unexpected character + ) + + [is_localtime] => +) diff --git a/ext/date/tests/bug41842.phpt b/ext/date/tests/bug41842.phpt new file mode 100644 index 0000000..b2a5ef3 --- /dev/null +++ b/ext/date/tests/bug41842.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #41842 (Cannot create years < 0100 & negative years with date_create or new DateTime) +--FILE-- +format(DATE_ISO8601); +?> +--EXPECT-- +-2007-06-28T00:00:00+0000 diff --git a/ext/date/tests/bug41844.phpt b/ext/date/tests/bug41844.phpt new file mode 100644 index 0000000..c18b2f7 --- /dev/null +++ b/ext/date/tests/bug41844.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #41844 (Format returns incorrect number of digits for negative years -0001 to -0999) +--FILE-- +modify('-3006 years'); +echo $date->format(DATE_ISO8601), "\n"; + +$date = new DateTime('2007-06-28'); +$date->modify('-2008 years'); +echo $date->format(DATE_ISO8601), "\n"; +?> +--EXPECT-- +-0999-06-28T00:00:00+0000 +-0001-06-28T00:00:00+0000 diff --git a/ext/date/tests/bug41964.phpt b/ext/date/tests/bug41964.phpt new file mode 100644 index 0000000..022a186 --- /dev/null +++ b/ext/date/tests/bug41964.phpt @@ -0,0 +1,59 @@ +--TEST-- +Bug #41964 (strtotime returns a timestamp for non-time string of pattern '(A|a) .+') +--FILE-- + +--EXPECT-- +NULL +NULL + +int(-60) +string(1) "A" + +int(-60) +string(1) "A" + +int(-60) +string(1) "A" + +int(-60) +string(1) "A" + +int(-60) +string(1) "A" + +int(-60) +string(1) "A" diff --git a/ext/date/tests/bug42910.phpt b/ext/date/tests/bug42910.phpt new file mode 100644 index 0000000..1bd0790 --- /dev/null +++ b/ext/date/tests/bug42910.phpt @@ -0,0 +1,30 @@ +--TEST-- +Bug #42910 (Constructing DateTime with TimeZone Indicator invalidates DateTimeZone) +--FILE-- +format(DateTime::ISO8601) . ' - ' . $foo->getTimezone()->getName() . ' - ' . $foo->format('U') . "\r\n"; + print $bar->format(DateTime::ISO8601) . ' - ' . $bar->getTimezone()->getName() . ' - ' . $bar->format('U') . "\r\n"; + + $foo->setDate(2007, 03, 12); + $bar->setDate(2007, 03, 12); + + print $foo->format(DateTime::ISO8601) . ' - ' . $foo->getTimezone()->getName() . ' - ' . $foo->format('U') . "\r\n"; + print $bar->format(DateTime::ISO8601) . ' - ' . $bar->getTimezone()->getName() . ' - ' . $bar->format('U') . "\r\n"; + +// -------------- + + date_default_timezone_set('Australia/Sydney'); + + $date= date_create('2007-11-04 12:00:00+0200'); + var_dump(date_format($date, 'O e')); +?> +--EXPECT-- +2007-03-11T00:00:00-0800 - America/Los_Angeles - 1173600000 +2007-03-11T00:00:00-0800 - -08:00 - 1173600000 +2007-03-12T00:00:00-0700 - America/Los_Angeles - 1173682800 +2007-03-12T00:00:00-0800 - -08:00 - 1173686400 +string(12) "+0200 +02:00" diff --git a/ext/date/tests/bug43003.phpt b/ext/date/tests/bug43003.phpt new file mode 100644 index 0000000..8070358 --- /dev/null +++ b/ext/date/tests/bug43003.phpt @@ -0,0 +1,27 @@ +--TEST-- +Bug #43003 (Invalid timezone reported for DateTime objects constructed using a timestamp) +--FILE-- +getTimezone()->getName().": " . $oDateTest->format("Y-m-d H:i:s")."\n"; + +$oDateTest->setTimezone(new DateTimeZone("UTC")); +echo $oDateTest->getTimezone()->getName().": " . $oDateTest->format("Y-m-d H:i:s")."\n"; + +$oDateTest->setTimezone(new DateTimeZone(date_default_timezone_get())); +echo $oDateTest->getTimezone()->getName().": " . $oDateTest->format("Y-m-d H:i:s")."\n"; + +$oDateTest = new DateTime("@0"); +echo $oDateTest->getTimezone()->getName().": " . $oDateTest->format("Y-m-d H:i:s")."\n"; + +$oDateTest->setTimezone( new DateTimeZone(date_default_timezone_get())); +echo $oDateTest->getTimezone()->getName().": " . $oDateTest->format("Y-m-d H:i:s")."\n"; +?> +--EXPECT-- ++00:00: 1970-01-01 00:00:00 +UTC: 1970-01-01 00:00:00 +Europe/Oslo: 1970-01-01 01:00:00 ++00:00: 1970-01-01 00:00:00 +Europe/Oslo: 1970-01-01 01:00:00 diff --git a/ext/date/tests/bug43075.phpt b/ext/date/tests/bug43075.phpt new file mode 100644 index 0000000..e33a3bc --- /dev/null +++ b/ext/date/tests/bug43075.phpt @@ -0,0 +1,10 @@ +--TEST-- +Bug #43075 (Support 24 as hour) +--FILE-- +format("c"); +?> +--EXPECT-- +2007-11-02T00:34:00+00:00 diff --git a/ext/date/tests/bug43452.phpt b/ext/date/tests/bug43452.phpt new file mode 100644 index 0000000..8780474 --- /dev/null +++ b/ext/date/tests/bug43452.phpt @@ -0,0 +1,70 @@ +--TEST-- +Bug #43452 ("weekday" is not equivalent to "1 weekday" of the current weekday is "weekday") +--FILE-- + is equivalent to 1 and will *not* forward if the current day +// (November 1st) is the same day of week. +$day = strtotime( "Thursday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n"; +$day = strtotime( "1 Thursday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n"; +$day = strtotime( "2 Thursday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n"; +$day = strtotime( "3 Thursday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n\n"; + +// forward one week, then behaves like above for week days +$day = strtotime( "Thursday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n"; +$day = strtotime( "+1 week Thursday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n"; +$day = strtotime( "+2 week Thursday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n"; +$day = strtotime( "+3 week Thursday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n\n"; + +// First, second, etc skip to the first/second weekday *after* the current day. +// This makes "first thursday" equivalent to "+1 week thursday" - but only +// if the current day-of-week is the one mentioned in the phrase. +$day = strtotime( "Thursday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n"; +$day = strtotime( "first Thursday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n"; +$day = strtotime( "second Thursday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n"; +$day = strtotime( "third Thursday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n\n"; + +// Now the same where the current day-of-week does not match the one in the +// phrase. +$day = strtotime( "Friday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n"; +$day = strtotime( "first Friday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n"; +$day = strtotime( "second Friday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n"; +$day = strtotime( "third Friday Nov 2007" ); +echo date( DateTime::ISO8601, $day ), "\n\n"; + +?> +--EXPECT-- +2007-11-01T00:00:00+0100 +2007-11-01T00:00:00+0100 +2007-11-08T00:00:00+0100 +2007-11-15T00:00:00+0100 + +2007-11-01T00:00:00+0100 +2007-11-08T00:00:00+0100 +2007-11-15T00:00:00+0100 +2007-11-22T00:00:00+0100 + +2007-11-01T00:00:00+0100 +2007-11-08T00:00:00+0100 +2007-11-15T00:00:00+0100 +2007-11-22T00:00:00+0100 + +2007-11-02T00:00:00+0100 +2007-11-02T00:00:00+0100 +2007-11-09T00:00:00+0100 +2007-11-16T00:00:00+0100 diff --git a/ext/date/tests/bug43527.phpt b/ext/date/tests/bug43527.phpt new file mode 100644 index 0000000..cc69def --- /dev/null +++ b/ext/date/tests/bug43527.phpt @@ -0,0 +1,10 @@ +--TEST-- +Bug #43527 (DateTime created from a timestamp reports environment timezone) +--FILE-- +getTimezone()->getName(), "\n"; +?> +--EXPECT-- ++10:00 diff --git a/ext/date/tests/bug43808.phpt b/ext/date/tests/bug43808.phpt new file mode 100644 index 0000000..74b2317 --- /dev/null +++ b/ext/date/tests/bug43808.phpt @@ -0,0 +1,48 @@ +--TEST-- +Bug #43808 (date_create never fails (even when it should)) +--FILE-- + +--EXPECT-- +bool(false) +array(4) { + ["warning_count"]=> + int(1) + ["warnings"]=> + array(1) { + [6]=> + string(29) "Double timezone specification" + } + ["error_count"]=> + int(1) + ["errors"]=> + array(1) { + [0]=> + string(47) "The timezone could not be found in the database" + } +} +array(4) { + ["warning_count"]=> + int(1) + ["warnings"]=> + array(1) { + [6]=> + string(29) "Double timezone specification" + } + ["error_count"]=> + int(1) + ["errors"]=> + array(1) { + [0]=> + string(47) "The timezone could not be found in the database" + } +} diff --git a/ext/date/tests/bug43960.phpt b/ext/date/tests/bug43960.phpt new file mode 100644 index 0000000..c33dff2 --- /dev/null +++ b/ext/date/tests/bug43960.phpt @@ -0,0 +1,9 @@ +--TEST-- +Bug #43960 (strtotime() returns timestamp in the future when given a bogus string) +--FILE-- + +--EXPECT-- +bool(false) diff --git a/ext/date/tests/bug44562.phpt b/ext/date/tests/bug44562.phpt new file mode 100644 index 0000000..89ca740 --- /dev/null +++ b/ext/date/tests/bug44562.phpt @@ -0,0 +1,38 @@ +--TEST-- +Bug #44562 (Creating instance of DatePeriod crashes) +--FILE-- +getMessage(), "\n"; +} + +$begin = new DateTime( "2008-07-20T22:44:53+0200" ); +$interval = DateInterval::createFromDateString( "1 day" ); + +$dp = new DatePeriod( $begin, $interval, 10 ); +foreach ( $dp as $d ) +{ + var_dump ($d->format( DATE_ISO8601 ) ); +} + +?> +--EXPECT-- +DatePeriod::__construct(): Unknown or bad format (2D) +string(24) "2008-07-20T22:44:53+0200" +string(24) "2008-07-21T22:44:53+0200" +string(24) "2008-07-22T22:44:53+0200" +string(24) "2008-07-23T22:44:53+0200" +string(24) "2008-07-24T22:44:53+0200" +string(24) "2008-07-25T22:44:53+0200" +string(24) "2008-07-26T22:44:53+0200" +string(24) "2008-07-27T22:44:53+0200" +string(24) "2008-07-28T22:44:53+0200" +string(24) "2008-07-29T22:44:53+0200" +string(24) "2008-07-30T22:44:53+0200" diff --git a/ext/date/tests/bug44742.phpt b/ext/date/tests/bug44742.phpt new file mode 100644 index 0000000..48952b4 --- /dev/null +++ b/ext/date/tests/bug44742.phpt @@ -0,0 +1,36 @@ +--TEST-- +Bug #44742 (timezone_offset_get() causes segmentation faults) +--FILE-- + +--EXPECT-- +int(0) +int(7200) +int(12600) +int(-18000) +int(-41400) +int(7200) +int(3600) +int(0) +int(-14400) +int(7200) +int(28800) diff --git a/ext/date/tests/bug45529.phpt b/ext/date/tests/bug45529.phpt new file mode 100644 index 0000000..b5d1d6a --- /dev/null +++ b/ext/date/tests/bug45529.phpt @@ -0,0 +1,21 @@ +--TEST-- +Bug #45529 (UTC not properly recognised as timezone identifier while parsing) +--FILE-- +getTimeZone(); +echo $tz1->getName(), PHP_EOL; +echo $tz2->getName(), PHP_EOL; +$d = new DateTime('2008-01-01 12:00:00+0200'); +$d->setTimeZone($tz1); +echo $d->format(DATE_ISO8601), PHP_EOL; +$d = new DateTime('2008-01-01 12:00:00+0200'); +$d->setTimeZone($tz2); +echo $d->format(DATE_ISO8601), PHP_EOL; +?> +--EXPECT-- +UTC +UTC +2008-01-01T10:00:00+0000 +2008-01-01T10:00:00+0000 diff --git a/ext/date/tests/bug45554.phpt b/ext/date/tests/bug45554.phpt new file mode 100644 index 0000000..a5042ff --- /dev/null +++ b/ext/date/tests/bug45554.phpt @@ -0,0 +1,20 @@ +--TEST-- +Bug #45554 (Inconsistent behavior of the u format char) +--INI-- +date.timezone=UTC +--FILE-- +format($format), "\n"; + +$d = date_create_from_format($format, "03-15-2005 12:22:29.001001 PST"); +echo $d->format($format), "\n"; + +$d = date_create_from_format($format, "03-15-2005 12:22:29.0010 PST"); +echo $d->format($format), "\n"; +?> +--EXPECT-- +03-15-2005 12:22:29.000000 PST +03-15-2005 12:22:29.001001 PST +03-15-2005 12:22:29.001000 PST diff --git a/ext/date/tests/bug45682.phpt b/ext/date/tests/bug45682.phpt new file mode 100644 index 0000000..d8bbfc5 --- /dev/null +++ b/ext/date/tests/bug45682.phpt @@ -0,0 +1,32 @@ +--TEST-- +Bug #45682 (Unable to var_dump(DateInterval)) +--INI-- +date.timezone=UTC +--FILE-- + + int(0) + ["m"]=> + int(0) + ["d"]=> + int(3) + ["h"]=> + int(0) + ["i"]=> + int(0) + ["s"]=> + int(0) + ["invert"]=> + int(0) + ["days"]=> + int(3) +} diff --git a/ext/date/tests/bug45866.phpt b/ext/date/tests/bug45866.phpt new file mode 100644 index 0000000..a8407a6 --- /dev/null +++ b/ext/date/tests/bug45866.phpt @@ -0,0 +1,24 @@ +--TEST-- +Bug #45866 (decimal values fed to DateTime->modify() causes long execution times) +--INI-- +date.timezone=UTC +--FILE-- +modify( "+1.61538461538 day" ); +echo $date->format( 'r' ), "\n"; + +$date = new DateTime( '2009-07-29 16:44:23 Europe/London' ); +$date->modify( "61538461538 day" ); +echo $date->format( 'r' ), "\n"; + +$date = new DateTime( '2009-07-29 16:44:23 Europe/London' ); +$date->modify( "£61538461538 day" ); +echo $date->format( 'r' ), "\n"; +?> +--EXPECTF-- +Thu, 14 Aug 168488594 16:44:23 +0000 +Thu, 14 Aug 168488594 16:44:23 +0000 + +Warning: DateTime::modify(): Failed to parse time string (£61538461538 day) at position 0 (%s): Unexpected character in %sbug45866.php on line 11 +Wed, 29 Jul 2009 16:44:23 +0100 diff --git a/ext/date/tests/bug46108.phpt b/ext/date/tests/bug46108.phpt new file mode 100644 index 0000000..12fdfa7 --- /dev/null +++ b/ext/date/tests/bug46108.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #46108 (DateTime - Memory leak when unserializing) +--FILE-- + +--EXPECTF-- +object(DateTime)#%d (3) { + [%u|b%"date"]=> + %string|unicode%(%d) "%s" + [%u|b%"timezone_type"]=> + int(%d) + [%u|b%"timezone"]=> + %string|unicode%(%d) "America/Sao_Paulo" +} diff --git a/ext/date/tests/bug46111.phpt b/ext/date/tests/bug46111.phpt new file mode 100644 index 0000000..806424e --- /dev/null +++ b/ext/date/tests/bug46111.phpt @@ -0,0 +1,21 @@ +--TEST-- +Bug #46111 (strtotime() returns false for some valid timezones) +--FILE-- + +--EXPECT-- +[strtotime(timezone) == false - Begin List] +[strtotime(timezone) == false - End List] diff --git a/ext/date/tests/bug46268.phpt b/ext/date/tests/bug46268.phpt new file mode 100644 index 0000000..808fd85 --- /dev/null +++ b/ext/date/tests/bug46268.phpt @@ -0,0 +1,23 @@ +--TEST-- +Bug #46268 (When call DateTime#setTime, it seems to be called the last modify method too) +--FILE-- +format("Y-m-d H:i:s") . PHP_EOL; + +$now->modify("1 day"); +echo $now->format("Y-m-d H:i:s") . PHP_EOL; + +$now->modify("1 hour"); +echo $now->format("Y-m-d H:i:s") . PHP_EOL; + +$now->setTime(0, 0, 0); +//date_time_set($now, 0, 0, 0); +echo $now->format("Y-m-d H:i:s") . PHP_EOL; +--EXPECT-- +2008-10-10 01:02:03 +2008-10-11 01:02:03 +2008-10-11 02:02:03 +2008-10-11 00:00:00 diff --git a/ext/date/tests/bug46874.phpt b/ext/date/tests/bug46874.phpt new file mode 100644 index 0000000..ee3546e --- /dev/null +++ b/ext/date/tests/bug46874.phpt @@ -0,0 +1,31 @@ +--TEST-- +Bug #46874 (DatePeriod not resetting after foreach loop) +--FILE-- +format("Y-m-d H:i:s\n"); +} + +echo "\n"; + +// this should repeat the same range +foreach ($dp as $date) { + echo $date->format("Y-m-d H:i:s\n"); +} +?> +--EXPECT-- +2008-03-01 13:00:00 +2009-05-11 15:30:00 +2010-07-21 18:00:00 +2011-10-01 20:30:00 +2012-12-11 23:00:00 +2014-02-22 01:30:00 + +2008-03-01 13:00:00 +2009-05-11 15:30:00 +2010-07-21 18:00:00 +2011-10-01 20:30:00 +2012-12-11 23:00:00 +2014-02-22 01:30:00 diff --git a/ext/date/tests/bug48058.phpt b/ext/date/tests/bug48058.phpt new file mode 100644 index 0000000..46a1918 --- /dev/null +++ b/ext/date/tests/bug48058.phpt @@ -0,0 +1,29 @@ +--TEST-- +Bug #48058 (Year formatter goes wrong with out-of-int range) +--INI-- +date.timezone=UTC +--FILE-- +getTransitions(); +var_dump( $tran[0] ); + +$base_time = '28 Feb 2008 12:00:00'; +$dt = date_create( "$base_time +10000000000 years" ); +echo date_format( $dt, DATE_ISO8601 ); +?> +--EXPECTF-- +array(5) { + ["ts"]=> + int(-%d) + ["time"]=> + string(%d) "%s" + ["offset"]=> + int(3600) + ["isdst"]=> + bool(true) + ["abbr"]=> + string(3) "BST" +} +10000002008-02-28T12:00:00+0000 diff --git a/ext/date/tests/bug48097.phpt b/ext/date/tests/bug48097.phpt new file mode 100644 index 0000000..d71a97e --- /dev/null +++ b/ext/date/tests/bug48097.phpt @@ -0,0 +1,38 @@ +--TEST-- +Bug #48097 (date_timezone_set function produces wrong datetime result) +--INI-- +date.timezone=UTC +--FILE-- +format( DATE_ISO8601 ), "\n"; +echo $d->format( 'U' ), "\n\n"; + +$d->setTimeZone( new DateTimeZone( 'Europe/Budapest' ) ); +var_dump( $d ); +echo $d->format( DATE_ISO8601 ), "\n\n"; +echo $d->format( 'U' ), "\n\n"; +--EXPECT-- +object(DateTime)#1 (3) { + ["date"]=> + string(19) "1955-05-23 00:00:00" + ["timezone_type"]=> + int(1) + ["timezone"]=> + string(6) "+02:00" +} +1955-05-23T00:00:00+0200 +-461124000 + +object(DateTime)#1 (3) { + ["date"]=> + string(19) "1955-05-22 23:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(15) "Europe/Budapest" +} +1955-05-22T23:00:00+0100 + +-461124000 diff --git a/ext/date/tests/bug48187.phpt b/ext/date/tests/bug48187.phpt new file mode 100644 index 0000000..78c0fb2 --- /dev/null +++ b/ext/date/tests/bug48187.phpt @@ -0,0 +1,28 @@ +--TEST-- +Bug #48187 (DateTime::diff() corrupting microtime() result) +--FILE-- + +--EXPECTF-- +string(36) "microtime() difference less 1 second" +string(31) "time() difference less 1 second" \ No newline at end of file diff --git a/ext/date/tests/bug48276.phpt b/ext/date/tests/bug48276.phpt new file mode 100644 index 0000000..d26605d --- /dev/null +++ b/ext/date/tests/bug48276.phpt @@ -0,0 +1,9 @@ +--TEST-- +Bug #48276 (date("Y") prints wrong year on Big Endian machines) +--INI-- +date.timezone=UTC +--FILE-- +format("d")); +$x = clone $o; + +var_dump($x->format("d")); + +clone $o; + + +var_dump(timezone_location_get(clone new MyDateTimezone)); +?> +--EXPECTF-- +Warning: DateTime::format(): The DateTime object has not been correctly initialized by its constructor in %sbug48476.php on line 10 +bool(false) + +Warning: DateTime::format(): The DateTime object has not been correctly initialized by its constructor in %sbug48476.php on line 13 +bool(false) + +Warning: timezone_location_get(): The DateTimeZone object has not been correctly initialized by its constructor in %sbug48476.php on line 18 +bool(false) + + diff --git a/ext/date/tests/bug48678.phpt b/ext/date/tests/bug48678.phpt new file mode 100644 index 0000000..e2cb724 --- /dev/null +++ b/ext/date/tests/bug48678.phpt @@ -0,0 +1,31 @@ +--TEST-- +Bug #48678 (DateInterval segfaults when unserialising) +--FILE-- + 3 + [m] => 6 + [d] => 4 + [h] => 12 + [i] => 30 + [s] => 5 + [invert] => 0 + [days] =>%s +) +DateInterval Object +( + [y] => 3 + [m] => 6 + [d] => 4 + [h] => 12 + [i] => 30 + [s] => 5 + [invert] => 0 + [days] =>%s +) diff --git a/ext/date/tests/bug49059.phpt b/ext/date/tests/bug49059.phpt new file mode 100644 index 0000000..48d2dac --- /dev/null +++ b/ext/date/tests/bug49059.phpt @@ -0,0 +1,34 @@ +--TEST-- +Bug #49059 (DateTime::diff() repeats previous sub() operation) +--FILE-- +format("Y-m-d") . "\n"; +print "\$date2 at init: " . $date2->format("Y-m-d") . "\n"; +$diff = $date1->diff($date2); +print "\$date1 after first diff: " . $date1->format("Y-m-d") . "\n"; +print "\$diff->days after first diff: " . $diff->days . "\n"; +$date1 = $date1->sub(new DateInterval("P2D")); +print "\$date1 after sub: " . $date1->format("Y-m-d") . "\n"; +$diff = $date1->diff($date2); +print "\$date1 after second diff (called at \$date1): " . +$date1->format("Y-m-d") . "\n"; +print "\$diff->days after second diff: " . $diff->days . "\n"; +$diff = $date2->diff($date1); +print "\$date1 after third diff (called at \$date2): " . +$date1->format("Y-m-d") . "\n"; +print "\$diff->days after third diff: " . $diff->days . "\n"; +?> +--EXPECT-- +$date1 at init: 2009-03-27 +$date2 at init: 2009-03-01 +$date1 after first diff: 2009-03-27 +$diff->days after first diff: 26 +$date1 after sub: 2009-03-25 +$date1 after second diff (called at $date1): 2009-03-25 +$diff->days after second diff: 24 +$date1 after third diff (called at $date2): 2009-03-25 +$diff->days after third diff: 24 diff --git a/ext/date/tests/bug49081.phpt b/ext/date/tests/bug49081.phpt new file mode 100644 index 0000000..f4f0290 --- /dev/null +++ b/ext/date/tests/bug49081.phpt @@ -0,0 +1,22 @@ +--TEST-- +Bug #49081 (DateTime::diff() mistake if start in January and interval > 28 days) +--FILE-- +diff($d2); + print_r($d); +?> +--EXPECT-- +DateInterval Object +( + [y] => 0 + [m] => 0 + [d] => 30 + [h] => 4 + [i] => 0 + [s] => 0 + [invert] => 0 + [days] => 30 +) diff --git a/ext/date/tests/bug49585.phpt b/ext/date/tests/bug49585.phpt new file mode 100644 index 0000000..2ec1424 --- /dev/null +++ b/ext/date/tests/bug49585.phpt @@ -0,0 +1,16 @@ +--TEST-- +Bug #49585 (date_format buffer not long enough for >4 digit years) +--FILE-- +format('r')); + +$date->setDate(-2147483648, 1, 1); +var_dump($date->format('r')); +var_dump($date->format('c')); +--EXPECT-- +string(32) "Sat, 01 Jan -1500 00:00:00 +0000" +string(42) "Unknown, 01 Jan -2147483648 00:00:00 +0000" +string(32) "-2147483648-01-01T00:00:00+00:00" diff --git a/ext/date/tests/bug49700.phpt b/ext/date/tests/bug49700.phpt new file mode 100644 index 0000000..a347052 --- /dev/null +++ b/ext/date/tests/bug49700.phpt @@ -0,0 +1,15 @@ +--TEST-- +Bug #49700 (memory leaks in php_date.c if garbage collector is enabled) +--INI-- +date.timezone=GMT +--FILE-- + +--EXPECT-- +OK diff --git a/ext/date/tests/bug49778.phpt b/ext/date/tests/bug49778.phpt new file mode 100644 index 0000000..67c8e27 --- /dev/null +++ b/ext/date/tests/bug49778.phpt @@ -0,0 +1,30 @@ +--TEST-- +Bug #49778 (DateInterval::format("%a") is always zero when an interval is created from an ISO string) +--FILE-- +format("%d"), "\n"; +echo $i->format("%a"), "\n"; +?> +--EXPECT-- +object(DateInterval)#1 (8) { + ["y"]=> + int(0) + ["m"]=> + int(0) + ["d"]=> + int(7) + ["h"]=> + int(0) + ["i"]=> + int(0) + ["s"]=> + int(0) + ["invert"]=> + int(0) + ["days"]=> + bool(false) +} +7 +(unknown) diff --git a/ext/date/tests/bug50055.phpt b/ext/date/tests/bug50055.phpt new file mode 100644 index 0000000..907bb93 --- /dev/null +++ b/ext/date/tests/bug50055.phpt @@ -0,0 +1,30 @@ +--TEST-- +Bug #50555 (DateTime::sub() allows 'relative' time modifications). +--FILE-- +format( DateTime::ISO8601 ), "\n"; +echo date_add($da1, $i)->format( DateTime::ISO8601 ), "\n"; +date_sub($ds1, $i); + +//negative DateInterval +$da2 = date_create( $now ); +$ds2 = date_create( $now ); +$i2 = DateInterval::createFromDateString('third Tuesday of last month'); +echo $da2->format( DateTime::ISO8601 ), "\n"; +echo date_add($da2, $i2)->format( DateTime::ISO8601 ), "\n";//works +date_sub($ds2, $i); +?> +--EXPECTF-- +2010-03-07T13:21:38+0000 +2010-04-20T13:21:38+0000 + +Warning: date_sub(): Only non-special relative time specifications are supported for subtraction in %sbug50055.php on line 9 +2010-03-07T13:21:38+0000 +2010-02-16T13:21:38+0000 + +Warning: date_sub(): Only non-special relative time specifications are supported for subtraction in %sbug50055.php on line 17 diff --git a/ext/date/tests/bug50392.phpt b/ext/date/tests/bug50392.phpt new file mode 100644 index 0000000..9b10023 --- /dev/null +++ b/ext/date/tests/bug50392.phpt @@ -0,0 +1,45 @@ +--TEST-- +Bug #50392 (date_create_from_format enforces 6 digits for 'u' format character) +--FILE-- + +--EXPECT-- +2009-03-01 18:00:00. +- X +- Data missing + +2009-03-01 18:00:00.1 +- 0.1 + +2009-03-01 18:00:00.22 +- 0.22 + +2009-03-01 18:00:00.333 +- 0.333 + +2009-03-01 18:00:00.4444 +- 0.4444 + +2009-03-01 18:00:00.55555 +- 0.55555 + +2009-03-01 18:00:00.666666 +- 0.666666 + +2009-03-01 18:00:00.7777777 +- 0.777777 +- Trailing data diff --git a/ext/date/tests/bug50475.phpt b/ext/date/tests/bug50475.phpt new file mode 100644 index 0000000..454e86c --- /dev/null +++ b/ext/date/tests/bug50475.phpt @@ -0,0 +1,18 @@ +--TEST-- +Bug #50475 (DateTime::setISODate followed by DateTime::setTime) +--FILE-- +setISODate(2009, 6, 1); + +var_dump($date->format('Y-m-d H:i:s')); + +$date->setTime(8, 0); +var_dump($date->format('Y-m-d H:i:s')); +?> +--EXPECT-- +string(19) "2009-02-02 00:00:00" +string(19) "2009-02-02 08:00:00" \ No newline at end of file diff --git a/ext/date/tests/bug50680.phpt b/ext/date/tests/bug50680.phpt new file mode 100644 index 0000000..99b1381 --- /dev/null +++ b/ext/date/tests/bug50680.phpt @@ -0,0 +1,9 @@ +--TEST-- +Bug #50680 ("eighth" quantifier is not understood) +--INI-- +date.timezone=UTC +--FILE-- +format( DateTime::ISO8601 ); + $date->modify( $test ); + echo ' -> ', $date->format( DateTime::ISO8601 ), "\n\n"; +} +?> +--EXPECT-- +first day +- month: 0; day: 1; first-day-of: false; last-day-of: false +- 2010-03-06T15:21:00+0000 -> 2010-03-07T15:21:00+0000 + +last day +- month: 0; day: -1; first-day-of: false; last-day-of: false +- 2010-03-06T15:21:00+0000 -> 2010-03-05T15:21:00+0000 + +next month +- month: 1; day: 0; first-day-of: false; last-day-of: false +- 2010-03-06T15:21:00+0000 -> 2010-04-06T15:21:00+0000 + +first day next month +- month: 1; day: 1; first-day-of: false; last-day-of: false +- 2010-03-06T15:21:00+0000 -> 2010-04-07T15:21:00+0000 + +last day next month +- month: 1; day: -1; first-day-of: false; last-day-of: false +- 2010-03-06T15:21:00+0000 -> 2010-04-05T15:21:00+0000 + +first day of next month +- month: 1; day: 0; first-day-of: true; last-day-of: false +- 2010-03-06T15:21:00+0000 -> 2010-04-01T15:21:00+0000 + +last day of next month +- month: 1; day: 0; first-day-of: false; last-day-of: true +- 2010-03-06T15:21:00+0000 -> 2010-04-30T15:21:00+0000 diff --git a/ext/date/tests/bug51393.phpt b/ext/date/tests/bug51393.phpt new file mode 100644 index 0000000..e3f0983 --- /dev/null +++ b/ext/date/tests/bug51393.phpt @@ -0,0 +1,75 @@ +--TEST-- +Bug #51393 (DateTime::createFromFormat() fails if format string contains timezone) +--INI-- +date.timezone=UTC +--FILE-- +getOffset()); + +$dt = DateTime::createFromFormat('P', '+08:00'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('O', '-0800'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('P', '-08:00'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('[O]', '[+0800]'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('[P]', '[+08:00]'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('[O]', '[-0800]'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('[P]', '[-08:00]'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('O', 'GMT+0800'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('P', 'GMT+08:00'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('O', 'GMT-0800'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('P', 'GMT-08:00'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('[O]', '[GMT+0800]'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('[P]', '[GMT+08:00]'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('[O]', '[GMT-0800]'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('[P]', '[GMT-08:00]'); +var_dump($dt->getOffset()); + +$dt = DateTime::createFromFormat('O', 'invalid'); +var_dump($dt); +?> +--EXPECT-- +int(28800) +int(28800) +int(-28800) +int(-28800) +int(28800) +int(28800) +int(-28800) +int(-28800) +int(28800) +int(28800) +int(-28800) +int(-28800) +int(28800) +int(28800) +int(-28800) +int(-28800) +bool(false) diff --git a/ext/date/tests/bug51819.phpt b/ext/date/tests/bug51819.phpt new file mode 100644 index 0000000..37cab20 --- /dev/null +++ b/ext/date/tests/bug51819.phpt @@ -0,0 +1,34 @@ +--TEST-- +Bug #51819 (Case discrepancy in timezone names cause Uncaught exception and fatal error) +--FILE-- +getMessage()); + print_r(DateTime::getLastErrors()); + } +} + +var_dump('this should be the only output'); +?> +--EXPECTF-- +string(30) "this should be the only output" diff --git a/ext/date/tests/bug51866.phpt b/ext/date/tests/bug51866.phpt new file mode 100644 index 0000000..8d765b0 --- /dev/null +++ b/ext/date/tests/bug51866.phpt @@ -0,0 +1,161 @@ +--TEST-- +Bug #51866 (Lenient parsing with parseFromFormat) +--FILE-- + + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(1) + ["errors"]=> + array(1) { + [10]=> + string(13) "Trailing data" + } +} + + +string(6) "Y-m-d+" +string(19) "2001-11-29 13:20:01" +object(DateTime)#2 (3) { + ["date"]=> + string(19) "2001-11-29 %d:%d:%d" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(%d) "%s" +} +array(4) { + ["warning_count"]=> + int(1) + ["warnings"]=> + array(1) { + [10]=> + string(13) "Trailing data" + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } +} + + +string(7) "Y-m-d +" +string(19) "2001-11-29 13:20:01" +object(DateTime)#3 (3) { + ["date"]=> + string(19) "2001-11-29 %d:%d:%d" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(%d) "%s" +} +array(4) { + ["warning_count"]=> + int(1) + ["warnings"]=> + array(1) { + [11]=> + string(13) "Trailing data" + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } +} + + +string(6) "Y-m-d+" +string(10) "2001-11-29" +object(DateTime)#2 (3) { + ["date"]=> + string(19) "2001-11-29 %d:%d:%d" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(%d) "%s" +} +array(4) { + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } +} + + +string(7) "Y-m-d +" +string(10) "2001-11-29" +bool(false) +array(4) { + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(1) + ["errors"]=> + array(1) { + [10]=> + string(12) "Data missing" + } +} + + +string(7) "Y-m-d +" +string(11) "2001-11-29 " +object(DateTime)#2 (3) { + ["date"]=> + string(19) "2001-11-29 %d:%d:%d" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(%d) "%s" +} +array(4) { + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } +} diff --git a/ext/date/tests/bug51994.phpt b/ext/date/tests/bug51994.phpt new file mode 100644 index 0000000..2c456ba --- /dev/null +++ b/ext/date/tests/bug51994.phpt @@ -0,0 +1,37 @@ +--TEST-- +Bug #51994 (date_parse_from_format is parsing invalid date using 'yz' format) +--FILE-- + 03.06.2010 +$a_date = date_parse_from_format('yz', $trans_date); +var_dump($a_date); +?> +--EXPECTF-- +array(12) { + ["year"]=> + int(2010) + ["month"]=> + int(6) + ["day"]=> + int(3) + ["hour"]=> + bool(false) + ["minute"]=> + bool(false) + ["second"]=> + bool(false) + ["fraction"]=> + bool(false) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} diff --git a/ext/date/tests/bug52062-64bit.phpt b/ext/date/tests/bug52062-64bit.phpt new file mode 100644 index 0000000..e4a2a52 --- /dev/null +++ b/ext/date/tests/bug52062-64bit.phpt @@ -0,0 +1,27 @@ +--TEST-- +Bug #52062 (large timestamps with DateTime::getTimestamp and DateTime::setTimestamp) (64 bit) +--SKIPIF-- + +--INI-- +date.timezone=UTC +--FILE-- +format('Y-m-d H:i:s U')); +var_dump($d->getTimestamp()); + +$d->setTimestamp(100000000000); +var_dump($d->format('Y-m-d H:i:s U')); +var_dump($d->getTimestamp()); + +$i = new DateInterval('PT100000000000S'); +var_dump($i->format('%s')); +?> +--EXPECT-- +string(32) "5138-11-16 09:46:40 100000000000" +int(100000000000) +string(32) "5138-11-16 09:46:40 100000000000" +int(100000000000) +string(12) "100000000000" diff --git a/ext/date/tests/bug52062.phpt b/ext/date/tests/bug52062.phpt new file mode 100644 index 0000000..1d81437 --- /dev/null +++ b/ext/date/tests/bug52062.phpt @@ -0,0 +1,31 @@ +--TEST-- +Bug #52062 (large timestamps with DateTime::getTimestamp and DateTime::setTimestamp) (32 bit) +--SKIPIF-- + +--XFAIL-- +Waiting for resolution of the 32-bit case. +--INI-- +date.timezone=UTC +--FILE-- +format('Y-m-d H:i:s U')); +var_dump($d->getTimestamp()); +var_dump($d->format('U')); + +$d->setTimestamp(100000000000); +var_dump($d->format('Y-m-d H:i:s U')); +var_dump($d->getTimestamp()); + +$i = new DateInterval('PT100000000000S'); +var_dump($i->format('%s')); +?> +--EXPECT-- +string(32) "5138-11-16 09:46:40 100000000000" +bool(false) +string(12) "100000000000" +string(30) "2008-07-11 04:56:32 1215752192" +int(1215752192) +string(10) "1215752192" diff --git a/ext/date/tests/bug52063.phpt b/ext/date/tests/bug52063.phpt new file mode 100644 index 0000000..af9da9e --- /dev/null +++ b/ext/date/tests/bug52063.phpt @@ -0,0 +1,15 @@ +--TEST-- +Bug #52063 (DateTime constructor's second argument doesn't have a null default value) +--FILE-- +format(DateTime::COOKIE); +echo "\n"; +$a = date_create("2009-01-01", null); +echo $a->format(DateTime::COOKIE); +echo "\n"; +?> +--EXPECTF-- +Thursday, 01-Jan-09 00:00:00 WET +Thursday, 01-Jan-09 00:00:00 WET diff --git a/ext/date/tests/bug52113.phpt b/ext/date/tests/bug52113.phpt new file mode 100644 index 0000000..a7d9339 --- /dev/null +++ b/ext/date/tests/bug52113.phpt @@ -0,0 +1,102 @@ +--TEST-- +Bug #52113 (Seg fault while creating (by unserialization) DatePeriod) +--INI-- +date.timezone=UTC +--FILE-- +diff($end); +$p = new DatePeriod($start, $diff, 2); +$diff_s = serialize($diff); +var_dump($diff, $diff_s); +var_export($diff); + +$diff_un = unserialize($diff_s); +$p = new DatePeriod($start, $diff_un, 2); +var_dump($diff_un, $p); + +$unser = DateInterval::__set_state(array( + 'y' => 7, + 'm' => 6, + 'd' => 5, + 'h' => 4, + 'i' => 3, + 's' => 2, + 'invert' => 1, + 'days' => 2400, +)); + +$p = new DatePeriod($start, $diff_un, 2); +var_dump($unser, $p); + +?> +--EXPECT-- +object(DateInterval)#3 (8) { + ["y"]=> + int(0) + ["m"]=> + int(0) + ["d"]=> + int(0) + ["h"]=> + int(4) + ["i"]=> + int(0) + ["s"]=> + int(0) + ["invert"]=> + int(0) + ["days"]=> + int(0) +} +string(128) "O:12:"DateInterval":8:{s:1:"y";i:0;s:1:"m";i:0;s:1:"d";i:0;s:1:"h";i:4;s:1:"i";i:0;s:1:"s";i:0;s:6:"invert";i:0;s:4:"days";i:0;}" +DateInterval::__set_state(array( + 'y' => 0, + 'm' => 0, + 'd' => 0, + 'h' => 4, + 'i' => 0, + 's' => 0, + 'invert' => 0, + 'days' => 0, +))object(DateInterval)#5 (8) { + ["y"]=> + int(0) + ["m"]=> + int(0) + ["d"]=> + int(0) + ["h"]=> + int(4) + ["i"]=> + int(0) + ["s"]=> + int(0) + ["invert"]=> + int(0) + ["days"]=> + int(0) +} +object(DatePeriod)#6 (0) { +} +object(DateInterval)#4 (8) { + ["y"]=> + int(7) + ["m"]=> + int(6) + ["d"]=> + int(5) + ["h"]=> + int(4) + ["i"]=> + int(3) + ["s"]=> + int(2) + ["invert"]=> + int(1) + ["days"]=> + int(2400) +} +object(DatePeriod)#7 (0) { +} diff --git a/ext/date/tests/bug52290.phpt b/ext/date/tests/bug52290.phpt new file mode 100644 index 0000000..78ede13 --- /dev/null +++ b/ext/date/tests/bug52290.phpt @@ -0,0 +1,27 @@ +--TEST-- +Bug #52290 (setDate, setISODate, setTime works wrong when DateTime created from timestamp) +--FILE-- +setTimezone(new DateTimeZone($tz)); + +var_dump($dt->format('o-\WW-N | Y-m-d | H:i:s | U')); + +$dt->setISODate(2005, 52, 1); +var_dump($dt->format('o-\WW-N | Y-m-d | H:i:s | U')); + +$dt->setDate(2007, 10, 10); +var_dump($dt->format('o-\WW-N | Y-m-d | H:i:s | U')); + +$dt->setTime(20, 30, 40); +var_dump($dt->format('o-\WW-N | Y-m-d | H:i:s | U')); +?> +--EXPECTF-- +string(47) "2005-W52-7 | 2006-01-01 | 00:00:00 | 1136073600" +string(47) "2005-W52-1 | 2005-12-26 | 00:00:00 | 1135555200" +string(47) "2007-W41-3 | 2007-10-10 | 00:00:00 | 1191974400" +string(47) "2007-W41-3 | 2007-10-10 | 20:30:40 | 1192048240" \ No newline at end of file diff --git a/ext/date/tests/bug52342.phpt b/ext/date/tests/bug52342.phpt new file mode 100644 index 0000000..45534a2 --- /dev/null +++ b/ext/date/tests/bug52342.phpt @@ -0,0 +1,23 @@ +--TEST-- +Bug #52342 (DateTime setIsoDate results in wrong timestamp) +--FILE-- +setTime(0, 0, 0); +$from->setISODate(2010, 28, 1); //Montag der 28ten Woche 2010 + +echo $from->format('d.m.Y H:i'), "\n"; //A +echo $from->getTimestamp(), "\n"; //B +echo date('d.m.Y H:i', $from->getTimestamp()), "\n"; //C + +$from->add(new DateInterval('P0D')); +echo $from->getTimestamp(), "\n"; //B +echo date('d.m.Y H:i', $from->getTimestamp()), "\n"; //C +?> +--EXPECT-- +12.07.2010 00:00 +1278885600 +12.07.2010 00:00 +1278885600 +12.07.2010 00:00 diff --git a/ext/date/tests/bug52430.phpt b/ext/date/tests/bug52430.phpt new file mode 100644 index 0000000..0f53708 --- /dev/null +++ b/ext/date/tests/bug52430.phpt @@ -0,0 +1,37 @@ +--TEST-- +Bug #52430 (date_parse parse 24:xx:xx as valid time) +--FILE-- + +--EXPECT-- +array(12) { + ["year"]=> + int(2010) + ["month"]=> + int(1) + ["day"]=> + int(1) + ["hour"]=> + int(24) + ["minute"]=> + int(59) + ["second"]=> + int(59) + ["fraction"]=> + float(0) + ["warning_count"]=> + int(1) + ["warnings"]=> + array(1) { + [18]=> + string(27) "The parsed time was invalid" + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} diff --git a/ext/date/tests/bug52454.phpt b/ext/date/tests/bug52454.phpt new file mode 100644 index 0000000..e2a94dc --- /dev/null +++ b/ext/date/tests/bug52454.phpt @@ -0,0 +1,22 @@ +--TEST-- +Bug #52454 (Relative dates and getTimestamp increments by one day) +--FILE-- +modify('this week +6 days'); + +echo $endOfWeek->format('Y-m-d H:i:s')."\n"; +echo $endOfWeek->format('U')."\n"; + +/* Thar she blows! */ +echo $endOfWeek->getTimestamp()."\n"; + +echo $endOfWeek->format('Y-m-d H:i:s')."\n"; +?> +--EXPECT-- +2010-08-01 09:46:49 +1280652409 +1280652409 +2010-08-01 09:46:49 diff --git a/ext/date/tests/bug52577.phpt b/ext/date/tests/bug52577.phpt new file mode 100644 index 0000000..7a58f2a --- /dev/null +++ b/ext/date/tests/bug52577.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #52577 (Incorrect date returning) +--FILE-- +format($date_format); +?> +--EXPECT-- +String: 7.8.2010 +Unixtime: 1281128400 +Date(PHP): Sat, 07 Aug 2010 00:00:00 +0300 +DateTime(PHP Class): Fri, 06 Aug 2010 21:00:00 +0000 diff --git a/ext/date/tests/bug52668.phpt b/ext/date/tests/bug52668.phpt new file mode 100644 index 0000000..307a426 --- /dev/null +++ b/ext/date/tests/bug52668.phpt @@ -0,0 +1,25 @@ +--TEST-- +Bug #52668 (Iterating over a dateperiod twice is broken) +--INI-- +date.timezone=UTC +--FILE-- +format('r') . "\n"; // Sun, 12 Dec 2010 00:00:00 +0100 +} +echo $start->format('r'), "\n"; +foreach($dp as $dt) { + echo $dt->format('r') . "\n"; // Sun, 12 Dec 2010 00:00:00 +0100 +} +echo $start->format('r'), "\n\n"; +?> +--EXPECT-- +Sun, 12 Dec 2010 00:00:00 +0000 +Mon, 13 Dec 2010 00:00:00 +0000 +Sun, 12 Dec 2010 00:00:00 +0000 +Sun, 12 Dec 2010 00:00:00 +0000 +Mon, 13 Dec 2010 00:00:00 +0000 +Sun, 12 Dec 2010 00:00:00 +0000 diff --git a/ext/date/tests/bug52738.phpt b/ext/date/tests/bug52738.phpt new file mode 100644 index 0000000..fc1b602 --- /dev/null +++ b/ext/date/tests/bug52738.phpt @@ -0,0 +1,32 @@ +--TEST-- +Bug #52738 (Can't use new properties in class extended from DateInterval) +--FILE-- +unit."\n"; +$I->unit++; +echo $I->unit."\n"; +$I->unit = 42; +echo $I->unit."\n"; +$I->d++; +print_r($I); +--EXPECT-- +1 +2 +42 +di Object +( + [unit] => 42 + [y] => 0 + [m] => 0 + [d] => 11 + [h] => 0 + [i] => 0 + [s] => 0 + [invert] => 0 + [days] => +) diff --git a/ext/date/tests/bug52808.phpt b/ext/date/tests/bug52808.phpt new file mode 100644 index 0000000..e031ac6 --- /dev/null +++ b/ext/date/tests/bug52808.phpt @@ -0,0 +1,85 @@ +--TEST-- +Bug #52808 (Segfault when specifying interval as two dates) +--FILE-- +getMessage(), "\n"; + } +} +echo "==DONE==\n"; +?> +--EXPECTF-- +object(DateInterval)#%d (8) { + ["y"]=> + int(1) + ["m"]=> + int(2) + ["d"]=> + int(10) + ["h"]=> + int(2) + ["i"]=> + int(30) + ["s"]=> + int(0) + ["invert"]=> + int(1) + ["days"]=> + int(437) +} +object(DateInterval)#%d (8) { + ["y"]=> + int(0) + ["m"]=> + int(9) + ["d"]=> + int(18) + ["h"]=> + int(21) + ["i"]=> + int(30) + ["s"]=> + int(0) + ["invert"]=> + int(0) + ["days"]=> + int(294) +} +object(DateInterval)#%d (8) { + ["y"]=> + int(0) + ["m"]=> + int(9) + ["d"]=> + int(18) + ["h"]=> + int(21) + ["i"]=> + int(30) + ["s"]=> + int(0) + ["invert"]=> + int(0) + ["days"]=> + int(294) +} +DateInterval::__construct(): Failed to parse interval (2007-05-11T15:30:00Z/) +DateInterval::__construct(): Failed to parse interval (2007-05-11T15:30:00Z) +DateInterval::__construct(): Unknown or bad format (2007-05-11T15:30:00Z/:00Z) +==DONE== diff --git a/ext/date/tests/bug53437.phpt b/ext/date/tests/bug53437.phpt new file mode 100644 index 0000000..f089866 --- /dev/null +++ b/ext/date/tests/bug53437.phpt @@ -0,0 +1,28 @@ +--TEST-- +Bug #53437 (Crash when using unserialized DatePeriod instance) +--XFAIL-- +Bug #53437 Not fixed yet +--FILE-- +format('Y-m-d H:i:s')."\r\n"; +} +echo "\r\n"; +var_dump($dp); + +$ser = serialize($dp); // $ser is: O:10:"DatePeriod":0:{} + +// Create dangerous instance +$dpu = unserialize($ser); // $dpu has invalid values??? +var_dump($dpu); + +echo "Unserialized:\r\n"; +// ???which leads to CRASH: +foreach($dpu as $dt) { + echo $dt->format('Y-m-d H:i:s')."\r\n"; +} +?> +--EXPECT-- diff --git a/ext/date/tests/bug53502.phpt b/ext/date/tests/bug53502.phpt new file mode 100644 index 0000000..6cfa5e0 --- /dev/null +++ b/ext/date/tests/bug53502.phpt @@ -0,0 +1,13 @@ +--TEST-- +Bug #53502 (strtotime with timezone memory leak) +--INI-- +date.timezone=UTC +--FILE-- + +--EXPECT-- +Nothing, test only makes sense through valgrind. diff --git a/ext/date/tests/bug54283.phpt b/ext/date/tests/bug54283.phpt new file mode 100644 index 0000000..780d0fa --- /dev/null +++ b/ext/date/tests/bug54283.phpt @@ -0,0 +1,14 @@ +--TEST-- +Bug #54283 (new DatePeriod(NULL) causes crash) +--FILE-- +getMessage()); +} + +?> +--EXPECTF-- +string(51) "DatePeriod::__construct(): Unknown or bad format ()" diff --git a/ext/date/tests/bug54316.phpt b/ext/date/tests/bug54316.phpt new file mode 100644 index 0000000..a02288c --- /dev/null +++ b/ext/date/tests/bug54316.phpt @@ -0,0 +1,28 @@ +--TEST-- +Bug #54316 (DateTime::createFromFormat does not handle trailing '|' correctly) +--INI-- +date.timezone=UTC +--FILE-- + + string(19) "2011-02-02 00:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} +object(DateTime)#2 (3) { + ["date"]=> + string(19) "1970-01-01 00:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} diff --git a/ext/date/tests/bug54340.phpt b/ext/date/tests/bug54340.phpt new file mode 100644 index 0000000..7f00309 --- /dev/null +++ b/ext/date/tests/bug54340.phpt @@ -0,0 +1,43 @@ +--TEST-- +Bug #54340 (DateTime::add() method bug) +--INI-- +date.timezone=UTC +--FILE-- +add($interval); +var_dump($dt); + +$dt = new DateTime('first day of January 2011'); + +$dt->sub($interval); +var_dump($dt); +--EXPECT-- +object(DateTime)#2 (3) { + ["date"]=> + string(19) "2011-01-01 00:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} +object(DateTime)#2 (3) { + ["date"]=> + string(19) "2011-01-02 00:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} +object(DateTime)#3 (3) { + ["date"]=> + string(19) "2010-12-31 00:00:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} diff --git a/ext/date/tests/bug54597.phpt b/ext/date/tests/bug54597.phpt new file mode 100644 index 0000000..d196adf --- /dev/null +++ b/ext/date/tests/bug54597.phpt @@ -0,0 +1,18 @@ +--TEST-- +Bug #54597 (incorrect years for DateTime objects created with 4-digit years) +--INI-- +date.timezone=Europe/London +--FILE-- +format( 'Y' ), "\n"; +$dateObject = new DateTime( 'January 1, 0099', $tz ); +echo $dateObject->format( 'Y' ), "\n"; +$dateObject = new DateTime( '0099-01', $tz ); +echo $dateObject->format( 'Y' ), "\n"; +?> +--EXPECT-- +0099 +0099 +0099 diff --git a/ext/date/tests/bug54851.phpt b/ext/date/tests/bug54851.phpt new file mode 100644 index 0000000..84d18ba --- /dev/null +++ b/ext/date/tests/bug54851.phpt @@ -0,0 +1,57 @@ +--TEST-- +Bug #54851 (DateTime::createFromFormat() doesn't interpret "D") +--INI-- +date.timezone=UTC +--FILE-- +format("D"). ' 0 00 00'); +echo $date->format("r"), "\n"; +echo $date2->format("r"), "\n"; +var_dump($date->format("D") == $date2->format("D")); + +// Verify that our implementation works regardless of position +$datePre = DateTime::createFromFormat("!D d M Y", "Fri 17 may 2011"); +$datePost = DateTime::createFromFormat("!d M Y D", "17 may 2011 Fri"); +echo $datePre->format("r"), "\n"; +echo $datePost->format("r"), "\n"; +var_dump($datePre->format("Y-m-d") == $datePost->format("Y-m-d")); + +// Verify that our implementation is the same as for the constructor and +// strtotime +$date1 = new DateTime("Tuesday"); +$date2 = DateTime::createFromFormat("D H i s", "Tuesday 0 00 00"); +echo $date1->format('r'), "\n"; +echo $date2->format('r'), "\n"; +var_dump($date1->format('D') == $date2->format('D')); + +// - when the day is not the same as the day on the original date: +$date1 = DateTime::createFromFormat("!D d M Y", "Fri 19 November 2011"); +$date2 = new DateTime("Fri 19 November 2011"); +echo $date1->format('r'), "\n"; +echo $date2->format('r'), "\n"; +var_dump($date1->format('Y-m-d') == $date2->format('Y-m-d')); + +// - when the day *is* the same as the day on the original date: +$date1 = DateTime::createFromFormat("!D d M Y", "Sat 19 November 2011"); +$date2 = new DateTime("Sat 19 November 2011"); +echo $date1->format('r'), "\n"; +echo $date2->format('r'), "\n"; +var_dump($date1->format('Y-m-d') == $date2->format('Y-m-d')); +?> +--EXPECTF-- +Tue, 17 May 2011 22:14:12 +0000 +Tue, %d %s %d 00:00:00 +0000 +bool(true) +Fri, 20 May 2011 00:00:00 +0000 +Fri, 20 May 2011 00:00:00 +0000 +bool(true) +Tue, %d %s %d 00:00:00 +0000 +Tue, %d %s %d 00:00:00 +0000 +bool(true) +Fri, 25 Nov 2011 00:00:00 +0000 +Fri, 25 Nov 2011 00:00:00 +0000 +bool(true) +Sat, 19 Nov 2011 00:00:00 +0000 +Sat, 19 Nov 2011 00:00:00 +0000 +bool(true) diff --git a/ext/date/tests/bug55253.phpt b/ext/date/tests/bug55253.phpt new file mode 100644 index 0000000..5751cc1 --- /dev/null +++ b/ext/date/tests/bug55253.phpt @@ -0,0 +1,45 @@ +--TEST-- +Bug #55253 (DateTime::add() and sub() result -1 hour on objects with time zone type 2) +--CREDITS-- +Daniel Convissor +--FILE-- +format('Y-m-d H:i:s T') . "\n"; +echo 'Zone Type 2: ' . $date2->format('Y-m-d H:i:s T') . "\n"; + +echo $interval->format('Add %h hours %i minutes') . "\n"; +$date3->add($interval); +$date2->add($interval); + +echo 'Zone Type 3: ' . $date3->format('Y-m-d H:i:s T') . "\n"; +echo 'Zone Type 2: ' . $date2->format('Y-m-d H:i:s T') . "\n"; + +// Try subtracting from expected result. +$date3 = new DateTime('2010-10-04 04:19:48'); +$date2 = new DateTime('2010-10-04 04:19:48 EDT'); + +echo $interval->format('Subtract %h hours %i minutes from expected') . "\n"; +$date3->sub($interval); +$date2->sub($interval); + +echo 'Zone Type 3: ' . $date3->format('Y-m-d H:i:s T') . "\n"; +echo 'Zone Type 2: ' . $date2->format('Y-m-d H:i:s T') . "\n"; + +?> +--EXPECT-- +Zone Type 3: 2010-10-04 02:18:48 EDT +Zone Type 2: 2010-10-04 02:18:48 EDT +Add 2 hours 1 minutes +Zone Type 3: 2010-10-04 04:19:48 EDT +Zone Type 2: 2010-10-04 04:19:48 EDT +Subtract 2 hours 1 minutes from expected +Zone Type 3: 2010-10-04 02:18:48 EDT +Zone Type 2: 2010-10-04 02:18:48 EDT diff --git a/ext/date/tests/bug55397.phpt b/ext/date/tests/bug55397.phpt new file mode 100644 index 0000000..efc09b5 --- /dev/null +++ b/ext/date/tests/bug55397.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #55397 (comparsion of incomplete DateTime causes SIGSEGV) +--INI-- +--FILE-- + +--EXPECTF-- +Warning: %s: Trying to compare an incomplete DateTime object in %s on line %d +bool(false) diff --git a/ext/date/tests/bug60236.phpt b/ext/date/tests/bug60236.phpt new file mode 100644 index 0000000..faa0e16 --- /dev/null +++ b/ext/date/tests/bug60236.phpt @@ -0,0 +1,22 @@ +--TEST-- +Bug #60236 (TLA timezone dates are not converted properly from timestamp) +--INI-- +date.timezone=America/New_York +--FILE-- +format('U'); +var_dump($ts); +$t->setTimestamp($ts); +var_dump($t); +?> +--EXPECT-- +string(10) "1278455908" +object(DateTime)#1 (3) { + ["date"]=> + string(19) "2010-07-06 18:38:28" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "EDT" +} diff --git a/ext/date/tests/bug62500.phpt b/ext/date/tests/bug62500.phpt new file mode 100644 index 0000000..6952332 --- /dev/null +++ b/ext/date/tests/bug62500.phpt @@ -0,0 +1,28 @@ +--TEST-- +Bug #62500 (Segfault in DateInterval class when extended) +--INI-- +date.timezone=GMT +--FILE-- +foo); + $this->foo = 3; + var_dump($this->foo); + var_dump($this->{2}); + parent::__construct($time_spec); + } +} +try { + $c = new Crasher('blah'); +} catch (Exception $e) { + var_dump($e->getMessage()); +} +--EXPECTF-- +NULL +int(3) + +Notice: Undefined property: Crasher::$2 in %sbug62500.php on line %d +NULL +string(%s) "DateInterval::__construct(): Unknown or bad format (blah)" diff --git a/ext/date/tests/bug62561.phpt b/ext/date/tests/bug62561.phpt new file mode 100644 index 0000000..0ed32c1 --- /dev/null +++ b/ext/date/tests/bug62561.phpt @@ -0,0 +1,16 @@ +--TEST-- +Bug #62561 Unixtimestamp may take on local times DST flag (this test will only be valid during EDT) +--FILE-- +add($int); + +echo 'ts: '.$ts->format('Y-m-d H:i:s')."\n"; +echo 'day from ts: '.$dayFromTs->format('Y-m-d H:i:s')."\n"; +?> +--EXPECT-- +ts: 2012-07-01 04:00:00 +day from ts: 2012-07-02 04:00:00 diff --git a/ext/date/tests/bug62852.phpt b/ext/date/tests/bug62852.phpt new file mode 100644 index 0000000..26de510 --- /dev/null +++ b/ext/date/tests/bug62852.phpt @@ -0,0 +1,36 @@ +--TEST-- +Bug #62852 (Unserialize invalid DateTime causes crash) +--INI-- +date.timezone=GMT +--XFAIL-- +bug is not fixed yet +--FILE-- + +--EXPECTF-- +okey diff --git a/ext/date/tests/bug62896.phpt b/ext/date/tests/bug62896.phpt new file mode 100644 index 0000000..ccdcfb0 --- /dev/null +++ b/ext/date/tests/bug62896.phpt @@ -0,0 +1,42 @@ +--TEST-- +Bug #62896 Unixtimestamp may take on local times DST flag (this test will only be valid during CEST) +--INI-- +date.timezone=Europe/Berlin +--FILE-- +format('Y-m-d H:i:s T').' (offset '.$date->getOffset().")\n"; + + $date->modify('+0 days'); + echo $date->format('Y-m-d H:i:s T').' (offset '.$date->getOffset().")\n"; + + echo "FROM TIMESTAMP, WITH TZ:\n"; + + $date = new DateTime('@'.strtotime('2012-08-22 00:00:00 CEST')); + $date->setTimezone($tz); + echo $date->format('Y-m-d H:i:s T').' (offset '.$date->getOffset().")\n"; + + $date->modify('+0 days'); + echo $date->format('Y-m-d H:i:s T').' (offset '.$date->getOffset().")\n"; + + echo "FROM STRING:\n"; + + $date = new DateTime('2012-08-22 00:00:00 CEST', $tz); + echo $date->format('Y-m-d H:i:s T').' (offset '.$date->getOffset().")\n"; + + $date->modify('+0 days'); + echo $date->format('Y-m-d H:i:s T').' (offset '.$date->getOffset().")\n"; +--EXPECT-- +FROM TIMESTAMP, NO TZ: +2012-08-21 22:00:00 GMT+0000 (offset 0) +2012-08-21 22:00:00 GMT+0000 (offset 0) +FROM TIMESTAMP, WITH TZ: +2012-08-22 00:00:00 CEST (offset 7200) +2012-08-22 00:00:00 CEST (offset 7200) +FROM STRING: +2012-08-22 00:00:00 CEST (offset 7200) +2012-08-22 00:00:00 CEST (offset 7200) diff --git a/ext/date/tests/bug63435.phpt b/ext/date/tests/bug63435.phpt new file mode 100644 index 0000000..dcec6e4 --- /dev/null +++ b/ext/date/tests/bug63435.phpt @@ -0,0 +1,16 @@ +--TEST-- +Bug #63435 Datetime::format('u') sometimes wrong by 1 microsecond +--INI-- +date.timezone=UTC +--FILE-- +format("u"); + if ($res != $i) { + echo "$i != $res\n"; + } +} +echo "Done"; +--EXPECT-- +Done diff --git a/ext/date/tests/cal_days_in_month_invalid_calendar.phpt b/ext/date/tests/cal_days_in_month_invalid_calendar.phpt new file mode 100644 index 0000000..3550b91 --- /dev/null +++ b/ext/date/tests/cal_days_in_month_invalid_calendar.phpt @@ -0,0 +1,16 @@ +--TEST-- +cal_days_in_month: test invalid parameter +--CREDITS-- +Havard Eide +#PHPTestFest2009 Norway 2009-06-09 \o/ +--SKIPIF-- + +--INI-- +date.timezone=UTC +--FILE-- + +--EXPECTF-- +Warning: cal_days_in_month(): invalid calendar ID 99. in %s on line %d + diff --git a/ext/date/tests/cal_days_in_month_invalid_date.phpt b/ext/date/tests/cal_days_in_month_invalid_date.phpt new file mode 100644 index 0000000..0315270 --- /dev/null +++ b/ext/date/tests/cal_days_in_month_invalid_date.phpt @@ -0,0 +1,16 @@ +--TEST-- +cal_days_in_month: test invalid parameter +--CREDITS-- +Havard Eide +#PHPTestFest2009 Norway 2009-06-09 \o/ +--SKIPIF-- + +--INI-- +date.timezone=UTC +--FILE-- + +--EXPECTF-- +Warning: cal_days_in_month(): invalid date. in %s on line %d + diff --git a/ext/date/tests/checkdate_basic1.phpt b/ext/date/tests/checkdate_basic1.phpt new file mode 100644 index 0000000..2937f29 --- /dev/null +++ b/ext/date/tests/checkdate_basic1.phpt @@ -0,0 +1,54 @@ +--TEST-- +Test date_create() function : basic functionality +--FILE-- +max year +var_dump( checkdate(7, 2, 0) ); // +===DONE=== +--EXPECT-- +*** Testing checkdate() : basic functionality *** +-- The following are all valid dates -- +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +-- The following are all invalid dates -- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/checkdate_error.phpt b/ext/date/tests/checkdate_error.phpt new file mode 100644 index 0000000..4546408 --- /dev/null +++ b/ext/date/tests/checkdate_error.phpt @@ -0,0 +1,49 @@ +--TEST-- +Test checkdate() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing checkdate() : error conditions *** + +-- Testing checkdate() function with more than expected no. of arguments -- + +Warning: checkdate() expects exactly 3 parameters, 4 given in %s on line %d +bool(false) + +-- Testing checkdate() function with less than expected no. of arguments -- + +Warning: checkdate() expects exactly 3 parameters, 0 given in %s on line %d +bool(false) + +Warning: checkdate() expects exactly 3 parameters, 1 given in %s on line %d +bool(false) + +Warning: checkdate() expects exactly 3 parameters, 2 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/checkdate_variation1.phpt b/ext/date/tests/checkdate_variation1.phpt new file mode 100644 index 0000000..378270c --- /dev/null +++ b/ext/date/tests/checkdate_variation1.phpt @@ -0,0 +1,202 @@ +--TEST-- +Test checkdate() function : usage variation - Passing unexpected values to first argument $month. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$day = 2; +$year = 1963; + +foreach($inputs as $variation =>$month) { + echo "\n-- $variation --\n"; + var_dump( checkdate($month, $day, $year) ); +}; + +// closing the resource +fclose( $file_handle); + +?> +===DONE=== +--EXPECTF-- +*** Testing checkdate() : usage variation - unexpected values to first argument $month*** + +-- float 10.5 -- +bool(true) + +-- float -10.5 -- +bool(false) + +-- float .5 -- +bool(false) + +-- empty array -- + +Warning: checkdate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: checkdate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: checkdate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: checkdate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +bool(false) + +-- lowercase null -- +bool(false) + +-- lowercase true -- +bool(true) + +-- lowercase false -- +bool(false) + +-- uppercase TRUE -- +bool(true) + +-- uppercase FALSE -- +bool(false) + +-- empty string DQ -- + +Warning: checkdate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: checkdate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: checkdate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: checkdate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: checkdate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: checkdate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: checkdate() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: checkdate() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +bool(false) + +-- unset var -- +bool(false) + +-- resource -- + +Warning: checkdate() expects parameter 1 to be long, resource given in %s on line %d +bool(false) +===DONE=== + diff --git a/ext/date/tests/checkdate_variation2.phpt b/ext/date/tests/checkdate_variation2.phpt new file mode 100644 index 0000000..76afbdc --- /dev/null +++ b/ext/date/tests/checkdate_variation2.phpt @@ -0,0 +1,202 @@ +--TEST-- +Test checkdate() function : usage variation - Passing unexpected values to second argument $day. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$month = 7; +$year = 1963; + +foreach($inputs as $variation =>$day) { + echo "\n-- $variation --\n"; + var_dump( checkdate($month, $day, $year) ); +}; + +// closing the resource +fclose( $file_handle); + +?> +===DONE=== +--EXPECTF-- +*** Testing checkdate() : usage variation - unexpected values to second argument $day*** + +-- float 10.5 -- +bool(true) + +-- float -10.5 -- +bool(false) + +-- float .5 -- +bool(false) + +-- empty array -- + +Warning: checkdate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: checkdate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: checkdate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: checkdate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +bool(false) + +-- lowercase null -- +bool(false) + +-- lowercase true -- +bool(true) + +-- lowercase false -- +bool(false) + +-- uppercase TRUE -- +bool(true) + +-- uppercase FALSE -- +bool(false) + +-- empty string DQ -- + +Warning: checkdate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: checkdate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: checkdate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: checkdate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: checkdate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: checkdate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: checkdate() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: checkdate() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +bool(false) + +-- unset var -- +bool(false) + +-- resource -- + +Warning: checkdate() expects parameter 2 to be long, resource given in %s on line %d +bool(false) +===DONE=== + diff --git a/ext/date/tests/checkdate_variation3.phpt b/ext/date/tests/checkdate_variation3.phpt new file mode 100644 index 0000000..b946056 --- /dev/null +++ b/ext/date/tests/checkdate_variation3.phpt @@ -0,0 +1,201 @@ +--TEST-- +Test checkdate() function : usage variation - Passing unexpected values to third argument $year. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$day = 2; +$month = 7; + +foreach($inputs as $variation =>$year) { + echo "\n-- $variation --\n"; + var_dump( checkdate($month, $day, $year) ); +}; + +// closing the resource +fclose( $file_handle); + +?> +===DONE=== +--EXPECTF-- +*** Testing checkdate() : usage variation - unexpected values to third argument $year*** + +-- float 10.5 -- +bool(true) + +-- float -10.5 -- +bool(false) + +-- float .5 -- +bool(false) + +-- empty array -- + +Warning: checkdate() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: checkdate() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: checkdate() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: checkdate() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +bool(false) + +-- lowercase null -- +bool(false) + +-- lowercase true -- +bool(true) + +-- lowercase false -- +bool(false) + +-- uppercase TRUE -- +bool(true) + +-- uppercase FALSE -- +bool(false) + +-- empty string DQ -- + +Warning: checkdate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: checkdate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: checkdate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: checkdate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: checkdate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: checkdate() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: checkdate() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: checkdate() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +bool(false) + +-- unset var -- +bool(false) + +-- resource -- + +Warning: checkdate() expects parameter 3 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date-lenient-create.phpt b/ext/date/tests/date-lenient-create.phpt new file mode 100644 index 0000000..49ee3c1 --- /dev/null +++ b/ext/date/tests/date-lenient-create.phpt @@ -0,0 +1,149 @@ +--TEST-- +Test for + character in date format +--FILE-- +setTime(0, 0) ); +print_r( date_get_last_errors() ); +echo "==\n"; +print_r( date_create_from_format( '+m/d/y', $date , $tz)->setTime(0, 0) ); +print_r( date_get_last_errors() ); +echo "==\n"; +print_r( date_create_from_format( 'm/d/y++', $date , $tz)->setTime(0, 0) ); +print_r( date_get_last_errors() ); +echo "==\n"; + +$date = "06/08/04"; +print_r( date_create_from_format( 'm/d/y+', $date , $tz)->setTime(0, 0) ); +print_r( date_get_last_errors() ); +echo "==\n"; +print_r( date_create_from_format( '+m/d/y', $date , $tz)->setTime(0, 0) ); +print_r( date_get_last_errors() ); +echo "==\n"; + +?> +--EXPECT-- +== +Array +( + [warning_count] => 0 + [warnings] => Array + ( + ) + + [error_count] => 1 + [errors] => Array + ( + [8] => Trailing data + ) + +) +== +DateTime Object +( + [date] => 2004-06-08 00:00:00 + [timezone_type] => 3 + [timezone] => UTC +) +Array +( + [warning_count] => 1 + [warnings] => Array + ( + [8] => Trailing data + ) + + [error_count] => 0 + [errors] => Array + ( + ) + +) +== +DateTime Object +( + [date] => 2004-06-08 00:00:00 + [timezone_type] => 3 + [timezone] => UTC +) +Array +( + [warning_count] => 1 + [warnings] => Array + ( + [8] => Trailing data + ) + + [error_count] => 0 + [errors] => Array + ( + ) + +) +== +DateTime Object +( + [date] => 2004-06-08 00:00:00 + [timezone_type] => 3 + [timezone] => UTC +) +Array +( + [warning_count] => 1 + [warnings] => Array + ( + [8] => Trailing data + ) + + [error_count] => 0 + [errors] => Array + ( + ) + +) +== +DateTime Object +( + [date] => 2004-06-08 00:00:00 + [timezone_type] => 3 + [timezone] => UTC +) +Array +( + [warning_count] => 0 + [warnings] => Array + ( + ) + + [error_count] => 0 + [errors] => Array + ( + ) + +) +== +DateTime Object +( + [date] => 2004-06-08 00:00:00 + [timezone_type] => 3 + [timezone] => UTC +) +Array +( + [warning_count] => 0 + [warnings] => Array + ( + ) + + [error_count] => 0 + [errors] => Array + ( + ) + +) +== diff --git a/ext/date/tests/date-lenient.phpt b/ext/date/tests/date-lenient.phpt new file mode 100644 index 0000000..e5862e1 --- /dev/null +++ b/ext/date/tests/date-lenient.phpt @@ -0,0 +1,146 @@ +--TEST-- +Test for + character in date format +--FILE-- + +--EXPECT-- +Array +( + [year] => 2004 + [month] => 6 + [day] => 8 + [hour] => + [minute] => + [second] => + [fraction] => + [warning_count] => 0 + [warnings] => Array + ( + ) + + [error_count] => 1 + [errors] => Array + ( + [8] => Trailing data + ) + + [is_localtime] => +) +Array +( + [year] => 2004 + [month] => 6 + [day] => 8 + [hour] => + [minute] => + [second] => + [fraction] => + [warning_count] => 1 + [warnings] => Array + ( + [8] => Trailing data + ) + + [error_count] => 0 + [errors] => Array + ( + ) + + [is_localtime] => +) +Array +( + [year] => 2004 + [month] => 6 + [day] => 8 + [hour] => + [minute] => + [second] => + [fraction] => + [warning_count] => 1 + [warnings] => Array + ( + [8] => Trailing data + ) + + [error_count] => 0 + [errors] => Array + ( + ) + + [is_localtime] => +) +Array +( + [year] => 2004 + [month] => 6 + [day] => 8 + [hour] => + [minute] => + [second] => + [fraction] => + [warning_count] => 1 + [warnings] => Array + ( + [8] => Trailing data + ) + + [error_count] => 0 + [errors] => Array + ( + ) + + [is_localtime] => +) +Array +( + [year] => 2004 + [month] => 6 + [day] => 8 + [hour] => + [minute] => + [second] => + [fraction] => + [warning_count] => 0 + [warnings] => Array + ( + ) + + [error_count] => 0 + [errors] => Array + ( + ) + + [is_localtime] => +) +Array +( + [year] => 2004 + [month] => 6 + [day] => 8 + [hour] => + [minute] => + [second] => + [fraction] => + [warning_count] => 0 + [warnings] => Array + ( + ) + + [error_count] => 0 + [errors] => Array + ( + ) + + [is_localtime] => +) diff --git a/ext/date/tests/date-parse-by-format001.phpt b/ext/date/tests/date-parse-by-format001.phpt new file mode 100644 index 0000000..66975e9 --- /dev/null +++ b/ext/date/tests/date-parse-by-format001.phpt @@ -0,0 +1,51 @@ +--TEST-- +Test for date_parse_by_format() +--FILE-- + +--EXPECT-- +Array +( + [year] => 2004 + [month] => 6 + [day] => 8 + [hour] => 0 + [minute] => 0 + [second] => 0 + [fraction] => 0 + [warning_count] => 0 + [warnings] => Array + ( + ) + + [error_count] => 0 + [errors] => Array + ( + ) + + [is_localtime] => +) +Array +( + [year] => 2004 + [month] => 6 + [day] => 8 + [hour] => 0 + [minute] => 0 + [second] => 0 + [fraction] => 0 + [warning_count] => 0 + [warnings] => Array + ( + ) + + [error_count] => 0 + [errors] => Array + ( + ) + + [is_localtime] => +) diff --git a/ext/date/tests/date-set-timestamp.phpt b/ext/date/tests/date-set-timestamp.phpt new file mode 100644 index 0000000..c799b36 --- /dev/null +++ b/ext/date/tests/date-set-timestamp.phpt @@ -0,0 +1,15 @@ +--TEST-- +DateTime::setTimestamp() +--FILE-- +format( "Y-m-d H:i e\n" ); + +$d = new DateTime(); +$d->setTimestamp( 1217184864 ); +echo $d->format( "Y-m-d H:i e\n" ); +?> +--EXPECT-- +2008-07-27 18:54 +00:00 +2008-07-27 20:54 Europe/Oslo diff --git a/ext/date/tests/date-time-modify-times.phpt b/ext/date/tests/date-time-modify-times.phpt new file mode 100644 index 0000000..258ddbd --- /dev/null +++ b/ext/date/tests/date-time-modify-times.phpt @@ -0,0 +1,47 @@ +--TEST-- +Test for DateTime::modify() with absolute time statements +--INI-- +date.timezone=Europe/London +--FILE-- + array( + 'october 23:00', // October 23rd, with a broken time + 'back of 4pm', + 'next week monday', + 'next week monday 10am', + 'tuesday noon', + 'first monday of January 2011', + 'first monday of January 2011 09:00', + ), + '2010-12-15 19:42:45' => array( + 'october 23:00', // October 23rd, with a broken time + 'march 28, 00:15', + 'march 28, 01:15', // doesn't exist bcause of DST + 'march 28, 02:15', + ), +); + +foreach ( $tests as $start => $data ) +{ + foreach ( $data as $test ) + { + echo date_create( $start ) + ->modify( $test ) + ->format( DateTime::RFC2822 ), "\n"; + } +} +echo "\n"; +?> +--EXPECT-- +Sat, 23 Oct 2010 00:00:00 +0000 +Wed, 15 Dec 2010 16:15:00 +0000 +Mon, 20 Dec 2010 00:00:00 +0000 +Mon, 20 Dec 2010 10:00:00 +0000 +Tue, 21 Dec 2010 12:00:00 +0000 +Mon, 03 Jan 2011 00:00:00 +0000 +Mon, 03 Jan 2011 09:00:00 +0000 +Sat, 23 Oct 2010 00:00:00 +0100 +Sun, 28 Mar 2010 00:15:00 +0000 +Sun, 28 Mar 2010 02:15:00 +0100 +Sun, 28 Mar 2010 02:15:00 +0100 diff --git a/ext/date/tests/date.phpt b/ext/date/tests/date.phpt new file mode 100644 index 0000000..12bc9f0 --- /dev/null +++ b/ext/date/tests/date.phpt @@ -0,0 +1,22 @@ +--TEST-- +date() function +--FILE-- + +--EXPECT-- +c: 2003-01-23T12:20:59+00:00 +r: Thu, 23 Jan 2003 12:20:59 +0000 +c: 2003-01-23T13:20:59+01:00 +r: Thu, 23 Jan 2003 13:20:59 +0100 diff --git a/ext/date/tests/date_add_basic.phpt b/ext/date/tests/date_add_basic.phpt new file mode 100644 index 0000000..14a3d83 --- /dev/null +++ b/ext/date/tests/date_add_basic.phpt @@ -0,0 +1,45 @@ +--TEST-- +Test date_add() function : basic functionality +--CREDITS-- +Felix De Vliegher +--SKIPIF-- + +--FILE-- +format($format) ); + +foreach($intervals as $interval) { + date_add($d, new DateInterval($interval) ); + var_dump( $d->format($format) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing date_add() : basic functionality *** +string(19) "2008-01-01 12:25:00" +string(19) "2011-07-06 00:55:05" +string(19) "2011-07-06 00:55:05" +string(19) "2011-07-08 00:56:05" +string(19) "2012-09-09 00:41:35" +===DONE=== diff --git a/ext/date/tests/date_add_basic2.phpt b/ext/date/tests/date_add_basic2.phpt new file mode 100644 index 0000000..5beef23 --- /dev/null +++ b/ext/date/tests/date_add_basic2.phpt @@ -0,0 +1,14 @@ +--TEST-- +date_add() return false with wrong params +--CREDITS-- +"Anna Filina" +#PHPTestFest2009 2009-05-02 +--INI-- +date.timezone=UTC +display_errors=false +--FILE-- + +--EXPECT-- +bool(false) \ No newline at end of file diff --git a/ext/date/tests/date_basic1.phpt b/ext/date/tests/date_basic1.phpt new file mode 100644 index 0000000..f4d922b --- /dev/null +++ b/ext/date/tests/date_basic1.phpt @@ -0,0 +1,41 @@ +--TEST-- +Test date() function : basic functionality +--FILE-- + +===DONE=== +--EXPECT-- +*** Testing date() : basic functionality *** +string(27) "February 27, 2009, 10:44 am" +string(8) "02.27.09" +string(11) "27, 2, 2009" +string(8) "20090227" +string(39) "10-44-30, 27-02-09, 4428 4430 5 Friam09" +string(19) "it is the 27th day." +string(28) "Fri Feb 27 10:44:30 GMT 2009" +string(19) "10:02:30 m is month" +string(8) "10:44:30" +===DONE=== + diff --git a/ext/date/tests/date_constants.phpt b/ext/date/tests/date_constants.phpt new file mode 100644 index 0000000..132e241 --- /dev/null +++ b/ext/date/tests/date_constants.phpt @@ -0,0 +1,75 @@ +--TEST-- +Date constants +--FILE-- + +--EXPECT-- +string(25) "2006-07-01T14:27:30+02:00" +string(25) "2006-05-30T14:32:13+02:00" +string(33) "Saturday, 01-Jul-06 14:27:30 CEST" +string(32) "Tuesday, 30-May-06 14:32:13 CEST" +string(24) "2006-07-01T14:27:30+0200" +string(24) "2006-05-30T14:32:13+0200" +string(29) "Sat, 01 Jul 06 14:27:30 +0200" +string(29) "Tue, 30 May 06 14:32:13 +0200" +string(33) "Saturday, 01-Jul-06 14:27:30 CEST" +string(32) "Tuesday, 30-May-06 14:32:13 CEST" +string(29) "Sat, 01 Jul 06 14:27:30 +0200" +string(29) "Tue, 30 May 06 14:32:13 +0200" +string(31) "Sat, 01 Jul 2006 14:27:30 +0200" +string(31) "Tue, 30 May 2006 14:32:13 +0200" +string(31) "Sat, 01 Jul 2006 14:27:30 +0200" +string(31) "Tue, 30 May 2006 14:32:13 +0200" +string(25) "2006-07-01T14:27:30+02:00" +string(25) "2006-05-30T14:32:13+02:00" +string(31) "Sat, 01 Jul 2006 14:27:30 +0200" +string(31) "Tue, 30 May 2006 14:32:13 +0200" +string(25) "2006-07-01T14:27:30+02:00" +string(25) "2006-05-30T14:32:13+02:00" + +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) diff --git a/ext/date/tests/date_create-1.phpt b/ext/date/tests/date_create-1.phpt new file mode 100644 index 0000000..365d54d --- /dev/null +++ b/ext/date/tests/date_create-1.phpt @@ -0,0 +1,48 @@ +--TEST-- +date_create() function [1] +--SKIPIF-- + +--FILE-- +format(DateTime::ISO8601), "\n"; +} +?> +--EXPECT-- +2005-07-14T22:30:41+0200 +2005-07-14T22:30:41+0000 +2005-07-14T22:30:41+0100 +2005-07-14T22:30:41+0200 +2005-07-14T22:30:41+0200 +2005-07-14T22:30:41-0700 +2005-07-14T22:30:41+0000 +2005-07-14T22:30:41+0100 +2005-07-14T22:30:41-0700 +2005-07-14T22:30:41+0000 +2005-07-14T22:30:41+0000 +2005-07-14T22:30:41+0000 +2005-07-14T22:30:41+0200 +2005-07-14T22:30:41-0700 diff --git a/ext/date/tests/date_create-2.phpt b/ext/date/tests/date_create-2.phpt new file mode 100644 index 0000000..406a6b0 --- /dev/null +++ b/ext/date/tests/date_create-2.phpt @@ -0,0 +1,16 @@ +--TEST-- +date_create() function [2] +--SKIPIF-- + +--FILE-- +format('D, d M Y H:i:s T'), "\n"; + +$d = date_create("@1121710200 +0912"); +echo $d->format('D, d M Y H:i:s T'), "\n"; +?> +--EXPECT-- +Mon, 18 Jul 2005 22:10:00 GMT+0400 +Mon, 18 Jul 2005 18:10:00 GMT+0000 diff --git a/ext/date/tests/date_create-relative.phpt b/ext/date/tests/date_create-relative.phpt new file mode 100644 index 0000000..8a90931 --- /dev/null +++ b/ext/date/tests/date_create-relative.phpt @@ -0,0 +1,93 @@ +--TEST-- +date_create() with large relative offsets +--FILE-- + +--EXPECT-- ++1460000 days: 6005-07-03T12:00:00+0000 +-1460000 days: -1990-10-25T12:00:00+0000 ++1460969 days: 6008-02-27T12:00:00+0000 +-1460969 days: -1992-02-29T12:00:00+0000 ++1460970 days: 6008-02-28T12:00:00+0000 +-1460970 days: -1992-02-28T12:00:00+0000 ++1460971 days: 6008-02-29T12:00:00+0000 +-1460971 days: -1992-02-27T12:00:00+0000 ++1462970 days: 6013-08-20T12:00:00+0000 +-1462970 days: -1998-09-07T12:00:00+0000 ++398 years: 2406-02-28T12:00:00+0000 +-398 years: 1610-02-28T12:00:00+0000 ++399 years: 2407-02-28T12:00:00+0000 +-399 years: 1609-02-28T12:00:00+0000 ++400 years: 2408-02-28T12:00:00+0000 +-400 years: 1608-02-28T12:00:00+0000 ++401 years: 2409-02-28T12:00:00+0000 +-401 years: 1607-02-28T12:00:00+0000 ++39755 years: 41763-02-28T12:00:00+0000 +-39755 years: -37747-02-28T12:00:00+0000 ++39999 years: 42007-02-28T12:00:00+0000 +-39999 years: -37991-02-28T12:00:00+0000 ++40000 years: 42008-02-28T12:00:00+0000 +-40000 years: -37992-02-28T12:00:00+0000 ++40001 years: 42009-02-28T12:00:00+0000 +-40001 years: -37993-02-28T12:00:00+0000 ++41010 years: 43018-02-28T12:00:00+0000 +-41010 years: -39002-02-28T12:00:00+0000 ++10000000000 seconds: 2325-01-18T05:46:40+0000 +-10000000000 seconds: 1691-04-09T18:13:20+0000 ++10000000000 minutes: 21021-05-27T22:40:00+0000 +-10000000000 minutes: -17006-12-01T01:20:00+0000 ++10000000000 hours: 1142802-09-30T04:00:00+0000 +-10000000000 hours: -1138787-07-28T20:00:00+0000 ++10000000000 days: 27381078-03-25T12:00:00+0000 +-10000000000 days: -27377062-02-02T12:00:00+0000 ++10000000000 months: 833335341-06-28T12:00:00+0000 +-10000000000 months: -833331326-10-28T12:00:00+0000 ++10000000000 years: 10000002008-02-28T12:00:00+0000 +-10000000000 years: -9999997992-02-28T12:00:00+0000 diff --git a/ext/date/tests/date_create_basic.phpt b/ext/date/tests/date_create_basic.phpt new file mode 100644 index 0000000..edec80b --- /dev/null +++ b/ext/date/tests/date_create_basic.phpt @@ -0,0 +1,58 @@ +--TEST-- +Test date_create() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_create() : basic functionality *** +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "GMT" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2005-07-14 22:30:41" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2005-07-14 22:30:41" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "GMT" +} +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/date_create_error.phpt b/ext/date/tests/date_create_error.phpt new file mode 100644 index 0000000..0a42f28 --- /dev/null +++ b/ext/date/tests/date_create_error.phpt @@ -0,0 +1,28 @@ +--TEST-- +Test date_create() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_create() : error conditions *** + +-- Testing date_create() function with more than expected no. of arguments -- + +Warning: date_create() expects at most 2 parameters, 3 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_create_from_format_basic.phpt b/ext/date/tests/date_create_from_format_basic.phpt new file mode 100644 index 0000000..592692b --- /dev/null +++ b/ext/date/tests/date_create_from_format_basic.phpt @@ -0,0 +1,14 @@ +--TEST-- +date_create_from_format() return false with wrong params +--CREDITS-- +"Anna Filina" +#PHPTestFest2009 2009-05-02 +--INI-- +date.timezone=UTC +display_errors=false +--FILE-- + +--EXPECT-- +bool(false) \ No newline at end of file diff --git a/ext/date/tests/date_create_from_format_basic2.phpt b/ext/date/tests/date_create_from_format_basic2.phpt new file mode 100644 index 0000000..2b220a7 --- /dev/null +++ b/ext/date/tests/date_create_from_format_basic2.phpt @@ -0,0 +1,13 @@ +--TEST-- +date_create_from_format() return false +--CREDITS-- +"Anna Filina" +#PHPTestFest2009 2009-05-02 +--INI-- +date.timezone=UTC +--FILE-- + +--EXPECT-- +bool(false) \ No newline at end of file diff --git a/ext/date/tests/date_create_variation1.phpt b/ext/date/tests/date_create_variation1.phpt new file mode 100644 index 0000000..f5fb2fd --- /dev/null +++ b/ext/date/tests/date_create_variation1.phpt @@ -0,0 +1,389 @@ +--TEST-- +Test date_create() function : usage variation - Passing unexpected values to first argument $time. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$timezone = new DateTimeZone("Europe/London"); + +foreach($inputs as $variation =>$time) { + echo "\n-- $variation --\n"; + var_dump( date_create($time) ); + var_dump( date_create($time, $timezone) ); +}; + +// closing the resource +fclose( $file_handle); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_create() : usage variation - unexpected values to first argument $time*** + +-- int 0 -- +bool(false) +bool(false) + +-- int 1 -- +bool(false) +bool(false) + +-- int 12345 -- +bool(false) +bool(false) + +-- int -12345 -- +bool(false) +bool(false) + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +bool(false) +bool(false) + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: date_create() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: date_create() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_create() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: date_create() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_create() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: date_create() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_create() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: date_create() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +bool(false) +bool(false) + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +bool(false) +bool(false) + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string SQ -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- string DQ -- +bool(false) +bool(false) + +-- string SQ -- +bool(false) +bool(false) + +-- mixed case string -- +bool(false) +bool(false) + +-- heredoc -- +bool(false) +bool(false) + +-- instance of classWithToString -- +bool(false) +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_create() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +Warning: date_create() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +object(DateTime)#%d (3) { + ["date"]=> + string(19) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: date_create() expects parameter 1 to be string, resource given in %s on line %d +bool(false) + +Warning: date_create() expects parameter 1 to be string, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_create_variation2.phpt b/ext/date/tests/date_create_variation2.phpt new file mode 100644 index 0000000..c43ccb0 --- /dev/null +++ b/ext/date/tests/date_create_variation2.phpt @@ -0,0 +1,272 @@ +--TEST-- +Test date_create() function : usage variation - Passing unexpected values to second argument $timezone. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$time = "2005-07-14 22:30:41"; + +foreach($inputs as $variation =>$timezone) { + echo "\n-- $variation --\n"; + var_dump( date_create($time, $timezone) ); +}; + +// closing the resource +fclose( $file_handle); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_create() : usage variation - unexpected values to second argument $timezone*** + +-- int 0 -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2005-07-14 22:30:41" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2005-07-14 22:30:41" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2005-07-14 22:30:41" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2005-07-14 22:30:41" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: date_create() expects parameter 2 to be DateTimeZone, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_date_set_basic1.phpt b/ext/date/tests/date_date_set_basic1.phpt new file mode 100644 index 0000000..6480212 --- /dev/null +++ b/ext/date/tests/date_date_set_basic1.phpt @@ -0,0 +1,30 @@ +--TEST-- +Test date_date_set() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_date_set() : basic functionality *** +Fri, 30 Jan 2009 19:34:10 +0000 +Fri, 01 Feb 2008 19:34:10 +0000 +===DONE=== diff --git a/ext/date/tests/date_date_set_error.phpt b/ext/date/tests/date_date_set_error.phpt new file mode 100644 index 0000000..a44d36e --- /dev/null +++ b/ext/date/tests/date_date_set_error.phpt @@ -0,0 +1,56 @@ +--TEST-- +Test date_date_set() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_date_set() : error conditions *** + +-- Testing date_date_set() function with zero arguments -- + +Warning: date_date_set() expects exactly 4 parameters, 0 given in %s on line %d +bool(false) + +-- Testing date_date_set() function with less than expected no. of arguments -- + +Warning: date_date_set() expects exactly 4 parameters, 1 given in %s on line %d +bool(false) + +Warning: date_date_set() expects exactly 4 parameters, 2 given in %s on line %d +bool(false) + +Warning: date_date_set() expects exactly 4 parameters, 3 given in %s on line %d +bool(false) + +-- Testing date_date_set() function with more than expected no. of arguments -- + +Warning: date_date_set() expects exactly 4 parameters, 5 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_date_set_variation1.phpt b/ext/date/tests/date_date_set_variation1.phpt new file mode 100644 index 0000000..29365b9 --- /dev/null +++ b/ext/date/tests/date_date_set_variation1.phpt @@ -0,0 +1,254 @@ +--TEST-- +Test date_date_set() function : usage variation - Passing unexpected values to first argument $object. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$day = 2; +$month = 7; +$year = 1963; + +foreach($inputs as $variation =>$object) { + echo "\n-- $variation --\n"; + var_dump( date_date_set($object, $year, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_date_set() : usage variation - unexpected values to first argument $object*** + +-- int 0 -- + +Warning: date_date_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: date_date_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: date_date_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: date_date_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: date_date_set() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: date_date_set() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: date_date_set() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: date_date_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_date_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_date_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_date_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: date_date_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: date_date_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: date_date_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: date_date_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: date_date_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: date_date_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: date_date_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_date_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_date_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_date_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_date_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_date_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_date_set() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_date_set() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: date_date_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- unset var -- + +Warning: date_date_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- resource -- + +Warning: date_date_set() expects parameter 1 to be DateTime, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_date_set_variation2.phpt b/ext/date/tests/date_date_set_variation2.phpt new file mode 100644 index 0000000..384885c --- /dev/null +++ b/ext/date/tests/date_date_set_variation2.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test date_date_set() function : usage variation - Passing unexpected values to second argument $year. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = date_create("2009-02-27 08:34:10"); +$day = 2; +$month = 7; + +foreach($inputs as $variation =>$year) { + echo "\n-- $variation --\n"; + var_dump( date_date_set($object, $year, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_date_set() : usage variation - unexpected values to second argument $year*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(%d) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0001-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(20) "12345-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(21) "-12345-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0010-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(20) "-0010-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(%d) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: date_date_set() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_date_set() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_date_set() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_date_set() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(%d) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(%d) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0001-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(%d) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0001-07-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(%d) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: date_date_set() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_date_set() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_date_set() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_date_set() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_date_set() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_date_set() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_date_set() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_date_set() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(%d) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(%d) "%s" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: date_date_set() expects parameter 2 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_date_set_variation3.phpt b/ext/date/tests/date_date_set_variation3.phpt new file mode 100644 index 0000000..8070341 --- /dev/null +++ b/ext/date/tests/date_date_set_variation3.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test date_date_set() function : usage variation - Passing unexpected values to third argument $month. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = date_create("2009-02-27 08:34:10"); +$day = 2; +$year = 1963; + +foreach($inputs as $variation =>$month) { + echo "\n-- $variation --\n"; + var_dump( date_date_set($object, $year, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_date_set() : usage variation - unexpected values to third argument $month*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-01-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2991-09-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0934-03-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-10-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-02-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: date_date_set() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_date_set() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_date_set() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_date_set() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-01-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-01-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: date_date_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_date_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_date_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_date_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_date_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_date_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_date_set() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_date_set() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-02 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: date_date_set() expects parameter 3 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_date_set_variation4.phpt b/ext/date/tests/date_date_set_variation4.phpt new file mode 100644 index 0000000..4c7df3d --- /dev/null +++ b/ext/date/tests/date_date_set_variation4.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test date_date_set() function : usage variation - Passing unexpected values to forth argument $day. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = date_create("2009-02-27 08:34:10"); +$month = 7; +$year = 1963; + +foreach($inputs as $variation =>$day) { + echo "\n-- $variation --\n"; + var_dump( date_date_set($object, $year, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_date_set() : usage variation - unexpected values to forth argument $day*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-07-01 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1997-04-17 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1929-09-11 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-07-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-20 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: date_date_set() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_date_set() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_date_set() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_date_set() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-07-01 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-07-01 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: date_date_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_date_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_date_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_date_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_date_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_date_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_date_set() expects parameter 4 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_date_set() expects parameter 4 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-06-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: date_date_set() expects parameter 4 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_default_timezone_get-1-win32.phpt b/ext/date/tests/date_default_timezone_get-1-win32.phpt new file mode 100644 index 0000000..ed9ac1a --- /dev/null +++ b/ext/date/tests/date_default_timezone_get-1-win32.phpt @@ -0,0 +1,24 @@ +--TEST-- +date_default_timezone_get() function [1] +--SKIPIF-- + +--INI-- +date.timezone= +--FILE-- + +--EXPECTF-- +Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone '%s' for now, but please set date.timezone to select your timezone. in %s on line %d +%s + +Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone '%s' for now, but please set date.timezone to select your timezone. in %s on line %d +%s diff --git a/ext/date/tests/date_default_timezone_get-1.phpt b/ext/date/tests/date_default_timezone_get-1.phpt new file mode 100644 index 0000000..4bff31a --- /dev/null +++ b/ext/date/tests/date_default_timezone_get-1.phpt @@ -0,0 +1,20 @@ +--TEST-- +date_default_timezone_get() function [1] +--SKIPIF-- + +--INI-- +date.timezone= +--FILE-- + +--EXPECTF-- +Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in %sdate_default_timezone_get-1.php on line 3 +UTC + +Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in %sdate_default_timezone_get-1.php on line 4 +UTC diff --git a/ext/date/tests/date_default_timezone_get-2.phpt b/ext/date/tests/date_default_timezone_get-2.phpt new file mode 100644 index 0000000..f58938d --- /dev/null +++ b/ext/date/tests/date_default_timezone_get-2.phpt @@ -0,0 +1,16 @@ +--TEST-- +date_default_timezone_get() function [2] +--SKIPIF-- + +--INI-- +date.timezone= +--FILE-- + +--EXPECTF-- +Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in %sdate_default_timezone_get-2.php on line 3 +UTC diff --git a/ext/date/tests/date_default_timezone_get-3.phpt b/ext/date/tests/date_default_timezone_get-3.phpt new file mode 100644 index 0000000..ffc882e --- /dev/null +++ b/ext/date/tests/date_default_timezone_get-3.phpt @@ -0,0 +1,14 @@ +--TEST-- +date_default_timezone_get() function [3] +--INI-- +date.timezone=Europe/Rome +--FILE-- + +--EXPECT-- +Europe/Rome +America/Chicago diff --git a/ext/date/tests/date_default_timezone_get-4.phpt b/ext/date/tests/date_default_timezone_get-4.phpt new file mode 100644 index 0000000..6d1982b --- /dev/null +++ b/ext/date/tests/date_default_timezone_get-4.phpt @@ -0,0 +1,11 @@ +--TEST-- +date_default_timezone_get() function [4] +--INI-- +date.timezone=Incorrect/Zone +--FILE-- + +--EXPECTF-- +Warning: date_default_timezone_get(): Invalid date.timezone value 'Incorrect/Zone', we selected the timezone 'UTC' for now. in %sdate_default_timezone_get-4.php on line %d +UTC diff --git a/ext/date/tests/date_default_timezone_get_error.phpt b/ext/date/tests/date_default_timezone_get_error.phpt new file mode 100644 index 0000000..1d96d18 --- /dev/null +++ b/ext/date/tests/date_default_timezone_get_error.phpt @@ -0,0 +1,27 @@ +--TEST-- +Test date_default_timezone_get() function : error conditions +--FILE-- + + +===Done=== +--EXPECTF-- +*** Testing date_default_timezone_get() : error conditions *** + +-- Testing date_create() function with more than expected no. of arguments -- +string(3) "UTC" + +===Done=== \ No newline at end of file diff --git a/ext/date/tests/date_default_timezone_set-1.phpt b/ext/date/tests/date_default_timezone_set-1.phpt new file mode 100644 index 0000000..7afa2b1 --- /dev/null +++ b/ext/date/tests/date_default_timezone_set-1.phpt @@ -0,0 +1,32 @@ +--TEST-- +date_default_timezone_set() function [1] +--SKIPIF-- + +--INI-- +date.timezone= +--FILE-- + +--EXPECTF-- +Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in %sdate_default_timezone_set-1.php on line 3 + +Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in %sdate_default_timezone_set-1.php on line 4 +America/Indiana/Knox +2005-01-12T03:00:00-0500 +2005-07-12T03:00:00-0500 +2005-01-12T08:00:00-0500 +2005-07-12T08:00:00-0500 diff --git a/ext/date/tests/date_default_timezone_set_error.phpt b/ext/date/tests/date_default_timezone_set_error.phpt new file mode 100644 index 0000000..15c6aa6 --- /dev/null +++ b/ext/date/tests/date_default_timezone_set_error.phpt @@ -0,0 +1,41 @@ +--TEST-- +Test date_default_timezone_set() function : error variations +--FILE-- + +===Done=== +--EXPECTF-- +*** Testing date_default_timezone_set() : error variations *** + +-- Testing date_default_timezone_set() function with less than expected no. of arguments -- + +Warning: date_default_timezone_set() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing date_default_timezone_set() function with more than expected no. of arguments -- + +Warning: date_default_timezone_set() expects exactly 1 parameter, 2 given in %s on line %d +bool(false) + +-- Testing date_default_timezone_set() function with invalid timezone identifier -- + +Notice: date_default_timezone_set(): Timezone ID 'foo' is invalid in %s on line %d +bool(false) +===Done=== diff --git a/ext/date/tests/date_default_timezone_set_variation1.phpt b/ext/date/tests/date_default_timezone_set_variation1.phpt new file mode 100644 index 0000000..22f4c22 --- /dev/null +++ b/ext/date/tests/date_default_timezone_set_variation1.phpt @@ -0,0 +1,200 @@ +--TEST-- +Test date_default_timezone_set() function : usage variations - Passing unexpected values for time_zone identifier +--FILE-- + +===Done=== +--EXPECTF-- +*** Testing date_default_timezone_set() : usage variations *** + +-- Iteration 1 -- + +Notice: date_default_timezone_set(): Timezone ID '0' is invalid in %s on line %d +bool(false) + +-- Iteration 2 -- + +Notice: date_default_timezone_set(): Timezone ID '1' is invalid in %s on line %d +bool(false) + +-- Iteration 3 -- + +Notice: date_default_timezone_set(): Timezone ID '12345' is invalid in %s on line %d +bool(false) + +-- Iteration 4 -- + +Notice: date_default_timezone_set(): Timezone ID '-2345' is invalid in %s on line %d +bool(false) + +-- Iteration 5 -- + +Notice: date_default_timezone_set(): Timezone ID '10.5' is invalid in %s on line %d +bool(false) + +-- Iteration 6 -- + +Notice: date_default_timezone_set(): Timezone ID '-10.5' is invalid in %s on line %d +bool(false) + +-- Iteration 7 -- + +Notice: date_default_timezone_set(): Timezone ID '123456789000' is invalid in %s on line %d +bool(false) + +-- Iteration 8 -- + +Notice: date_default_timezone_set(): Timezone ID '1.23456789E-9' is invalid in %s on line %d +bool(false) + +-- Iteration 9 -- + +Notice: date_default_timezone_set(): Timezone ID '0.5' is invalid in %s on line %d +bool(false) + +-- Iteration 10 -- + +Notice: date_default_timezone_set(): Timezone ID '' is invalid in %s on line %d +bool(false) + +-- Iteration 11 -- + +Notice: date_default_timezone_set(): Timezone ID '' is invalid in %s on line %d +bool(false) + +-- Iteration 12 -- + +Notice: date_default_timezone_set(): Timezone ID '1' is invalid in %s on line %d +bool(false) + +-- Iteration 13 -- + +Notice: date_default_timezone_set(): Timezone ID '' is invalid in %s on line %d +bool(false) + +-- Iteration 14 -- + +Notice: date_default_timezone_set(): Timezone ID '1' is invalid in %s on line %d +bool(false) + +-- Iteration 15 -- + +Notice: date_default_timezone_set(): Timezone ID '' is invalid in %s on line %d +bool(false) + +-- Iteration 16 -- + +Notice: date_default_timezone_set(): Timezone ID '' is invalid in %s on line %d +bool(false) + +-- Iteration 17 -- + +Notice: date_default_timezone_set(): Timezone ID '' is invalid in %s on line %d +bool(false) + +-- Iteration 18 -- + +Warning: date_default_timezone_set() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- Iteration 19 -- + +Notice: date_default_timezone_set(): Timezone ID 'abcxyz' is invalid in %s on line %d +bool(false) + +-- Iteration 20 -- + +Notice: date_default_timezone_set(): Timezone ID 'abcxyz' is invalid in %s on line %d +bool(false) + +-- Iteration 21 -- + +Notice: date_default_timezone_set(): Timezone ID 'abc +xyz' is invalid in %s on line %d +bool(false) + +-- Iteration 22 -- + +Notice: date_default_timezone_set(): Timezone ID '' is invalid in %s on line %d +bool(false) + +-- Iteration 23 -- + +Notice: date_default_timezone_set(): Timezone ID '' is invalid in %s on line %d +bool(false) + +-- Iteration 24 -- + +Warning: date_default_timezone_set() expects parameter 1 to be string, resource given in %s on line %d +bool(false) +===Done=== diff --git a/ext/date/tests/date_diff.phpt b/ext/date/tests/date_diff.phpt new file mode 100644 index 0000000..e01a94e --- /dev/null +++ b/ext/date/tests/date_diff.phpt @@ -0,0 +1,63 @@ +--TEST-- +Extensive test for date_diff(). +--SKIPIF-- + +--INI-- +date.timezone=UTC +--FILE-- +add( new DateInterval( "P{$i}D" ) ); +} + +for ( $i = 0; $i < COUNT; $i++) +{ +// echo $dates[$i]->format( "Y-m-d\n" ); + for ( $j = 0; $j < COUNT * 12; $j++) + { + $diff = date_diff( $dates[$i], $dates[$j] ); + /* + printf( "\t%s %s %3d %s\n", + $dates[$i]->format( 'Y-m-d' ), + $dates[$j]->format( 'Y-m-d' ), + $diff->format( '%a' ), + $diff->format( '%y-%m-%d' ) + ); + */ + + $current = clone $dates[$i]; + $int = new DateInterval( $diff->format( 'P%yY%mM%dD' ) ); + if ( $current > $dates[$j] ) + { + $current->sub( $int ); + } + else + { + $current->add( $int ); + } + if ( $current != $dates[$j] ) + { + echo "FAIL: ", + $dates[$i]->format( 'Y-m-d' ), " + ", + $int->format( '%y-%m-%d' ), " = ", + $current->format( 'Y-m-d' ), " (", + $dates[$j]->format( 'Y-m-d' ), ")\n"; + } + else + { + $ok++; + } + } +} + +echo $ok, "\n"; +?> +--EXPECT-- +172800 diff --git a/ext/date/tests/date_diff1.phpt b/ext/date/tests/date_diff1.phpt new file mode 100644 index 0000000..cf32fcb --- /dev/null +++ b/ext/date/tests/date_diff1.phpt @@ -0,0 +1,48 @@ +--TEST-- +Test for date_diff with timezone abbreviations. +--INI-- +date.timezone=Europe/London +--FILE-- +diff($end); +var_dump($start); +var_dump($end); +var_dump($int); +?> +--EXPECT-- +object(DateTime)#1 (3) { + ["date"]=> + string(19) "2010-10-04 02:18:48" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "EDT" +} +object(DateTime)#2 (3) { + ["date"]=> + string(19) "2010-11-06 18:38:28" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(3) "EDT" +} +object(DateInterval)#3 (8) { + ["y"]=> + int(0) + ["m"]=> + int(1) + ["d"]=> + int(2) + ["h"]=> + int(16) + ["i"]=> + int(19) + ["s"]=> + int(40) + ["invert"]=> + int(0) + ["days"]=> + int(33) +} diff --git a/ext/date/tests/date_error.phpt b/ext/date/tests/date_error.phpt new file mode 100644 index 0000000..ee9b8f9 --- /dev/null +++ b/ext/date/tests/date_error.phpt @@ -0,0 +1,39 @@ +--TEST-- +Test date() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date() : error conditions *** + +-- Testing date function with no arguments -- + +Warning: date() expects at least 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing date function with more than expected no. of arguments -- + +Warning: checkdate() expects parameter 1 to be long, string given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_format_basic1.phpt b/ext/date/tests/date_format_basic1.phpt new file mode 100644 index 0000000..dc55efb --- /dev/null +++ b/ext/date/tests/date_format_basic1.phpt @@ -0,0 +1,40 @@ +--TEST-- +Test date_format() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_format() : basic functionality *** +string(23) "July 14, 2005, 10:30 pm" +string(8) "07.14.05" +string(11) "14, 7, 2005" +string(8) "20050714" +string(39) "10-30-41, 14-07-05, 3031 3041 4 Thupm05" +string(19) "it is the 14th day." +string(28) "Thu Jul 14 22:30:41 BST 2005" +string(19) "22:07:41 m is month" +string(8) "22:30:41" +===DONE=== diff --git a/ext/date/tests/date_format_error.phpt b/ext/date/tests/date_format_error.phpt new file mode 100644 index 0000000..967695a --- /dev/null +++ b/ext/date/tests/date_format_error.phpt @@ -0,0 +1,67 @@ +--TEST-- +Test date_format() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_format() : error conditions *** + +-- Testing date_create() function with zero arguments -- + +Warning: date_format() expects exactly 2 parameters, 0 given in %s on line %d +bool(false) + +-- Testing date_create() function with less than expected no. of arguments -- + +Warning: date_format() expects exactly 2 parameters, 1 given in %s on line %d +bool(false) + +-- Testing date_create() function with more than expected no. of arguments -- + +Warning: date_format() expects exactly 2 parameters, 3 given in %s on line %d +bool(false) + +-- Testing date_create() function with an invalid values for $object argument -- + +Warning: date_format() expects parameter 1 to be DateTime, object given in %sp on line %d +bool(false) + +Warning: date_format() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +Warning: date_format() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_format_variation1.phpt b/ext/date/tests/date_format_variation1.phpt new file mode 100644 index 0000000..025b7d3 --- /dev/null +++ b/ext/date/tests/date_format_variation1.phpt @@ -0,0 +1,252 @@ +--TEST-- +Test date_format() function : usage variation - Passing unexpected values to first argument $object. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$format = 'H:m:s \m \i\s\ \m\o\n\t\h'; + +foreach($inputs as $variation =>$object) { + echo "\n-- $variation --\n"; + var_dump( date_format($object, $format) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_format() : usage variation - unexpected values to first argument $object*** + +-- int 0 -- + +Warning: date_format() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: date_format() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: date_format() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: date_format() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: date_format() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: date_format() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: date_format() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: date_format() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_format() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_format() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_format() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: date_format() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: date_format() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: date_format() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: date_format() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: date_format() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: date_format() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: date_format() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_format() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_format() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_format() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_format() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_format() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_format() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_format() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: date_format() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- unset var -- + +Warning: date_format() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- resource -- + +Warning: date_format() expects parameter 1 to be DateTime, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_format_variation2.phpt b/ext/date/tests/date_format_variation2.phpt new file mode 100644 index 0000000..1a90951 --- /dev/null +++ b/ext/date/tests/date_format_variation2.phpt @@ -0,0 +1,208 @@ +--TEST-- +Test date_format() function : usage variation - Passing unexpected values to second argument $format. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = date_create("2005-07-14 22:30:41"); + +foreach($inputs as $variation =>$format) { + echo "\n-- $variation --\n"; + var_dump( date_format($object, $format) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_format() : usage variation - unexpected values to second argument $format*** + +-- int 0 -- +string(1) "0" + +-- int 1 -- +string(1) "1" + +-- int 12345 -- +string(5) "12345" + +-- int -12345 -- +string(6) "-12345" + +-- float 10.5 -- +string(4) "10.5" + +-- float -10.5 -- +string(5) "-10.5" + +-- float .5 -- +string(3) "0.5" + +-- empty array -- + +Warning: date_format() expects parameter 2 to be string, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_format() expects parameter 2 to be string, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_format() expects parameter 2 to be string, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_format() expects parameter 2 to be string, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +string(0) "" + +-- lowercase null -- +string(0) "" + +-- lowercase true -- +string(1) "1" + +-- lowercase false -- +string(0) "" + +-- uppercase TRUE -- +string(1) "1" + +-- uppercase FALSE -- +string(0) "" + +-- empty string DQ -- +string(0) "" + +-- empty string SQ -- +string(0) "" + +-- string DQ -- +string(40) "4131Thu, 14 Jul 2005 22:30:41 +010030710" + +-- string SQ -- +string(40) "4131Thu, 14 Jul 2005 22:30:41 +010030710" + +-- mixed case string -- +string(40) "41BSTThu, 14 Jul 2005 22:30:41 +01001722" + +-- heredoc -- +string(82) "10Europe/LondonThursdayThursday2005 42005Thu, 14 Jul 2005 22:30:41 +0100Thursday14" + +-- instance of classWithToString -- +string(66) "CThursdaypm4141 PM 2005b14Europe/London2005-07-14T22:30:41+01:0031" + +-- instance of classWithoutToString -- + +Warning: date_format() expects parameter 2 to be string, object given in %s on line %d +bool(false) + +-- undefined var -- +string(0) "" + +-- unset var -- +string(0) "" + +-- resource -- + +Warning: date_format() expects parameter 2 to be string, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_get_last_errors_basic.phpt b/ext/date/tests/date_get_last_errors_basic.phpt new file mode 100644 index 0000000..5e83a52 --- /dev/null +++ b/ext/date/tests/date_get_last_errors_basic.phpt @@ -0,0 +1,13 @@ +--TEST-- +date_get_last_errors() return false +--CREDITS-- +"Anna Filina" +#PHPTestFest2009 2009-05-02 +--INI-- +date.timezone=UTC +--FILE-- + +--EXPECT-- +bool(false) \ No newline at end of file diff --git a/ext/date/tests/date_isodate_set_basic1.phpt b/ext/date/tests/date_isodate_set_basic1.phpt new file mode 100644 index 0000000..dc8daba --- /dev/null +++ b/ext/date/tests/date_isodate_set_basic1.phpt @@ -0,0 +1,38 @@ +--TEST-- +Test date_isodate_set() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_isodate_set() : basic functionality *** +Week 40 of 2009 is in "September" +Week 30 day 3 of 2009 is "Wed Jul 22" +..same day last year was "Wed Jul 23" +===DONE=== diff --git a/ext/date/tests/date_isodate_set_error.phpt b/ext/date/tests/date_isodate_set_error.phpt new file mode 100644 index 0000000..9accd92 --- /dev/null +++ b/ext/date/tests/date_isodate_set_error.phpt @@ -0,0 +1,68 @@ +--TEST-- +Test date_isodate_set() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_isodate_set() : error conditions *** + +-- Testing date_isodate_set() function with zero arguments -- + +Warning: date_isodate_set() expects at least 3 parameters, 0 given in %s on line %d +bool(false) + +-- Testing date_isodate_set() function with less than expected no. of arguments -- + +Warning: date_isodate_set() expects at least 3 parameters, 1 given in %s on line %d +bool(false) + +-- Testing date_isodate_set() function with more than expected no. of arguments -- + +Warning: date_isodate_set() expects at most 4 parameters, 5 given in %s on line %d +bool(false) + +-- Testing date_isodate_set() function with an invalid values for $object argument -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +Warning: date_isodate_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +Warning: date_isodate_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_isodate_set_variation1.phpt b/ext/date/tests/date_isodate_set_variation1.phpt new file mode 100644 index 0000000..a234d47 --- /dev/null +++ b/ext/date/tests/date_isodate_set_variation1.phpt @@ -0,0 +1,254 @@ +--TEST-- +Test date_isodate_set() function : usage variation - Passing unexpected values to first argument $object. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$day = 2; +$month = 7; +$year = 1963; + +foreach($inputs as $variation =>$object) { + echo "\n-- $variation --\n"; + var_dump( date_isodate_set($object, $year, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_isodate_set() : usage variation - unexpected values to first argument $object*** + +-- int 0 -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- unset var -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- resource -- + +Warning: date_isodate_set() expects parameter 1 to be DateTime, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_isodate_set_variation2.phpt b/ext/date/tests/date_isodate_set_variation2.phpt new file mode 100644 index 0000000..fa42a95 --- /dev/null +++ b/ext/date/tests/date_isodate_set_variation2.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test date_isodate_set() function : usage variation - Passing unexpected values to second argument $year. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = date_create("2009-02-27 08:34:10"); +$day = 2; +$month = 7; + +foreach($inputs as $variation =>$year) { + echo "\n-- $variation --\n"; + var_dump( date_isodate_set($object, $year, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_isodate_set() : usage variation - unexpected values to second argument $year*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0001-02-13 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(20) "12345-02-13 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(21) "-12345-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0010-02-16 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(20) "-0010-02-19 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: date_isodate_set() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_isodate_set() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_isodate_set() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_isodate_set() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0001-02-13 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0001-02-13 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: date_isodate_set() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_isodate_set() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_isodate_set() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_isodate_set() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_isodate_set() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_isodate_set() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_isodate_set() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_isodate_set() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "0000-02-15 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: date_isodate_set() expects parameter 2 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_isodate_set_variation3.phpt b/ext/date/tests/date_isodate_set_variation3.phpt new file mode 100644 index 0000000..eeb8471 --- /dev/null +++ b/ext/date/tests/date_isodate_set_variation3.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test date_isodate_set() function : usage variation - Passing unexpected values to third argument $week. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = date_create("2009-02-27 08:34:10"); +$day = 2; +$year = 1963; + +foreach($inputs as $variation =>$month) { + echo "\n-- $variation --\n"; + var_dump( date_isodate_set($object, $year, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_isodate_set() : usage variation - unexpected values to third argument $week*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-01-01 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2199-07-30 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1726-05-21 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-03-05 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-10-16 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: date_isodate_set() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_isodate_set() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_isodate_set() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_isodate_set() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-01-01 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-01-01 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: date_isodate_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_isodate_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_isodate_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_isodate_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_isodate_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_isodate_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_isodate_set() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_isodate_set() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1962-12-25 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: date_isodate_set() expects parameter 3 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_isodate_set_variation4.phpt b/ext/date/tests/date_isodate_set_variation4.phpt new file mode 100644 index 0000000..5da3c03 --- /dev/null +++ b/ext/date/tests/date_isodate_set_variation4.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test date_isodate_set() function : usage variation - Passing unexpected values to forth argument $day. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = date_create("2009-02-27 08:34:10"); +$year = 1963; +$month = 7; + +foreach($inputs as $variation =>$day) { + echo "\n-- $variation --\n"; + var_dump( date_isodate_set($object, $year, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_isodate_set() : usage variation - unexpected values to forth argument $day*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-11 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1996-11-28 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1929-04-24 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-20 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-01-31 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: date_isodate_set() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_isodate_set() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_isodate_set() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_isodate_set() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-11 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-11 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: date_isodate_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_isodate_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_isodate_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_isodate_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_isodate_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_isodate_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_isodate_set() expects parameter 4 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_isodate_set() expects parameter 4 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "1963-02-10 08:34:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: date_isodate_set() expects parameter 4 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_modify-1.phpt b/ext/date/tests/date_modify-1.phpt new file mode 100644 index 0000000..7707b7f --- /dev/null +++ b/ext/date/tests/date_modify-1.phpt @@ -0,0 +1,30 @@ +--TEST-- +date_modify() function [1] +--SKIPIF-- + +--FILE-- +modify("+1 second"); +echo date_format($ts, 'D, d M Y H:i:s T'), "\n"; + +date_default_timezone_set("Europe/Amsterdam"); +$ts = date_create("Sun Mar 27 01:59:59 2005"); +echo date_format($ts, 'D, d M Y H:i:s T'), "\n"; +$ts->modify("+1 second"); +echo date_format($ts, 'D, d M Y H:i:s T'), "\n"; + +$ts = date_create("Sun Oct 30 01:59:59 2005"); +echo date_format($ts, 'D, d M Y H:i:s T'), "\n"; +$ts->modify("+ 1 hour 1 second"); +echo date_format($ts, 'D, d M Y H:i:s T'), "\n"; +?> +--EXPECT-- +Thu, 19 Aug 1993 23:59:59 KWAT +Sat, 21 Aug 1993 00:00:00 MHT +Sun, 27 Mar 2005 01:59:59 CET +Sun, 27 Mar 2005 03:00:00 CEST +Sun, 30 Oct 2005 01:59:59 CEST +Sun, 30 Oct 2005 03:00:00 CET diff --git a/ext/date/tests/date_modify-2.phpt b/ext/date/tests/date_modify-2.phpt new file mode 100644 index 0000000..cc197fc --- /dev/null +++ b/ext/date/tests/date_modify-2.phpt @@ -0,0 +1,15 @@ +--TEST-- +date_modify() function [2] +--SKIPIF-- + +--FILE-- + +--EXPECT-- +Mon, 18 Jul 2005 22:10:00 GMT+0400 +Mon, 18 Jul 2005 23:10:00 GMT+0400 diff --git a/ext/date/tests/date_modify_basic1.phpt b/ext/date/tests/date_modify_basic1.phpt new file mode 100644 index 0000000..038b94c --- /dev/null +++ b/ext/date/tests/date_modify_basic1.phpt @@ -0,0 +1,39 @@ +--TEST-- +Test date_modify() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_modify() : basic functionality *** +After modification 1: Sun, 01 Feb 2009 +After modification 2: Tue, 10 Feb 2009 18:28:43 +After modification 3: Thu, 12 Feb 2009 +After modification 4: Sun, 08 Feb 2009 +===DONE=== diff --git a/ext/date/tests/date_modify_error.phpt b/ext/date/tests/date_modify_error.phpt new file mode 100644 index 0000000..ac727f1 --- /dev/null +++ b/ext/date/tests/date_modify_error.phpt @@ -0,0 +1,68 @@ +--TEST-- +Test date_modify() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_modify() : error conditions *** + +-- Testing date_modify() function with zero arguments -- + +Warning: date_modify() expects exactly 2 parameters, 0 given in %s on line %d +bool(false) + +-- Testing date_modify() function with less than expected no. of arguments -- + +Warning: date_modify() expects exactly 2 parameters, 1 given in %s on line %d +bool(false) + +-- Testing date_modify() function with more than expected no. of arguments -- + +Warning: date_modify() expects exactly 2 parameters, 3 given in %s on line %d +bool(false) + +-- Testing date_modify() function with an invalid values for $object argument -- + +Warning: date_modify() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +Warning: date_modify() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +Warning: date_modify() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_modify_variation1.phpt b/ext/date/tests/date_modify_variation1.phpt new file mode 100644 index 0000000..00c9939 --- /dev/null +++ b/ext/date/tests/date_modify_variation1.phpt @@ -0,0 +1,252 @@ +--TEST-- +Test date_modify() function : usage variation - Passing unexpected values to first argument $object. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$format = "D, d M Y"; + +foreach($inputs as $variation =>$object) { + echo "\n-- $variation --\n"; + var_dump( date_modify($object, $format) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_modify() : usage variation - unexpected values to first argument $object*** + +-- int 0 -- + +Warning: date_modify() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: date_modify() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: date_modify() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: date_modify() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: date_modify() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: date_modify() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: date_modify() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: date_modify() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_modify() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_modify() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_modify() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: date_modify() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: date_modify() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: date_modify() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: date_modify() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: date_modify() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: date_modify() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: date_modify() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_modify() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_modify() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_modify() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_modify() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_modify() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_modify() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_modify() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: date_modify() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- unset var -- + +Warning: date_modify() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- resource -- + +Warning: date_modify() expects parameter 1 to be DateTime, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_modify_variation2.phpt b/ext/date/tests/date_modify_variation2.phpt new file mode 100644 index 0000000..fe6afb1 --- /dev/null +++ b/ext/date/tests/date_modify_variation2.phpt @@ -0,0 +1,262 @@ +--TEST-- +Test date_modify() function : usage variation - Passing unexpected values to second argument $format. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = date_create("2009-01-31 14:28:41"); + +foreach($inputs as $variation =>$format) { + echo "\n-- $variation --\n"; + var_dump( date_modify($object, $format) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_modify() : usage variation - unexpected values to second argument $format*** + +-- int 0 -- + +Warning: date_modify(): Failed to parse time string (0) at position 0 (0): Unexpected character in %sdate_modify_variation2.php on line 99 +bool(false) + +-- int 1 -- + +Warning: date_modify(): Failed to parse time string (1) at position 0 (1): Unexpected character in %sdate_modify_variation2.php on line 99 +bool(false) + +-- int 12345 -- + +Warning: date_modify(): Failed to parse time string (12345) at position 4 (5): Unexpected character in %sdate_modify_variation2.php on line 99 +bool(false) + +-- int -12345 -- + +Warning: date_modify(): Failed to parse time string (-12345) at position 5 (5): Unexpected character in %sdate_modify_variation2.php on line 99 +bool(false) + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:05:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- + +Warning: date_modify(): Failed to parse time string (-10.5) at position 4 (5): Unexpected character in %sdate_modify_variation2.php on line 99 +bool(false) + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 00:05:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: date_modify() expects parameter 2 to be string, array given in %sdate_modify_variation2.php on line 99 +bool(false) + +-- int indexed array -- + +Warning: date_modify() expects parameter 2 to be string, array given in %sdate_modify_variation2.php on line 99 +bool(false) + +-- associative array -- + +Warning: date_modify() expects parameter 2 to be string, array given in %sdate_modify_variation2.php on line 99 +bool(false) + +-- nested arrays -- + +Warning: date_modify() expects parameter 2 to be string, array given in %sdate_modify_variation2.php on line 99 +bool(false) + +-- uppercase NULL -- + +Warning: date_modify(): Failed to parse time string () at position 0 ( in %sdate_modify_variation2.php on line 99 +bool(false) + +-- lowercase null -- + +Warning: date_modify(): Failed to parse time string () at position 0 ( in %sdate_modify_variation2.php on line 99 +bool(false) + +-- lowercase true -- + +Warning: date_modify(): Failed to parse time string (1) at position 0 (1): Unexpected character in %sdate_modify_variation2.php on line 99 +bool(false) + +-- lowercase false -- + +Warning: date_modify(): Failed to parse time string () at position 0 ( in %sdate_modify_variation2.php on line 99 +bool(false) + +-- uppercase TRUE -- + +Warning: date_modify(): Failed to parse time string (1) at position 0 (1): Unexpected character in %sdate_modify_variation2.php on line 99 +bool(false) + +-- uppercase FALSE -- + +Warning: date_modify(): Failed to parse time string () at position 0 ( in %sdate_modify_variation2.php on line 99 +bool(false) + +-- empty string DQ -- + +Warning: date_modify(): Failed to parse time string () at position 0 ( in %sdate_modify_variation2.php on line 99 +bool(false) + +-- empty string SQ -- + +Warning: date_modify(): Failed to parse time string () at position 0 ( in %sdate_modify_variation2.php on line 99 +bool(false) + +-- string DQ -- + +Warning: date_modify(): Failed to parse time string (string) at position 0 (s): The timezone could not be found in the database in %sdate_modify_variation2.php on line 99 +bool(false) + +-- string SQ -- + +Warning: date_modify(): Failed to parse time string (string) at position 0 (s): The timezone could not be found in the database in %sdate_modify_variation2.php on line 99 +bool(false) + +-- mixed case string -- + +Warning: date_modify(): Failed to parse time string (sTrInG) at position 0 (s): The timezone could not be found in the database in %sdate_modify_variation2.php on line 99 +bool(false) + +-- heredoc -- + +Warning: date_modify(): Failed to parse time string (hello world) at position 0 (h): The timezone could not be found in the database in %sdate_modify_variation2.php on line 99 +bool(false) + +-- instance of classWithToString -- + +Warning: date_modify(): Failed to parse time string (Class A object) at position 0 (C): The timezone could not be found in the database in %sdate_modify_variation2.php on line 99 +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_modify() expects parameter 2 to be string, object given in %sdate_modify_variation2.php on line 99 +bool(false) + +-- undefined var -- + +Warning: date_modify(): Failed to parse time string () at position 0 ( in %sdate_modify_variation2.php on line 99 +bool(false) + +-- unset var -- + +Warning: date_modify(): Failed to parse time string () at position 0 ( in %sdate_modify_variation2.php on line 99 +bool(false) + +-- resource -- + +Warning: date_modify() expects parameter 2 to be string, resource given in %sdate_modify_variation2.php on line 99 +bool(false) +===DONE=== diff --git a/ext/date/tests/date_offset_get_basic1.phpt b/ext/date/tests/date_offset_get_basic1.phpt new file mode 100644 index 0000000..42f3893 --- /dev/null +++ b/ext/date/tests/date_offset_get_basic1.phpt @@ -0,0 +1,28 @@ +--TEST-- +Test date_offset_get() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_offset_get() : basic functionality *** +Winter offset: 0 hours +Summer offset: 1 hours +===DONE=== diff --git a/ext/date/tests/date_offset_get_error.phpt b/ext/date/tests/date_offset_get_error.phpt new file mode 100644 index 0000000..bd4e429 --- /dev/null +++ b/ext/date/tests/date_offset_get_error.phpt @@ -0,0 +1,57 @@ +--TEST-- +Test date_offset_get() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_offset_get() : error conditions *** + +-- Testing date_offset_get() function with zero arguments -- + +Warning: date_offset_get() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing date_offset_get() function with more than expected no. of arguments -- + +Warning: date_offset_get() expects exactly 1 parameter, 2 given in %s on line %d +bool(false) + +-- Testing date_offset_get() function with an invalid values for $object argument -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +Warning: date_offset_get() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +Warning: date_offset_get() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_offset_get_variation1.phpt b/ext/date/tests/date_offset_get_variation1.phpt new file mode 100644 index 0000000..9df6e2d --- /dev/null +++ b/ext/date/tests/date_offset_get_variation1.phpt @@ -0,0 +1,250 @@ +--TEST-- +Test date_offset_get() function : usage variation - Passing unexpected values to first argument $object. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +foreach($inputs as $variation =>$object) { + echo "\n-- $variation --\n"; + var_dump( date_offset_get($object) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_offset_get() : usage variation - unexpected values to first argument $object*** + +-- int 0 -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- unset var -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- resource -- + +Warning: date_offset_get() expects parameter 1 to be DateTime, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_parse_001.phpt b/ext/date/tests/date_parse_001.phpt new file mode 100644 index 0000000..fd1394c --- /dev/null +++ b/ext/date/tests/date_parse_001.phpt @@ -0,0 +1,304 @@ +--TEST-- +Test basic date_parse() +--FILE-- + +--EXPECTF-- +array(12) { + ["year"]=> + int(2006) + ["month"]=> + int(12) + ["day"]=> + int(12) + ["hour"]=> + int(10) + ["minute"]=> + int(0) + ["second"]=> + int(0) + ["fraction"]=> + float(0.5) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} +array(12) { + ["year"]=> + int(2006) + ["month"]=> + int(12) + ["day"]=> + int(12) + ["hour"]=> + bool(false) + ["minute"]=> + bool(false) + ["second"]=> + bool(false) + ["fraction"]=> + bool(false) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} +array(15) { + ["year"]=> + int(2006) + ["month"]=> + int(12) + ["day"]=> + int(1) + ["hour"]=> + bool(false) + ["minute"]=> + bool(false) + ["second"]=> + bool(false) + ["fraction"]=> + bool(false) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(1) + ["errors"]=> + array(1) { + [7]=> + string(20) "Unexpected character" + } + ["is_localtime"]=> + bool(true) + ["zone_type"]=> + int(1) + ["zone"]=> + int(720) + ["is_dst"]=> + bool(false) +} +array(12) { + ["year"]=> + int(2006) + ["month"]=> + int(2) + ["day"]=> + int(30) + ["hour"]=> + bool(false) + ["minute"]=> + bool(false) + ["second"]=> + bool(false) + ["fraction"]=> + bool(false) + ["warning_count"]=> + int(1) + ["warnings"]=> + array(1) { + [11]=> + string(27) "The parsed date was invalid" + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} +array(12) { + ["year"]=> + int(2006) + ["month"]=> + int(3) + ["day"]=> + int(4) + ["hour"]=> + bool(false) + ["minute"]=> + bool(false) + ["second"]=> + bool(false) + ["fraction"]=> + bool(false) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} +array(12) { + ["year"]=> + int(2006) + ["month"]=> + int(3) + ["day"]=> + int(1) + ["hour"]=> + bool(false) + ["minute"]=> + bool(false) + ["second"]=> + bool(false) + ["fraction"]=> + bool(false) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} +array(15) { + ["year"]=> + bool(false) + ["month"]=> + bool(false) + ["day"]=> + bool(false) + ["hour"]=> + bool(false) + ["minute"]=> + bool(false) + ["second"]=> + bool(false) + ["fraction"]=> + bool(false) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(2) + ["errors"]=> + array(2) { + [0]=> + string(20) "Unexpected character" + [1]=> + string(20) "Unexpected character" + } + ["is_localtime"]=> + bool(true) + ["zone_type"]=> + int(1) + ["zone"]=> + int(180) + ["is_dst"]=> + bool(false) +} +array(15) { + ["year"]=> + bool(false) + ["month"]=> + bool(false) + ["day"]=> + bool(false) + ["hour"]=> + bool(false) + ["minute"]=> + bool(false) + ["second"]=> + bool(false) + ["fraction"]=> + bool(false) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(1) + ["errors"]=> + array(1) { + [0]=> + string(20) "Unexpected character" + } + ["is_localtime"]=> + bool(true) + ["zone_type"]=> + int(1) + ["zone"]=> + int(0) + ["is_dst"]=> + bool(false) +} +array(12) { + ["year"]=> + bool(false) + ["month"]=> + bool(false) + ["day"]=> + bool(false) + ["hour"]=> + bool(false) + ["minute"]=> + bool(false) + ["second"]=> + bool(false) + ["fraction"]=> + bool(false) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(1) + ["errors"]=> + array(1) { + [0]=> + string(12) "Empty string" + } + ["is_localtime"]=> + bool(false) +} + +Warning: date_parse() expects parameter 1 to be string, array given in %sdate_parse_001.php on line %d +bool(false) +Done diff --git a/ext/date/tests/date_parse_basic1.phpt b/ext/date/tests/date_parse_basic1.phpt new file mode 100644 index 0000000..04710d1 --- /dev/null +++ b/ext/date/tests/date_parse_basic1.phpt @@ -0,0 +1,107 @@ +--TEST-- +Test date_parse() function : basic functionality +--FILE-- + +===DONE=== +--EXPECT-- +*** Testing date_parse() : basic functionality *** +array(12) { + ["year"]=> + int(2009) + ["month"]=> + int(2) + ["day"]=> + int(27) + ["hour"]=> + int(10) + ["minute"]=> + int(0) + ["second"]=> + int(0) + ["fraction"]=> + float(0.5) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} +array(12) { + ["year"]=> + bool(false) + ["month"]=> + bool(false) + ["day"]=> + bool(false) + ["hour"]=> + int(10) + ["minute"]=> + int(0) + ["second"]=> + int(0) + ["fraction"]=> + float(0.5) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} +array(12) { + ["year"]=> + int(2009) + ["month"]=> + int(2) + ["day"]=> + int(27) + ["hour"]=> + bool(false) + ["minute"]=> + bool(false) + ["second"]=> + bool(false) + ["fraction"]=> + bool(false) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} +===DONE=== diff --git a/ext/date/tests/date_parse_error.phpt b/ext/date/tests/date_parse_error.phpt new file mode 100644 index 0000000..389f519 --- /dev/null +++ b/ext/date/tests/date_parse_error.phpt @@ -0,0 +1,89 @@ +--TEST-- +Test date_parse() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_parse() : error conditions *** + +-- Testing date_parse() function with zero arguments -- + +Warning: date_parse() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing date_parse() function with more than expected no. of arguments -- + +Warning: date_parse() expects exactly 1 parameter, 2 given in %s on line %d +bool(false) + +-- Testing date_parse() function with unexpected characters in $date argument -- +array(13) { + ["year"]=> + bool(false) + ["month"]=> + bool(false) + ["day"]=> + bool(false) + ["hour"]=> + int(10) + ["minute"]=> + int(0) + ["second"]=> + int(0) + ["fraction"]=> + float(0) + ["warning_count"]=> + int(1) + ["warnings"]=> + array(1) { + [4]=> + string(29) "Double timezone specification" + } + ["error_count"]=> + int(7) + ["errors"]=> + array(7) { + [0]=> + string(20) "Unexpected character" + [1]=> + string(47) "The timezone could not be found in the database" + [3]=> + string(20) "Unexpected character" + [7]=> + string(20) "Unexpected character" + [8]=> + string(29) "Double timezone specification" + [17]=> + string(20) "Unexpected character" + [18]=> + string(25) "Double time specification" + } + ["is_localtime"]=> + bool(true) + ["zone_type"]=> + int(0) +} +===DONE=== diff --git a/ext/date/tests/date_parse_from_format_basic.phpt b/ext/date/tests/date_parse_from_format_basic.phpt new file mode 100644 index 0000000..644949a --- /dev/null +++ b/ext/date/tests/date_parse_from_format_basic.phpt @@ -0,0 +1,14 @@ +--TEST-- +date_parse_from_format() return false with wrong params +--CREDITS-- +"Anna Filina" +#PHPTestFest2009 2009-05-02 +--INI-- +date.timezone=UTC +display_errors=false +--FILE-- + +--EXPECT-- +bool(false) \ No newline at end of file diff --git a/ext/date/tests/date_parse_variation1.phpt b/ext/date/tests/date_parse_variation1.phpt new file mode 100644 index 0000000..300bd5e --- /dev/null +++ b/ext/date/tests/date_parse_variation1.phpt @@ -0,0 +1,274 @@ +--TEST-- +Test date_parse() function : usage variation - Passing unexpected values to first argument $date. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +foreach($inputs as $variation =>$date) { + echo "\n-- $variation --\n"; + $result = date_parse($date); + if (is_array($result)) { + var_dump($result["errors"]); + } else { + var_dump($result); + } +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_parse() : usage variation - unexpected values to first argument $date*** + +-- int 0 -- +array(1) { + [0]=> + string(20) "Unexpected character" +} + +-- int 1 -- +array(1) { + [0]=> + string(20) "Unexpected character" +} + +-- int 12345 -- +array(1) { + [4]=> + string(20) "Unexpected character" +} + +-- int -12345 -- +array(1) { + [5]=> + string(20) "Unexpected character" +} + +-- float 10.5 -- +array(0) { +} + +-- float -10.5 -- +array(1) { + [4]=> + string(20) "Unexpected character" +} + +-- float .5 -- +array(0) { +} + +-- empty array -- + +Warning: date_parse() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_parse() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_parse() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_parse() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +array(1) { + [0]=> + string(12) "Empty string" +} + +-- lowercase null -- +array(1) { + [0]=> + string(12) "Empty string" +} + +-- lowercase true -- +array(1) { + [0]=> + string(20) "Unexpected character" +} + +-- lowercase false -- +array(1) { + [0]=> + string(12) "Empty string" +} + +-- uppercase TRUE -- +array(1) { + [0]=> + string(20) "Unexpected character" +} + +-- uppercase FALSE -- +array(1) { + [0]=> + string(12) "Empty string" +} + +-- empty string DQ -- +array(1) { + [0]=> + string(12) "Empty string" +} + +-- empty string SQ -- +array(1) { + [0]=> + string(12) "Empty string" +} + +-- string DQ -- +array(1) { + [0]=> + string(47) "The timezone could not be found in the database" +} + +-- string SQ -- +array(1) { + [0]=> + string(47) "The timezone could not be found in the database" +} + +-- mixed case string -- +array(1) { + [0]=> + string(47) "The timezone could not be found in the database" +} + +-- heredoc -- +array(1) { + [0]=> + string(47) "The timezone could not be found in the database" +} + +-- instance of classWithToString -- +array(2) { + [0]=> + string(47) "The timezone could not be found in the database" + [8]=> + string(29) "Double timezone specification" +} + +-- instance of classWithoutToString -- + +Warning: date_parse() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +-- undefined var -- +array(1) { + [0]=> + string(12) "Empty string" +} + +-- unset var -- +array(1) { + [0]=> + string(12) "Empty string" +} + +-- resource -- + +Warning: date_parse() expects parameter 1 to be string, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_period.phpt b/ext/date/tests/date_period.phpt new file mode 100644 index 0000000..6ec4435 --- /dev/null +++ b/ext/date/tests/date_period.phpt @@ -0,0 +1,63 @@ +--TEST-- +DatePeriod +--FILE-- +modify( "3 tuesday" )->format( "l Y-m-d\n" ); +} +?> + +format( "l Y-m-d H:i:s\n" ); +} +?> +--EXPECT-- +Tuesday 2008-01-15 +Tuesday 2008-02-19 +Tuesday 2008-03-18 +Tuesday 2008-04-15 +Tuesday 2008-05-20 +Tuesday 2008-06-17 +Tuesday 2008-07-15 +Tuesday 2008-08-19 +Tuesday 2008-09-16 +Tuesday 2008-10-21 +Tuesday 2008-11-18 +Tuesday 2008-12-16 + +Thursday 2008-01-31 00:00:00 +Thursday 2008-02-28 00:00:00 +Thursday 2008-03-27 00:00:00 +Thursday 2008-04-24 00:00:00 +Thursday 2008-05-29 00:00:00 +Thursday 2008-06-26 00:00:00 +Thursday 2008-07-31 00:00:00 +Thursday 2008-08-28 00:00:00 +Thursday 2008-09-25 00:00:00 +Thursday 2008-10-30 00:00:00 +Thursday 2008-11-27 00:00:00 +Thursday 2008-12-25 00:00:00 +Thursday 2009-01-29 00:00:00 +Thursday 2009-02-26 00:00:00 +Thursday 2009-03-26 00:00:00 +Thursday 2009-04-30 00:00:00 +Thursday 2009-05-28 00:00:00 +Thursday 2009-06-25 00:00:00 +Thursday 2009-07-30 00:00:00 +Thursday 2009-08-27 00:00:00 +Thursday 2009-09-24 00:00:00 +Thursday 2009-10-29 00:00:00 +Thursday 2009-11-26 00:00:00 +Thursday 2009-12-31 00:00:00 diff --git a/ext/date/tests/date_sub_basic.phpt b/ext/date/tests/date_sub_basic.phpt new file mode 100644 index 0000000..0e12704 --- /dev/null +++ b/ext/date/tests/date_sub_basic.phpt @@ -0,0 +1,45 @@ +--TEST-- +Test date_sub() function : basic functionality +--CREDITS-- +Felix De Vliegher +--SKIPIF-- + +--FILE-- +format($format) ); + +foreach($intervals as $interval) { + date_sub($d, new DateInterval($interval) ); + var_dump( $d->format($format) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sub() : basic functionality *** +string(19) "2008-01-01 12:25:00" +string(19) "2004-06-26 23:54:55" +string(19) "2004-06-26 23:54:55" +string(19) "2004-06-24 23:53:55" +string(19) "2003-04-24 00:08:25" +===DONE=== diff --git a/ext/date/tests/date_sun_info_001.phpt b/ext/date/tests/date_sun_info_001.phpt new file mode 100644 index 0000000..e4f893b --- /dev/null +++ b/ext/date/tests/date_sun_info_001.phpt @@ -0,0 +1,31 @@ +--TEST-- +Test basic date_sun_info() +--FILE-- + +--EXPECTF-- +array(9) { + ["sunrise"]=> + int(1165897782) + ["sunset"]=> + int(1165934168) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165896176) + ["civil_twilight_end"]=> + int(1165935773) + ["nautical_twilight_begin"]=> + int(1165894353) + ["nautical_twilight_end"]=> + int(1165937597) + ["astronomical_twilight_begin"]=> + int(1165892570) + ["astronomical_twilight_end"]=> + int(1165939380) +} +Done diff --git a/ext/date/tests/date_sun_info_002.phpt b/ext/date/tests/date_sun_info_002.phpt new file mode 100644 index 0000000..6233392 --- /dev/null +++ b/ext/date/tests/date_sun_info_002.phpt @@ -0,0 +1,23 @@ +--TEST-- +Test basic date_sun_info() +--FILE-- + $elem ) +{ + echo date( 'Y-m-d H:i:s T', $elem ), " ", $key, "\n"; +} +echo "Done\n"; +?> +--EXPECTF-- +2007-04-13 06:12:19 CEST sunrise +2007-04-13 20:31:50 CEST sunset +2007-04-13 13:22:05 CEST transit +2007-04-13 05:28:03 CEST civil_twilight_begin +2007-04-13 21:16:06 CEST civil_twilight_end +2007-04-13 04:30:08 CEST nautical_twilight_begin +2007-04-13 22:14:01 CEST nautical_twilight_end +2007-04-13 03:14:36 CEST astronomical_twilight_begin +2007-04-13 23:29:33 CEST astronomical_twilight_end +Done diff --git a/ext/date/tests/date_sun_info_error.phpt b/ext/date/tests/date_sun_info_error.phpt new file mode 100644 index 0000000..8d57247 --- /dev/null +++ b/ext/date/tests/date_sun_info_error.phpt @@ -0,0 +1,46 @@ +--TEST-- +Test date_sun_info() function : error variations +--FILE-- + +===Done=== +--EXPECTF-- +*** Testing date_sun_info() : usage variations *** + +-- Testing date_sun_info() function with less than expected no. of arguments -- + +Warning: date_sun_info() expects exactly 3 parameters, 0 given in %s on line %d +bool(false) + +Warning: date_sun_info() expects exactly 3 parameters, 1 given in %s on line %d +bool(false) + +Warning: date_sun_info() expects exactly 3 parameters, 2 given in %s on line %d +bool(false) + +-- Testing date_sun_info() function with more than expected no. of arguments -- + +Warning: date_create() expects at most 2 parameters, 4 given in %s on line %d +bool(false) +===Done=== \ No newline at end of file diff --git a/ext/date/tests/date_sun_info_variation1.phpt b/ext/date/tests/date_sun_info_variation1.phpt new file mode 100644 index 0000000..382ba28 --- /dev/null +++ b/ext/date/tests/date_sun_info_variation1.phpt @@ -0,0 +1,492 @@ +--TEST-- +Test date_sun_info() function : error variations - Pass unexpected values for time argument +--FILE-- + +===Done=== +--EXPECTF-- +*** Testing date_sun_info() : usage variations *** + +-- Iteration 1 -- +array(9) { + ["sunrise"]=> + int(16748) + ["sunset"]=> + int(53182) + ["transit"]=> + int(34965) + ["civil_twilight_begin"]=> + int(15145) + ["civil_twilight_end"]=> + int(54786) + ["nautical_twilight_begin"]=> + int(13324) + ["nautical_twilight_end"]=> + int(56607) + ["astronomical_twilight_begin"]=> + int(11542) + ["astronomical_twilight_end"]=> + int(58389) +} + +-- Iteration 2 -- +array(9) { + ["sunrise"]=> + int(16748) + ["sunset"]=> + int(53182) + ["transit"]=> + int(34965) + ["civil_twilight_begin"]=> + int(15145) + ["civil_twilight_end"]=> + int(54786) + ["nautical_twilight_begin"]=> + int(13324) + ["nautical_twilight_end"]=> + int(56607) + ["astronomical_twilight_begin"]=> + int(11542) + ["astronomical_twilight_end"]=> + int(58389) +} + +-- Iteration 3 -- +array(9) { + ["sunrise"]=> + int(16748) + ["sunset"]=> + int(53182) + ["transit"]=> + int(34965) + ["civil_twilight_begin"]=> + int(15145) + ["civil_twilight_end"]=> + int(54786) + ["nautical_twilight_begin"]=> + int(13324) + ["nautical_twilight_end"]=> + int(56607) + ["astronomical_twilight_begin"]=> + int(11542) + ["astronomical_twilight_end"]=> + int(58389) +} + +-- Iteration 4 -- +array(9) { + ["sunrise"]=> + int(-69665) + ["sunset"]=> + int(-33260) + ["transit"]=> + int(-51462) + ["civil_twilight_begin"]=> + int(-71269) + ["civil_twilight_end"]=> + int(-31655) + ["nautical_twilight_begin"]=> + int(-73092) + ["nautical_twilight_end"]=> + int(-29832) + ["astronomical_twilight_begin"]=> + int(-74874) + ["astronomical_twilight_end"]=> + int(-28050) +} + +-- Iteration 5 -- +array(9) { + ["sunrise"]=> + int(16748) + ["sunset"]=> + int(53182) + ["transit"]=> + int(34965) + ["civil_twilight_begin"]=> + int(15145) + ["civil_twilight_end"]=> + int(54786) + ["nautical_twilight_begin"]=> + int(13324) + ["nautical_twilight_end"]=> + int(56607) + ["astronomical_twilight_begin"]=> + int(11542) + ["astronomical_twilight_end"]=> + int(58389) +} + +-- Iteration 6 -- +array(9) { + ["sunrise"]=> + int(-69665) + ["sunset"]=> + int(-33260) + ["transit"]=> + int(-51462) + ["civil_twilight_begin"]=> + int(-71269) + ["civil_twilight_end"]=> + int(-31655) + ["nautical_twilight_begin"]=> + int(-73092) + ["nautical_twilight_end"]=> + int(-29832) + ["astronomical_twilight_begin"]=> + int(-74874) + ["astronomical_twilight_end"]=> + int(-28050) +} + +-- Iteration 7 -- +array(9) { + ["sunrise"]=> + int(1226363) + ["sunset"]=> + int(1263468) + ["transit"]=> + int(1244916) + ["civil_twilight_begin"]=> + int(1224788) + ["civil_twilight_end"]=> + int(1265044) + ["nautical_twilight_begin"]=> + int(1222993) + ["nautical_twilight_end"]=> + int(1266839) + ["astronomical_twilight_begin"]=> + int(1221233) + ["astronomical_twilight_end"]=> + int(1268599) +} + +-- Iteration 8 -- +array(9) { + ["sunrise"]=> + int(16748) + ["sunset"]=> + int(53182) + ["transit"]=> + int(34965) + ["civil_twilight_begin"]=> + int(15145) + ["civil_twilight_end"]=> + int(54786) + ["nautical_twilight_begin"]=> + int(13324) + ["nautical_twilight_end"]=> + int(56607) + ["astronomical_twilight_begin"]=> + int(11542) + ["astronomical_twilight_end"]=> + int(58389) +} + +-- Iteration 9 -- +array(9) { + ["sunrise"]=> + int(16748) + ["sunset"]=> + int(53182) + ["transit"]=> + int(34965) + ["civil_twilight_begin"]=> + int(15145) + ["civil_twilight_end"]=> + int(54786) + ["nautical_twilight_begin"]=> + int(13324) + ["nautical_twilight_end"]=> + int(56607) + ["astronomical_twilight_begin"]=> + int(11542) + ["astronomical_twilight_end"]=> + int(58389) +} + +-- Iteration 10 -- +array(9) { + ["sunrise"]=> + int(16748) + ["sunset"]=> + int(53182) + ["transit"]=> + int(34965) + ["civil_twilight_begin"]=> + int(15145) + ["civil_twilight_end"]=> + int(54786) + ["nautical_twilight_begin"]=> + int(13324) + ["nautical_twilight_end"]=> + int(56607) + ["astronomical_twilight_begin"]=> + int(11542) + ["astronomical_twilight_end"]=> + int(58389) +} + +-- Iteration 11 -- +array(9) { + ["sunrise"]=> + int(16748) + ["sunset"]=> + int(53182) + ["transit"]=> + int(34965) + ["civil_twilight_begin"]=> + int(15145) + ["civil_twilight_end"]=> + int(54786) + ["nautical_twilight_begin"]=> + int(13324) + ["nautical_twilight_end"]=> + int(56607) + ["astronomical_twilight_begin"]=> + int(11542) + ["astronomical_twilight_end"]=> + int(58389) +} + +-- Iteration 12 -- +array(9) { + ["sunrise"]=> + int(16748) + ["sunset"]=> + int(53182) + ["transit"]=> + int(34965) + ["civil_twilight_begin"]=> + int(15145) + ["civil_twilight_end"]=> + int(54786) + ["nautical_twilight_begin"]=> + int(13324) + ["nautical_twilight_end"]=> + int(56607) + ["astronomical_twilight_begin"]=> + int(11542) + ["astronomical_twilight_end"]=> + int(58389) +} + +-- Iteration 13 -- +array(9) { + ["sunrise"]=> + int(16748) + ["sunset"]=> + int(53182) + ["transit"]=> + int(34965) + ["civil_twilight_begin"]=> + int(15145) + ["civil_twilight_end"]=> + int(54786) + ["nautical_twilight_begin"]=> + int(13324) + ["nautical_twilight_end"]=> + int(56607) + ["astronomical_twilight_begin"]=> + int(11542) + ["astronomical_twilight_end"]=> + int(58389) +} + +-- Iteration 14 -- +array(9) { + ["sunrise"]=> + int(16748) + ["sunset"]=> + int(53182) + ["transit"]=> + int(34965) + ["civil_twilight_begin"]=> + int(15145) + ["civil_twilight_end"]=> + int(54786) + ["nautical_twilight_begin"]=> + int(13324) + ["nautical_twilight_end"]=> + int(56607) + ["astronomical_twilight_begin"]=> + int(11542) + ["astronomical_twilight_end"]=> + int(58389) +} + +-- Iteration 15 -- +array(9) { + ["sunrise"]=> + int(16748) + ["sunset"]=> + int(53182) + ["transit"]=> + int(34965) + ["civil_twilight_begin"]=> + int(15145) + ["civil_twilight_end"]=> + int(54786) + ["nautical_twilight_begin"]=> + int(13324) + ["nautical_twilight_end"]=> + int(56607) + ["astronomical_twilight_begin"]=> + int(11542) + ["astronomical_twilight_end"]=> + int(58389) +} + +-- Iteration 16 -- + +Warning: date_sun_info() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- Iteration 17 -- + +Warning: date_sun_info() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- Iteration 18 -- + +Warning: date_sun_info() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- Iteration 19 -- + +Warning: date_sun_info() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- Iteration 20 -- + +Warning: date_sun_info() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- Iteration 21 -- + +Warning: date_sun_info() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- Iteration 22 -- +array(9) { + ["sunrise"]=> + int(16748) + ["sunset"]=> + int(53182) + ["transit"]=> + int(34965) + ["civil_twilight_begin"]=> + int(15145) + ["civil_twilight_end"]=> + int(54786) + ["nautical_twilight_begin"]=> + int(13324) + ["nautical_twilight_end"]=> + int(56607) + ["astronomical_twilight_begin"]=> + int(11542) + ["astronomical_twilight_end"]=> + int(58389) +} + +-- Iteration 23 -- +array(9) { + ["sunrise"]=> + int(16748) + ["sunset"]=> + int(53182) + ["transit"]=> + int(34965) + ["civil_twilight_begin"]=> + int(15145) + ["civil_twilight_end"]=> + int(54786) + ["nautical_twilight_begin"]=> + int(13324) + ["nautical_twilight_end"]=> + int(56607) + ["astronomical_twilight_begin"]=> + int(11542) + ["astronomical_twilight_end"]=> + int(58389) +} + +-- Iteration 24 -- + +Warning: date_sun_info() expects parameter 1 to be long, resource given in %s on line %d +bool(false) +===Done=== \ No newline at end of file diff --git a/ext/date/tests/date_sun_info_variation2.phpt b/ext/date/tests/date_sun_info_variation2.phpt new file mode 100644 index 0000000..fb5ed31 --- /dev/null +++ b/ext/date/tests/date_sun_info_variation2.phpt @@ -0,0 +1,492 @@ +--TEST-- +Test date_sun_info() function : error variations - Pass unexpected values for latitude argument +--FILE-- + +===Done=== +--EXPECTF-- +*** Testing date_sun_info() : usage variations *** + +-- Iteration 1 -- +array(9) { + ["sunrise"]=> + int(1165894152) + ["sunset"]=> + int(1165937798) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165892809) + ["civil_twilight_end"]=> + int(1165939141) + ["nautical_twilight_begin"]=> + int(1165891239) + ["nautical_twilight_end"]=> + int(1165940710) + ["astronomical_twilight_begin"]=> + int(1165889663) + ["astronomical_twilight_end"]=> + int(1165942287) +} + +-- Iteration 2 -- +array(9) { + ["sunrise"]=> + int(1165894254) + ["sunset"]=> + int(1165937695) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165892911) + ["civil_twilight_end"]=> + int(1165939038) + ["nautical_twilight_begin"]=> + int(1165891344) + ["nautical_twilight_end"]=> + int(1165940606) + ["astronomical_twilight_begin"]=> + int(1165889771) + ["astronomical_twilight_end"]=> + int(1165942179) +} + +-- Iteration 3 -- +array(9) { + ["sunrise"]=> + bool(true) + ["sunset"]=> + bool(true) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + bool(true) + ["civil_twilight_end"]=> + bool(true) + ["nautical_twilight_begin"]=> + int(1165883331) + ["nautical_twilight_end"]=> + int(1165948619) + ["astronomical_twilight_begin"]=> + int(1165890260) + ["astronomical_twilight_end"]=> + int(1165941690) +} + +-- Iteration 4 -- +array(9) { + ["sunrise"]=> + int(1165894085) + ["sunset"]=> + int(1165937865) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165895431) + ["civil_twilight_end"]=> + int(1165936519) + ["nautical_twilight_begin"]=> + int(1165896998) + ["nautical_twilight_end"]=> + int(1165934952) + ["astronomical_twilight_begin"]=> + int(1165898564) + ["astronomical_twilight_end"]=> + int(1165933386) +} + +-- Iteration 5 -- +array(9) { + ["sunrise"]=> + int(1165895237) + ["sunset"]=> + int(1165936713) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165893873) + ["civil_twilight_end"]=> + int(1165938077) + ["nautical_twilight_begin"]=> + int(1165892293) + ["nautical_twilight_end"]=> + int(1165939656) + ["astronomical_twilight_begin"]=> + int(1165890721) + ["astronomical_twilight_end"]=> + int(1165941229) +} + +-- Iteration 6 -- +array(9) { + ["sunrise"]=> + int(1165893058) + ["sunset"]=> + int(1165938891) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165891680) + ["civil_twilight_end"]=> + int(1165940269) + ["nautical_twilight_begin"]=> + int(1165890055) + ["nautical_twilight_end"]=> + int(1165941895) + ["astronomical_twilight_begin"]=> + int(1165888402) + ["astronomical_twilight_end"]=> + int(1165943548) +} + +-- Iteration 7 -- +array(9) { + ["sunrise"]=> + int(1165894152) + ["sunset"]=> + int(1165937798) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165892809) + ["civil_twilight_end"]=> + int(1165939141) + ["nautical_twilight_begin"]=> + int(1165891239) + ["nautical_twilight_end"]=> + int(1165940710) + ["astronomical_twilight_begin"]=> + int(1165889663) + ["astronomical_twilight_end"]=> + int(1165942287) +} + +-- Iteration 8 -- +array(9) { + ["sunrise"]=> + int(1165894152) + ["sunset"]=> + int(1165937798) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165892809) + ["civil_twilight_end"]=> + int(1165939141) + ["nautical_twilight_begin"]=> + int(1165891239) + ["nautical_twilight_end"]=> + int(1165940710) + ["astronomical_twilight_begin"]=> + int(1165889663) + ["astronomical_twilight_end"]=> + int(1165942287) +} + +-- Iteration 9 -- +array(9) { + ["sunrise"]=> + int(1165894203) + ["sunset"]=> + int(1165937747) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165892860) + ["civil_twilight_end"]=> + int(1165939090) + ["nautical_twilight_begin"]=> + int(1165891292) + ["nautical_twilight_end"]=> + int(1165940658) + ["astronomical_twilight_begin"]=> + int(1165889717) + ["astronomical_twilight_end"]=> + int(1165942233) +} + +-- Iteration 10 -- +array(9) { + ["sunrise"]=> + int(1165894152) + ["sunset"]=> + int(1165937798) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165892809) + ["civil_twilight_end"]=> + int(1165939141) + ["nautical_twilight_begin"]=> + int(1165891239) + ["nautical_twilight_end"]=> + int(1165940710) + ["astronomical_twilight_begin"]=> + int(1165889663) + ["astronomical_twilight_end"]=> + int(1165942287) +} + +-- Iteration 11 -- +array(9) { + ["sunrise"]=> + int(1165894152) + ["sunset"]=> + int(1165937798) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165892809) + ["civil_twilight_end"]=> + int(1165939141) + ["nautical_twilight_begin"]=> + int(1165891239) + ["nautical_twilight_end"]=> + int(1165940710) + ["astronomical_twilight_begin"]=> + int(1165889663) + ["astronomical_twilight_end"]=> + int(1165942287) +} + +-- Iteration 12 -- +array(9) { + ["sunrise"]=> + int(1165894254) + ["sunset"]=> + int(1165937695) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165892911) + ["civil_twilight_end"]=> + int(1165939038) + ["nautical_twilight_begin"]=> + int(1165891344) + ["nautical_twilight_end"]=> + int(1165940606) + ["astronomical_twilight_begin"]=> + int(1165889771) + ["astronomical_twilight_end"]=> + int(1165942179) +} + +-- Iteration 13 -- +array(9) { + ["sunrise"]=> + int(1165894152) + ["sunset"]=> + int(1165937798) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165892809) + ["civil_twilight_end"]=> + int(1165939141) + ["nautical_twilight_begin"]=> + int(1165891239) + ["nautical_twilight_end"]=> + int(1165940710) + ["astronomical_twilight_begin"]=> + int(1165889663) + ["astronomical_twilight_end"]=> + int(1165942287) +} + +-- Iteration 14 -- +array(9) { + ["sunrise"]=> + int(1165894254) + ["sunset"]=> + int(1165937695) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165892911) + ["civil_twilight_end"]=> + int(1165939038) + ["nautical_twilight_begin"]=> + int(1165891344) + ["nautical_twilight_end"]=> + int(1165940606) + ["astronomical_twilight_begin"]=> + int(1165889771) + ["astronomical_twilight_end"]=> + int(1165942179) +} + +-- Iteration 15 -- +array(9) { + ["sunrise"]=> + int(1165894152) + ["sunset"]=> + int(1165937798) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165892809) + ["civil_twilight_end"]=> + int(1165939141) + ["nautical_twilight_begin"]=> + int(1165891239) + ["nautical_twilight_end"]=> + int(1165940710) + ["astronomical_twilight_begin"]=> + int(1165889663) + ["astronomical_twilight_end"]=> + int(1165942287) +} + +-- Iteration 16 -- + +Warning: date_sun_info() expects parameter 2 to be double, string given in %s on line %d +bool(false) + +-- Iteration 17 -- + +Warning: date_sun_info() expects parameter 2 to be double, string given in %s on line %d +bool(false) + +-- Iteration 18 -- + +Warning: date_sun_info() expects parameter 2 to be double, array given in %s on line %d +bool(false) + +-- Iteration 19 -- + +Warning: date_sun_info() expects parameter 2 to be double, string given in %s on line %d +bool(false) + +-- Iteration 20 -- + +Warning: date_sun_info() expects parameter 2 to be double, string given in %s on line %d +bool(false) + +-- Iteration 21 -- + +Warning: date_sun_info() expects parameter 2 to be double, string given in %s on line %d +bool(false) + +-- Iteration 22 -- +array(9) { + ["sunrise"]=> + int(1165894152) + ["sunset"]=> + int(1165937798) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165892809) + ["civil_twilight_end"]=> + int(1165939141) + ["nautical_twilight_begin"]=> + int(1165891239) + ["nautical_twilight_end"]=> + int(1165940710) + ["astronomical_twilight_begin"]=> + int(1165889663) + ["astronomical_twilight_end"]=> + int(1165942287) +} + +-- Iteration 23 -- +array(9) { + ["sunrise"]=> + int(1165894152) + ["sunset"]=> + int(1165937798) + ["transit"]=> + int(1165915975) + ["civil_twilight_begin"]=> + int(1165892809) + ["civil_twilight_end"]=> + int(1165939141) + ["nautical_twilight_begin"]=> + int(1165891239) + ["nautical_twilight_end"]=> + int(1165940710) + ["astronomical_twilight_begin"]=> + int(1165889663) + ["astronomical_twilight_end"]=> + int(1165942287) +} + +-- Iteration 24 -- + +Warning: date_sun_info() expects parameter 2 to be double, resource given in %s on line %d +bool(false) +===Done=== diff --git a/ext/date/tests/date_sun_info_variation3.phpt b/ext/date/tests/date_sun_info_variation3.phpt new file mode 100644 index 0000000..673d1c6 --- /dev/null +++ b/ext/date/tests/date_sun_info_variation3.phpt @@ -0,0 +1,493 @@ +--TEST-- +Test date_sun_info() function : usage variations - Pass unexpected values for longitude argument +--FILE-- + +===Done=== +--EXPECTF-- +*** Testing date_sun_info() : usage variations *** + +-- Iteration 1 -- +array(9) { + ["sunrise"]=> + int(1165906242) + ["sunset"]=> + int(1165942625) + ["transit"]=> + int(1165924434) + ["civil_twilight_begin"]=> + int(1165904636) + ["civil_twilight_end"]=> + int(1165944231) + ["nautical_twilight_begin"]=> + int(1165902813) + ["nautical_twilight_end"]=> + int(1165946054) + ["astronomical_twilight_begin"]=> + int(1165901030) + ["astronomical_twilight_end"]=> + int(1165947838) +} + +-- Iteration 2 -- +array(9) { + ["sunrise"]=> + int(1165906002) + ["sunset"]=> + int(1165942385) + ["transit"]=> + int(1165924194) + ["civil_twilight_begin"]=> + int(1165904396) + ["civil_twilight_end"]=> + int(1165943991) + ["nautical_twilight_begin"]=> + int(1165902573) + ["nautical_twilight_end"]=> + int(1165945814) + ["astronomical_twilight_begin"]=> + int(1165900789) + ["astronomical_twilight_end"]=> + int(1165947598) +} + +-- Iteration 3 -- +array(9) { + ["sunrise"]=> + int(1165879335) + ["sunset"]=> + int(1165917916) + ["transit"]=> + int(1165898625) + ["civil_twilight_begin"]=> + int(1165877811) + ["civil_twilight_end"]=> + int(1165919440) + ["nautical_twilight_begin"]=> + int(1165876064) + ["nautical_twilight_end"]=> + int(1165921187) + ["astronomical_twilight_begin"]=> + int(1165874341) + ["astronomical_twilight_end"]=> + int(1165922910) +} + +-- Iteration 4 -- +array(9) { + ["sunrise"]=> + int(1165864483) + ["sunset"]=> + int(1165900762) + ["transit"]=> + int(1165882623) + ["civil_twilight_begin"]=> + int(1165862873) + ["civil_twilight_end"]=> + int(1165902372) + ["nautical_twilight_begin"]=> + int(1165861045) + ["nautical_twilight_end"]=> + int(1165904200) + ["astronomical_twilight_begin"]=> + int(1165859259) + ["astronomical_twilight_end"]=> + int(1165905987) +} + +-- Iteration 5 -- +array(9) { + ["sunrise"]=> + int(1165903721) + ["sunset"]=> + int(1165940105) + ["transit"]=> + int(1165921913) + ["civil_twilight_begin"]=> + int(1165902115) + ["civil_twilight_end"]=> + int(1165941711) + ["nautical_twilight_begin"]=> + int(1165900292) + ["nautical_twilight_end"]=> + int(1165943534) + ["astronomical_twilight_begin"]=> + int(1165898508) + ["astronomical_twilight_end"]=> + int(1165945317) +} + +-- Iteration 6 -- +array(9) { + ["sunrise"]=> + int(1165908763) + ["sunset"]=> + int(1165945146) + ["transit"]=> + int(1165926954) + ["civil_twilight_begin"]=> + int(1165907157) + ["civil_twilight_end"]=> + int(1165946752) + ["nautical_twilight_begin"]=> + int(1165905334) + ["nautical_twilight_end"]=> + int(1165948575) + ["astronomical_twilight_begin"]=> + int(1165903551) + ["astronomical_twilight_end"]=> + int(1165950358) +} + +-- Iteration 7 -- +array(9) { + ["sunrise"]=> + int(1165919856) + ["sunset"]=> + int(1165969985) + ["transit"]=> + int(1165944920) + ["civil_twilight_begin"]=> + int(1165918203) + ["civil_twilight_end"]=> + int(1165971638) + ["nautical_twilight_begin"]=> + int(1165916223) + ["nautical_twilight_end"]=> + int(1165973617) + ["astronomical_twilight_begin"]=> + int(1165914116) + ["astronomical_twilight_end"]=> + int(1165975725) +} + +-- Iteration 8 -- +array(9) { + ["sunrise"]=> + int(1165906242) + ["sunset"]=> + int(1165942625) + ["transit"]=> + int(1165924434) + ["civil_twilight_begin"]=> + int(1165904636) + ["civil_twilight_end"]=> + int(1165944231) + ["nautical_twilight_begin"]=> + int(1165902813) + ["nautical_twilight_end"]=> + int(1165946054) + ["astronomical_twilight_begin"]=> + int(1165901030) + ["astronomical_twilight_end"]=> + int(1165947838) +} + +-- Iteration 9 -- +array(9) { + ["sunrise"]=> + int(1165906122) + ["sunset"]=> + int(1165942505) + ["transit"]=> + int(1165924314) + ["civil_twilight_begin"]=> + int(1165904516) + ["civil_twilight_end"]=> + int(1165944111) + ["nautical_twilight_begin"]=> + int(1165902693) + ["nautical_twilight_end"]=> + int(1165945934) + ["astronomical_twilight_begin"]=> + int(1165900910) + ["astronomical_twilight_end"]=> + int(1165947718) +} + +-- Iteration 10 -- +array(9) { + ["sunrise"]=> + int(1165906242) + ["sunset"]=> + int(1165942625) + ["transit"]=> + int(1165924434) + ["civil_twilight_begin"]=> + int(1165904636) + ["civil_twilight_end"]=> + int(1165944231) + ["nautical_twilight_begin"]=> + int(1165902813) + ["nautical_twilight_end"]=> + int(1165946054) + ["astronomical_twilight_begin"]=> + int(1165901030) + ["astronomical_twilight_end"]=> + int(1165947838) +} + +-- Iteration 11 -- +array(9) { + ["sunrise"]=> + int(1165906242) + ["sunset"]=> + int(1165942625) + ["transit"]=> + int(1165924434) + ["civil_twilight_begin"]=> + int(1165904636) + ["civil_twilight_end"]=> + int(1165944231) + ["nautical_twilight_begin"]=> + int(1165902813) + ["nautical_twilight_end"]=> + int(1165946054) + ["astronomical_twilight_begin"]=> + int(1165901030) + ["astronomical_twilight_end"]=> + int(1165947838) +} + +-- Iteration 12 -- +array(9) { + ["sunrise"]=> + int(1165906002) + ["sunset"]=> + int(1165942385) + ["transit"]=> + int(1165924194) + ["civil_twilight_begin"]=> + int(1165904396) + ["civil_twilight_end"]=> + int(1165943991) + ["nautical_twilight_begin"]=> + int(1165902573) + ["nautical_twilight_end"]=> + int(1165945814) + ["astronomical_twilight_begin"]=> + int(1165900789) + ["astronomical_twilight_end"]=> + int(1165947598) +} + +-- Iteration 13 -- +array(9) { + ["sunrise"]=> + int(1165906242) + ["sunset"]=> + int(1165942625) + ["transit"]=> + int(1165924434) + ["civil_twilight_begin"]=> + int(1165904636) + ["civil_twilight_end"]=> + int(1165944231) + ["nautical_twilight_begin"]=> + int(1165902813) + ["nautical_twilight_end"]=> + int(1165946054) + ["astronomical_twilight_begin"]=> + int(1165901030) + ["astronomical_twilight_end"]=> + int(1165947838) +} + +-- Iteration 14 -- +array(9) { + ["sunrise"]=> + int(1165906002) + ["sunset"]=> + int(1165942385) + ["transit"]=> + int(1165924194) + ["civil_twilight_begin"]=> + int(1165904396) + ["civil_twilight_end"]=> + int(1165943991) + ["nautical_twilight_begin"]=> + int(1165902573) + ["nautical_twilight_end"]=> + int(1165945814) + ["astronomical_twilight_begin"]=> + int(1165900789) + ["astronomical_twilight_end"]=> + int(1165947598) +} + +-- Iteration 15 -- +array(9) { + ["sunrise"]=> + int(1165906242) + ["sunset"]=> + int(1165942625) + ["transit"]=> + int(1165924434) + ["civil_twilight_begin"]=> + int(1165904636) + ["civil_twilight_end"]=> + int(1165944231) + ["nautical_twilight_begin"]=> + int(1165902813) + ["nautical_twilight_end"]=> + int(1165946054) + ["astronomical_twilight_begin"]=> + int(1165901030) + ["astronomical_twilight_end"]=> + int(1165947838) +} + +-- Iteration 16 -- + +Warning: date_sun_info() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +-- Iteration 17 -- + +Warning: date_sun_info() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +-- Iteration 18 -- + +Warning: date_sun_info() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +-- Iteration 19 -- + +Warning: date_sun_info() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +-- Iteration 20 -- + +Warning: date_sun_info() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +-- Iteration 21 -- + +Warning: date_sun_info() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +-- Iteration 22 -- +array(9) { + ["sunrise"]=> + int(1165906242) + ["sunset"]=> + int(1165942625) + ["transit"]=> + int(1165924434) + ["civil_twilight_begin"]=> + int(1165904636) + ["civil_twilight_end"]=> + int(1165944231) + ["nautical_twilight_begin"]=> + int(1165902813) + ["nautical_twilight_end"]=> + int(1165946054) + ["astronomical_twilight_begin"]=> + int(1165901030) + ["astronomical_twilight_end"]=> + int(1165947838) +} + +-- Iteration 23 -- +array(9) { + ["sunrise"]=> + int(1165906242) + ["sunset"]=> + int(1165942625) + ["transit"]=> + int(1165924434) + ["civil_twilight_begin"]=> + int(1165904636) + ["civil_twilight_end"]=> + int(1165944231) + ["nautical_twilight_begin"]=> + int(1165902813) + ["nautical_twilight_end"]=> + int(1165946054) + ["astronomical_twilight_begin"]=> + int(1165901030) + ["astronomical_twilight_end"]=> + int(1165947838) +} + +-- Iteration 24 -- + +Warning: date_sun_info() expects parameter 3 to be double, resource given in %s on line %d +bool(false) +===Done=== diff --git a/ext/date/tests/date_sunrise_and_sunset_basic.phpt b/ext/date/tests/date_sunrise_and_sunset_basic.phpt new file mode 100644 index 0000000..a96fa83 --- /dev/null +++ b/ext/date/tests/date_sunrise_and_sunset_basic.phpt @@ -0,0 +1,29 @@ +--TEST-- +Basic test for date_sunrise and date_sunset based on example in PHP manual +--FILE-- + +===Done=== +--EXPECTF-- +Basic test for date_sunrise() and date_sunset() +%s %s %d %d, sunrise time : %d:%d +%s %s %d %d, sunset time : %d:%d +===Done=== diff --git a/ext/date/tests/date_sunrise_error.phpt b/ext/date/tests/date_sunrise_error.phpt new file mode 100644 index 0000000..f57b7ed --- /dev/null +++ b/ext/date/tests/date_sunrise_error.phpt @@ -0,0 +1,41 @@ +--TEST-- +Test date_sunrise() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_sunrise() : error conditions *** + +-- Testing date_sunrise() function with Zero arguments -- + +Warning: date_sunrise() expects at least 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing date_sunrise() function with more than expected no. of arguments -- + +Warning: date_sunrise() expects at most 6 parameters, 7 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_sunrise_variation1.phpt b/ext/date/tests/date_sunrise_variation1.phpt new file mode 100644 index 0000000..35f964f --- /dev/null +++ b/ext/date/tests/date_sunrise_variation1.phpt @@ -0,0 +1,316 @@ +--TEST-- +Test date_sunrise() function : usage variation - Passing unexpected values to first argument time. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for time + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( date_sunrise($value, SUNFUNCS_RET_STRING, $latitude, $longitude, $zenith, $gmt_offset) ); + var_dump( date_sunrise($value, SUNFUNCS_RET_DOUBLE, $latitude, $longitude, $zenith, $gmt_offset) ); + var_dump( date_sunrise($value, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, $zenith, $gmt_offset) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunrise() : usage variation *** + +--int 0-- +string(5) "08:56" +float(8.944%d) +int(28599) + +--int 1-- +string(5) "08:56" +float(8.944%d) +int(28599) + +--int 12345-- +string(5) "08:56" +float(8.944%d) +int(28599) + +--int -12345-- +string(5) "08:56" +float(8.944%d) +int(28599) + +--float 10.5-- +string(5) "08:56" +float(8.944%d) +int(28599) + +--float -10.5-- +string(5) "08:56" +float(8.944%d) +int(28599) + +--float .5-- +string(5) "08:56" +float(8.944%d) +int(28599) + +--empty array-- + +Warning: date_sunrise() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: date_sunrise() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: date_sunrise() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: date_sunrise() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +string(5) "08:56" +float(8.944%d) +int(28599) + +--lowercase null-- +string(5) "08:56" +float(8.944%d) +int(28599) + +--lowercase true-- +string(5) "08:56" +float(8.944%d) +int(28599) + +--lowercase false-- +string(5) "08:56" +float(8.944%d) +int(28599) + +--uppercase TRUE-- +string(5) "08:56" +float(8.944%d) +int(28599) + +--uppercase FALSE-- +string(5) "08:56" +float(8.944%d) +int(28599) + +--empty string DQ-- + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: date_sunrise() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: date_sunrise() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +string(5) "08:56" +float(8.944%d) +int(28599) + +--unset var-- +string(5) "08:56" +float(8.944%d) +int(28599) +===DONE=== diff --git a/ext/date/tests/date_sunrise_variation2.phpt b/ext/date/tests/date_sunrise_variation2.phpt new file mode 100644 index 0000000..b613b35 --- /dev/null +++ b/ext/date/tests/date_sunrise_variation2.phpt @@ -0,0 +1,211 @@ +--TEST-- +Test date_sunrise() function : usage variation - Passing unexpected values to second argument format. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float 12.3456789000e10' => 12.3456789000e10, + 'float -12.3456789000e10' => -12.3456789000e10, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for format + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( date_sunrise($time, $value, $latitude, $longitude, $zenith, $gmt_offset) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunrise() : usage variation *** + +--float 10.5-- + +Warning: date_sunrise(): Wrong return format given, pick one of SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING or SUNFUNCS_RET_DOUBLE in %s on line %d +bool(false) + +--float -10.5-- + +Warning: date_sunrise(): Wrong return format given, pick one of SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING or SUNFUNCS_RET_DOUBLE in %s on line %d +bool(false) + +--float 12.3456789000e10-- + +Warning: date_sunrise(): Wrong return format given, pick one of SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING or SUNFUNCS_RET_DOUBLE in %s on line %d +bool(false) + +--float -12.3456789000e10-- + +Warning: date_sunrise(): Wrong return format given, pick one of SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING or SUNFUNCS_RET_DOUBLE in %s on line %d +bool(false) + +--float .5-- +int(1218174483) + +--empty array-- + +Warning: date_sunrise() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: date_sunrise() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: date_sunrise() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: date_sunrise() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +int(1218174483) + +--lowercase null-- +int(1218174483) + +--lowercase true-- +string(5) "06:48" + +--lowercase false-- +int(1218174483) + +--uppercase TRUE-- +string(5) "06:48" + +--uppercase FALSE-- +int(1218174483) + +--empty string DQ-- + +Warning: date_sunrise() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: date_sunrise() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: date_sunrise() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: date_sunrise() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: date_sunrise() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: date_sunrise() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: date_sunrise() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: date_sunrise() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +int(1218174483) + +--unset var-- +int(1218174483) +===DONE=== diff --git a/ext/date/tests/date_sunrise_variation3.phpt b/ext/date/tests/date_sunrise_variation3.phpt new file mode 100644 index 0000000..1911e30 --- /dev/null +++ b/ext/date/tests/date_sunrise_variation3.phpt @@ -0,0 +1,294 @@ +--TEST-- +Test date_sunrise() function : usage variation - Passing unexpected values to third argument latitude. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for latitude + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( date_sunrise($time, SUNFUNCS_RET_STRING, $value, $longitude, $zenith, $gmt_offset) ); + var_dump( date_sunrise($time, SUNFUNCS_RET_DOUBLE, $value, $longitude, $zenith, $gmt_offset) ); + var_dump( date_sunrise($time, SUNFUNCS_RET_TIMESTAMP, $value, $longitude, $zenith, $gmt_offset) ); +}; +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunrise() : usage variation *** + +--int 0-- +string(5) "01:10" +float(1.174%d) +int(1218177627) + +--int 1-- +string(5) "01:09" +float(1.155%d) +int(1218177558) + +--int 12345-- +bool(false) +bool(false) +bool(false) + +--int -12345-- +bool(false) +bool(false) +bool(false) + +--empty array-- + +Warning: date_sunrise() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: date_sunrise() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: date_sunrise() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: date_sunrise() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +--uppercase NULL-- +string(5) "01:10" +float(1.174%d) +int(1218177627) + +--lowercase null-- +string(5) "01:10" +float(1.174%d) +int(1218177627) + +--lowercase true-- +string(5) "01:09" +float(1.155%d) +int(1218177558) + +--lowercase false-- +string(5) "01:10" +float(1.174%d) +int(1218177627) + +--uppercase TRUE-- +string(5) "01:09" +float(1.155%d) +int(1218177558) + +--uppercase FALSE-- +string(5) "01:10" +float(1.174%d) +int(1218177627) + +--empty string DQ-- + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: date_sunrise() expects parameter 3 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: date_sunrise() expects parameter 3 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 3 to be double, object given in %s on line %d +bool(false) + +--undefined var-- +string(5) "01:10" +float(1.174%d) +int(1218177627) + +--unset var-- +string(5) "01:10" +float(1.174%d) +int(1218177627) +===DONE=== diff --git a/ext/date/tests/date_sunrise_variation4.phpt b/ext/date/tests/date_sunrise_variation4.phpt new file mode 100644 index 0000000..c48f538 --- /dev/null +++ b/ext/date/tests/date_sunrise_variation4.phpt @@ -0,0 +1,296 @@ +--TEST-- +Test date_sunrise() function : usage variation - Passing unexpected values to fourth argument longitude. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for longitude + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( date_sunrise($time, SUNFUNCS_RET_STRING, $latitude, $value, $zenith, $gmt_offset) ); + var_dump( date_sunrise($time, SUNFUNCS_RET_DOUBLE, $latitude, $value, $zenith, $gmt_offset) ); + var_dump( date_sunrise($time, SUNFUNCS_RET_TIMESTAMP, $latitude, $value, $zenith, $gmt_offset) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunrise() : usage variation *** + +--int 0-- +string(5) "05:12" +float(5.200%d) +int(1218172321) + +--int 1-- +string(5) "05:08" +float(5.133%d) +int(1218172081) + +--int 12345-- +string(5) "21:45" +float(21.759%d) +int(1218145534) + +--int -12345-- +string(5) "12:41" +float(12.698%d) +int(1218199315) + +--empty array-- + +Warning: date_sunrise() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: date_sunrise() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: date_sunrise() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: date_sunrise() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +--uppercase NULL-- +string(5) "05:12" +float(5.200%d) +int(1218172321) + +--lowercase null-- +string(5) "05:12" +float(5.200%d) +int(1218172321) + +--lowercase true-- +string(5) "05:08" +float(5.133%d) +int(1218172081) + +--lowercase false-- +string(5) "05:12" +float(5.200%d) +int(1218172321) + +--uppercase TRUE-- +string(5) "05:08" +float(5.133%d) +int(1218172081) + +--uppercase FALSE-- +string(5) "05:12" +float(5.200%d) +int(1218172321) + +--empty string DQ-- + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: date_sunrise() expects parameter 4 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: date_sunrise() expects parameter 4 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 4 to be double, object given in %s on line %d +bool(false) + +--undefined var-- +string(5) "05:12" +float(5.200%d) +int(1218172321) + +--unset var-- +string(5) "05:12" +float(5.200%d) +int(1218172321) +===DONE=== diff --git a/ext/date/tests/date_sunrise_variation5.phpt b/ext/date/tests/date_sunrise_variation5.phpt new file mode 100644 index 0000000..4267478 --- /dev/null +++ b/ext/date/tests/date_sunrise_variation5.phpt @@ -0,0 +1,296 @@ +--TEST-- +Test date_sunrise() function : usage variation - Passing unexpected values to fifth argument zenith +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for zenith + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( date_sunrise($time, SUNFUNCS_RET_STRING, $latitude, $longitude, $value, $gmt_offset) ); + var_dump( date_sunrise($time, SUNFUNCS_RET_DOUBLE, $latitude, $longitude, $value, $gmt_offset) ); + var_dump( date_sunrise($time, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, $value, $gmt_offset) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunrise() : usage variation *** + +--int 0-- +bool(false) +bool(false) +bool(false) + +--int 1-- +bool(false) +bool(false) +bool(false) + +--int 12345-- +string(5) "09:51" +float(9.855%d) +int(1218169278) + +--int -12345-- +string(5) "09:54" +float(9.9097820911118) +int(1218169475) + +--empty array-- + +Warning: date_sunrise() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: date_sunrise() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: date_sunrise() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: date_sunrise() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +--uppercase NULL-- +bool(false) +bool(false) +bool(false) + +--lowercase null-- +bool(false) +bool(false) +bool(false) + +--lowercase true-- +bool(false) +bool(false) +bool(false) + +--lowercase false-- +bool(false) +bool(false) +bool(false) + +--uppercase TRUE-- +bool(false) +bool(false) +bool(false) + +--uppercase FALSE-- +bool(false) +bool(false) +bool(false) + +--empty string DQ-- + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: date_sunrise() expects parameter 5 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: date_sunrise() expects parameter 5 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 5 to be double, object given in %s on line %d +bool(false) + +--undefined var-- +bool(false) +bool(false) +bool(false) + +--unset var-- +bool(false) +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/date_sunrise_variation6.phpt b/ext/date/tests/date_sunrise_variation6.phpt new file mode 100644 index 0000000..a96b95f --- /dev/null +++ b/ext/date/tests/date_sunrise_variation6.phpt @@ -0,0 +1,295 @@ +--TEST-- +Test date_sunrise() function : usage variation - Passing unexpected values to sixth argument gmt_offset. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -2345, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for gmt_offset + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( date_sunrise($time, SUNFUNCS_RET_STRING, $latitude, $longitude, $zenith, $value) ); + var_dump( date_sunrise($time, SUNFUNCS_RET_DOUBLE, $latitude, $longitude, $zenith, $value) ); + var_dump( date_sunrise($time, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, $zenith, $value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunrise() : usage variation *** + +--int 0-- +string(5) "05:48" +float(5.800%d) +int(1218174483) + +--int 1-- +string(5) "06:48" +float(6.800%d) +int(1218174483) + +--int 12345-- +string(5) "14:48" +float(14.800%d) +int(1218174483) + +--int -12345-- +string(5) "12:48" +float(12.800%d) +int(1218174483) + +--empty array-- + +Warning: date_sunrise() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: date_sunrise() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: date_sunrise() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: date_sunrise() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +--uppercase NULL-- +string(5) "05:48" +float(5.800%d) +int(1218174483) + +--lowercase null-- +string(5) "05:48" +float(5.800%d) +int(1218174483) + +--lowercase true-- +string(5) "06:48" +float(6.800%d) +int(1218174483) + +--lowercase false-- +string(5) "05:48" +float(5.800%d) +int(1218174483) + +--uppercase TRUE-- +string(5) "06:48" +float(6.800%d) +int(1218174483) + +--uppercase FALSE-- +string(5) "05:48" +float(5.800%d) +int(1218174483) + +--empty string DQ-- + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: date_sunrise() expects parameter 6 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: date_sunrise() expects parameter 6 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunrise() expects parameter 6 to be double, object given in %s on line %d +bool(false) + +--undefined var-- +string(5) "05:48" +float(5.800%d) +int(1218174483) + +--unset var-- +string(5) "05:48" +float(5.800%d) +int(1218174483) +===DONE=== diff --git a/ext/date/tests/date_sunrise_variation7.phpt b/ext/date/tests/date_sunrise_variation7.phpt new file mode 100644 index 0000000..fa5f363 --- /dev/null +++ b/ext/date/tests/date_sunrise_variation7.phpt @@ -0,0 +1,57 @@ +--TEST-- +Test date_sunrise() function : usage variation - Checking sunrise for consecutive days in specific timezone +--FILE-- + array ("Latitude" => -14.24, "Longitude" => -170.72, "GMT" => -11), + "US/Alaska" => array ("Latitude" => 61, "Longitude" => -150 , "GMT" => -9), + "America/Chicago" => array ("Latitude" => 41.85, "Longitude" => -87.65 , "GMT" => -5), + "America/Montevideo" => array ("Latitude" => -34.88, "Longitude" => -56.18 , "GMT" => -3), + "Africa/Casablanca" => array ("Latitude" => 33.65, "Longitude" => -7.58, "GMT" => 0), + "Europe/Moscow" => array ("Latitude" => 55.75, "Longitude" => 37.58, "GMT" => 4), + "Asia/Hong_Kong" => array ("Latitude" => 22.28, "Longitude" => 114.15 , "GMT" => 8), + "Australia/Brisbane" => array ("Latitude" => -27.46, "Longitude" => 153.2 , "GMT" => 10), + "Pacific/Wallis" => array ("Latitude" => -13.3, "Longitude" => -176.16, "GMT" => 12), +); + +foreach($inputs as $timezone => $value) { + date_default_timezone_set($timezone); + $time = mktime(8, 8, 8, 8, 11, 2008); + var_dump( date_sunrise($time, SUNFUNCS_RET_STRING, $value["Latitude"], $value["Longitude"], 90, $value["GMT"] )); + $time = mktime(8, 8, 8, 8, 12, 2008); + var_dump( date_sunrise($time, SUNFUNCS_RET_STRING, $value["Latitude"], $value["Longitude"], 90, $value["GMT"]) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunrise() : usage variation *** +string(5) "06:41" +string(5) "06:41" +string(5) "05:09" +string(5) "05:11" +string(5) "05:59" +string(5) "06:00" +string(5) "07:30" +string(5) "07:29" +string(5) "05:53" +string(5) "05:53" +string(5) "05:59" +string(5) "06:01" +string(5) "06:01" +string(5) "06:02" +string(5) "06:23" +string(5) "06:22" +string(5) "06:03" +string(5) "06:02" +===DONE=== diff --git a/ext/date/tests/date_sunrise_variation8.phpt b/ext/date/tests/date_sunrise_variation8.phpt new file mode 100644 index 0000000..1d22be8 --- /dev/null +++ b/ext/date/tests/date_sunrise_variation8.phpt @@ -0,0 +1,73 @@ +--TEST-- +Test date_sunrise() function : usage variation - Checking with North and South poles when Sun is up and down all day +--FILE-- + mktime(8, 8, 8, 8, 12, 2008), + "13 Aug 2008" => mktime(8, 8, 8, 8, 13, 2008), + + //Date at which Sun is up all day at South Pole + "12 Nov 2008" => mktime(8, 8, 8, 11, 12, 2008), + "13 Nov 2008" => mktime(8, 8, 8, 11, 13, 2008), +); + +//Iterate over different date and time +foreach( $time_date as $date => $time ){ + echo "\n--$date--\n"; + var_dump( date_sunrise($time, SUNFUNCS_RET_STRING, 90, 0 ) ); + var_dump( date_sunrise($time, SUNFUNCS_RET_DOUBLE, 90, 0 ) ); + var_dump( date_sunrise($time, SUNFUNCS_RET_TIMESTAMP, 90, 0 ) ); + var_dump( date_sunrise($time, SUNFUNCS_RET_STRING, -90, 0 ) ); + var_dump( date_sunrise($time, SUNFUNCS_RET_DOUBLE, -90, 0 ) ); + var_dump( date_sunrise($time, SUNFUNCS_RET_TIMESTAMP, -90, 0 ) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunrise() : usage variation *** + +--12 Aug 2008-- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--13 Aug 2008-- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--12 Nov 2008-- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--13 Nov 2008-- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/date_sunrise_variation9.phpt b/ext/date/tests/date_sunrise_variation9.phpt new file mode 100644 index 0000000..49af06d --- /dev/null +++ b/ext/date/tests/date_sunrise_variation9.phpt @@ -0,0 +1,47 @@ +--TEST-- +Test date_sunrise() function : usage variation - Passing high positive and negative float values to time argument. +--FILE-- + +===DONE=== +--EXPECTREGEX-- +\*\*\* Testing date_sunrise\(\) : usage variation \*\*\* + +-- Testing date_sunrise\(\) function by passing float 12.3456789000e10 value to time -- +string\(5\) "(07:34|07:49)" +float\((7.566[0-9]*|7.821[0-9]*)\) +int\((-1097256359|123456811756)\) + +-- Testing date_sunrise\(\) function by passing float -12.3456789000e10 value to time -- +string\(5\) "(07:42|08:48|08:04)" +float\((7.713[0-9]*|8.810[0-9]*|8.074[0-9]*)\) +int\((1097304168|-2147443882|-123456761731)\) +===DONE=== diff --git a/ext/date/tests/date_sunset_error.phpt b/ext/date/tests/date_sunset_error.phpt new file mode 100644 index 0000000..a5e75b6 --- /dev/null +++ b/ext/date/tests/date_sunset_error.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test date_sunset() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_sunset() : error conditions *** + +-- Testing date_sunset() function with Zero arguments -- + +Warning: date_sunset() expects at least 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing date_sunset() function with more than expected no. of arguments -- + +Warning: date_sunset() expects at most 6 parameters, 7 given in %s on line %d +bool(false) + +Warning: date_sunset() expects at most 6 parameters, 7 given in %s on line %d +bool(false) + +Warning: date_sunset() expects at most 6 parameters, 7 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_sunset_variation1.phpt b/ext/date/tests/date_sunset_variation1.phpt new file mode 100644 index 0000000..c2e1195 --- /dev/null +++ b/ext/date/tests/date_sunset_variation1.phpt @@ -0,0 +1,316 @@ +--TEST-- +Test date_sunset() function : usage variation - Passing unexpected values to first argument time. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -2345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for time + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( date_sunset($value, SUNFUNCS_RET_STRING, $latitude, $longitude, $zenith, $gmt_offset) ); + var_dump( date_sunset($value, SUNFUNCS_RET_DOUBLE, $latitude, $longitude, $zenith, $gmt_offset) ); + var_dump( date_sunset($value, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, $zenith, $gmt_offset) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunset() : usage variation *** + +--int 0-- +string(5) "18:22" +float(18.377%d) +int(62558) + +--int 1-- +string(5) "18:22" +float(18.377%d) +int(62558) + +--int 12345-- +string(5) "18:22" +float(18.377%d) +int(62558) + +--int -12345-- +string(5) "18:22" +float(18.377%d) +int(62558) + +--float 10.5-- +string(5) "18:22" +float(18.377%d) +int(62558) + +--float -10.5-- +string(5) "18:22" +float(18.377%d) +int(62558) + +--float .5-- +string(5) "18:22" +float(18.377%d) +int(62558) + +--empty array-- + +Warning: date_sunset() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: date_sunset() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: date_sunset() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: date_sunset() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +string(5) "18:22" +float(18.377%d) +int(62558) + +--lowercase null-- +string(5) "18:22" +float(18.377%d) +int(62558) + +--lowercase true-- +string(5) "18:22" +float(18.377%d) +int(62558) + +--lowercase false-- +string(5) "18:22" +float(18.377%d) +int(62558) + +--uppercase TRUE-- +string(5) "18:22" +float(18.377%d) +int(62558) + +--uppercase FALSE-- +string(5) "18:22" +float(18.377%d) +int(62558) + +--empty string DQ-- + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: date_sunset() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: date_sunset() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +string(5) "18:22" +float(18.377%d) +int(62558) + +--unset var-- +string(5) "18:22" +float(18.377%d) +int(62558) +===DONE=== diff --git a/ext/date/tests/date_sunset_variation2.phpt b/ext/date/tests/date_sunset_variation2.phpt new file mode 100644 index 0000000..575b64a --- /dev/null +++ b/ext/date/tests/date_sunset_variation2.phpt @@ -0,0 +1,211 @@ +--TEST-- +Test date_sunset() function : usage variation - Passing unexpected values to second argument format. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float 12.3456789000e10' => 12.3456789000e10, + 'float -12.3456789000e10' => -12.3456789000e10, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for format + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( date_sunset($time, $value, $latitude, $longitude, $zenith, $gmt_offset) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunset() : usage variation *** + +--float 10.5-- + +Warning: date_sunset(): Wrong return format given, pick one of SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING or SUNFUNCS_RET_DOUBLE in %s on line %d +bool(false) + +--float -10.5-- + +Warning: date_sunset(): Wrong return format given, pick one of SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING or SUNFUNCS_RET_DOUBLE in %s on line %d +bool(false) + +--float 12.3456789000e10-- + +Warning: date_sunset(): Wrong return format given, pick one of SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING or SUNFUNCS_RET_DOUBLE in %s on line %d +bool(false) + +--float -12.3456789000e10-- + +Warning: date_sunset(): Wrong return format given, pick one of SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING or SUNFUNCS_RET_DOUBLE in %s on line %d +bool(false) + +--float .5-- +int(1218199253) + +--empty array-- + +Warning: date_sunset() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: date_sunset() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: date_sunset() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: date_sunset() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +int(1218199253) + +--lowercase null-- +int(1218199253) + +--lowercase true-- +string(5) "18:10" + +--lowercase false-- +int(1218199253) + +--uppercase TRUE-- +string(5) "18:10" + +--uppercase FALSE-- +int(1218199253) + +--empty string DQ-- + +Warning: date_sunset() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: date_sunset() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: date_sunset() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: date_sunset() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: date_sunset() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: date_sunset() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: date_sunset() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: date_sunset() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +int(1218199253) + +--unset var-- +int(1218199253) +===DONE=== diff --git a/ext/date/tests/date_sunset_variation3.phpt b/ext/date/tests/date_sunset_variation3.phpt new file mode 100644 index 0000000..e0f6678 --- /dev/null +++ b/ext/date/tests/date_sunset_variation3.phpt @@ -0,0 +1,297 @@ +--TEST-- +Test date_sunset() function : usage variation - Passing unexpected values to third argument latitude. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -2345, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for latitude + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( date_sunset($time, SUNFUNCS_RET_STRING, $value, $longitude, $zenith, $gmt_offset) ); + var_dump( date_sunset($time, SUNFUNCS_RET_DOUBLE, $value, $longitude, $zenith, $gmt_offset) ); + var_dump( date_sunset($time, SUNFUNCS_RET_TIMESTAMP, $value, $longitude, $zenith, $gmt_offset) ); + +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunset() : usage variation *** + +--int 0-- +string(5) "17:43" +float(17.730%d) +int(1218197630) + +--int 1-- +string(5) "17:44" +float(17.749%d) +int(1218197698) + +--int 12345-- +bool(false) +bool(false) +bool(false) + +--int -12345-- +string(5) "17:35" +float(17.598%d) +int(1218197155) + +--empty array-- + +Warning: date_sunset() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: date_sunset() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: date_sunset() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: date_sunset() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, array given in %s on line %d +bool(false) + +--uppercase NULL-- +string(5) "17:43" +float(17.730%d) +int(1218197630) + +--lowercase null-- +string(5) "17:43" +float(17.730%d) +int(1218197630) + +--lowercase true-- +string(5) "17:44" +float(17.749%d) +int(1218197698) + +--lowercase false-- +string(5) "17:43" +float(17.730%d) +int(1218197630) + +--uppercase TRUE-- +string(5) "17:44" +float(17.749%d) +int(1218197698) + +--uppercase FALSE-- +string(5) "17:43" +float(17.730%d) +int(1218197630) + +--empty string DQ-- + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: date_sunset() expects parameter 3 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: date_sunset() expects parameter 3 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 3 to be double, object given in %s on line %d +bool(false) + +--undefined var-- +string(5) "17:43" +float(17.730%d) +int(1218197630) + +--unset var-- +string(5) "17:43" +float(17.730%d) +int(1218197630) +===DONE=== diff --git a/ext/date/tests/date_sunset_variation4.phpt b/ext/date/tests/date_sunset_variation4.phpt new file mode 100644 index 0000000..7840f8f --- /dev/null +++ b/ext/date/tests/date_sunset_variation4.phpt @@ -0,0 +1,296 @@ +--TEST-- +Test date_sunset() function : usage variation - Passing unexpected values to fourth argument longitude. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -2345, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for longitude + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( date_sunset($time, SUNFUNCS_RET_STRING, $latitude, $value, $zenith, $gmt_offset) ); + var_dump( date_sunset($time, SUNFUNCS_RET_DOUBLE, $latitude, $value, $zenith, $gmt_offset) ); + var_dump( date_sunset($time, SUNFUNCS_RET_TIMESTAMP, $latitude, $value, $zenith, $gmt_offset) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunset() : usage variation *** + +--int 0-- +string(5) "00:03" +float(0.059%d) +int(1218220414) + +--int 1-- +string(5) "23:59" +float(23.992%d) +int(1218220174) + +--int 12345-- +string(5) "17:15" +float(17.259%d) +int(1218195932) + +--int -12345-- +string(5) "12:18" +float(12.316%d) +int(1218178138) + +--empty array-- + +Warning: date_sunset() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: date_sunset() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: date_sunset() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: date_sunset() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, array given in %s on line %d +bool(false) + +--uppercase NULL-- +string(5) "00:03" +float(0.059%d) +int(1218220414) + +--lowercase null-- +string(5) "00:03" +float(0.059%d) +int(1218220414) + +--lowercase true-- +string(5) "23:59" +float(23.992%d) +int(1218220174) + +--lowercase false-- +string(5) "00:03" +float(0.059%d) +int(1218220414) + +--uppercase TRUE-- +string(5) "23:59" +float(23.992%d) +int(1218220174) + +--uppercase FALSE-- +string(5) "00:03" +float(0.059%d) +int(1218220414) + +--empty string DQ-- + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: date_sunset() expects parameter 4 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: date_sunset() expects parameter 4 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 4 to be double, object given in %s on line %d +bool(false) + +--undefined var-- +string(5) "00:03" +float(0.059%d) +int(1218220414) + +--unset var-- +string(5) "00:03" +float(0.059%d) +int(1218220414) +===DONE=== diff --git a/ext/date/tests/date_sunset_variation5.phpt b/ext/date/tests/date_sunset_variation5.phpt new file mode 100644 index 0000000..0719633 --- /dev/null +++ b/ext/date/tests/date_sunset_variation5.phpt @@ -0,0 +1,296 @@ +--TEST-- +Test date_sunset() function : usage variation - Passing unexpected values to fifth argument zenith. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -2345, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for zenith + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( date_sunset($time, SUNFUNCS_RET_STRING, $latitude, $longitude, $value, $gmt_offset) ); + var_dump( date_sunset($time, SUNFUNCS_RET_DOUBLE, $latitude, $longitude, $value, $gmt_offset) ); + var_dump( date_sunset($time, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, $value, $gmt_offset) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunset() : usage variation *** + +--int 0-- +bool(false) +bool(false) +bool(false) + +--int 1-- +bool(false) +bool(false) +bool(false) + +--int 12345-- +string(5) "19:20" +float(19.340%d) +int(1218203424) + +--int -12345-- +bool(false) +bool(false) +bool(false) + +--empty array-- + +Warning: date_sunset() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: date_sunset() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: date_sunset() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: date_sunset() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, array given in %s on line %d +bool(false) + +--uppercase NULL-- +bool(false) +bool(false) +bool(false) + +--lowercase null-- +bool(false) +bool(false) +bool(false) + +--lowercase true-- +bool(false) +bool(false) +bool(false) + +--lowercase false-- +bool(false) +bool(false) +bool(false) + +--uppercase TRUE-- +bool(false) +bool(false) +bool(false) + +--uppercase FALSE-- +bool(false) +bool(false) +bool(false) + +--empty string DQ-- + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: date_sunset() expects parameter 5 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: date_sunset() expects parameter 5 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 5 to be double, object given in %s on line %d +bool(false) + +--undefined var-- +bool(false) +bool(false) +bool(false) + +--unset var-- +bool(false) +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/date_sunset_variation6.phpt b/ext/date/tests/date_sunset_variation6.phpt new file mode 100644 index 0000000..a434de8 --- /dev/null +++ b/ext/date/tests/date_sunset_variation6.phpt @@ -0,0 +1,296 @@ +--TEST-- +Test date_sunset() function : usage variation - Passing unexpected values to sixth argument gmt_offset. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -2345, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for gmt_offset + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( date_sunset($time, SUNFUNCS_RET_STRING, $latitude, $longitude, $zenith, $value) ); + var_dump( date_sunset($time, SUNFUNCS_RET_DOUBLE, $latitude, $longitude, $zenith, $value) ); + var_dump( date_sunset($time, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, $zenith, $value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunset() : usage variation *** + +--int 0-- +string(5) "12:40" +float(12.681%d) +int(1218199253) + +--int 1-- +string(5) "13:40" +float(13.681%d) +int(1218199253) + +--int 12345-- +string(5) "21:40" +float(21.681%d) +int(1218199253) + +--int -12345-- +string(5) "19:40" +float(19.681%d) +int(1218199253) + +--empty array-- + +Warning: date_sunset() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: date_sunset() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: date_sunset() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: date_sunset() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, array given in %s on line %d +bool(false) + +--uppercase NULL-- +string(5) "12:40" +float(12.681%d) +int(1218199253) + +--lowercase null-- +string(5) "12:40" +float(12.681%d) +int(1218199253) + +--lowercase true-- +string(5) "13:40" +float(13.681%d) +int(1218199253) + +--lowercase false-- +string(5) "12:40" +float(12.681%d) +int(1218199253) + +--uppercase TRUE-- +string(5) "13:40" +float(13.681%d) +int(1218199253) + +--uppercase FALSE-- +string(5) "12:40" +float(12.681%d) +int(1218199253) + +--empty string DQ-- + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: date_sunset() expects parameter 6 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: date_sunset() expects parameter 6 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, object given in %s on line %d +bool(false) + +Warning: date_sunset() expects parameter 6 to be double, object given in %s on line %d +bool(false) + +--undefined var-- +string(5) "12:40" +float(12.681%d) +int(1218199253) + +--unset var-- +string(5) "12:40" +float(12.681%d) +int(1218199253) +===DONE=== diff --git a/ext/date/tests/date_sunset_variation7.phpt b/ext/date/tests/date_sunset_variation7.phpt new file mode 100644 index 0000000..0c64d96 --- /dev/null +++ b/ext/date/tests/date_sunset_variation7.phpt @@ -0,0 +1,75 @@ +--TEST-- +Test date_sunset() function : usage variation - Checking sunrise for consecutive days in specific timezone +--FILE-- + array ("Latitude" => -14.24, "Longitude" => -170.72, "GMT" => -11), + "US/Alaska" => array ("Latitude" => 61, "Longitude" => -150 , "GMT" => -9), + "America/Chicago" => array ("Latitude" => 41.85, "Longitude" => -87.65 , "GMT" => -5), + "America/Montevideo" => array ("Latitude" => -34.88, "Longitude" => -56.18 , "GMT" => -3), + "Africa/Casablanca" => array ("Latitude" => 33.65, "Longitude" => "-7.58", "GMT" => 0), + "Europe/Moscow" => array ("Latitude" => 55.75, "Longitude" => 37.58, "GMT" => 4), + "Asia/Hong_Kong" => array ("Latitude" => 22.28, "Longitude" => 114.15 , "GMT" => 8), + "Australia/Brisbane" => array ("Latitude" => -27.46, "Longitude" => 153.2 , "GMT" => 10), + "Pacific/Wallis" => array ("Latitude" => -13.3, "Longitude" => -176.16, "GMT" => 12), +); + +foreach($inputs as $timezone => $value) { + echo "\n--$timezone--\n"; + date_default_timezone_set($timezone); + $time = mktime(8, 8, 8, 8, 11, 2008); + var_dump( date_sunset($time, SUNFUNCS_RET_STRING, $value["Latitude"], $value["Longitude"], 90, $value["GMT"] )); + $time = mktime(8, 8, 8, 8, 12, 2008); + var_dump( date_sunset($time, SUNFUNCS_RET_STRING, $value["Latitude"], $value["Longitude"], 90, $value["GMT"]) ); +} +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunset() : usage variation *** + +--Pacific/Samoa-- +string(5) "18:13" +string(5) "18:13" + +--US/Alaska-- +string(5) "21:00" +string(5) "20:57" + +--America/Chicago-- +string(5) "19:51" +string(5) "19:50" + +--America/Montevideo-- +string(5) "18:08" +string(5) "18:09" + +--Africa/Casablanca-- +string(5) "19:17" +string(5) "19:16" + +--Europe/Moscow-- +string(5) "21:09" +string(5) "21:07" + +--Asia/Hong_Kong-- +string(5) "18:55" +string(5) "18:54" + +--Australia/Brisbane-- +string(5) "17:21" +string(5) "17:21" + +--Pacific/Wallis-- +string(5) "17:36" +string(5) "17:36" +===DONE=== diff --git a/ext/date/tests/date_sunset_variation8.phpt b/ext/date/tests/date_sunset_variation8.phpt new file mode 100644 index 0000000..07319ab --- /dev/null +++ b/ext/date/tests/date_sunset_variation8.phpt @@ -0,0 +1,73 @@ +--TEST-- +Test date_sunset() function : usage variation - Checking with North and South poles when Sun is up and down all day +--FILE-- + mktime(8, 8, 8, 8, 12, 2008), + "13 Aug 2008" => mktime(8, 8, 8, 8, 13, 2008), + + //Date at which Sun is up all day at South Pole + "12 Nov 2008" => mktime(8, 8, 8, 11, 12, 2008), + "13 Nov 2008" => mktime(8, 8, 8, 11, 13, 2008), +); + +//Iterate over different date and time +foreach( $time_date as $date => $time ){ + echo "\n--$date--\n"; + var_dump( date_sunset($time, SUNFUNCS_RET_STRING, 90, 0 ) ); + var_dump( date_sunset($time, SUNFUNCS_RET_DOUBLE, 90, 0 ) ); + var_dump( date_sunset($time, SUNFUNCS_RET_TIMESTAMP, 90, 0 ) ); + var_dump( date_sunset($time, SUNFUNCS_RET_STRING, -90, 0 ) ); + var_dump( date_sunset($time, SUNFUNCS_RET_DOUBLE, -90, 0 ) ); + var_dump( date_sunset($time, SUNFUNCS_RET_TIMESTAMP, -90, 0 ) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing date_sunset() : usage variation *** + +--12 Aug 2008-- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--13 Aug 2008-- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--12 Nov 2008-- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--13 Nov 2008-- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/date_sunset_variation9.phpt b/ext/date/tests/date_sunset_variation9.phpt new file mode 100644 index 0000000..59a4b58 --- /dev/null +++ b/ext/date/tests/date_sunset_variation9.phpt @@ -0,0 +1,47 @@ +--TEST-- +Test date_sunset() function : usage variation - Passing high positive and negative float values to time argument. +--FILE-- + +===DONE=== +--EXPECTREGEX-- +\*\*\* Testing date_sunset\(\) : usage variation \*\*\* + +-- Testing date_sunset\(\) function by passing float 12.3456789000e10 value to time -- +string\(5\) "(19:49|19:28)" +float\((19.830[0-9]*|19.830[0-9]*|19.480[0-9]*)\) +int\((-1097212211|123456853728)\) + +-- Testing date_sunset\(\) function by passing float -12.3456789000e10 value to time -- +string\(5\) "(19:03|18:12|18:48)" +float\((19.056[0-9]*|18.213[0-9]*|18.808[0-9]*)\) +int\((1097345002|-2147410031|-123456723090)\) +===DONE=== diff --git a/ext/date/tests/date_time_set_basic1.phpt b/ext/date/tests/date_time_set_basic1.phpt new file mode 100644 index 0000000..c0c9c66 --- /dev/null +++ b/ext/date/tests/date_time_set_basic1.phpt @@ -0,0 +1,46 @@ +--TEST-- +Test date_time_set() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_time_set() : basic functionality *** +Initial date: Sat, 31 Jan 2009 15:14:10 +0000 +After modification1 Sat, 31 Jan 2009 17:20:00 +0000 +After modification2 Sat, 31 Jan 2009 19:05:59 +0000 +After modification3 Sun, 01 Feb 2009 00:10:00 +0000 +After modification4 Mon, 02 Feb 2009 23:35:47 +0000 +After modification5 Wed, 04 Feb 2009 06:25:00 +0000 +===DONE=== diff --git a/ext/date/tests/date_time_set_error.phpt b/ext/date/tests/date_time_set_error.phpt new file mode 100644 index 0000000..8e5c855 --- /dev/null +++ b/ext/date/tests/date_time_set_error.phpt @@ -0,0 +1,70 @@ +--TEST-- +Test date_time_set() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_time_set() : error conditions *** + +-- Testing date_time_set() function with zero arguments -- + +Warning: date_time_set() expects at least 3 parameters, 0 given in %s on line %d +bool(false) + +-- Testing date_time_set() function with less than expected no. of arguments -- + +Warning: date_time_set() expects at least 3 parameters, 1 given in %s on line %d +bool(false) + +Warning: date_time_set() expects at least 3 parameters, 2 given in %s on line %d +bool(false) + +-- Testing date_time_set() function with more than expected no. of arguments -- + +Warning: date_time_set() expects at most 4 parameters, 5 given in %s on line %d +bool(false) + +-- Testing date_time_set() function with an invalid values for $object argument -- + +Warning: date_time_set() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +Warning: date_time_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +Warning: date_time_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_time_set_variation1.phpt b/ext/date/tests/date_time_set_variation1.phpt new file mode 100644 index 0000000..651f8a0 --- /dev/null +++ b/ext/date/tests/date_time_set_variation1.phpt @@ -0,0 +1,254 @@ +--TEST-- +Test date_time_set() function : usage variation - Passing unexpected values to first argument $object. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$hour = 10; +$minute = 13; +$sec = 45; + +foreach($inputs as $variation =>$object) { + echo "\n-- $variation --\n"; + var_dump( date_time_set($object, $hour, $minute, $sec) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_time_set() : usage variation - unexpected values to first argument $object*** + +-- int 0 -- + +Warning: date_time_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: date_time_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: date_time_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: date_time_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: date_time_set() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: date_time_set() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: date_time_set() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: date_time_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_time_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_time_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_time_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: date_time_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: date_time_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: date_time_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: date_time_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: date_time_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: date_time_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: date_time_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_time_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_time_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_time_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_time_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_time_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_time_set() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_time_set() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: date_time_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- unset var -- + +Warning: date_time_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- resource -- + +Warning: date_time_set() expects parameter 1 to be DateTime, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_time_set_variation2.phpt b/ext/date/tests/date_time_set_variation2.phpt new file mode 100644 index 0000000..e8a6d7e --- /dev/null +++ b/ext/date/tests/date_time_set_variation2.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test date_time_set() function : usage variation - Passing unexpected values to second argument $hour. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = date_create("2009-01-31 15:14:10"); +$minute = 13; +$sec = 45; + +foreach($inputs as $variation =>$hour) { + echo "\n-- $variation --\n"; + var_dump( date_time_set($object, $hour, $minute, $sec) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_time_set() : usage variation - unexpected values to second argument $hour*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 01:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2010-06-29 09:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 15:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 14:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: date_time_set() expects parameter 2 to be long, array given in %s +bool(false) + +-- int indexed array -- + +Warning: date_time_set() expects parameter 2 to be long, array given in %s +bool(false) + +-- associative array -- + +Warning: date_time_set() expects parameter 2 to be long, array given in %s +bool(false) + +-- nested arrays -- + +Warning: date_time_set() expects parameter 2 to be long, array given in %s +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 01:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 01:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: date_time_set() expects parameter 2 to be long, string given in %s +bool(false) + +-- empty string SQ -- + +Warning: date_time_set() expects parameter 2 to be long, string given in %s +bool(false) + +-- string DQ -- + +Warning: date_time_set() expects parameter 2 to be long, string given in %s +bool(false) + +-- string SQ -- + +Warning: date_time_set() expects parameter 2 to be long, string given in %s +bool(false) + +-- mixed case string -- + +Warning: date_time_set() expects parameter 2 to be long, string given in %s +bool(false) + +-- heredoc -- + +Warning: date_time_set() expects parameter 2 to be long, string given in %s +bool(false) + +-- instance of classWithToString -- + +Warning: date_time_set() expects parameter 2 to be long, object given in %s +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_time_set() expects parameter 2 to be long, object given in %s +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-29 00:13:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: date_time_set() expects parameter 2 to be long, resource given in %s +bool(false) +===DONE=== diff --git a/ext/date/tests/date_time_set_variation3.phpt b/ext/date/tests/date_time_set_variation3.phpt new file mode 100644 index 0000000..9be25b5 --- /dev/null +++ b/ext/date/tests/date_time_set_variation3.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test date_time_set() function : usage variation - Passing unexpected values to third argument $minute. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = date_create("2009-01-31 15:14:10"); +$hour = 10; +$sec = 45; + +foreach($inputs as $variation =>$minute) { + echo "\n-- $variation --\n"; + var_dump( date_time_set($object, $hour, $minute, $sec) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_time_set() : usage variation - unexpected values to third argument $minute*** + +-- int 0 -- +object(DateTime)#3 (3) { + ["date"]=> + string(19) "2009-01-31 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#3 (3) { + ["date"]=> + string(19) "2009-01-31 10:01:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#3 (3) { + ["date"]=> + string(19) "2009-02-08 23:45:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#3 (3) { + ["date"]=> + string(19) "2009-01-30 20:15:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#3 (3) { + ["date"]=> + string(19) "2009-01-30 10:10:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#3 (3) { + ["date"]=> + string(19) "2009-01-30 09:50:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#3 (3) { + ["date"]=> + string(19) "2009-01-30 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: date_time_set() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_time_set() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_time_set() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_time_set() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:01:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:01:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: date_time_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_time_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_time_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_time_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_time_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_time_set() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_time_set() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_time_set() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-30 10:00:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: date_time_set() expects parameter 3 to be long, resource given in %s on line %d +bool(false) +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/date_time_set_variation4.phpt b/ext/date/tests/date_time_set_variation4.phpt new file mode 100644 index 0000000..1da497b --- /dev/null +++ b/ext/date/tests/date_time_set_variation4.phpt @@ -0,0 +1,329 @@ +--TEST-- +Test date_time_set() function : usage variation - Passing unexpected values to forth argument $sec. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = date_create("2009-01-31 15:14:10"); +$hour = 10; +$minute = 13; + +foreach($inputs as $variation =>$sec) { + echo "\n-- $variation --\n"; + var_dump( date_time_set($object, $hour, $minute, $sec) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_time_set() : usage variation - unexpected values to forth argument $sec*** + +-- int 0 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 1 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:01" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int 12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 13:38:45" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- int -12345 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 06:47:15" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float 10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:10" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float -10.5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:12:50" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- float .5 -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty array -- + +Warning: date_time_set() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_time_set() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_time_set() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_time_set() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase null -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase true -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:01" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- lowercase false -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase TRUE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:01" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- uppercase FALSE -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- empty string DQ -- + +Warning: date_time_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_time_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_time_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_time_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_time_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_time_set() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_time_set() expects parameter 4 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_time_set() expects parameter 4 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- unset var -- +object(DateTime)#%d (3) { + ["date"]=> + string(19) "2009-01-31 10:13:00" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} + +-- resource -- + +Warning: date_time_set() expects parameter 4 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_timestamp_get.phpt b/ext/date/tests/date_timestamp_get.phpt new file mode 100644 index 0000000..bdd4d04 --- /dev/null +++ b/ext/date/tests/date_timestamp_get.phpt @@ -0,0 +1,20 @@ +--TEST-- +DateTime: Test correct setup and correct DateTime parameter to date_timestamp_get() +--CREDITS-- +Havard Eide +#PHPTestFest2009 Norway 2009-06-09 \o/ +--INI-- +date.timezone=UTC +--FILE-- + +--EXPECTF-- +bool(true) + + + +Warning: date_timestamp_get() expects parameter 1 to be DateTime, integer given in %s on line %d \ No newline at end of file diff --git a/ext/date/tests/date_timezone_get_basic1.phpt b/ext/date/tests/date_timezone_get_basic1.phpt new file mode 100644 index 0000000..f77352e --- /dev/null +++ b/ext/date/tests/date_timezone_get_basic1.phpt @@ -0,0 +1,35 @@ +--TEST-- +Test date_timezone_get() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_timezone_get() : basic functionality *** +string(13) "Europe/London" +string(16) "America/New_York" +string(19) "America/Los_Angeles" +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/date_timezone_get_error.phpt b/ext/date/tests/date_timezone_get_error.phpt new file mode 100644 index 0000000..1310cbe --- /dev/null +++ b/ext/date/tests/date_timezone_get_error.phpt @@ -0,0 +1,56 @@ +--TEST-- +Test date_timezone_get() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_timezone_get() : error conditions *** + +-- Testing date_timezone_get() function with zero arguments -- + +Warning: date_timezone_get() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing date_timezone_get() function with more than expected no. of arguments -- + +Warning: date_timezone_get() expects exactly 1 parameter, 2 given in %s on line %d +bool(false) + +-- Testing date_timezone_get() function with an invalid values for $object argument -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +Warning: date_timezone_get() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +Warning: date_timezone_get() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_timezone_get_variation1.phpt b/ext/date/tests/date_timezone_get_variation1.phpt new file mode 100644 index 0000000..3b2034e --- /dev/null +++ b/ext/date/tests/date_timezone_get_variation1.phpt @@ -0,0 +1,250 @@ +--TEST-- +Test date_timezone_get() function : usage variation - Passing unexpected values to first argument $object. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +foreach($inputs as $variation =>$object) { + echo "\n-- $variation --\n"; + var_dump( date_timezone_get($object) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_timezone_get() : usage variation - unexpected values to first argument $object*** + +-- int 0 -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- unset var -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- resource -- + +Warning: date_timezone_get() expects parameter 1 to be DateTime, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_timezone_set_basic1.phpt b/ext/date/tests/date_timezone_set_basic1.phpt new file mode 100644 index 0000000..2e9154c --- /dev/null +++ b/ext/date/tests/date_timezone_set_basic1.phpt @@ -0,0 +1,34 @@ +--TEST-- +Test date_timezone_set() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_timezone_set() : basic functionality *** +Default timezone: Europe/London +New timezone: America/Los_Angeles +===DONE=== + diff --git a/ext/date/tests/date_timezone_set_error.phpt b/ext/date/tests/date_timezone_set_error.phpt new file mode 100644 index 0000000..8c9c00d --- /dev/null +++ b/ext/date/tests/date_timezone_set_error.phpt @@ -0,0 +1,64 @@ +--TEST-- +Test date_timezone_set() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing date_timezone_set() : error conditions *** + +-- Testing date_timezone_set() function with zero arguments -- + +Warning: date_timezone_set() expects exactly 2 parameters, 0 given in %s on line %d +bool(false) + +-- Testing date_timezone_set() function with less than expected no. of arguments -- + +Warning: date_timezone_set() expects exactly 2 parameters, 1 given in %s on line %d +bool(false) + +-- Testing date_timezone_set() function with more than expected no. of arguments -- + +Warning: date_timezone_set() expects exactly 2 parameters, 3 given in %s on line %d +bool(false) + +-- Testing date_timezone_set() function with an invalid values for $object argument -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +Warning: date_timezone_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +Warning: date_timezone_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_timezone_set_variation1.phpt b/ext/date/tests/date_timezone_set_variation1.phpt new file mode 100644 index 0000000..cde2d69 --- /dev/null +++ b/ext/date/tests/date_timezone_set_variation1.phpt @@ -0,0 +1,254 @@ +--TEST-- +Test date_timezone_set() function : usage variation - Passing unexpected values to first argument $object. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$timezone = timezone_open("America/Los_Angeles"); + +foreach($inputs as $variation =>$object) { + echo "\n-- $variation --\n"; + var_dump( date_timezone_set($object, $timezone) ); +}; + + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_timezone_set() : usage variation - unexpected values to first argument $object*** + +-- int 0 -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- unset var -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, null given in %s on line %d +bool(false) + +-- resource -- + +Warning: date_timezone_set() expects parameter 1 to be DateTime, resource given in %s on line %d +bool(false) +===DONE=== + diff --git a/ext/date/tests/date_timezone_set_variation2.phpt b/ext/date/tests/date_timezone_set_variation2.phpt new file mode 100644 index 0000000..b85ddef --- /dev/null +++ b/ext/date/tests/date_timezone_set_variation2.phpt @@ -0,0 +1,252 @@ +--TEST-- +Test date_timezone_set() function : usage variation - Passing unexpected values to second argument $timezone. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = date_create("2009-01-30 17:57:32"); + +foreach($inputs as $variation =>$timezone) { + echo "\n-- $variation --\n"; + var_dump( date_timezone_set($object, $timezone) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date_timezone_set() : usage variation - unexpected values to second argument $timezone*** + +-- int 0 -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- unset var -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- resource -- + +Warning: date_timezone_set() expects parameter 2 to be DateTimeZone, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/date_variation1.phpt b/ext/date/tests/date_variation1.phpt new file mode 100644 index 0000000..a719359 --- /dev/null +++ b/ext/date/tests/date_variation1.phpt @@ -0,0 +1,208 @@ +--TEST-- +Test date() function : usage variation - Passing unexpected values to first argument $format. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$timestamp = mktime(10, 44, 30, 2, 27, 2009); + +foreach($inputs as $variation =>$format) { + echo "\n-- $variation --\n"; + var_dump( date($format, $timestamp) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date() : usage variation - unexpected values to first argument $format*** + +-- int 0 -- +string(1) "0" + +-- int 1 -- +string(1) "1" + +-- int 12345 -- +string(5) "12345" + +-- int -12345 -- +string(6) "-12345" + +-- float 10.5 -- +string(4) "10.5" + +-- float -10.5 -- +string(5) "-10.5" + +-- float .5 -- +string(3) "0.5" + +-- empty array -- + +Warning: date() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +string(0) "" + +-- lowercase null -- +string(0) "" + +-- lowercase true -- +string(1) "1" + +-- lowercase false -- +string(0) "" + +-- uppercase TRUE -- +string(1) "1" + +-- uppercase FALSE -- +string(0) "" + +-- empty string DQ -- +string(0) "" + +-- empty string SQ -- +string(0) "" + +-- string DQ -- +string(40) "3028Fri, 27 Feb 2009 10:44:30 +000044210" + +-- string SQ -- +string(40) "3028Fri, 27 Feb 2009 10:44:30 +000044210" + +-- mixed case string -- +string(40) "30GMTFri, 27 Feb 2009 10:44:30 +00000210" + +-- heredoc -- +string(76) "10Europe/LondonFridayFriday2009 52009Fri, 27 Feb 2009 10:44:30 +0000Friday27" + +-- instance of classWithToString -- +string(64) "CFridayam3030 AM 2009b27Europe/London2009-02-27T10:44:30+00:0028" + +-- instance of classWithoutToString -- + +Warning: date() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +-- undefined var -- +string(0) "" + +-- unset var -- +string(0) "" + +-- resource -- + +Warning: date() expects parameter 1 to be string, resource given in %s on line %d +bool(false) +===DONE=== + diff --git a/ext/date/tests/date_variation2.phpt b/ext/date/tests/date_variation2.phpt new file mode 100644 index 0000000..f30e6ed --- /dev/null +++ b/ext/date/tests/date_variation2.phpt @@ -0,0 +1,222 @@ +--TEST-- +Test date() function : usage variation - Passing unexpected values to second argument $timestamp. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$format = "F j, Y, g:i a"; + +foreach($inputs as $variation =>$timestamp) { + echo "\n-- $variation --\n"; + var_dump( date($format, $timestamp) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing date() : usage variation - unexpected values to second argument $timestamp*** + +-- int 0 -- +string(24) "January 1, 1970, 1:00 am" + +-- int 1 -- +string(24) "January 1, 1970, 1:00 am" + +-- int 12345 -- +string(24) "January 1, 1970, 4:25 am" + +-- int -12345 -- +string(26) "December 31, 1969, 9:34 pm" + +-- float 10.5 -- +string(24) "January 1, 1970, 1:00 am" + +-- float -10.5 -- +string(25) "January 1, 1970, 12:59 am" + +-- float .5 -- +string(24) "January 1, 1970, 1:00 am" + +-- empty array -- + +Warning: date() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: date() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: date() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: date() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +string(24) "January 1, 1970, 1:00 am" + +-- lowercase null -- +string(24) "January 1, 1970, 1:00 am" + +-- lowercase true -- +string(24) "January 1, 1970, 1:00 am" + +-- lowercase false -- +string(24) "January 1, 1970, 1:00 am" + +-- uppercase TRUE -- +string(24) "January 1, 1970, 1:00 am" + +-- uppercase FALSE -- +string(24) "January 1, 1970, 1:00 am" + +-- empty string DQ -- + +Warning: date() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: date() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: date() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: date() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: date() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: date() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: date() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: date() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +string(24) "January 1, 1970, 1:00 am" + +-- unset var -- +string(24) "January 1, 1970, 1:00 am" + +-- resource -- + +Warning: date() expects parameter 2 to be long, resource given in %s on line %d +bool(false) +===DONE=== + diff --git a/ext/date/tests/default-timezone-1.phpt b/ext/date/tests/default-timezone-1.phpt new file mode 100644 index 0000000..a53d370 --- /dev/null +++ b/ext/date/tests/default-timezone-1.phpt @@ -0,0 +1,10 @@ +--TEST-- +date.timezone setting [1] +--FILE-- + +--EXPECT-- +1119132944 diff --git a/ext/date/tests/default-timezone-2.phpt b/ext/date/tests/default-timezone-2.phpt new file mode 100644 index 0000000..b414eb2 --- /dev/null +++ b/ext/date/tests/default-timezone-2.phpt @@ -0,0 +1,10 @@ +--TEST-- +date.timezone setting [2] +--FILE-- + +--EXPECT-- +1119125744 diff --git a/ext/date/tests/examine_diff.inc b/ext/date/tests/examine_diff.inc new file mode 100644 index 0000000..c3dcba9 --- /dev/null +++ b/ext/date/tests/examine_diff.inc @@ -0,0 +1,79 @@ + + */ + +/**#@+ + * Which test segments should be displayed? + */ +define('PHPT_DATETIME_SHOW_DIFF', 1); +define('PHPT_DATETIME_SHOW_DAYS', 2); +define('PHPT_DATETIME_SHOW_ADD', 3); +define('PHPT_DATETIME_SHOW_SUB', 4); +/**#@-*/ + +/** + * Provides a consistent interface for executing date diff/add/sub tests + * + * @param string|DateTime $end_date the end date in YYYY-MM-DD format + * (can include time HH:MM:SS) or a DateTime object + * @param string|DateTime $start_date the start date in YYYY-MM-DD format + * (can include time HH:MM:SS) or a DateTime object + * @param string $expect_spec the expected result of the tests, in the + * special interval specification used for this test suite. + * This spec includes a "+" or "-" after the "P" in order to + * indicate which direction to go. + * @param int $expect_days the number of days to compare with the + * interval's "days" property + * @param bool $absolute should the result always be a positive number? + * + * @return void + */ +function examine_diff($end_date, $start_date, $expect_spec, $expect_days, $absolute = false) { + if (is_string($start_date)) { + $start = new DateTime($start_date); + } else { + $start = $start_date; + } + $start_date = $start->format('Y-m-d H:i:s T'); + + if (is_string($end_date)) { + $end = new DateTime($end_date); + } else { + $end = $end_date; + } + $end_date = $end->format('Y-m-d H:i:s T'); + + $expect_interval = new DateInterval('P' . substr($expect_spec, 2)); + if (substr($expect_spec, 1, 1) == '-') { + $expect_interval->invert = true; + } + + if (PHPT_DATETIME_SHOW == PHPT_DATETIME_SHOW_DIFF) { + $result_interval = $start->diff($end, $absolute); + $result_spec = $result_interval->format('P%R%yY%mM%dDT%hH%iM%sS'); + echo "DIFF: $end_date - $start_date = **$result_spec**\n"; + // echo "DIFF: $end_date - $start_date = **$expect_spec**\n"; + } + if (PHPT_DATETIME_SHOW == PHPT_DATETIME_SHOW_DAYS) { + $result_interval = $start->diff($end, $absolute); + $result_days = $result_interval->format('%a'); + echo "DAYS: **$result_days**\n"; + // echo "DAYS: **$expect_days**\n"; + } + if (PHPT_DATETIME_SHOW == PHPT_DATETIME_SHOW_ADD) { + $start->add($expect_interval); + $result_end_date = $start->format('Y-m-d H:i:s T'); + echo "ADD: $start_date + $expect_spec = **$result_end_date**\n"; + // echo "ADD: $start_date + $expect_spec = **$end_date**\n"; + } + if (PHPT_DATETIME_SHOW == PHPT_DATETIME_SHOW_SUB) { + $end->sub($expect_interval); + $result_start_date = $end->format('Y-m-d H:i:s T'); + echo "SUB: $end_date - $expect_spec = **$result_start_date**\n"; + // echo "SUB: $end_date - $expect_spec = **$start_date**\n"; + } +} diff --git a/ext/date/tests/format-negative-timestamp.phpt b/ext/date/tests/format-negative-timestamp.phpt new file mode 100644 index 0000000..5fd6a65 --- /dev/null +++ b/ext/date/tests/format-negative-timestamp.phpt @@ -0,0 +1,24 @@ +--TEST-- +strtotime() - Format: @timestamps +--FILE-- + $max_2) + $new_tm *= -1; + + if (strtotime("@$new_tm") != $new_tm) { + echo "Error when parsing: @$new_tm\n"; + } +} + +echo "done!"; +?> +--EXPECT-- +done! diff --git a/ext/date/tests/getdate_basic.phpt b/ext/date/tests/getdate_basic.phpt new file mode 100644 index 0000000..5d6cc81 --- /dev/null +++ b/ext/date/tests/getdate_basic.phpt @@ -0,0 +1,76 @@ +--TEST-- +Test getdate() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing getdate() : basic functionality *** +array(11) { + ["seconds"]=> + int(10) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(10) +} +array(11) { + ["seconds"]=> + int(%d) + ["minutes"]=> + int(%d) + ["hours"]=> + int(%d) + ["mday"]=> + int(%d) + ["wday"]=> + int(%d) + ["mon"]=> + int(%d) + ["year"]=> + int(%d) + ["yday"]=> + int(%d) + ["weekday"]=> + string(%d) %s + ["month"]=> + string(%d) %s + [0]=> + int(%d) +} +===DONE=== diff --git a/ext/date/tests/getdate_error.phpt b/ext/date/tests/getdate_error.phpt new file mode 100644 index 0000000..149d066 --- /dev/null +++ b/ext/date/tests/getdate_error.phpt @@ -0,0 +1,31 @@ +--TEST-- +Test getdate() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing getdate() : error conditions *** + +-- Testing getdate() function with more than expected no. of arguments -- + +Warning: getdate() expects at most 1 parameter, 2 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/getdate_variation1.phpt b/ext/date/tests/getdate_variation1.phpt new file mode 100644 index 0000000..74754c9 --- /dev/null +++ b/ext/date/tests/getdate_variation1.phpt @@ -0,0 +1,443 @@ +--TEST-- +Test getdate() function : usage variation - Passing unexpected values to first argument timestamp. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( getdate($value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing getdate() : usage variation *** + +--float 10.5-- +array(11) { + ["seconds"]=> + int(10) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(10) +} + +--float -10.5-- +array(11) { + ["seconds"]=> + int(50) + ["minutes"]=> + int(29) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(-10) +} + +--float .5-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(0) +} + +--empty array-- + +Warning: getdate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: getdate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: getdate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: getdate() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(0) +} + +--lowercase null-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(0) +} + +--lowercase true-- +array(11) { + ["seconds"]=> + int(1) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(1) +} + +--lowercase false-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(0) +} + +--uppercase TRUE-- +array(11) { + ["seconds"]=> + int(1) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(1) +} + +--uppercase FALSE-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(0) +} + +--empty string DQ-- + +Warning: getdate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: getdate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: getdate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: getdate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: getdate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: getdate() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: getdate() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: getdate() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(0) +} + +--unset var-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(0) +} +===DONE=== diff --git a/ext/date/tests/getdate_variation2.phpt b/ext/date/tests/getdate_variation2.phpt new file mode 100644 index 0000000..f987d21 --- /dev/null +++ b/ext/date/tests/getdate_variation2.phpt @@ -0,0 +1,114 @@ +--TEST-- +Test getdate() function : usage variation - Passing octal timestamp values +--FILE-- + 05, + 'octal 010' => 010, + 'octal -010' => -010, +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( getdate($value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing getdate() : usage variation *** + +--octal 05-- +array(11) { + ["seconds"]=> + int(5) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(5) +} + +--octal 010-- +array(11) { + ["seconds"]=> + int(8) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(8) +} + +--octal -010-- +array(11) { + ["seconds"]=> + int(52) + ["minutes"]=> + int(29) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(-8) +} +===DONE=== diff --git a/ext/date/tests/getdate_variation3.phpt b/ext/date/tests/getdate_variation3.phpt new file mode 100644 index 0000000..f7d6863 --- /dev/null +++ b/ext/date/tests/getdate_variation3.phpt @@ -0,0 +1,114 @@ +--TEST-- +Test getdate() function : usage variation - Passing hexadcimal timestamp values +--FILE-- + 0x5, + 'hexadcimal 0xCAFE' => 0xCAFE, + 'octal -0xCAFE' => -0xCAFE, +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( getdate($value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing getdate() : usage variation *** + +--hexadcimal 0x5-- +array(11) { + ["seconds"]=> + int(5) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(5) +} + +--hexadcimal 0xCAFE-- +array(11) { + ["seconds"]=> + int(6) + ["minutes"]=> + int(56) + ["hours"]=> + int(19) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(51966) +} + +--octal -0xCAFE-- +array(11) { + ["seconds"]=> + int(54) + ["minutes"]=> + int(3) + ["hours"]=> + int(15) + ["mday"]=> + int(31) + ["wday"]=> + int(3) + ["mon"]=> + int(12) + ["year"]=> + int(1969) + ["yday"]=> + int(364) + ["weekday"]=> + string(9) "Wednesday" + ["month"]=> + string(8) "December" + [0]=> + int(-51966) +} +===DONE=== diff --git a/ext/date/tests/getdate_variation4.phpt b/ext/date/tests/getdate_variation4.phpt new file mode 100644 index 0000000..92719ac --- /dev/null +++ b/ext/date/tests/getdate_variation4.phpt @@ -0,0 +1,141 @@ +--TEST-- +Test getdate() function : usage variation - Verifyig by supplying year-wise sample time stamps since Unix epoch time +--FILE-- + 0, + '01 Jan 1971' => 31536000, + '01 Jan 1972' => 63072000, + '01 Jan 1973' => 94694400, +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( getdate($value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing getdate() : usage variation *** + +--01 Jan 1970-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(0) +} + +--01 Jan 1971-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(5) + ["mon"]=> + int(1) + ["year"]=> + int(1971) + ["yday"]=> + int(0) + ["weekday"]=> + string(6) "Friday" + ["month"]=> + string(7) "January" + [0]=> + int(31536000) +} + +--01 Jan 1972-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(6) + ["mon"]=> + int(1) + ["year"]=> + int(1972) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Saturday" + ["month"]=> + string(7) "January" + [0]=> + int(63072000) +} + +--01 Jan 1973-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(1) + ["mon"]=> + int(1) + ["year"]=> + int(1973) + ["yday"]=> + int(0) + ["weekday"]=> + string(6) "Monday" + ["month"]=> + string(7) "January" + [0]=> + int(94694400) +} +===DONE=== diff --git a/ext/date/tests/getdate_variation5.phpt b/ext/date/tests/getdate_variation5.phpt new file mode 100644 index 0000000..e4524a8 --- /dev/null +++ b/ext/date/tests/getdate_variation5.phpt @@ -0,0 +1,223 @@ +--TEST-- +Test getdate() function : usage variation - Verifyig with different timezones on Unix epoch timestamp +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing getdate() : usage variation *** + +--Pacific/Samoa-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(0) + ["hours"]=> + int(13) + ["mday"]=> + int(31) + ["wday"]=> + int(3) + ["mon"]=> + int(12) + ["year"]=> + int(1969) + ["yday"]=> + int(364) + ["weekday"]=> + string(9) "Wednesday" + ["month"]=> + string(8) "December" + [0]=> + int(0) +} + +--US/Alaska-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(0) + ["hours"]=> + int(14) + ["mday"]=> + int(31) + ["wday"]=> + int(3) + ["mon"]=> + int(12) + ["year"]=> + int(1969) + ["yday"]=> + int(364) + ["weekday"]=> + string(9) "Wednesday" + ["month"]=> + string(8) "December" + [0]=> + int(0) +} + +--Africa/Casablanca-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(0) + ["hours"]=> + int(0) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(0) +} + +--Europe/Moscow-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(0) + ["hours"]=> + int(3) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(0) +} + +--Asia/Hong_Kong-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(0) + ["hours"]=> + int(8) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(0) +} + +--Australia/Brisbane-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(0) + ["hours"]=> + int(10) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(0) +} + +--Pacific/Wallis-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(0) + ["hours"]=> + int(12) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(0) +} +===DONE=== diff --git a/ext/date/tests/getdate_variation6.phpt b/ext/date/tests/getdate_variation6.phpt new file mode 100644 index 0000000..5c03a3b --- /dev/null +++ b/ext/date/tests/getdate_variation6.phpt @@ -0,0 +1,109 @@ +--TEST-- +Test getdate() function : usage variation - Passing strings containing numbers +--FILE-- + '0', + 'String 10.5' => "10.5", + 'String -10.5' => '-10.5', +); + +// loop through each element of the array for timestamp +foreach($inputs as $key => $value) { + echo "\n--$key--\n"; + var_dump( getdate($value) ); +}; +?> +===DONE=== +--EXPECTF-- +*** Testing getdate() : usage variation *** + +--String 0-- +array(11) { + ["seconds"]=> + int(0) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(0) +} + +--String 10.5-- +array(11) { + ["seconds"]=> + int(10) + ["minutes"]=> + int(30) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(10) +} + +--String -10.5-- +array(11) { + ["seconds"]=> + int(50) + ["minutes"]=> + int(29) + ["hours"]=> + int(5) + ["mday"]=> + int(1) + ["wday"]=> + int(4) + ["mon"]=> + int(1) + ["year"]=> + int(1970) + ["yday"]=> + int(0) + ["weekday"]=> + string(8) "Thursday" + ["month"]=> + string(7) "January" + [0]=> + int(-10) +} +===DONE=== diff --git a/ext/date/tests/getdate_variation7.phpt b/ext/date/tests/getdate_variation7.phpt new file mode 100644 index 0000000..5af2dd5 --- /dev/null +++ b/ext/date/tests/getdate_variation7.phpt @@ -0,0 +1,78 @@ +--TEST-- +Test getdate() function : usage variation - Passing high positive and negative float values to timestamp. +--FILE-- + +===DONE=== +--EXPECTREGEX-- + +\*\*\* Testing getdate\(\) : usage variation \*\*\* + +-- Testing getdate\(\) function by passing float 12.3456789000e10 value to timestamp -- +array\(11\) { + \["seconds"\]=> + int\((36|0)\) + \["minutes"\]=> + int\((43|0)\) + \["hours"\]=> + int\((10|6)\) + \["mday"\]=> + int\((26|11)\) + \["wday"\]=> + int\((2|6)\) + \["mon"\]=> + int\(3\) + \["year"\]=> + int\((1935|5882)\) + \["yday"\]=> + int\((84|69)\) + \["weekday"\]=> + string\((7|8)\) "(Tuesday|Saturday)" + \["month"\]=> + string\(5\) "March" + \[0\]=> + int\((-1097262584|123456789000)\) +} + +-- Testing getdate\(\) function by passing float -12.3456789000e10 value to timestamp -- +array\(11\) { + \["seconds"\]=> + int\((44|12|20)\) + \["minutes"\]=> + int\((39|23)\) + \["hours"\]=> + int\((0|2|5)\) + \["mday"\]=> + int\((9|14|23)\) + \["wday"\]=> + int\((6|-4)\) + \["mon"\]=> + int\((10|12)\) + \["year"\]=> + int\((2004|1901|-1943)\) + \["yday"\]=> + int\((282|347|295)\) + \["weekday"\]=> + string\((8|7)\) "(Saturday|Unknown)" + \["month"\]=> + string\((7|8)\) "(October|December)" + \[0\]=> + int\((1097262584|-2147483648|-123456789000)\) +} +===DONE=== diff --git a/ext/date/tests/gettimeofday_basic.phpt b/ext/date/tests/gettimeofday_basic.phpt new file mode 100644 index 0000000..fe04f01 --- /dev/null +++ b/ext/date/tests/gettimeofday_basic.phpt @@ -0,0 +1,55 @@ +--TEST-- +Test gettimeofday() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gettimeofday() : basic functionality *** +float(%f) +array(4) { + ["sec"]=> + int(%d) + ["usec"]=> + int(%d) + ["minuteswest"]=> + int(-330) + ["dsttime"]=> + int(0) +} +array(4) { + ["sec"]=> + int(%d) + ["usec"]=> + int(%d) + ["minuteswest"]=> + int(-330) + ["dsttime"]=> + int(0) +} +===DONE=== diff --git a/ext/date/tests/gettimeofday_error.phpt b/ext/date/tests/gettimeofday_error.phpt new file mode 100644 index 0000000..558a381 --- /dev/null +++ b/ext/date/tests/gettimeofday_error.phpt @@ -0,0 +1,29 @@ +--TEST-- +Test gettimeofday() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gettimeofday() : error conditions *** + +-- Testing gettimeofday() function with more than expected no. of arguments -- + +Warning: gettimeofday() expects at most 1 parameter, 2 given in %s on line %d +NULL +===DONE=== diff --git a/ext/date/tests/gettimeofday_variation1.phpt b/ext/date/tests/gettimeofday_variation1.phpt new file mode 100644 index 0000000..f494a25 --- /dev/null +++ b/ext/date/tests/gettimeofday_variation1.phpt @@ -0,0 +1,284 @@ +--TEST-- +Test gettimeofday() function : usage variation - Passing unexpected values to get_as_float argument +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float 12.3456789000e10' => 12.3456789000e10, + 'float -12.3456789000e10' => -12.3456789000e10, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for get_as_float + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gettimeofday($value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gettimeofday() : usage variation *** + +--int 0-- +array(4) { + ["sec"]=> + int(%d) + ["usec"]=> + int(%d) + ["minuteswest"]=> + int(-330) + ["dsttime"]=> + int(0) +} + +--int 1-- +float(%f) + +--int 12345-- +float(%f) + +--int -12345-- +float(%f) + +--float 10.5-- +float(%f) + +--float -10.5-- +float(%f) + +--float 12.3456789000e10-- +float(%f) + +--float -12.3456789000e10-- +float(%f) + +--float .5-- +float(%f) + +--empty array-- + +Warning: gettimeofday() expects parameter 1 to be boolean, array given in %s on line %d +NULL + +--int indexed array-- + +Warning: gettimeofday() expects parameter 1 to be boolean, array given in %s on line %d +NULL + +--associative array-- + +Warning: gettimeofday() expects parameter 1 to be boolean, array given in %s on line %d +NULL + +--nested arrays-- + +Warning: gettimeofday() expects parameter 1 to be boolean, array given in %s on line %d +NULL + +--uppercase NULL-- +array(4) { + ["sec"]=> + int(%d) + ["usec"]=> + int(%d) + ["minuteswest"]=> + int(-330) + ["dsttime"]=> + int(0) +} + +--lowercase null-- +array(4) { + ["sec"]=> + int(%d) + ["usec"]=> + int(%d) + ["minuteswest"]=> + int(-330) + ["dsttime"]=> + int(0) +} + +--lowercase true-- +float(%f) + +--lowercase false-- +array(4) { + ["sec"]=> + int(%d) + ["usec"]=> + int(%d) + ["minuteswest"]=> + int(-330) + ["dsttime"]=> + int(0) +} + +--uppercase TRUE-- +float(%f) + +--uppercase FALSE-- +array(4) { + ["sec"]=> + int(%d) + ["usec"]=> + int(%d) + ["minuteswest"]=> + int(-330) + ["dsttime"]=> + int(0) +} + +--empty string DQ-- +array(4) { + ["sec"]=> + int(%d) + ["usec"]=> + int(%d) + ["minuteswest"]=> + int(-330) + ["dsttime"]=> + int(0) +} + +--empty string SQ-- +array(4) { + ["sec"]=> + int(%d) + ["usec"]=> + int(%d) + ["minuteswest"]=> + int(-330) + ["dsttime"]=> + int(0) +} + +--string DQ-- +float(%f) + +--string SQ-- +float(%f) + +--mixed case string-- +float(%f) + +--heredoc-- +float(%f) + +--instance of classWithToString-- + +Warning: gettimeofday() expects parameter 1 to be boolean, object given in %s on line %d +NULL + +--instance of classWithoutToString-- + +Warning: gettimeofday() expects parameter 1 to be boolean, object given in %s on line %d +NULL + +--undefined var-- +array(4) { + ["sec"]=> + int(%d) + ["usec"]=> + int(%d) + ["minuteswest"]=> + int(-330) + ["dsttime"]=> + int(0) +} + +--unset var-- +array(4) { + ["sec"]=> + int(%d) + ["usec"]=> + int(%d) + ["minuteswest"]=> + int(-330) + ["dsttime"]=> + int(0) +} +===DONE=== diff --git a/ext/date/tests/gmdate_basic.phpt b/ext/date/tests/gmdate_basic.phpt new file mode 100644 index 0000000..ae036ca --- /dev/null +++ b/ext/date/tests/gmdate_basic.phpt @@ -0,0 +1,30 @@ +--TEST-- +Test gmdate() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmdate() : basic functionality *** +string(24) "2008-08-08T08:08:08+0000" +string(%d) "%s" +===DONE=== diff --git a/ext/date/tests/gmdate_error.phpt b/ext/date/tests/gmdate_error.phpt new file mode 100644 index 0000000..fbee071 --- /dev/null +++ b/ext/date/tests/gmdate_error.phpt @@ -0,0 +1,41 @@ +--TEST-- +Test gmdate() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmdate() : error conditions *** + +-- Testing gmdate() function with Zero arguments -- + +Warning: gmdate() expects at least 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing gmdate() function with more than expected no. of arguments -- + +Warning: gmdate() expects at most 2 parameters, 3 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/gmdate_variation1.phpt b/ext/date/tests/gmdate_variation1.phpt new file mode 100644 index 0000000..e2e2331 --- /dev/null +++ b/ext/date/tests/gmdate_variation1.phpt @@ -0,0 +1,221 @@ +--TEST-- +Test gmdate() function : usage variation - Passing unexpected values to format argument . +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float 12.3456789000e10' => 12.3456789000e10, + 'float -12.3456789000e10' => -12.3456789000e10, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for format + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmdate($value, $timestamp) ); + var_dump( gmdate($value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmdate() : usage variation *** + +--int 0-- +string(1) "0" +string(1) "0" + +--int 1-- +string(1) "1" +string(1) "1" + +--int 12345-- +string(5) "12345" +string(5) "12345" + +--int -12345-- +string(6) "-12345" +string(6) "-12345" + +--float 10.5-- +string(4) "10.5" +string(4) "10.5" + +--float -10.5-- +string(5) "-10.5" +string(5) "-10.5" + +--float 12.3456789000e10-- +string(12) "123456789000" +string(12) "123456789000" + +--float -12.3456789000e10-- +string(13) "-123456789000" +string(13) "-123456789000" + +--float .5-- +string(3) "0.5" +string(3) "0.5" + +--empty array-- + +Warning: gmdate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: gmdate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: gmdate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: gmdate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: gmdate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: gmdate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: gmdate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: gmdate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--uppercase NULL-- +string(0) "" +string(0) "" + +--lowercase null-- +string(0) "" +string(0) "" + +--lowercase true-- +string(1) "1" +string(1) "1" + +--lowercase false-- +string(0) "" +string(0) "" + +--uppercase TRUE-- +string(1) "1" +string(1) "1" + +--uppercase FALSE-- +string(0) "" +string(0) "" + +--empty string DQ-- +string(0) "" +string(0) "" + +--empty string SQ-- +string(0) "" +string(0) "" + +--instance of classWithToString-- +string(53) "CFridayam0808 AM 2008b8UTC2008-08-08T08:08:08+00:0031" +string(%d) "%s" + +--instance of classWithoutToString-- + +Warning: gmdate() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +Warning: gmdate() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +--undefined var-- +string(0) "" +string(0) "" + +--unset var-- +string(0) "" +string(0) "" +===DONE=== diff --git a/ext/date/tests/gmdate_variation10.phpt b/ext/date/tests/gmdate_variation10.phpt new file mode 100644 index 0000000..d529836 --- /dev/null +++ b/ext/date/tests/gmdate_variation10.phpt @@ -0,0 +1,69 @@ +--TEST-- +Test gmdate() function : usage variation - Passing Timezone format options to format argument. +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmdate() : usage variation *** + +-- Testing gmdate() function with Timezone identifier format -- +string(3) "UTC" +string(3) "UTC" + +-- Testing gmdate() function with checking whether date is in daylight saving time format -- +string(1) "%d" +string(1) "%d" + +-- Testing gmdate() function with difference to GMT in hours format -- +string(5) "+0000" +string(5) "+0000" + +-- Testing gmdate() function with Difference to GMT in hours using colon as separator format -- +string(6) "+00:00" +string(6) "+00:00" + +-- Testing gmdate() function with timezone abbreviation format -- +string(3) "GMT" +string(3) "GMT" + +-- Testing gmdate() function with timezone offset format -- +string(3) "GMT" +string(3) "GMT" +===DONE=== diff --git a/ext/date/tests/gmdate_variation11.phpt b/ext/date/tests/gmdate_variation11.phpt new file mode 100644 index 0000000..a952090 --- /dev/null +++ b/ext/date/tests/gmdate_variation11.phpt @@ -0,0 +1,45 @@ +--TEST-- +Test gmdate() function : usage variation - Passing Full Date/Time format options to format argument. +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmdate() : usage variation *** + +-- Testing gmdate() function with ISO 8601 date format -- +string(%d) "%s" +string(25) "2008-08-08T08:08:08+00:00" + +-- Testing gmdate() function with RFC 2822 date format -- +string(%d) "%s" +string(31) "Fri, 08 Aug 2008 08:08:08 +0000" + +-- Testing gmdate() function with seconds since Unix Epoch format -- +string(%d) "%d" +string(10) "1218182888" +===DONE=== diff --git a/ext/date/tests/gmdate_variation12.phpt b/ext/date/tests/gmdate_variation12.phpt new file mode 100644 index 0000000..8f0146f --- /dev/null +++ b/ext/date/tests/gmdate_variation12.phpt @@ -0,0 +1,48 @@ +--TEST-- +Test gmdate() function : usage variation - Valid and invalid range of timestamp. +--FILE-- + +===DONE=== +--EXPECTREGEX-- +\*\*\* Testing gmdate\(\) : usage variation \*\*\* + +-- Testing gmdate\(\) function with minimum range of timestamp -- +string\(24\) "1901-12-13T20:45:54\+0000" + +-- Testing gmdate\(\) function with less than the range of timestamp -- +string\(24\) "(1970-01-01T00:00:00\+0000|1901-12-13T20:45:50\+0000)" + +-- Testing gmdate\(\) function with maximum range of timestamp -- +string\(24\) "2038-01-19T03:14:07\+0000" + +-- Testing gmdate\(\) function with greater than the range of timestamp -- +string\(24\) "(1970-01-01T00:00:00\+0000|2038-01-19T03:14:10\+0000)" +===DONE=== diff --git a/ext/date/tests/gmdate_variation13.phpt b/ext/date/tests/gmdate_variation13.phpt new file mode 100644 index 0000000..5a19ae2 --- /dev/null +++ b/ext/date/tests/gmdate_variation13.phpt @@ -0,0 +1,82 @@ +--TEST-- +Test gmdate() function : usage variation - Passing predefined constants to format argument. +--FILE-- + DATE_ATOM, + 'DATE_COOKIE Constant' => DATE_COOKIE, + 'DATE_RFC822 Constant' => DATE_RFC822, + 'DATE_RFC850 Constant' => DATE_RFC850, + 'DATE_RFC1036 Constant' => DATE_RFC1036, + 'DATE_RFC1123 Constant' => DATE_RFC1123, + 'DATE_RFC2822 Constant' => DATE_RFC2822, + 'DATE_RFC3339 Constant' => DATE_RFC3339, + 'DATE_RSS Constant' => DATE_RSS, + 'DATE_W3C Constant' => DATE_W3C, +); + +// loop through each element of the array for format +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmdate($value, $timestamp) ); + var_dump( gmdate($value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmdate() : usage variation *** + +--DATE_ATOM Constant-- +string(25) "2008-08-08T08:08:08+00:00" +string(%d) "%s" + +--DATE_COOKIE Constant-- +string(30) "Friday, 08-Aug-08 08:08:08 GMT" +string(%d) "%s" + +--DATE_RFC822 Constant-- +string(29) "Fri, 08 Aug 08 08:08:08 +0000" +string(%d) "%s" + +--DATE_RFC850 Constant-- +string(30) "Friday, 08-Aug-08 08:08:08 GMT" +string(%d) "%s" + +--DATE_RFC1036 Constant-- +string(29) "Fri, 08 Aug 08 08:08:08 +0000" +string(%d) "%s" + +--DATE_RFC1123 Constant-- +string(31) "Fri, 08 Aug 2008 08:08:08 +0000" +string(%d) "%s" + +--DATE_RFC2822 Constant-- +string(31) "Fri, 08 Aug 2008 08:08:08 +0000" +string(%d) "%s" + +--DATE_RFC3339 Constant-- +string(25) "2008-08-08T08:08:08+00:00" +string(%d) "%s" + +--DATE_RSS Constant-- +string(31) "Fri, 08 Aug 2008 08:08:08 +0000" +string(%d) "%s" + +--DATE_W3C Constant-- +string(25) "2008-08-08T08:08:08+00:00" +string(%d) "%s" +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/gmdate_variation14.phpt b/ext/date/tests/gmdate_variation14.phpt new file mode 100644 index 0000000..5b62a82 --- /dev/null +++ b/ext/date/tests/gmdate_variation14.phpt @@ -0,0 +1,34 @@ +--TEST-- +Test gmdate() function : usage variation - Passing high positive and negetive float values to timestamp. +--FILE-- + +===DONE=== +--EXPECTREGEX-- +\*\*\* Testing gmdate\(\) : usage variation \*\*\* + +-- Testing gmdate\(\) function with float 12.3456789000e10 to timestamp -- +string\((24|25)\) "(1935-03-26T04:50:16\+0000|5882-03-11T00:30:00\+0000)" + +-- Testing gmdate\(\) function with float -12.3456789000e10 to timestamp -- +string\((24|25)\) "(2004-10-08T19:09:44\+0000|1901-12-13T20:45:52\+0000|-1943-10-22T23:30:00\+0000)" +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/gmdate_variation2.phpt b/ext/date/tests/gmdate_variation2.phpt new file mode 100644 index 0000000..c52de9d --- /dev/null +++ b/ext/date/tests/gmdate_variation2.phpt @@ -0,0 +1,210 @@ +--TEST-- +Test gmdate() function : usage variation - Passing unexpected values to timestamp argument. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmdate($format, $value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmdate() : usage variation *** + +--int 0-- +string(24) "1970-01-01T00:00:00+0000" + +--int 1-- +string(24) "1970-01-01T00:00:01+0000" + +--int 12345-- +string(24) "1970-01-01T03:25:45+0000" + +--int -12345-- +string(24) "1969-12-31T20:34:15+0000" + +--float 10.5-- +string(24) "1970-01-01T00:00:10+0000" + +--float -10.5-- +string(24) "1969-12-31T23:59:50+0000" + +--float .5-- +string(24) "1970-01-01T00:00:00+0000" + +--empty array-- + +Warning: gmdate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: gmdate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: gmdate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: gmdate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +string(24) "1970-01-01T00:00:00+0000" + +--lowercase null-- +string(24) "1970-01-01T00:00:00+0000" + +--lowercase true-- +string(24) "1970-01-01T00:00:01+0000" + +--lowercase false-- +string(24) "1970-01-01T00:00:00+0000" + +--uppercase TRUE-- +string(24) "1970-01-01T00:00:01+0000" + +--uppercase FALSE-- +string(24) "1970-01-01T00:00:00+0000" + +--empty string DQ-- + +Warning: gmdate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: gmdate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: gmdate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: gmdate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: gmdate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: gmdate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: gmdate() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: gmdate() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +string(24) "1970-01-01T00:00:00+0000" + +--unset var-- +string(24) "1970-01-01T00:00:00+0000" +===DONE=== diff --git a/ext/date/tests/gmdate_variation3.phpt b/ext/date/tests/gmdate_variation3.phpt new file mode 100644 index 0000000..a93d6e9 --- /dev/null +++ b/ext/date/tests/gmdate_variation3.phpt @@ -0,0 +1,59 @@ +--TEST-- +Test gmdate() function : usage variation - Passing numeric representation of day formats. +--FILE-- + 'd', + 'Day without leading zeros' => 'j', + 'ISO representation' => 'N', + 'Numeric representation of day' => 'w', + 'Day of the year' => 'z' +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmdate($value) ); + var_dump( gmdate($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmdate() : usage variation *** + +--Day with leading zeros-- +string(%d) "%d" +string(2) "08" + +--Day without leading zeros-- +string(%d) "%d" +string(1) "8" + +--ISO representation-- +string(%d) "%d" +string(1) "5" + +--Numeric representation of day-- +string(%d) "%d" +string(1) "5" + +--Day of the year-- +string(%d) "%d" +string(3) "220" +===DONE=== diff --git a/ext/date/tests/gmdate_variation4.phpt b/ext/date/tests/gmdate_variation4.phpt new file mode 100644 index 0000000..bb97b56 --- /dev/null +++ b/ext/date/tests/gmdate_variation4.phpt @@ -0,0 +1,45 @@ +--TEST-- +Test gmdate() function : usage variation - Passing textual representation of day formats. +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmdate() : usage variation *** + +-- Testing gmdate() function with partial textual representation of day -- +string(%d) "%s" +string(3) "Fri" + +-- Testing gmdate() function with full textual representation of day -- +string(%d) "%s" +string(6) "Friday" + +-- Testing gmdate() function with English ordinal suffix -- +string(%d) "%s" +string(2) "th" +===DONE=== diff --git a/ext/date/tests/gmdate_variation5.phpt b/ext/date/tests/gmdate_variation5.phpt new file mode 100644 index 0000000..d40488a --- /dev/null +++ b/ext/date/tests/gmdate_variation5.phpt @@ -0,0 +1,29 @@ +--TEST-- +Test gmdate() function : usage variation - Passing Week representation to format. +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmdate() : usage variation *** + +-- Testing gmdate() function with ISO-8601 week number of year format -- +string(%d) "%d" +string(2) "32" +===DONE=== diff --git a/ext/date/tests/gmdate_variation6.phpt b/ext/date/tests/gmdate_variation6.phpt new file mode 100644 index 0000000..f5b63a5 --- /dev/null +++ b/ext/date/tests/gmdate_variation6.phpt @@ -0,0 +1,61 @@ +--TEST-- +Test gmdate() function : usage variation - Passing Month format options to format argument. +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmdate() : usage variation *** + +-- Testing gmdate() function with full textual representation of month format -- +string(%d) "%s" +string(6) "August" + +-- Testing gmdate() function with numeric representation of month format -- +string(%d) "%d" +string(2) "08" + +-- Testing gmdate() function with short textual representation of month format -- +string(%d) "%s" +string(3) "Aug" + +-- Testing gmdate() function with numeric representation of month without leading zeros format -- +string(%d) "%d" +string(1) "8" + +-- Testing gmdate() function with number of days in a month format -- +string(%d) "%d" +string(2) "31" +===DONE=== diff --git a/ext/date/tests/gmdate_variation7.phpt b/ext/date/tests/gmdate_variation7.phpt new file mode 100644 index 0000000..8d9c1b0 --- /dev/null +++ b/ext/date/tests/gmdate_variation7.phpt @@ -0,0 +1,60 @@ +--TEST-- +Test gmdate() function : usage variation - Passing Year format options to format argument. +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmdate() : usage variation *** + +-- Testing gmdate() function with checking non leap year using Leap Year format -- +string(1) "0" + +-- Testing gmdate() function with checking leap year using Leap Year format -- +string(1) "%d" +string(1) "1" + +-- Testing gmdate() function with ISO-8601 year number format -- +string(4) "%d" +string(4) "2008" + +-- Testing gmdate() function with full numeric representation of year format -- +string(4) "%d" +string(4) "2008" + +-- Testing gmdate() function with 2 digit representation year format -- +string(2) "%d" +string(2) "08" +===DONE=== diff --git a/ext/date/tests/gmdate_variation8.phpt b/ext/date/tests/gmdate_variation8.phpt new file mode 100644 index 0000000..8d9c1b0 --- /dev/null +++ b/ext/date/tests/gmdate_variation8.phpt @@ -0,0 +1,60 @@ +--TEST-- +Test gmdate() function : usage variation - Passing Year format options to format argument. +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmdate() : usage variation *** + +-- Testing gmdate() function with checking non leap year using Leap Year format -- +string(1) "0" + +-- Testing gmdate() function with checking leap year using Leap Year format -- +string(1) "%d" +string(1) "1" + +-- Testing gmdate() function with ISO-8601 year number format -- +string(4) "%d" +string(4) "2008" + +-- Testing gmdate() function with full numeric representation of year format -- +string(4) "%d" +string(4) "2008" + +-- Testing gmdate() function with 2 digit representation year format -- +string(2) "%d" +string(2) "08" +===DONE=== diff --git a/ext/date/tests/gmdate_variation9.phpt b/ext/date/tests/gmdate_variation9.phpt new file mode 100644 index 0000000..e210557 --- /dev/null +++ b/ext/date/tests/gmdate_variation9.phpt @@ -0,0 +1,81 @@ +--TEST-- +Test gmdate() function : usage variation - Passing Time format options to format argument. +--FILE-- + 'a', + 'Uppercase Ante meridiem and post meridiem' => 'a', + 'Swatch Internet time' => 'B', + '12-hour format without leading zeros' => 'g', + '24-hour format without leading zeros' => 'G', + '12-hour format with leading zeros' => 'h', + '24-hour format with leading zeros' => 'H', + 'Minutes with leading zeros' => 'i', + 'Seconds with leading zeros' => 's', + 'Milliseconds' => 'u', +); + +foreach($time_formats as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmdate($value) ); + var_dump( gmdate($value, $timestamp) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing gmdate() : usage variation *** + +--Lowercase Ante meridiem and post meridiem-- +string(2) "%s" +string(2) "am" + +--Uppercase Ante meridiem and post meridiem-- +string(2) "%s" +string(2) "am" + +--Swatch Internet time-- +string(%d) "%d" +string(3) "380" + +--12-hour format without leading zeros-- +string(%d) "%d" +string(1) "8" + +--24-hour format without leading zeros-- +string(%d) "%d" +string(1) "8" + +--12-hour format with leading zeros-- +string(%d) "%d" +string(2) "08" + +--24-hour format with leading zeros-- +string(2) "%d" +string(2) "08" + +--Minutes with leading zeros-- +string(2) "%d" +string(2) "08" + +--Seconds with leading zeros-- +string(2) "%d" +string(2) "08" + +--Milliseconds-- +string(%d) "%d" +string(6) "000000" +===DONE=== diff --git a/ext/date/tests/gmmktime_basic.phpt b/ext/date/tests/gmmktime_basic.phpt new file mode 100644 index 0000000..81abb5f --- /dev/null +++ b/ext/date/tests/gmmktime_basic.phpt @@ -0,0 +1,35 @@ +--TEST-- +Test gmmktime() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmmktime() : basic functionality *** +int(1218182888) + +Strict Standards: gmmktime(): You should be using the time() function instead in %s on line %d +int(%d) +===DONE=== diff --git a/ext/date/tests/gmmktime_error.phpt b/ext/date/tests/gmmktime_error.phpt new file mode 100644 index 0000000..9f5882d --- /dev/null +++ b/ext/date/tests/gmmktime_error.phpt @@ -0,0 +1,39 @@ +--TEST-- +Test gmmktime() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmmktime() : error conditions *** + +-- Testing gmmktime() function with more than expected no. of arguments -- + +Deprecated: gmmktime(): The is_dst parameter is deprecated in %s on line %d +int(1218182888) + +Warning: gmmktime() expects at most 7 parameters, 8 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/gmmktime_variation1.phpt b/ext/date/tests/gmmktime_variation1.phpt new file mode 100644 index 0000000..f84d99b --- /dev/null +++ b/ext/date/tests/gmmktime_variation1.phpt @@ -0,0 +1,194 @@ +--TEST-- +Test gmmktime() function : usage variation - Passing unexpected values to first argument hour. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for hour + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmmktime($value, $min, $sec, $mon, $day, $year) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmmktime() : usage variation *** + +--float 10.5-- +int(1218190088) + +--float -10.5-- +int(1218118088) + +--float .5-- +int(1218154088) + +--empty array-- + +Warning: gmmktime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: gmmktime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: gmmktime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: gmmktime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +int(1218154088) + +--lowercase null-- +int(1218154088) + +--lowercase true-- +int(1218157688) + +--lowercase false-- +int(1218154088) + +--uppercase TRUE-- +int(1218157688) + +--uppercase FALSE-- +int(1218154088) + +--empty string DQ-- + +Warning: gmmktime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: gmmktime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: gmmktime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: gmmktime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: gmmktime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: gmmktime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: gmmktime() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: gmmktime() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +int(1218154088) + +--unset var-- +int(1218154088) +===DONE=== diff --git a/ext/date/tests/gmmktime_variation2.phpt b/ext/date/tests/gmmktime_variation2.phpt new file mode 100644 index 0000000..93b87f6 --- /dev/null +++ b/ext/date/tests/gmmktime_variation2.phpt @@ -0,0 +1,194 @@ +--TEST-- +Test gmmktime() function : usage variation - Passing unexpected values to second argument minute. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for min + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmmktime($hour, $value, $sec, $mon, $day, $year) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmmktime() : usage variation *** + +--float 10.5-- +int(1218183008) + +--float -10.5-- +int(1218181808) + +--float .5-- +int(1218182408) + +--empty array-- + +Warning: gmmktime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: gmmktime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: gmmktime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: gmmktime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +int(1218182408) + +--lowercase null-- +int(1218182408) + +--lowercase true-- +int(1218182468) + +--lowercase false-- +int(1218182408) + +--uppercase TRUE-- +int(1218182468) + +--uppercase FALSE-- +int(1218182408) + +--empty string DQ-- + +Warning: gmmktime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: gmmktime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: gmmktime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: gmmktime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: gmmktime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: gmmktime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: gmmktime() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: gmmktime() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +int(1218182408) + +--unset var-- +int(1218182408) +===DONE=== diff --git a/ext/date/tests/gmmktime_variation3.phpt b/ext/date/tests/gmmktime_variation3.phpt new file mode 100644 index 0000000..d180e82 --- /dev/null +++ b/ext/date/tests/gmmktime_variation3.phpt @@ -0,0 +1,194 @@ +--TEST-- +Test gmmktime() function : usage variation - Passing unexpected values to third argument seconds. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for sec + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmmktime($hour, $min, $value, $mon, $day, $year) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmmktime() : usage variation *** + +--float 10.5-- +int(1218182890) + +--float -10.5-- +int(1218182870) + +--float .5-- +int(1218182880) + +--empty array-- + +Warning: gmmktime() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: gmmktime() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: gmmktime() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: gmmktime() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +int(1218182880) + +--lowercase null-- +int(1218182880) + +--lowercase true-- +int(1218182881) + +--lowercase false-- +int(1218182880) + +--uppercase TRUE-- +int(1218182881) + +--uppercase FALSE-- +int(1218182880) + +--empty string DQ-- + +Warning: gmmktime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: gmmktime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: gmmktime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: gmmktime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: gmmktime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: gmmktime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: gmmktime() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: gmmktime() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +int(1218182880) + +--unset var-- +int(1218182880) +===DONE=== diff --git a/ext/date/tests/gmmktime_variation4.phpt b/ext/date/tests/gmmktime_variation4.phpt new file mode 100644 index 0000000..9093119 --- /dev/null +++ b/ext/date/tests/gmmktime_variation4.phpt @@ -0,0 +1,194 @@ +--TEST-- +Test gmmktime() function : usage variation - Passing unexpected values to fourth argument month. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for mon + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmmktime($hour, $min, $sec, $value, $day, $year) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmmktime() : usage variation *** + +--float 10.5-- +int(1223453288) + +--float -10.5-- +int(1170922088) + +--float .5-- +int(1197101288) + +--empty array-- + +Warning: gmmktime() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: gmmktime() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: gmmktime() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: gmmktime() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +int(1197101288) + +--lowercase null-- +int(1197101288) + +--lowercase true-- +int(1199779688) + +--lowercase false-- +int(1197101288) + +--uppercase TRUE-- +int(1199779688) + +--uppercase FALSE-- +int(1197101288) + +--empty string DQ-- + +Warning: gmmktime() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: gmmktime() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: gmmktime() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: gmmktime() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: gmmktime() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: gmmktime() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: gmmktime() expects parameter 4 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: gmmktime() expects parameter 4 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +int(1197101288) + +--unset var-- +int(1197101288) +===DONE=== diff --git a/ext/date/tests/gmmktime_variation5.phpt b/ext/date/tests/gmmktime_variation5.phpt new file mode 100644 index 0000000..dd1ca3e --- /dev/null +++ b/ext/date/tests/gmmktime_variation5.phpt @@ -0,0 +1,194 @@ +--TEST-- +Test gmmktime() function : usage variation - Passing unexpected values to fifth argument day. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for day + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmmktime($hour, $min, $sec, $mon, $value, $year) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmmktime() : usage variation *** + +--float 10.5-- +int(1218355688) + +--float -10.5-- +int(1216627688) + +--float .5-- +int(1217491688) + +--empty array-- + +Warning: gmmktime() expects parameter 5 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: gmmktime() expects parameter 5 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: gmmktime() expects parameter 5 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: gmmktime() expects parameter 5 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +int(1217491688) + +--lowercase null-- +int(1217491688) + +--lowercase true-- +int(1217578088) + +--lowercase false-- +int(1217491688) + +--uppercase TRUE-- +int(1217578088) + +--uppercase FALSE-- +int(1217491688) + +--empty string DQ-- + +Warning: gmmktime() expects parameter 5 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: gmmktime() expects parameter 5 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: gmmktime() expects parameter 5 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: gmmktime() expects parameter 5 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: gmmktime() expects parameter 5 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: gmmktime() expects parameter 5 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: gmmktime() expects parameter 5 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: gmmktime() expects parameter 5 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +int(1217491688) + +--unset var-- +int(1217491688) +===DONE=== diff --git a/ext/date/tests/gmmktime_variation6.phpt b/ext/date/tests/gmmktime_variation6.phpt new file mode 100644 index 0000000..4877556 --- /dev/null +++ b/ext/date/tests/gmmktime_variation6.phpt @@ -0,0 +1,190 @@ +--TEST-- +Test gmmktime() function : usage variation - Passing unexpected values to sixth argument year. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // float data + 'float 10.5' => 10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for year + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmmktime($hour, $min, $sec, $mon, $day, $value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmmktime() : usage variation *** + +--float 10.5-- +int(1281254888) + +--float .5-- +int(965722088) + +--empty array-- + +Warning: gmmktime() expects parameter 6 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: gmmktime() expects parameter 6 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: gmmktime() expects parameter 6 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: gmmktime() expects parameter 6 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +int(965722088) + +--lowercase null-- +int(965722088) + +--lowercase true-- +int(997258088) + +--lowercase false-- +int(965722088) + +--uppercase TRUE-- +int(997258088) + +--uppercase FALSE-- +int(965722088) + +--empty string DQ-- + +Warning: gmmktime() expects parameter 6 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: gmmktime() expects parameter 6 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: gmmktime() expects parameter 6 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: gmmktime() expects parameter 6 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: gmmktime() expects parameter 6 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: gmmktime() expects parameter 6 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: gmmktime() expects parameter 6 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: gmmktime() expects parameter 6 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +int(965722088) + +--unset var-- +int(965722088) +===DONE=== diff --git a/ext/date/tests/gmmktime_variation7.phpt b/ext/date/tests/gmmktime_variation7.phpt new file mode 100644 index 0000000..3d0d25a --- /dev/null +++ b/ext/date/tests/gmmktime_variation7.phpt @@ -0,0 +1,54 @@ +--TEST-- +Test gmmktime() function : usage variation - Checking with few optional arguments. +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmmktime() : usage variation *** + +-- Testing gmmktime() function with one optional argument -- +int(%d) + +-- Testing gmmktime() function with two optional argument -- +int(%d) + +-- Testing gmmktime() function with three optional argument -- +int(%d) + +-- Testing gmmktime() function with four optional argument -- +int(%d) + +-- Testing gmmktime() function with five optional argument -- +int(%d) +===DONE=== diff --git a/ext/date/tests/gmmktime_variation8.phpt b/ext/date/tests/gmmktime_variation8.phpt new file mode 100644 index 0000000..b0c56a1 --- /dev/null +++ b/ext/date/tests/gmmktime_variation8.phpt @@ -0,0 +1,44 @@ +--TEST-- +Test gmmktime() function : usage variation - Passing octal and hexadecimal values to arguments. +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmmktime() : usage variation *** + +-- Testing gmmktime() function with supplying octal values to arguments -- +int(1218182888) + +-- Testing gmmktime() function with supplying hexa decimal values to arguments -- +int(1218182888) +===DONE=== diff --git a/ext/date/tests/gmmktime_variation9.phpt b/ext/date/tests/gmmktime_variation9.phpt new file mode 100644 index 0000000..fa463e0 --- /dev/null +++ b/ext/date/tests/gmmktime_variation9.phpt @@ -0,0 +1,62 @@ +--TEST-- +Test gmmktime() function : usage variation - Passing positive and negative float values to arguments. +--FILE-- + 123456, + 'float -123456' => -123456, + 'float -10.5' => -10.5, +); + +// loop through each element of the array for min +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmmktime($value, $min, $sec, $mon, $day, $year) ); + var_dump( gmmktime($hour, $value, $sec, $mon, $day, $year) ); + var_dump( gmmktime($hour, $min, $value, $mon, $day, $year) ); + var_dump( gmmktime($hour, $min, $sec, $value, $day, $year) ); + var_dump( gmmktime($hour, $min, $sec, $mon, $value, $value) ); +} +?> +===DONE=== +--EXPECTREGEX-- +\*\*\* Testing gmmktime\(\) : usage variation \*\*\* + +--float 123456-- +int\(1662595688\) +int\(1225589768\) +int\(1218306336\) +(bool|int)\((false|325855037288)\) +(bool|int)\((false|3844412784488)\) + +--float -123456-- +int\(773712488\) +int\(1210775048\) +int\(1218059424\) +(bool|int)\((false|-323460834712)\) +(bool|int)\((false|-3968710530712)\) + +--float -10.5-- +int\(1218118088\) +int\(1218181808\) +int\(1218182870\) +int\(1170922088\) +(bool|int)\((false|-62465356312)\) +===DONE=== diff --git a/ext/date/tests/gmstrftime_basic.phpt b/ext/date/tests/gmstrftime_basic.phpt new file mode 100644 index 0000000..17bad69 --- /dev/null +++ b/ext/date/tests/gmstrftime_basic.phpt @@ -0,0 +1,29 @@ +--TEST-- +Test gmstrftime() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : basic functionality *** +string(20) "Aug 08 2008 08:08:08" +string(%d) "%s %d %d %d:%d:%d" +===DONE=== diff --git a/ext/date/tests/gmstrftime_error.phpt b/ext/date/tests/gmstrftime_error.phpt new file mode 100644 index 0000000..d28780f --- /dev/null +++ b/ext/date/tests/gmstrftime_error.phpt @@ -0,0 +1,38 @@ +--TEST-- +Test gmstrftime() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : error conditions *** + +-- Testing gmstrftime() function with Zero arguments -- + +Warning: gmstrftime() expects at least 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing gmstrftime() function with more than expected no. of arguments -- + +Warning: gmstrftime() expects at most 2 parameters, 3 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation1.phpt b/ext/date/tests/gmstrftime_variation1.phpt new file mode 100644 index 0000000..d123fb2 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation1.phpt @@ -0,0 +1,220 @@ +--TEST-- +Test gmstrftime() function : usage variation - Passing unexpected values to first argument 'format'. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float 12.3456789000e10' => 12.3456789000e10, + 'float -12.3456789000e10' => -12.3456789000e10, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for format + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--int 0-- +string(1) "0" +string(1) "0" + +--int 1-- +string(1) "1" +string(1) "1" + +--int 12345-- +string(5) "12345" +string(5) "12345" + +--int -12345-- +string(6) "-12345" +string(6) "-12345" + +--float 10.5-- +string(4) "10.5" +string(4) "10.5" + +--float -10.5-- +string(5) "-10.5" +string(5) "-10.5" + +--float 12.3456789000e10-- +string(12) "123456789000" +string(12) "123456789000" + +--float -12.3456789000e10-- +string(13) "-123456789000" +string(13) "-123456789000" + +--float .5-- +string(3) "0.5" +string(3) "0.5" + +--empty array-- + +Warning: gmstrftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: gmstrftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: gmstrftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: gmstrftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: gmstrftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: gmstrftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: gmstrftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: gmstrftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--uppercase NULL-- +bool(false) +bool(false) + +--lowercase null-- +bool(false) +bool(false) + +--lowercase true-- +string(1) "1" +string(1) "1" + +--lowercase false-- +bool(false) +bool(false) + +--uppercase TRUE-- +string(1) "1" +string(1) "1" + +--uppercase FALSE-- +bool(false) +bool(false) + +--empty string DQ-- +bool(false) +bool(false) + +--empty string SQ-- +bool(false) +bool(false) + +--instance of classWithToString-- +string(14) "Class A object" +string(14) "Class A object" + +--instance of classWithoutToString-- + +Warning: gmstrftime() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +Warning: gmstrftime() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +--undefined var-- +bool(false) +bool(false) + +--unset var-- +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation10.phpt b/ext/date/tests/gmstrftime_variation10.phpt new file mode 100644 index 0000000..0e54d84 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation10.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test gmstrftime() function : usage variation - Checking week related formats which are supported other than on Windows. +--SKIPIF-- + +--FILE-- + "%V", + 'Weekday as decimal' => "%u", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--The ISO 8601:1988 week number-- +string(%d) "%d" +string(2) "32" + +--Weekday as decimal-- +string(%d) "%d" +string(1) "5" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation11.phpt b/ext/date/tests/gmstrftime_variation11.phpt new file mode 100644 index 0000000..482ff6d --- /dev/null +++ b/ext/date/tests/gmstrftime_variation11.phpt @@ -0,0 +1,37 @@ +--TEST-- +Test gmstrftime() function : usage variation - Checking month related formats which are not supported on Windows. +--SKIPIF-- + +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +-- Testing gmstrftime() function with Abbreviated month name format %h -- +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation12.phpt b/ext/date/tests/gmstrftime_variation12.phpt new file mode 100644 index 0000000..2c25af6 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation12.phpt @@ -0,0 +1,37 @@ +--TEST-- +Test gmstrftime() function : usage variation - Checking month related formats which are supported other than on Windows. +--SKIPIF-- + +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +-- Testing gmstrftime() function with Abbreviated month name format %h -- +string(%d) "%s" +string(3) "Aug" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation13.phpt b/ext/date/tests/gmstrftime_variation13.phpt new file mode 100644 index 0000000..42f33f0 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation13.phpt @@ -0,0 +1,60 @@ +--TEST-- +Test gmstrftime() function : usage variation - Checking date related formats which are not supported on Windows. +--SKIPIF-- + +--FILE-- + "%C", + 'Month Date Year' => "%D", + 'Year with century' => "%G", + 'Year without century' => "%g", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--Century number-- +bool(false) +bool(false) + +--Month Date Year-- +bool(false) +bool(false) + +--Year with century-- +bool(false) +bool(false) + +--Year without century-- +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation14.phpt b/ext/date/tests/gmstrftime_variation14.phpt new file mode 100644 index 0000000..880b433 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation14.phpt @@ -0,0 +1,60 @@ +--TEST-- +Test gmstrftime() function : usage variation - Checking date related formats which are supported other than on Windows. +--SKIPIF-- + +--FILE-- + "%C", + 'Month Date Year' => "%D", + 'Year with century' => "%G", + 'Year without century' => "%g", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--Century number-- +string(%d) "%d" +string(2) "20" + +--Month Date Year-- +string(%d) "%d/%d/%d" +string(8) "08/08/08" + +--Year with century-- +string(%d) "%d" +string(4) "2008" + +--Year without century-- +string(%d) "%d" +string(2) "08" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation15.phpt b/ext/date/tests/gmstrftime_variation15.phpt new file mode 100644 index 0000000..c0df364 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation15.phpt @@ -0,0 +1,55 @@ +--TEST-- +Test gmstrftime() function : usage variation - Checking time related formats which are not supported on Windows. +--SKIPIF-- + +--FILE-- + "%r", + 'Time in 24 hour notation' => "%R", + 'Current time %H:%M:%S format' => "%T", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--Time in a.m/p.m notation-- +bool(false) +bool(false) + +--Time in 24 hour notation-- +bool(false) +bool(false) + +--Current time %H:%M:%S format-- +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation16.phpt b/ext/date/tests/gmstrftime_variation16.phpt new file mode 100644 index 0000000..fd9f809 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation16.phpt @@ -0,0 +1,55 @@ +--TEST-- +Test gmstrftime() function : usage variation - Checking time related formats which are supported other than on Windows. +--SKIPIF-- + +--FILE-- + "%r", + 'Time in 24 hour notation' => "%R", + 'Current time %H:%M:%S format' => "%T", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--Time in a.m/p.m notation-- +string(%d) "%d:%d:%d %s" +string(11) "02:08:08 PM" + +--Time in 24 hour notation-- +string(%d) "%d:%d" +string(5) "14:08" + +--Current time %H:%M:%S format-- +string(%d) "%d:%d:%d" +string(8) "14:08:08" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation17.phpt b/ext/date/tests/gmstrftime_variation17.phpt new file mode 100644 index 0000000..e3070a5 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation17.phpt @@ -0,0 +1,37 @@ +--TEST-- +Test gmstrftime() function : usage variation - Checking day related formats which are not supported on Windows. +--SKIPIF-- + +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +-- Testing gmstrftime() function with Day of the month as decimal single digit format -- +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation18.phpt b/ext/date/tests/gmstrftime_variation18.phpt new file mode 100644 index 0000000..7cd5948 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation18.phpt @@ -0,0 +1,37 @@ +--TEST-- +Test gmstrftime() function : usage variation - Checking day related formats which are supported other than on Windows. +--SKIPIF-- + +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +-- Testing gmstrftime() function with Day of the month as decimal single digit format -- +string(%d) "%s" +string(2) " 8" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation19.phpt b/ext/date/tests/gmstrftime_variation19.phpt new file mode 100644 index 0000000..3131e01 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation19.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test gmstrftime() function : usage variation - Checking newline and tab formats which are not supported on Windows. +--SKIPIF-- + +--FILE-- + "%n", + 'Tab character' => "%t" +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--Newline character-- +bool(false) +bool(false) + +--Tab character-- +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation2.phpt b/ext/date/tests/gmstrftime_variation2.phpt new file mode 100644 index 0000000..c577fe1 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation2.phpt @@ -0,0 +1,206 @@ +--TEST-- +Test gmstrftime() function : usage variation - Passing unexpected values to second argument 'timestamp'. +--SKIPIF-- + +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float 12.3456789000e10' => 12.3456789000e10, + 'float -12.3456789000e10' => -12.3456789000e10, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($format, $value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--float 10.5-- +string(20) "Jan 01 1970 00:00:10" + +--float -10.5-- +string(20) "Dec 31 1969 23:59:50" + +--float 12.3456789000e10-- +string(20) "Mar 26 1935 04:50:16" + +--float -12.3456789000e10-- +string(20) "Oct 08 2004 19:09:44" + +--float .5-- +string(20) "Jan 01 1970 00:00:00" + +--empty array-- + +Warning: gmstrftime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: gmstrftime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: gmstrftime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: gmstrftime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +string(20) "Jan 01 1970 00:00:00" + +--lowercase null-- +string(20) "Jan 01 1970 00:00:00" + +--lowercase true-- +string(20) "Jan 01 1970 00:00:01" + +--lowercase false-- +string(20) "Jan 01 1970 00:00:00" + +--uppercase TRUE-- +string(20) "Jan 01 1970 00:00:01" + +--uppercase FALSE-- +string(20) "Jan 01 1970 00:00:00" + +--empty string DQ-- + +Warning: gmstrftime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: gmstrftime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: gmstrftime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: gmstrftime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: gmstrftime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: gmstrftime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: gmstrftime() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: gmstrftime() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +string(20) "Jan 01 1970 00:00:00" + +--unset var-- +string(20) "Jan 01 1970 00:00:00" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation20.phpt b/ext/date/tests/gmstrftime_variation20.phpt new file mode 100644 index 0000000..a8898d8 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation20.phpt @@ -0,0 +1,52 @@ +--TEST-- +Test gmstrftime() function : usage variation - Checking newline and tab formats which are supported other than on Windows. +--SKIPIF-- + +--FILE-- + "%n", + 'Tab character' => "%t" +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTREGEX-- +\*\*\* Testing gmstrftime\(\) : usage variation \*\*\* + +--Newline character-- +string\(1\) " +" +string\(1\) " +" + +--Tab character-- +string\(1\) "\s" +string\(1\) "\s" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation21.phpt b/ext/date/tests/gmstrftime_variation21.phpt new file mode 100644 index 0000000..26ed157 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation21.phpt @@ -0,0 +1,55 @@ +--TEST-- +Test gmstrftime() function : usage variation - Checking Preferred date and time representation on Windows. +--SKIPIF-- + +--FILE-- + "%c", + 'Preferred date representation' => "%x", + 'Preferred time representation' => "%X", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--Preferred date and time representation-- +string(%d) "%d/%d/%d %d:%d:%d" +string(17) "08/08/08 08:08:08" + +--Preferred date representation-- +string(%d) "%d/%d/%d" +string(8) "08/08/08" + +--Preferred time representation-- +string(%d) "%d:%d:%d" +string(8) "08:08:08" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation22.phpt b/ext/date/tests/gmstrftime_variation22.phpt new file mode 100644 index 0000000..d9abdce --- /dev/null +++ b/ext/date/tests/gmstrftime_variation22.phpt @@ -0,0 +1,59 @@ +--TEST-- +Test gmstrftime() function : usage variation - Checking Preferred date and time representation other than on Windows. +--SKIPIF-- + +--FILE-- + "%c", + 'Preferred date representation' => "%x", + 'Preferred time representation' => "%X", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( $value ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECT-- +*** Testing gmstrftime() : usage variation *** + +--Preferred date and time representation-- +string(2) "%c" +string(24) "Fri Aug 8 08:08:08 2008" + +--Preferred date representation-- +string(2) "%x" +string(8) "08/08/08" + +--Preferred time representation-- +string(2) "%X" +string(8) "08:08:08" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation3.phpt b/ext/date/tests/gmstrftime_variation3.phpt new file mode 100644 index 0000000..bc05c7b --- /dev/null +++ b/ext/date/tests/gmstrftime_variation3.phpt @@ -0,0 +1,52 @@ +--TEST-- +Test gmstrftime() function : usage variation - Passing week related format strings to format argument. +--FILE-- + "%a", + 'Full weekday name' => "%A", + 'Week number of the year' => "%U", + 'Week number of the year in decimal number' => "%W", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--Abbreviated weekday name-- +string(%d) "%s" +string(3) "Fri" + +--Full weekday name-- +string(%d) "%s" +string(6) "Friday" + +--Week number of the year-- +string(%d) "%d" +string(2) "31" + +--Week number of the year in decimal number-- +string(%d) "%d" +string(2) "31" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation4.phpt b/ext/date/tests/gmstrftime_variation4.phpt new file mode 100644 index 0000000..619e633 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation4.phpt @@ -0,0 +1,47 @@ +--TEST-- +Test gmstrftime() function : usage variation - Passing month related format strings to format argument. +--FILE-- + "%b", + 'Full month name' => "%B", + 'Month as decimal' => "%m", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--Abbreviated month name-- +string(%d) "%s" +string(3) "Aug" + +--Full month name-- +string(%d) "%s" +string(6) "August" + +--Month as decimal-- +string(%d) "%d" +string(2) "08" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation5.phpt b/ext/date/tests/gmstrftime_variation5.phpt new file mode 100644 index 0000000..95e3bd2 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation5.phpt @@ -0,0 +1,51 @@ +--TEST-- +Test gmstrftime() function : usage variation - Passing date related format strings to format argument. +--FILE-- + "%y", + 'Year as decimal number including the century' => "%Y", + 'Time zone offset' => "%Z", + 'Time zone offset' => "%z", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--Year as decimal number without a century-- +string(%d) "%d" +string(2) "08" + +--Year as decimal number including the century-- +string(%d) "%d" +string(4) "2008" + +--Time zone offset-- +string(%s) "%s" +string(%s) "%s" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation6.phpt b/ext/date/tests/gmstrftime_variation6.phpt new file mode 100644 index 0000000..92dd1ed --- /dev/null +++ b/ext/date/tests/gmstrftime_variation6.phpt @@ -0,0 +1,59 @@ +--TEST-- +Test gmstrftime() function : usage variation - Passing time related format strings to format argument. +--FILE-- + "%H", + 'Hour as decimal by 12-hour format' => "%I", + 'Minute as decimal number' => "%M", + 'AM/PM format for a time' => "%p", + 'Second as decimal number' => "%S", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--Hour as decimal by 24-hour format-- +string(2) "%d" +string(2) "08" + +--Hour as decimal by 12-hour format-- +string(2) "%d" +string(2) "08" + +--Minute as decimal number-- +string(%d) "%d" +string(2) "08" + +--AM/PM format for a time-- +string(2) "%s" +string(2) "AM" + +--Second as decimal number-- +string(%d) "%d" +string(2) "08" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation7.phpt b/ext/date/tests/gmstrftime_variation7.phpt new file mode 100644 index 0000000..dd0584b --- /dev/null +++ b/ext/date/tests/gmstrftime_variation7.phpt @@ -0,0 +1,49 @@ +--TEST-- +Test gmstrftime() function : usage variation - Passing day related format strings to format argument. +--FILE-- + "%d", + 'Day of the year as a decimal number' => "%j", + 'Day of the week as a decimal number' => "%w" +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--Day of the month as a decimal number-- +string(%d) "%d" +string(2) "08" + +--Day of the year as a decimal number-- +string(%d) "%d" +string(3) "221" + +--Day of the week as a decimal number-- +string(%d) "%d" +string(1) "5" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation8.phpt b/ext/date/tests/gmstrftime_variation8.phpt new file mode 100644 index 0000000..59057aa --- /dev/null +++ b/ext/date/tests/gmstrftime_variation8.phpt @@ -0,0 +1,39 @@ +--TEST-- +Test gmstrftime() function : usage variation - Passing literal related strings to format argument. +--FILE-- + "%%", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--A literal % character-- +string(1) "%" +string(1) "%" +===DONE=== diff --git a/ext/date/tests/gmstrftime_variation9.phpt b/ext/date/tests/gmstrftime_variation9.phpt new file mode 100644 index 0000000..95b6c90 --- /dev/null +++ b/ext/date/tests/gmstrftime_variation9.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test gmstrftime() function : usage variation - Checking week related formats which are not supported on Windows. +--SKIPIF-- + +--FILE-- + "%V", + 'Weekday as decimal' => "%u", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( gmstrftime($value) ); + var_dump( gmstrftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing gmstrftime() : usage variation *** + +--The ISO 8601:1988 week number-- +bool(false) +bool(false) + +--Weekday as decimal-- +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/idate_basic.phpt b/ext/date/tests/idate_basic.phpt new file mode 100644 index 0000000..944f29f --- /dev/null +++ b/ext/date/tests/idate_basic.phpt @@ -0,0 +1,24 @@ +--TEST-- +Test idate() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing idate() : basic functionality *** +int(%d) +===DONE=== diff --git a/ext/date/tests/idate_error.phpt b/ext/date/tests/idate_error.phpt new file mode 100644 index 0000000..7dad460 --- /dev/null +++ b/ext/date/tests/idate_error.phpt @@ -0,0 +1,37 @@ +--TEST-- +Test idate() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing idate() : error conditions *** + +-- Testing idate() function with Zero arguments -- + +Warning: idate() expects at least 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing idate() function with more than expected no. of arguments -- + +Warning: idate() expects at most 2 parameters, 3 given in %s on line %d +bool(false) +===DONE=== + diff --git a/ext/date/tests/idate_variation1.phpt b/ext/date/tests/idate_variation1.phpt new file mode 100644 index 0000000..c0231a6 --- /dev/null +++ b/ext/date/tests/idate_variation1.phpt @@ -0,0 +1,301 @@ +--TEST-- +Test idate() function : usage variation - Passing unexpected values to first argument 'format'. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float 12.3456789000e10' => 12.3456789000e10, + 'float -12.3456789000e10' => -12.3456789000e10, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for format + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( idate($value) ); + var_dump( idate($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing idate() : usage variation *** + +--int 0-- + +Warning: idate(): Unrecognized date format token. in %s on line %d +bool(false) + +Warning: idate(): Unrecognized date format token. in %s on line %d +bool(false) + +--int 1-- + +Warning: idate(): Unrecognized date format token. in %s on line %d +bool(false) + +Warning: idate(): Unrecognized date format token. in %s on line %d +bool(false) + +--int 12345-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--int -12345-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--float 10.5-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--float -10.5-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--float 12.3456789000e10-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--float -12.3456789000e10-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--float .5-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--empty array-- + +Warning: idate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: idate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: idate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: idate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: idate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: idate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: idate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: idate() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--uppercase NULL-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--lowercase null-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--lowercase true-- + +Warning: idate(): Unrecognized date format token. in %s on line %d +bool(false) + +Warning: idate(): Unrecognized date format token. in %s on line %d +bool(false) + +--lowercase false-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--uppercase TRUE-- + +Warning: idate(): Unrecognized date format token. in %s on line %d +bool(false) + +Warning: idate(): Unrecognized date format token. in %s on line %d +bool(false) + +--uppercase FALSE-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--empty string DQ-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: idate() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +Warning: idate() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +--undefined var-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +--unset var-- + +Warning: idate(): idate format is one char in %s on line %d +bool(false) + +Warning: idate(): idate format is one char in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/idate_variation2.phpt b/ext/date/tests/idate_variation2.phpt new file mode 100644 index 0000000..7dd761d --- /dev/null +++ b/ext/date/tests/idate_variation2.phpt @@ -0,0 +1,191 @@ +--TEST-- +Test idate() function : usage variation - Passing unexpected values to second optional argument 'timestamp'. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( idate($format, $value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing idate() : usage variation *** + +--float 10.5-- +int(1970) + +--float -10.5-- +int(1970) + +--float .5-- +int(1970) + +--empty array-- + +Warning: idate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: idate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: idate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: idate() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +int(1970) + +--lowercase null-- +int(1970) + +--lowercase true-- +int(1970) + +--lowercase false-- +int(1970) + +--uppercase TRUE-- +int(1970) + +--uppercase FALSE-- +int(1970) + +--empty string DQ-- + +Warning: idate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: idate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: idate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: idate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: idate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: idate() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: idate() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: idate() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +int(1970) + +--unset var-- +int(1970) +===DONE=== diff --git a/ext/date/tests/idate_variation3.phpt b/ext/date/tests/idate_variation3.phpt new file mode 100644 index 0000000..1a2ee1f --- /dev/null +++ b/ext/date/tests/idate_variation3.phpt @@ -0,0 +1,35 @@ +--TEST-- +Test idate() function : usage variation - Passing higher positive and negetive float values to timestamp. +--FILE-- + +===DONE=== +--EXPECTREGEX-- +\*\*\* Testing idate\(\) : usage variation \*\*\* + +-- Testing idate\(\) function with float 12.3456789000e10 to timestamp -- +int\((1935|5882)\) + +-- Testing idate\(\) function with float -12.3456789000e10 to timestamp -- +int\((2004|1901|-1943)\) +===DONE=== diff --git a/ext/date/tests/idate_variation4.phpt b/ext/date/tests/idate_variation4.phpt new file mode 100644 index 0000000..6aa1735 --- /dev/null +++ b/ext/date/tests/idate_variation4.phpt @@ -0,0 +1,66 @@ +--TEST-- +Test idate() function : usage variation - Passing supported Date format characters to format argument. +--FILE-- + 'd', + 'Leap Year' =>'L', + 'Month number' => 'm', + 'Days in the month' => 't', + 'Day of the week' => 'w', + 'ISO-8601 week number' => 'W', + 'Year (1 or 2 digits)' => 'y', + 'Year 4 digits' => 'Y', + 'Day of the year' => 'z', +); + +// loop through each element of the array for timestamp +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( idate($value) ); +}; +?> +===DONE=== +--EXPECTF-- +*** Testing idate() : usage variation *** + +--Day of the month-- +int(%d) + +--Leap Year-- +int(%d) + +--Month number-- +int(%d) + +--Days in the month-- +int(%d) + +--Day of the week-- +int(%d) + +--ISO-8601 week number-- +int(%d) + +--Year (1 or 2 digits)-- +int(%d) + +--Year 4 digits-- +int(%d) + +--Day of the year-- +int(%d) +===DONE=== diff --git a/ext/date/tests/idate_variation5.phpt b/ext/date/tests/idate_variation5.phpt new file mode 100644 index 0000000..e70509c --- /dev/null +++ b/ext/date/tests/idate_variation5.phpt @@ -0,0 +1,62 @@ +--TEST-- +Test idate() function : usage variation - Passing supported Time format characters to format argument. +--FILE-- + 'B', + '12 hour format' => 'h', + '24 hour format' => 'H', + 'Minutes' => 'i', + 'DST Activated' => 'I', + 'Seconds' => 's', + 'Seconds since Unix Epoch' => 'U', + 'Time zone offset' => 'Z' +); + +// loop through each element of the array for timestamp +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( idate($value) ); +}; +?> +===DONE=== +--EXPECTF-- +*** Testing idate() : usage variation *** + +--Internet Time-- +int(%d) + +--12 hour format-- +int(%d) + +--24 hour format-- +int(%d) + +--Minutes-- +int(%d) + +--DST Activated-- +int(%d) + +--Seconds-- +int(%d) + +--Seconds since Unix Epoch-- +int(%d) + +--Time zone offset-- +int(%d) +===DONE=== diff --git a/ext/date/tests/idate_variation6.phpt b/ext/date/tests/idate_variation6.phpt new file mode 100644 index 0000000..161a80d --- /dev/null +++ b/ext/date/tests/idate_variation6.phpt @@ -0,0 +1,34 @@ +--TEST-- +Test idate() function : usage variation - Checking return of year(1 or 2 digits) format starting with zero and nonzero. +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing idate() : usage variation *** + +-- Testing idate() function for 2 digit year having no zero as starting number -- +int(70) + +-- Testing idate() function for 2 digit year having zero as starting number -- +int(1) +===DONE=== diff --git a/ext/date/tests/localtime_basic.phpt b/ext/date/tests/localtime_basic.phpt new file mode 100644 index 0000000..fcfd636 --- /dev/null +++ b/ext/date/tests/localtime_basic.phpt @@ -0,0 +1,93 @@ +--TEST-- +Test localtime() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing localtime() : basic functionality *** +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} +array(9) { + [0]=> + int(10) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + [0]=> + int(%d) + [1]=> + int(%d) + [2]=> + int(%d) + [3]=> + int(%d) + [4]=> + int(%d) + [5]=> + int(%d) + [6]=> + int(%d) + [7]=> + int(%d) + [8]=> + int(%d) +} +===DONE=== diff --git a/ext/date/tests/localtime_error.phpt b/ext/date/tests/localtime_error.phpt new file mode 100644 index 0000000..b231ed0 --- /dev/null +++ b/ext/date/tests/localtime_error.phpt @@ -0,0 +1,33 @@ +--TEST-- +Test localtime() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing localtime() : error conditions *** + +-- Testing localtime() function with more than expected no. of arguments -- + +Warning: localtime() expects at most 2 parameters, 3 given in %s on line %d +bool(false) +===DONE=== + diff --git a/ext/date/tests/localtime_variation1.phpt b/ext/date/tests/localtime_variation1.phpt new file mode 100644 index 0000000..472b32b --- /dev/null +++ b/ext/date/tests/localtime_variation1.phpt @@ -0,0 +1,658 @@ +--TEST-- +Test localtime() function : usage variation - Passing unexpected values to first argument 'timestamp'. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( localtime($value) ); + var_dump( localtime($value, $is_associative) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing localtime() : usage variation *** + +--float 10.5-- +array(9) { + [0]=> + int(10) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--float -10.5-- +array(9) { + [0]=> + int(50) + [1]=> + int(59) + [2]=> + int(23) + [3]=> + int(31) + [4]=> + int(11) + [5]=> + int(69) + [6]=> + int(3) + [7]=> + int(364) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(50) + ["tm_min"]=> + int(59) + ["tm_hour"]=> + int(23) + ["tm_mday"]=> + int(31) + ["tm_mon"]=> + int(11) + ["tm_year"]=> + int(69) + ["tm_wday"]=> + int(3) + ["tm_yday"]=> + int(364) + ["tm_isdst"]=> + int(0) +} + +--float .5-- +array(9) { + [0]=> + int(0) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(0) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--empty array-- + +Warning: localtime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: localtime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: localtime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: localtime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: localtime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: localtime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: localtime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +Warning: localtime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +array(9) { + [0]=> + int(0) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(0) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--lowercase null-- +array(9) { + [0]=> + int(0) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(0) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--lowercase true-- +array(9) { + [0]=> + int(1) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(1) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--lowercase false-- +array(9) { + [0]=> + int(0) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(0) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--uppercase TRUE-- +array(9) { + [0]=> + int(1) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(1) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--uppercase FALSE-- +array(9) { + [0]=> + int(0) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(0) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--empty string DQ-- + +Warning: localtime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: localtime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: localtime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: localtime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: localtime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: localtime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: localtime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: localtime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: localtime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: localtime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: localtime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +Warning: localtime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: localtime() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +Warning: localtime() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: localtime() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +Warning: localtime() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +array(9) { + [0]=> + int(0) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(0) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--unset var-- +array(9) { + [0]=> + int(0) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(0) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} +===DONE=== diff --git a/ext/date/tests/localtime_variation2.phpt b/ext/date/tests/localtime_variation2.phpt new file mode 100644 index 0000000..a204820 --- /dev/null +++ b/ext/date/tests/localtime_variation2.phpt @@ -0,0 +1,643 @@ +--TEST-- +Test localtime() function : usage variation - Passing unexpected values to second argument 'associative_array'. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -2345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float 12.3456789000e10' => 12.3456789000e10, + 'float -12.3456789000e10' => -12.3456789000e10, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for associative_array + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( localtime($timestamp, $value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing localtime() : usage variation *** + +--int 0-- +array(9) { + [0]=> + int(10) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} + +--int 1-- +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--int 12345-- +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--int -12345-- +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--float 10.5-- +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--float -10.5-- +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--float 12.3456789000e10-- +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--float -12.3456789000e10-- +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--float .5-- +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--empty array-- + +Warning: localtime() expects parameter 2 to be boolean, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: localtime() expects parameter 2 to be boolean, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: localtime() expects parameter 2 to be boolean, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: localtime() expects parameter 2 to be boolean, array given in %s on line %d +bool(false) + +--uppercase NULL-- +array(9) { + [0]=> + int(10) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} + +--lowercase null-- +array(9) { + [0]=> + int(10) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} + +--lowercase true-- +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--lowercase false-- +array(9) { + [0]=> + int(10) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} + +--uppercase TRUE-- +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--uppercase FALSE-- +array(9) { + [0]=> + int(10) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} + +--empty string DQ-- +array(9) { + [0]=> + int(10) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} + +--empty string SQ-- +array(9) { + [0]=> + int(10) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} + +--string DQ-- +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--string SQ-- +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--mixed case string-- +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--heredoc-- +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--instance of classWithToString-- + +Warning: localtime() expects parameter 2 to be boolean, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: localtime() expects parameter 2 to be boolean, object given in %s on line %d +bool(false) + +--undefined var-- +array(9) { + [0]=> + int(10) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} + +--unset var-- +array(9) { + [0]=> + int(10) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +===DONE=== diff --git a/ext/date/tests/localtime_variation3.phpt b/ext/date/tests/localtime_variation3.phpt new file mode 100644 index 0000000..d941e38 --- /dev/null +++ b/ext/date/tests/localtime_variation3.phpt @@ -0,0 +1,116 @@ +--TEST-- +Test localtime() function : usage variation - Passing higher positive and negetive float values to timestamp. +--FILE-- + +===DONE=== +--EXPECTREGEX-- +\*\*\* Testing localtime\(\) : usage variation \*\*\* + +-- Testing localtime\(\) function with 'float 12.3456789000e10' to timestamp -- +array\(9\) { + \[0\]=> + int\((16|0)\) + \[1\]=> + int\((50|30)\) + \[2\]=> + int\((4|0)\) + \[3\]=> + int\((26|11)\) + \[4\]=> + int\(2\) + \[5\]=> + int\((35|3982)\) + \[6\]=> + int\((2|6)\) + \[7\]=> + int\((84|69)\) + \[8\]=> + int\(0\) +} +array\(9\) { + \["tm_sec"\]=> + int\((16|0)\) + \["tm_min"\]=> + int\((50|30)\) + \["tm_hour"\]=> + int\((4|0)\) + \["tm_mday"\]=> + int\((26|11)\) + \["tm_mon"\]=> + int\(2\) + \["tm_year"\]=> + int\((35|3982)\) + \["tm_wday"\]=> + int\((2|6)\) + \["tm_yday"\]=> + int\((84|69)\) + \["tm_isdst"\]=> + int\(0\) +} + +-- Testing localtime\(\) function with 'float -12.3456789000e10' to timestamp -- +array\(9\) { + \[0\]=> + int\((44|52|0)\) + \[1\]=> + int\((9|45|30)\) + \[2\]=> + int\((19|20|23)\) + \[3\]=> + int\((8|13|22)\) + \[4\]=> + int\((9|11)\) + \[5\]=> + int\((104|1|-3843)\) + \[6\]=> + int\((5|-5)\) + \[7\]=> + int\((281|346|294)\) + \[8\]=> + int\(0\) +} +array\(9\) { + \["tm_sec"\]=> + int\((44|52|0)\) + \["tm_min"\]=> + int\((9|45|30)\) + \["tm_hour"\]=> + int\((19|20|23)\) + \["tm_mday"\]=> + int\((8|13|22)\) + \["tm_mon"\]=> + int\((9|11)\) + \["tm_year"\]=> + int\((104|1|-3843)\) + \["tm_wday"\]=> + int\((5|-5)\) + \["tm_yday"\]=> + int\((281|346|294)\) + \["tm_isdst"\]=> + int\(0\) +} +===DONE=== diff --git a/ext/date/tests/localtime_variation4.phpt b/ext/date/tests/localtime_variation4.phpt new file mode 100644 index 0000000..2796c22 --- /dev/null +++ b/ext/date/tests/localtime_variation4.phpt @@ -0,0 +1,162 @@ +--TEST-- +Test localtime() function : usage variation - Passing octal values to timestamp. +--FILE-- + 00, + 'Octal 10' => 012, + 'Octal -10' => -012 +); + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( localtime($value) ); + var_dump( localtime($value, $is_associative) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing localtime() : usage variation *** + +--Octal 0-- +array(9) { + [0]=> + int(0) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(0) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--Octal 10-- +array(9) { + [0]=> + int(10) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--Octal -10-- +array(9) { + [0]=> + int(50) + [1]=> + int(59) + [2]=> + int(23) + [3]=> + int(31) + [4]=> + int(11) + [5]=> + int(69) + [6]=> + int(3) + [7]=> + int(364) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(50) + ["tm_min"]=> + int(59) + ["tm_hour"]=> + int(23) + ["tm_mday"]=> + int(31) + ["tm_mon"]=> + int(11) + ["tm_year"]=> + int(69) + ["tm_wday"]=> + int(3) + ["tm_yday"]=> + int(364) + ["tm_isdst"]=> + int(0) +} +===DONE=== diff --git a/ext/date/tests/localtime_variation5.phpt b/ext/date/tests/localtime_variation5.phpt new file mode 100644 index 0000000..883e348 --- /dev/null +++ b/ext/date/tests/localtime_variation5.phpt @@ -0,0 +1,162 @@ +--TEST-- +Test localtime() function : usage variation - Passing hexa decimal values to timestamp. +--FILE-- + 0x0, + 'Hexa-decimal 10' => 0xA, + 'Hexa-decimal -10' => -0XA +); + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( localtime($value) ); + var_dump( localtime($value, $is_associative) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing localtime() : usage variation *** + +--Hexa-decimal 0-- +array(9) { + [0]=> + int(0) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(0) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--Hexa-decimal 10-- +array(9) { + [0]=> + int(10) + [1]=> + int(0) + [2]=> + int(0) + [3]=> + int(1) + [4]=> + int(0) + [5]=> + int(70) + [6]=> + int(4) + [7]=> + int(0) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(10) + ["tm_min"]=> + int(0) + ["tm_hour"]=> + int(0) + ["tm_mday"]=> + int(1) + ["tm_mon"]=> + int(0) + ["tm_year"]=> + int(70) + ["tm_wday"]=> + int(4) + ["tm_yday"]=> + int(0) + ["tm_isdst"]=> + int(0) +} + +--Hexa-decimal -10-- +array(9) { + [0]=> + int(50) + [1]=> + int(59) + [2]=> + int(23) + [3]=> + int(31) + [4]=> + int(11) + [5]=> + int(69) + [6]=> + int(3) + [7]=> + int(364) + [8]=> + int(0) +} +array(9) { + ["tm_sec"]=> + int(50) + ["tm_min"]=> + int(59) + ["tm_hour"]=> + int(23) + ["tm_mday"]=> + int(31) + ["tm_mon"]=> + int(11) + ["tm_year"]=> + int(69) + ["tm_wday"]=> + int(3) + ["tm_yday"]=> + int(364) + ["tm_isdst"]=> + int(0) +} +===DONE=== diff --git a/ext/date/tests/microtime_basic.phpt b/ext/date/tests/microtime_basic.phpt new file mode 100644 index 0000000..88c4952 --- /dev/null +++ b/ext/date/tests/microtime_basic.phpt @@ -0,0 +1,20 @@ +--TEST-- +Test return type and value for expected input microtime() +--FILE-- + +===DONE=== +--EXPECTF-- +string(%d) "%s %s" +float(%s) +string(%d) "%s %s" +===DONE=== diff --git a/ext/date/tests/microtime_error.phpt b/ext/date/tests/microtime_error.phpt new file mode 100644 index 0000000..07ac908 --- /dev/null +++ b/ext/date/tests/microtime_error.phpt @@ -0,0 +1,72 @@ +--TEST-- +Test wrong number of arguments for microtime() +--FILE-- +'v', array(0)), + new stdClass, + 1); +foreach ($bad_args as $bad_arg) { + echo "\n--> bad arg: "; + var_dump($bad_arg); + var_dump(microtime($bad_arg)); +} + +?> +===DONE=== +--EXPECTF-- + +-- Too many arguments -- + +Warning: microtime() expects at most 1 parameter, 2 given in %s on line 11 +NULL + +-- Bad Arg types -- + +--> bad arg: NULL +string(%d) "%s %s" + +--> bad arg: float(1.5) +float(%s) + +--> bad arg: string(5) "hello" +float(%s) + +--> bad arg: array(2) { + ["k"]=> + string(1) "v" + [0]=> + array(1) { + [0]=> + int(0) + } +} + +Warning: microtime() expects parameter 1 to be boolean, array given in %s on line 25 +NULL + +--> bad arg: object(stdClass)#%d (0) { +} + +Warning: microtime() expects parameter 1 to be boolean, object given in %s on line 25 +NULL + +--> bad arg: int(1) +float(%s) +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/mktime-1.phpt b/ext/date/tests/mktime-1.phpt new file mode 100644 index 0000000..87fc0df --- /dev/null +++ b/ext/date/tests/mktime-1.phpt @@ -0,0 +1,44 @@ +--TEST-- +Check for mktime with out-of-range parameters +--INI-- +error_reporting=2047 +--FILE-- + +--EXPECT-- +2000-02-29 +2000-02-28 +2000-02-29 +2001-02-28 +2001-03-01 +1999-11-30 +2000-05-29 12:00:00 +2000-05-29 13:00:00 +2000-05-29 12:00:00 +2000-01-31 12:00:00 +2000-01-31 12:00:00 +2000-01-31 11:00:00 +2000-04-29 12:00:00 +2000-04-29 13:00:00 +2000-04-29 12:00:00 diff --git a/ext/date/tests/mktime-2.phpt b/ext/date/tests/mktime-2.phpt new file mode 100644 index 0000000..931f637 --- /dev/null +++ b/ext/date/tests/mktime-2.phpt @@ -0,0 +1,51 @@ +--TEST-- +mktime() [2] +--INI-- +error_reporting=2047 +--FILE-- + +--EXPECTF-- +int(1009843200) +int(1009843200) +int(1009843200) +int(%s) +int(1025481600) +int(1025481600) +int(1025481600) +int(%s) +int(1009843200) +int(1009843200) +int(1009843200) +int(1009839600) +int(1025478000) +int(1025478000) +int(1025481600) +int(1025478000) diff --git a/ext/date/tests/mktime-3-64bit.phpt b/ext/date/tests/mktime-3-64bit.phpt new file mode 100644 index 0000000..a3649cd --- /dev/null +++ b/ext/date/tests/mktime-3-64bit.phpt @@ -0,0 +1,60 @@ +--TEST-- +mktime() [3] (64-bit) +--SKIPIF-- + +--INI-- +error_reporting=2047 +--FILE-- + +--EXPECT-- +America/Toronto +Y: 0 - January 2000-01-01T01:01:01-0500 +Y: 69 - January 2069-01-01T01:01:01-0500 +Y: 70 - January 1970-01-01T01:01:01-0500 +Y: 71 - January 1971-01-01T01:01:01-0500 +Y: 99 - January 1999-01-01T01:01:01-0500 +Y: 100 - January 2000-01-01T01:01:01-0500 +Y: 101 - January 0101-01-01T01:01:01-0500 +Y: 105 - January 0105-01-01T01:01:01-0500 +Y: 110 - January 0110-01-01T01:01:01-0500 +Y: 1900 - January 1900-01-01T01:01:01-0500 +Y: 1901 - January 1901-01-01T01:01:01-0500 +Y: 1902 - January 1902-01-01T01:01:01-0500 +Y: 1999 - January 1999-01-01T01:01:01-0500 +Y: 2000 - January 2000-01-01T01:01:01-0500 +Y: 2001 - January 2001-01-01T01:01:01-0500 + +Europe/Oslo +Y: 0 - January 2000-01-01T01:01:01+0100 +Y: 69 - January 2069-01-01T01:01:01+0100 +Y: 70 - January 1970-01-01T01:01:01+0100 +Y: 71 - January 1971-01-01T01:01:01+0100 +Y: 99 - January 1999-01-01T01:01:01+0100 +Y: 100 - January 2000-01-01T01:01:01+0100 +Y: 101 - January 0101-01-01T01:01:01+0100 +Y: 105 - January 0105-01-01T01:01:01+0100 +Y: 110 - January 0110-01-01T01:01:01+0100 +Y: 1900 - January 1900-01-01T01:01:01+0100 +Y: 1901 - January 1901-01-01T01:01:01+0100 +Y: 1902 - January 1902-01-01T01:01:01+0100 +Y: 1999 - January 1999-01-01T01:01:01+0100 +Y: 2000 - January 2000-01-01T01:01:01+0100 +Y: 2001 - January 2001-01-01T01:01:01+0100 diff --git a/ext/date/tests/mktime-3.phpt b/ext/date/tests/mktime-3.phpt new file mode 100644 index 0000000..4347826 --- /dev/null +++ b/ext/date/tests/mktime-3.phpt @@ -0,0 +1,59 @@ +--TEST-- +mktime() [3] (32-bit) +--SKIPIF-- + +--INI-- +error_reporting=2047 +--FILE-- + +===Done=== +--EXPECT-- +America/Toronto +Y: 0 - January 2000-01-01T01:01:01-0500 +Y: 69 - out of range +Y: 70 - January 1970-01-01T01:01:01-0500 +Y: 71 - January 1971-01-01T01:01:01-0500 +Y: 99 - January 1999-01-01T01:01:01-0500 +Y: 100 - January 2000-01-01T01:01:01-0500 +Y: 105 - out of range +Y: 1900 - out of range +Y: 1901 - out of range +Y: 1902 - January 1902-01-01T01:01:01-0500 +Y: 1999 - January 1999-01-01T01:01:01-0500 +Y: 2000 - January 2000-01-01T01:01:01-0500 +Y: 2001 - January 2001-01-01T01:01:01-0500 + +Europe/Oslo +Y: 0 - January 2000-01-01T01:01:01+0100 +Y: 69 - out of range +Y: 70 - January 1970-01-01T01:01:01+0100 +Y: 71 - January 1971-01-01T01:01:01+0100 +Y: 99 - January 1999-01-01T01:01:01+0100 +Y: 100 - January 2000-01-01T01:01:01+0100 +Y: 105 - out of range +Y: 1900 - out of range +Y: 1901 - out of range +Y: 1902 - January 1902-01-01T01:01:01+0100 +Y: 1999 - January 1999-01-01T01:01:01+0100 +Y: 2000 - January 2000-01-01T01:01:01+0100 +Y: 2001 - January 2001-01-01T01:01:01+0100 + +===Done=== \ No newline at end of file diff --git a/ext/date/tests/mktime_basic1.phpt b/ext/date/tests/mktime_basic1.phpt new file mode 100644 index 0000000..dc17c29 --- /dev/null +++ b/ext/date/tests/mktime_basic1.phpt @@ -0,0 +1,47 @@ +--TEST-- +Test mktime() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing DateTime::modify() : basic functionality *** +int(%i) +int(%i) +int(%i) +int(%i) +int(%i) +int(%i) + +Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d +int(%i) +===DONE=== + diff --git a/ext/date/tests/mktime_error.phpt b/ext/date/tests/mktime_error.phpt new file mode 100644 index 0000000..f517dc8 --- /dev/null +++ b/ext/date/tests/mktime_error.phpt @@ -0,0 +1,45 @@ +--TEST-- +Test mktime() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing mktime() : error conditions *** + +-- Testing mktime() function with Zero arguments -- + +Strict Standards: mktime(): You should be using the time() function instead in %s on line %d +int(%d) + +-- Testing mktime() function with more than expected no. of arguments -- + +Warning: mktime() expects at most 7 parameters, 8 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/mktime_variation1.phpt b/ext/date/tests/mktime_variation1.phpt new file mode 100644 index 0000000..eec97da --- /dev/null +++ b/ext/date/tests/mktime_variation1.phpt @@ -0,0 +1,224 @@ +--TEST-- +Test mktime() function : usage variation - Passing unexpected values to first argument $hour. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$hour = 10; +$minute = 30; +$sec = 45; +$month = 7; +$day = 2; +$year = 1963; +$is_dst = 0; + +foreach($inputs as $variation =>$hour) { + echo "\n-- $variation --\n"; + var_dump( mktime($hour) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing mktime() : usage variation - unexpected values to first argument $hour*** + +-- int 0 -- +int(%i) + +-- int 12345 -- +int(%i) + +-- int -12345 -- +int(%i) + +-- float 10.5 -- +int(%i) + +-- float -10.5 -- +int(%i) + +-- float .5 -- +int(%i) + +-- empty array -- + +Warning: mktime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: mktime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: mktime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: mktime() expects parameter 1 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +int(%i) + +-- lowercase null -- +int(%i) + +-- lowercase true -- +int(%i) + +-- lowercase false -- +int(%i) + +-- uppercase TRUE -- +int(%i) + +-- uppercase FALSE -- +int(%i) + +-- empty string DQ -- + +Warning: mktime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: mktime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: mktime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: mktime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: mktime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: mktime() expects parameter 1 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: mktime() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: mktime() expects parameter 1 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +int(%i) + +-- unset var -- +int(%i) + +-- resource -- + +Warning: mktime() expects parameter 1 to be long, resource given in %s on line %d +bool(false) +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/mktime_variation2.phpt b/ext/date/tests/mktime_variation2.phpt new file mode 100644 index 0000000..a969b32 --- /dev/null +++ b/ext/date/tests/mktime_variation2.phpt @@ -0,0 +1,218 @@ +--TEST-- +Test mktime() function : usage variation - Passing unexpected values to second argument $minute. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$hour = 10; + +foreach($inputs as $variation =>$minute) { + echo "\n-- $variation --\n"; + var_dump( mktime($hour, $minute) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing mktime() : usage variation - unexpected values to second argument $minute*** + +-- int 0 -- +int(%i) + +-- int 12345 -- +int(%i) + +-- int -12345 -- +int(%i) + +-- float 10.5 -- +int(%i) + +-- float -10.5 -- +int(%i) + +-- float .5 -- +int(%i) + +-- empty array -- + +Warning: mktime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: mktime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: mktime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: mktime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +int(%i) + +-- lowercase null -- +int(%i) + +-- lowercase true -- +int(%i) + +-- lowercase false -- +int(%i) + +-- uppercase TRUE -- +int(%i) + +-- uppercase FALSE -- +int(%i) + +-- empty string DQ -- + +Warning: mktime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: mktime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: mktime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: mktime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: mktime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: mktime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: mktime() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: mktime() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +int(%i) + +-- unset var -- +int(%i) + +-- resource -- + +Warning: mktime() expects parameter 2 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/mktime_variation3.phpt b/ext/date/tests/mktime_variation3.phpt new file mode 100644 index 0000000..52155f8 --- /dev/null +++ b/ext/date/tests/mktime_variation3.phpt @@ -0,0 +1,219 @@ +--TEST-- +Test mktime() function : usage variation - Passing unexpected values to third argument $second. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$hour = 10; +$minute = 30; + +foreach($inputs as $variation =>$second) { + echo "\n-- $variation --\n"; + var_dump( mktime($hour, $minute, $second) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing mktime() : usage variation - unexpected values to third argument $second*** + +-- int 0 -- +int(%i) + +-- int 12345 -- +int(%i) + +-- int -12345 -- +int(%i) + +-- float 10.5 -- +int(%i) + +-- float -10.5 -- +int(%i) + +-- float .5 -- +int(%i) + +-- empty array -- + +Warning: mktime() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: mktime() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: mktime() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: mktime() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +int(%i) + +-- lowercase null -- +int(%i) + +-- lowercase true -- +int(%i) + +-- lowercase false -- +int(%i) + +-- uppercase TRUE -- +int(%i) + +-- uppercase FALSE -- +int(%i) + +-- empty string DQ -- + +Warning: mktime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: mktime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: mktime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: mktime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: mktime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: mktime() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: mktime() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: mktime() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +int(%i) + +-- unset var -- +int(%i) + +-- resource -- + +Warning: mktime() expects parameter 3 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/mktime_variation4.phpt b/ext/date/tests/mktime_variation4.phpt new file mode 100644 index 0000000..3b0e200 --- /dev/null +++ b/ext/date/tests/mktime_variation4.phpt @@ -0,0 +1,220 @@ +--TEST-- +Test mktime() function : usage variation - Passing unexpected values to forth argument $month. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$hour = 10; +$minute = 30; +$second = 45; + +foreach($inputs as $variation =>$month) { + echo "\n-- $variation --\n"; + var_dump( mktime($hour, $minute, $second, $month) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing mktime() : usage variation - unexpected values to forth argument $month*** + +-- int 0 -- +int(%i) + +-- int 12345 -- +%rint\(-?[1-9][0-9]*\)|bool\(false\)%r + +-- int -12345 -- +%rint\(-?[1-9][0-9]*\)|bool\(false\)%r + +-- float 10.5 -- +int(%i) + +-- float -10.5 -- +int(%i) + +-- float .5 -- +int(%i) + +-- empty array -- + +Warning: mktime() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: mktime() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: mktime() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: mktime() expects parameter 4 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +int(%i) + +-- lowercase null -- +int(%i) + +-- lowercase true -- +int(%i) + +-- lowercase false -- +int(%i) + +-- uppercase TRUE -- +int(%i) + +-- uppercase FALSE -- +int(%i) + +-- empty string DQ -- + +Warning: mktime() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: mktime() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: mktime() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: mktime() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: mktime() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: mktime() expects parameter 4 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: mktime() expects parameter 4 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: mktime() expects parameter 4 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +int(%i) + +-- unset var -- +int(%i) + +-- resource -- + +Warning: mktime() expects parameter 4 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/mktime_variation5.phpt b/ext/date/tests/mktime_variation5.phpt new file mode 100644 index 0000000..4e3690a --- /dev/null +++ b/ext/date/tests/mktime_variation5.phpt @@ -0,0 +1,221 @@ +--TEST-- +Test mktime() function : usage variation - Passing unexpected values to fifth argument $day. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$hour = 10; +$minute = 30; +$second = 45; +$month = 7; + +foreach($inputs as $variation =>$day) { + echo "\n-- $variation --\n"; + var_dump( mktime($hour, $minute, $second, $month, $day) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing mktime() : usage variation - unexpected values to fifth argument $day*** + +-- int 0 -- +int(%i) + +-- int 12345 -- +%rint\(-?[1-9][0-9]*\)|bool\(false\)%r + +-- int -12345 -- +int(%i) + +-- float 10.5 -- +int(%i) + +-- float -10.5 -- +int(%i) + +-- float .5 -- +int(%i) + +-- empty array -- + +Warning: mktime() expects parameter 5 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: mktime() expects parameter 5 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: mktime() expects parameter 5 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: mktime() expects parameter 5 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +int(%i) + +-- lowercase null -- +int(%i) + +-- lowercase true -- +int(%i) + +-- lowercase false -- +int(%i) + +-- uppercase TRUE -- +int(%i) + +-- uppercase FALSE -- +int(%i) + +-- empty string DQ -- + +Warning: mktime() expects parameter 5 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: mktime() expects parameter 5 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: mktime() expects parameter 5 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: mktime() expects parameter 5 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: mktime() expects parameter 5 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: mktime() expects parameter 5 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: mktime() expects parameter 5 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: mktime() expects parameter 5 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +int(%i) + +-- unset var -- +int(%i) + +-- resource -- + +Warning: mktime() expects parameter 5 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/mktime_variation6.phpt b/ext/date/tests/mktime_variation6.phpt new file mode 100644 index 0000000..d0961ff --- /dev/null +++ b/ext/date/tests/mktime_variation6.phpt @@ -0,0 +1,223 @@ +--TEST-- +Test mktime() function : usage variation - Passing unexpected values to sixth argument $year. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$hour = 10; +$minute = 30; +$second = 45; +$month = 7; +$day = 2; + +foreach($inputs as $variation =>$year) { + echo "\n-- $variation --\n"; + var_dump( mktime($hour, $minute, $second, $month, $day, $year) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing mktime() : usage variation - unexpected values to sixth argument $year*** + +-- int 0 -- +int(%i) + +-- int 12345 -- +%rint\(-?[1-9][0-9]*\)|bool\(false\)%r + +-- int -12345 -- +%rint\(-?[1-9][0-9]*\)|bool\(false\)%r + +-- float 10.5 -- +int(%i) + +-- float -10.5 -- +%rint\(-?[1-9][0-9]*\)|bool\(false\)%r + +-- float .5 -- +int(%i) + +-- empty array -- + +Warning: mktime() expects parameter 6 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: mktime() expects parameter 6 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: mktime() expects parameter 6 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: mktime() expects parameter 6 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +int(%i) + +-- lowercase null -- +int(%i) + +-- lowercase true -- +int(%i) + +-- lowercase false -- +int(%i) + +-- uppercase TRUE -- +int(%i) + +-- uppercase FALSE -- +int(%i) + +-- empty string DQ -- + +Warning: mktime() expects parameter 6 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: mktime() expects parameter 6 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: mktime() expects parameter 6 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: mktime() expects parameter 6 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: mktime() expects parameter 6 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: mktime() expects parameter 6 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: mktime() expects parameter 6 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: mktime() expects parameter 6 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +int(%i) + +-- unset var -- +int(%i) + +-- resource -- + +Warning: mktime() expects parameter 6 to be long, resource given in %s on line %d +bool(false) +===DONE=== + diff --git a/ext/date/tests/mktime_variation7.phpt b/ext/date/tests/mktime_variation7.phpt new file mode 100644 index 0000000..33c36d5 --- /dev/null +++ b/ext/date/tests/mktime_variation7.phpt @@ -0,0 +1,251 @@ +--TEST-- +Test mktime() function : usage variation - Passing unexpected values to seventh argument $is_dst. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 0' => 1, + 'int 0' => -1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$hour = 10; +$minute = 30; +$second = 45; +$month = 7; +$day = 2; +$year = 1963; + +foreach($inputs as $variation =>$is_dst) { + echo "\n-- $variation --\n"; + var_dump( mktime($hour, $minute, $second, $month, $day, $year, $is_dst) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing mktime() : usage variation - unexpected values to seventh argument $is_dst*** + +-- int 0 -- +int(%i) + +-- int 12345 -- + +Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d +int(%i) + +-- int -12345 -- + +Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d +int(%i) + +-- float 10.5 -- + +Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d +int(-205165755) + +-- float -10.5 -- + +Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d +int(%i) + +-- float .5 -- + +Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d +int(-205162155) + +-- empty array -- + +Warning: mktime() expects parameter 7 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: mktime() expects parameter 7 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: mktime() expects parameter 7 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: mktime() expects parameter 7 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d +int(%i) + +-- lowercase null -- + +Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d +int(%i) + +-- lowercase true -- + +Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d +int(%i) + +-- lowercase false -- + +Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d +int(%i) + +-- uppercase TRUE -- + +Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d +int(%i) + +-- uppercase FALSE -- + +Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d +int(%i) + +-- empty string DQ -- + +Warning: mktime() expects parameter 7 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: mktime() expects parameter 7 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: mktime() expects parameter 7 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: mktime() expects parameter 7 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: mktime() expects parameter 7 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: mktime() expects parameter 7 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: mktime() expects parameter 7 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: mktime() expects parameter 7 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- + +Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d +int(%i) + +-- unset var -- + +Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d +int(%i) + +-- resource -- + +Warning: mktime() expects parameter 7 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/oo_001.phpt b/ext/date/tests/oo_001.phpt new file mode 100644 index 0000000..7cbf847 --- /dev/null +++ b/ext/date/tests/oo_001.phpt @@ -0,0 +1,52 @@ +--TEST-- +date OO interface +--FILE-- +format("Y-m-d H:i:s")); + +$d = new _d; +var_dump($d->format("Y-m-d H:i:s")); + +try { + new DateTime("1am todax"); +} catch (Exception $e) { + echo $e->getMessage(),"\n"; +} + +$t = new DateTimeZone("UTC"); +var_dump($t->getName()); + +$t = new _t; +var_dump($t->getName()); + +try { + new DateTimeZone("GottaFindThisOne"); +} catch (Exception $e) { + echo $e->getMessage(),"\n"; +} + +echo "DONE\n"; +?> +--EXPECTF-- +string(19) "%d-%d-%d %d:%d:%d" + +Warning: DateTime::format(): The DateTime object has not been correctly initialized by its constructor in %soo_001.php on line %d +bool(false) +DateTime::__construct(): Failed to parse time string (1am todax) at position 4 (t): The timezone could not be found in the database +string(3) "UTC" + +Warning: DateTimeZone::getName(): The DateTimeZone object has not been correctly initialized by its constructor in %soo_001.php on line %d +bool(false) +DateTimeZone::__construct(): Unknown or bad timezone (GottaFindThisOne) +DONE diff --git a/ext/date/tests/oo_002.phpt b/ext/date/tests/oo_002.phpt new file mode 100644 index 0000000..34e6941 --- /dev/null +++ b/ext/date/tests/oo_002.phpt @@ -0,0 +1,27 @@ +--TEST-- +date OO cloning +--FILE-- +format(DateTime::RFC822)); +$c = clone $d; +var_dump($c->format(DateTime::RFC822)); +$d->modify("1 hour"); +$c->modify("1 second ago"); +var_dump($d->format(DateTime::RFC822)); +var_dump($c->format(DateTime::RFC822)); +$t = new _t("Asia/Tokyo"); +var_dump($t->getName()); +$c = clone $t; +var_dump($c->getName()); +?> +--EXPECT-- +string(29) "Wed, 01 Aug 07 13:00:00 +0000" +string(29) "Wed, 01 Aug 07 13:00:00 +0000" +string(29) "Wed, 01 Aug 07 14:00:00 +0000" +string(29) "Wed, 01 Aug 07 12:59:59 +0000" +string(10) "Asia/Tokyo" +string(10) "Asia/Tokyo" diff --git a/ext/date/tests/rfc-datetime_and_daylight_saving_time-type1.phpt b/ext/date/tests/rfc-datetime_and_daylight_saving_time-type1.phpt new file mode 100644 index 0000000..c297608 --- /dev/null +++ b/ext/date/tests/rfc-datetime_and_daylight_saving_time-type1.phpt @@ -0,0 +1,380 @@ +--TEST-- +RFC: DateTime and Daylight Saving Time Transitions (zone type 1) +--CREDITS-- +Daniel Convissor +--FILE-- +format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format('PT%hH%iM%sS') . "\n"; + +$end = new DateTime('2010-03-14 04:30:00 -0400'); +$start = new DateTime('2010-03-13 04:30:00 -0500'); +echo 'fd2 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 03:30:00 -0400'); +$start = new DateTime('2010-03-13 04:30:00 -0500'); +echo 'fd3 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 01:30:00 -0500'); +$start = new DateTime('2010-03-13 04:30:00 -0500'); +echo 'fd4 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 01:30:00 -0500'); +$start = new DateTime('2010-03-13 01:30:00 -0500'); +echo 'fd5 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 03:30:00 -0400'); +$start = new DateTime('2010-03-13 03:30:00 -0500'); +echo 'fd6 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 03:30:00 -0400'); +$start = new DateTime('2010-03-13 02:30:00 -0500'); +echo 'fd7 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +echo "\n"; + +/* + * Forward Transitions, add(). + */ + +$start = new DateTime('2010-03-14 01:59:59 -0500'); +$interval_spec = 'PT1S'; +$interval = new DateInterval($interval_spec); +echo 'fa1 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 04:30:00 -0500'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fa2 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 04:30:00 -0500'); +$interval_spec = 'PT22H'; +$interval = new DateInterval($interval_spec); +echo 'fa3 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 04:30:00 -0500'); +$interval_spec = 'PT21H'; +$interval = new DateInterval($interval_spec); +echo 'fa4 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 01:30:00 -0500'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fa5 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 02:30:00 -0500'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fa6 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +echo "\n"; + +/* + * Forward Transitions, sub(). + */ + +$end = new DateTime('2010-03-14 03:00:00 -0400'); +$interval_spec = 'PT1S'; +$interval = new DateInterval($interval_spec); +echo 'fs1 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-14 04:30:00 -0400'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fs2 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-14 03:30:00 -0400'); +$interval_spec = 'PT22H'; +$interval = new DateInterval($interval_spec); +echo 'fs3 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-14 01:30:00 -0500'); +$interval_spec = 'PT21H'; +$interval = new DateInterval($interval_spec); +echo 'fs4 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-14 01:30:00 -0500'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fs5 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-15 03:30:00 -0400'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fs6 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-15 02:30:00 -0400'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fs7 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +echo "\n"; + +/* + * Backward Transitions, diff(). + */ + +$end = new DateTime('2010-11-07 01:00:00 -0500'); +$start = new DateTime('2010-11-07 01:59:59 -0400'); +echo 'bd1 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format('PT%hH%iM%sS') . "\n"; + +$end = new DateTime('2010-11-07 04:30:00 -0500'); +$start = new DateTime('2010-11-06 04:30:00 -0400'); +echo 'bd2 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 03:30:00 -0500'); +$start = new DateTime('2010-11-06 04:30:00 -0400'); +echo 'bd3 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 02:30:00 -0500'); +$start = new DateTime('2010-11-06 04:30:00 -0400'); +echo 'bd4 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 -0500'); +$start = new DateTime('2010-11-06 04:30:00 -0400'); +echo 'bd5 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 -0400'); +$start = new DateTime('2010-11-06 04:30:00 -0400'); +echo 'bd6 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 -0400'); +$start = new DateTime('2010-11-06 01:30:00 -0400'); +echo 'bd7 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 -0500'); +$start = new DateTime('2010-11-06 01:30:00 -0400'); +echo 'bd8 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +echo "\n"; + +/* + * Backward Transitions, add(). + */ + +$start = new DateTime('2010-11-07 01:59:59 -0400'); +$interval_spec = 'PT1S'; +$interval = new DateInterval($interval_spec); +echo 'ba1 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00 -0400'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'ba2 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00 -0400'); +$interval_spec = 'PT24H'; +$interval = new DateInterval($interval_spec); +echo 'ba3 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00 -0400'); +$interval_spec = 'PT23H'; +$interval = new DateInterval($interval_spec); +echo 'ba4 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00 -0400'); +$interval_spec = 'PT22H'; +$interval = new DateInterval($interval_spec); +echo 'ba5 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00 -0400'); +$interval_spec = 'PT21H'; +$interval = new DateInterval($interval_spec); +echo 'ba6 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 01:30:00 -0400'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'ba7 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 01:30:00 -0400'); +$interval_spec = 'P1DT1H'; +$interval = new DateInterval($interval_spec); +echo 'ba8 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00 -0400'); +$interval_spec = 'PT25H'; +$interval = new DateInterval($interval_spec); +echo 'ba9 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 03:30:00 -0400'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'ba10 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 02:30:00 -0400'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'ba11 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +echo "\n"; + +/* + * Backward Transitions, sub(). + */ + +$end = new DateTime('2010-11-07 01:00:00 -0500'); +$interval_spec = 'PT1S'; +$interval = new DateInterval($interval_spec); +echo 'bs1 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 04:30:00 -0500'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'bs2 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 03:30:00 -0500'); +$interval_spec = 'PT24H'; +$interval = new DateInterval($interval_spec); +echo 'bs3 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 02:30:00 -0500'); +$interval_spec = 'PT23H'; +$interval = new DateInterval($interval_spec); +echo 'bs4 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 -0500'); +$interval_spec = 'PT22H'; +$interval = new DateInterval($interval_spec); +echo 'bs5 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 -0400'); +$interval_spec = 'PT21H'; +$interval = new DateInterval($interval_spec); +echo 'bs6 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 -0400'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'bs7 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 -0500'); +$interval_spec = 'P1DT1H'; +$interval = new DateInterval($interval_spec); +echo 'bs8 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 03:30:00 -0500'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'bs9 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 02:30:00 -0500'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'bs10 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +?> +--EXPECT-- +fd1 2010-03-14 03:00:00 -04:00 - 2010-03-14 01:59:59 -05:00 = PT0H0M1S +fd2 2010-03-14 04:30:00 -04:00 - 2010-03-13 04:30:00 -05:00 = P0DT23H +fd3 2010-03-14 03:30:00 -04:00 - 2010-03-13 04:30:00 -05:00 = P0DT22H +fd4 2010-03-14 01:30:00 -05:00 - 2010-03-13 04:30:00 -05:00 = P0DT21H +fd5 2010-03-14 01:30:00 -05:00 - 2010-03-13 01:30:00 -05:00 = P1DT0H +fd6 2010-03-14 03:30:00 -04:00 - 2010-03-13 03:30:00 -05:00 = P0DT23H +fd7 2010-03-14 03:30:00 -04:00 - 2010-03-13 02:30:00 -05:00 = P1DT0H + +fa1 2010-03-14 01:59:59 -05:00 + PT1S = 2010-03-14 02:00:00 -05:00 +fa2 2010-03-13 04:30:00 -05:00 + P1D = 2010-03-14 04:30:00 -05:00 +fa3 2010-03-13 04:30:00 -05:00 + PT22H = 2010-03-14 02:30:00 -05:00 +fa4 2010-03-13 04:30:00 -05:00 + PT21H = 2010-03-14 01:30:00 -05:00 +fa5 2010-03-13 01:30:00 -05:00 + P1D = 2010-03-14 01:30:00 -05:00 +fa6 2010-03-13 02:30:00 -05:00 + P1D = 2010-03-14 02:30:00 -05:00 + +fs1 2010-03-14 03:00:00 -04:00 - PT1S = 2010-03-14 02:59:59 -04:00 +fs2 2010-03-14 04:30:00 -04:00 - P1D = 2010-03-13 04:30:00 -04:00 +fs3 2010-03-14 03:30:00 -04:00 - PT22H = 2010-03-13 05:30:00 -04:00 +fs4 2010-03-14 01:30:00 -05:00 - PT21H = 2010-03-13 04:30:00 -05:00 +fs5 2010-03-14 01:30:00 -05:00 - P1D = 2010-03-13 01:30:00 -05:00 +fs6 2010-03-15 03:30:00 -04:00 - P1D = 2010-03-14 03:30:00 -04:00 +fs7 2010-03-15 02:30:00 -04:00 - P1D = 2010-03-14 02:30:00 -04:00 + +bd1 2010-11-07 01:00:00 -05:00 - 2010-11-07 01:59:59 -04:00 = PT0H0M1S +bd2 2010-11-07 04:30:00 -05:00 - 2010-11-06 04:30:00 -04:00 = P1DT1H +bd3 2010-11-07 03:30:00 -05:00 - 2010-11-06 04:30:00 -04:00 = P1DT0H +bd4 2010-11-07 02:30:00 -05:00 - 2010-11-06 04:30:00 -04:00 = P0DT23H +bd5 2010-11-07 01:30:00 -05:00 - 2010-11-06 04:30:00 -04:00 = P0DT22H +bd6 2010-11-07 01:30:00 -04:00 - 2010-11-06 04:30:00 -04:00 = P0DT21H +bd7 2010-11-07 01:30:00 -04:00 - 2010-11-06 01:30:00 -04:00 = P1DT0H +bd8 2010-11-07 01:30:00 -05:00 - 2010-11-06 01:30:00 -04:00 = P1DT1H + +ba1 2010-11-07 01:59:59 -04:00 + PT1S = 2010-11-07 02:00:00 -04:00 +ba2 2010-11-06 04:30:00 -04:00 + P1D = 2010-11-07 04:30:00 -04:00 +ba3 2010-11-06 04:30:00 -04:00 + PT24H = 2010-11-07 04:30:00 -04:00 +ba4 2010-11-06 04:30:00 -04:00 + PT23H = 2010-11-07 03:30:00 -04:00 +ba5 2010-11-06 04:30:00 -04:00 + PT22H = 2010-11-07 02:30:00 -04:00 +ba6 2010-11-06 04:30:00 -04:00 + PT21H = 2010-11-07 01:30:00 -04:00 +ba7 2010-11-06 01:30:00 -04:00 + P1D = 2010-11-07 01:30:00 -04:00 +ba8 2010-11-06 01:30:00 -04:00 + P1DT1H = 2010-11-07 02:30:00 -04:00 +ba9 2010-11-06 04:30:00 -04:00 + PT25H = 2010-11-07 05:30:00 -04:00 +ba10 2010-11-06 03:30:00 -04:00 + P1D = 2010-11-07 03:30:00 -04:00 +ba11 2010-11-06 02:30:00 -04:00 + P1D = 2010-11-07 02:30:00 -04:00 + +bs1 2010-11-07 01:00:00 -05:00 - PT1S = 2010-11-07 00:59:59 -05:00 +bs2 2010-11-07 04:30:00 -05:00 - P1D = 2010-11-06 04:30:00 -05:00 +bs3 2010-11-07 03:30:00 -05:00 - PT24H = 2010-11-06 03:30:00 -05:00 +bs4 2010-11-07 02:30:00 -05:00 - PT23H = 2010-11-06 03:30:00 -05:00 +bs5 2010-11-07 01:30:00 -05:00 - PT22H = 2010-11-06 03:30:00 -05:00 +bs6 2010-11-07 01:30:00 -04:00 - PT21H = 2010-11-06 04:30:00 -04:00 +bs7 2010-11-07 01:30:00 -04:00 - P1D = 2010-11-06 01:30:00 -04:00 +bs8 2010-11-07 01:30:00 -05:00 - P1DT1H = 2010-11-06 00:30:00 -05:00 +bs9 2010-11-07 03:30:00 -05:00 - P1D = 2010-11-06 03:30:00 -05:00 +bs10 2010-11-07 02:30:00 -05:00 - P1D = 2010-11-06 02:30:00 -05:00 diff --git a/ext/date/tests/rfc-datetime_and_daylight_saving_time-type2.phpt b/ext/date/tests/rfc-datetime_and_daylight_saving_time-type2.phpt new file mode 100644 index 0000000..7258512 --- /dev/null +++ b/ext/date/tests/rfc-datetime_and_daylight_saving_time-type2.phpt @@ -0,0 +1,380 @@ +--TEST-- +RFC: DateTime and Daylight Saving Time Transitions (zone type 2) +--CREDITS-- +Daniel Convissor +--FILE-- +format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format('PT%hH%iM%sS') . "\n"; + +$end = new DateTime('2010-03-14 04:30:00 EDT'); +$start = new DateTime('2010-03-13 04:30:00 EST'); +echo 'fd2 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 03:30:00 EDT'); +$start = new DateTime('2010-03-13 04:30:00 EST'); +echo 'fd3 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 01:30:00 EST'); +$start = new DateTime('2010-03-13 04:30:00 EST'); +echo 'fd4 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 01:30:00 EST'); +$start = new DateTime('2010-03-13 01:30:00 EST'); +echo 'fd5 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 03:30:00 EDT'); +$start = new DateTime('2010-03-13 03:30:00 EST'); +echo 'fd6 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 03:30:00 EDT'); +$start = new DateTime('2010-03-13 02:30:00 EST'); +echo 'fd7 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +echo "\n"; + +/* + * Forward Transitions, add(). + */ + +$start = new DateTime('2010-03-14 01:59:59 EST'); +$interval_spec = 'PT1S'; +$interval = new DateInterval($interval_spec); +echo 'fa1 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 04:30:00 EST'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fa2 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 04:30:00 EST'); +$interval_spec = 'PT22H'; +$interval = new DateInterval($interval_spec); +echo 'fa3 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 04:30:00 EST'); +$interval_spec = 'PT21H'; +$interval = new DateInterval($interval_spec); +echo 'fa4 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 01:30:00 EST'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fa5 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 02:30:00 EST'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fa6 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +echo "\n"; + +/* + * Forward Transitions, sub(). + */ + +$end = new DateTime('2010-03-14 03:00:00 EDT'); +$interval_spec = 'PT1S'; +$interval = new DateInterval($interval_spec); +echo 'fs1 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-14 04:30:00 EDT'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fs2 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-14 03:30:00 EDT'); +$interval_spec = 'PT22H'; +$interval = new DateInterval($interval_spec); +echo 'fs3 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-14 01:30:00 EST'); +$interval_spec = 'PT21H'; +$interval = new DateInterval($interval_spec); +echo 'fs4 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-14 01:30:00 EST'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fs5 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-15 03:30:00 EDT'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fs6 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-15 02:30:00 EDT'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fs7 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +echo "\n"; + +/* + * Backward Transitions, diff(). + */ + +$end = new DateTime('2010-11-07 01:00:00 EST'); +$start = new DateTime('2010-11-07 01:59:59 EDT'); +echo 'bd1 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format('PT%hH%iM%sS') . "\n"; + +$end = new DateTime('2010-11-07 04:30:00 EST'); +$start = new DateTime('2010-11-06 04:30:00 EDT'); +echo 'bd2 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 03:30:00 EST'); +$start = new DateTime('2010-11-06 04:30:00 EDT'); +echo 'bd3 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 02:30:00 EST'); +$start = new DateTime('2010-11-06 04:30:00 EDT'); +echo 'bd4 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 EST'); +$start = new DateTime('2010-11-06 04:30:00 EDT'); +echo 'bd5 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 EDT'); +$start = new DateTime('2010-11-06 04:30:00 EDT'); +echo 'bd6 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 EDT'); +$start = new DateTime('2010-11-06 01:30:00 EDT'); +echo 'bd7 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 EST'); +$start = new DateTime('2010-11-06 01:30:00 EDT'); +echo 'bd8 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +echo "\n"; + +/* + * Backward Transitions, add(). + */ + +$start = new DateTime('2010-11-07 01:59:59 EDT'); +$interval_spec = 'PT1S'; +$interval = new DateInterval($interval_spec); +echo 'ba1 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00 EDT'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'ba2 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00 EDT'); +$interval_spec = 'PT24H'; +$interval = new DateInterval($interval_spec); +echo 'ba3 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00 EDT'); +$interval_spec = 'PT23H'; +$interval = new DateInterval($interval_spec); +echo 'ba4 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00 EDT'); +$interval_spec = 'PT22H'; +$interval = new DateInterval($interval_spec); +echo 'ba5 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00 EDT'); +$interval_spec = 'PT21H'; +$interval = new DateInterval($interval_spec); +echo 'ba6 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 01:30:00 EDT'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'ba7 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 01:30:00 EDT'); +$interval_spec = 'P1DT1H'; +$interval = new DateInterval($interval_spec); +echo 'ba8 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00 EDT'); +$interval_spec = 'PT25H'; +$interval = new DateInterval($interval_spec); +echo 'ba9 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 03:30:00 EDT'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'ba10 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 02:30:00 EDT'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'ba11 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +echo "\n"; + +/* + * Backward Transitions, sub(). + */ + +$end = new DateTime('2010-11-07 01:00:00 EST'); +$interval_spec = 'PT1S'; +$interval = new DateInterval($interval_spec); +echo 'bs1 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 04:30:00 EST'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'bs2 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 03:30:00 EST'); +$interval_spec = 'PT24H'; +$interval = new DateInterval($interval_spec); +echo 'bs3 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 02:30:00 EST'); +$interval_spec = 'PT23H'; +$interval = new DateInterval($interval_spec); +echo 'bs4 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 EST'); +$interval_spec = 'PT22H'; +$interval = new DateInterval($interval_spec); +echo 'bs5 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 EDT'); +$interval_spec = 'PT21H'; +$interval = new DateInterval($interval_spec); +echo 'bs6 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 EDT'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'bs7 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 EST'); +$interval_spec = 'P1DT1H'; +$interval = new DateInterval($interval_spec); +echo 'bs8 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 03:30:00 EST'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'bs9 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 02:30:00 EST'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'bs10 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +?> +--EXPECT-- +fd1 2010-03-14 03:00:00 EDT EDT - 2010-03-14 01:59:59 EST EST = PT0H0M1S +fd2 2010-03-14 04:30:00 EDT EDT - 2010-03-13 04:30:00 EST EST = P0DT23H +fd3 2010-03-14 03:30:00 EDT EDT - 2010-03-13 04:30:00 EST EST = P0DT22H +fd4 2010-03-14 01:30:00 EST EST - 2010-03-13 04:30:00 EST EST = P0DT21H +fd5 2010-03-14 01:30:00 EST EST - 2010-03-13 01:30:00 EST EST = P1DT0H +fd6 2010-03-14 03:30:00 EDT EDT - 2010-03-13 03:30:00 EST EST = P0DT23H +fd7 2010-03-14 03:30:00 EDT EDT - 2010-03-13 02:30:00 EST EST = P1DT0H + +fa1 2010-03-14 01:59:59 EST EST + PT1S = 2010-03-14 02:00:00 EST EST +fa2 2010-03-13 04:30:00 EST EST + P1D = 2010-03-14 04:30:00 EST EST +fa3 2010-03-13 04:30:00 EST EST + PT22H = 2010-03-14 02:30:00 EST EST +fa4 2010-03-13 04:30:00 EST EST + PT21H = 2010-03-14 01:30:00 EST EST +fa5 2010-03-13 01:30:00 EST EST + P1D = 2010-03-14 01:30:00 EST EST +fa6 2010-03-13 02:30:00 EST EST + P1D = 2010-03-14 02:30:00 EST EST + +fs1 2010-03-14 03:00:00 EDT EDT - PT1S = 2010-03-14 02:59:59 EDT EDT +fs2 2010-03-14 04:30:00 EDT EDT - P1D = 2010-03-13 04:30:00 EDT EDT +fs3 2010-03-14 03:30:00 EDT EDT - PT22H = 2010-03-13 05:30:00 EDT EDT +fs4 2010-03-14 01:30:00 EST EST - PT21H = 2010-03-13 04:30:00 EST EST +fs5 2010-03-14 01:30:00 EST EST - P1D = 2010-03-13 01:30:00 EST EST +fs6 2010-03-15 03:30:00 EDT EDT - P1D = 2010-03-14 03:30:00 EDT EDT +fs7 2010-03-15 02:30:00 EDT EDT - P1D = 2010-03-14 02:30:00 EDT EDT + +bd1 2010-11-07 01:00:00 EST EST - 2010-11-07 01:59:59 EDT EDT = PT0H0M1S +bd2 2010-11-07 04:30:00 EST EST - 2010-11-06 04:30:00 EDT EDT = P1DT1H +bd3 2010-11-07 03:30:00 EST EST - 2010-11-06 04:30:00 EDT EDT = P1DT0H +bd4 2010-11-07 02:30:00 EST EST - 2010-11-06 04:30:00 EDT EDT = P0DT23H +bd5 2010-11-07 01:30:00 EST EST - 2010-11-06 04:30:00 EDT EDT = P0DT22H +bd6 2010-11-07 01:30:00 EDT EDT - 2010-11-06 04:30:00 EDT EDT = P0DT21H +bd7 2010-11-07 01:30:00 EDT EDT - 2010-11-06 01:30:00 EDT EDT = P1DT0H +bd8 2010-11-07 01:30:00 EST EST - 2010-11-06 01:30:00 EDT EDT = P1DT1H + +ba1 2010-11-07 01:59:59 EDT EDT + PT1S = 2010-11-07 02:00:00 EDT EDT +ba2 2010-11-06 04:30:00 EDT EDT + P1D = 2010-11-07 04:30:00 EDT EDT +ba3 2010-11-06 04:30:00 EDT EDT + PT24H = 2010-11-07 04:30:00 EDT EDT +ba4 2010-11-06 04:30:00 EDT EDT + PT23H = 2010-11-07 03:30:00 EDT EDT +ba5 2010-11-06 04:30:00 EDT EDT + PT22H = 2010-11-07 02:30:00 EDT EDT +ba6 2010-11-06 04:30:00 EDT EDT + PT21H = 2010-11-07 01:30:00 EDT EDT +ba7 2010-11-06 01:30:00 EDT EDT + P1D = 2010-11-07 01:30:00 EDT EDT +ba8 2010-11-06 01:30:00 EDT EDT + P1DT1H = 2010-11-07 02:30:00 EDT EDT +ba9 2010-11-06 04:30:00 EDT EDT + PT25H = 2010-11-07 05:30:00 EDT EDT +ba10 2010-11-06 03:30:00 EDT EDT + P1D = 2010-11-07 03:30:00 EDT EDT +ba11 2010-11-06 02:30:00 EDT EDT + P1D = 2010-11-07 02:30:00 EDT EDT + +bs1 2010-11-07 01:00:00 EST EST - PT1S = 2010-11-07 00:59:59 EST EST +bs2 2010-11-07 04:30:00 EST EST - P1D = 2010-11-06 04:30:00 EST EST +bs3 2010-11-07 03:30:00 EST EST - PT24H = 2010-11-06 03:30:00 EST EST +bs4 2010-11-07 02:30:00 EST EST - PT23H = 2010-11-06 03:30:00 EST EST +bs5 2010-11-07 01:30:00 EST EST - PT22H = 2010-11-06 03:30:00 EST EST +bs6 2010-11-07 01:30:00 EDT EDT - PT21H = 2010-11-06 04:30:00 EDT EDT +bs7 2010-11-07 01:30:00 EDT EDT - P1D = 2010-11-06 01:30:00 EDT EDT +bs8 2010-11-07 01:30:00 EST EST - P1DT1H = 2010-11-06 00:30:00 EST EST +bs9 2010-11-07 03:30:00 EST EST - P1D = 2010-11-06 03:30:00 EST EST +bs10 2010-11-07 02:30:00 EST EST - P1D = 2010-11-06 02:30:00 EST EST diff --git a/ext/date/tests/rfc-datetime_and_daylight_saving_time-type3.phpt b/ext/date/tests/rfc-datetime_and_daylight_saving_time-type3.phpt new file mode 100644 index 0000000..855fe4e --- /dev/null +++ b/ext/date/tests/rfc-datetime_and_daylight_saving_time-type3.phpt @@ -0,0 +1,399 @@ +--TEST-- +RFC: DateTime and Daylight Saving Time Transitions (zone type 3) +--CREDITS-- +Daniel Convissor +--XFAIL-- +RFC not implemented yet +--FILE-- +format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format('PT%hH%iM%sS') . "\n"; + +$end = new DateTime('2010-03-14 04:30:00'); +$start = new DateTime('2010-03-13 04:30:00'); +echo 'fd2 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 03:30:00'); +$start = new DateTime('2010-03-13 04:30:00'); +echo 'fd3 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 01:30:00'); +$start = new DateTime('2010-03-13 04:30:00'); +echo 'fd4 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 01:30:00'); +$start = new DateTime('2010-03-13 01:30:00'); +echo 'fd5 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 03:30:00'); +$start = new DateTime('2010-03-13 03:30:00'); +echo 'fd6 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-03-14 03:30:00'); +$start = new DateTime('2010-03-13 02:30:00'); +echo 'fd7 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +echo "\n"; + +/* + * Forward Transitions, add(). + */ + +$start = new DateTime('2010-03-14 01:59:59'); +$interval_spec = 'PT1S'; +$interval = new DateInterval($interval_spec); +echo 'fa1 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 04:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fa2 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 04:30:00'); +$interval_spec = 'PT22H'; +$interval = new DateInterval($interval_spec); +echo 'fa3 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 04:30:00'); +$interval_spec = 'PT21H'; +$interval = new DateInterval($interval_spec); +echo 'fa4 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 01:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fa5 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-03-13 02:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fa6 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +echo "\n"; + +/* + * Forward Transitions, sub(). + */ + +$end = new DateTime('2010-03-14 03:00:00'); +$interval_spec = 'PT1S'; +$interval = new DateInterval($interval_spec); +echo 'fs1 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-14 04:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fs2 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-14 03:30:00'); +$interval_spec = 'PT22H'; +$interval = new DateInterval($interval_spec); +echo 'fs3 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-14 01:30:00'); +$interval_spec = 'PT21H'; +$interval = new DateInterval($interval_spec); +echo 'fs4 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-14 01:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fs5 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-15 03:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fs6 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-03-15 02:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'fs7 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +echo "\n"; + + +/* + * For backward transitions, must create objects with zone type 2 + * where specifying Daylight or Standard time is required + * then converting them to zone type 3. + */ + +$tz = new DateTimeZone('America/New_York'); + +/* + * Backward Transitions, diff(). + */ + +$end = new DateTime('2010-11-07 01:00:00 EST'); +$end->setTimeZone($tz); +$start = new DateTime('2010-11-07 01:59:59'); +echo 'bd1 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format('PT%hH%iM%sS') . "\n"; + +$end = new DateTime('2010-11-07 04:30:00'); +$start = new DateTime('2010-11-06 04:30:00'); +echo 'bd2 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 03:30:00'); +$start = new DateTime('2010-11-06 04:30:00'); +echo 'bd3 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 02:30:00'); +$start = new DateTime('2010-11-06 04:30:00'); +echo 'bd4 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 EST'); +$end->setTimeZone($tz); +$start = new DateTime('2010-11-06 04:30:00'); +echo 'bd5 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 EDT'); +$end->setTimeZone($tz); +$start = new DateTime('2010-11-06 04:30:00'); +echo 'bd6 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00'); +$start = new DateTime('2010-11-06 01:30:00'); +echo 'bd7 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 EST'); +$end->setTimeZone($tz); +$start = new DateTime('2010-11-06 01:30:00'); +echo 'bd8 ' . $end->format($date_format) . ' - ' . $start->format($date_format) + . ' = ' . $start->diff($end)->format($interval_format) . "\n"; + +echo "\n"; + +/* + * Backward Transitions, add(). + */ + +$start = new DateTime('2010-11-07 01:59:59'); +$interval_spec = 'PT1S'; +$interval = new DateInterval($interval_spec); +echo 'ba1 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'ba2 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00'); +$interval_spec = 'PT24H'; +$interval = new DateInterval($interval_spec); +echo 'ba3 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00'); +$interval_spec = 'PT23H'; +$interval = new DateInterval($interval_spec); +echo 'ba4 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00'); +$interval_spec = 'PT22H'; +$interval = new DateInterval($interval_spec); +echo 'ba5 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00'); +$interval_spec = 'PT21H'; +$interval = new DateInterval($interval_spec); +echo 'ba6 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 01:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'ba7 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 01:30:00'); +$interval_spec = 'P1DT1H'; +$interval = new DateInterval($interval_spec); +echo 'ba8 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 04:30:00'); +$interval_spec = 'PT25H'; +$interval = new DateInterval($interval_spec); +echo 'ba9 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 03:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'ba10 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +$start = new DateTime('2010-11-06 02:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'ba11 ' . $start->format($date_format) . " + $interval_spec = " + . $start->add($interval)->format($date_format) . "\n"; + +echo "\n"; + +/* + * Backward Transitions, sub(). + */ + +$end = new DateTime('2010-11-07 01:00:00 EST'); +$end->setTimeZone($tz); +$interval_spec = 'PT1S'; +$interval = new DateInterval($interval_spec); +echo 'bs1 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 04:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'bs2 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 03:30:00'); +$interval_spec = 'PT24H'; +$interval = new DateInterval($interval_spec); +echo 'bs3 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 02:30:00'); +$interval_spec = 'PT23H'; +$interval = new DateInterval($interval_spec); +echo 'bs4 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 EST'); +$end->setTimeZone($tz); +$interval_spec = 'PT22H'; +$interval = new DateInterval($interval_spec); +echo 'bs5 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 EDT'); +$end->setTimeZone($tz); +$interval_spec = 'PT21H'; +$interval = new DateInterval($interval_spec); +echo 'bs6 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'bs7 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 01:30:00 EST'); +$end->setTimeZone($tz); +$interval_spec = 'P1DT1H'; +$interval = new DateInterval($interval_spec); +echo 'bs8 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 03:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'bs9 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +$end = new DateTime('2010-11-07 02:30:00'); +$interval_spec = 'P1D'; +$interval = new DateInterval($interval_spec); +echo 'bs10 ' . $end->format($date_format) . " - $interval_spec = " + . $end->sub($interval)->format($date_format) . "\n"; + +?> +--EXPECT-- +fd1 2010-03-14 03:00:00 EDT America/New_York - 2010-03-14 01:59:59 EST America/New_York = PT0H0M1S +fd2 2010-03-14 04:30:00 EDT America/New_York - 2010-03-13 04:30:00 EST America/New_York = P1DT0H +fd3 2010-03-14 03:30:00 EDT America/New_York - 2010-03-13 04:30:00 EST America/New_York = P0DT22H +fd4 2010-03-14 01:30:00 EST America/New_York - 2010-03-13 04:30:00 EST America/New_York = P0DT21H +fd5 2010-03-14 01:30:00 EST America/New_York - 2010-03-13 01:30:00 EST America/New_York = P1DT0H +fd6 2010-03-14 03:30:00 EDT America/New_York - 2010-03-13 03:30:00 EST America/New_York = P1DT0H +fd7 2010-03-14 03:30:00 EDT America/New_York - 2010-03-13 02:30:00 EST America/New_York = P1DT1H + +fa1 2010-03-14 01:59:59 EST America/New_York + PT1S = 2010-03-14 03:00:00 EDT America/New_York +fa2 2010-03-13 04:30:00 EST America/New_York + P1D = 2010-03-14 04:30:00 EDT America/New_York +fa3 2010-03-13 04:30:00 EST America/New_York + PT22H = 2010-03-14 03:30:00 EDT America/New_York +fa4 2010-03-13 04:30:00 EST America/New_York + PT21H = 2010-03-14 01:30:00 EST America/New_York +fa5 2010-03-13 01:30:00 EST America/New_York + P1D = 2010-03-14 01:30:00 EST America/New_York +fa6 2010-03-13 02:30:00 EST America/New_York + P1D = 2010-03-14 03:30:00 EDT America/New_York + +fs1 2010-03-14 03:00:00 EDT America/New_York - PT1S = 2010-03-14 01:59:59 EST America/New_York +fs2 2010-03-14 04:30:00 EDT America/New_York - P1D = 2010-03-13 04:30:00 EST America/New_York +fs3 2010-03-14 03:30:00 EDT America/New_York - PT22H = 2010-03-13 04:30:00 EST America/New_York +fs4 2010-03-14 01:30:00 EST America/New_York - PT21H = 2010-03-13 04:30:00 EST America/New_York +fs5 2010-03-14 01:30:00 EST America/New_York - P1D = 2010-03-13 01:30:00 EST America/New_York +fs6 2010-03-15 03:30:00 EDT America/New_York - P1D = 2010-03-14 03:30:00 EDT America/New_York +fs7 2010-03-15 03:30:00 EDT America/New_York - P1D = 2010-03-14 03:30:00 EDT America/New_York + +bd1 2010-11-07 01:00:00 EST America/New_York - 2010-11-07 01:59:59 EDT America/New_York = PT0H0M1S +bd2 2010-11-07 04:30:00 EST America/New_York - 2010-11-06 04:30:00 EDT America/New_York = P1DT0H +bd3 2010-11-07 03:30:00 EST America/New_York - 2010-11-06 04:30:00 EDT America/New_York = P0DT24H +bd4 2010-11-07 02:30:00 EST America/New_York - 2010-11-06 04:30:00 EDT America/New_York = P0DT23H +bd5 2010-11-07 01:30:00 EST America/New_York - 2010-11-06 04:30:00 EDT America/New_York = P0DT22H +bd6 2010-11-07 01:30:00 EDT America/New_York - 2010-11-06 04:30:00 EDT America/New_York = P0DT21H +bd7 2010-11-07 01:30:00 EDT America/New_York - 2010-11-06 01:30:00 EDT America/New_York = P1DT0H +bd8 2010-11-07 01:30:00 EST America/New_York - 2010-11-06 01:30:00 EDT America/New_York = P1DT1H + +ba1 2010-11-07 01:59:59 EDT America/New_York + PT1S = 2010-11-07 01:00:00 EST America/New_York +ba2 2010-11-06 04:30:00 EDT America/New_York + P1D = 2010-11-07 04:30:00 EST America/New_York +ba3 2010-11-06 04:30:00 EDT America/New_York + PT24H = 2010-11-07 03:30:00 EST America/New_York +ba4 2010-11-06 04:30:00 EDT America/New_York + PT23H = 2010-11-07 02:30:00 EST America/New_York +ba5 2010-11-06 04:30:00 EDT America/New_York + PT22H = 2010-11-07 01:30:00 EST America/New_York +ba6 2010-11-06 04:30:00 EDT America/New_York + PT21H = 2010-11-07 01:30:00 EDT America/New_York +ba7 2010-11-06 01:30:00 EDT America/New_York + P1D = 2010-11-07 01:30:00 EDT America/New_York +ba8 2010-11-06 01:30:00 EDT America/New_York + P1DT1H = 2010-11-07 01:30:00 EST America/New_York +ba9 2010-11-06 04:30:00 EDT America/New_York + PT25H = 2010-11-07 04:30:00 EST America/New_York +ba10 2010-11-06 03:30:00 EDT America/New_York + P1D = 2010-11-07 03:30:00 EST America/New_York +ba11 2010-11-06 02:30:00 EDT America/New_York + P1D = 2010-11-07 02:30:00 EST America/New_York + +bs1 2010-11-07 01:00:00 EST America/New_York - PT1S = 2010-11-07 01:59:59 EDT America/New_York +bs2 2010-11-07 04:30:00 EST America/New_York - P1D = 2010-11-06 04:30:00 EDT America/New_York +bs3 2010-11-07 03:30:00 EST America/New_York - PT24H = 2010-11-06 04:30:00 EDT America/New_York +bs4 2010-11-07 02:30:00 EST America/New_York - PT23H = 2010-11-06 04:30:00 EDT America/New_York +bs5 2010-11-07 01:30:00 EST America/New_York - PT22H = 2010-11-06 04:30:00 EDT America/New_York +bs6 2010-11-07 01:30:00 EDT America/New_York - PT21H = 2010-11-06 04:30:00 EDT America/New_York +bs7 2010-11-07 01:30:00 EDT America/New_York - P1D = 2010-11-06 01:30:00 EDT America/New_York +bs8 2010-11-07 01:30:00 EST America/New_York - P1DT1H = 2010-11-06 00:30:00 EDT America/New_York +bs9 2010-11-07 03:30:00 EST America/New_York - P1D = 2010-11-06 03:30:00 EDT America/New_York +bs10 2010-11-07 02:30:00 EST America/New_York - P1D = 2010-11-06 02:30:00 EDT America/New_York diff --git a/ext/date/tests/strftime_basic.phpt b/ext/date/tests/strftime_basic.phpt new file mode 100644 index 0000000..07f22af --- /dev/null +++ b/ext/date/tests/strftime_basic.phpt @@ -0,0 +1,30 @@ +--TEST-- +Test strftime() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing strftime() : basic functionality *** +string(20) "Aug 08 2008 08:08:08" +string(%d) "%s %d %d %d:%d:%d" +===DONE=== diff --git a/ext/date/tests/strftime_error.phpt b/ext/date/tests/strftime_error.phpt new file mode 100644 index 0000000..1966379 --- /dev/null +++ b/ext/date/tests/strftime_error.phpt @@ -0,0 +1,30 @@ +--TEST-- +Test strftime() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing strftime() : error conditions *** + +-- Testing strftime() function with more than expected no. of arguments -- + +Warning: strftime() expects at most 2 parameters, 3 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/strftime_variation1.phpt b/ext/date/tests/strftime_variation1.phpt new file mode 100644 index 0000000..04b4819 --- /dev/null +++ b/ext/date/tests/strftime_variation1.phpt @@ -0,0 +1,222 @@ +--TEST-- +Test strftime() function : usage variation - Passing unexpected values to first argument 'format'. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float 12.3456789000e10' => 12.3456789000e10, + 'float -12.3456789000e10' => -12.3456789000e10, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for format + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--int 0-- +string(1) "0" +string(1) "0" + +--int 1-- +string(1) "1" +string(1) "1" + +--int 12345-- +string(5) "12345" +string(5) "12345" + +--int -12345-- +string(6) "-12345" +string(6) "-12345" + +--float 10.5-- +string(4) "10.5" +string(4) "10.5" + +--float -10.5-- +string(5) "-10.5" +string(5) "-10.5" + +--float 12.3456789000e10-- +string(12) "123456789000" +string(12) "123456789000" + +--float -12.3456789000e10-- +string(13) "-123456789000" +string(13) "-123456789000" + +--float .5-- +string(3) "0.5" +string(3) "0.5" + +--empty array-- + +Warning: strftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: strftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: strftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: strftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: strftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: strftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: strftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: strftime() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +--uppercase NULL-- +bool(false) +bool(false) + +--lowercase null-- +bool(false) +bool(false) + +--lowercase true-- +string(1) "1" +string(1) "1" + +--lowercase false-- +bool(false) +bool(false) + +--uppercase TRUE-- +string(1) "1" +string(1) "1" + +--uppercase FALSE-- +bool(false) +bool(false) + +--empty string DQ-- +bool(false) +bool(false) + +--empty string SQ-- +bool(false) +bool(false) + +--instance of classWithToString-- +string(14) "Class A object" +string(14) "Class A object" + +--instance of classWithoutToString-- + +Warning: strftime() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +Warning: strftime() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +--undefined var-- +bool(false) +bool(false) + +--unset var-- +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/strftime_variation10.phpt b/ext/date/tests/strftime_variation10.phpt new file mode 100644 index 0000000..7d2a1b8 --- /dev/null +++ b/ext/date/tests/strftime_variation10.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test strftime() function : usage variation - Checking week related formats which are supported other than on Windows. +--SKIPIF-- + +--FILE-- + "%V", + 'Weekday as decimal' => "%u", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--The ISO 8601:1988 week number-- +string(%d) "%d" +string(2) "32" + +--Weekday as decimal-- +string(%d) "%d" +string(1) "5" +===DONE=== diff --git a/ext/date/tests/strftime_variation11.phpt b/ext/date/tests/strftime_variation11.phpt new file mode 100644 index 0000000..a063f0a --- /dev/null +++ b/ext/date/tests/strftime_variation11.phpt @@ -0,0 +1,37 @@ +--TEST-- +Test strftime() function : usage variation - Checking month related formats which are not supported on Windows. +--SKIPIF-- + +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +-- Testing strftime() function with Abbreviated month name format %h -- +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/strftime_variation12.phpt b/ext/date/tests/strftime_variation12.phpt new file mode 100644 index 0000000..b798f42 --- /dev/null +++ b/ext/date/tests/strftime_variation12.phpt @@ -0,0 +1,37 @@ +--TEST-- +Test strftime() function : usage variation - Checking month related formats which are supported other than on Windows. +--SKIPIF-- + +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +-- Testing strftime() function with Abbreviated month name format %h -- +string(%d) "%s" +string(3) "Aug" +===DONE=== diff --git a/ext/date/tests/strftime_variation13.phpt b/ext/date/tests/strftime_variation13.phpt new file mode 100644 index 0000000..58ad283 --- /dev/null +++ b/ext/date/tests/strftime_variation13.phpt @@ -0,0 +1,60 @@ +--TEST-- +Test strftime() function : usage variation - Checking date related formats which are not supported on Windows. +--SKIPIF-- + +--FILE-- + "%C", + 'Month Date Year' => "%D", + 'Year with century' => "%G", + 'Year without century' => "%g", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--Century number-- +bool(false) +bool(false) + +--Month Date Year-- +bool(false) +bool(false) + +--Year with century-- +bool(false) +bool(false) + +--Year without century-- +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/strftime_variation14.phpt b/ext/date/tests/strftime_variation14.phpt new file mode 100644 index 0000000..7ccb7d2 --- /dev/null +++ b/ext/date/tests/strftime_variation14.phpt @@ -0,0 +1,60 @@ +--TEST-- +Test strftime() function : usage variation - Checking date related formats which are supported other than on Windows. +--SKIPIF-- + +--FILE-- + "%C", + 'Month Date Year' => "%D", + 'Year with century' => "%G", + 'Year without century' => "%g", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--Century number-- +string(%d) "%d" +string(2) "20" + +--Month Date Year-- +string(%d) "%d/%d/%d" +string(8) "08/08/08" + +--Year with century-- +string(%d) "%d" +string(4) "2008" + +--Year without century-- +string(%d) "%d" +string(2) "08" +===DONE=== diff --git a/ext/date/tests/strftime_variation15.phpt b/ext/date/tests/strftime_variation15.phpt new file mode 100644 index 0000000..5b2946b --- /dev/null +++ b/ext/date/tests/strftime_variation15.phpt @@ -0,0 +1,55 @@ +--TEST-- +Test strftime() function : usage variation - Checking time related formats which are not supported on Windows. +--SKIPIF-- + +--FILE-- + "%r", + 'Time in 24 hour notation' => "%R", + 'Current time %H:%M:%S format' => "%T", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--Time in a.m/p.m notation-- +bool(false) +bool(false) + +--Time in 24 hour notation-- +bool(false) +bool(false) + +--Current time %H:%M:%S format-- +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/strftime_variation16.phpt b/ext/date/tests/strftime_variation16.phpt new file mode 100644 index 0000000..5103b3a --- /dev/null +++ b/ext/date/tests/strftime_variation16.phpt @@ -0,0 +1,55 @@ +--TEST-- +Test strftime() function : usage variation - Checking time related formats which are supported other than on Windows. +--SKIPIF-- + +--FILE-- + "%r", + 'Time in 24 hour notation' => "%R", + 'Current time %H:%M:%S format' => "%T", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--Time in a.m/p.m notation-- +string(%d) "%d:%d:%d %s" +string(11) "08:08:08 AM" + +--Time in 24 hour notation-- +string(%d) "%d:%d" +string(5) "08:08" + +--Current time %H:%M:%S format-- +string(%d) "%d:%d:%d" +string(8) "08:08:08" +===DONE=== diff --git a/ext/date/tests/strftime_variation17.phpt b/ext/date/tests/strftime_variation17.phpt new file mode 100644 index 0000000..90b3269 --- /dev/null +++ b/ext/date/tests/strftime_variation17.phpt @@ -0,0 +1,36 @@ +--TEST-- +Test strftime() function : usage variation - Checking day related formats which are not supported on Windows. +--SKIPIF-- + +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +-- Testing strftime() function with Day of the month as decimal single digit format -- +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/strftime_variation18.phpt b/ext/date/tests/strftime_variation18.phpt new file mode 100644 index 0000000..4340325 --- /dev/null +++ b/ext/date/tests/strftime_variation18.phpt @@ -0,0 +1,36 @@ +--TEST-- +Test strftime() function : usage variation - Checking day related formats which are supported other than on Windows. +--SKIPIF-- + +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +-- Testing strftime() function with Day of the month as decimal single digit format -- +string(%d) "%s" +string(2) " 8" +===DONE=== diff --git a/ext/date/tests/strftime_variation19.phpt b/ext/date/tests/strftime_variation19.phpt new file mode 100644 index 0000000..b416077 --- /dev/null +++ b/ext/date/tests/strftime_variation19.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test strftime() function : usage variation - Checking newline and tab formats which are not supported on Windows. +--SKIPIF-- + +--FILE-- + "%n", + 'Tab character' => "%t" +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--Newline character-- +bool(false) +bool(false) + +--Tab character-- +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/strftime_variation2.phpt b/ext/date/tests/strftime_variation2.phpt new file mode 100644 index 0000000..b024234 --- /dev/null +++ b/ext/date/tests/strftime_variation2.phpt @@ -0,0 +1,191 @@ +--TEST-- +Test strftime() function : usage variation - Passing unexpected values to second argument 'timestamp'. +--FILE-- + 1, 'two' => 2); + +//array of values to iterate over +$inputs = array( + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($format, $value) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--float 10.5-- +string(20) "Jan 01 1970 05:30:10" + +--float -10.5-- +string(20) "Jan 01 1970 05:29:50" + +--float .5-- +string(20) "Jan 01 1970 05:30:00" + +--empty array-- + +Warning: strftime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--int indexed array-- + +Warning: strftime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--associative array-- + +Warning: strftime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--nested arrays-- + +Warning: strftime() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +--uppercase NULL-- +string(20) "Jan 01 1970 05:30:00" + +--lowercase null-- +string(20) "Jan 01 1970 05:30:00" + +--lowercase true-- +string(20) "Jan 01 1970 05:30:01" + +--lowercase false-- +string(20) "Jan 01 1970 05:30:00" + +--uppercase TRUE-- +string(20) "Jan 01 1970 05:30:01" + +--uppercase FALSE-- +string(20) "Jan 01 1970 05:30:00" + +--empty string DQ-- + +Warning: strftime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--empty string SQ-- + +Warning: strftime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--string DQ-- + +Warning: strftime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--string SQ-- + +Warning: strftime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--mixed case string-- + +Warning: strftime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--heredoc-- + +Warning: strftime() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +--instance of classWithToString-- + +Warning: strftime() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +--instance of classWithoutToString-- + +Warning: strftime() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +--undefined var-- +string(20) "Jan 01 1970 05:30:00" + +--unset var-- +string(20) "Jan 01 1970 05:30:00" +===DONE=== diff --git a/ext/date/tests/strftime_variation20.phpt b/ext/date/tests/strftime_variation20.phpt new file mode 100644 index 0000000..336c6d2 --- /dev/null +++ b/ext/date/tests/strftime_variation20.phpt @@ -0,0 +1,52 @@ +--TEST-- +Test strftime() function : usage variation - Checking newline and tab formats which are supported other than on Windows. +--SKIPIF-- + +--FILE-- + "%n", + 'Tab character' => "%t" +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +} + +?> +===DONE=== +--EXPECTREGEX-- +\*\*\* Testing strftime\(\) : usage variation \*\*\* + +--Newline character-- +string\(1\) " +" +string\(1\) " +" + +--Tab character-- +string\(1\) "\s" +string\(1\) "\s" +===DONE=== diff --git a/ext/date/tests/strftime_variation21.phpt b/ext/date/tests/strftime_variation21.phpt new file mode 100644 index 0000000..f6aed15 --- /dev/null +++ b/ext/date/tests/strftime_variation21.phpt @@ -0,0 +1,55 @@ +--TEST-- +Test strftime() function : usage variation - Checking Preferred date and time representation on Windows. +--SKIPIF-- + +--FILE-- + "%c", + 'Preferred date representation' => "%x", + 'Preferred time representation' => "%X", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--Preferred date and time representation-- +string(%d) "%d/%d/%d %d:%d:%d" +string(17) "08/08/08 08:08:08" + +--Preferred date representation-- +string(%d) "%d/%d/%d" +string(8) "08/08/08" + +--Preferred time representation-- +string(%d) "%d:%d:%d" +string(8) "08:08:08" +===DONE=== diff --git a/ext/date/tests/strftime_variation22.phpt b/ext/date/tests/strftime_variation22.phpt new file mode 100644 index 0000000..7b72ca5 --- /dev/null +++ b/ext/date/tests/strftime_variation22.phpt @@ -0,0 +1,59 @@ +--TEST-- +Test strftime() function : usage variation - Checking Preferred date and time representation other than on Windows. +--SKIPIF-- + +--FILE-- + "%c", + 'Preferred date representation' => "%x", + 'Preferred time representation' => "%X", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( $value ); + var_dump( strftime($value, $timestamp) ); +} + +?> +===DONE=== +--EXPECT-- +*** Testing strftime() : usage variation *** + +--Preferred date and time representation-- +string(2) "%c" +string(24) "Fri Aug 8 08:08:08 2008" + +--Preferred date representation-- +string(2) "%x" +string(8) "08/08/08" + +--Preferred time representation-- +string(2) "%X" +string(8) "08:08:08" +===DONE=== diff --git a/ext/date/tests/strftime_variation23.phpt b/ext/date/tests/strftime_variation23.phpt new file mode 100644 index 0000000..b7cf8d7 --- /dev/null +++ b/ext/date/tests/strftime_variation23.phpt @@ -0,0 +1,36 @@ +--TEST-- +Test strftime() function : usage variation - Checking large positive and negative float values to timestamp. +--FILE-- + +===DONE=== +--EXPECTREGEX-- +\*\*\* Testing strftime\(\) : usage variation \*\*\* + +-- Testing strftime\(\) function with float 12.3456789000e10 to timestamp -- +string\(\d*\)\s"Mar\s(26|11)\s(1935|5882)\s(04|00):(50|30):(16|00)" + +-- Testing strftime\(\) function with float -12.3456789000e10 to timestamp -- +string\(\d*\)\s"(Oct|Dec)\s(08|13|22)\s(2004|1901|-1943)\s(19|20|23):(09|45|30):(44|52|00)" +===DONE=== diff --git a/ext/date/tests/strftime_variation3.phpt b/ext/date/tests/strftime_variation3.phpt new file mode 100644 index 0000000..342cb76 --- /dev/null +++ b/ext/date/tests/strftime_variation3.phpt @@ -0,0 +1,52 @@ +--TEST-- +Test strftime() function : usage variation - Passing week related format strings to format argument. +--FILE-- + "%a", + 'Full weekday name' => "%A", + 'Week number of the year' => "%U", + 'Week number of the year in decimal number' => "%W", +); +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--Abbreviated weekday name-- +string(%d) "%s" +string(3) "Fri" + +--Full weekday name-- +string(%d) "%s" +string(6) "Friday" + +--Week number of the year-- +string(%d) "%d" +string(2) "31" + +--Week number of the year in decimal number-- +string(%d) "%d" +string(2) "31" +===DONE=== diff --git a/ext/date/tests/strftime_variation4.phpt b/ext/date/tests/strftime_variation4.phpt new file mode 100644 index 0000000..6236dd9 --- /dev/null +++ b/ext/date/tests/strftime_variation4.phpt @@ -0,0 +1,48 @@ +--TEST-- +Test strftime() function : usage variation - Passing month related format strings to format argument. +--FILE-- + "%b", + 'Full month name' => "%B", + 'Month as decimal' => "%m", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--Abbreviated month name-- +string(%d) "%s" +string(3) "Aug" + +--Full month name-- +string(%d) "%s" +string(6) "August" + +--Month as decimal-- +string(%d) "%d" +string(2) "08" +===DONE=== diff --git a/ext/date/tests/strftime_variation5.phpt b/ext/date/tests/strftime_variation5.phpt new file mode 100644 index 0000000..90f4e37 --- /dev/null +++ b/ext/date/tests/strftime_variation5.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test strftime() function : usage variation - Passing date related format strings to format argument. +--FILE-- + "%y", + 'Year as decimal number including the century' => "%Y", + 'Time zone offset' => "%Z", + 'Time zone offset' => "%z", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--Year as decimal number without a century-- +string(%d) "%d" +string(2) "08" + +--Year as decimal number including the century-- +string(%d) "%d" +string(4) "2008" + +--Time zone offset-- +string(%d) "%s" +string(%d) "%s" +===DONE=== diff --git a/ext/date/tests/strftime_variation6.phpt b/ext/date/tests/strftime_variation6.phpt new file mode 100644 index 0000000..6713a19 --- /dev/null +++ b/ext/date/tests/strftime_variation6.phpt @@ -0,0 +1,60 @@ +--TEST-- +Test strftime() function : usage variation - Passing time related format strings to format argument. +--FILE-- + "%H", + 'Hour as decimal by 12-hour format' => "%I", + 'Minute as decimal number' => "%M", + 'AM/PM format for a time' => "%p", + 'Second as decimal number' => "%S", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--Hour as decimal by 24-hour format-- +string(%d) "%d" +string(2) "18" + +--Hour as decimal by 12-hour format-- +string(%d) "%d" +string(2) "06" + +--Minute as decimal number-- +string(%d) "%d" +string(2) "08" + +--AM/PM format for a time-- +string(%d) "%s" +string(2) "PM" + +--Second as decimal number-- +string(%d) "%d" +string(2) "08" +===DONE=== diff --git a/ext/date/tests/strftime_variation7.phpt b/ext/date/tests/strftime_variation7.phpt new file mode 100644 index 0000000..67fd416 --- /dev/null +++ b/ext/date/tests/strftime_variation7.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test strftime() function : usage variation - Passing day related format strings to format argument. +--FILE-- + "%d", + 'Day of the year as a decimal number' => "%j", + 'Day of the week as a decimal number' => "%w" +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +}; + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--Day of the month as a decimal number-- +string(%d) "%d" +string(2) "08" + +--Day of the year as a decimal number-- +string(%d) "%d" +string(3) "221" + +--Day of the week as a decimal number-- +string(%d) "%d" +string(1) "5" +===DONE=== diff --git a/ext/date/tests/strftime_variation8.phpt b/ext/date/tests/strftime_variation8.phpt new file mode 100644 index 0000000..af8089f --- /dev/null +++ b/ext/date/tests/strftime_variation8.phpt @@ -0,0 +1,31 @@ +--TEST-- +Test strftime() function : usage variation - Passing literal related strings to format argument. +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +-- Testing strftime() function with a literal % character to format -- +string(1) "%" +string(1) "%" +===DONE=== diff --git a/ext/date/tests/strftime_variation9.phpt b/ext/date/tests/strftime_variation9.phpt new file mode 100644 index 0000000..23aa92d --- /dev/null +++ b/ext/date/tests/strftime_variation9.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test strftime() function : usage variation - Checking week related formats which are not supported on Windows. +--SKIPIF-- + +--FILE-- + "%V", + 'Weekday as decimal' => "%u", +); + +// loop through each element of the array for timestamp + +foreach($inputs as $key =>$value) { + echo "\n--$key--\n"; + var_dump( strftime($value) ); + var_dump( strftime($value, $timestamp) ); +} + +?> +===DONE=== +--EXPECTF-- +*** Testing strftime() : usage variation *** + +--The ISO 8601:1988 week number-- +bool(false) +bool(false) + +--Weekday as decimal-- +bool(false) +bool(false) +===DONE=== diff --git a/ext/date/tests/strtotime-mysql-64bit.phpt b/ext/date/tests/strtotime-mysql-64bit.phpt new file mode 100644 index 0000000..38e7f15 --- /dev/null +++ b/ext/date/tests/strtotime-mysql-64bit.phpt @@ -0,0 +1,28 @@ +--TEST-- +strtotime() and mysql timestamps (64 bit) +--SKIPIF-- + +--FILE-- + +--EXPECT-- +string(31) "Fri, 23 May 1997 09:15:28 +0000" +string(31) "Sun, 31 Dec 2000 18:58:59 +0000" +string(31) "Wed, 10 Apr 2080 10:10:10 +0000" + diff --git a/ext/date/tests/strtotime-mysql.phpt b/ext/date/tests/strtotime-mysql.phpt new file mode 100644 index 0000000..e5935bb --- /dev/null +++ b/ext/date/tests/strtotime-mysql.phpt @@ -0,0 +1,27 @@ +--TEST-- +strtotime() and mysql timestamps (32 bit) +--SKIPIF-- + +--FILE-- + +--EXPECT-- +string(31) "Fri, 23 May 1997 09:15:28 +0000" +string(31) "Sun, 31 Dec 2000 18:58:59 +0000" +bool(false) diff --git a/ext/date/tests/strtotime-relative.phpt b/ext/date/tests/strtotime-relative.phpt new file mode 100644 index 0000000..769cd2e --- /dev/null +++ b/ext/date/tests/strtotime-relative.phpt @@ -0,0 +1,98 @@ +--TEST-- +strtotime() with relative offsets +--FILE-- + +--EXPECT-- ++80412 seconds: 2008-02-29T10:20:12+0000 +-80412 seconds: 2008-02-27T13:39:48+0000 ++86399 seconds: 2008-02-29T11:59:59+0000 +-86399 seconds: 2008-02-27T12:00:01+0000 ++86400 seconds: 2008-02-29T12:00:00+0000 +-86400 seconds: 2008-02-27T12:00:00+0000 ++86401 seconds: 2008-02-29T12:00:01+0000 +-86401 seconds: 2008-02-27T11:59:59+0000 ++112913 seconds: 2008-02-29T19:21:53+0000 +-112913 seconds: 2008-02-27T04:38:07+0000 ++134 hours: 2008-03-05T02:00:00+0000 +-134 hours: 2008-02-22T22:00:00+0000 ++167 hours: 2008-03-06T11:00:00+0000 +-167 hours: 2008-02-21T13:00:00+0000 ++168 hours: 2008-03-06T12:00:00+0000 +-168 hours: 2008-02-21T12:00:00+0000 ++169 hours: 2008-03-06T13:00:00+0000 +-169 hours: 2008-02-21T11:00:00+0000 ++183 hours: 2008-03-07T03:00:00+0000 +-183 hours: 2008-02-20T21:00:00+0000 ++178 days: 2008-08-24T12:00:00+0000 +-178 days: 2007-09-03T12:00:00+0000 ++179 days: 2008-08-25T12:00:00+0000 +-179 days: 2007-09-02T12:00:00+0000 ++180 days: 2008-08-26T12:00:00+0000 +-180 days: 2007-09-01T12:00:00+0000 ++183 days: 2008-08-29T12:00:00+0000 +-183 days: 2007-08-29T12:00:00+0000 ++184 days: 2008-08-30T12:00:00+0000 +-184 days: 2007-08-28T12:00:00+0000 ++115 months: 2017-09-28T12:00:00+0000 +-115 months: 1998-07-28T12:00:00+0000 ++119 months: 2018-01-28T12:00:00+0000 +-119 months: 1998-03-28T12:00:00+0000 ++120 months: 2018-02-28T12:00:00+0000 +-120 months: 1998-02-28T12:00:00+0000 ++121 months: 2018-03-28T12:00:00+0000 +-121 months: 1998-01-28T12:00:00+0000 ++128 months: 2018-10-28T12:00:00+0000 +-128 months: 1997-06-28T12:00:00+0000 ++24 years: 2032-02-28T12:00:00+0000 +-24 years: 1984-02-28T12:00:00+0000 ++25 years: 2033-02-28T12:00:00+0000 +-25 years: 1983-02-28T12:00:00+0000 ++26 years: 2034-02-28T12:00:00+0000 +-26 years: 1982-02-28T12:00:00+0000 diff --git a/ext/date/tests/strtotime.phpt b/ext/date/tests/strtotime.phpt new file mode 100644 index 0000000..aef7d68 --- /dev/null +++ b/ext/date/tests/strtotime.phpt @@ -0,0 +1,20 @@ +--TEST-- +strtotime() function +--FILE-- + +--EXPECT-- +2005-07-14T22:30:41+0200 +2005-07-15T00:30:41+0200 +2005-07-14T22:30:41+0200 +2005-07-14T22:30:41+0200 diff --git a/ext/date/tests/strtotime2.phpt b/ext/date/tests/strtotime2.phpt new file mode 100644 index 0000000..b8b6059 --- /dev/null +++ b/ext/date/tests/strtotime2.phpt @@ -0,0 +1,40 @@ +--TEST-- +strtotime() on date constants +--FILE-- + +--EXPECT-- +DATE_ATOM: OK +DATE_COOKIE: OK +DATE_ISO8601: OK +DATE_RFC822: OK +DATE_RFC850: OK +DATE_RFC1036: OK +DATE_RFC1123: OK +DATE_RFC2822: OK +DATE_RFC3339: OK +DATE_RSS: OK +DATE_W3C: OK diff --git a/ext/date/tests/strtotime3-64bit.phpt b/ext/date/tests/strtotime3-64bit.phpt new file mode 100644 index 0000000..7dc0816 --- /dev/null +++ b/ext/date/tests/strtotime3-64bit.phpt @@ -0,0 +1,71 @@ +--TEST-- +strtotime() function (64 bit) +--SKIPIF-- + +--FILE-- + +--EXPECT-- +bool(false) +bool(false) +string(31) "Thu, 15 Jun 2006 00:00:00 +0100" +string(31) "Fri, 16 Jun 2006 22:49:12 +0100" +bool(false) +string(31) "Fri, 16 Jun 2006 23:49:12 +0100" +bool(false) +string(31) "Fri, 16 Jun 2006 02:22:00 +0100" +string(31) "Mon, 16 Jun 0222 02:22:00 -0036" +string(31) "Fri, 16 Jun 2006 02:22:33 +0100" +bool(false) +string(31) "Tue, 02 Mar 2004 00:00:00 +0000" +string(31) "Tue, 02 Mar 2004 00:00:00 +0000" +string(31) "Sun, 12 Feb 2006 23:12:23 +0000" +bool(false) +string(31) "Fri, 16 Jun 2006 00:00:00 +0100" +string(31) "Sun, 15 Jan 2006 00:00:00 +0000" +string(31) "Sun, 15 Jan 2006 00:00:00 +0000" +string(31) "Tue, 10 Oct 2000 13:55:36 +0100" +bool(false) +string(31) "Fri, 16 Jun 2006 20:06:00 +0100" +string(31) "Mon, 16 Jun 1986 22:51:59 +0100" +string(31) "Mon, 16 Jan 2006 00:00:00 +0000" +string(31) "Mon, 16 Jan 2006 00:00:00 +0000" diff --git a/ext/date/tests/strtotime3.phpt b/ext/date/tests/strtotime3.phpt new file mode 100644 index 0000000..6aa5640 --- /dev/null +++ b/ext/date/tests/strtotime3.phpt @@ -0,0 +1,71 @@ +--TEST-- +strtotime() function (32 bit) +--SKIPIF-- + +--FILE-- + +--EXPECT-- +bool(false) +bool(false) +string(31) "Thu, 15 Jun 2006 00:00:00 +0100" +string(31) "Fri, 16 Jun 2006 22:49:12 +0100" +bool(false) +string(31) "Fri, 16 Jun 2006 23:49:12 +0100" +bool(false) +string(31) "Fri, 16 Jun 2006 02:22:00 +0100" +bool(false) +string(31) "Fri, 16 Jun 2006 02:22:33 +0100" +bool(false) +string(31) "Tue, 02 Mar 2004 00:00:00 +0000" +string(31) "Tue, 02 Mar 2004 00:00:00 +0000" +string(31) "Sun, 12 Feb 2006 23:12:23 +0000" +bool(false) +string(31) "Fri, 16 Jun 2006 00:00:00 +0100" +string(31) "Sun, 15 Jan 2006 00:00:00 +0000" +string(31) "Sun, 15 Jan 2006 00:00:00 +0000" +string(31) "Tue, 10 Oct 2000 13:55:36 +0100" +bool(false) +string(31) "Fri, 16 Jun 2006 20:06:00 +0100" +string(31) "Mon, 16 Jun 1986 22:51:59 +0100" +string(31) "Mon, 16 Jan 2006 00:00:00 +0000" +string(31) "Mon, 16 Jan 2006 00:00:00 +0000" diff --git a/ext/date/tests/strtotime_basic.phpt b/ext/date/tests/strtotime_basic.phpt new file mode 100644 index 0000000..75f6697 --- /dev/null +++ b/ext/date/tests/strtotime_basic.phpt @@ -0,0 +1,46 @@ +--TEST-- +strtotime() function - a test to show the difference in behaviour between 'first' and '1', "second" and "2"... +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +%string|unicode%(10) "2008-12-01" +%string|unicode%(10) "2008-12-08" +%string|unicode%(10) "2008-12-15" +%string|unicode%(10) "2008-12-08" +%string|unicode%(10) "2008-12-15" +%string|unicode%(10) "2008-12-22" diff --git a/ext/date/tests/strtotime_basic2.phpt b/ext/date/tests/strtotime_basic2.phpt new file mode 100644 index 0000000..f90e66d --- /dev/null +++ b/ext/date/tests/strtotime_basic2.phpt @@ -0,0 +1,13 @@ +--TEST-- +strtotime() with return false +--CREDITS-- +"Anna Filina" +#PHPTestFest2009 2009-05-02 +--INI-- +date.timezone=UTC +--FILE-- + +--EXPECT-- +bool(false) \ No newline at end of file diff --git a/ext/date/tests/strtotime_variation_scottish.phpt b/ext/date/tests/strtotime_variation_scottish.phpt new file mode 100644 index 0000000..0b21b22 --- /dev/null +++ b/ext/date/tests/strtotime_variation_scottish.phpt @@ -0,0 +1,15 @@ +--TEST-- +Checking whisky time +--FILE-- + +--EXPECTF-- +%string|unicode%(8) "07:15:00" +%string|unicode%(8) "06:45:00" +%string|unicode%(8) "19:15:00" +%string|unicode%(8) "18:45:00" diff --git a/ext/date/tests/sunfuncts.phpt b/ext/date/tests/sunfuncts.phpt new file mode 100644 index 0000000..59acb12 --- /dev/null +++ b/ext/date/tests/sunfuncts.phpt @@ -0,0 +1,42 @@ +--TEST-- +date_sunrise() and date_sunset() functions +--INI-- +precision=13 +--FILE-- + +--EXPECTF-- +1041395864 06:37 6.6290131458%d +1041432452 16:47 16.792451114%d +1044073855 06:30 6.5154089279%d +1044112463 17:14 17.239870289%d +1046491495 06:04 6.0822145033%d +1046533075 17:37 17.632011035%d +1049167581 05:26 5.4394438111%d +1049212774 17:59 17.993035729%d +1051757532 04:52 4.8701934126%d +1051806007 18:20 18.335390508%d +1054434776 04:32 4.5489827182%d +1054485647 18:40 18.679812949%d +1057026949 04:35 4.5971956372%d +1057078197 18:49 18.832563396%d +1059706409 04:53 4.8916575089%d +1059755837 18:37 18.621440704%d +1062385999 05:13 5.2220951121%d +1062432291 18:04 18.080957168%d +1064979098 05:31 5.5273199215%d +1065021952 17:25 17.431339135%d +1067658845 05:54 5.9016292870%d +1067698274 16:51 16.853902453%d +1070252387 06:19 6.3299242689%d +1070289382 16:36 16.606312600%d diff --git a/ext/date/tests/test-parse-from-format.phpt b/ext/date/tests/test-parse-from-format.phpt new file mode 100644 index 0000000..2bf9c4e --- /dev/null +++ b/ext/date/tests/test-parse-from-format.phpt @@ -0,0 +1,143 @@ +--TEST-- +date_create_from_format() and date_parse_from_format(). +--FILE-- +format( $format ) ; + $date2 = date_create_from_format( $format, $formatted ); + var_dump( $format, $formatted, $date2 ); + echo "\n"; + if ( $date2 === false ) + { + var_dump(date_parse_from_format( $format, $formatted ) ); + } +} +?> +--EXPECT-- +string(13) "Y-m-d\TH:i:sP" +string(25) "2008-07-08T22:14:12+02:00" +object(DateTime)#2 (3) { + ["date"]=> + string(19) "2008-07-08 22:14:12" + ["timezone_type"]=> + int(1) + ["timezone"]=> + string(6) "+02:00" +} + +string(16) "l, d-M-y H:i:s T" +string(36) "Tuesday, 08-Jul-08 22:14:12 GMT+0200" +object(DateTime)#1 (3) { + ["date"]=> + string(19) "2008-07-08 22:14:12" + ["timezone_type"]=> + int(1) + ["timezone"]=> + string(6) "+02:00" +} + +string(13) "Y-m-d\TH:i:sO" +string(24) "2008-07-08T22:14:12+0200" +object(DateTime)#3 (3) { + ["date"]=> + string(19) "2008-07-08 22:14:12" + ["timezone_type"]=> + int(1) + ["timezone"]=> + string(6) "+02:00" +} + +string(16) "D, d M y H:i:s O" +string(29) "Tue, 08 Jul 08 22:14:12 +0200" +object(DateTime)#2 (3) { + ["date"]=> + string(19) "2008-07-08 22:14:12" + ["timezone_type"]=> + int(1) + ["timezone"]=> + string(6) "+02:00" +} + +string(16) "l, d-M-y H:i:s T" +string(36) "Tuesday, 08-Jul-08 22:14:12 GMT+0200" +object(DateTime)#1 (3) { + ["date"]=> + string(19) "2008-07-08 22:14:12" + ["timezone_type"]=> + int(1) + ["timezone"]=> + string(6) "+02:00" +} + +string(16) "D, d M y H:i:s O" +string(29) "Tue, 08 Jul 08 22:14:12 +0200" +object(DateTime)#3 (3) { + ["date"]=> + string(19) "2008-07-08 22:14:12" + ["timezone_type"]=> + int(1) + ["timezone"]=> + string(6) "+02:00" +} + +string(16) "D, d M Y H:i:s O" +string(31) "Tue, 08 Jul 2008 22:14:12 +0200" +object(DateTime)#2 (3) { + ["date"]=> + string(19) "2008-07-08 22:14:12" + ["timezone_type"]=> + int(1) + ["timezone"]=> + string(6) "+02:00" +} + +string(16) "D, d M Y H:i:s O" +string(31) "Tue, 08 Jul 2008 22:14:12 +0200" +object(DateTime)#1 (3) { + ["date"]=> + string(19) "2008-07-08 22:14:12" + ["timezone_type"]=> + int(1) + ["timezone"]=> + string(6) "+02:00" +} + +string(13) "Y-m-d\TH:i:sP" +string(25) "2008-07-08T22:14:12+02:00" +object(DateTime)#3 (3) { + ["date"]=> + string(19) "2008-07-08 22:14:12" + ["timezone_type"]=> + int(1) + ["timezone"]=> + string(6) "+02:00" +} + +string(16) "D, d M Y H:i:s O" +string(31) "Tue, 08 Jul 2008 22:14:12 +0200" +object(DateTime)#2 (3) { + ["date"]=> + string(19) "2008-07-08 22:14:12" + ["timezone_type"]=> + int(1) + ["timezone"]=> + string(6) "+02:00" +} + +string(13) "Y-m-d\TH:i:sP" +string(25) "2008-07-08T22:14:12+02:00" +object(DateTime)#1 (3) { + ["date"]=> + string(19) "2008-07-08 22:14:12" + ["timezone_type"]=> + int(1) + ["timezone"]=> + string(6) "+02:00" +} diff --git a/ext/date/tests/time_basic.phpt b/ext/date/tests/time_basic.phpt new file mode 100644 index 0000000..116c0a4 --- /dev/null +++ b/ext/date/tests/time_basic.phpt @@ -0,0 +1,16 @@ +--TEST-- +Test return type and value for expected input time() +--FILE-- + +===DONE=== +--EXPECTF-- +int(%d) +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/time_error.phpt b/ext/date/tests/time_error.phpt new file mode 100644 index 0000000..853c1ba --- /dev/null +++ b/ext/date/tests/time_error.phpt @@ -0,0 +1,19 @@ +--TEST-- +Test wrong number of arguments for time() +--FILE-- + +===DONE=== +--EXPECTF-- +Too many arguments +int(%d) +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/timestamp-in-dst.phpt b/ext/date/tests/timestamp-in-dst.phpt new file mode 100644 index 0000000..bef18ee --- /dev/null +++ b/ext/date/tests/timestamp-in-dst.phpt @@ -0,0 +1,11 @@ +--TEST-- +Format timestamp in DST test +--INI-- +date.timezone=CEST +--FILE-- +format( 'c' ) ); +?> +--EXPECT-- +string(25) "2008-02-14T13:34:51+00:00" diff --git a/ext/date/tests/timezone-configuration.phpt b/ext/date/tests/timezone-configuration.phpt new file mode 100644 index 0000000..c70d645 --- /dev/null +++ b/ext/date/tests/timezone-configuration.phpt @@ -0,0 +1,19 @@ +--TEST-- +timezone configuration [1] +--INI-- +date.timezone=GMT +--FILE-- + +--EXPECT-- +1119125744 +1119129344 +1119125744 diff --git a/ext/date/tests/timezone_abbreviations_list_basic1.phpt b/ext/date/tests/timezone_abbreviations_list_basic1.phpt new file mode 100644 index 0000000..e5dfe5d --- /dev/null +++ b/ext/date/tests/timezone_abbreviations_list_basic1.phpt @@ -0,0 +1,70 @@ +--TEST-- +Test timezone_abbreviations_list() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing timezone_abbreviations_list() : basic functionality *** +string(5) "array" +int(%d) + +-- Format a sample entry -- +array(4) { + [0]=> + array(3) { + ["dst"]=> + bool(true) + ["offset"]=> + int(-14400) + ["timezone_id"]=> + string(18) "America/Porto_Acre" + } + [1]=> + array(3) { + ["dst"]=> + bool(true) + ["offset"]=> + int(-14400) + ["timezone_id"]=> + string(16) "America/Eirunepe" + } + [2]=> + array(3) { + ["dst"]=> + bool(true) + ["offset"]=> + int(-14400) + ["timezone_id"]=> + string(18) "America/Rio_Branco" + } + [3]=> + array(3) { + ["dst"]=> + bool(true) + ["offset"]=> + int(-14400) + ["timezone_id"]=> + string(11) "Brazil/Acre" + } +} +===DONE=== diff --git a/ext/date/tests/timezone_identifiers_list_basic1.phpt b/ext/date/tests/timezone_identifiers_list_basic1.phpt new file mode 100644 index 0000000..4476da2 --- /dev/null +++ b/ext/date/tests/timezone_identifiers_list_basic1.phpt @@ -0,0 +1,36 @@ +--TEST-- +Test timezone_identifiers_list() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing timezone_identifiers_list() : basic functionality *** +Check return tpe is ARRAY +bool(true) +Check array contains some common timezones +bool(true) +bool(true) +bool(true) +===DONE=== + \ No newline at end of file diff --git a/ext/date/tests/timezone_identifiers_list_wrong_constructor.phpt b/ext/date/tests/timezone_identifiers_list_wrong_constructor.phpt new file mode 100644 index 0000000..5b8493b --- /dev/null +++ b/ext/date/tests/timezone_identifiers_list_wrong_constructor.phpt @@ -0,0 +1,15 @@ +--TEST-- +timezone_identifiers_list: Test that correct notice is given when timezone_identifiers_list is given 4096 as parameter +--CREDITS-- +Havard Eide +#PHPTestFest2009 Norway 2009-06-09 \o/ +--INI-- +error_reporting=E_ALL +date.timezone=UTC +--FILE-- + +--EXPECTF-- +Notice: timezone_identifiers_list(): A two-letter ISO 3166-1 compatible country code is expected in %s on line %d \ No newline at end of file diff --git a/ext/date/tests/timezone_location_get.phpt b/ext/date/tests/timezone_location_get.phpt new file mode 100644 index 0000000..745fc87 --- /dev/null +++ b/ext/date/tests/timezone_location_get.phpt @@ -0,0 +1,24 @@ +--TEST-- +timezone_location_get: Test that timezone_location_get returns a correct array of information +--CREDITS-- +Havard Eide +#PHPTestFest2009 Norway 2009-06-09 \o/ +--INI-- +date.timezone=UTC +--FILE-- + +--EXPECT-- +array(4) { + ["country_code"]=> + string(2) "NO" + ["latitude"]=> + float(59.91666) + ["longitude"]=> + float(10.75) + ["comments"]=> + string(0) "" +} + diff --git a/ext/date/tests/timezone_name_from_abbr_basic1.phpt b/ext/date/tests/timezone_name_from_abbr_basic1.phpt new file mode 100644 index 0000000..b591fe2 --- /dev/null +++ b/ext/date/tests/timezone_name_from_abbr_basic1.phpt @@ -0,0 +1,68 @@ +--TEST-- +Test timezone_name_from_abbr() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing timezone_name_from_abbr() : basic functionality *** +-- Tests with special cases first - no lookup needed -- +string(3) "UTC" +string(3) "UTC" +-- Lookup with just name -- +string(13) "Europe/Berlin" +string(16) "America/New_York" +-- Lookup with name and offset-- +string(15) "America/Halifax" +string(12) "Asia/Baghdad" +string(11) "Asia/Aqtobe" +string(11) "Asia/Aqtobe" +string(11) "Asia/Aqtobe" +string(17) "America/Boa_Vista" +string(12) "Asia/Yerevan" +-- Tests without valid name - uses gmtOffset and isdst to find match -- +string(13) "Europe/London" +string(17) "America/Sao_Paulo" +string(16) "America/New_York" +string(15) "America/Halifax" +-- Tests with invalid offsets -- +bool(false) +bool(false) +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/timezone_name_from_abbr_error.phpt b/ext/date/tests/timezone_name_from_abbr_error.phpt new file mode 100644 index 0000000..640caae --- /dev/null +++ b/ext/date/tests/timezone_name_from_abbr_error.phpt @@ -0,0 +1,42 @@ +--TEST-- +Test timezone_name_from_abbr() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing timezone_name_from_abbr() : error conditions *** + +-- Testing timezone_name_from_abbr() function with Zero arguments -- + +Warning: timezone_name_from_abbr() expects at least 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing timezone_name_from_abbr() function with more than expected no. of arguments -- + +Warning: timezone_name_from_abbr() expects at most 3 parameters, 4 given in %s on line %d +bool(false) +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/timezone_name_from_abbr_variation1.phpt b/ext/date/tests/timezone_name_from_abbr_variation1.phpt new file mode 100644 index 0000000..4825d09 --- /dev/null +++ b/ext/date/tests/timezone_name_from_abbr_variation1.phpt @@ -0,0 +1,205 @@ +--TEST-- +Test timezone_name_from_abbr() function : usage variation - Passing unexpected values to first argument $abbr. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$gmtOffset= 3600; +$isdst = 1; + +foreach($inputs as $variation =>$abbr) { + echo "\n-- $variation --\n"; + var_dump( timezone_name_from_abbr($abbr, $gmtOffset, $isdst) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing timezone_name_from_abbr() : usage variation - unexpected values to first argument $abbr*** + +-- int 0 -- +string(13) "Europe/London" + +-- int 12345 -- +string(13) "Europe/London" + +-- int -12345 -- +string(13) "Europe/London" + +-- float 10.5 -- +string(13) "Europe/London" + +-- float -10.5 -- +string(13) "Europe/London" + +-- float .5 -- +string(13) "Europe/London" + +-- empty array -- + +Warning: timezone_name_from_abbr() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: timezone_name_from_abbr() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: timezone_name_from_abbr() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: timezone_name_from_abbr() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +string(13) "Europe/London" + +-- lowercase null -- +string(13) "Europe/London" + +-- lowercase true -- +string(13) "Europe/London" + +-- lowercase false -- +string(13) "Europe/London" + +-- uppercase TRUE -- +string(13) "Europe/London" + +-- uppercase FALSE -- +string(13) "Europe/London" + +-- empty string DQ -- +string(13) "Europe/London" + +-- empty string SQ -- +string(13) "Europe/London" + +-- string DQ -- +string(13) "Europe/London" + +-- string SQ -- +string(13) "Europe/London" + +-- mixed case string -- +string(13) "Europe/London" + +-- heredoc -- +string(13) "Europe/London" + +-- instance of classWithToString -- +string(13) "Europe/London" + +-- instance of classWithoutToString -- + +Warning: timezone_name_from_abbr() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +-- undefined var -- +string(13) "Europe/London" + +-- unset var -- +string(13) "Europe/London" + +-- resource -- + +Warning: timezone_name_from_abbr() expects parameter 1 to be string, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/timezone_name_from_abbr_variation2.phpt b/ext/date/tests/timezone_name_from_abbr_variation2.phpt new file mode 100644 index 0000000..0a587a3 --- /dev/null +++ b/ext/date/tests/timezone_name_from_abbr_variation2.phpt @@ -0,0 +1,219 @@ +--TEST-- +Test timezone_name_from_abbr() function : usage variation - Passing unexpected values to second argument $gmtOffset. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$abbr= "GMT"; +$isdst = 1; + +foreach($inputs as $variation =>$gmtOffset) { + echo "\n-- $variation --\n"; + var_dump( timezone_name_from_abbr($abbr, $gmtOffset, $isdst) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing timezone_name_from_abbr() : usage variation - unexpected values to second argument $gmtOffset*** + +-- int 0 -- +string(3) "UTC" + +-- int 12345 -- +string(3) "UTC" + +-- int -12345 -- +string(3) "UTC" + +-- float 10.5 -- +string(3) "UTC" + +-- float -10.5 -- +string(3) "UTC" + +-- float .5 -- +string(3) "UTC" + +-- empty array -- + +Warning: timezone_name_from_abbr() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: timezone_name_from_abbr() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: timezone_name_from_abbr() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: timezone_name_from_abbr() expects parameter 2 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +string(3) "UTC" + +-- lowercase null -- +string(3) "UTC" + +-- lowercase true -- +string(3) "UTC" + +-- lowercase false -- +string(3) "UTC" + +-- uppercase TRUE -- +string(3) "UTC" + +-- uppercase FALSE -- +string(3) "UTC" + +-- empty string DQ -- + +Warning: timezone_name_from_abbr() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: timezone_name_from_abbr() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: timezone_name_from_abbr() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: timezone_name_from_abbr() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: timezone_name_from_abbr() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: timezone_name_from_abbr() expects parameter 2 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: timezone_name_from_abbr() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: timezone_name_from_abbr() expects parameter 2 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +string(3) "UTC" + +-- unset var -- +string(3) "UTC" + +-- resource -- + +Warning: timezone_name_from_abbr() expects parameter 2 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/timezone_name_from_abbr_variation3.phpt b/ext/date/tests/timezone_name_from_abbr_variation3.phpt new file mode 100644 index 0000000..66cb210 --- /dev/null +++ b/ext/date/tests/timezone_name_from_abbr_variation3.phpt @@ -0,0 +1,219 @@ +--TEST-- +Test timezone_name_from_abbr() function : usage variation - Passing unexpected values to third argument $isdst. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$abbr= "GMT"; +$gmtOffset = 3600; + +foreach($inputs as $variation =>$isdst) { + echo "\n-- $variation --\n"; + var_dump( timezone_name_from_abbr($abbr, $gmtOffset, $isdst) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing timezone_name_from_abbr() : usage variation - unexpected values to third argument $isdst*** + +-- int 0 -- +string(3) "UTC" + +-- int 12345 -- +string(3) "UTC" + +-- int -12345 -- +string(3) "UTC" + +-- float 10.5 -- +string(3) "UTC" + +-- float -10.5 -- +string(3) "UTC" + +-- float .5 -- +string(3) "UTC" + +-- empty array -- + +Warning: timezone_name_from_abbr() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: timezone_name_from_abbr() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: timezone_name_from_abbr() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: timezone_name_from_abbr() expects parameter 3 to be long, array given in %s on line %d +bool(false) + +-- uppercase NULL -- +string(3) "UTC" + +-- lowercase null -- +string(3) "UTC" + +-- lowercase true -- +string(3) "UTC" + +-- lowercase false -- +string(3) "UTC" + +-- uppercase TRUE -- +string(3) "UTC" + +-- uppercase FALSE -- +string(3) "UTC" + +-- empty string DQ -- + +Warning: timezone_name_from_abbr() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: timezone_name_from_abbr() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: timezone_name_from_abbr() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: timezone_name_from_abbr() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: timezone_name_from_abbr() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: timezone_name_from_abbr() expects parameter 3 to be long, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: timezone_name_from_abbr() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: timezone_name_from_abbr() expects parameter 3 to be long, object given in %s on line %d +bool(false) + +-- undefined var -- +string(3) "UTC" + +-- unset var -- +string(3) "UTC" + +-- resource -- + +Warning: timezone_name_from_abbr() expects parameter 3 to be long, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/timezone_name_get_error.phpt b/ext/date/tests/timezone_name_get_error.phpt new file mode 100644 index 0000000..3c33e33 --- /dev/null +++ b/ext/date/tests/timezone_name_get_error.phpt @@ -0,0 +1,56 @@ +--TEST-- +Test timezone_name_get() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing timezone_name_get() : error conditions *** + +-- Testing timezone_name_get() function with zero arguments -- + +Warning: timezone_name_get() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing date_timezone_set() function with more than expected no. of arguments -- + +Warning: timezone_name_get() expects exactly 1 parameter, 2 given in %s on line %d +bool(false) + +-- Testing timezone_name_get() function with an invalid values for $object argument -- + +Warning: timezone_name_get() expects parameter 1 to be DateTimeZone, object given in %s on line %d +bool(false) + +Warning: timezone_name_get() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +Warning: timezone_name_get() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/timezone_offset_get_basic1.phpt b/ext/date/tests/timezone_offset_get_basic1.phpt new file mode 100644 index 0000000..aa658e9 --- /dev/null +++ b/ext/date/tests/timezone_offset_get_basic1.phpt @@ -0,0 +1,34 @@ +--TEST-- +Test timezone_offset_get() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing timezone_offset_get() : basic functionality *** +%rint\(0\)|int\(3600\)%r +%rint\(-18000\)|int\(-14400\)%r +%rint\(-28800\)|int\(-25200\)%r +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/timezone_offset_get_error.phpt b/ext/date/tests/timezone_offset_get_error.phpt new file mode 100644 index 0000000..b8ca2c1 --- /dev/null +++ b/ext/date/tests/timezone_offset_get_error.phpt @@ -0,0 +1,84 @@ +--TEST-- +Test timezone_offset_get() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing timezone_offset_get() : error conditions *** + +-- Testing timezone_offset_get() function with zero arguments -- + +Warning: timezone_offset_get() expects exactly 2 parameters, 0 given in %s on line %d +bool(false) + +-- Testing timezone_offset_get() function with less than expected no. of arguments -- + +Warning: timezone_offset_get() expects exactly 2 parameters, 1 given in %s on line %d +bool(false) + +-- Testing timezone_offset_get() function with more than expected no. of arguments -- + +Warning: timezone_offset_get() expects exactly 2 parameters, 3 given in %s on line %d +bool(false) + +-- Testing timezone_offset_get() function with an invalid values for $object argument -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, object given in %s on line %d +bool(false) + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- Testing timezone_offset_get() function with an invalid values for $datetime argument -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, object given in %s on line %d +bool(false) + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, integer given in %s on line %d +bool(false) + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, null given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/timezone_offset_get_variation1.phpt b/ext/date/tests/timezone_offset_get_variation1.phpt new file mode 100644 index 0000000..5fd5e8b --- /dev/null +++ b/ext/date/tests/timezone_offset_get_variation1.phpt @@ -0,0 +1,252 @@ +--TEST-- +Test timezone_offset_get() function : usage variation - Passing unexpected values to first argument $object. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$datetime = new DateTime("2009-01-31 15:14:10"); + +foreach($inputs as $variation =>$object) { + echo "\n-- $variation --\n"; + var_dump( timezone_offset_get($object, $datetime) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing timezone_offset_get() : usage variation - unexpected values to first argument $object*** + +-- int 0 -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- unset var -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- resource -- + +Warning: timezone_offset_get() expects parameter 1 to be DateTimeZone, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/timezone_offset_get_variation2.phpt b/ext/date/tests/timezone_offset_get_variation2.phpt new file mode 100644 index 0000000..93311f3 --- /dev/null +++ b/ext/date/tests/timezone_offset_get_variation2.phpt @@ -0,0 +1,252 @@ +--TEST-- +Test timezone_offset_get() function : usage variation - Passing unexpected values to second argument $datetime. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$object = new DateTimezone("Europe/London"); + +foreach($inputs as $variation =>$datetime) { + echo "\n-- $variation --\n"; + var_dump( timezone_offset_get($object, $datetime) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing timezone_offset_get() : usage variation - unexpected values to second argument $datetime*** + +-- int 0 -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, null given in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, null given in %s on line %d +bool(false) + +-- unset var -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, null given in %s on line %d +bool(false) + +-- resource -- + +Warning: timezone_offset_get() expects parameter 2 to be DateTime, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/timezone_open_basic1.phpt b/ext/date/tests/timezone_open_basic1.phpt new file mode 100644 index 0000000..7a98936 --- /dev/null +++ b/ext/date/tests/timezone_open_basic1.phpt @@ -0,0 +1,27 @@ +--TEST-- +Test timezone_open() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing timezone_open() : basic functionality *** +object(DateTimeZone)#%d (0) { +} +object(DateTimeZone)#%d (0) { +} +object(DateTimeZone)#%d (0) { +} +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/timezone_open_error.phpt b/ext/date/tests/timezone_open_error.phpt new file mode 100644 index 0000000..16c5f0b --- /dev/null +++ b/ext/date/tests/timezone_open_error.phpt @@ -0,0 +1,35 @@ +--TEST-- +Test timezone_open() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing timezone_open() : error conditions *** + +-- Testing timezone_open() function with zero arguments -- + +Warning: timezone_open() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing timezone_open() function with more than expected no. of arguments -- + +Warning: timezone_open() expects exactly 1 parameter, 2 given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/timezone_open_variation1.phpt b/ext/date/tests/timezone_open_variation1.phpt new file mode 100644 index 0000000..9a069f6 --- /dev/null +++ b/ext/date/tests/timezone_open_variation1.phpt @@ -0,0 +1,251 @@ +--TEST-- +Test timezone_open function : usage variation - Passing unexpected values to first argument $timezone. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +foreach($inputs as $variation =>$timezone) { + echo "\n-- $variation --\n"; + var_dump( timezone_open($timezone) ); + +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing timezone_open() : usage variation - unexpected values to first argument $timezone*** + +-- int 0 -- + +Warning: timezone_open(): Unknown or bad timezone (0) in %s on line %d +bool(false) + +-- int 1 -- + +Warning: timezone_open(): Unknown or bad timezone (1) in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: timezone_open(): Unknown or bad timezone (12345) in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: timezone_open(): Unknown or bad timezone (-12345) in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: timezone_open(): Unknown or bad timezone (10.5) in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: timezone_open(): Unknown or bad timezone (-10.5) in %s on line %d +bool(false) + +-- float .5 -- + +Warning: timezone_open(): Unknown or bad timezone (0.5) in %s on line %d +bool(false) + +-- empty array -- + +Warning: timezone_open() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: timezone_open() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: timezone_open() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: timezone_open() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: timezone_open(): Unknown or bad timezone () in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: timezone_open(): Unknown or bad timezone () in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: timezone_open(): Unknown or bad timezone (1) in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: timezone_open(): Unknown or bad timezone () in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: timezone_open(): Unknown or bad timezone (1) in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: timezone_open(): Unknown or bad timezone () in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: timezone_open(): Unknown or bad timezone () in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: timezone_open(): Unknown or bad timezone () in %s on line %d +bool(false) + +-- string DQ -- + +Warning: timezone_open(): Unknown or bad timezone (string) in %s on line %d +bool(false) + +-- string SQ -- + +Warning: timezone_open(): Unknown or bad timezone (string) in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: timezone_open(): Unknown or bad timezone (sTrInG) in %s on line %d +bool(false) + +-- heredoc -- + +Warning: timezone_open(): Unknown or bad timezone (hello world) in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: timezone_open(): Unknown or bad timezone (Class A object) in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: timezone_open() expects parameter 1 to be string, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: timezone_open(): Unknown or bad timezone () in %s on line %d +bool(false) + +-- unset var -- + +Warning: timezone_open(): Unknown or bad timezone () in %s on line %d +bool(false) + +-- resource -- + +Warning: timezone_open() expects parameter 1 to be string, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/timezone_transitions_get_basic1.phpt b/ext/date/tests/timezone_transitions_get_basic1.phpt new file mode 100644 index 0000000..eb6cf99 --- /dev/null +++ b/ext/date/tests/timezone_transitions_get_basic1.phpt @@ -0,0 +1,53 @@ +--TEST-- +Test timezone_transitions_get() function : basic functionality +--FILE-- + +===DONE=== +--EXPECT-- +*** Testing timezone_transitions_get() : basic functionality *** + +-- Get all transitions -- +string(5) "array" + +-- Total number of transitions: 243 -- + +-- Format a sample entry pfor Spring 1963 -- +array(5) { + ["ts"]=> + int(-213228000) + ["time"]=> + string(24) "1963-03-31T02:00:00+0000" + ["offset"]=> + int(3600) + ["isdst"]=> + bool(true) + ["abbr"]=> + string(3) "BST" +} +===DONE=== \ No newline at end of file diff --git a/ext/date/tests/timezone_transitions_get_error.phpt b/ext/date/tests/timezone_transitions_get_error.phpt new file mode 100644 index 0000000..142cfda --- /dev/null +++ b/ext/date/tests/timezone_transitions_get_error.phpt @@ -0,0 +1,58 @@ +--TEST-- +Test timezone_transitions_get() function : error conditions +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing timezone_transitions_get() : error conditions *** + +-- Testing timezone_transitions_get() function with zero arguments -- + +Warning: timezone_transitions_get() expects at least 1 parameter, 0 given in %s on line %d +bool(false) + +-- Testing timezone_transitions_get() function with more than expected no. of arguments -- + +Warning: timezone_transitions_get() expects at most 3 parameters, 4 given in %s on line %d +bool(false) + +-- Testing timezone_transitions_get() function with an invalid values for $object argument -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, object given in %s on line %d +bool(false) + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/timezone_transitions_get_variation1.phpt b/ext/date/tests/timezone_transitions_get_variation1.phpt new file mode 100644 index 0000000..62159dd --- /dev/null +++ b/ext/date/tests/timezone_transitions_get_variation1.phpt @@ -0,0 +1,250 @@ +--TEST-- +Test timezone_transitions_get() function : usage variation - Passing unexpected values to first argument $object. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +foreach($inputs as $variation =>$object) { + echo "\n-- $variation --\n"; + var_dump( timezone_transitions_get($object) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing timezone_transitions_get() : usage variation - unexpected values to first argument $object*** + +-- int 0 -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int 1 -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int 12345 -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- int -12345 -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, integer given in %s on line %d +bool(false) + +-- float 10.5 -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- float -10.5 -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- float .5 -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, double given in %s on line %d +bool(false) + +-- empty array -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- int indexed array -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- associative array -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- nested arrays -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, array given in %s on line %d +bool(false) + +-- uppercase NULL -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- lowercase null -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- lowercase true -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- lowercase false -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- uppercase TRUE -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- uppercase FALSE -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, boolean given in %s on line %d +bool(false) + +-- empty string DQ -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- empty string SQ -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- string DQ -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- string SQ -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- mixed case string -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- heredoc -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, string given in %s on line %d +bool(false) + +-- instance of classWithToString -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, object given in %s on line %d +bool(false) + +-- instance of classWithoutToString -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, object given in %s on line %d +bool(false) + +-- undefined var -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- unset var -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, null given in %s on line %d +bool(false) + +-- resource -- + +Warning: timezone_transitions_get() expects parameter 1 to be DateTimeZone, resource given in %s on line %d +bool(false) +===DONE=== diff --git a/ext/date/tests/timezone_transitions_get_variation2.phpt b/ext/date/tests/timezone_transitions_get_variation2.phpt new file mode 100644 index 0000000..bc5fa85 --- /dev/null +++ b/ext/date/tests/timezone_transitions_get_variation2.phpt @@ -0,0 +1,253 @@ +--TEST-- +Test timezone_transitions_get() function : usage variation - Passing unexpected values to first argument $timestamp_begin. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$tz = timezone_open("Europe/London"); +$timestamp_end = mktime(0, 0, 0, 1, 1, 1975); + +foreach($inputs as $variation =>$timestamp_begin) { + echo "\n-- $variation --\n"; + $tran = timezone_transitions_get($tz, $timestamp_begin, $timestamp_end); + var_dump( gettype($tran) ); + var_dump( count($tran) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing timezone_transitions_get() : usage variation - unexpected values to first argument $timestamp_begin *** + +-- int 0 -- +string(5) "array" +int(8) + +-- int 1 -- +string(5) "array" +int(8) + +-- int 12345 -- +string(5) "array" +int(8) + +-- int -12345 -- +string(5) "array" +int(8) + +-- float 10.5 -- +string(5) "array" +int(8) + +-- float -10.5 -- +string(5) "array" +int(8) + +-- float .5 -- +string(5) "array" +int(8) + +-- empty array -- + +Warning: timezone_transitions_get() expects parameter 2 to be long, array given in %s on line %d +string(7) "boolean" +int(1) + +-- int indexed array -- + +Warning: timezone_transitions_get() expects parameter 2 to be long, array given in %s on line %d +string(7) "boolean" +int(1) + +-- associative array -- + +Warning: timezone_transitions_get() expects parameter 2 to be long, array given in %s on line %d +string(7) "boolean" +int(1) + +-- nested arrays -- + +Warning: timezone_transitions_get() expects parameter 2 to be long, array given in %s on line %d +string(7) "boolean" +int(1) + +-- uppercase NULL -- +string(5) "array" +int(8) + +-- lowercase null -- +string(5) "array" +int(8) + +-- lowercase true -- +string(5) "array" +int(8) + +-- lowercase false -- +string(5) "array" +int(8) + +-- uppercase TRUE -- +string(5) "array" +int(8) + +-- uppercase FALSE -- +string(5) "array" +int(8) + +-- empty string DQ -- + +Warning: timezone_transitions_get() expects parameter 2 to be long, string given in %s on line %d +string(7) "boolean" +int(1) + +-- empty string SQ -- + +Warning: timezone_transitions_get() expects parameter 2 to be long, string given in %s on line %d +string(7) "boolean" +int(1) + +-- string DQ -- + +Warning: timezone_transitions_get() expects parameter 2 to be long, string given in %s on line %d +string(7) "boolean" +int(1) + +-- string SQ -- + +Warning: timezone_transitions_get() expects parameter 2 to be long, string given in %s on line %d +string(7) "boolean" +int(1) + +-- mixed case string -- + +Warning: timezone_transitions_get() expects parameter 2 to be long, string given in %s on line %d +string(7) "boolean" +int(1) + +-- heredoc -- + +Warning: timezone_transitions_get() expects parameter 2 to be long, string given in %s on line %d +string(7) "boolean" +int(1) + +-- instance of classWithToString -- + +Warning: timezone_transitions_get() expects parameter 2 to be long, object given in %s on line %d +string(7) "boolean" +int(1) + +-- instance of classWithoutToString -- + +Warning: timezone_transitions_get() expects parameter 2 to be long, object given in %s on line %d +string(7) "boolean" +int(1) + +-- undefined var -- +string(5) "array" +int(8) + +-- unset var -- +string(5) "array" +int(8) + +-- resource -- + +Warning: timezone_transitions_get() expects parameter 2 to be long, resource given in %s on line %d +string(7) "boolean" +int(1) +===DONE=== diff --git a/ext/date/tests/timezone_transitions_get_variation3.phpt b/ext/date/tests/timezone_transitions_get_variation3.phpt new file mode 100644 index 0000000..0112a2f --- /dev/null +++ b/ext/date/tests/timezone_transitions_get_variation3.phpt @@ -0,0 +1,253 @@ +--TEST-- +Test timezone_transitions_get() function : usage variation - Passing unexpected values to first argument $timestamp_env. +--FILE-- + 1, 'two' => 2); + +// resource +$file_handle = fopen(__FILE__, 'r'); + +//array of values to iterate over +$inputs = array( + + // int data + 'int 0' => 0, + 'int 1' => 1, + 'int 12345' => 12345, + 'int -12345' => -12345, + + // float data + 'float 10.5' => 10.5, + 'float -10.5' => -10.5, + 'float .5' => .5, + + // array data + 'empty array' => array(), + 'int indexed array' => $index_array, + 'associative array' => $assoc_array, + 'nested arrays' => array('foo', $index_array, $assoc_array), + + // null data + 'uppercase NULL' => NULL, + 'lowercase null' => null, + + // boolean data + 'lowercase true' => true, + 'lowercase false' =>false, + 'uppercase TRUE' =>TRUE, + 'uppercase FALSE' =>FALSE, + + // empty data + 'empty string DQ' => "", + 'empty string SQ' => '', + + // string data + 'string DQ' => "string", + 'string SQ' => 'string', + 'mixed case string' => "sTrInG", + 'heredoc' => $heredoc, + + // object data + 'instance of classWithToString' => new classWithToString(), + 'instance of classWithoutToString' => new classWithoutToString(), + + // undefined data + 'undefined var' => @$undefined_var, + + // unset data + 'unset var' => @$unset_var, + + // resource + 'resource' => $file_handle +); + +$tz = timezone_open("Europe/London"); +$timestamp_begin = mktime(0, 0, 0, 1, 1, 1975); + +foreach($inputs as $variation =>$timestamp_end) { + echo "\n-- $variation --\n"; + $tran = timezone_transitions_get($tz, $timestamp_begin, $timestamp_end); + var_dump( gettype($tran) ); + var_dump( count($tran) ); +}; + +// closing the resource +fclose( $file_handle ); + +?> +===DONE=== +--EXPECTF-- +*** Testing timezone_transitions_get() : usage variation - unexpected values to first argument $timestamp_end *** + +-- int 0 -- +string(5) "array" +int(1) + +-- int 1 -- +string(5) "array" +int(1) + +-- int 12345 -- +string(5) "array" +int(1) + +-- int -12345 -- +string(5) "array" +int(1) + +-- float 10.5 -- +string(5) "array" +int(1) + +-- float -10.5 -- +string(5) "array" +int(1) + +-- float .5 -- +string(5) "array" +int(1) + +-- empty array -- + +Warning: timezone_transitions_get() expects parameter 3 to be long, array given in %s on line %d +string(7) "boolean" +int(1) + +-- int indexed array -- + +Warning: timezone_transitions_get() expects parameter 3 to be long, array given in %s on line %d +string(7) "boolean" +int(1) + +-- associative array -- + +Warning: timezone_transitions_get() expects parameter 3 to be long, array given in %s on line %d +string(7) "boolean" +int(1) + +-- nested arrays -- + +Warning: timezone_transitions_get() expects parameter 3 to be long, array given in %s on line %d +string(7) "boolean" +int(1) + +-- uppercase NULL -- +string(5) "array" +int(1) + +-- lowercase null -- +string(5) "array" +int(1) + +-- lowercase true -- +string(5) "array" +int(1) + +-- lowercase false -- +string(5) "array" +int(1) + +-- uppercase TRUE -- +string(5) "array" +int(1) + +-- uppercase FALSE -- +string(5) "array" +int(1) + +-- empty string DQ -- + +Warning: timezone_transitions_get() expects parameter 3 to be long, string given in %s on line %d +string(7) "boolean" +int(1) + +-- empty string SQ -- + +Warning: timezone_transitions_get() expects parameter 3 to be long, string given in %s on line %d +string(7) "boolean" +int(1) + +-- string DQ -- + +Warning: timezone_transitions_get() expects parameter 3 to be long, string given in %s on line %d +string(7) "boolean" +int(1) + +-- string SQ -- + +Warning: timezone_transitions_get() expects parameter 3 to be long, string given in %s on line %d +string(7) "boolean" +int(1) + +-- mixed case string -- + +Warning: timezone_transitions_get() expects parameter 3 to be long, string given in %s on line %d +string(7) "boolean" +int(1) + +-- heredoc -- + +Warning: timezone_transitions_get() expects parameter 3 to be long, string given in %s on line %d +string(7) "boolean" +int(1) + +-- instance of classWithToString -- + +Warning: timezone_transitions_get() expects parameter 3 to be long, object given in %s on line %d +string(7) "boolean" +int(1) + +-- instance of classWithoutToString -- + +Warning: timezone_transitions_get() expects parameter 3 to be long, object given in %s on line %d +string(7) "boolean" +int(1) + +-- undefined var -- +string(5) "array" +int(1) + +-- unset var -- +string(5) "array" +int(1) + +-- resource -- + +Warning: timezone_transitions_get() expects parameter 3 to be long, resource given in %s on line %d +string(7) "boolean" +int(1) +===DONE=== diff --git a/ext/date/tests/timezones-list.phpt b/ext/date/tests/timezones-list.phpt new file mode 100644 index 0000000..5998498 --- /dev/null +++ b/ext/date/tests/timezones-list.phpt @@ -0,0 +1,49 @@ +--TEST-- +timezone_identifiers_list() +--FILE-- + +--EXPECT-- +found +notfound +found +found + +found +found +found +notfound + +found +notfound +found +found + +notfound +notfound +found +notfound diff --git a/ext/date/tests/timezones.phpt b/ext/date/tests/timezones.phpt new file mode 100644 index 0000000..c7e470a --- /dev/null +++ b/ext/date/tests/timezones.phpt @@ -0,0 +1,26 @@ +--TEST-- +setting bogus timezones +--FILE-- + +--EXPECTF-- +Notice: date_default_timezone_set(): Timezone ID 'AAA' is invalid in %stimezones.php on line 4 +bool(false) + +Notice: date_default_timezone_set(): Timezone ID 'ZZZ' is invalid in %stimezones.php on line 5 +bool(false) +bool(true) +bool(true) +done -- cgit v1.2.1