From 39c64ae8467fc40613ffb195c4d8cd124bdc3155 Mon Sep 17 00:00:00 2001 From: Brody Flannigan Date: Thu, 15 Aug 2024 17:53:41 -0400 Subject: [PATCH] Change route colors, introduce calendar.txt, fix bug with past midnight trips --- data/gtfs/calendar.txt | 165 ++++++ data/gtfs/calendar_dates.txt | 998 ++++++++--------------------------- data/gtfs/feed_info.txt | 2 +- data/gtfs/routes.txt | 20 +- data/gtfs/trips.txt | 702 ++++++++++++------------ data/static/routes.json | 233 ++++---- src/gtfsWriter.ts | 7 +- src/index.ts | 22 +- src/makeTripsStopTimes.ts | 4 +- src/optimizeCalendar.ts | 99 ++++ stq-qc-ca.gtfs.zip | Bin 16506 -> 18078 bytes 11 files changed, 999 insertions(+), 1253 deletions(-) create mode 100644 data/gtfs/calendar.txt create mode 100644 src/optimizeCalendar.ts diff --git a/data/gtfs/calendar.txt b/data/gtfs/calendar.txt new file mode 100644 index 0000000..10bc5ff --- /dev/null +++ b/data/gtfs/calendar.txt @@ -0,0 +1,165 @@ +service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date +service_1,1,1,1,1,1,0,0,20240813,20240927 +service_2,1,1,1,1,1,1,1,20240813,20240929 +service_3,1,1,1,1,1,0,0,20240813,20240927 +service_4,1,1,1,1,1,1,0,20240813,20240928 +service_5,0,0,0,0,0,0,0,20240813,20240923 +service_6,0,1,0,0,0,0,0,20240813,20240813 +service_7,0,0,0,0,0,0,0,20240813,20240926 +service_8,0,0,0,0,0,0,0,20240813,20240926 +service_9,1,1,0,1,1,1,1,20240813,20240928 +service_10,1,1,0,1,1,1,1,20240813,20240927 +service_11,1,1,1,1,1,0,1,20240813,20240929 +service_12,1,1,1,0,0,0,0,20240813,20240925 +service_13,1,1,1,1,1,1,1,20240814,20240929 +service_14,0,0,1,0,0,0,0,20240814,20240814 +service_15,0,0,0,0,0,0,0,20240814,20240924 +service_16,0,0,0,0,0,0,0,20240814,20240927 +service_17,0,0,1,0,0,0,0,20240814,20240925 +service_18,0,0,0,1,0,0,0,20240815,20240815 +service_19,0,0,0,0,0,0,0,20240815,20240928 +service_20,0,0,0,1,0,0,0,20240815,20240926 +service_21,0,0,0,1,0,0,1,20240815,20240929 +service_22,0,0,0,1,0,1,0,20240815,20240928 +service_23,0,0,0,1,1,1,0,20240815,20240928 +service_24,0,0,0,0,1,0,0,20240816,20240816 +service_25,0,0,0,0,0,0,0,20240816,20240916 +service_26,0,1,1,0,1,0,0,20240816,20240828 +service_27,0,0,0,0,0,0,0,20240816,20240929 +service_28,0,0,0,0,1,0,0,20240816,20240927 +service_29,0,0,0,0,0,1,1,20240817,20240929 +service_30,0,0,0,0,0,1,1,20240817,20240929 +service_31,0,0,0,0,0,1,0,20240817,20240928 +service_32,0,0,0,0,0,0,0,20240817,20240929 +service_33,0,0,0,0,0,0,0,20240817,20240902 +service_34,0,0,0,0,0,0,0,20240817,20240929 +service_35,0,0,0,0,0,0,0,20240817,20240917 +service_36,0,0,0,0,0,0,0,20240817,20240914 +service_37,0,0,0,0,0,0,0,20240817,20240917 +service_38,0,0,0,0,0,0,0,20240817,20240917 +service_39,0,0,0,0,0,1,0,20240817,20240928 +service_40,0,0,0,1,0,0,0,20240818,20240920 +service_41,0,0,0,0,0,0,0,20240818,20240917 +service_42,0,0,0,0,0,0,0,20240818,20240918 +service_43,0,0,0,0,1,0,1,20240818,20240901 +service_44,0,0,0,0,0,0,0,20240818,20240921 +service_45,0,0,0,0,0,0,1,20240818,20240929 +service_46,0,1,0,0,0,0,0,20240818,20240903 +service_47,0,0,0,0,0,0,0,20240818,20240915 +service_48,0,0,0,0,0,0,0,20240819,20240922 +service_49,0,0,0,0,0,0,0,20240819,20240918 +service_50,0,0,0,0,0,0,0,20240819,20240917 +service_51,0,0,0,0,0,0,0,20240819,20240906 +service_52,0,0,0,0,0,0,0,20240819,20240918 +service_53,0,0,0,0,0,0,0,20240819,20240929 +service_54,0,0,0,0,0,0,0,20240819,20240921 +service_55,0,0,0,0,0,0,0,20240820,20240921 +service_56,0,0,0,0,0,0,0,20240820,20240929 +service_57,0,0,0,0,0,0,0,20240820,20240919 +service_58,0,0,0,0,0,0,0,20240820,20240918 +service_59,0,0,0,0,0,0,0,20240820,20240923 +service_60,0,0,0,0,0,0,0,20240820,20240919 +service_61,0,0,0,0,0,0,0,20240820,20240918 +service_62,0,0,0,0,0,0,0,20240820,20240922 +service_63,1,1,0,0,0,0,0,20240820,20240902 +service_64,0,0,1,0,0,0,0,20240821,20240821 +service_65,0,0,0,0,0,0,0,20240821,20240920 +service_66,0,0,1,0,0,0,1,20240821,20240907 +service_67,0,0,0,0,0,0,0,20240821,20240922 +service_68,0,0,0,0,0,0,1,20240821,20240905 +service_69,0,0,0,0,0,0,0,20240821,20240920 +service_70,0,0,0,0,0,0,0,20240822,20240924 +service_71,0,0,0,0,0,0,0,20240822,20240921 +service_72,0,0,0,0,0,0,0,20240822,20240921 +service_73,0,0,0,0,0,0,0,20240822,20240921 +service_74,0,0,0,0,0,0,0,20240822,20240924 +service_75,0,0,0,0,0,0,0,20240822,20240923 +service_76,0,0,0,0,0,0,0,20240822,20240906 +service_77,0,0,0,0,0,0,0,20240823,20240922 +service_78,0,0,0,0,0,0,0,20240823,20240922 +service_79,1,0,0,0,0,0,0,20240823,20240907 +service_80,0,0,0,0,0,0,0,20240823,20240922 +service_81,0,0,0,0,1,0,0,20240823,20240823 +service_82,0,0,0,0,0,0,0,20240823,20240907 +service_83,0,0,0,0,0,0,0,20240823,20240921 +service_84,0,0,0,0,0,0,0,20240823,20240920 +service_85,0,0,0,0,0,0,0,20240823,20240922 +service_86,0,0,0,0,0,0,0,20240824,20240919 +service_87,0,0,0,0,0,0,0,20240824,20240909 +service_88,0,0,0,1,0,1,0,20240824,20240905 +service_89,0,0,0,0,0,1,0,20240824,20240824 +service_90,0,0,0,0,0,0,0,20240824,20240910 +service_91,1,0,0,0,0,1,0,20240824,20240902 +service_92,0,0,0,0,0,0,0,20240824,20240922 +service_93,0,0,0,0,0,0,0,20240824,20240921 +service_94,1,0,0,0,0,0,0,20240824,20240921 +service_95,0,0,0,0,0,0,0,20240824,20240912 +service_96,0,0,0,0,0,0,0,20240825,20240924 +service_97,0,0,0,0,0,0,0,20240825,20240911 +service_98,0,0,0,0,0,0,1,20240825,20240825 +service_99,0,0,0,0,0,0,0,20240825,20240919 +service_100,0,0,0,0,0,0,0,20240825,20240925 +service_101,0,0,0,0,0,0,0,20240825,20240923 +service_102,0,0,0,0,0,0,0,20240825,20240923 +service_103,1,0,0,0,0,0,0,20240826,20240826 +service_104,0,0,0,0,0,0,0,20240826,20240924 +service_105,0,0,0,0,0,0,0,20240826,20240924 +service_106,1,1,0,0,0,0,0,20240826,20240827 +service_107,1,1,1,0,0,0,0,20240826,20240828 +service_108,1,0,0,0,0,0,1,20240826,20240908 +service_109,0,1,1,0,0,0,0,20240827,20240828 +service_110,0,0,0,0,0,0,0,20240827,20240923 +service_111,0,1,0,0,0,0,0,20240827,20240827 +service_112,0,0,1,0,0,0,0,20240828,20240828 +service_113,0,0,0,0,0,0,0,20240829,20240914 +service_114,0,0,0,0,0,0,0,20240829,20240914 +service_115,0,0,0,0,0,0,0,20240830,20240915 +service_116,0,0,0,0,1,0,1,20240830,20240901 +service_117,0,0,0,0,1,0,0,20240830,20240830 +service_118,0,0,0,0,0,0,0,20240831,20240928 +service_119,0,1,0,0,0,1,0,20240831,20240903 +service_120,0,0,0,0,0,0,0,20240831,20240918 +service_121,0,0,0,0,0,0,0,20240831,20240919 +service_122,0,1,0,0,0,0,0,20240901,20240917 +service_123,0,0,0,0,0,0,1,20240901,20240901 +service_124,0,0,0,0,0,0,0,20240901,20240917 +service_125,1,0,0,0,0,0,0,20240902,20240902 +service_126,1,0,0,0,0,0,0,20240902,20240919 +service_127,0,0,0,0,0,1,0,20240902,20240919 +service_128,1,0,0,0,0,0,0,20240902,20240916 +service_129,1,0,0,0,0,0,0,20240903,20240923 +service_130,0,1,0,0,0,0,0,20240903,20240903 +service_131,0,0,0,0,0,0,0,20240904,20240920 +service_132,0,1,0,0,0,0,0,20240905,20240920 +service_133,0,0,0,1,0,0,0,20240905,20240905 +service_134,0,0,0,0,0,0,0,20240905,20240920 +service_135,0,0,0,0,0,0,0,20240906,20240923 +service_136,0,0,0,0,1,0,0,20240906,20240906 +service_137,0,0,1,0,0,1,1,20240907,20240918 +service_138,0,0,0,0,0,1,1,20240907,20240908 +service_139,0,0,0,1,0,0,0,20240907,20240923 +service_140,0,0,0,0,0,1,0,20240907,20240921 +service_141,0,1,0,0,0,0,0,20240908,20240924 +service_142,0,0,1,0,0,0,1,20240908,20240918 +service_143,0,1,0,0,0,0,1,20240908,20240910 +service_144,0,0,0,0,0,0,1,20240908,20240929 +service_145,1,0,0,0,0,0,1,20240909,20240922 +service_146,0,0,0,0,0,0,0,20240910,20240925 +service_147,0,0,1,0,0,0,0,20240911,20240911 +service_148,0,0,0,1,0,0,0,20240912,20240912 +service_149,0,0,0,1,1,0,0,20240912,20240913 +service_150,0,0,0,0,1,0,0,20240913,20240913 +service_151,0,0,0,0,0,0,1,20240915,20240915 +service_152,1,0,0,0,0,1,0,20240916,20240928 +service_153,0,1,0,0,0,0,0,20240917,20240917 +service_154,0,0,0,1,0,0,1,20240919,20240922 +service_155,0,0,0,0,1,0,1,20240920,20240922 +service_156,0,1,0,0,0,0,1,20240922,20240924 +service_157,0,0,1,0,0,0,1,20240922,20240925 +service_158,1,0,0,0,0,0,0,20240923,20240923 +service_159,1,1,0,0,0,0,0,20240923,20240924 +service_160,0,0,1,0,0,0,0,20240925,20240925 +service_161,0,0,0,1,0,0,0,20240926,20240926 +service_162,0,0,0,0,1,0,0,20240927,20240927 +service_163,0,0,0,0,0,1,0,20240928,20240928 +service_164,0,0,0,0,0,0,1,20240929,20240929 \ No newline at end of file diff --git a/data/gtfs/calendar_dates.txt b/data/gtfs/calendar_dates.txt index 72c0e17..285fcb3 100644 --- a/data/gtfs/calendar_dates.txt +++ b/data/gtfs/calendar_dates.txt @@ -1,865 +1,311 @@ service_id,date,exception_type -service_1,20240813,1 -service_1,20240814,1 -service_1,20240815,1 -service_1,20240816,1 -service_1,20240819,1 -service_1,20240820,1 -service_1,20240821,1 -service_1,20240822,1 -service_1,20240823,1 -service_1,20240826,1 -service_1,20240827,1 -service_1,20240828,1 -service_1,20240829,1 -service_1,20240830,1 -service_1,20240902,1 -service_1,20240903,1 -service_1,20240904,1 -service_1,20240905,1 -service_1,20240906,1 -service_1,20240909,1 -service_1,20240910,1 -service_1,20240911,1 -service_1,20240912,1 -service_1,20240913,1 -service_1,20240916,1 -service_1,20240917,1 -service_1,20240918,1 -service_1,20240919,1 -service_1,20240920,1 -service_1,20240923,1 -service_1,20240924,1 -service_1,20240925,1 -service_1,20240926,1 -service_1,20240927,1 -service_2,20240813,1 -service_2,20240814,1 -service_2,20240815,1 -service_2,20240816,1 -service_2,20240817,1 -service_2,20240818,1 -service_2,20240819,1 -service_2,20240820,1 -service_2,20240821,1 -service_2,20240822,1 -service_2,20240823,1 -service_2,20240824,1 -service_2,20240825,1 -service_2,20240826,1 -service_2,20240827,1 -service_2,20240828,1 -service_2,20240829,1 -service_2,20240830,1 -service_2,20240831,1 -service_2,20240901,1 -service_2,20240902,1 -service_2,20240903,1 -service_2,20240904,1 -service_2,20240905,1 -service_2,20240906,1 -service_2,20240907,1 -service_2,20240908,1 -service_2,20240909,1 -service_2,20240910,1 -service_2,20240911,1 -service_2,20240912,1 -service_2,20240913,1 -service_2,20240914,1 -service_2,20240915,1 -service_2,20240916,1 -service_2,20240917,1 -service_2,20240918,1 -service_2,20240919,1 -service_2,20240920,1 -service_2,20240921,1 -service_2,20240922,1 -service_2,20240923,1 -service_2,20240924,1 -service_2,20240925,1 -service_2,20240926,1 -service_2,20240927,1 -service_2,20240928,1 -service_2,20240929,1 -service_3,20240814,1 -service_3,20240815,1 -service_3,20240816,1 -service_3,20240817,1 -service_3,20240818,1 -service_3,20240819,1 -service_3,20240820,1 -service_3,20240821,1 -service_3,20240822,1 -service_3,20240823,1 -service_3,20240824,1 -service_3,20240825,1 -service_3,20240826,1 -service_3,20240827,1 -service_3,20240828,1 -service_3,20240829,1 -service_3,20240830,1 -service_3,20240831,1 -service_3,20240901,1 -service_3,20240902,1 -service_3,20240903,1 -service_3,20240904,1 -service_3,20240905,1 -service_3,20240906,1 -service_3,20240907,1 -service_3,20240908,1 -service_3,20240909,1 -service_3,20240910,1 -service_3,20240911,1 -service_3,20240912,1 -service_3,20240913,1 -service_3,20240914,1 -service_3,20240915,1 -service_3,20240916,1 -service_3,20240917,1 -service_3,20240918,1 -service_3,20240919,1 -service_3,20240920,1 -service_3,20240921,1 -service_3,20240922,1 -service_3,20240923,1 -service_3,20240924,1 -service_3,20240925,1 -service_3,20240926,1 -service_3,20240927,1 -service_3,20240928,1 -service_3,20240929,1 -service_3,20240930,1 -service_4,20240813,1 -service_4,20240814,1 -service_4,20240815,1 -service_4,20240816,1 -service_4,20240819,1 -service_4,20240820,1 -service_4,20240821,1 -service_4,20240822,1 -service_4,20240823,1 -service_4,20240826,1 -service_4,20240827,1 -service_4,20240828,1 -service_4,20240829,1 -service_4,20240830,1 -service_4,20240903,1 -service_4,20240904,1 -service_4,20240905,1 -service_4,20240906,1 -service_4,20240909,1 -service_4,20240910,1 -service_4,20240911,1 -service_4,20240912,1 -service_4,20240913,1 -service_4,20240916,1 -service_4,20240917,1 -service_4,20240918,1 -service_4,20240919,1 -service_4,20240920,1 -service_4,20240923,1 -service_4,20240924,1 -service_4,20240925,1 -service_4,20240926,1 -service_4,20240927,1 +service_3,20240902,2 service_5,20240813,1 -service_5,20240814,1 -service_5,20240815,1 -service_5,20240816,1 -service_5,20240817,1 -service_5,20240819,1 -service_5,20240820,1 -service_5,20240821,1 -service_5,20240822,1 -service_5,20240823,1 -service_5,20240824,1 -service_5,20240826,1 service_5,20240827,1 -service_5,20240828,1 -service_5,20240829,1 -service_5,20240830,1 -service_5,20240831,1 -service_5,20240902,1 -service_5,20240903,1 -service_5,20240904,1 -service_5,20240905,1 -service_5,20240906,1 -service_5,20240907,1 -service_5,20240909,1 -service_5,20240910,1 -service_5,20240911,1 -service_5,20240912,1 -service_5,20240913,1 -service_5,20240914,1 -service_5,20240916,1 -service_5,20240917,1 -service_5,20240918,1 -service_5,20240919,1 -service_5,20240920,1 -service_5,20240921,1 service_5,20240923,1 -service_5,20240924,1 -service_5,20240925,1 -service_5,20240926,1 -service_5,20240927,1 -service_5,20240928,1 -service_6,20240813,1 -service_6,20240827,1 -service_6,20240923,1 service_7,20240813,1 +service_7,20240925,1 +service_7,20240926,1 service_8,20240813,1 +service_8,20240829,1 +service_8,20240914,1 service_8,20240925,1 service_8,20240926,1 -service_9,20240813,1 -service_9,20240829,1 -service_9,20240914,1 -service_9,20240925,1 -service_9,20240926,1 -service_10,20240813,1 -service_10,20240815,1 -service_10,20240816,1 -service_10,20240817,1 -service_10,20240818,1 -service_10,20240819,1 -service_10,20240820,1 -service_10,20240822,1 -service_10,20240823,1 -service_10,20240824,1 -service_10,20240825,1 -service_10,20240826,1 -service_10,20240827,1 -service_10,20240829,1 -service_10,20240830,1 -service_10,20240831,1 -service_10,20240901,1 -service_10,20240902,1 -service_10,20240903,1 -service_10,20240905,1 -service_10,20240906,1 -service_10,20240907,1 -service_10,20240909,1 -service_10,20240910,1 -service_10,20240912,1 -service_10,20240913,1 -service_10,20240914,1 -service_10,20240916,1 -service_10,20240917,1 -service_10,20240919,1 -service_10,20240920,1 -service_10,20240921,1 -service_10,20240923,1 -service_10,20240924,1 -service_10,20240926,1 -service_10,20240927,1 -service_10,20240928,1 -service_11,20240813,1 -service_11,20240815,1 -service_11,20240816,1 -service_11,20240817,1 -service_11,20240818,1 -service_11,20240819,1 -service_11,20240820,1 -service_11,20240822,1 -service_11,20240823,1 -service_11,20240824,1 -service_11,20240825,1 -service_11,20240826,1 -service_11,20240827,1 -service_11,20240829,1 -service_11,20240830,1 -service_11,20240831,1 -service_11,20240901,1 -service_11,20240902,1 -service_11,20240903,1 -service_11,20240905,1 -service_11,20240906,1 -service_11,20240909,1 -service_11,20240910,1 -service_11,20240912,1 -service_11,20240913,1 -service_11,20240916,1 -service_11,20240917,1 -service_11,20240919,1 -service_11,20240920,1 -service_11,20240923,1 -service_11,20240924,1 -service_11,20240926,1 -service_11,20240927,1 -service_12,20240813,1 -service_12,20240814,1 -service_12,20240815,1 -service_12,20240816,1 -service_12,20240818,1 -service_12,20240819,1 -service_12,20240820,1 -service_12,20240821,1 -service_12,20240822,1 -service_12,20240823,1 -service_12,20240825,1 -service_12,20240826,1 -service_12,20240827,1 -service_12,20240828,1 -service_12,20240829,1 -service_12,20240830,1 -service_12,20240901,1 -service_12,20240902,1 -service_12,20240903,1 -service_12,20240904,1 -service_12,20240905,1 -service_12,20240906,1 -service_12,20240908,1 -service_12,20240909,1 -service_12,20240910,1 -service_12,20240911,1 -service_12,20240912,1 -service_12,20240913,1 -service_12,20240915,1 -service_12,20240916,1 -service_12,20240917,1 -service_12,20240918,1 -service_12,20240919,1 -service_12,20240920,1 -service_12,20240922,1 -service_12,20240923,1 -service_12,20240924,1 -service_12,20240925,1 -service_12,20240926,1 -service_12,20240927,1 -service_12,20240929,1 -service_13,20240813,1 -service_13,20240814,1 -service_13,20240819,1 -service_13,20240820,1 -service_13,20240821,1 -service_13,20240826,1 -service_13,20240827,1 -service_13,20240828,1 -service_13,20240902,1 -service_13,20240903,1 -service_13,20240904,1 -service_13,20240909,1 -service_13,20240910,1 -service_13,20240911,1 -service_13,20240916,1 -service_13,20240917,1 -service_13,20240918,1 -service_13,20240923,1 -service_13,20240924,1 -service_13,20240925,1 -service_14,20240814,1 -service_14,20240816,1 -service_14,20240817,1 -service_14,20240818,1 -service_14,20240819,1 -service_14,20240821,1 -service_14,20240823,1 -service_14,20240825,1 -service_14,20240826,1 -service_14,20240827,1 -service_14,20240828,1 -service_14,20240829,1 -service_14,20240830,1 -service_14,20240831,1 -service_14,20240901,1 -service_14,20240902,1 -service_14,20240903,1 -service_14,20240904,1 -service_14,20240905,1 -service_14,20240906,1 -service_14,20240907,1 -service_14,20240908,1 -service_14,20240909,1 -service_14,20240910,1 -service_14,20240911,1 -service_14,20240912,1 -service_14,20240913,1 -service_14,20240914,1 -service_14,20240915,1 -service_14,20240916,1 -service_14,20240917,1 -service_14,20240918,1 -service_14,20240919,1 -service_14,20240920,1 -service_14,20240921,1 -service_14,20240922,1 -service_14,20240923,1 -service_14,20240924,1 -service_14,20240925,1 -service_14,20240926,1 -service_14,20240927,1 -service_14,20240928,1 -service_14,20240929,1 +service_9,20240908,2 +service_9,20240915,2 +service_9,20240922,2 +service_10,20240907,2 +service_10,20240908,2 +service_10,20240914,2 +service_10,20240915,2 +service_10,20240921,2 +service_10,20240922,2 +service_13,20240815,2 +service_13,20240820,2 +service_13,20240822,2 +service_13,20240824,2 service_15,20240814,1 +service_15,20240910,1 +service_15,20240924,1 service_16,20240814,1 -service_16,20240910,1 -service_16,20240924,1 -service_17,20240814,1 -service_17,20240927,1 -service_18,20240814,1 -service_18,20240821,1 -service_18,20240828,1 -service_18,20240904,1 -service_18,20240911,1 -service_18,20240918,1 -service_18,20240925,1 +service_16,20240927,1 service_19,20240815,1 -service_20,20240815,1 -service_20,20240915,1 -service_20,20240927,1 -service_20,20240928,1 -service_21,20240815,1 -service_21,20240822,1 -service_21,20240829,1 -service_21,20240905,1 -service_21,20240912,1 -service_21,20240919,1 -service_21,20240926,1 -service_22,20240815,1 -service_22,20240818,1 -service_22,20240822,1 -service_22,20240825,1 -service_22,20240829,1 -service_22,20240901,1 -service_22,20240905,1 -service_22,20240908,1 -service_22,20240912,1 -service_22,20240915,1 -service_22,20240919,1 -service_22,20240922,1 -service_22,20240926,1 -service_22,20240929,1 -service_23,20240815,1 -service_23,20240817,1 -service_23,20240822,1 -service_23,20240824,1 -service_23,20240829,1 -service_23,20240831,1 -service_23,20240905,1 -service_23,20240907,1 -service_23,20240912,1 -service_23,20240914,1 -service_23,20240919,1 -service_23,20240921,1 -service_23,20240926,1 -service_23,20240928,1 -service_24,20240815,1 -service_24,20240816,1 -service_24,20240817,1 -service_24,20240822,1 -service_24,20240823,1 -service_24,20240824,1 -service_24,20240829,1 -service_24,20240830,1 -service_24,20240831,1 -service_24,20240905,1 -service_24,20240906,1 -service_24,20240907,1 -service_24,20240912,1 -service_24,20240913,1 -service_24,20240914,1 -service_24,20240919,1 -service_24,20240920,1 -service_24,20240921,1 -service_24,20240926,1 -service_24,20240927,1 -service_24,20240928,1 +service_19,20240915,1 +service_19,20240927,1 +service_19,20240928,1 service_25,20240816,1 -service_26,20240817,1 +service_25,20240817,1 +service_25,20240916,1 +service_26,20240820,2 +service_26,20240821,2 +service_26,20240823,2 service_27,20240816,1 -service_27,20240817,1 service_27,20240916,1 -service_28,20240816,1 -service_28,20240827,1 -service_28,20240828,1 -service_29,20240817,1 -service_29,20240917,1 -service_29,20240929,1 -service_29,20240930,1 -service_30,20240817,1 -service_30,20240824,1 -service_30,20240831,1 -service_30,20240907,1 -service_30,20240914,1 -service_30,20240921,1 -service_30,20240928,1 -service_31,20240816,1 -service_31,20240823,1 -service_31,20240830,1 -service_31,20240906,1 -service_31,20240913,1 -service_31,20240920,1 -service_31,20240927,1 +service_27,20240928,1 +service_27,20240929,1 +service_30,20240902,1 +service_31,20240902,1 service_32,20240817,1 -service_32,20240818,1 -service_32,20240824,1 -service_32,20240825,1 -service_32,20240831,1 -service_32,20240901,1 -service_32,20240907,1 -service_32,20240908,1 -service_32,20240914,1 -service_32,20240915,1 -service_32,20240921,1 -service_32,20240922,1 -service_32,20240928,1 +service_32,20240916,1 service_32,20240929,1 service_33,20240817,1 -service_33,20240818,1 -service_33,20240824,1 -service_33,20240825,1 -service_33,20240831,1 -service_33,20240901,1 service_33,20240902,1 -service_33,20240907,1 -service_33,20240908,1 -service_33,20240914,1 -service_33,20240915,1 -service_33,20240921,1 -service_33,20240922,1 -service_33,20240928,1 -service_33,20240929,1 service_34,20240817,1 -service_34,20240824,1 -service_34,20240831,1 +service_34,20240820,1 service_34,20240902,1 -service_34,20240907,1 -service_34,20240914,1 -service_34,20240921,1 -service_34,20240928,1 +service_34,20240915,1 +service_34,20240919,1 +service_34,20240929,1 service_35,20240817,1 -service_35,20240916,1 -service_35,20240929,1 +service_35,20240915,1 +service_35,20240917,1 service_36,20240817,1 -service_36,20240902,1 +service_36,20240914,1 service_37,20240817,1 -service_37,20240820,1 -service_37,20240902,1 -service_37,20240915,1 -service_37,20240919,1 -service_37,20240929,1 +service_37,20240819,1 +service_37,20240917,1 service_38,20240817,1 -service_38,20240915,1 +service_38,20240819,1 +service_38,20240831,1 service_38,20240917,1 -service_39,20240817,1 -service_39,20240914,1 service_40,20240818,1 service_40,20240820,1 -service_40,20240918,1 +service_40,20240821,1 +service_40,20240829,2 +service_40,20240904,1 +service_40,20240912,2 +service_40,20240920,1 service_41,20240818,1 -service_41,20240820,1 -service_41,20240901,1 -service_41,20240918,1 +service_41,20240917,1 service_42,20240818,1 -service_42,20240820,1 -service_42,20240821,1 -service_42,20240822,1 -service_42,20240904,1 service_42,20240905,1 -service_42,20240919,1 -service_42,20240920,1 -service_43,20240818,1 -service_43,20240917,1 +service_42,20240918,1 +service_43,20240823,2 +service_43,20240825,2 service_44,20240818,1 -service_44,20240905,1 +service_44,20240906,1 +service_44,20240916,1 service_44,20240918,1 -service_45,20240818,1 -service_45,20240830,1 -service_45,20240901,1 +service_44,20240921,1 service_46,20240818,1 -service_46,20240906,1 -service_46,20240916,1 -service_46,20240918,1 -service_46,20240921,1 +service_46,20240827,2 service_47,20240818,1 -service_47,20240825,1 -service_47,20240901,1 -service_47,20240908,1 service_47,20240915,1 -service_47,20240922,1 -service_47,20240929,1 -service_48,20240818,1 -service_48,20240820,1 -service_48,20240903,1 +service_48,20240819,1 +service_48,20240823,1 +service_48,20240906,1 +service_48,20240922,1 service_49,20240819,1 -service_49,20240916,1 +service_49,20240915,1 +service_49,20240918,1 service_50,20240819,1 -service_50,20240823,1 -service_50,20240906,1 -service_50,20240922,1 +service_50,20240908,1 +service_50,20240917,1 service_51,20240819,1 -service_51,20240915,1 -service_51,20240918,1 +service_51,20240906,1 service_52,20240819,1 -service_52,20240908,1 -service_52,20240917,1 +service_52,20240918,1 service_53,20240819,1 -service_53,20240906,1 +service_53,20240929,1 service_54,20240819,1 -service_54,20240918,1 -service_55,20240819,1 -service_55,20240929,1 -service_56,20240819,1 -service_56,20240917,1 -service_56,20240921,1 +service_54,20240917,1 +service_54,20240921,1 +service_55,20240820,1 +service_55,20240822,1 +service_55,20240921,1 +service_56,20240820,1 +service_56,20240919,1 +service_56,20240929,1 service_57,20240820,1 -service_57,20240822,1 -service_57,20240921,1 +service_57,20240919,1 service_58,20240820,1 -service_58,20240919,1 -service_58,20240929,1 +service_58,20240822,1 +service_58,20240903,1 +service_58,20240909,1 +service_58,20240918,1 service_59,20240820,1 -service_59,20240919,1 +service_59,20240903,1 +service_59,20240909,1 +service_59,20240923,1 service_60,20240820,1 service_60,20240822,1 -service_60,20240903,1 -service_60,20240909,1 -service_60,20240918,1 +service_60,20240919,1 service_61,20240820,1 service_61,20240903,1 service_61,20240909,1 -service_61,20240923,1 +service_61,20240918,1 service_62,20240820,1 -service_62,20240822,1 -service_62,20240919,1 -service_63,20240820,1 -service_63,20240903,1 -service_63,20240909,1 -service_63,20240918,1 -service_64,20240820,1 -service_64,20240922,1 +service_62,20240922,1 +service_63,20240826,2 +service_63,20240827,2 service_65,20240821,1 -service_65,20240903,1 -service_66,20240821,1 +service_65,20240904,1 +service_65,20240917,1 +service_65,20240920,1 +service_66,20240823,1 +service_66,20240828,2 +service_66,20240901,2 +service_66,20240907,1 service_67,20240821,1 -service_67,20240904,1 -service_67,20240917,1 -service_67,20240920,1 +service_67,20240824,1 +service_67,20240922,1 service_68,20240821,1 -service_68,20240823,1 -service_68,20240825,1 -service_68,20240904,1 -service_68,20240907,1 +service_68,20240825,2 +service_68,20240905,1 service_69,20240821,1 -service_69,20240824,1 -service_69,20240922,1 -service_70,20240821,1 -service_70,20240901,1 -service_70,20240905,1 -service_71,20240821,1 -service_71,20240823,1 -service_71,20240825,1 -service_71,20240905,1 -service_71,20240920,1 +service_69,20240823,1 +service_69,20240825,1 +service_69,20240905,1 +service_69,20240920,1 +service_70,20240822,1 +service_70,20240826,1 +service_70,20240906,1 +service_70,20240921,1 +service_70,20240924,1 +service_71,20240822,1 +service_71,20240906,1 +service_71,20240916,1 +service_71,20240921,1 service_72,20240822,1 -service_72,20240826,1 -service_72,20240906,1 +service_72,20240907,1 +service_72,20240908,1 +service_72,20240918,1 service_72,20240921,1 -service_72,20240924,1 service_73,20240822,1 -service_73,20240906,1 -service_73,20240916,1 service_73,20240921,1 service_74,20240822,1 -service_74,20240907,1 +service_74,20240905,1 service_74,20240908,1 -service_74,20240918,1 -service_74,20240921,1 +service_74,20240910,1 +service_74,20240924,1 service_75,20240822,1 -service_75,20240921,1 +service_75,20240923,1 service_76,20240822,1 -service_76,20240905,1 -service_76,20240908,1 -service_76,20240910,1 -service_76,20240924,1 -service_77,20240822,1 -service_77,20240923,1 -service_78,20240822,1 -service_78,20240906,1 +service_76,20240906,1 +service_77,20240823,1 +service_77,20240904,1 +service_77,20240922,1 +service_78,20240823,1 +service_78,20240922,1 service_79,20240823,1 -service_79,20240904,1 -service_79,20240922,1 +service_79,20240826,2 +service_79,20240907,1 service_80,20240823,1 +service_80,20240824,1 +service_80,20240904,1 service_80,20240922,1 -service_81,20240823,1 -service_81,20240902,1 -service_81,20240907,1 service_82,20240823,1 -service_82,20240824,1 -service_82,20240904,1 -service_82,20240922,1 +service_82,20240907,1 service_83,20240823,1 +service_83,20240907,1 +service_83,20240909,1 +service_83,20240921,1 service_84,20240823,1 -service_84,20240907,1 +service_84,20240903,1 +service_84,20240920,1 service_85,20240823,1 -service_85,20240907,1 -service_85,20240909,1 -service_85,20240921,1 -service_86,20240823,1 -service_86,20240903,1 -service_86,20240920,1 -service_87,20240823,1 -service_87,20240910,1 -service_87,20240922,1 -service_88,20240824,1 -service_88,20240825,1 -service_88,20240919,1 -service_89,20240824,1 -service_89,20240909,1 +service_85,20240910,1 +service_85,20240922,1 +service_86,20240824,1 +service_86,20240825,1 +service_86,20240919,1 +service_87,20240824,1 +service_87,20240909,1 +service_88,20240829,2 +service_88,20240831,2 service_90,20240824,1 -service_90,20240905,1 -service_91,20240824,1 +service_90,20240910,1 +service_91,20240826,2 +service_91,20240831,2 service_92,20240824,1 service_92,20240910,1 +service_92,20240922,1 service_93,20240824,1 -service_93,20240902,1 +service_93,20240904,1 +service_93,20240909,1 +service_93,20240921,1 service_94,20240824,1 -service_94,20240910,1 -service_94,20240922,1 +service_94,20240902,2 +service_94,20240916,2 +service_94,20240921,1 service_95,20240824,1 -service_95,20240904,1 service_95,20240909,1 -service_95,20240921,1 -service_96,20240824,1 -service_96,20240826,1 -service_96,20240909,1 -service_96,20240921,1 -service_97,20240824,1 -service_97,20240909,1 -service_97,20240912,1 -service_98,20240825,1 -service_98,20240924,1 +service_95,20240912,1 +service_96,20240825,1 +service_96,20240924,1 +service_97,20240825,1 +service_97,20240911,1 service_99,20240825,1 -service_99,20240911,1 +service_99,20240919,1 service_100,20240825,1 +service_100,20240924,1 +service_100,20240925,1 service_101,20240825,1 -service_101,20240919,1 +service_101,20240907,1 +service_101,20240923,1 service_102,20240825,1 -service_102,20240924,1 -service_102,20240925,1 -service_103,20240825,1 -service_103,20240907,1 -service_103,20240923,1 -service_104,20240825,1 -service_104,20240911,1 -service_104,20240923,1 +service_102,20240911,1 +service_102,20240923,1 +service_104,20240826,1 +service_104,20240906,1 +service_104,20240924,1 service_105,20240826,1 -service_106,20240826,1 -service_106,20240906,1 -service_106,20240924,1 -service_107,20240826,1 -service_107,20240908,1 -service_107,20240924,1 -service_108,20240826,1 -service_108,20240827,1 -service_109,20240826,1 -service_109,20240827,1 -service_109,20240828,1 -service_110,20240826,1 -service_110,20240908,1 -service_111,20240827,1 -service_111,20240828,1 -service_112,20240827,1 -service_112,20240923,1 -service_113,20240827,1 -service_114,20240828,1 -service_115,20240829,1 -service_115,20240914,1 -service_116,20240829,1 -service_116,20240830,1 -service_116,20240914,1 -service_117,20240830,1 -service_117,20240915,1 -service_118,20240830,1 -service_118,20240901,1 -service_119,20240830,1 +service_105,20240908,1 +service_105,20240924,1 +service_108,20240901,2 +service_108,20240902,2 +service_110,20240827,1 +service_110,20240923,1 +service_113,20240829,1 +service_113,20240914,1 +service_114,20240829,1 +service_114,20240830,1 +service_114,20240914,1 +service_115,20240830,1 +service_115,20240915,1 +service_118,20240831,1 +service_118,20240928,1 service_120,20240831,1 -service_120,20240928,1 +service_120,20240918,1 service_121,20240831,1 -service_121,20240903,1 -service_122,20240831,1 -service_122,20240918,1 -service_123,20240831,1 -service_123,20240918,1 -service_123,20240919,1 +service_121,20240918,1 +service_121,20240919,1 +service_122,20240901,1 +service_122,20240910,2 service_124,20240901,1 -service_124,20240903,1 service_124,20240917,1 -service_125,20240901,1 -service_126,20240901,1 -service_126,20240917,1 +service_126,20240909,2 +service_126,20240919,1 service_127,20240902,1 -service_128,20240902,1 -service_128,20240916,1 -service_128,20240919,1 -service_129,20240902,1 -service_129,20240907,1 -service_129,20240919,1 -service_130,20240903,1 -service_131,20240902,1 -service_131,20240916,1 -service_132,20240903,1 -service_132,20240909,1 -service_132,20240923,1 -service_133,20240904,1 -service_133,20240920,1 +service_127,20240914,2 +service_127,20240919,1 +service_128,20240909,2 +service_129,20240903,1 +service_129,20240916,2 +service_131,20240904,1 +service_131,20240920,1 +service_132,20240905,1 +service_132,20240917,2 +service_132,20240920,1 service_134,20240905,1 -service_134,20240910,1 service_134,20240920,1 -service_135,20240905,1 -service_136,20240905,1 -service_136,20240920,1 -service_137,20240906,1 -service_137,20240921,1 -service_137,20240923,1 -service_138,20240906,1 +service_135,20240906,1 +service_135,20240921,1 +service_135,20240923,1 +service_137,20240911,2 +service_137,20240914,2 +service_137,20240915,2 service_139,20240907,1 -service_139,20240908,1 -service_139,20240918,1 -service_140,20240907,1 -service_140,20240908,1 -service_141,20240907,1 -service_141,20240919,1 -service_141,20240923,1 -service_142,20240907,1 -service_142,20240921,1 -service_143,20240908,1 -service_143,20240910,1 -service_143,20240924,1 -service_144,20240908,1 -service_144,20240918,1 -service_145,20240908,1 -service_145,20240910,1 -service_146,20240908,1 -service_146,20240915,1 -service_146,20240922,1 -service_146,20240929,1 -service_147,20240909,1 -service_147,20240922,1 -service_148,20240910,1 -service_148,20240925,1 -service_149,20240911,1 -service_150,20240912,1 -service_151,20240912,1 -service_151,20240913,1 -service_152,20240913,1 -service_153,20240914,1 -service_154,20240915,1 -service_155,20240916,1 -service_155,20240928,1 -service_156,20240917,1 -service_157,20240919,1 -service_157,20240922,1 -service_158,20240920,1 -service_158,20240922,1 -service_159,20240922,1 -service_159,20240924,1 -service_160,20240922,1 -service_160,20240925,1 -service_161,20240923,1 -service_162,20240923,1 -service_162,20240924,1 -service_163,20240925,1 -service_164,20240926,1 -service_165,20240927,1 -service_166,20240928,1 -service_167,20240929,1 \ No newline at end of file +service_139,20240912,2 +service_139,20240923,1 +service_140,20240914,2 +service_141,20240908,1 +service_141,20240917,2 +service_142,20240911,2 +service_142,20240915,2 +service_145,20240915,2 +service_145,20240916,2 +service_146,20240910,1 +service_146,20240925,1 +service_152,20240921,2 +service_152,20240923,2 \ No newline at end of file diff --git a/data/gtfs/feed_info.txt b/data/gtfs/feed_info.txt index 605b5d4..b486300 100644 --- a/data/gtfs/feed_info.txt +++ b/data/gtfs/feed_info.txt @@ -1,2 +1,2 @@ feed_publisher_name,feed_publisher_url,feed_lang,default_lang,feed_start_date,feed_end_date,feed_version,feed_contact_url -Brody Flannigan Transit Data,https://transitdata.ca/,fr,fr,20240813,20240929,2024-08-15T14:15:59Z,https://github.com/brodyFlannigan/stq-gtfs-v2/issues \ No newline at end of file +Brody Flannigan Transit Data,https://transitdata.ca/,fr,fr,20240813,20240929,2024-08-15T17:52:58-04:00,https://github.com/brodyFlannigan/stq-gtfs-v2/issues \ No newline at end of file diff --git a/data/gtfs/routes.txt b/data/gtfs/routes.txt index ae93f32..75f7c35 100644 --- a/data/gtfs/routes.txt +++ b/data/gtfs/routes.txt @@ -1,11 +1,11 @@ route_id,agency_id,route_short_name,route_long_name,route_type,route_url,route_color,route_text_color,route_sort_order -h-harbour-chevery,STQ,HHC,Harrington Harbour – Chevery,4,https://www.traversiers.com/fr/nos-traverses/traverse-harrington-harbour-chevery/horaire,20A9EC,FFFFFF,8 -i-v-n-d-des-sept-douleurs,STQ,IV,l'Île-Verte,4,https://www.traversiers.com/fr/nos-traverses/traverse-de-lile-verte/horaire,20A9EC,FFFFFF,6 -ile-d-entree-cap-aux-meules,STQ,IE,Île d'Entrée – Cap-aux-Meules,4,https://www.traversiers.com/fr/nos-traverses/traverse-ile-dentree-cap-aux-meules/horaire,20A9EC,FFFFFF,10 -isle-aux-coudres,STQ,IAC,L'Isle-aux-Coudres – Saint-Joseph-de-la-Rive,4,https://www.traversiers.com/fr/nos-traverses/traverse-lisle-aux-coudres-saint-joseph-de-la-rive/horaire,20A9EC,FFFFFF,4 -l-isle-aux-grues-montmagny,STQ,IAG,L'Isle-aux-Grues – Montmagny,4,https://www.traversiers.com/fr/nos-traverses/traverse-lisle-aux-grues-montmagny/horaire,20A9EC,FFFFFF,3 -matane,STQ,MBCG,Matane – Baie-Comeau – Godbout,4,https://www.traversiers.com/fr/nos-traverses/traverse-matane-baie-comeau-godbout/horaire,20A9EC,FFFFFF,7 -quebec,STQ,QL,Québec – Lévis,4,https://www.traversiers.com/fr/nos-traverses/traverse-quebec-levis/horaire,20A9EC,FFFFFF,2 -riv-st-augustin,STQ,RSA,Rivière Saint-Augustin,4,https://www.traversiers.com/fr/nos-traverses/traverse-de-la-riviere-saint-augustin-basse-cote-nord/horaire,20A9EC,FFFFFF,9 -sorel,STQ,STSIL,Sorel-Tracy – Saint-Ignace-de-Loyola,4,https://www.traversiers.com/fr/nos-traverses/traverse-sorel-tracy-saint-ignace-de-loyola/horaire,20A9EC,FFFFFF,1 -tadoussac,STQ,TBSC,Tadoussac – Baie-Sainte-Catherine,4,https://www.traversiers.com/fr/nos-traverses/traverse-tadoussac-baie-sainte-catherine/horaire,20A9EC,FFFFFF,5 \ No newline at end of file +h-harbour-chevery,STQ,HHC,Harrington Harbour – Chevery,4,https://www.traversiers.com/fr/nos-traverses/traverse-harrington-harbour-chevery/horaire,009CDD,FFFFFF,8 +i-v-n-d-des-sept-douleurs,STQ,IV,l'Île-Verte,4,https://www.traversiers.com/fr/nos-traverses/traverse-de-lile-verte/horaire,009CDD,FFFFFF,6 +ile-d-entree-cap-aux-meules,STQ,IE,Île d'Entrée – Cap-aux-Meules,4,https://www.traversiers.com/fr/nos-traverses/traverse-ile-dentree-cap-aux-meules/horaire,009CDD,FFFFFF,10 +isle-aux-coudres,STQ,IAC,L'Isle-aux-Coudres – Saint-Joseph-de-la-Rive,4,https://www.traversiers.com/fr/nos-traverses/traverse-lisle-aux-coudres-saint-joseph-de-la-rive/horaire,009CDD,FFFFFF,4 +l-isle-aux-grues-montmagny,STQ,IAG,L'Isle-aux-Grues – Montmagny,4,https://www.traversiers.com/fr/nos-traverses/traverse-lisle-aux-grues-montmagny/horaire,009CDD,FFFFFF,3 +matane,STQ,MBCG,Matane – Baie-Comeau – Godbout,4,https://www.traversiers.com/fr/nos-traverses/traverse-matane-baie-comeau-godbout/horaire,009CDD,FFFFFF,7 +quebec,STQ,QL,Québec – Lévis,4,https://www.traversiers.com/fr/nos-traverses/traverse-quebec-levis/horaire,009CDD,FFFFFF,2 +riv-st-augustin,STQ,RSA,Rivière Saint-Augustin,4,https://www.traversiers.com/fr/nos-traverses/traverse-de-la-riviere-saint-augustin-basse-cote-nord/horaire,009CDD,FFFFFF,9 +sorel,STQ,STSIL,Sorel-Tracy – Saint-Ignace-de-Loyola,4,https://www.traversiers.com/fr/nos-traverses/traverse-sorel-tracy-saint-ignace-de-loyola/horaire,009CDD,FFFFFF,1 +tadoussac,STQ,TBSC,Tadoussac – Baie-Sainte-Catherine,4,https://www.traversiers.com/fr/nos-traverses/traverse-tadoussac-baie-sainte-catherine/horaire,009CDD,FFFFFF,5 \ No newline at end of file diff --git a/data/gtfs/trips.txt b/data/gtfs/trips.txt index 0d1bff7..0ea1ce5 100644 --- a/data/gtfs/trips.txt +++ b/data/gtfs/trips.txt @@ -30,9 +30,9 @@ sorel,service_2,sorel_SOR_SIL_203000,Saint-Ignace-de-Loyola,0,1,1 sorel,service_2,sorel_SOR_SIL_213000,Saint-Ignace-de-Loyola,0,1,1 sorel,service_2,sorel_SOR_SIL_223000,Saint-Ignace-de-Loyola,0,1,1 sorel,service_2,sorel_SOR_SIL_233000,Saint-Ignace-de-Loyola,0,1,1 -sorel,service_3,sorel_SOR_SIL_243000,Saint-Ignace-de-Loyola,0,1,1 -sorel,service_3,sorel_SOR_SIL_253000,Saint-Ignace-de-Loyola,0,1,1 -sorel,service_3,sorel_SOR_SIL_263000,Saint-Ignace-de-Loyola,0,1,1 +sorel,service_2,sorel_SOR_SIL_243000,Saint-Ignace-de-Loyola,0,1,1 +sorel,service_2,sorel_SOR_SIL_253000,Saint-Ignace-de-Loyola,0,1,1 +sorel,service_2,sorel_SOR_SIL_263000,Saint-Ignace-de-Loyola,0,1,1 sorel,service_1,sorel_SIL_SOR_050000,Sorel-Tracy,1,1,1 sorel,service_2,sorel_SIL_SOR_060000,Sorel-Tracy,1,1,1 sorel,service_1,sorel_SIL_SOR_063000,Sorel-Tracy,1,1,1 @@ -64,20 +64,20 @@ sorel,service_2,sorel_SIL_SOR_200000,Sorel-Tracy,1,1,1 sorel,service_2,sorel_SIL_SOR_210000,Sorel-Tracy,1,1,1 sorel,service_2,sorel_SIL_SOR_220000,Sorel-Tracy,1,1,1 sorel,service_2,sorel_SIL_SOR_230000,Sorel-Tracy,1,1,1 -sorel,service_3,sorel_SIL_SOR_240000,Sorel-Tracy,1,1,1 -sorel,service_3,sorel_SIL_SOR_250000,Sorel-Tracy,1,1,1 -sorel,service_3,sorel_SIL_SOR_260000,Sorel-Tracy,1,1,1 -sorel,service_3,sorel_SIL_SOR_270000,Sorel-Tracy,1,1,1 -quebec,service_4,quebec_QUE_LEV_062000,Lévis,0,1,1 -quebec,service_4,quebec_QUE_LEV_070000,Lévis,0,1,1 -quebec,service_4,quebec_QUE_LEV_072000,Lévis,0,1,1 -quebec,service_4,quebec_QUE_LEV_074000,Lévis,0,1,1 -quebec,service_5,quebec_QUE_LEV_080000,Lévis,0,1,1 -quebec,service_4,quebec_QUE_LEV_082000,Lévis,0,1,1 -quebec,service_4,quebec_QUE_LEV_084000,Lévis,0,1,1 -quebec,service_5,quebec_QUE_LEV_090000,Lévis,0,1,1 +sorel,service_2,sorel_SIL_SOR_240000,Sorel-Tracy,1,1,1 +sorel,service_2,sorel_SIL_SOR_250000,Sorel-Tracy,1,1,1 +sorel,service_2,sorel_SIL_SOR_260000,Sorel-Tracy,1,1,1 +sorel,service_2,sorel_SIL_SOR_270000,Sorel-Tracy,1,1,1 +quebec,service_3,quebec_QUE_LEV_062000,Lévis,0,1,1 +quebec,service_3,quebec_QUE_LEV_070000,Lévis,0,1,1 +quebec,service_3,quebec_QUE_LEV_072000,Lévis,0,1,1 +quebec,service_3,quebec_QUE_LEV_074000,Lévis,0,1,1 +quebec,service_4,quebec_QUE_LEV_080000,Lévis,0,1,1 +quebec,service_3,quebec_QUE_LEV_082000,Lévis,0,1,1 +quebec,service_3,quebec_QUE_LEV_084000,Lévis,0,1,1 +quebec,service_4,quebec_QUE_LEV_090000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_093000,Lévis,0,1,1 -quebec,service_5,quebec_QUE_LEV_100000,Lévis,0,1,1 +quebec,service_4,quebec_QUE_LEV_100000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_103000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_110000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_114500,Lévis,0,1,1 @@ -88,33 +88,33 @@ quebec,service_2,quebec_QUE_LEV_133000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_140000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_143000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_150000,Lévis,0,1,1 -quebec,service_4,quebec_QUE_LEV_152000,Lévis,0,1,1 -quebec,service_4,quebec_QUE_LEV_154000,Lévis,0,1,1 +quebec,service_3,quebec_QUE_LEV_152000,Lévis,0,1,1 +quebec,service_3,quebec_QUE_LEV_154000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_160000,Lévis,0,1,1 -quebec,service_4,quebec_QUE_LEV_162000,Lévis,0,1,1 -quebec,service_4,quebec_QUE_LEV_164000,Lévis,0,1,1 +quebec,service_3,quebec_QUE_LEV_162000,Lévis,0,1,1 +quebec,service_3,quebec_QUE_LEV_164000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_170000,Lévis,0,1,1 -quebec,service_4,quebec_QUE_LEV_172000,Lévis,0,1,1 -quebec,service_4,quebec_QUE_LEV_174000,Lévis,0,1,1 +quebec,service_3,quebec_QUE_LEV_172000,Lévis,0,1,1 +quebec,service_3,quebec_QUE_LEV_174000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_180000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_183000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_193000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_203000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_223000,Lévis,0,1,1 quebec,service_2,quebec_QUE_LEV_233000,Lévis,0,1,1 -quebec,service_3,quebec_QUE_LEV_243000,Lévis,0,1,1 -quebec,service_3,quebec_QUE_LEV_253000,Lévis,0,1,1 -quebec,service_3,quebec_QUE_LEV_262000,Lévis,0,1,1 +quebec,service_2,quebec_QUE_LEV_243000,Lévis,0,1,1 +quebec,service_2,quebec_QUE_LEV_253000,Lévis,0,1,1 +quebec,service_2,quebec_QUE_LEV_262000,Lévis,0,1,1 quebec,service_2,quebec_LEV_QUE_060000,Québec,1,1,1 -quebec,service_4,quebec_LEV_QUE_064000,Québec,1,1,1 +quebec,service_3,quebec_LEV_QUE_064000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_070000,Québec,1,1,1 -quebec,service_4,quebec_LEV_QUE_072000,Québec,1,1,1 -quebec,service_4,quebec_LEV_QUE_074000,Québec,1,1,1 +quebec,service_3,quebec_LEV_QUE_072000,Québec,1,1,1 +quebec,service_3,quebec_LEV_QUE_074000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_080000,Québec,1,1,1 -quebec,service_4,quebec_LEV_QUE_082000,Québec,1,1,1 -quebec,service_4,quebec_LEV_QUE_084000,Québec,1,1,1 +quebec,service_3,quebec_LEV_QUE_082000,Québec,1,1,1 +quebec,service_3,quebec_LEV_QUE_084000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_090000,Québec,1,1,1 -quebec,service_5,quebec_LEV_QUE_093000,Québec,1,1,1 +quebec,service_4,quebec_LEV_QUE_093000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_100000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_103000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_110000,Québec,1,1,1 @@ -126,24 +126,24 @@ quebec,service_2,quebec_LEV_QUE_133000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_140000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_143000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_150000,Québec,1,1,1 -quebec,service_4,quebec_LEV_QUE_152000,Québec,1,1,1 -quebec,service_4,quebec_LEV_QUE_154000,Québec,1,1,1 +quebec,service_3,quebec_LEV_QUE_152000,Québec,1,1,1 +quebec,service_3,quebec_LEV_QUE_154000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_160000,Québec,1,1,1 -quebec,service_4,quebec_LEV_QUE_162000,Québec,1,1,1 -quebec,service_4,quebec_LEV_QUE_164000,Québec,1,1,1 +quebec,service_3,quebec_LEV_QUE_162000,Québec,1,1,1 +quebec,service_3,quebec_LEV_QUE_164000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_170000,Québec,1,1,1 -quebec,service_4,quebec_LEV_QUE_172000,Québec,1,1,1 -quebec,service_4,quebec_LEV_QUE_174000,Québec,1,1,1 +quebec,service_3,quebec_LEV_QUE_172000,Québec,1,1,1 +quebec,service_3,quebec_LEV_QUE_174000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_180000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_190000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_200000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_210000,Québec,1,1,1 quebec,service_2,quebec_LEV_QUE_230000,Québec,1,1,1 -quebec,service_3,quebec_LEV_QUE_240000,Québec,1,1,1 -quebec,service_3,quebec_LEV_QUE_250000,Québec,1,1,1 -quebec,service_3,quebec_LEV_QUE_260000,Québec,1,1,1 -l-isle-aux-grues-montmagny,service_6,l-isle-aux-grues-montmagny_IAG_MMG_103000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_7,l-isle-aux-grues-montmagny_MMG_IAG_120000,L'Isle-aux-Grues,1,0,1 +quebec,service_2,quebec_LEV_QUE_240000,Québec,1,1,1 +quebec,service_2,quebec_LEV_QUE_250000,Québec,1,1,1 +quebec,service_2,quebec_LEV_QUE_260000,Québec,1,1,1 +l-isle-aux-grues-montmagny,service_5,l-isle-aux-grues-montmagny_IAG_MMG_103000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_6,l-isle-aux-grues-montmagny_MMG_IAG_120000,L'Isle-aux-Grues,1,0,1 isle-aux-coudres,service_1,isle-aux-coudres_IAC_SJR_060000,Saint-Joseph-de-la-Rive,0,0,1 isle-aux-coudres,service_2,isle-aux-coudres_IAC_SJR_070000,Saint-Joseph-de-la-Rive,0,0,1 isle-aux-coudres,service_2,isle-aux-coudres_IAC_SJR_080000,Saint-Joseph-de-la-Rive,0,0,1 @@ -201,11 +201,11 @@ tadoussac,service_2,tadoussac_TAD_BSC_050000,Baie-Sainte-Catherine,0,1,1 tadoussac,service_2,tadoussac_TAD_BSC_060000,Baie-Sainte-Catherine,0,1,1 tadoussac,service_2,tadoussac_TAD_BSC_064000,Baie-Sainte-Catherine,0,1,1 tadoussac,service_2,tadoussac_TAD_BSC_072000,Baie-Sainte-Catherine,0,1,1 -tadoussac,service_5,tadoussac_TAD_BSC_074000,Baie-Sainte-Catherine,0,1,1 +tadoussac,service_4,tadoussac_TAD_BSC_074000,Baie-Sainte-Catherine,0,1,1 tadoussac,service_2,tadoussac_TAD_BSC_080000,Baie-Sainte-Catherine,0,1,1 -tadoussac,service_5,tadoussac_TAD_BSC_082000,Baie-Sainte-Catherine,0,1,1 +tadoussac,service_4,tadoussac_TAD_BSC_082000,Baie-Sainte-Catherine,0,1,1 tadoussac,service_2,tadoussac_TAD_BSC_084000,Baie-Sainte-Catherine,0,1,1 -tadoussac,service_5,tadoussac_TAD_BSC_090000,Baie-Sainte-Catherine,0,1,1 +tadoussac,service_4,tadoussac_TAD_BSC_090000,Baie-Sainte-Catherine,0,1,1 tadoussac,service_2,tadoussac_TAD_BSC_092000,Baie-Sainte-Catherine,0,1,1 tadoussac,service_2,tadoussac_TAD_BSC_094000,Baie-Sainte-Catherine,0,1,1 tadoussac,service_2,tadoussac_TAD_BSC_100000,Baie-Sainte-Catherine,0,1,1 @@ -244,21 +244,21 @@ tadoussac,service_2,tadoussac_TAD_BSC_212000,Baie-Sainte-Catherine,0,1,1 tadoussac,service_2,tadoussac_TAD_BSC_220000,Baie-Sainte-Catherine,0,1,1 tadoussac,service_2,tadoussac_TAD_BSC_224000,Baie-Sainte-Catherine,0,1,1 tadoussac,service_2,tadoussac_TAD_BSC_232000,Baie-Sainte-Catherine,0,1,1 -tadoussac,service_3,tadoussac_TAD_BSC_240000,Baie-Sainte-Catherine,0,1,1 -tadoussac,service_3,tadoussac_TAD_BSC_250000,Baie-Sainte-Catherine,0,1,1 -tadoussac,service_3,tadoussac_TAD_BSC_260000,Baie-Sainte-Catherine,0,1,1 -tadoussac,service_3,tadoussac_TAD_BSC_270000,Baie-Sainte-Catherine,0,1,1 -tadoussac,service_3,tadoussac_TAD_BSC_280000,Baie-Sainte-Catherine,0,1,1 +tadoussac,service_2,tadoussac_TAD_BSC_240000,Baie-Sainte-Catherine,0,1,1 +tadoussac,service_2,tadoussac_TAD_BSC_250000,Baie-Sainte-Catherine,0,1,1 +tadoussac,service_2,tadoussac_TAD_BSC_260000,Baie-Sainte-Catherine,0,1,1 +tadoussac,service_2,tadoussac_TAD_BSC_270000,Baie-Sainte-Catherine,0,1,1 +tadoussac,service_2,tadoussac_TAD_BSC_280000,Baie-Sainte-Catherine,0,1,1 tadoussac,service_2,tadoussac_BSC_TAD_043000,Tadoussac,1,1,1 -tadoussac,service_5,tadoussac_BSC_TAD_054000,Tadoussac,1,1,1 +tadoussac,service_4,tadoussac_BSC_TAD_054000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_062000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_070000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_074000,Tadoussac,1,1,1 -tadoussac,service_5,tadoussac_BSC_TAD_080000,Tadoussac,1,1,1 +tadoussac,service_4,tadoussac_BSC_TAD_080000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_082000,Tadoussac,1,1,1 -tadoussac,service_5,tadoussac_BSC_TAD_084000,Tadoussac,1,1,1 +tadoussac,service_4,tadoussac_BSC_TAD_084000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_090000,Tadoussac,1,1,1 -tadoussac,service_5,tadoussac_BSC_TAD_092000,Tadoussac,1,1,1 +tadoussac,service_4,tadoussac_BSC_TAD_092000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_094000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_100000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_102000,Tadoussac,1,1,1 @@ -288,8 +288,8 @@ tadoussac,service_2,tadoussac_BSC_TAD_180000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_182000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_184000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_190000,Tadoussac,1,1,1 -tadoussac,service_5,tadoussac_BSC_TAD_192000,Tadoussac,1,1,1 -tadoussac,service_5,tadoussac_BSC_TAD_194000,Tadoussac,1,1,1 +tadoussac,service_4,tadoussac_BSC_TAD_192000,Tadoussac,1,1,1 +tadoussac,service_4,tadoussac_BSC_TAD_194000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_200000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_202000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_210000,Tadoussac,1,1,1 @@ -297,26 +297,26 @@ tadoussac,service_2,tadoussac_BSC_TAD_214000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_222000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_230000,Tadoussac,1,1,1 tadoussac,service_2,tadoussac_BSC_TAD_234000,Tadoussac,1,1,1 -tadoussac,service_3,tadoussac_BSC_TAD_243000,Tadoussac,1,1,1 -tadoussac,service_3,tadoussac_BSC_TAD_253000,Tadoussac,1,1,1 -tadoussac,service_3,tadoussac_BSC_TAD_263000,Tadoussac,1,1,1 -tadoussac,service_3,tadoussac_BSC_TAD_273000,Tadoussac,1,1,1 -i-v-n-d-des-sept-douleurs,service_8,i-v-n-d-des-sept-douleurs_NSD_ISV_204500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_9,i-v-n-d-des-sept-douleurs_NSD_ISV_221500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_8,i-v-n-d-des-sept-douleurs_ISV_NSD_213000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_9,i-v-n-d-des-sept-douleurs_ISV_NSD_230000,Notre-Dame-des-Sept-Douleurs,1,0,1 -matane,service_10,matane_MTN_GDB_080000,Godbout,0,1,1 -matane,service_10,matane_MTN_GDB_110000,Matane,1,1,1 -matane,service_11,matane_MTN_BCO_141500,Baie-Comeau,0,1,1 -matane,service_11,matane_BCO_MTN_173000,Matane,1,1,1 +tadoussac,service_2,tadoussac_BSC_TAD_243000,Tadoussac,1,1,1 +tadoussac,service_2,tadoussac_BSC_TAD_253000,Tadoussac,1,1,1 +tadoussac,service_2,tadoussac_BSC_TAD_263000,Tadoussac,1,1,1 +tadoussac,service_2,tadoussac_BSC_TAD_273000,Tadoussac,1,1,1 +i-v-n-d-des-sept-douleurs,service_7,i-v-n-d-des-sept-douleurs_NSD_ISV_204500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_8,i-v-n-d-des-sept-douleurs_NSD_ISV_221500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_7,i-v-n-d-des-sept-douleurs_ISV_NSD_213000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_8,i-v-n-d-des-sept-douleurs_ISV_NSD_230000,Notre-Dame-des-Sept-Douleurs,1,0,1 +matane,service_9,matane_MTN_GDB_080000,Godbout,0,1,1 +matane,service_9,matane_MTN_GDB_110000,Matane,1,1,1 +matane,service_10,matane_MTN_BCO_141500,Baie-Comeau,0,1,1 +matane,service_10,matane_BCO_MTN_173000,Matane,1,1,1 h-harbour-chevery,service_2,h-harbour-chevery_CHE_HHB_063000,Harrington Harbour,0,0,1 h-harbour-chevery,service_1,h-harbour-chevery_CHE_HHB_093000,Harrington Harbour,0,0,1 h-harbour-chevery,service_1,h-harbour-chevery_CHE_HHB_131500,Harrington Harbour,0,0,1 -h-harbour-chevery,service_12,h-harbour-chevery_CHE_HHB_153000,Harrington Harbour,0,0,1 +h-harbour-chevery,service_11,h-harbour-chevery_CHE_HHB_153000,Harrington Harbour,0,0,1 h-harbour-chevery,service_1,h-harbour-chevery_CHE_HHB_163000,Harrington Harbour,0,0,1 h-harbour-chevery,service_2,h-harbour-chevery_CHE_HHB_183000,Harrington Harbour,0,0,1 h-harbour-chevery,service_2,h-harbour-chevery_HHB_CHE_060000,Chevery,1,0,1 -h-harbour-chevery,service_5,h-harbour-chevery_HHB_CHE_070000,Chevery,1,0,1 +h-harbour-chevery,service_4,h-harbour-chevery_HHB_CHE_070000,Chevery,1,0,1 h-harbour-chevery,service_1,h-harbour-chevery_HHB_CHE_110000,Chevery,1,0,1 h-harbour-chevery,service_1,h-harbour-chevery_HHB_CHE_140000,Chevery,1,0,1 h-harbour-chevery,service_1,h-harbour-chevery_HHB_CHE_160000,Chevery,1,0,1 @@ -326,298 +326,298 @@ riv-st-augustin,service_1,riv-st-augustin_PKS_SAG_071500,Saint-Augustin,0,2,1 riv-st-augustin,service_1,riv-st-augustin_PKS_SAG_074500,Saint-Augustin,0,2,1 riv-st-augustin,service_1,riv-st-augustin_PKS_SAG_084500,Saint-Augustin,0,2,1 riv-st-augustin,service_1,riv-st-augustin_PKS_SAG_120000,Saint-Augustin,0,2,1 -riv-st-augustin,service_12,riv-st-augustin_PKS_SAG_133000,Saint-Augustin,0,2,1 +riv-st-augustin,service_11,riv-st-augustin_PKS_SAG_133000,Saint-Augustin,0,2,1 riv-st-augustin,service_1,riv-st-augustin_PKS_SAG_143000,Saint-Augustin,0,2,1 riv-st-augustin,service_1,riv-st-augustin_PKS_SAG_154500,Saint-Augustin,0,2,1 riv-st-augustin,service_1,riv-st-augustin_PKS_SAG_164500,Saint-Augustin,0,2,1 -riv-st-augustin,service_13,riv-st-augustin_PKS_SAG_173000,Saint-Augustin,0,2,1 +riv-st-augustin,service_12,riv-st-augustin_PKS_SAG_173000,Saint-Augustin,0,2,1 riv-st-augustin,service_1,riv-st-augustin_SAG_PKS_063000,Pakuashipi,1,2,1 riv-st-augustin,service_1,riv-st-augustin_SAG_PKS_073000,Pakuashipi,1,2,1 riv-st-augustin,service_1,riv-st-augustin_SAG_PKS_080000,Pakuashipi,1,2,1 riv-st-augustin,service_1,riv-st-augustin_SAG_PKS_090000,Pakuashipi,1,2,1 riv-st-augustin,service_1,riv-st-augustin_SAG_PKS_121500,Pakuashipi,1,2,1 -riv-st-augustin,service_12,riv-st-augustin_SAG_PKS_134500,Pakuashipi,1,2,1 +riv-st-augustin,service_11,riv-st-augustin_SAG_PKS_134500,Pakuashipi,1,2,1 riv-st-augustin,service_1,riv-st-augustin_SAG_PKS_144500,Pakuashipi,1,2,1 riv-st-augustin,service_1,riv-st-augustin_SAG_PKS_160000,Pakuashipi,1,2,1 riv-st-augustin,service_1,riv-st-augustin_SAG_PKS_170000,Pakuashipi,1,2,1 -riv-st-augustin,service_13,riv-st-augustin_SAG_PKS_174500,Pakuashipi,1,2,1 -ile-d-entree-cap-aux-meules,service_5,ile-d-entree-cap-aux-meules_IEN_CAM_080000,Cap-aux-Meules,0,0,1 -ile-d-entree-cap-aux-meules,service_5,ile-d-entree-cap-aux-meules_IEN_CAM_153000,Cap-aux-Meules,0,0,1 -ile-d-entree-cap-aux-meules,service_5,ile-d-entree-cap-aux-meules_CAM_IEN_063000,Ile d'Entrée,1,0,1 -ile-d-entree-cap-aux-meules,service_5,ile-d-entree-cap-aux-meules_CAM_IEN_140000,Ile d'Entrée,1,0,1 -quebec,service_14,quebec_QUE_LEV_213000,Lévis,0,1,1 -quebec,service_14,quebec_LEV_QUE_220000,Québec,1,1,1 -l-isle-aux-grues-montmagny,service_15,l-isle-aux-grues-montmagny_IAG_MMG_231500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_15,l-isle-aux-grues-montmagny_MMG_IAG_235900,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_16,i-v-n-d-des-sept-douleurs_NSD_ISV_203000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_17,i-v-n-d-des-sept-douleurs_NSD_ISV_220000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_16,i-v-n-d-des-sept-douleurs_ISV_NSD_211500,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_17,i-v-n-d-des-sept-douleurs_ISV_NSD_224500,Notre-Dame-des-Sept-Douleurs,1,0,1 -matane,service_18,matane_MTN_GDB_141500,Godbout,0,1,1 -matane,service_18,matane_MTN_GDB_173000,Matane,1,1,1 -matane,service_18,matane_MTN_BCO_080000,Baie-Comeau,0,1,1 -matane,service_18,matane_BCO_MTN_110000,Matane,1,1,1 -i-v-n-d-des-sept-douleurs,service_19,i-v-n-d-des-sept-douleurs_NSD_ISV_214500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_20,i-v-n-d-des-sept-douleurs_NSD_ISV_231500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_19,i-v-n-d-des-sept-douleurs_ISV_NSD_223000,Notre-Dame-des-Sept-Douleurs,1,0,1 -h-harbour-chevery,service_21,h-harbour-chevery_CHE_HHB_073000,Harrington Harbour,0,0,1 -h-harbour-chevery,service_22,h-harbour-chevery_HHB_CHE_080000,Chevery,1,0,1 -riv-st-augustin,service_23,riv-st-augustin_PKS_SAG_180000,Saint-Augustin,0,2,1 -riv-st-augustin,service_24,riv-st-augustin_PKS_SAG_190000,Saint-Augustin,0,2,1 -riv-st-augustin,service_23,riv-st-augustin_SAG_PKS_181500,Pakuashipi,1,2,1 -riv-st-augustin,service_24,riv-st-augustin_SAG_PKS_191500,Pakuashipi,1,2,1 -l-isle-aux-grues-montmagny,service_25,l-isle-aux-grues-montmagny_IAG_MMG_140000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_26,l-isle-aux-grues-montmagny_IAG_MMG_241500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_27,l-isle-aux-grues-montmagny_MMG_IAG_153000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_26,l-isle-aux-grues-montmagny_MMG_IAG_250000,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_28,i-v-n-d-des-sept-douleurs_NSD_ISV_223000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_28,i-v-n-d-des-sept-douleurs_ISV_NSD_231500,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_29,i-v-n-d-des-sept-douleurs_ISV_NSD_240000,Notre-Dame-des-Sept-Douleurs,1,0,1 -h-harbour-chevery,service_30,h-harbour-chevery_CHE_HHB_280000,Harrington Harbour,0,0,1 -riv-st-augustin,service_31,riv-st-augustin_PKS_SAG_174500,Saint-Augustin,0,2,1 -riv-st-augustin,service_31,riv-st-augustin_SAG_PKS_180000,Pakuashipi,1,2,1 -sorel,service_32,sorel_SOR_SIL_180000,Saint-Ignace-de-Loyola,0,1,1 -sorel,service_32,sorel_SIL_SOR_183000,Sorel-Tracy,1,1,1 -quebec,service_33,quebec_QUE_LEV_063000,Lévis,0,1,1 -quebec,service_33,quebec_QUE_LEV_073000,Lévis,0,1,1 -quebec,service_33,quebec_QUE_LEV_083000,Lévis,0,1,1 -quebec,service_33,quebec_QUE_LEV_153000,Lévis,0,1,1 -quebec,service_33,quebec_QUE_LEV_163000,Lévis,0,1,1 -quebec,service_33,quebec_QUE_LEV_173000,Lévis,0,1,1 -quebec,service_34,quebec_LEV_QUE_073000,Québec,1,1,1 -quebec,service_34,quebec_LEV_QUE_083000,Québec,1,1,1 -quebec,service_33,quebec_LEV_QUE_153000,Québec,1,1,1 -quebec,service_33,quebec_LEV_QUE_163000,Québec,1,1,1 -quebec,service_33,quebec_LEV_QUE_173000,Québec,1,1,1 -l-isle-aux-grues-montmagny,service_35,l-isle-aux-grues-montmagny_IAG_MMG_144500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_36,l-isle-aux-grues-montmagny_IAG_MMG_161500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_37,l-isle-aux-grues-montmagny_MMG_IAG_171500,L'Isle-aux-Grues,1,0,1 -isle-aux-coudres,service_32,isle-aux-coudres_IAC_SJR_093000,Saint-Joseph-de-la-Rive,0,0,1 -isle-aux-coudres,service_32,isle-aux-coudres_SJR_IAC_100000,L'Isle-aux-Coudres,1,0,1 -i-v-n-d-des-sept-douleurs,service_38,i-v-n-d-des-sept-douleurs_NSD_ISV_130000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_39,i-v-n-d-des-sept-douleurs_NSD_ISV_233000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_40,i-v-n-d-des-sept-douleurs_NSD_ISV_240000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_38,i-v-n-d-des-sept-douleurs_ISV_NSD_134500,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_41,i-v-n-d-des-sept-douleurs_ISV_NSD_244500,Notre-Dame-des-Sept-Douleurs,1,0,1 -h-harbour-chevery,service_30,h-harbour-chevery_CHE_HHB_040000,Harrington Harbour,0,0,1 -h-harbour-chevery,service_30,h-harbour-chevery_CHE_HHB_080000,Harrington Harbour,0,0,1 -riv-st-augustin,service_30,riv-st-augustin_PKS_SAG_140000,Saint-Augustin,0,2,1 -riv-st-augustin,service_32,riv-st-augustin_PKS_SAG_150000,Saint-Augustin,0,2,1 -riv-st-augustin,service_30,riv-st-augustin_PKS_SAG_160000,Saint-Augustin,0,2,1 -riv-st-augustin,service_30,riv-st-augustin_PKS_SAG_170000,Saint-Augustin,0,2,1 -riv-st-augustin,service_30,riv-st-augustin_SAG_PKS_141500,Pakuashipi,1,2,1 -riv-st-augustin,service_32,riv-st-augustin_SAG_PKS_151500,Pakuashipi,1,2,1 -riv-st-augustin,service_30,riv-st-augustin_SAG_PKS_161500,Pakuashipi,1,2,1 -riv-st-augustin,service_30,riv-st-augustin_SAG_PKS_171500,Pakuashipi,1,2,1 -l-isle-aux-grues-montmagny,service_42,l-isle-aux-grues-montmagny_IAG_MMG_060000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_43,l-isle-aux-grues-montmagny_IAG_MMG_153000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_44,l-isle-aux-grues-montmagny_IAG_MMG_173000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_42,l-isle-aux-grues-montmagny_MMG_IAG_064500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_45,l-isle-aux-grues-montmagny_MMG_IAG_163000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_46,l-isle-aux-grues-montmagny_MMG_IAG_183000,L'Isle-aux-Grues,1,0,1 -tadoussac,service_47,tadoussac_BSC_TAD_053000,Tadoussac,1,1,1 -i-v-n-d-des-sept-douleurs,service_48,i-v-n-d-des-sept-douleurs_NSD_ISV_141500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_48,i-v-n-d-des-sept-douleurs_ISV_NSD_150000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_49,i-v-n-d-des-sept-douleurs_ISV_NSD_241500,Notre-Dame-des-Sept-Douleurs,1,0,1 -h-harbour-chevery,service_47,h-harbour-chevery_CHE_HHB_101500,Harrington Harbour,0,0,1 -h-harbour-chevery,service_47,h-harbour-chevery_HHB_CHE_133000,Chevery,1,0,1 -riv-st-augustin,service_47,riv-st-augustin_PKS_SAG_081500,Saint-Augustin,0,2,1 -riv-st-augustin,service_47,riv-st-augustin_PKS_SAG_094500,Saint-Augustin,0,2,1 -riv-st-augustin,service_47,riv-st-augustin_SAG_PKS_083000,Pakuashipi,1,2,1 -riv-st-augustin,service_47,riv-st-augustin_SAG_PKS_100000,Pakuashipi,1,2,1 -l-isle-aux-grues-montmagny,service_50,l-isle-aux-grues-montmagny_IAG_MMG_064500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_51,l-isle-aux-grues-montmagny_IAG_MMG_160000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_52,l-isle-aux-grues-montmagny_IAG_MMG_184500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_53,l-isle-aux-grues-montmagny_MMG_IAG_074500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_54,l-isle-aux-grues-montmagny_MMG_IAG_164500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_52,l-isle-aux-grues-montmagny_MMG_IAG_193000,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_55,i-v-n-d-des-sept-douleurs_NSD_ISV_134500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_56,i-v-n-d-des-sept-douleurs_NSD_ISV_151500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_55,i-v-n-d-des-sept-douleurs_ISV_NSD_143000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_56,i-v-n-d-des-sept-douleurs_ISV_NSD_160000,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_57,l-isle-aux-grues-montmagny_IAG_MMG_073000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_58,l-isle-aux-grues-montmagny_IAG_MMG_163000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_59,l-isle-aux-grues-montmagny_IAG_MMG_180000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_60,l-isle-aux-grues-montmagny_IAG_MMG_193000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_61,l-isle-aux-grues-montmagny_MMG_IAG_083000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_62,l-isle-aux-grues-montmagny_MMG_IAG_184500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_63,l-isle-aux-grues-montmagny_MMG_IAG_201500,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_64,i-v-n-d-des-sept-douleurs_NSD_ISV_161500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_65,i-v-n-d-des-sept-douleurs_NSD_ISV_244500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_64,i-v-n-d-des-sept-douleurs_ISV_NSD_170000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_65,i-v-n-d-des-sept-douleurs_ISV_NSD_253000,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_66,l-isle-aux-grues-montmagny_IAG_MMG_083000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_67,l-isle-aux-grues-montmagny_IAG_MMG_170000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_68,l-isle-aux-grues-montmagny_IAG_MMG_194500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_66,l-isle-aux-grues-montmagny_MMG_IAG_091500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_67,l-isle-aux-grues-montmagny_MMG_IAG_174500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_68,l-isle-aux-grues-montmagny_MMG_IAG_203000,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_69,i-v-n-d-des-sept-douleurs_NSD_ISV_050000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_70,i-v-n-d-des-sept-douleurs_NSD_ISV_144500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_71,i-v-n-d-des-sept-douleurs_NSD_ISV_171500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_69,i-v-n-d-des-sept-douleurs_ISV_NSD_054500,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_70,i-v-n-d-des-sept-douleurs_ISV_NSD_153000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_71,i-v-n-d-des-sept-douleurs_ISV_NSD_180000,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_72,l-isle-aux-grues-montmagny_IAG_MMG_090000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_73,l-isle-aux-grues-montmagny_IAG_MMG_174500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_74,l-isle-aux-grues-montmagny_MMG_IAG_081500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_75,l-isle-aux-grues-montmagny_MMG_IAG_100000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_76,l-isle-aux-grues-montmagny_MMG_IAG_210000,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_77,i-v-n-d-des-sept-douleurs_NSD_ISV_054500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_78,i-v-n-d-des-sept-douleurs_NSD_ISV_150000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_78,i-v-n-d-des-sept-douleurs_NSD_ISV_163000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_78,i-v-n-d-des-sept-douleurs_NSD_ISV_180000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_77,i-v-n-d-des-sept-douleurs_ISV_NSD_063000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_78,i-v-n-d-des-sept-douleurs_ISV_NSD_154500,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_78,i-v-n-d-des-sept-douleurs_ISV_NSD_171500,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_78,i-v-n-d-des-sept-douleurs_ISV_NSD_184500,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_79,l-isle-aux-grues-montmagny_IAG_MMG_081500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_80,l-isle-aux-grues-montmagny_IAG_MMG_094500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_81,l-isle-aux-grues-montmagny_IAG_MMG_181500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_80,l-isle-aux-grues-montmagny_MMG_IAG_073000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_82,l-isle-aux-grues-montmagny_MMG_IAG_090000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_83,l-isle-aux-grues-montmagny_MMG_IAG_103000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_84,l-isle-aux-grues-montmagny_MMG_IAG_190000,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_85,i-v-n-d-des-sept-douleurs_NSD_ISV_060000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_86,i-v-n-d-des-sept-douleurs_NSD_ISV_154500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_83,i-v-n-d-des-sept-douleurs_NSD_ISV_184500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_87,i-v-n-d-des-sept-douleurs_ISV_NSD_071500,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_86,i-v-n-d-des-sept-douleurs_ISV_NSD_163000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_83,i-v-n-d-des-sept-douleurs_ISV_NSD_193000,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_88,l-isle-aux-grues-montmagny_IAG_MMG_080000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_89,l-isle-aux-grues-montmagny_IAG_MMG_100000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_90,l-isle-aux-grues-montmagny_IAG_MMG_190000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_91,l-isle-aux-grues-montmagny_IAG_MMG_203000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_92,l-isle-aux-grues-montmagny_MMG_IAG_110000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_93,l-isle-aux-grues-montmagny_MMG_IAG_194500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_91,l-isle-aux-grues-montmagny_MMG_IAG_211500,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_94,i-v-n-d-des-sept-douleurs_NSD_ISV_063000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_95,i-v-n-d-des-sept-douleurs_NSD_ISV_164500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_96,i-v-n-d-des-sept-douleurs_NSD_ISV_181500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_97,i-v-n-d-des-sept-douleurs_NSD_ISV_194500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_89,i-v-n-d-des-sept-douleurs_ISV_NSD_074500,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_95,i-v-n-d-des-sept-douleurs_ISV_NSD_173000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_96,i-v-n-d-des-sept-douleurs_ISV_NSD_190000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_97,i-v-n-d-des-sept-douleurs_ISV_NSD_203000,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_98,l-isle-aux-grues-montmagny_IAG_MMG_110000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_99,l-isle-aux-grues-montmagny_IAG_MMG_211500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_100,l-isle-aux-grues-montmagny_IAG_MMG_224500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_101,l-isle-aux-grues-montmagny_MMG_IAG_084500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_102,l-isle-aux-grues-montmagny_MMG_IAG_114500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_99,l-isle-aux-grues-montmagny_MMG_IAG_220000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_100,l-isle-aux-grues-montmagny_MMG_IAG_233000,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_100,i-v-n-d-des-sept-douleurs_NSD_ISV_061500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_100,i-v-n-d-des-sept-douleurs_NSD_ISV_074500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_103,i-v-n-d-des-sept-douleurs_NSD_ISV_183000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_104,i-v-n-d-des-sept-douleurs_NSD_ISV_200000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_100,i-v-n-d-des-sept-douleurs_ISV_NSD_070000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_100,i-v-n-d-des-sept-douleurs_ISV_NSD_083000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_103,i-v-n-d-des-sept-douleurs_ISV_NSD_191500,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_104,i-v-n-d-des-sept-douleurs_ISV_NSD_204500,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_105,l-isle-aux-grues-montmagny_IAG_MMG_113000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_105,l-isle-aux-grues-montmagny_IAG_MMG_204500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_106,l-isle-aux-grues-montmagny_MMG_IAG_094500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_105,l-isle-aux-grues-montmagny_MMG_IAG_121500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_105,l-isle-aux-grues-montmagny_MMG_IAG_213000,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_107,i-v-n-d-des-sept-douleurs_NSD_ISV_064500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_105,i-v-n-d-des-sept-douleurs_NSD_ISV_081500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_108,i-v-n-d-des-sept-douleurs_NSD_ISV_193000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_109,i-v-n-d-des-sept-douleurs_NSD_ISV_210000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_110,i-v-n-d-des-sept-douleurs_ISV_NSD_073000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_105,i-v-n-d-des-sept-douleurs_ISV_NSD_090000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_108,i-v-n-d-des-sept-douleurs_ISV_NSD_201500,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_109,i-v-n-d-des-sept-douleurs_ISV_NSD_214500,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_111,l-isle-aux-grues-montmagny_IAG_MMG_120000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_112,l-isle-aux-grues-montmagny_MMG_IAG_111500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_113,l-isle-aux-grues-montmagny_MMG_IAG_124500,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_113,i-v-n-d-des-sept-douleurs_NSD_ISV_083000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_113,i-v-n-d-des-sept-douleurs_ISV_NSD_091500,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_114,l-isle-aux-grues-montmagny_MMG_IAG_131500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_115,l-isle-aux-grues-montmagny_IAG_MMG_133000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_116,l-isle-aux-grues-montmagny_MMG_IAG_150000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_117,l-isle-aux-grues-montmagny_IAG_MMG_141500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_118,l-isle-aux-grues-montmagny_IAG_MMG_154500,Montmagny,0,0,1 -i-v-n-d-des-sept-douleurs,service_119,i-v-n-d-des-sept-douleurs_NSD_ISV_230000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_119,i-v-n-d-des-sept-douleurs_ISV_NSD_234500,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_120,l-isle-aux-grues-montmagny_IAG_MMG_151500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_121,l-isle-aux-grues-montmagny_IAG_MMG_164500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_120,l-isle-aux-grues-montmagny_MMG_IAG_160000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_121,l-isle-aux-grues-montmagny_MMG_IAG_173000,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_122,i-v-n-d-des-sept-douleurs_NSD_ISV_133000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_123,i-v-n-d-des-sept-douleurs_ISV_NSD_141500,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_124,l-isle-aux-grues-montmagny_IAG_MMG_061500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_125,l-isle-aux-grues-montmagny_IAG_MMG_171500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_126,l-isle-aux-grues-montmagny_MMG_IAG_071500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_125,l-isle-aux-grues-montmagny_MMG_IAG_180000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_127,l-isle-aux-grues-montmagny_IAG_MMG_070000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_127,l-isle-aux-grues-montmagny_MMG_IAG_080000,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_128,i-v-n-d-des-sept-douleurs_NSD_ISV_140000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_129,i-v-n-d-des-sept-douleurs_NSD_ISV_153000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_130,i-v-n-d-des-sept-douleurs_NSD_ISV_281500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_131,i-v-n-d-des-sept-douleurs_ISV_NSD_144500,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_129,i-v-n-d-des-sept-douleurs_ISV_NSD_161500,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_132,l-isle-aux-grues-montmagny_IAG_MMG_074500,Montmagny,0,0,1 +riv-st-augustin,service_12,riv-st-augustin_SAG_PKS_174500,Pakuashipi,1,2,1 +ile-d-entree-cap-aux-meules,service_4,ile-d-entree-cap-aux-meules_IEN_CAM_080000,Cap-aux-Meules,0,0,1 +ile-d-entree-cap-aux-meules,service_4,ile-d-entree-cap-aux-meules_IEN_CAM_153000,Cap-aux-Meules,0,0,1 +ile-d-entree-cap-aux-meules,service_4,ile-d-entree-cap-aux-meules_CAM_IEN_063000,Ile d'Entrée,1,0,1 +ile-d-entree-cap-aux-meules,service_4,ile-d-entree-cap-aux-meules_CAM_IEN_140000,Ile d'Entrée,1,0,1 +quebec,service_13,quebec_QUE_LEV_213000,Lévis,0,1,1 +quebec,service_13,quebec_LEV_QUE_220000,Québec,1,1,1 +l-isle-aux-grues-montmagny,service_14,l-isle-aux-grues-montmagny_IAG_MMG_231500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_14,l-isle-aux-grues-montmagny_MMG_IAG_235900,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_15,i-v-n-d-des-sept-douleurs_NSD_ISV_203000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_16,i-v-n-d-des-sept-douleurs_NSD_ISV_220000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_15,i-v-n-d-des-sept-douleurs_ISV_NSD_211500,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_16,i-v-n-d-des-sept-douleurs_ISV_NSD_224500,Notre-Dame-des-Sept-Douleurs,1,0,1 +matane,service_17,matane_MTN_GDB_141500,Godbout,0,1,1 +matane,service_17,matane_MTN_GDB_173000,Matane,1,1,1 +matane,service_17,matane_MTN_BCO_080000,Baie-Comeau,0,1,1 +matane,service_17,matane_BCO_MTN_110000,Matane,1,1,1 +i-v-n-d-des-sept-douleurs,service_18,i-v-n-d-des-sept-douleurs_NSD_ISV_214500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_19,i-v-n-d-des-sept-douleurs_NSD_ISV_231500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_18,i-v-n-d-des-sept-douleurs_ISV_NSD_223000,Notre-Dame-des-Sept-Douleurs,1,0,1 +h-harbour-chevery,service_20,h-harbour-chevery_CHE_HHB_073000,Harrington Harbour,0,0,1 +h-harbour-chevery,service_21,h-harbour-chevery_HHB_CHE_080000,Chevery,1,0,1 +riv-st-augustin,service_22,riv-st-augustin_PKS_SAG_180000,Saint-Augustin,0,2,1 +riv-st-augustin,service_23,riv-st-augustin_PKS_SAG_190000,Saint-Augustin,0,2,1 +riv-st-augustin,service_22,riv-st-augustin_SAG_PKS_181500,Pakuashipi,1,2,1 +riv-st-augustin,service_23,riv-st-augustin_SAG_PKS_191500,Pakuashipi,1,2,1 +l-isle-aux-grues-montmagny,service_24,l-isle-aux-grues-montmagny_IAG_MMG_140000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_24,l-isle-aux-grues-montmagny_IAG_MMG_241500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_25,l-isle-aux-grues-montmagny_MMG_IAG_153000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_24,l-isle-aux-grues-montmagny_MMG_IAG_250000,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_26,i-v-n-d-des-sept-douleurs_NSD_ISV_223000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_26,i-v-n-d-des-sept-douleurs_ISV_NSD_231500,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_27,i-v-n-d-des-sept-douleurs_ISV_NSD_240000,Notre-Dame-des-Sept-Douleurs,1,0,1 +h-harbour-chevery,service_28,h-harbour-chevery_CHE_HHB_280000,Harrington Harbour,0,0,1 +riv-st-augustin,service_28,riv-st-augustin_PKS_SAG_174500,Saint-Augustin,0,2,1 +riv-st-augustin,service_28,riv-st-augustin_SAG_PKS_180000,Pakuashipi,1,2,1 +sorel,service_29,sorel_SOR_SIL_180000,Saint-Ignace-de-Loyola,0,1,1 +sorel,service_29,sorel_SIL_SOR_183000,Sorel-Tracy,1,1,1 +quebec,service_30,quebec_QUE_LEV_063000,Lévis,0,1,1 +quebec,service_30,quebec_QUE_LEV_073000,Lévis,0,1,1 +quebec,service_30,quebec_QUE_LEV_083000,Lévis,0,1,1 +quebec,service_30,quebec_QUE_LEV_153000,Lévis,0,1,1 +quebec,service_30,quebec_QUE_LEV_163000,Lévis,0,1,1 +quebec,service_30,quebec_QUE_LEV_173000,Lévis,0,1,1 +quebec,service_31,quebec_LEV_QUE_073000,Québec,1,1,1 +quebec,service_31,quebec_LEV_QUE_083000,Québec,1,1,1 +quebec,service_30,quebec_LEV_QUE_153000,Québec,1,1,1 +quebec,service_30,quebec_LEV_QUE_163000,Québec,1,1,1 +quebec,service_30,quebec_LEV_QUE_173000,Québec,1,1,1 +l-isle-aux-grues-montmagny,service_32,l-isle-aux-grues-montmagny_IAG_MMG_144500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_33,l-isle-aux-grues-montmagny_IAG_MMG_161500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_34,l-isle-aux-grues-montmagny_MMG_IAG_171500,L'Isle-aux-Grues,1,0,1 +isle-aux-coudres,service_29,isle-aux-coudres_IAC_SJR_093000,Saint-Joseph-de-la-Rive,0,0,1 +isle-aux-coudres,service_29,isle-aux-coudres_SJR_IAC_100000,L'Isle-aux-Coudres,1,0,1 +i-v-n-d-des-sept-douleurs,service_35,i-v-n-d-des-sept-douleurs_NSD_ISV_130000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_36,i-v-n-d-des-sept-douleurs_NSD_ISV_233000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_37,i-v-n-d-des-sept-douleurs_NSD_ISV_240000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_35,i-v-n-d-des-sept-douleurs_ISV_NSD_134500,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_38,i-v-n-d-des-sept-douleurs_ISV_NSD_244500,Notre-Dame-des-Sept-Douleurs,1,0,1 +h-harbour-chevery,service_39,h-harbour-chevery_CHE_HHB_040000,Harrington Harbour,0,0,1 +h-harbour-chevery,service_39,h-harbour-chevery_CHE_HHB_080000,Harrington Harbour,0,0,1 +riv-st-augustin,service_39,riv-st-augustin_PKS_SAG_140000,Saint-Augustin,0,2,1 +riv-st-augustin,service_29,riv-st-augustin_PKS_SAG_150000,Saint-Augustin,0,2,1 +riv-st-augustin,service_39,riv-st-augustin_PKS_SAG_160000,Saint-Augustin,0,2,1 +riv-st-augustin,service_39,riv-st-augustin_PKS_SAG_170000,Saint-Augustin,0,2,1 +riv-st-augustin,service_39,riv-st-augustin_SAG_PKS_141500,Pakuashipi,1,2,1 +riv-st-augustin,service_29,riv-st-augustin_SAG_PKS_151500,Pakuashipi,1,2,1 +riv-st-augustin,service_39,riv-st-augustin_SAG_PKS_161500,Pakuashipi,1,2,1 +riv-st-augustin,service_39,riv-st-augustin_SAG_PKS_171500,Pakuashipi,1,2,1 +l-isle-aux-grues-montmagny,service_40,l-isle-aux-grues-montmagny_IAG_MMG_060000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_41,l-isle-aux-grues-montmagny_IAG_MMG_153000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_42,l-isle-aux-grues-montmagny_IAG_MMG_173000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_40,l-isle-aux-grues-montmagny_MMG_IAG_064500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_43,l-isle-aux-grues-montmagny_MMG_IAG_163000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_44,l-isle-aux-grues-montmagny_MMG_IAG_183000,L'Isle-aux-Grues,1,0,1 +tadoussac,service_45,tadoussac_BSC_TAD_053000,Tadoussac,1,1,1 +i-v-n-d-des-sept-douleurs,service_46,i-v-n-d-des-sept-douleurs_NSD_ISV_141500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_46,i-v-n-d-des-sept-douleurs_ISV_NSD_150000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_47,i-v-n-d-des-sept-douleurs_ISV_NSD_241500,Notre-Dame-des-Sept-Douleurs,1,0,1 +h-harbour-chevery,service_45,h-harbour-chevery_CHE_HHB_101500,Harrington Harbour,0,0,1 +h-harbour-chevery,service_45,h-harbour-chevery_HHB_CHE_133000,Chevery,1,0,1 +riv-st-augustin,service_45,riv-st-augustin_PKS_SAG_081500,Saint-Augustin,0,2,1 +riv-st-augustin,service_45,riv-st-augustin_PKS_SAG_094500,Saint-Augustin,0,2,1 +riv-st-augustin,service_45,riv-st-augustin_SAG_PKS_083000,Pakuashipi,1,2,1 +riv-st-augustin,service_45,riv-st-augustin_SAG_PKS_100000,Pakuashipi,1,2,1 +l-isle-aux-grues-montmagny,service_48,l-isle-aux-grues-montmagny_IAG_MMG_064500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_49,l-isle-aux-grues-montmagny_IAG_MMG_160000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_50,l-isle-aux-grues-montmagny_IAG_MMG_184500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_51,l-isle-aux-grues-montmagny_MMG_IAG_074500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_52,l-isle-aux-grues-montmagny_MMG_IAG_164500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_50,l-isle-aux-grues-montmagny_MMG_IAG_193000,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_53,i-v-n-d-des-sept-douleurs_NSD_ISV_134500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_54,i-v-n-d-des-sept-douleurs_NSD_ISV_151500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_53,i-v-n-d-des-sept-douleurs_ISV_NSD_143000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_54,i-v-n-d-des-sept-douleurs_ISV_NSD_160000,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_55,l-isle-aux-grues-montmagny_IAG_MMG_073000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_56,l-isle-aux-grues-montmagny_IAG_MMG_163000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_57,l-isle-aux-grues-montmagny_IAG_MMG_180000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_58,l-isle-aux-grues-montmagny_IAG_MMG_193000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_59,l-isle-aux-grues-montmagny_MMG_IAG_083000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_60,l-isle-aux-grues-montmagny_MMG_IAG_184500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_61,l-isle-aux-grues-montmagny_MMG_IAG_201500,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_62,i-v-n-d-des-sept-douleurs_NSD_ISV_161500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_63,i-v-n-d-des-sept-douleurs_NSD_ISV_244500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_62,i-v-n-d-des-sept-douleurs_ISV_NSD_170000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_63,i-v-n-d-des-sept-douleurs_ISV_NSD_253000,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_64,l-isle-aux-grues-montmagny_IAG_MMG_083000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_65,l-isle-aux-grues-montmagny_IAG_MMG_170000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_66,l-isle-aux-grues-montmagny_IAG_MMG_194500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_64,l-isle-aux-grues-montmagny_MMG_IAG_091500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_65,l-isle-aux-grues-montmagny_MMG_IAG_174500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_66,l-isle-aux-grues-montmagny_MMG_IAG_203000,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_67,i-v-n-d-des-sept-douleurs_NSD_ISV_050000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_68,i-v-n-d-des-sept-douleurs_NSD_ISV_144500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_69,i-v-n-d-des-sept-douleurs_NSD_ISV_171500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_67,i-v-n-d-des-sept-douleurs_ISV_NSD_054500,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_68,i-v-n-d-des-sept-douleurs_ISV_NSD_153000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_69,i-v-n-d-des-sept-douleurs_ISV_NSD_180000,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_70,l-isle-aux-grues-montmagny_IAG_MMG_090000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_71,l-isle-aux-grues-montmagny_IAG_MMG_174500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_72,l-isle-aux-grues-montmagny_MMG_IAG_081500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_73,l-isle-aux-grues-montmagny_MMG_IAG_100000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_74,l-isle-aux-grues-montmagny_MMG_IAG_210000,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_75,i-v-n-d-des-sept-douleurs_NSD_ISV_054500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_76,i-v-n-d-des-sept-douleurs_NSD_ISV_150000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_76,i-v-n-d-des-sept-douleurs_NSD_ISV_163000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_76,i-v-n-d-des-sept-douleurs_NSD_ISV_180000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_75,i-v-n-d-des-sept-douleurs_ISV_NSD_063000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_76,i-v-n-d-des-sept-douleurs_ISV_NSD_154500,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_76,i-v-n-d-des-sept-douleurs_ISV_NSD_171500,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_76,i-v-n-d-des-sept-douleurs_ISV_NSD_184500,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_77,l-isle-aux-grues-montmagny_IAG_MMG_081500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_78,l-isle-aux-grues-montmagny_IAG_MMG_094500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_79,l-isle-aux-grues-montmagny_IAG_MMG_181500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_78,l-isle-aux-grues-montmagny_MMG_IAG_073000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_80,l-isle-aux-grues-montmagny_MMG_IAG_090000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_81,l-isle-aux-grues-montmagny_MMG_IAG_103000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_82,l-isle-aux-grues-montmagny_MMG_IAG_190000,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_83,i-v-n-d-des-sept-douleurs_NSD_ISV_060000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_84,i-v-n-d-des-sept-douleurs_NSD_ISV_154500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_81,i-v-n-d-des-sept-douleurs_NSD_ISV_184500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_85,i-v-n-d-des-sept-douleurs_ISV_NSD_071500,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_84,i-v-n-d-des-sept-douleurs_ISV_NSD_163000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_81,i-v-n-d-des-sept-douleurs_ISV_NSD_193000,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_86,l-isle-aux-grues-montmagny_IAG_MMG_080000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_87,l-isle-aux-grues-montmagny_IAG_MMG_100000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_88,l-isle-aux-grues-montmagny_IAG_MMG_190000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_89,l-isle-aux-grues-montmagny_IAG_MMG_203000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_90,l-isle-aux-grues-montmagny_MMG_IAG_110000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_91,l-isle-aux-grues-montmagny_MMG_IAG_194500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_89,l-isle-aux-grues-montmagny_MMG_IAG_211500,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_92,i-v-n-d-des-sept-douleurs_NSD_ISV_063000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_93,i-v-n-d-des-sept-douleurs_NSD_ISV_164500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_94,i-v-n-d-des-sept-douleurs_NSD_ISV_181500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_95,i-v-n-d-des-sept-douleurs_NSD_ISV_194500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_87,i-v-n-d-des-sept-douleurs_ISV_NSD_074500,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_93,i-v-n-d-des-sept-douleurs_ISV_NSD_173000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_94,i-v-n-d-des-sept-douleurs_ISV_NSD_190000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_95,i-v-n-d-des-sept-douleurs_ISV_NSD_203000,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_96,l-isle-aux-grues-montmagny_IAG_MMG_110000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_97,l-isle-aux-grues-montmagny_IAG_MMG_211500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_98,l-isle-aux-grues-montmagny_IAG_MMG_224500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_99,l-isle-aux-grues-montmagny_MMG_IAG_084500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_100,l-isle-aux-grues-montmagny_MMG_IAG_114500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_97,l-isle-aux-grues-montmagny_MMG_IAG_220000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_98,l-isle-aux-grues-montmagny_MMG_IAG_233000,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_98,i-v-n-d-des-sept-douleurs_NSD_ISV_061500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_98,i-v-n-d-des-sept-douleurs_NSD_ISV_074500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_101,i-v-n-d-des-sept-douleurs_NSD_ISV_183000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_102,i-v-n-d-des-sept-douleurs_NSD_ISV_200000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_98,i-v-n-d-des-sept-douleurs_ISV_NSD_070000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_98,i-v-n-d-des-sept-douleurs_ISV_NSD_083000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_101,i-v-n-d-des-sept-douleurs_ISV_NSD_191500,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_102,i-v-n-d-des-sept-douleurs_ISV_NSD_204500,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_103,l-isle-aux-grues-montmagny_IAG_MMG_113000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_103,l-isle-aux-grues-montmagny_IAG_MMG_204500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_104,l-isle-aux-grues-montmagny_MMG_IAG_094500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_103,l-isle-aux-grues-montmagny_MMG_IAG_121500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_103,l-isle-aux-grues-montmagny_MMG_IAG_213000,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_105,i-v-n-d-des-sept-douleurs_NSD_ISV_064500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_103,i-v-n-d-des-sept-douleurs_NSD_ISV_081500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_106,i-v-n-d-des-sept-douleurs_NSD_ISV_193000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_107,i-v-n-d-des-sept-douleurs_NSD_ISV_210000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_108,i-v-n-d-des-sept-douleurs_ISV_NSD_073000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_103,i-v-n-d-des-sept-douleurs_ISV_NSD_090000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_106,i-v-n-d-des-sept-douleurs_ISV_NSD_201500,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_107,i-v-n-d-des-sept-douleurs_ISV_NSD_214500,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_109,l-isle-aux-grues-montmagny_IAG_MMG_120000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_110,l-isle-aux-grues-montmagny_MMG_IAG_111500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_111,l-isle-aux-grues-montmagny_MMG_IAG_124500,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_111,i-v-n-d-des-sept-douleurs_NSD_ISV_083000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_111,i-v-n-d-des-sept-douleurs_ISV_NSD_091500,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_112,l-isle-aux-grues-montmagny_MMG_IAG_131500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_113,l-isle-aux-grues-montmagny_IAG_MMG_133000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_114,l-isle-aux-grues-montmagny_MMG_IAG_150000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_115,l-isle-aux-grues-montmagny_IAG_MMG_141500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_116,l-isle-aux-grues-montmagny_IAG_MMG_154500,Montmagny,0,0,1 +i-v-n-d-des-sept-douleurs,service_117,i-v-n-d-des-sept-douleurs_NSD_ISV_230000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_117,i-v-n-d-des-sept-douleurs_ISV_NSD_234500,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_118,l-isle-aux-grues-montmagny_IAG_MMG_151500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_119,l-isle-aux-grues-montmagny_IAG_MMG_164500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_118,l-isle-aux-grues-montmagny_MMG_IAG_160000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_119,l-isle-aux-grues-montmagny_MMG_IAG_173000,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_120,i-v-n-d-des-sept-douleurs_NSD_ISV_133000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_121,i-v-n-d-des-sept-douleurs_ISV_NSD_141500,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_122,l-isle-aux-grues-montmagny_IAG_MMG_061500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_123,l-isle-aux-grues-montmagny_IAG_MMG_171500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_124,l-isle-aux-grues-montmagny_MMG_IAG_071500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_123,l-isle-aux-grues-montmagny_MMG_IAG_180000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_125,l-isle-aux-grues-montmagny_IAG_MMG_070000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_125,l-isle-aux-grues-montmagny_MMG_IAG_080000,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_126,i-v-n-d-des-sept-douleurs_NSD_ISV_140000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_127,i-v-n-d-des-sept-douleurs_NSD_ISV_153000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_125,i-v-n-d-des-sept-douleurs_NSD_ISV_281500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_128,i-v-n-d-des-sept-douleurs_ISV_NSD_144500,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_127,i-v-n-d-des-sept-douleurs_ISV_NSD_161500,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_129,l-isle-aux-grues-montmagny_IAG_MMG_074500,Montmagny,0,0,1 l-isle-aux-grues-montmagny,service_130,l-isle-aux-grues-montmagny_MMG_IAG_070000,L'Isle-aux-Grues,1,0,1 i-v-n-d-des-sept-douleurs,service_130,i-v-n-d-des-sept-douleurs_NSD_ISV_041500,L'Isle-Verte,0,0,1 i-v-n-d-des-sept-douleurs,service_130,i-v-n-d-des-sept-douleurs_ISV_NSD_050000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_133,i-v-n-d-des-sept-douleurs_NSD_ISV_143000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_133,i-v-n-d-des-sept-douleurs_ISV_NSD_151500,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_134,l-isle-aux-grues-montmagny_IAG_MMG_084500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_134,l-isle-aux-grues-montmagny_MMG_IAG_093000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_135,l-isle-aux-grues-montmagny_MMG_IAG_181500,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_136,i-v-n-d-des-sept-douleurs_NSD_ISV_051500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_136,i-v-n-d-des-sept-douleurs_ISV_NSD_060000,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_137,l-isle-aux-grues-montmagny_IAG_MMG_191500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_137,l-isle-aux-grues-montmagny_MMG_IAG_200000,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_138,i-v-n-d-des-sept-douleurs_NSD_ISV_044500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_138,i-v-n-d-des-sept-douleurs_ISV_NSD_061500,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_139,l-isle-aux-grues-montmagny_IAG_MMG_071500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_140,l-isle-aux-grues-montmagny_IAG_MMG_091500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_140,l-isle-aux-grues-montmagny_MMG_IAG_101500,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_141,i-v-n-d-des-sept-douleurs_NSD_ISV_170000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_142,i-v-n-d-des-sept-douleurs_ISV_NSD_064500,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_141,i-v-n-d-des-sept-douleurs_ISV_NSD_174500,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_143,l-isle-aux-grues-montmagny_IAG_MMG_201500,Montmagny,0,0,1 -i-v-n-d-des-sept-douleurs,service_144,i-v-n-d-des-sept-douleurs_NSD_ISV_160000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_145,i-v-n-d-des-sept-douleurs_NSD_ISV_173000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_143,i-v-n-d-des-sept-douleurs_NSD_ISV_190000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_144,i-v-n-d-des-sept-douleurs_ISV_NSD_164500,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_145,i-v-n-d-des-sept-douleurs_ISV_NSD_181500,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_143,i-v-n-d-des-sept-douleurs_ISV_NSD_194500,Notre-Dame-des-Sept-Douleurs,1,0,1 -matane,service_146,matane_MTN_BCO_140000,Baie-Comeau,0,1,1 -matane,service_146,matane_BCO_MTN_170000,Matane,1,1,1 -l-isle-aux-grues-montmagny,service_147,l-isle-aux-grues-montmagny_MMG_IAG_104500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_148,l-isle-aux-grues-montmagny_IAG_MMG_101500,Montmagny,0,0,1 -i-v-n-d-des-sept-douleurs,service_149,i-v-n-d-des-sept-douleurs_NSD_ISV_213000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_149,i-v-n-d-des-sept-douleurs_ISV_NSD_221500,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_150,l-isle-aux-grues-montmagny_IAG_MMG_223000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_150,l-isle-aux-grues-montmagny_MMG_IAG_231500,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_151,i-v-n-d-des-sept-douleurs_NSD_ISV_211500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_151,i-v-n-d-des-sept-douleurs_NSD_ISV_224500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_151,i-v-n-d-des-sept-douleurs_ISV_NSD_220000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_151,i-v-n-d-des-sept-douleurs_ISV_NSD_233000,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_152,l-isle-aux-grues-montmagny_IAG_MMG_234500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_153,l-isle-aux-grues-montmagny_MMG_IAG_243000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_154,l-isle-aux-grues-montmagny_MMG_IAG_151500,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_155,i-v-n-d-des-sept-douleurs_NSD_ISV_123000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_155,i-v-n-d-des-sept-douleurs_ISV_NSD_131500,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_156,l-isle-aux-grues-montmagny_MMG_IAG_161500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_157,l-isle-aux-grues-montmagny_IAG_MMG_200000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_157,l-isle-aux-grues-montmagny_MMG_IAG_204500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_158,l-isle-aux-grues-montmagny_IAG_MMG_183000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_158,l-isle-aux-grues-montmagny_MMG_IAG_191500,L'Isle-aux-Grues,1,0,1 -i-v-n-d-des-sept-douleurs,service_159,i-v-n-d-des-sept-douleurs_NSD_ISV_174500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_160,i-v-n-d-des-sept-douleurs_NSD_ISV_191500,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_159,i-v-n-d-des-sept-douleurs_ISV_NSD_183000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_160,i-v-n-d-des-sept-douleurs_ISV_NSD_200000,Notre-Dame-des-Sept-Douleurs,1,0,1 -i-v-n-d-des-sept-douleurs,service_161,i-v-n-d-des-sept-douleurs_NSD_ISV_073000,L'Isle-Verte,0,0,1 -i-v-n-d-des-sept-douleurs,service_162,i-v-n-d-des-sept-douleurs_ISV_NSD_081500,Notre-Dame-des-Sept-Douleurs,1,0,1 -l-isle-aux-grues-montmagny,service_163,l-isle-aux-grues-montmagny_IAG_MMG_213000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_163,l-isle-aux-grues-montmagny_MMG_IAG_221500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_164,l-isle-aux-grues-montmagny_IAG_MMG_114500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_164,l-isle-aux-grues-montmagny_MMG_IAG_130000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_165,l-isle-aux-grues-montmagny_IAG_MMG_130000,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_165,l-isle-aux-grues-montmagny_MMG_IAG_144500,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_166,l-isle-aux-grues-montmagny_IAG_MMG_134500,Montmagny,0,0,1 -l-isle-aux-grues-montmagny,service_166,l-isle-aux-grues-montmagny_MMG_IAG_143000,L'Isle-aux-Grues,1,0,1 -l-isle-aux-grues-montmagny,service_167,l-isle-aux-grues-montmagny_MMG_IAG_154500,L'Isle-aux-Grues,1,0,1 \ No newline at end of file +i-v-n-d-des-sept-douleurs,service_131,i-v-n-d-des-sept-douleurs_NSD_ISV_143000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_131,i-v-n-d-des-sept-douleurs_ISV_NSD_151500,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_132,l-isle-aux-grues-montmagny_IAG_MMG_084500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_132,l-isle-aux-grues-montmagny_MMG_IAG_093000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_133,l-isle-aux-grues-montmagny_MMG_IAG_181500,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_134,i-v-n-d-des-sept-douleurs_NSD_ISV_051500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_134,i-v-n-d-des-sept-douleurs_ISV_NSD_060000,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_135,l-isle-aux-grues-montmagny_IAG_MMG_191500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_135,l-isle-aux-grues-montmagny_MMG_IAG_200000,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_136,i-v-n-d-des-sept-douleurs_NSD_ISV_044500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_136,i-v-n-d-des-sept-douleurs_ISV_NSD_061500,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_137,l-isle-aux-grues-montmagny_IAG_MMG_071500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_138,l-isle-aux-grues-montmagny_IAG_MMG_091500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_138,l-isle-aux-grues-montmagny_MMG_IAG_101500,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_139,i-v-n-d-des-sept-douleurs_NSD_ISV_170000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_140,i-v-n-d-des-sept-douleurs_ISV_NSD_064500,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_139,i-v-n-d-des-sept-douleurs_ISV_NSD_174500,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_141,l-isle-aux-grues-montmagny_IAG_MMG_201500,Montmagny,0,0,1 +i-v-n-d-des-sept-douleurs,service_142,i-v-n-d-des-sept-douleurs_NSD_ISV_160000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_143,i-v-n-d-des-sept-douleurs_NSD_ISV_173000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_141,i-v-n-d-des-sept-douleurs_NSD_ISV_190000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_142,i-v-n-d-des-sept-douleurs_ISV_NSD_164500,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_143,i-v-n-d-des-sept-douleurs_ISV_NSD_181500,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_141,i-v-n-d-des-sept-douleurs_ISV_NSD_194500,Notre-Dame-des-Sept-Douleurs,1,0,1 +matane,service_144,matane_MTN_BCO_140000,Baie-Comeau,0,1,1 +matane,service_144,matane_BCO_MTN_170000,Matane,1,1,1 +l-isle-aux-grues-montmagny,service_145,l-isle-aux-grues-montmagny_MMG_IAG_104500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_146,l-isle-aux-grues-montmagny_IAG_MMG_101500,Montmagny,0,0,1 +i-v-n-d-des-sept-douleurs,service_147,i-v-n-d-des-sept-douleurs_NSD_ISV_213000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_147,i-v-n-d-des-sept-douleurs_ISV_NSD_221500,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_148,l-isle-aux-grues-montmagny_IAG_MMG_223000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_148,l-isle-aux-grues-montmagny_MMG_IAG_231500,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_149,i-v-n-d-des-sept-douleurs_NSD_ISV_211500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_149,i-v-n-d-des-sept-douleurs_NSD_ISV_224500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_149,i-v-n-d-des-sept-douleurs_ISV_NSD_220000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_149,i-v-n-d-des-sept-douleurs_ISV_NSD_233000,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_150,l-isle-aux-grues-montmagny_IAG_MMG_234500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_150,l-isle-aux-grues-montmagny_MMG_IAG_243000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_151,l-isle-aux-grues-montmagny_MMG_IAG_151500,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_152,i-v-n-d-des-sept-douleurs_NSD_ISV_123000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_152,i-v-n-d-des-sept-douleurs_ISV_NSD_131500,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_153,l-isle-aux-grues-montmagny_MMG_IAG_161500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_154,l-isle-aux-grues-montmagny_IAG_MMG_200000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_154,l-isle-aux-grues-montmagny_MMG_IAG_204500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_155,l-isle-aux-grues-montmagny_IAG_MMG_183000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_155,l-isle-aux-grues-montmagny_MMG_IAG_191500,L'Isle-aux-Grues,1,0,1 +i-v-n-d-des-sept-douleurs,service_156,i-v-n-d-des-sept-douleurs_NSD_ISV_174500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_157,i-v-n-d-des-sept-douleurs_NSD_ISV_191500,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_156,i-v-n-d-des-sept-douleurs_ISV_NSD_183000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_157,i-v-n-d-des-sept-douleurs_ISV_NSD_200000,Notre-Dame-des-Sept-Douleurs,1,0,1 +i-v-n-d-des-sept-douleurs,service_158,i-v-n-d-des-sept-douleurs_NSD_ISV_073000,L'Isle-Verte,0,0,1 +i-v-n-d-des-sept-douleurs,service_159,i-v-n-d-des-sept-douleurs_ISV_NSD_081500,Notre-Dame-des-Sept-Douleurs,1,0,1 +l-isle-aux-grues-montmagny,service_160,l-isle-aux-grues-montmagny_IAG_MMG_213000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_160,l-isle-aux-grues-montmagny_MMG_IAG_221500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_161,l-isle-aux-grues-montmagny_IAG_MMG_114500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_161,l-isle-aux-grues-montmagny_MMG_IAG_130000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_162,l-isle-aux-grues-montmagny_IAG_MMG_130000,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_162,l-isle-aux-grues-montmagny_MMG_IAG_144500,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_163,l-isle-aux-grues-montmagny_IAG_MMG_134500,Montmagny,0,0,1 +l-isle-aux-grues-montmagny,service_163,l-isle-aux-grues-montmagny_MMG_IAG_143000,L'Isle-aux-Grues,1,0,1 +l-isle-aux-grues-montmagny,service_164,l-isle-aux-grues-montmagny_MMG_IAG_154500,L'Isle-aux-Grues,1,0,1 \ No newline at end of file diff --git a/data/static/routes.json b/data/static/routes.json index 9866c88..a2e2c07 100644 --- a/data/static/routes.json +++ b/data/static/routes.json @@ -1,110 +1,125 @@ { - "fields": ["route_id", "agency_id", "route_short_name", "route_long_name", "route_type", "route_url", "route_color", "route_text_color", "route_sort_order"], - "data": [ - { - "route_id": "sorel", - "agency_id": "STQ", - "route_short_name": "STSIL", - "route_long_name": "Sorel-Tracy – Saint-Ignace-de-Loyola", - "route_type": "4", - "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-sorel-tracy-saint-ignace-de-loyola/horaire", - "route_color": "20A9EC", - "route_text_color": "FFFFFF", - "route_sort_order": "1" - }, - { - "route_id": "quebec", - "agency_id": "STQ", - "route_short_name": "QL", - "route_long_name": "Québec – Lévis", - "route_type": "4", - "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-quebec-levis/horaire", - "route_color": "20A9EC", - "route_text_color": "FFFFFF", - "route_sort_order": "2" - }, - { - "route_id": "l-isle-aux-grues-montmagny", - "agency_id": "STQ", - "route_short_name": "IAG", - "route_long_name": "L'Isle-aux-Grues – Montmagny", - "route_type": "4", - "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-lisle-aux-grues-montmagny/horaire", - "route_color": "20A9EC", - "route_text_color": "FFFFFF", - "route_sort_order": "3" - },{ - "route_id": "isle-aux-coudres", - "agency_id": "STQ", - "route_short_name": "IAC", - "route_long_name": "L'Isle-aux-Coudres – Saint-Joseph-de-la-Rive", - "route_type": "4", - "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-lisle-aux-coudres-saint-joseph-de-la-rive/horaire", - "route_color": "20A9EC", - "route_text_color": "FFFFFF", - "route_sort_order": "4" - },{ - "route_id": "tadoussac", - "agency_id": "STQ", - "route_short_name": "TBSC", - "route_long_name": "Tadoussac – Baie-Sainte-Catherine", - "route_type": "4", - "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-tadoussac-baie-sainte-catherine/horaire", - "route_color": "20A9EC", - "route_text_color": "FFFFFF", - "route_sort_order": "5" - },{ - "route_id": "i-v-n-d-des-sept-douleurs", - "agency_id": "STQ", - "route_short_name": "IV", - "route_long_name": "l'Île-Verte", - "route_type": "4", - "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-de-lile-verte/horaire", - "route_color": "20A9EC", - "route_text_color": "FFFFFF", - "route_sort_order": "6" - }, - { - "route_id": "matane", - "agency_id": "STQ", - "route_short_name": "MBCG", - "route_long_name": "Matane – Baie-Comeau – Godbout", - "route_type": "4", - "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-matane-baie-comeau-godbout/horaire", - "route_color": "20A9EC", - "route_text_color": "FFFFFF", - "route_sort_order": "7" - },{ - "route_id": "h-harbour-chevery", - "agency_id": "STQ", - "route_short_name": "HHC", - "route_long_name": "Harrington Harbour – Chevery", - "route_type": "4", - "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-harrington-harbour-chevery/horaire", - "route_color": "20A9EC", - "route_text_color": "FFFFFF", - "route_sort_order": "8" - },{ - "route_id": "riv-st-augustin", - "agency_id": "STQ", - "route_short_name": "RSA", - "route_long_name": "Rivière Saint-Augustin", - "route_type": "4", - "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-de-la-riviere-saint-augustin-basse-cote-nord/horaire", - "route_color": "20A9EC", - "route_text_color": "FFFFFF", - "route_sort_order": "9" - }, { - "route_id": "ile-d-entree-cap-aux-meules", - "agency_id": "STQ", - "route_short_name": "IE", - "route_long_name": "Île d'Entrée – Cap-aux-Meules", - "route_type": "4", - "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-ile-dentree-cap-aux-meules/horaire", - "route_color": "20A9EC", - "route_text_color": "FFFFFF", - "route_sort_order": "10" - } - ] - } - \ No newline at end of file + "fields": [ + "route_id", + "agency_id", + "route_short_name", + "route_long_name", + "route_type", + "route_url", + "route_color", + "route_text_color", + "route_sort_order" + ], + "data": [ + { + "route_id": "sorel", + "agency_id": "STQ", + "route_short_name": "STSIL", + "route_long_name": "Sorel-Tracy – Saint-Ignace-de-Loyola", + "route_type": "4", + "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-sorel-tracy-saint-ignace-de-loyola/horaire", + "route_color": "009CDD", + "route_text_color": "FFFFFF", + "route_sort_order": "1" + }, + { + "route_id": "quebec", + "agency_id": "STQ", + "route_short_name": "QL", + "route_long_name": "Québec – Lévis", + "route_type": "4", + "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-quebec-levis/horaire", + "route_color": "009CDD", + "route_text_color": "FFFFFF", + "route_sort_order": "2" + }, + { + "route_id": "l-isle-aux-grues-montmagny", + "agency_id": "STQ", + "route_short_name": "IAG", + "route_long_name": "L'Isle-aux-Grues – Montmagny", + "route_type": "4", + "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-lisle-aux-grues-montmagny/horaire", + "route_color": "009CDD", + "route_text_color": "FFFFFF", + "route_sort_order": "3" + }, + { + "route_id": "isle-aux-coudres", + "agency_id": "STQ", + "route_short_name": "IAC", + "route_long_name": "L'Isle-aux-Coudres – Saint-Joseph-de-la-Rive", + "route_type": "4", + "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-lisle-aux-coudres-saint-joseph-de-la-rive/horaire", + "route_color": "009CDD", + "route_text_color": "FFFFFF", + "route_sort_order": "4" + }, + { + "route_id": "tadoussac", + "agency_id": "STQ", + "route_short_name": "TBSC", + "route_long_name": "Tadoussac – Baie-Sainte-Catherine", + "route_type": "4", + "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-tadoussac-baie-sainte-catherine/horaire", + "route_color": "009CDD", + "route_text_color": "FFFFFF", + "route_sort_order": "5" + }, + { + "route_id": "i-v-n-d-des-sept-douleurs", + "agency_id": "STQ", + "route_short_name": "IV", + "route_long_name": "l'Île-Verte", + "route_type": "4", + "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-de-lile-verte/horaire", + "route_color": "009CDD", + "route_text_color": "FFFFFF", + "route_sort_order": "6" + }, + { + "route_id": "matane", + "agency_id": "STQ", + "route_short_name": "MBCG", + "route_long_name": "Matane – Baie-Comeau – Godbout", + "route_type": "4", + "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-matane-baie-comeau-godbout/horaire", + "route_color": "009CDD", + "route_text_color": "FFFFFF", + "route_sort_order": "7" + }, + { + "route_id": "h-harbour-chevery", + "agency_id": "STQ", + "route_short_name": "HHC", + "route_long_name": "Harrington Harbour – Chevery", + "route_type": "4", + "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-harrington-harbour-chevery/horaire", + "route_color": "009CDD", + "route_text_color": "FFFFFF", + "route_sort_order": "8" + }, + { + "route_id": "riv-st-augustin", + "agency_id": "STQ", + "route_short_name": "RSA", + "route_long_name": "Rivière Saint-Augustin", + "route_type": "4", + "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-de-la-riviere-saint-augustin-basse-cote-nord/horaire", + "route_color": "009CDD", + "route_text_color": "FFFFFF", + "route_sort_order": "9" + }, + { + "route_id": "ile-d-entree-cap-aux-meules", + "agency_id": "STQ", + "route_short_name": "IE", + "route_long_name": "Île d'Entrée – Cap-aux-Meules", + "route_type": "4", + "route_url": "https://www.traversiers.com/fr/nos-traverses/traverse-ile-dentree-cap-aux-meules/horaire", + "route_color": "009CDD", + "route_text_color": "FFFFFF", + "route_sort_order": "10" + } + ] +} diff --git a/src/gtfsWriter.ts b/src/gtfsWriter.ts index fffee74..71921da 100644 --- a/src/gtfsWriter.ts +++ b/src/gtfsWriter.ts @@ -5,9 +5,10 @@ interface DataObject { [key: string]: any; } -function escapeCsvValue(value: string | undefined): string { - if (!value) return ""; - return value.includes(",") ? `"${value}"` : value; +function escapeCsvValue(value: any): string { + if (value == null) return ""; // handle null and undefined + const stringValue = String(value); // convert non-strings to strings + return stringValue.includes(",") ? `"${stringValue}"` : stringValue; } function writeGtfsFile( diff --git a/src/index.ts b/src/index.ts index e26d034..288bb42 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,6 +5,7 @@ import { loadServicePatterns } from "./loadServicePatterns"; import { createTripsAndStopTimes } from "./makeTripsStopTimes"; import { createFeedInfo } from "./makeFeedInfo"; import { zipGtfsFiles } from "./compileZipFiles"; +import { optimizeCalendar } from "./optimizeCalendar"; // First, create the files that don't require the API: agency, routes, attributions, stops readJsonAndWriteGtfs( @@ -34,10 +35,29 @@ async function runScheduleProcessor() { const TripsAndStopTimes = createTripsAndStopTimes(schedules, servicePatterns); const feedInfo = createFeedInfo(); + const optimized = optimizeCalendar(TripsAndStopTimes.calendarDates); + + // Write the optimized calendar and calendar dates to files + writeGtfsFile( + "data/gtfs/calendar.txt", + [ + "service_id", + "monday", + "tuesday", + "wednesday", + "thursday", + "friday", + "saturday", + "sunday", + "start_date", + "end_date", + ], + optimized.calendar + ); writeGtfsFile( "data/gtfs/calendar_dates.txt", ["service_id", "date", "exception_type"], - TripsAndStopTimes.calendarDates + optimized.calendarDates ); writeGtfsFile( "data/gtfs/trips.txt", diff --git a/src/makeTripsStopTimes.ts b/src/makeTripsStopTimes.ts index 0e194d3..6009e7e 100644 --- a/src/makeTripsStopTimes.ts +++ b/src/makeTripsStopTimes.ts @@ -53,7 +53,7 @@ interface StopTimeData { timepoint: string; } -interface CalendarDate { +export interface CalendarDate { [key: string]: string | number; service_id: string; date: string; @@ -208,7 +208,7 @@ export function createTripsAndStopTimes( } const tripDates = tripDateMap.get(tripId); if (tripDates) { - tripDates.add(depart.date); + tripDates.add(jour.date); } }); } diff --git a/src/optimizeCalendar.ts b/src/optimizeCalendar.ts new file mode 100644 index 0000000..0bb7fcf --- /dev/null +++ b/src/optimizeCalendar.ts @@ -0,0 +1,99 @@ +import { CalendarDate } from "./makeTripsStopTimes"; +import { parseISO, eachDayOfInterval, format, getDay } from "date-fns"; + +interface OptimizedCalendar { + calendar: CalendarEntry[]; + calendarDates: CalendarDate[]; +} + +interface CalendarEntry { + service_id: string; + monday: number; + tuesday: number; + wednesday: number; + thursday: number; + friday: number; + saturday: number; + sunday: number; + start_date: string; + end_date: string; +} + +const dayOfWeekMap: { [index: number]: keyof CalendarEntry } = { + 0: "sunday", + 1: "monday", + 2: "tuesday", + 3: "wednesday", + 4: "thursday", + 5: "friday", + 6: "saturday", +}; + +export function optimizeCalendar( + calendarDates: CalendarDate[] +): OptimizedCalendar { + const serviceDateMap: Map> = new Map(); + + calendarDates.forEach(({ service_id, date }) => { + if (!serviceDateMap.has(service_id)) { + serviceDateMap.set(service_id, new Set()); + } + serviceDateMap.get(service_id)!.add(date); + }); + + const calendar: CalendarEntry[] = []; + const optimizedCalendarDates: CalendarDate[] = []; + + serviceDateMap.forEach((dates, service_id) => { + const sortedDates = Array.from(dates).sort(); + const startDate = parseISO(sortedDates[0]); + const endDate = parseISO(sortedDates[sortedDates.length - 1]); + const totalDays = eachDayOfInterval({ start: startDate, end: endDate }); + const dayCounts = new Array(7).fill(0); + const operationalDays = new Array(7).fill(0); + + totalDays.forEach((day) => { + const dayIndex = getDay(day); + dayCounts[dayIndex]++; + if (dates.has(format(day, "yyyyMMdd"))) { + operationalDays[dayIndex]++; + } + }); + + const calendarEntry: CalendarEntry = { + service_id, + monday: operationalDays[1] / dayCounts[1] >= 0.5 ? 1 : 0, + tuesday: operationalDays[2] / dayCounts[2] >= 0.5 ? 1 : 0, + wednesday: operationalDays[3] / dayCounts[3] >= 0.5 ? 1 : 0, + thursday: operationalDays[4] / dayCounts[4] >= 0.5 ? 1 : 0, + friday: operationalDays[5] / dayCounts[5] >= 0.5 ? 1 : 0, + saturday: operationalDays[6] / dayCounts[6] >= 0.5 ? 1 : 0, + sunday: operationalDays[0] / dayCounts[0] >= 0.5 ? 1 : 0, + start_date: format(startDate, "yyyyMMdd"), + end_date: format(endDate, "yyyyMMdd"), + }; + + calendar.push(calendarEntry); + + totalDays.forEach((day) => { + const dayIndex = getDay(day); + const formattedDate = format(day, "yyyyMMdd"); + const weekdayKey = dayOfWeekMap[dayIndex]; + if (calendarEntry[weekdayKey] === 0 && dates.has(formattedDate)) { + optimizedCalendarDates.push({ + service_id, + date: formattedDate, + exception_type: "1", + }); + } else if (calendarEntry[weekdayKey] === 1 && !dates.has(formattedDate)) { + optimizedCalendarDates.push({ + service_id, + date: formattedDate, + exception_type: "2", + }); + } + }); + }); + + return { calendar, calendarDates: optimizedCalendarDates }; +} diff --git a/stq-qc-ca.gtfs.zip b/stq-qc-ca.gtfs.zip index 0509640af0594ab8ffa3437b8431425c0e342c2b..e863e62df036bb96b73513da679d9931a9ab09ea 100644 GIT binary patch delta 8977 zcma)iWmp`+vi9PxVR4rr!QC~u+XBHoxGox4BuH>~hv2?Qa7lpR?ivUZG`I!0aL&E= z1+}n(688dV1cfy8xJ+Xc&l^A{;y(0QvaL36W0Ej0mfsL=O z>tBI^WdBDi`tz;kruLSO7N)MO?q2T6>BEkh0_Y*vekl+Mjq4J|prznJGtPjckvu2k znMUa$!B%)9-AFd>J}G%xHxc7U-zS&HM}NV`+v}~1tMe~@IW=8fPhz>EkCl!Ph|zIm z7wbt^SG7~~_^{up_Y)-Y;ONNp-ruJ!JNA6wSLcm~-@>+(nEM13Z4PIfSR{2>f~)hn zH=QEgYLhagq3cOuM$r{+^$PhPjZ)4Leu*C%^}IE z&YB}owi;2I3^W5*@#t6q-9M0=4Aht{m)L^k!I9HM%5V_r+l1g_fb-w?V16`W$uHB+ zgzd!`A}e}J&NW?F|cUTR&+~gT`-Q{4)(W)inpJg?p2o|%Pw;A0S zZ|@oS7{H~D!zgR`_4_*vp9=ifZPN-Xdt6-t_c`2c)@|2hhdm4)Hte_Q6(Tr2D6cWS z^z!;)=Dmg>H4JqH{*Kz{OXahAJiT{4h1z5jvcn~PO&31raE(LLFv^m~JEbU~JcM#w z_?*I`X2m!^q!lxL;`t4N(sJPMMO@hT26_E~+_H;#-hmm&Ng;5>#03sW)J{U!mOlcl zK<>%{Q~5iuqrMDbSEETI*}6b1zb)u)>m+d-o4?bA@N`;veVHvM|Ek;MrwrFv#Fm50 zriKAZ@S8a*^k1K^6<1a!-z{z7oDyf5uSh-K)Qb zFO2q^dxUcNw6Bj%h_<(n9)mV92@+hD5x`k!vP<&mTc~`mB$_b~Y~PyhcbI7L_!jL~ zm7DmbkaBHd70HjGeN9ntaE+1>GsTQTds4!ckNK>4ENB(QTeR=^?UwjA5f0Gb7@Lr# zTGm?Iizsp#-P+=jBS9q5SiEtM#x z!*)JK9G(D)=$4(|=ChN3+5>@ZWoBXLl@-@YEks1xQdzYpYvW+U-BkBak^thX*R0Av zrt6BUO!8X{H6QAJ2Q{8ENDvcjb{d+v>@lg&^(*B$!nMI;JZKd6IBAf6{uu#tBBO2+|OAQ1%PB?bkzjX=ULua%@mGvk~ zABWh`16(_Zya97-iQt`6TqO5v@7|WgJNg_Ea~4i7w)Q*^S-rOA`<3AP^OXC9aAQOY zvSp=6I3In~z#ceX-6Xu%zsG#}5m-n3w0p^80?`zW3F_EnjK2}D!uAMPz+Ht}5<&%` zjVIFBT5kAcABk6kf^P%*oeg9uSMCBD*dbil=T^X(Ik#|jPqq62s-7&Zxqg`S#GvC& zH8lqd-TN-Ypcc4;!SC#z4WeA0pNK*hK1}!wyvHFEK2Hej$I0cJWSnPvaXu~ux;bR< z000T;-_B>C>ffCY-e2y;*uvBuV(G@h`Qm3nmO5O?`Orgth|U+7Nd!T3wgwlNW@vMC z6XlOZl{b0jW7DqE)?#(r6*mEQS9b%sPPxWn9e&=oX9xEO!w1H>#$BCV50A?w*Iiwm zk7q~gkeF20)EhmePs(PgUno-)&E%MI8^;Tb*`zj;O8r2GZiWzPv*a|~%x|nX z`tR~tq~&HroAC&?I~Y!+z1fEDJzeCoa0$Le$5Bg0ATv_`Y%2|qpk|6FWhf|kR>~tv zsSCjB%(xZbk``z^K0O3N28?)CU_c1E zKoji%Z5WWW91udK{ZR`?Bl)_#U1z(4=|tOG^)r9+rdEU|qe`}7S$oM@&X6zD$+HrZ zhlkEcsKH)jBG(fq=%9h5h?%Oup0+kwDvS$f&yQ@FmNhNqC{cCfB3;T|hFzoW ztL;bahOG{*eyvB%56u|-EbbGmNDr

_}v86J$u)&J&l24o(x-h|x|Hw}@3v6ZeRt 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 delta 7327 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