/* HELP POPUP */

function loadHelp(URL) {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=360,height=480,left = 460,top = 272');");
}


/* TABLE AJAX */
function GetXmlHttpObject() {
  var xmlHttp=null;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
  return xmlHttp;
}

function populate_table(roadcode) {
if (roadcode.length==0) {
  document.getElementById("tabledata").innerHTML="";
  return;
  }
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null) {
  alert ("Your browser does not support AJAX!");
  return;
  }

  	var tz = (new Date).getTimezoneOffset() / 60;
	tzo = ( tz < 0 ) ? '+' + Math.abs( tz ) : '-' + Math.abs( tz );

	var url="/index.php?product=hwycond&content=tbldata&roadcode=";
	url=url+roadcode;
	url=url+"&tzo="+tzo;
	url=url+"&sid="+Math.round(Math.random() * 100000000);
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);

	//return false;
}

function stateChanged() {
	if (xmlHttp.readyState==4) {
		if(!document.getElementById("tabledata")) return false;
		document.getElementById("tabledata").innerHTML=xmlHttp.responseText;
	}
}

/* TABLE AJAX */


/* MAP JS */

/* PMX */

/*extern VEColor */

//var lang = 'fr'; // [en|fr]

/**
 * Labels for Road Surface and Visibility
 */
var roads_lbl =
{
    dtc : { en : 'Observed at',         fr : 'Observé à' },
    hwy : { en : 'Highway',             fr : 'Autoroute' },
    seg : { en : 'Segment',             fr : 'Tronçon' },
    to  : { en : 'to',                  fr : 'à' },
    sp  : { en : 'From',                fr : 'De' },
    ep  : { en : 'To',                  fr : 'À' },
    mt  : { en : 'Detailed Conditions', fr : 'Conditions détail' },
    mts : { en : 'Surface',             fr : 'Chaussée' },
    mtv : { en : 'Visibility',          fr : 'Visibilité' },
    pm  : { en : 'General Conditions',  fr : 'Conditions générales' },
    pms : { en : 'Surface',             fr : 'Chaussée' },
    pmv : { en : 'Visibility',          fr : 'Visibilité' },
    ld  : { en : 'Loading...',          fr : 'Téléchargement...' }
};

/**
 * Interactive Services (IS) Codes for Road
 */
var roads_is_sur =
{
    // Road
    r :
    {
        ISCD : { colour : new VEColor( 196, 36, 0, 0.8 ),    en : 'Closed/Avoid',      fr : 'Fermée' },
        ISCL : { colour : new VEColor( 76, 220, 24, 0.6 ),   en : 'Clear',             fr : 'Dégagée' },
        ISCR : { colour : new VEColor( 255, 255, 255, 0.8 ), en : 'Critical',          fr : 'Critique' },
        ISVA : { colour : new VEColor( 254, 189, 32, 0.8 ),  en : 'Variable',          fr : 'Passable' },
        ISNA : { colour : new VEColor( 0, 0, 0, 0.6 ),       en : 'No Data',           fr : 'Données non-disponibles' },
        ISOS : { colour : new VEColor( 173, 173, 173, 0.8 ), en : 'Off Season',        fr : '' },
        ISSC : { colour : new VEColor( 151, 208, 247, 0.9 ), en : 'Snow covered',      fr : 'Enneigée' },
        ISSS : { colour : new VEColor( 173, 55, 217, 0.8 ),  en : 'Slippery sections', fr : 'Glacée par endroits' },

        // shadow colour that goes under the white line
        ISXX : { colour : new VEColor( 0, 0, 0, 0.4 ),       en : '',                  fr : '' }
    },

    // Aerial
    a :
    {
        ISCD : { colour : new VEColor( 196, 36, 0, 0.8 ),    en : 'Closed/Avoid',      fr : 'Fermée' },
        ISCL : { colour : new VEColor( 76, 220, 24, 0.6 ),   en : 'Clear',             fr : 'Dégagée' },
        ISCR : { colour : new VEColor( 255, 255, 255, 0.8 ), en : 'Critical',          fr : 'Critique' },
        ISVA : { colour : new VEColor( 254, 189, 32, 0.8 ),  en : 'Variable',          fr : 'Passable' },
        ISNA : { colour : new VEColor( 0, 0, 0, 0.6 ),       en : 'No Data',           fr : 'Données non-disponibles' },
        ISOS : { colour : new VEColor( 173, 173, 173, 0.8 ), en : 'Off Season',        fr : '' },
        ISSC : { colour : new VEColor( 151, 208, 247, 0.9 ), en : 'Snow covered',      fr : 'Enneigée' },
        ISSS : { colour : new VEColor( 173, 55, 217, 0.8 ),  en : 'Slippery sections', fr : 'Glacée par endroits' },

        // shadow colour that goes under the white line
        ISXX : { colour : new VEColor( 0, 0, 0, 0.4 ),       en : '',                  fr : '' }
    },

    // Hybrid (use same colours as Aerial)
    h :
    {
        ISCD : { colour : new VEColor( 196, 36, 0, 0.8 ),    en : 'Closed/Avoid',      fr : 'Fermée' },
        ISCL : { colour : new VEColor( 76, 220, 24, 0.6 ),   en : 'Clear',             fr : 'Dégagée' },
        ISCR : { colour : new VEColor( 255, 255, 255, 0.8 ), en : 'Critical',          fr : 'Critique' },
        ISVA : { colour : new VEColor( 254, 189, 32, 0.8 ),  en : 'Variable',          fr : 'Passable' },
        ISNA : { colour : new VEColor( 0, 0, 0, 0.6 ),       en : 'No Data',           fr : 'Données non-disponibles' },
        ISOS : { colour : new VEColor( 173, 173, 173, 0.8 ), en : 'Off Season',        fr : '' },
        ISSC : { colour : new VEColor( 151, 208, 247, 0.9 ), en : 'Snow covered',      fr : 'Enneigée' },
        ISSS : { colour : new VEColor( 173, 55, 217, 0.8 ),  en : 'Slippery sections', fr : 'Glacée par endroits' },

        // shadow colour that goes under the white line
        ISXX : { colour : new VEColor( 0, 0, 0, 0.4 ),       en : '',                  fr : '' }
    }
};

/**
 * Pelmorex Codes for Road Surface
 */
var roads_pmx_sur;
if( window.VEColor )
{
    roads_pmx_sur =
    {
        // Road
        r :
        {
            CL : { colour : new VEColor( 76, 220, 24, 0.6 ),    en : 'Clear',             fr : 'Dégagée' },
            PC : { colour : new VEColor( 151, 207, 255, 0.8 ),  en : 'Partly covered',    fr : 'Partiellement dégagée' },
            SC : { colour : new VEColor( 255, 255, 255, 0.8 ),  en : 'Snow covered',      fr : 'Enneigée' },
            SS : { colour : new VEColor( 107, 34, 134, 0.5 ),   en : 'Slippery sections', fr : 'Glacée par endroits' },
            CD : { colour : new VEColor( 196, 36, 20, 0.7 ),    en : 'Closed/Avoid',      fr : 'Fermée' },
            NA : { colour : new VEColor( 0, 0, 0, 0.6 ),        en : 'No Data',           fr : 'Données non-disponibles (ND)' },

            XX : { colour : new VEColor( 0, 0, 0, 0.4 ),        en : '',                  fr : '' }
        },

        // Aerial
        a :
        {
            CL : { colour : new VEColor( 76, 220, 24, 0.6 ),    en : 'Clear',             fr : 'Dégagée' },
            PC : { colour : new VEColor( 151, 207, 255, 0.8 ),  en : 'Partly covered',    fr : 'Partiellement dégagée' },
            SC : { colour : new VEColor( 255, 255, 255, 0.8 ),  en : 'Snow covered',      fr : 'Enneigée' },
            SS : { colour : new VEColor( 211, 159, 232, 0.8 ),  en : 'Slippery sections', fr : 'Glacée par endroits' },
            CD : { colour : new VEColor( 196, 36, 20, 0.7 ),    en : 'Closed/Avoid',      fr : 'Fermée' },
            NA : { colour : new VEColor( 0, 0, 0, 0.6 ),        en : 'No Data',           fr : 'Données non-disponibles (ND)' },

            XX : { colour : new VEColor( 0, 0, 0, 0.4 ),        en : '',                  fr : '' }
        },

        // Hybrid (use same colours as Aerial)
        h :
        {
            CL : { colour : new VEColor( 76, 220, 24, 0.6 ),    en : 'Clear',             fr : 'Dégagée' },
            PC : { colour : new VEColor( 151, 207, 255, 0.8 ),  en : 'Partly covered',    fr : 'Partiellement dégagée' },
            SC : { colour : new VEColor( 255, 255, 255, 0.8 ),  en : 'Snow covered',      fr : 'Enneigée' },
            SS : { colour : new VEColor( 211, 159, 232, 0.8 ),  en : 'Slippery sections', fr : 'Glacée par endroits' },
            CD : { colour : new VEColor( 196, 36, 20, 0.7 ),    en : 'Closed/Avoid',      fr : 'Fermée' },
            NA : { colour : new VEColor( 0, 0, 0, 0.6 ),        en : 'No Data',           fr : 'Données non-disponibles (ND)' },

            XX : { colour : new VEColor( 0, 0, 0, 0.4 ),        en : '',                  fr : '' }
        }
    };
}
else
{
    //console.error( 'VEcolor is not available!');
}

/**
 * Pelmorex Codes for Road Visibility
 */
var roads_pmx_vis =
{
    GD :
    {
        icon_lg : 'marker_green_alpha_lg.png',
        icon_md : 'marker_green_alpha_md.png',
        icon_sm : 'marker_green_alpha_sm.png',
        css_lg  : 'shield_green_alpha_lg',
        css_md  : 'shield_green_alpha_md',
        css_sm  : 'shield_green_alpha_sm',
        en      : 'Good',
        fr      : 'Bonne'
    },

    PR :
    {
        icon_lg : 'marker_red_alpha_lg.png',
        icon_md : 'marker_red_alpha_md.png',
        icon_sm : 'marker_red_alpha_sm.png',
        css_lg  : 'shield_red_alpha_lg',
        css_md  : 'shield_red_alpha_md',
        css_sm  : 'shield_red_alpha_sm',
        en      : 'Poor',
        fr      : 'Mauvaise'
    },

    NA :
    {
        icon_lg : 'marker_gray_alpha_lg.png',
        icon_md : 'marker_gray_alpha_md.png',
        icon_sm : 'marker_gray_alpha_sm.png',
        css_lg  : 'shield_gray_alpha_lg',
        css_md  : 'shield_gray_alpha_md',
        css_sm  : 'shield_gray_alpha_sm',
        en      : 'N/A',
        fr      : 'N/D'
    }
};

/**
 * Provincial Expiration Time (in hours)
 */
var roads_prov_expiry =
{
    AB : 26,
    BC : 26,
    ET : 26,
    MB : 26,
    NB : 26,
    NL : 26,
    NS : 26,
    NT : 26,
    ON : 26,
    PE : 26,
    QC : 26,
    SK : 26,
    TO : 26,
    YT : 26
};

var summer_month = 5; // May
var winter_month = 11; // November

var summer_expiry = 336; // 14 days
var winter_expiry = 26; // ~1 day

/**
 * Translations for Microsoft Virtual Earth
 */
var roads_ve_lbl =
{
    Compass :
    {
        title : { en : 'Pan in any direction', fr : 'Déplacez la carte vers l’endroit que vous désirez voir' }
    },

    MSVE_navAction_RoadMapStyle :
    {
        label : { en : 'Road',                fr : 'Route' },
        title : { en : 'Switch to road view', fr : 'Aller à la vue en mode route' }
    },

    MSVE_navAction_AerialMapStyle :
    {
        label : { en : 'Aerial',                fr : 'Vue aérienne' },
        title : { en : 'Switch to aerial view', fr : 'Aller à la vue aérienne' }
    },

    MSVE_navAction_HybridMapStyle :
    {
        label : { en : 'Hybrid',                fr : 'Hybride' },
        title : { en : 'Switch to hybrid view', fr : 'Aller à la vue hybride' }
    },

    MSVE_navAction_tinyZoomBar_plus :
    {
        title :
        {
            en : 'Zoom in to see more detailed highway conditions.',
            fr : 'Faites un zoom avant pour voir plus en détail les conditions des routes.'
        }
    },

    MSVE_navAction_tinyZoomBar_minus :
    {
        title :
        {
            en : 'Zoom out to see a regional view of highway conditions.',
            fr : "Faites un zoom arrière pour avoir une vue d'ensemble des conditions des routes."
        }
    }
};

/**
 * Error Messages
 */
var roads_err_msg =
{
    error :
    {
        en : 'ERROR',
        fr : 'ERREUR'
    },

    browser :
    {
        en : 'Sorry, the Virtual Earth Map Control does not work on this browser.',
        fr : 'Désolé, pour le moment, nous ne prenons pas en charge votre navigateur.'
    },

    browser_req :
    {
        en : 'Please use one of the supported browsers:',
        fr : 'Veuillez utiliser un navigateur compatible:'
    },

    browser_list :
    {
        en : '(Firefox 0.9+, Internet Explorer 5.5+ or Safari 2+)',
        fr : '(Firefox 0.9+, Internet Explorer 5.5+ ou Safari 2+)'
    },

    ve_load :
    {
        en : 'The Virtual Earth Map Control could not be loaded!',
        fr : 'Impossible de charger le contrôle de carte de Visual Earth!'
    },

    try_again :
    {
        en : 'Please try again later.',
        fr : 'Veuillez essayer a nouveau un peu plus tard.'
    }
};

/* MTS_ISS */
/* This file was auto-generated by 'wrci2json.php' on Mon Nov 2 13:39 EST 2009. Do not manually edit this file. */

/**
 * Winter Road Condition Index Mapping
 */
var roads_mts_iss =
{
	SupplierRegion :
	{
		MTS : 'NewCode'
	},

	407 :
	{
		BDD : 'ISCL',
		BDP : 'ISCL',
		BDY : 'ISCL',
		BW : 'ISCL',
		CB : 'ISSC',
		CD : 'ISCD',
		HS : 'ISSC',
		I : 'ISCR',
		NA : 'ISNA',
		RD : 'ISCR',
		RH : 'ISSC',
		S : 'ISVA',
		SC : 'ISSC',
		SP : 'ISSC'
	},

	AB :
	{
		BDY : 'ISCL',
		BW : 'ISCL',
		BWP : 'ISSC',
		DS : 'ISCR',
		FF : 'ISCR',
		FFC : 'ISCD',
		FI : 'ISVA',
		FL : 'ISCD',
		HR : 'ISVA',
		HS : 'ISCR',
		HW : 'ISVA',
		IS : 'ISSS',
		MS : 'ISCR',
		MSC : 'ISCD',
		NU : 'ISNA',
		PF : 'ISVA',
		PIF : 'ISCR',
		RC : 'ISCD',
		RS : 'ISVA',
		S : 'ISVA',
		SB : 'ISCR',
		SBC : 'ISCD',
		SC : 'ISSC',
		SM : 'ISVA',
		SS : 'ISVA',
		WR : 'ISCR'
	},

	BC :
	{
		AV : 'ISCR',
		AVC : 'ISCD',
		BI : 'ISCR',
		CC : 'ISCR',
		CD : 'ISCD',
		CL : 'ISCL',
		D : 'ISVA',
		F : 'ISVA',
		FAR : 'ISVA',
		FF : 'ISCR',
		FFC : 'ISCD',
		FH : 'ISVA',
		FI : 'ISVA',
		FL : 'ISCD',
		FR : 'ISCR',
		FRC : 'ISCD',
		HR : 'ISVA',
		HS : 'ISCR',
		HW : 'ISVA',
		IF : 'ISCR',
		LS : 'ISVA',
		MC : 'ISCD',
		MS : 'ISCR',
		NA : 'ISNA',
		PC : 'ISSC',
		RS : 'ISVA',
		S : 'ISVA',
		SB : 'ISCR',
		SBC : 'ISCD',
		SC : 'ISSC',
		SM : 'ISVA',
		SOM : 'ISVA',
		SOS : 'ISVA',
		SP : 'ISVA',
		SS : 'ISSS',
		W : 'ISCR',
		WC : 'ISCD',
		WET : 'ISVA',
		WIL : 'ISVA',
		WR : 'ISCR'
	},

	MB :
	{
		C : 'ISCD',
		ESA : 'ISSS',
		FC : 'ISSS',
		FCB : 'ISSS',
		FCS : 'ISSS',
		FL : 'ISCD',
		GWD : 'ISCL',
		IC : 'ISSS',
		ICB : 'ISSS',
		ICS : 'ISSS',
		LC : 'ISCD',
		LS : 'ISVA',
		MS : 'ISCR',
		MSC : 'ISCD',
		NA : 'ISNA',
		RS : 'ISVA',
		SB : 'ISCR',
		SBC : 'ISCD',
		SC : 'ISSC',
		SCPL : 'ISSC',
		SCS : 'ISSC',
		SLC : 'ISSC',
		SLS : 'ISVA',
		SM : 'ISVA',
		SP : 'ISSC',
		SPS : 'ISSC',
		TNA : 'ISCD',
		WR : 'ISCR'
	},

	NB :
	{
		BCS : 'ISVA',
		BFW : 'ISCL',
		BWT : 'ISVA',
		FF : 'ISCR',
		FFC : 'ISCD',
		IS : 'ISSS',
		LS : 'ISVA',
		LSC : 'ISSC',
		NA : 'ISNA',
		RS : 'ISVA',
		SA : 'ISSC',
		SB : 'ISCR',
		SBC : 'ISCD',
		SC : 'ISSC',
		SLI : 'ISSS',
		SLU : 'ISVA',
		SM : 'ISVA',
		SP : 'ISSC',
		SS : 'ISVA'
	},

	NL :
	{
		BI : 'ISCR',
		C : 'ISCD',
		D : 'ISCL',
		F : 'ISVA',
		FL : 'ISCD',
		G : 'ISCL',
		MS : 'ISCR',
		MSC : 'ISCD',
		NA : 'ISNA',
		P : 'ISCR',
		SC : 'ISSC',
		SLI : 'ISSS',
		SLU : 'ISSC',
		W : 'ISCL',
		WR : 'ISCR'
	},

	NS :
	{
		BSS : 'ISSC',
		C : 'ISCL',
		CBC : 'ISVA',
		CBS : 'ISSS',
		CPS : 'ISSS',
		CSC : 'ISSS',
		CSP : 'ISSS',
		CSS : 'ISSS',
		FL : 'ISCD',
		I : 'ISCD',
		MCA : 'ISSS',
		MS : 'ISCR',
		MSC : 'ISCD',
		NA : 'ISNA',
		PCB : 'ISSS',
		PCI : 'ISSS',
		PCS : 'ISSC',
		SSP : 'ISCR',
		WR : 'ISCR'
	},

	NT :
	{
		BCS : 'ISVA',
		BFW : 'ISCL',
		BWT : 'ISVA',
		CC : 'ISCD',
		FCO : 'ISCL',
		FL : 'ISCD',
		ICO : 'ISCL',
		IS : 'ISSS',
		LSC : 'ISSC',
		MS : 'ISCR',
		MSC : 'ISCD',
		NA : 'ISNA',
		SA : 'ISSC',
		SC : 'ISSC',
		SLI : 'ISSS',
		SLU : 'ISVA',
		SP : 'ISSC',
		WR : 'ISCR'
	},

	ON :
	{
		BDD : 'ISCL',
		BDP : 'ISCL',
		BDY : 'ISCL',
		BW : 'ISCL',
		CB : 'ISSC',
		CD : 'ISCD',
		FL : 'ISCD',
		I : 'ISCR',
		MS : 'ISCR',
		MSC : 'ISCD',
		NA : 'ISNA',
		RD : 'ISCR',
		RH : 'ISSC',
		S : 'ISVA',
		SC : 'ISSC',
		SP : 'ISSC',
		WR : 'ISCR'
	},

	PE :
	{
		BCS : 'ISVA',
		BFW : 'ISCL',
		BWT : 'ISVA',
		FL : 'ISCD',
		IS : 'ISSS',
		LSC : 'ISSC',
		MS : 'ISCR',
		MSC : 'ISCD',
		NA : 'ISNA',
		SA : 'ISSC',
		SC : 'ISSC',
		SLI : 'ISSS',
		SLU : 'ISVA',
		SP : 'ISSC',
		WR : 'ISCR'
	},

	QC :
	{
		AV : 'ISOS',
		AVAV : 'ISOS',
		BD : 'ISCL',
		BF : 'ISCD',
		BND : 'ISCD',
		D : 'ISCL',
		DB : 'ISCL',
		DC : 'ISCR',
		DGE : 'ISVA',
		DND : 'ISCD',
		DPD : 'ISVA',
		DR : 'ISVA',
		E : 'ISVA',
		EC : 'ISCR',
		EE : 'ISVA',
		EEC : 'ISCR',
		EEND : 'ISCR',
		EER : 'ISCR',
		EG : 'ISCR',
		END : 'ISCR',
		EP : 'ISVA',
		F : 'ISCD',
		FE : 'ISCD',
		FL : 'ISCD',
		FN : 'ISCD',
		FND : 'ISVA',
		FO : 'ISCD',
		FS : 'ISCD',
		G : 'ISCR',
		GC : 'ISCR',
		GE : 'ISVA',
		GEC : 'ISCR',
		GEND : 'ISCR',
		GER : 'ISCR',
		GND : 'ISCR',
		HS : 'ISNA',
		I : 'ISCR',
		MS : 'ISCR',
		MSC : 'ISCD',
		NA : 'ISNA',
		ND : 'ISNA',
		NDN : 'ISNA',
		NDND : 'ISCD',
		PD : 'ISVA',
		PDE : 'ISVA',
		PDG : 'ISVA',
		PE : 'ISVA',
		PEC : 'ISCR',
		PEND : 'ISCR',
		PEP : 'ISVA',
		PG : 'ISVA',
		PGC : 'ISVA',
		PGND : 'ISCR',
		PGP : 'ISVA',
		WR : 'ISCR'
	},

	SK :
	{
		B : 'ISCD',
		BW : 'ISCL',
		DS : 'ISCR',
		F : 'ISVA',
		FL : 'ISCD',
		GWD : 'ISCL',
		HS : 'ISSC',
		I : 'ISCR',
		IC : 'ISCR',
		ISS : 'ISSS',
		LS : 'ISVA',
		MS : 'ISCR',
		MSC : 'ISCD',
		NA : 'ISNA',
		PV : 'ISSS',
		RU : 'ISNA',
		S : 'ISSS',
		SD : 'ISCR',
		SL : 'ISVA',
		SP : 'ISSC',
		SS : 'ISVA',
		TNR : 'ISCR',
		WR : 'ISCR',
		WSF : 'ISSS'
	},

	TO :
	{
		BDD : 'ISCL',
		BDP : 'ISCL',
		BDY : 'ISCL',
		BW : 'ISCL',
		CB : 'ISSC',
		CD : 'ISCD',
		I : 'ISCR',
		NA : 'ISNA',
		RD : 'ISCR',
		RH : 'ISSC',
		S : 'ISVA',
		SC : 'ISSC',
		SP : 'ISSC'
	},

	YT :
	{
		AW : 'ISCR',
		B : 'ISCD',
		BI : 'ISCR',
		CD : 'ISCD',
		DP : 'ISCL',
		DS : 'ISCR',
		F : 'ISVA',
		FAR : 'ISVA',
		FL : 'ISCD',
		FR : 'ISCR',
		FRC : 'ISCD',
		FS : 'ISCR',
		GWD : 'ISCL',
		HS : 'ISSC',
		I : 'ISCR',
		IC : 'ISCR',
		ICP : 'ISSS',
		ISS : 'ISSS',
		LG : 'ISCL',
		LS : 'ISVA',
		LST : 'ISVA',
		MS : 'ISCR',
		MSC : 'ISCD',
		NA : 'ISNA',
		PLS : 'ISVA',
		PS : 'ISSC',
		PSP : 'ISVA',
		PV : 'ISSS',
		RS : 'ISVA',
		RU : 'ISNA',
		S : 'ISSS',
		SD : 'ISCR',
		SIP : 'ISSS',
		SLI : 'ISSS',
		SM : 'ISVA',
		SP : 'ISSC',
		SR : 'ISSC',
		SS : 'ISVA',
		TNR : 'ISCR',
		WP : 'ISCL',
		WR : 'ISCR',
		WS : 'ISSC',
		WSF : 'ISSS'
	}
};

/* PROV */
/* This file was auto-generated by 'hwycond2json.php' on Mon Nov 2 13:40 EST 2009. Do not manually edit this file. */

/**
 * Provincial Codes for Road Surface
 */
var roads_prov_sur =
{
	407 :
	{
		BDD : { en : 'Bare and Dry with Damp Sections', fr : 'Dégagée et sèche avec sections humides' },
		BDP : { en : 'Bare and Damp', fr : 'Dégagée et humide' },
		BDY : { en : 'Bare and Dry', fr : 'Dégagée et sèche' },
		BW : { en : 'Bare and Wet', fr : 'Dégagée et mouillée' },
		CB : { en : 'Center Bare', fr : 'Centre dégagé' },
		CD : { en : 'Closed', fr : 'Fermée' },
		HS : { en : 'Heavy Snow', fr : 'Enneigée' },
		I : { en : 'Icy', fr : 'Glacée' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		RD : { en : 'Road Doubtful', fr : 'Route douteuse' },
		RH : { en : 'Road Heavy', fr : 'Route difficile' },
		S : { en : 'Slushy', fr : 'Neige fondue' },
		SC : { en : 'Snow Covered', fr : 'Enneigée' },
		SP : { en : 'Snow Packed', fr : 'Neige compactée' }
	},

	AB :
	{
		BDY : { en : 'Bare and Dry', fr : 'Dégagée et sèche' },
		BW : { en : 'Bare & Wet', fr : 'Dégagée et mouillée' },
		BWP : { en : 'Bare Wheel Paths', fr : 'Traces de roues dégagées' },
		DS : { en : 'Drifting Snow', fr : 'Amoncellement de neige' },
		FF : { en : 'Forest fire', fr : 'Feu de fôret' },
		FFC : { en : 'Forest fire closure', fr : 'Feu de fôret fermeture' },
		FI : { en : 'Falling Ice', fr : 'Chute de glace' },
		FL : { en : 'Flooding', fr : 'Innondation' },
		HR : { en : 'Heavy rain', fr : 'Pluie forte' },
		HS : { en : 'Heavy Snowfall', fr : 'Précipitations fortes' },
		HW : { en : 'High winds', fr : 'Vents forts' },
		IS : { en : 'Icy Sections', fr : 'Portions glacées' },
		MS : { en : 'Mud Slide', fr : 'Glissement de terrain' },
		MSC : { en : 'Mud Slide closure', fr : 'Glissement de terrain fermeture' },
		NU : { en : 'Not avalaible', fr : 'Non disponible' },
		PF : { en : 'Fog', fr : 'Brouillard' },
		PIF : { en : 'Ice Fog', fr : 'Brouillard avec Glace' },
		RC : { en : 'Road Closed', fr : 'Fermée' },
		RS : { en : 'Rough sections', fr : 'Cahoteux' },
		S : { en : 'Slushy', fr : 'Neige fondante' },
		SB : { en : 'Surface breaks', fr : 'Écroulement de la route' },
		SBC : { en : 'Surface breaks closure', fr : 'Écroulement de la route fermeture' },
		SC : { en : 'Snow Covered', fr : 'Enneigée' },
		SM : { en : 'Soft and Muddy', fr : 'Molle et boueuse' },
		SS : { en : 'Soft shoulders', fr : 'Accotement mou' },
		WR : { en : 'Water on road', fr : 'Eau sur la route' }
	},

	BC :
	{
		AV : { en : 'Avalanche', fr : 'Avalanche' },
		AVC : { en : 'Avalanche Closure', fr : 'Avalanche fermeture' },
		BI : { en : 'Black ice', fr : 'Glace noire' },
		CC : { en : 'Clear Critical', fr : 'Dégagée Critique' },
		CD : { en : 'Closed', fr : 'Fermée' },
		CL : { en : 'Clear', fr : 'Dégagée' },
		D : { en : 'Dust', fr : 'Poussiéreux' },
		F : { en : 'Fog', fr : 'Brouillard' },
		FAR : { en : 'Falling Rocks', fr : 'Chute de roches' },
		FF : { en : 'Forest fire', fr : 'Feu de fôret' },
		FFC : { en : 'Forest fire closure', fr : 'Feu de fôret: fermeture' },
		FH : { en : 'Frost Heaves', fr : 'Givre' },
		FI : { en : 'Falling Ice', fr : 'Chute de glace' },
		FL : { en : 'Flooding', fr : 'Innondation' },
		FR : { en : 'Freezing rain', fr : 'Pluie verglaçante' },
		FRC : { en : 'Falling Rocks closure', fr : 'Chute de roches fermeture' },
		HR : { en : 'Heavy rain', fr : 'Pluie forte' },
		HS : { en : 'Heavy Snowfall', fr : 'Précipitations fortes' },
		HW : { en : 'High winds', fr : 'Vents forts' },
		IF : { en : 'Ice Fog', fr : 'Brouillard avec Glace' },
		LS : { en : 'Loose Stones', fr : 'Gravier…' },
		MC : { en : 'Mud Slide closure', fr : 'Glissement de terrain fermeture' },
		MS : { en : 'Mud Slide', fr : 'Glissement de terrain' },
		NA : { en : 'Not Avalaible', fr : 'Non disponible' },
		PC : { en : 'Partly Covered', fr : 'Partiellement couverte' },
		RS : { en : 'Rough sections', fr : 'Cahoteux' },
		S : { en : 'Slushy', fr : 'Neige fondante' },
		SB : { en : 'Surface breaks', fr : 'Écroulement de la route' },
		SBC : { en : 'Surface breaks closure', fr : 'Écroulement de la route fermeture' },
		SC : { en : 'Snow Covered', fr : 'Enneigée' },
		SM : { en : 'Smoke', fr : 'Fumée' },
		SOM : { en : 'Soft and Muddy', fr : 'Molle et boueuse' },
		SOS : { en : 'Soft shoulders', fr : 'Accotement mou' },
		SP : { en : 'Snowing with plowing', fr : '"Enneigée, déneigement en cours"' },
		SS : { en : 'Slippery Sections', fr : 'Sections glissantes' },
		W : { en : 'Washout', fr : 'Érosion' },
		WC : { en : 'Washout closure', fr : 'Érosion fermeture' },
		WET : { en : 'Wet', fr : 'Mouillée' },
		WIL : { en : 'Wildlife on road', fr : 'Faune sur la route' },
		WR : { en : 'Water on road', fr : 'Eau sur la route' }
	},

	MB :
	{
		C : { en : 'Closed', fr : 'Fermée' },
		ESA : { en : 'Extremely Slippery Areas', fr : 'Glissante' },
		FC : { en : 'Frost Covered', fr : 'Givrée' },
		FCB : { en : 'Frost Covered Bridges', fr : 'Ponts couvertes de givrée' },
		FCS : { en : 'Frost Covered Sections', fr : 'Sections Givrée' },
		FL : { en : 'Flooding', fr : 'Innondation' },
		GWD : { en : 'Good Winter Driving', fr : 'Bonne conduite hivernale' },
		IC : { en : 'Ice Covered Sections', fr : 'Sections couvertes de glace' },
		ICB : { en : 'Ice Covered Sections Ctr Bare', fr : 'Sections couvertes de glace- Centre dégagé' },
		ICS : { en : 'Ice Covered Slippery', fr : 'Couverte de glace- glissante' },
		LC : { en : 'Lane Closure', fr : 'Allée fermée' },
		LS : { en : 'Loose Stones', fr : 'Gravier…' },
		MS : { en : 'Mud Slide', fr : 'Glissement de terrain' },
		MSC : { en : 'Mud Slide closure', fr : 'Glissement de terrain fermeture' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		RS : { en : 'Rough sections', fr : 'Cahoteux' },
		SB : { en : 'Surface breaks', fr : 'Écroulement de la route' },
		SBC : { en : 'Surface breaks closure', fr : 'Écroulement de la route fermeture' },
		SC : { en : 'Snow Covered', fr : 'Enneigée' },
		SCPL : { en : 'Snow Covered Passing Lanes', fr : 'Enneigée couvertes d\'Allée' },
		SCS : { en : 'Snow Covered Sections', fr : 'Sections enneigées' },
		SLC : { en : 'Slush Covered', fr : 'Neige fondue' },
		SLS : { en : 'Slush Covered Sections', fr : 'Sections neige fondue' },
		SM : { en : 'Soft and Muddy', fr : 'Molle et boueuse' },
		SP : { en : 'Snow Packed', fr : 'Neige compactée' },
		SPS : { en : 'Snow Packed Sections', fr : 'Sections de neige compactée' },
		TNA : { en : 'Travel not advised', fr : 'Voyage non recommandé' },
		WR : { en : 'Water on road', fr : 'Eau sur la route' }
	},

	NB :
	{
		BCS : { en : 'Bare Center Strip', fr : 'Bande centrale dégagée' },
		BFW : { en : 'Bare Full Width', fr : 'Complètement dégagée' },
		BWT : { en : 'Bare Wheel Tracks', fr : 'Traces de roues dégagées' },
		FF : { en : 'Forest fire', fr : 'Feu de fôret' },
		FFC : { en : 'Forest fire closure', fr : 'Feu de fôret fermeture' },
		IS : { en : 'Icy Spots', fr : 'Parites glacées' },
		LS : { en : 'Loose Stones', fr : 'Gravier…' },
		LSC : { en : 'Light Snow Covered', fr : 'Légère couverture de neige' },
		NA : { en : 'Not Avalaible', fr : 'Non disponible' },
		RS : { en : 'Rough sections', fr : 'Cahoteux' },
		SA : { en : 'Snow Accumulating', fr : 'Accumulation de neige' },
		SB : { en : 'Surface breaks', fr : 'Écroulement de la route' },
		SBC : { en : 'Surface breaks closure', fr : 'Écroulement de la route fermeture' },
		SC : { en : 'Snow Covered', fr : 'Enneigée' },
		SLI : { en : 'Slippery', fr : 'Glissante' },
		SLU : { en : 'Slushy', fr : 'Couverte de neige fondue' },
		SM : { en : 'Soft and Muddy', fr : 'Molle et boueuse' },
		SP : { en : 'Snow Packed', fr : 'Neige compactée' },
		SS : { en : 'Soft shoulders', fr : 'Accotement mou' }
	},

	NL :
	{
		BI : { en : 'Black ice', fr : 'Glace noire' },
		C : { en : 'Closed', fr : 'Fermée' },
		D : { en : 'Dry', fr : 'Sèche' },
		F : { en : 'Fair', fr : 'Visibilité passable' },
		FL : { en : 'Flooding', fr : 'Innondation' },
		G : { en : 'Good', fr : 'Bonne visibilité' },
		MS : { en : 'Mud Slide', fr : 'Glissement de terrain' },
		MSC : { en : 'Mud Slide closure', fr : 'Glissement de terrain fermeture' },
		NA : { en : 'Not avalaible', fr : 'Non disponible' },
		P : { en : 'Poor', fr : 'Mauvaise visibilité' },
		SC : { en : 'Snow Covered', fr : 'Enneigée' },
		SLI : { en : 'Slippery', fr : 'Glissante' },
		SLU : { en : 'Slush - Heavy Wet Snow', fr : 'Neige fondue' },
		W : { en : 'Wet', fr : 'Mouillée' },
		WR : { en : 'Water on road', fr : 'Eau sur la route' }
	},

	NS :
	{
		BSS : { en : 'Snow covered with Blowing Snow', fr : 'Enneigée-Amoncellement de neige' },
		C : { en : 'Clear (shoulder to shoulder)', fr : 'Dégagée' },
		CBC : { en : 'Clear with snow patches and blowing snow', fr : 'Sections enneigée-Amoncellement de neige' },
		CBS : { en : 'Centerline Bare with Slippery Patches', fr : 'Sections glissantes' },
		CPS : { en : 'Clear with slippery or snow covered patches', fr : 'Dégagée-Sections glissantes' },
		CSC : { en : 'Clear with Snow Patches', fr : 'Dégagée-Sections enneigée' },
		CSP : { en : 'Clear with Slippery Sections', fr : 'Dégagée-Sections glissantes' },
		CSS : { en : 'Clear with snow patches and slippery sections', fr : 'Sections enneigée-Sections glissantes' },
		FL : { en : 'Flooding', fr : 'Innondation' },
		I : { en : 'Impassable (Closed)', fr : 'Fermée' },
		MCA : { en : 'Mostly Clear with Slippery Patches', fr : 'Dégagée-Sections glissantes' },
		MS : { en : 'Mud Slide', fr : 'Glissement de terrain' },
		MSC : { en : 'Mud Slide closure', fr : 'Glissement de terrain fermeture' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		PCB : { en : 'Passable with Caution (Blowing Snow)', fr : 'Amoncellement de neige' },
		PCI : { en : 'Passable with Caution (Ice)', fr : 'Glacée' },
		PCS : { en : 'Passable with Caution (Snow Covered)', fr : 'Enneigée' },
		SSP : { en : 'Snow Covered with Slippery Patches', fr : 'Enneigée-Sections glissantes' },
		WR : { en : 'Water on road', fr : 'Eau sur la route' }
	},

	NT :
	{
		BCS : { en : 'Bare Center Strip', fr : 'Bande centrale dégagée' },
		BFW : { en : 'Bare Full Width', fr : 'Complètement dégagée' },
		BWT : { en : 'Bare Wheel Tracks', fr : 'Traces de roues dégagées' },
		CC : { en : 'Crossing Closed', fr : 'Traversée fermée' },
		FCO : { en : 'Ferry Crossing Open', fr : 'Traversier en marche' },
		FL : { en : 'Flooding', fr : 'Innondation' },
		ICO : { en : 'Ice Crossing Open', fr : 'Pont de glace ouvert' },
		IS : { en : 'Icy Spots', fr : 'Parties glacées' },
		LSC : { en : 'Light Snow Covered', fr : 'Légère couverture de neige' },
		MS : { en : 'Mud Slide', fr : 'Glissement de terrain' },
		MSC : { en : 'Mud Slide closure', fr : 'Glissement de terrain fermeture' },
		NA : { en : 'Not Avalaible', fr : 'Non disponible' },
		SA : { en : 'Snow Accumulating', fr : 'Accumulation de neige' },
		SC : { en : 'Snow Covered', fr : 'Enneigée' },
		SLI : { en : 'Slippery', fr : 'Glissante' },
		SLU : { en : 'Slushy', fr : 'Neige fondue' },
		SP : { en : 'Snow Packed', fr : 'Neige compactée' },
		WR : { en : 'Water on road', fr : 'Eau sur la route' }
	},

	ON :
	{
		BDD : { en : 'Bare and Dry with Damp Sections', fr : 'Dégagée et sèche avec sections humides' },
		BDP : { en : 'Bare and Damp', fr : 'Dégagée et humide' },
		BDY : { en : 'Bare and Dry', fr : 'Dégagée et sèche' },
		BW : { en : 'Bare and Wet', fr : 'Dégagée et mouillée' },
		CB : { en : 'Center Bare', fr : 'Centre dégagé' },
		CD : { en : 'Closed', fr : 'Fermée' },
		FL : { en : 'Flooding', fr : 'Innondation' },
		I : { en : 'Icy', fr : 'Glacée' },
		MS : { en : 'Mud Slide', fr : 'Glissement de terrain' },
		MSC : { en : 'Mud Slide closure', fr : 'Glissement de terrain fermeture' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		RD : { en : 'Road Doubtful', fr : 'Route douteuse' },
		RH : { en : 'Road Heavy', fr : 'Route difficile' },
		S : { en : 'Slushy', fr : 'Neige fondue' },
		SC : { en : 'Snow Covered', fr : 'Enneigée' },
		SP : { en : 'Snow Packed', fr : 'Neige compactée' },
		WR : { en : 'Water on road', fr : 'Eau sur la route' }
	},

	PE :
	{
		BCS : { en : 'Bare Center Strip', fr : 'Bande centrale dégagée' },
		BFW : { en : 'Bare Full Width', fr : 'Complètement dégagée' },
		BWT : { en : 'Bare Wheel Tracks', fr : 'Traces de roues dégagées' },
		FL : { en : 'Flooding', fr : 'Innondation' },
		IS : { en : 'Icy Spots', fr : 'Parites glacées' },
		LSC : { en : 'Light Snow Covered', fr : 'Légère couverture de neige' },
		MS : { en : 'Mud Slide', fr : 'Glissement de terrain' },
		MSC : { en : 'Mud Slide closure', fr : 'Glissement de terrain fermeture' },
		NA : { en : 'Not Avalaible', fr : 'Non disponible' },
		SA : { en : 'Snow Accumulating', fr : 'Accumulation de neige' },
		SC : { en : 'Snow Covered', fr : 'Enneigée' },
		SLI : { en : 'Slippery', fr : 'Glissante' },
		SLU : { en : 'Slushy', fr : 'Neige fondue' },
		SP : { en : 'Snow Packed', fr : 'Neige compactée' },
		WR : { en : 'Water on road', fr : 'Eau sur la route' }
	},

	QC :
	{
		AV : { en : 'Coming soon', fr : 'A venir' },
		AVAV : { en : 'Coming Soon', fr : 'A venir' },
		BD : { en : 'Bare and Good', fr : 'Dégagée Bonne' },
		BF : { en : 'Closed Closed', fr : 'Barrée Fermée' },
		BND : { en : 'Closed Not Available', fr : 'Barrée Non Disponible' },
		D : { en : 'Clear', fr : 'Dégagé' },
		DB : { en : 'Clear Good', fr : 'Dégagée Bonne' },
		DC : { en : 'Clear Critical', fr : 'Dégagée Critique' },
		DGE : { en : 'Bare with icy sections', fr : 'Dégagée glacée par endroit' },
		DND : { en : 'Clear Not Available', fr : 'Dégagée Non Disponible' },
		DPD : { en : 'Bare with partitly Bare sections', fr : 'Dégagée à partiellement dégagée' },
		DR : { en : 'Clear Risky at places', fr : 'Dégagée Risquée par endroits' },
		E : { en : 'Snow covered', fr : 'Enneigée' },
		EC : { en : 'Snow-covered Critical', fr : 'Enneigée Critique' },
		EE : { en : 'Snow covered by sections', fr : 'Enneigé par endroits' },
		EEC : { en : 'Snow patches Critical', fr : 'Enneigée par Endroits Critique' },
		EEND : { en : 'Partly snow-covered Not Available', fr : 'Enneigée par Endroits Non Disponible' },
		EER : { en : 'Snow patches Risky at places', fr : 'Enneigée par Endroits Risquée par endroits' },
		EG : { en : 'Snow covered with Icy sections', fr : 'Enneigée à glacée' },
		END : { en : 'Snow-covered Critical', fr : 'Enneigée Non Disponible' },
		EP : { en : 'Snow-covered Fair', fr : 'Enneigée Passable' },
		F : { en : 'Closed', fr : 'Barrée' },
		FE : { en : 'Closed Eastbound', fr : 'Fermée direction est' },
		FL : { en : 'Flooding', fr : 'Innondation' },
		FN : { en : 'Closed Northbound', fr : 'Fermée direction nord' },
		FND : { en : 'Snow Packed', fr : 'Fond de neige durci' },
		FO : { en : 'Closed Westbound', fr : 'Fermée direction ouest' },
		FS : { en : 'Closed Southbound', fr : 'Fermée direction sud' },
		G : { en : 'Icy', fr : 'Glacée' },
		GC : { en : 'Icy Critical', fr : 'Glacée Critique' },
		GE : { en : 'Icy by sections', fr : 'Glacée par endroits' },
		GEC : { en : 'Ice patches Critical', fr : 'Glacée par Endroits Critique' },
		GEND : { en : 'Icy sections Not available', fr : 'Glacée par Endroits Non Disponible' },
		GER : { en : 'Ice Patches Risky at places', fr : 'Glacée par Endroits Risquée par endroits' },
		GND : { en : 'Icy Not Available', fr : 'Glacée Non Disponible' },
		HS : { en : 'Not in season', fr : 'Hors saison' },
		I : { en : 'Trucks not allowed', fr : 'Interdit aux camions' },
		MS : { en : 'Mud Slide', fr : 'Glissement de terrain' },
		MSC : { en : 'Mud Slide closure', fr : 'Glissement de terrain fermeture' },
		NA : { en : 'Not available', fr : 'Non disponible' },
		ND : { en : 'Not available', fr : 'Non disponible' },
		NDN : { en : 'Not Available', fr : 'Non Disponible' },
		NDND : { en : 'Not Available Not Available', fr : 'Non Disponible Non Disponible' },
		PD : { en : 'Partly bare', fr : 'Partiellement dégagée' },
		PDE : { en : 'Bare Wheel Tracks to Partly Covered', fr : 'Partiellement dégagée à enneigée' },
		PDG : { en : 'Partially snow covered with Icy sections', fr : 'Partiellement dégagée à glacée' },
		PE : { en : 'Partly snow covered', fr : 'Partiellement enneigée' },
		PEC : { en : 'Partly snow-covered Critical', fr : 'Partiellement enneigée Critique' },
		PEND : { en : 'Partly snow-covered Not Available', fr : 'Partiellement enneigée Non Disponible' },
		PEP : { en : 'Partly snow-covered Fair', fr : 'Partiellement enneigée Passable' },
		PG : { en : 'Partly icy', fr : 'Partiellement glacée' },
		PGC : { en : 'Partly ice-covered', fr : 'Partiellement Glacée Critique' },
		PGND : { en : 'Partly ice-covered Not Available', fr : 'Partiellement Glacée Non Disponible' },
		PGP : { en : 'Partly ice-covered Fair', fr : 'Partiellement Glacée Passable' },
		WR : { en : 'Water on road', fr : 'Eau sur la route' }
	},

	SK :
	{
		B : { en : 'Blocked', fr : 'Bloquée' },
		BW : { en : 'Bare and Wet', fr : 'Dégagée et mouillée' },
		DS : { en : 'Drifting Snow', fr : 'Amoncellement de neige' },
		F : { en : 'Fog', fr : 'Brouillard' },
		FL : { en : 'Flooding', fr : 'Innondation' },
		GWD : { en : 'Good Winter Driving', fr : 'Bonne conduite hivernale' },
		HS : { en : 'Heavy Snow', fr : 'Neige' },
		I : { en : 'Icy', fr : 'Glacée' },
		IC : { en : 'Ice Covered', fr : 'Couverte de glace' },
		ISS : { en : 'Icy or Slippery Sections', fr : 'Glacée ou sections glissantes' },
		LS : { en : 'Loose Snow', fr : 'Neige poudreuse' },
		MS : { en : 'Mud Slide', fr : 'Glissement de terrain' },
		MSC : { en : 'Mud Slide closure', fr : 'Glissement de terrain fermeture' },
		NA : { en : 'Not available', fr : 'Non disponible' },
		PV : { en : 'Pavement Frost', fr : 'Chaussée givrée' },
		RU : { en : 'Report Unavailable', fr : 'Rapport non disponible' },
		S : { en : 'Slippery', fr : 'Glissante' },
		SD : { en : 'Snow Drifts', fr : 'Banc de neige' },
		SL : { en : 'Slushy', fr : 'Neige fondue' },
		SP : { en : 'Snow Packed', fr : 'Neige compactée' },
		SS : { en : 'Swirling Snow', fr : 'Tourbillon de neige' },
		TNR : { en : 'Travel Not Recomended', fr : 'Voyage non recommandé' },
		WR : { en : 'Water on road', fr : 'Eau sur la route' },
		WSF : { en : 'Wet subject to Freezing', fr : 'Sujette à geler' }
	},

	TO :
	{
		BDD : { en : 'Bare and Dry with Damp Sections', fr : 'Dégagée et sèche avec sections humides' },
		BDP : { en : 'Bare and Damp', fr : 'Dégagée et humide' },
		BDY : { en : 'Bare and Dry', fr : 'Dégagée et sèche' },
		BW : { en : 'Bare and Wet', fr : 'Dégagée et mouillée' },
		CB : { en : 'Center Bare', fr : 'Centre dégagé' },
		CD : { en : 'Closed', fr : 'Fermée' },
		I : { en : 'Icy', fr : 'Glacée' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		RD : { en : 'Road Doubtful', fr : 'Route douteuse' },
		RH : { en : 'Road Heavy', fr : 'Route difficile' },
		S : { en : 'Slushy', fr : 'Neige fondue' },
		SC : { en : 'Snow Covered', fr : 'Enneigée' },
		SP : { en : 'Snow Packed', fr : 'Neige compactée' }
	},

	YT :
	{
		AW : { en : 'Avalanche Warning', fr : 'Risque d\'avalanche' },
		B : { en : 'Blocked', fr : 'Bloquée' },
		BI : { en : 'Black Ice', fr : 'Glacé noire' },
		CD : { en : 'Closed', fr : 'Fermée' },
		DP : { en : 'Dry Pawement', fr : 'Sèche' },
		DS : { en : 'Drifting Snow', fr : 'Amoncellement de neige' },
		F : { en : 'Fog', fr : 'Brouillard' },
		FAR : { en : 'Falling Rocks', fr : 'Chute de roches' },
		FL : { en : 'Flooding', fr : 'Innondation' },
		FR : { en : 'Freezing Rain', fr : 'Pluie de congélation' },
		FRC : { en : 'Falling Rocks closure', fr : 'Chute de roches fermeture' },
		FS : { en : 'Frozen Slush', fr : 'Fond de neige durci' },
		GWD : { en : 'Good Winter Driving', fr : 'Bonne conduite hivernale' },
		HS : { en : 'Heavy Snow', fr : 'Neige' },
		I : { en : 'Ice', fr : 'Glacée' },
		IC : { en : 'Ice Covered', fr : 'Couverte de glace' },
		ICP : { en : 'Ice Patches', fr : 'Glacée par Endroits' },
		ISS : { en : 'Icy or Slippery Sections', fr : 'Glacée ou sections glissantes' },
		LG : { en : 'Loose Gravel', fr : 'Lâche gravier' },
		LS : { en : 'Loose Snow', fr : 'Neige poudreuse' },
		LST : { en : 'Loose Stones', fr : 'Gravier…' },
		MS : { en : 'Mud Slide', fr : 'Glissement de terrain' },
		MSC : { en : 'Mud Slide closure', fr : 'Glissement de terrain fermeture' },
		NA : { en : 'Not avalaible', fr : 'Non disponible' },
		PLS : { en : 'Plowed Snow', fr : 'Des bancs de neige' },
		PS : { en : 'Packed Snow', fr : 'Neige compactée' },
		PSP : { en : 'Packed Snow Patches', fr : 'Sections neige compactée' },
		PV : { en : 'Pavement Frost', fr : 'Chaussée givrée' },
		RS : { en : 'Rough Sections', fr : 'Sections Bruts' },
		RU : { en : 'Report Unavailable', fr : 'Non disponible' },
		S : { en : 'Slippery', fr : 'Glissante' },
		SD : { en : 'Snow Drifts', fr : 'Banc de neige' },
		SIP : { en : 'Slippery in Places', fr : 'Sections glissantes' },
		SLI : { en : 'Slippery', fr : 'Glissante' },
		SM : { en : 'Smoke', fr : 'Fumée' },
		SP : { en : 'Snow Packed', fr : 'Neige compactée' },
		SR : { en : 'Snow on Roadway', fr : 'Neige sur la route' },
		SS : { en : 'Swirling Snow', fr : 'Tourbillon de neige' },
		TNR : { en : 'Travel Not Recomended', fr : 'Voyage non recommandé' },
		WP : { en : 'Wet Pavement', fr : 'Mouillée' },
		WR : { en : 'Water on road', fr : 'Eau sur la route' },
		WS : { en : 'Wet Snow', fr : 'Neige mouillée' },
		WSF : { en : 'Wet subject to Freezing', fr : 'Sujette à geler' }
	}
};

/**
 * Provincial Codes for Road Visibility
 */
var roads_prov_vis =
{
	AB :
	{
		G : { en : 'Good', fr : 'Bonne' },
		P : { en : 'Poor', fr : 'Mauvaise' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		U : { en : 'Unreported', fr : 'Non disponible' },
		F : { en : 'Fair', fr : 'Passable' },
		FO : { en : 'Fog', fr : 'Brouillard' },
		IF : { en : 'Ice Fog', fr : 'Brouillard de Glace' },
		SM : { en : 'Smoke', fr : 'Fumée' }
	},

	BC :
	{
		BLS : { en : 'Blowing Snow', fr : 'Poudrerie' },
		GD : { en : 'Good', fr : 'Bonne' },
		PR : { en : 'Poor', fr : 'Mauvaise' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		HS : { en : 'Heavy Snowfall', fr : 'Neige forte' },
		FP : { en : 'Foggy Patches', fr : 'Bancs de brouillard' },
		FO : { en : 'Fog', fr : 'Brouillard' },
		IF : { en : 'Ice Fog', fr : 'Brouillard de Glace' },
		SM : { en : 'Smoke', fr : 'Fumée' },
		HR : { en : 'Heavy Rain', fr : 'Pluie forte' },
		D : { en : 'Dust', fr : 'Poussièreux' }
	},

	407 :
	{
		G : { en : 'Good', fr : 'Bonne' },
		GP : { en : 'Good-Poor', fr : 'Bonne-Mauvaise' },
		GPN : { en : 'Good-Poor-Nil', fr : 'Bonne-Mauvaise-Nulle' },
		GN : { en : 'Good-Nil', fr : 'Bonne-Nulle' },
		GF : { en : 'Good-Fair', fr : 'Bonne-Passable' },
		GFP : { en : 'Good-Fair-Poor', fr : 'Bonne-Passable-Mauvaise' },
		ALL : { en : 'Good-Fair-Poor-Nil', fr : 'Bonne-Passable-Mauvaise-Nulle' },
		GFN : { en : 'Good-Fair-Nil', fr : 'Bonne-Passable-Nulle' },
		P : { en : 'Poor', fr : 'Mauvaise' },
		PN : { en : 'Poor-Nil', fr : 'Mauvaise-Nulle' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		N : { en : 'Nil', fr : 'Nulle' },
		F : { en : 'Fair', fr : 'Passable' },
		FP : { en : 'Fair-Poor', fr : 'Passable-Mauvaise' },
		FPN : { en : 'Fair-Poor-Nil', fr : 'Passable-Mauvaise-Nulle' },
		FN : { en : 'Fair-Nil', fr : 'Passable-Nulle' }
	},

	MB :
	{
		G : { en : 'Good Visibility', fr : 'Bonne visibilité' },
		12 : { en : 'Good Visibility', fr : 'Bonne visibilité' },
		P : { en : 'Poor Visibility', fr : 'Mauvaise visibilité' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		TNR : { en : 'Travel Not Recommended', fr : 'Trajet non recommandé' },
		RV : { en : 'Reduced Visibility', fr : 'visibilité Réduite' }
	},

	NB :
	{
		GV : { en : 'Good', fr : 'Bonne' },
		SM : { en : 'Smoke', fr : 'Fumée' },
		PV : { en : 'Poor', fr : 'Mauvaise' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		FV : { en : 'Fair', fr : 'Passable' }
	},

	NL :
	{
		G : { en : 'Good', fr : 'Bonne visibilité' },
		P : { en : 'Poor', fr : 'Mauvaise visibilité' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		F : { en : 'Fair', fr : 'Visibilité passable' }
	},

	NS :
	{
		VG : { en : 'Good', fr : 'Bonne' },
		NA : { en : 'Not Avalaible', fr : 'Non disponible' },
		VZ : { en : 'Zero', fr : 'Nulle' },
		VR : { en : 'Reduced', fr : 'Réduite' }
	},

	NT :
	{
		GV : { en : 'Good', fr : 'Bonne' },
		PV : { en : 'Poor', fr : 'Mauvaise' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		FV : { en : 'Fair', fr : 'Passable' }
	},

	ON :
	{
		G : { en : 'Good', fr : 'Bonne' },
		GP : { en : 'Good-Poor', fr : 'Bonne-Mauvaise' },
		GPN : { en : 'Good-Poor-Nil', fr : 'Bonne-Mauvaise-Nulle' },
		GN : { en : 'Good-Nil', fr : 'Bonne-Nulle' },
		GF : { en : 'Good-Fair', fr : 'Bonne-Passable' },
		GFP : { en : 'Good-Fair-Poor', fr : 'Bonne-Passable-Mauvaise' },
		ALL : { en : 'Good-Fair-Poor-Nil', fr : 'Bonne-Passable-Mauvaise-Nulle' },
		GFN : { en : 'Good-Fair-Nil', fr : 'Bonne-Passable-Nulle' },
		P : { en : 'Poor', fr : 'Mauvaise' },
		PN : { en : 'Poor-Nil', fr : 'Mauvaise-Nulle' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		N : { en : 'Nil', fr : 'Nulle' },
		F : { en : 'Fair', fr : 'Passable' },
		FP : { en : 'Fair-Poor', fr : 'Passable-Mauvaise' },
		FPN : { en : 'Fair-Poor-Nil', fr : 'Passable-Mauvaise-Nulle' },
		FN : { en : 'Fair-Nil', fr : 'Passable-Nulle' }
	},

	PE :
	{
		GV : { en : 'Good', fr : 'Bonne' },
		PV : { en : 'Poor', fr : 'Mauvaise' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		FV : { en : 'Fair', fr : 'Passable' }
	},

	QC :
	{
		AV : { en : 'Coming soon', fr : 'A venir' },
		AVAV : { en : 'Coming soon', fr : 'A venir' },
		B : { en : 'Good', fr : 'Bonne' },
		BNE : { en : 'Good-nil in sections', fr : 'Bonne nulle par endroit' },
		BRE : { en : 'Good-reduced in sections', fr : 'Bonne réduite par endroit' },
		ND : { en : 'Not available', fr : 'Non disponible' },
		NA : { en : 'Not available', fr : 'Non disponible' },
		N : { en : 'Nil', fr : 'Nulle' },
		NE : { en : 'Nil in sections', fr : 'Nulle par endroit' },
		R : { en : 'Reduced', fr : 'Réduite' },
		RNE : { en : 'Reduced-nil in sections', fr : 'Réduite nulle par endroit' }
	},

	SK :
	{
		VG : { en : 'Good', fr : 'Bonne' },
		F : { en : 'Fog', fr : 'Brouillard' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		VZ : { en : 'Zero', fr : 'Nulle' },
		VR : { en : 'Reduced', fr : 'Réduite' },
		SS : { en : 'Swirling Snow', fr : 'Tourbillons de neige' }
	},

	TO :
	{
		G : { en : 'Good', fr : 'Bonne' },
		GP : { en : 'Good-Poor', fr : 'Bonne-Mauvaise' },
		GPN : { en : 'Good-Poor-Nil', fr : 'Bonne-Mauvaise-Nulle' },
		GN : { en : 'Good-Nil', fr : 'Bonne-Nulle' },
		GF : { en : 'Good-Fair', fr : 'Bonne-Passable' },
		GFP : { en : 'Good-Fair-Poor', fr : 'Bonne-Passable-Mauvaise' },
		ALL : { en : 'Good-Fair-Poor-Nil', fr : 'Bonne-Passable-Mauvaise-Nulle' },
		GFN : { en : 'Good-Fair-Nil', fr : 'Bonne-Passable-Nulle' },
		P : { en : 'Poor', fr : 'Mauvaise' },
		PN : { en : 'Poor-Nil', fr : 'Mauvaise-Nulle' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		N : { en : 'Nil', fr : 'Nulle' },
		F : { en : 'Fair', fr : 'Passable' },
		FP : { en : 'Fair-Poor', fr : 'Passable-Mauvaise' },
		FPN : { en : 'Fair-Poor-Nil', fr : 'Passable-Mauvaise-Nulle' },
		FN : { en : 'Fair-Nil', fr : 'Passable-Nulle' }
	},

	YT :
	{
		VG : { en : 'Good', fr : 'Bonne' },
		F : { en : 'Fog', fr : 'Brouillard' },
		SM : { en : 'Smoke', fr : 'Fumée' },
		NA : { en : 'Not Available', fr : 'Non disponible' },
		VZ : { en : 'Zero', fr : 'Nulle' },
		VR : { en : 'Reduced', fr : 'Passable' },
		D : { en : 'Dust', fr : 'Poussièreux' },
		SS : { en : 'Swirling Snow', fr : 'Tourbillons de neige' }
	}
};

/* SEG */
/* This file was auto-generated by 'seg2json.php' on Thu Aug 6 9:01 EDT 2009. Do not manually edit this file. */

/**
 * Road Segments
 */
var roads_seg =
{
SEGMENT_PE : { pr : 'PROVINCE', sp : 'START_POINT', ep : 'END_POINT' },
RDAB000101 : { pr : 'AB', sp : 'Saskatchewan Border', ep : 'Medicine Hat' },
RDAB000102 : { pr : 'AB', sp : 'City of Medicine Hat', ep : ' ' },
RDAB000103 : { pr : 'AB', sp : 'Medicine Hat', ep : 'Suffield' },
RDAB000104 : { pr : 'AB', sp : 'Suffield', ep : 'HWY 36' },
RDAB000105 : { pr : 'AB', sp : 'HWY 36', ep : 'Bassano' },
RDAB000106 : { pr : 'AB', sp : 'Bassano', ep : 'HWY 21' },
RDAB000107 : { pr : 'AB', sp : 'HWY 21', ep : 'Calgary' },
RDAB000108 : { pr : 'AB', sp : 'Calgary', ep : 'HWY 22' },
RDAB000109 : { pr : 'AB', sp : 'HWY 22', ep : 'HWY 40' },
RDAB000110 : { pr : 'AB', sp : 'HWY 40', ep : 'Lac des Arcs' },
RDAB000111 : { pr : 'AB', sp : 'Lac des Arcs', ep : 'Banff Park Gates' },
RDAB000112 : { pr : 'AB', sp : 'Banff Park Gates', ep : 'Banff Town Site' },
RDAB000113 : { pr : 'AB', sp : 'Banff Town Site', ep : 'Castle Mountain Junction' },
RDAB000114 : { pr : 'AB', sp : 'Castle Mountain Junction', ep : 'Lake Louise' },
RDAB000115 : { pr : 'AB', sp : 'Lake Louise', ep : 'Field' },
RDAB000201 : { pr : 'AB', sp : 'US Border', ep : 'Cardston' },
RDAB000202 : { pr : 'AB', sp : 'Cardston', ep : 'Stand Off' },
RDAB000203 : { pr : 'AB', sp : 'Stand Off', ep : 'Fort Macleod' },
RDAB000204 : { pr : 'AB', sp : 'Fort Macleod', ep : 'Granum' },
RDAB000205 : { pr : 'AB', sp : 'Granum', ep : 'Claresholm' },
RDAB000206 : { pr : 'AB', sp : 'Claresholm', ep : 'Nanton' },
RDAB000207 : { pr : 'AB', sp : 'Nanton', ep : 'Calgary' },
RDAB000208 : { pr : 'AB', sp : 'Calgary', ep : 'Didsbury' },
RDAB000209 : { pr : 'AB', sp : 'Didsbury', ep : 'South of Bowden' },
RDAB000210 : { pr : 'AB', sp : 'South of Bowden', ep : 'Innisfail' },
RDAB000211 : { pr : 'AB', sp : 'Innisfail', ep : 'Penhold' },
RDAB000212 : { pr : 'AB', sp : 'Penhold', ep : 'HWY 11A' },
RDAB000213 : { pr : 'AB', sp : 'HWY 11A', ep : 'Blackfalds' },
RDAB000214 : { pr : 'AB', sp : 'Blackfalds', ep : 'Morningside Turnoff' },
RDAB000215 : { pr : 'AB', sp : 'Morningside Turnoff', ep : 'Ponoka' },
RDAB000216 : { pr : 'AB', sp : 'Ponoka', ep : 'Hobbema Turnoff' },
RDAB000217 : { pr : 'AB', sp : 'Hobbema Turnoff', ep : 'Wetaskiwin Turnoff' },
RDAB000218 : { pr : 'AB', sp : 'Wetaskiwin Turnoff', ep : 'Millet Turnoff' },
RDAB000219 : { pr : 'AB', sp : 'Millet Turnoff', ep : 'Leduc' },
RDAB000220 : { pr : 'AB', sp : 'Leduc', ep : 'Edmonton City Limits' },
RDAB000221 : { pr : 'AB', sp : 'South City Limits', ep : '19th Ave.' },
RDAB000222 : { pr : 'AB', sp : 'St. Albert', ep : 'Morinville' },
RDAB000223 : { pr : 'AB', sp : 'Morinville', ep : 'Legal' },
RDAB000224 : { pr : 'AB', sp : 'Legal', ep : 'Clyde' },
RDAB000225 : { pr : 'AB', sp : 'Clyde', ep : 'Rochester' },
RDAB000226 : { pr : 'AB', sp : 'Rochester', ep : 'Athabasca' },
RDAB000227 : { pr : 'AB', sp : 'Athabasca', ep : 'Island Lake' },
RDAB000228 : { pr : 'AB', sp : 'Island Lake', ep : 'HWY 44' },
RDAB000229 : { pr : 'AB', sp : 'HWY 44', ep : 'Otaway River' },
RDAB000230 : { pr : 'AB', sp : 'Otaway River', ep : 'Slave Lake' },
RDAB000231 : { pr : 'AB', sp : 'Slave Lake', ep : 'Kinuso' },
RDAB000232 : { pr : 'AB', sp : 'Kinuso', ep : 'Enilda' },
RDAB000233 : { pr : 'AB', sp : 'Enilda', ep : 'Kathleen' },
RDAB000234 : { pr : 'AB', sp : 'Kathleen', ep : 'Donnelly Corner' },
RDAB000235 : { pr : 'AB', sp : 'Donnelly Corner', ep : 'Reno Road' },
RDAB000236 : { pr : 'AB', sp : 'Reno Road', ep : 'Peace River' },
RDAB000237 : { pr : 'AB', sp : 'Peace River', ep : 'Grimshaw' },
RDAB000238 : { pr : 'AB', sp : 'Grimshaw', ep : 'Whitelaw' },
RDAB000239 : { pr : 'AB', sp : 'Whitelaw', ep : 'Fairview' },
RDAB000240 : { pr : 'AB', sp : 'Fairview', ep : 'Dunvegan Bridge' },
RDAB000241 : { pr : 'AB', sp : 'Dunvegan Bridge', ep : 'Rycroft' },
RDAB000242 : { pr : 'AB', sp : 'Rycroft', ep : 'N of Webster Corner' },
RDAB000243 : { pr : 'AB', sp : 'N of Webster Corner', ep : 'HWY 59' },
RDAB000244 : { pr : 'AB', sp : 'HWY 59', ep : 'Grande Prairie' },
RDAB000301 : { pr : 'AB', sp : 'B.C. Border', ep : 'Coleman' },
RDAB000302 : { pr : 'AB', sp : 'Coleman', ep : 'Burmis' },
RDAB000303 : { pr : 'AB', sp : 'Burmis', ep : 'Pincher Creek' },
RDAB000304 : { pr : 'AB', sp : 'Pincher Creek', ep : 'Brocket' },
RDAB000305 : { pr : 'AB', sp : 'Brocket', ep : 'Fort Macleod' },
RDAB000306 : { pr : 'AB', sp : 'Fort Macleod', ep : 'Monarch' },
RDAB000307 : { pr : 'AB', sp : 'Monarch', ep : 'Lethbridge' },
RDAB000308 : { pr : 'AB', sp : 'Lethbridge', ep : 'Coaldale' },
RDAB000309 : { pr : 'AB', sp : 'Coaldale', ep : 'Grassy Lake' },
RDAB000310 : { pr : 'AB', sp : 'Grassy Lake', ep : 'Seven Persons' },
RDAB000311 : { pr : 'AB', sp : 'Seven Persons', ep : 'Medicine Hat' },
RDAB000401 : { pr : 'AB', sp : 'Lethbridge', ep : 'Stirling' },
RDAB000402 : { pr : 'AB', sp : 'Stirling', ep : 'Coutts' },
RDAB000501 : { pr : 'AB', sp : 'Waterton Park', ep : 'Cardston' },
RDAB000502 : { pr : 'AB', sp : 'Cardston', ep : 'Spring Coulee' },
RDAB000503 : { pr : 'AB', sp : 'Spring Coulee', ep : 'Magrath' },
RDAB000504 : { pr : 'AB', sp : 'Magrath', ep : 'Lethbridge' },
RDAB000601 : { pr : 'AB', sp : 'Pincher Creek', ep : 'Waterton' },
RDAB000701 : { pr : 'AB', sp : 'Black Diamond', ep : 'Hwy 2A' },
RDAB000702 : { pr : 'AB', sp : 'Hwy 2A', ep : 'Highway 2' },
RDAB000801 : { pr : 'AB', sp : 'Calgary', ep : 'Jct of HWY 22' },
RDAB000901 : { pr : 'AB', sp : 'Transcanada', ep : 'HWY 564' },
RDAB000902 : { pr : 'AB', sp : 'HWY 564', ep : 'Beynon Corner' },
RDAB000903 : { pr : 'AB', sp : 'Beynon Corner', ep : 'Drumheller' },
RDAB000904 : { pr : 'AB', sp : 'Drumheller', ep : 'Morrin Corner' },
RDAB000905 : { pr : 'AB', sp : 'Morrin Corner', ep : 'Delia' },
RDAB000906 : { pr : 'AB', sp : 'Delia', ep : 'East of Hanna' },
RDAB000907 : { pr : 'AB', sp : 'East of Hanna', ep : 'Youngstown' },
RDAB000908 : { pr : 'AB', sp : 'Youngstown', ep : 'Oyen' },
RDAB000909 : { pr : 'AB', sp : 'Oyen', ep : 'Sask Border' },
RDAB001001 : { pr : 'AB', sp : 'Drumheller', ep : 'Dorthy' },
RDAB001101 : { pr : 'AB', sp : 'Park Boundary', ep : 'Cline River' },
RDAB001102 : { pr : 'AB', sp : 'Cline River', ep : 'Nordegg' },
RDAB001103 : { pr : 'AB', sp : 'Nordegg', ep : 'Misty Valley' },
RDAB001104 : { pr : 'AB', sp : 'Misty Valley', ep : 'Pipeline' },
RDAB001105 : { pr : 'AB', sp : 'Pipeline', ep : 'Rocky Mountain House' },
RDAB001106 : { pr : 'AB', sp : 'Rocky Mountain House', ep : 'Benalto' },
RDAB001107 : { pr : 'AB', sp : 'Benalto', ep : 'Red Deer' },
RDAB001108 : { pr : 'AB', sp : 'Red Deer', ep : 'South of Joffre' },
RDAB001109 : { pr : 'AB', sp : 'South of Joffre', ep : 'Haynes Access' },
RDAB001110 : { pr : 'AB', sp : 'Haynes Access', ep : 'Stettler' },
RDAB001201 : { pr : 'AB', sp : 'Saskatchewan border', ep : 'Consort' },
RDAB001202 : { pr : 'AB', sp : 'Consort', ep : 'Veteran' },
RDAB001203 : { pr : 'AB', sp : 'Veteran', ep : 'Coronation' },
RDAB001204 : { pr : 'AB', sp : 'Coronation', ep : 'East of Castor' },
RDAB001205 : { pr : 'AB', sp : 'East of Castor', ep : 'Gadsby' },
RDAB001206 : { pr : 'AB', sp : 'Gadsby', ep : 'Stettler' },
RDAB001207 : { pr : 'AB', sp : 'Stettler', ep : 'HWY 21' },
RDAB001208 : { pr : 'AB', sp : 'HWY 21', ep : 'HWY 50' },
RDAB001209 : { pr : 'AB', sp : 'HWY 50', ep : 'Clive Access' },
RDAB001210 : { pr : 'AB', sp : 'Clive Access', ep : 'Lacombe' },
RDAB001211 : { pr : 'AB', sp : 'Lacombe', ep : 'HWY 20' },
RDAB001212 : { pr : 'AB', sp : 'HWY 20', ep : 'Withrow Road' },
RDAB001213 : { pr : 'AB', sp : 'Withrow Road', ep : 'HWY 22' },
RDAB001301 : { pr : 'AB', sp : 'Saskatchewan Border', ep : 'HWY 41' },
RDAB001302 : { pr : 'AB', sp : 'HWY 41', ep : 'Hardisty' },
RDAB001303 : { pr : 'AB', sp : 'Hardisty', ep : 'Killam' },
RDAB001304 : { pr : 'AB', sp : 'Killam', ep : 'Daysland' },
RDAB001305 : { pr : 'AB', sp : 'Daysland', ep : 'Camrose' },
RDAB001306 : { pr : 'AB', sp : 'Camrose', ep : 'Wetaskiwin County Line' },
RDAB001307 : { pr : 'AB', sp : 'Wetaskiwin County Line', ep : 'Wetaskiwin' },
RDAB001308 : { pr : 'AB', sp : 'Wetaskiwin', ep : 'HWY 2A' },
RDAB001309 : { pr : 'AB', sp : 'Wetaskiwin', ep : 'HWY 2' },
RDAB001310 : { pr : 'AB', sp : 'HWY 2', ep : 'Westerose' },
RDAB001311 : { pr : 'AB', sp : 'Westerose', ep : 'Winfield' },
RDAB001312 : { pr : 'AB', sp : 'Winfield', ep : 'Alder Flats' },
RDAB001401 : { pr : 'AB', sp : 'Edmonton', ep : 'HWY 21' },
RDAB001402 : { pr : 'AB', sp : 'HWY 21', ep : 'Tofield' },
RDAB001403 : { pr : 'AB', sp : 'Tofield', ep : 'Holden' },
RDAB001404 : { pr : 'AB', sp : 'Holden', ep : 'Viking' },
RDAB001405 : { pr : 'AB', sp : 'Viking', ep : 'Jarrow' },
RDAB001406 : { pr : 'AB', sp : 'Jarrow', ep : 'Wainwright' },
RDAB001407 : { pr : 'AB', sp : 'Wainwright', ep : 'Saskatchewan Border' },
RDAB001501 : { pr : 'AB', sp : 'Edmonton', ep : 'Fort Saskatchewan' },
RDAB001502 : { pr : 'AB', sp : 'Fort Saskatchewan', ep : 'HWY 45' },
RDAB001503 : { pr : 'AB', sp : 'HWY 45', ep : 'Mundare' },
RDAB001601 : { pr : 'AB', sp : 'Lloydminster', ep : 'Vermilion' },
RDAB001602 : { pr : 'AB', sp : 'Vermilion', ep : 'Minburn' },
RDAB001603 : { pr : 'AB', sp : 'Minburn', ep : 'Innisfree' },
RDAB001604 : { pr : 'AB', sp : 'Innisfree', ep : 'HWY 15' },
RDAB001605 : { pr : 'AB', sp : 'HWY 15', ep : 'Elk Island Park' },
RDAB001606 : { pr : 'AB', sp : 'Elk Island Park', ep : 'East of Ardrossan' },
RDAB001607 : { pr : 'AB', sp : 'East of Ardossan', ep : 'Edmonton' },
RDAB001608 : { pr : 'AB', sp : 'Edmonton', ep : 'Spruce Grove' },
RDAB001609 : { pr : 'AB', sp : 'Spruce Grove', ep : 'Range Road 43' },
RDAB001610 : { pr : 'AB', sp : 'Wabamun', ep : 'Entwistle' },
RDAB001611 : { pr : 'AB', sp : 'Entwistle', ep : 'West of Wildwood' },
RDAB001612 : { pr : 'AB', sp : 'West of Wildwood', ep : 'West of Carrot Creek' },
RDAB001613 : { pr : 'AB', sp : 'West of Carrot Creek', ep : 'Edson' },
RDAB001614 : { pr : 'AB', sp : 'Edson', ep : 'Hargwen Road' },
RDAB001615 : { pr : 'AB', sp : 'Hagwen Road', ep : 'Hinton' },
RDAB001616 : { pr : 'AB', sp : 'Hinton', ep : 'Jasper Park Gates' },
RDAB001617 : { pr : 'AB', sp : 'Jasper Park East Gates', ep : 'Jasper' },
RDAB001618 : { pr : 'AB', sp : 'Jasper', ep : 'Jasper Park West Gates' },
RDAB001801 : { pr : 'AB', sp : 'HWY 63', ep : 'Thorhild County Boundary' },
RDAB001802 : { pr : 'AB', sp : 'Thorhild County Boundary', ep : 'HWY 2' },
RDAB001803 : { pr : 'AB', sp : 'HWY 2', ep : 'Rossington' },
RDAB001804 : { pr : 'AB', sp : 'Rossington', ep : 'Barrhead' },
RDAB001805 : { pr : 'AB', sp : 'Barrhead', ep : 'Greencourt' },
RDAB001901 : { pr : 'AB', sp : 'Devon', ep : 'HWY 2' },
RDAB001A01 : { pr : 'AB', sp : 'Chestermere', ep : 'Calgary' },
RDAB001A02 : { pr : 'AB', sp : 'Calgary', ep : 'Cochrane' },
RDAB001A03 : { pr : 'AB', sp : 'Cochrane', ep : 'Morley' },
RDAB001A04 : { pr : 'AB', sp : 'Morley', ep : 'Canmore' },
RDAB001X01 : { pr : 'AB', sp : 'HWY 1', ep : 'HWY 1A' },
RDAB002001 : { pr : 'AB', sp : 'HWY 39', ep : 'Breton' },
RDAB002002 : { pr : 'AB', sp : 'Breton', ep : 'HWY 13' },
RDAB002003 : { pr : 'AB', sp : 'Winfield', ep : 'Hoadley' },
RDAB002004 : { pr : 'AB', sp : 'Hoadley', ep : 'Rimbey' },
RDAB002005 : { pr : 'AB', sp : 'Rimbey', ep : 'Bentley' },
RDAB002006 : { pr : 'AB', sp : 'Bentley', ep : 'Sylvan Lake' },
RDAB002101 : { pr : 'AB', sp : 'Fort Saskatchewan', ep : 'Sherwood Park' },
RDAB002102 : { pr : 'AB', sp : 'Sherwood Park', ep : 'Hay Lakes' },
RDAB002103 : { pr : 'AB', sp : 'Hay Lakes', ep : 'West of Camrose' },
RDAB002104 : { pr : 'AB', sp : 'West of Camrose', ep : 'Banshaw' },
RDAB002105 : { pr : 'AB', sp : 'Bashaw', ep : 'Erskine' },
RDAB002106 : { pr : 'AB', sp : 'Erskine', ep : 'West of Lousana' },
RDAB002107 : { pr : 'AB', sp : 'HWY 42', ep : 'HWY 590' },
RDAB002108 : { pr : 'AB', sp : 'HWY 590', ep : 'HWY 9' },
RDAB002109 : { pr : 'AB', sp : 'HWY 9', ep : 'HWY 564' },
RDAB002110 : { pr : 'AB', sp : 'HWY 564', ep : 'Transcanada' },
RDAB002201 : { pr : 'AB', sp : 'HWY 3', ep : 'HWY 520' },
RDAB002202 : { pr : 'AB', sp : 'HWY 520', ep : 'HWY 533' },
RDAB002203 : { pr : 'AB', sp : 'HWY 533', ep : 'Longview' },
RDAB002204 : { pr : 'AB', sp : 'Longview', ep : 'Black Diamond' },
RDAB002205 : { pr : 'AB', sp : 'Black Diamond', ep : 'HWY 22X' },
RDAB002206 : { pr : 'AB', sp : 'HWY 22X', ep : 'HWY 1' },
RDAB002207 : { pr : 'AB', sp : 'HWY 1', ep : 'Cochrane' },
RDAB002208 : { pr : 'AB', sp : 'Cochrane', ep : 'Cremona' },
RDAB002209 : { pr : 'AB', sp : 'Cremona', ep : 'HWY 582' },
RDAB002210 : { pr : 'AB', sp : 'HWY 582', ep : 'HWY 587' },
RDAB002211 : { pr : 'AB', sp : 'HWY 587', ep : 'HWY 54' },
RDAB002212 : { pr : 'AB', sp : 'HWY 54', ep : 'HWY 11' },
RDAB002213 : { pr : 'AB', sp : 'HWY 11', ep : 'HWY 53' },
RDAB002214 : { pr : 'AB', sp : 'HWY 53', ep : 'Medicine Lake Rd' },
RDAB002215 : { pr : 'AB', sp : 'Medicine Lake Rd', ep : 'HWY 13' },
RDAB002216 : { pr : 'AB', sp : 'HWY 13', ep : 'HWY 616' },
RDAB002217 : { pr : 'AB', sp : 'HWY 616', ep : 'HWY 39' },
RDAB002218 : { pr : 'AB', sp : 'HWY 39', ep : 'HWY 624' },
RDAB002219 : { pr : 'AB', sp : 'HWY 624', ep : 'Entwistle' },
RDAB002220 : { pr : 'AB', sp : 'HWY 16', ep : 'Woodlands County Bdy' },
RDAB002221 : { pr : 'AB', sp : 'Woodlands County Bdy', ep : 'Mayerthorpe' },
RDAB002301 : { pr : 'AB', sp : 'HWY 3', ep : 'Carmangay' },
RDAB002302 : { pr : 'AB', sp : 'Carmangay', ep : 'HWY 24' },
RDAB002303 : { pr : 'AB', sp : 'HWY 24', ep : 'HWY 2' },
RDAB002401 : { pr : 'AB', sp : 'Transcanada', ep : 'HWY 547' },
RDAB002402 : { pr : 'AB', sp : 'HWY 547', ep : 'HWY 23' },
RDAB002501 : { pr : 'AB', sp : 'Lethbridge', ep : 'Enchant' },
RDAB002601 : { pr : 'AB', sp : 'Camrose', ep : 'HWY 855' },
RDAB002602 : { pr : 'AB', sp : 'HWY 855', ep : 'HWY 36' },
RDAB002701 : { pr : 'AB', sp : 'Sundre', ep : 'Torrington' },
RDAB002702 : { pr : 'AB', sp : 'Torrington', ep : 'HWY 21' },
RDAB002703 : { pr : 'AB', sp : 'HWY 21', ep : 'HWY 839' },
RDAB002801 : { pr : 'AB', sp : 'Edmonton', ep : 'Bon Accord' },
RDAB002802 : { pr : 'AB', sp : 'Bon Accord', ep : 'HWY 651' },
RDAB002803 : { pr : 'AB', sp : 'HWY 165', ep : 'Waskatenau' },
RDAB002804 : { pr : 'AB', sp : 'Waskatenau', ep : 'Smoky Lake' },
RDAB002805 : { pr : 'AB', sp : 'Smoky Lake', ep : 'HWY 36' },
RDAB002806 : { pr : 'AB', sp : 'HWY 36', ep : 'Spedden' },
RDAB002807 : { pr : 'AB', sp : 'Spedden', ep : 'HWY 882' },
RDAB002808 : { pr : 'AB', sp : 'HWY 882', ep : 'Bonnyville' },
RDAB002809 : { pr : 'AB', sp : 'Bonnyville', ep : 'Ardmore' },
RDAB002810 : { pr : 'AB', sp : 'Ardmore', ep : 'Cold Lake' },
RDAB002901 : { pr : 'AB', sp : 'Lamont', ep : 'HWY 855' },
RDAB002902 : { pr : 'AB', sp : 'HWY 855', ep : 'HWY 45' },
RDAB002903 : { pr : 'AB', sp : 'HWY 45', ep : 'HWY 36' },
RDAB002904 : { pr : 'AB', sp : 'HWY 36', ep : 'St Paul' },
RDAB002905 : { pr : 'AB', sp : 'St Paul', ep : 'HWY 41' },
RDAB002A01 : { pr : 'AB', sp : 'Millet', ep : 'Leduc' },
RDAB002A02 : { pr : 'AB', sp : 'Wetaskiwin', ep : 'Millet' },
RDAB002A03 : { pr : 'AB', sp : 'Hobbema', ep : 'Wetaskiwin' },
RDAB002A04 : { pr : 'AB', sp : 'Ponoka', ep : 'Hobbema' },
RDAB002A05 : { pr : 'AB', sp : 'Morningside', ep : 'Ponoka' },
RDAB002A06 : { pr : 'AB', sp : 'North of Lacombe', ep : 'Morningside' },
RDAB002A07 : { pr : 'AB', sp : 'Lacombe', ep : 'North of Lacombe' },
RDAB002A08 : { pr : 'AB', sp : 'North of Red Deer', ep : 'Lacombe' },
RDAB002A09 : { pr : 'AB', sp : 'Penhold', ep : 'South of Red Deer' },
RDAB002A10 : { pr : 'AB', sp : 'Innisfail', ep : 'Penhold' },
RDAB002A11 : { pr : 'AB', sp : '3KM south of Bowden', ep : 'East of Bowden Tunnel' },
RDAB002A12 : { pr : 'AB', sp : 'HWY 72', ep : 'Hwy 582' },
RDAB002A13 : { pr : 'AB', sp : 'Jct HWY 2', ep : 'Jct HWY 49' },
RDAB002A14 : { pr : 'AB', sp : 'HWY 2', ep : 'HWY 7' },
RDAB002A15 : { pr : 'AB', sp : 'HWY 7', ep : 'HWY 23' },
RDAB002A16 : { pr : 'AB', sp : 'HWY 582', ep : 'South of Bowden' },
RDAB003101 : { pr : 'AB', sp : 'HWY 16', ep : 'Seba Beach' },
RDAB003201 : { pr : 'AB', sp : 'HWY 16', ep : 'N of Shining Bank (TR 570)' },
RDAB003202 : { pr : 'AB', sp : 'N of Shining Bank (TR 570)', ep : 'HWY 43' },
RDAB003203 : { pr : 'AB', sp : 'HWY 43', ep : 'Imperial Tower' },
RDAB003204 : { pr : 'AB', sp : 'Imperial Tower', ep : 'Swan Hills' },
RDAB003301 : { pr : 'AB', sp : 'HWY 2', ep : '18th Baseline' },
RDAB003302 : { pr : 'AB', sp : '18th Baseline', ep : 'Swan Hills' },
RDAB003303 : { pr : 'AB', sp : 'Swan Hills', ep : 'Horse Creek Road' },
RDAB003304 : { pr : 'AB', sp : 'Horse Creek Road', ep : 'Barrhead' },
RDAB003305 : { pr : 'AB', sp : 'Barrhead', ep : 'Rich Valley' },
RDAB003306 : { pr : 'AB', sp : 'Rich Valley', ep : 'Gunn' },
RDAB003501 : { pr : 'AB', sp : 'N of Grimshaw', ep : 'Dixonville' },
RDAB003502 : { pr : 'AB', sp : 'Dixonville', ep : 'Manning' },
RDAB003503 : { pr : 'AB', sp : 'Manning', ep : 'Keg River' },
RDAB003504 : { pr : 'AB', sp : 'Keg River', ep : 'High Level' },
RDAB003505 : { pr : 'AB', sp : 'High Level', ep : 'Zama Corner' },
RDAB003506 : { pr : 'AB', sp : 'Zama Corner', ep : 'NWT Border' },
RDAB003601 : { pr : 'AB', sp : 'Warner', ep : 'Chin Bridge' },
RDAB003602 : { pr : 'AB', sp : 'Chin Bridge', ep : 'Scandia' },
RDAB003603 : { pr : 'AB', sp : 'Scandia', ep : 'HWY 1' },
RDAB003604 : { pr : 'AB', sp : 'HWY 1', ep : 'Red Deer River' },
RDAB003605 : { pr : 'AB', sp : 'Red Deer River', ep : 'HWY 9' },
RDAB003606 : { pr : 'AB', sp : 'HWY 9', ep : 'Correction Line' },
RDAB003607 : { pr : 'AB', sp : 'Correction Line', ep : 'HWY 12' },
RDAB003608 : { pr : 'AB', sp : 'HWY 12', ep : 'Alliance' },
RDAB003609 : { pr : 'AB', sp : 'Alliance', ep : 'Killam' },
RDAB003610 : { pr : 'AB', sp : 'Killam', ep : 'N of Killam' },
RDAB003611 : { pr : 'AB', sp : 'N of Killam', ep : 'Viking' },
RDAB003612 : { pr : 'AB', sp : 'Viking', ep : 'HWY 16' },
RDAB003613 : { pr : 'AB', sp : 'HWY 16', ep : 'Two Hills' },
RDAB003614 : { pr : 'AB', sp : 'Two Hills', ep : 'Foisy' },
RDAB003615 : { pr : 'AB', sp : 'Foisy', ep : 'St Brides' },
RDAB003616 : { pr : 'AB', sp : 'Ashmont', ep : 'HWY 29' },
RDAB003617 : { pr : 'AB', sp : 'HWY 28', ep : 'Kikino South Bdry' },
RDAB003618 : { pr : 'AB', sp : 'Kikino South Bdry', ep : 'Lac La Biche' },
RDAB003701 : { pr : 'AB', sp : 'HWY 43', ep : 'HWY 2' },
RDAB003702 : { pr : 'AB', sp : 'HWY 2', ep : 'HWY 15' },
RDAB003801 : { pr : 'AB', sp : 'HWY 28', ep : 'Sask River (Vinca Bridge)' },
RDAB003802 : { pr : 'AB', sp : 'Sask River (Vinca Bridge)', ep : 'HWY 45' },
RDAB003901 : { pr : 'AB', sp : 'Leduc', ep : 'Thorsby' },
RDAB003902 : { pr : 'AB', sp : 'Thorsby', ep : 'Warburg' },
RDAB003903 : { pr : 'AB', sp : 'Warburg', ep : 'HWY 22' },
RDAB004001 : { pr : 'AB', sp : 'Grande Prairie', ep : 'Ainsworth Turnoff' },
RDAB004002 : { pr : 'AB', sp : 'Ainsworth Turnoff', ep : 'Kakwa River' },
RDAB004003 : { pr : 'AB', sp : 'Kakwa River', ep : 'Winniandy' },
RDAB004004 : { pr : 'AB', sp : 'Winniandy', ep : 'Grande Cache' },
RDAB004005 : { pr : 'AB', sp : 'Grande Cache', ep : 'Muskeg River' },
RDAB004006 : { pr : 'AB', sp : 'Muskeg River', ep : 'Pinto Creek' },
RDAB004007 : { pr : 'AB', sp : 'Pinto Creek', ep : 'HWY 16' },
RDAB004008 : { pr : 'AB', sp : 'HWY 16', ep : 'Cadomin Access' },
RDAB004009 : { pr : 'AB', sp : 'Cadomin Access', ep : 'Coalspur' },
RDAB004010 : { pr : 'AB', sp : 'Coalspur', ep : 'HWY 734' },
RDAB004011 : { pr : 'AB', sp : 'HWY 1', ep : 'Galatea' },
RDAB004012 : { pr : 'AB', sp : 'Galatea', ep : 'Kananaskis Lake Trail' },
RDAB004101 : { pr : 'AB', sp : 'US Border', ep : 'Elkwater' },
RDAB004102 : { pr : 'AB', sp : 'Elkwater', ep : 'HWY 1' },
RDAB004103 : { pr : 'AB', sp : 'HWY 1', ep : 'Golden Prairie Rd' },
RDAB004104 : { pr : 'AB', sp : 'Golden Prairie Rd', ep : 'Hilda' },
RDAB004105 : { pr : 'AB', sp : 'Hilda', ep : 'South Sask River' },
RDAB004106 : { pr : 'AB', sp : 'South Sask River', ep : 'Oyen' },
RDAB004107 : { pr : 'AB', sp : 'Oyen', ep : 'New Brigden' },
RDAB004108 : { pr : 'AB', sp : 'New Brigden', ep : 'HWY 12' },
RDAB004109 : { pr : 'AB', sp : 'Consort', ep : 'HWY 599' },
RDAB004110 : { pr : 'AB', sp : 'HWY 599', ep : 'HWY 13' },
RDAB004111 : { pr : 'AB', sp : 'HWY 13', ep : 'District Boundary' },
RDAB004112 : { pr : 'AB', sp : 'District Boundary', ep : 'Wainwright' },
RDAB004113 : { pr : 'AB', sp : 'Wainwright', ep : 'HWY 619' },
RDAB004114 : { pr : 'AB', sp : 'HWY 619', ep : 'Vermilion' },
RDAB004115 : { pr : 'AB', sp : 'Vermilion', ep : 'HWY 631' },
RDAB004116 : { pr : 'AB', sp : 'HWY 631', ep : 'HWY 45' },
RDAB004117 : { pr : 'AB', sp : 'HWY 45', ep : 'HWY 640' },
RDAB004118 : { pr : 'AB', sp : 'HWY 640', ep : 'HWY 28' },
RDAB004119 : { pr : 'AB', sp : 'HWY 29', ep : 'HWY 28' },
RDAB004120 : { pr : 'AB', sp : 'Bonnyville', ep : 'Lacorey' },
RDAB004201 : { pr : 'AB', sp : 'Jcn 2A', ep : 'Jcn 21' },
RDAB004301 : { pr : 'AB', sp : 'BC Border', ep : 'Beaverlodge' },
RDAB004302 : { pr : 'AB', sp : 'Beaverlodge', ep : 'HWY 724' },
RDAB004303 : { pr : 'AB', sp : 'HWY 724', ep : 'Grande Prairie' },
RDAB004304 : { pr : 'AB', sp : 'Grande Prairie', ep : 'HWY 2' },
RDAB004305 : { pr : 'AB', sp : 'HWY 2', ep : 'HWY 733' },
RDAB004306 : { pr : 'AB', sp : 'HWY 733', ep : 'DeBolt' },
RDAB004307 : { pr : 'AB', sp : 'DeBolt', ep : 'Valleyview' },
RDAB004308 : { pr : 'AB', sp : 'Valleyview', ep : 'Little Smoky' },
RDAB004309 : { pr : 'AB', sp : 'Little Smoky', ep : 'Fox Creek' },
RDAB004310 : { pr : 'AB', sp : 'Fox Creek', ep : 'Two Creeks' },
RDAB004311 : { pr : 'AB', sp : 'Two Creeks', ep : 'Whitecourt' },
RDAB004312 : { pr : 'AB', sp : 'Whitecourt', ep : 'Mayerthorpe' },
RDAB004313 : { pr : 'AB', sp : 'Mayerthorpe', ep : 'Cherhill' },
RDAB004314 : { pr : 'AB', sp : 'Cherhill', ep : 'HWY 633' },
RDAB004315 : { pr : 'AB', sp : 'HWY 633', ep : 'HWY 16' },
RDAB004316 : { pr : 'AB', sp : 'HWY 3', ep : 'HWY 4' },
RDAB004401 : { pr : 'AB', sp : 'HWY 16', ep : 'HWY 37' },
RDAB004402 : { pr : 'AB', sp : 'HWY 37', ep : 'HWY 651' },
RDAB004403 : { pr : 'AB', sp : 'HWY 651', ep : 'Westlock' },
RDAB004404 : { pr : 'AB', sp : 'Westlock', ep : 'Jarvie' },
RDAB004405 : { pr : 'AB', sp : 'Jarvie', ep : 'Jct HWY 2' },
RDAB004501 : { pr : 'AB', sp : 'Saskatchewan Border', ep : 'Dewberry' },
RDAB004502 : { pr : 'AB', sp : 'Dewberry', ep : 'HWY 41' },
RDAB004503 : { pr : 'AB', sp : 'HWY 41', ep : 'Myrnam' },
RDAB004504 : { pr : 'AB', sp : 'Myrnam', ep : 'Two Hills' },
RDAB004505 : { pr : 'AB', sp : 'Two Hills', ep : 'Andrew' },
RDAB004701 : { pr : 'AB', sp : 'Coalspur', ep : 'HWY 16' },
RDAB004901 : { pr : 'AB', sp : 'BC Border', ep : 'HWY 725' },
RDAB004902 : { pr : 'AB', sp : 'HWY 725', ep : 'Rycroft' },
RDAB004903 : { pr : 'AB', sp : 'Rycroft', ep : 'Eaglesham Corner' },
RDAB004904 : { pr : 'AB', sp : 'Eaglesham Corner', ep : 'Donnelly Corner' },
RDAB004905 : { pr : 'AB', sp : 'Donnelly Corner', ep : 'HWY 676' },
RDAB004906 : { pr : 'AB', sp : 'HWY 676', ep : 'Valleyview' },
RDAB005001 : { pr : 'AB', sp : 'HWY 12', ep : 'HWY 21' },
RDAB005201 : { pr : 'AB', sp : 'Welling', ep : 'HWY 4' },
RDAB005301 : { pr : 'AB', sp : 'HWY 22', ep : 'HWY 20' },
RDAB005302 : { pr : 'AB', sp : 'HWY 20', ep : 'Crestomere' },
RDAB005303 : { pr : 'AB', sp : 'Crestomere', ep : 'HWY 2' },
RDAB005304 : { pr : 'AB', sp : 'HWY 2', ep : 'HWY 21' },
RDAB005305 : { pr : 'AB', sp : 'HWY 21', ep : 'Battle River' },
RDAB005306 : { pr : 'AB', sp : 'Battle River', ep : 'HWY 36' },
RDAB005401 : { pr : 'AB', sp : 'HWY 2', ep : 'HWY 781' },
RDAB005402 : { pr : 'AB', sp : 'HWY 781', ep : 'SpruceView' },
RDAB005403 : { pr : 'AB', sp : 'SpruceView', ep : 'HWY 22 N' },
RDAB005501 : { pr : 'AB', sp : 'Cold Lake', ep : 'HWY 892' },
RDAB005502 : { pr : 'AB', sp : 'HWY 892', ep : 'Lacorey' },
RDAB005503 : { pr : 'AB', sp : 'Lacorey', ep : 'HWY 881' },
RDAB005504 : { pr : 'AB', sp : 'HWY 881', ep : 'Lac La Biche' },
RDAB005505 : { pr : 'AB', sp : 'Lac La Biche', ep : 'Atmore' },
RDAB005506 : { pr : 'AB', sp : 'Atmore', ep : 'HWY 63 S' },
RDAB005507 : { pr : 'AB', sp : 'HWY 63 S', ep : 'Athabasca' },
RDAB005601 : { pr : 'AB', sp : 'HWY 13', ep : 'Meeting Creek' },
RDAB005602 : { pr : 'AB', sp : 'Meeting Creek', ep : 'HWY 53' },
RDAB005603 : { pr : 'AB', sp : 'HWY 53', ep : 'Stettler' },
RDAB005604 : { pr : 'AB', sp : 'Stettler', ep : 'HWY 27' },
RDAB005605 : { pr : 'AB', sp : 'HWY 10 S', ep : 'HWY 564' },
RDAB005606 : { pr : 'AB', sp : 'HWY 564', ep : 'Transcanada' },
RDAB005801 : { pr : 'AB', sp : 'Rainbow Lake', ep : 'High Level' },
RDAB005802 : { pr : 'AB', sp : 'High Level', ep : 'Fort Vermilion' },
RDAB005901 : { pr : 'AB', sp : 'HWY 2', ep : 'La Glace' },
RDAB005902 : { pr : 'AB', sp : 'La Glace', ep : 'HWY 43' },
RDAB006001 : { pr : 'AB', sp : 'HWY 16', ep : 'Devon' },
RDAB006002 : { pr : 'AB', sp : 'Devon', ep : 'HWY 39' },
RDAB006101 : { pr : 'AB', sp : 'HWY 4', ep : 'HWY 36' },
RDAB006102 : { pr : 'AB', sp : 'HWY 36', ep : 'Manyberries' },
RDAB006201 : { pr : 'AB', sp : 'U.S. Border', ep : 'Magrath' },
RDAB006301 : { pr : 'AB', sp : 'HWY 28', ep : 'Newbrook' },
RDAB006302 : { pr : 'AB', sp : 'Newbrook', ep : 'Atmore' },
RDAB006303 : { pr : 'AB', sp : 'Atmore', ep : 'Wandering River' },
RDAB006304 : { pr : 'AB', sp : 'Wandering River', ep : 'Mariana Lake' },
RDAB006305 : { pr : 'AB', sp : 'Mariana Lake', ep : 'Fort McMurray' },
RDAB006306 : { pr : 'AB', sp : 'City of Fort McMurray', ep : ' ' },
RDAB006307 : { pr : 'AB', sp : 'Fort McMurray', ep : 'N pavement end' },
RDAB006401 : { pr : 'AB', sp : 'B.C. Border', ep : 'HWY 726' },
RDAB006402 : { pr : 'AB', sp : 'HWY 726', ep : 'Hines Creek' },
RDAB006403 : { pr : 'AB', sp : 'Hines Creek', ep : 'HWY 2' },
RDAB006601 : { pr : 'AB', sp : 'Jct HWY 22', ep : 'Park Gates' },
RDAB006801 : { pr : 'AB', sp : 'Park Gates', ep : 'Gravel Pit Access' },
RDAB006901 : { pr : 'AB', sp : 'E of Jct 63', ep : 'Lynton Siding' },
RDAB007201 : { pr : 'AB', sp : 'HWY 2', ep : 'Beiseker' },
RDAB008801 : { pr : 'AB', sp : 'Slave Lake', ep : 'HWY 754' },
RDAB008802 : { pr : 'AB', sp : 'HWY 754', ep : 'Nipisi' },
RDAB008803 : { pr : 'AB', sp : 'Nipisi', ep : 'Red Earth Creek' },
RDAB009301 : { pr : 'AB', sp : 'Lake Louise', ep : 'Jasper Park Border' },
RDAB009302 : { pr : 'AB', sp : 'Jasper Park Border', ep : 'Jasper' },
RDAB009303 : { pr : 'AB', sp : 'Castle Mountain Junction', ep : 'BC Border' },
RDAB010X01 : { pr : 'AB', sp : 'Hwy 10', ep : 'Wayne' },
RDAB011A01 : { pr : 'AB', sp : 'HWY 11', ep : 'HWY 2A' },
RDAB013A01 : { pr : 'AB', sp : 'W', ep : 'E Access thru MA-ME-O' },
RDAB016A01 : { pr : 'AB', sp : 'HWY 16', ep : 'Spruce Grove' },
RDAB016A02 : { pr : 'AB', sp : 'Spruce Grove', ep : 'Edmonton' },
RDAB016A03 : { pr : 'AB', sp : 'Vegreville and area', ep : ' ' },
RDAB016A04 : { pr : 'AB', sp : 'HWY 22', ep : 'Entwistle' },
RDAB021601 : { pr : 'AB', sp : 'HWY 16', ep : 'Lessard Road' },
RDAB021602 : { pr : 'AB', sp : 'Lessard Road', ep : 'HWY 2' },
RDAB021603 : { pr : 'AB', sp : 'HWY 2', ep : 'HWY 14' },
RDAB022X01 : { pr : 'AB', sp : 'HWY 24', ep : 'Calgary City Limits' },
RDAB022X02 : { pr : 'AB', sp : 'Calgary City Limits', ep : 'HWY 22' },
RDAB028A01 : { pr : 'AB', sp : 'HWY 37', ep : 'HWY 28' },
RDAB041A01 : { pr : 'AB', sp : 'Medicine Hat', ep : 'Highway  41N' },
RDAB064A01 : { pr : 'AB', sp : 'HWY 64', ep : 'Fairview' },
RDAB081301 : { pr : 'AB', sp : 'Athabasca', ep : 'North of Rock Island' },
RDAB081302 : { pr : 'AB', sp : 'North of Rock Island', ep : 'Wabasca' },
RDAB088101 : { pr : 'AB', sp : 'Lake la Biche', ep : 'South of Conklin' },
RDAB088102 : { pr : 'AB', sp : 'South of Conklin', ep : 'South of Aznac' },
RDAB088103 : { pr : 'AB', sp : 'Anzac North', ep : 'HWY 63' },
RDBC000101 : { pr : 'BC', sp : 'Victoria', ep : 'Langford' },
RDBC000102 : { pr : 'BC', sp : 'Langford', ep : 'Cobble Hill' },
RDBC000103 : { pr : 'BC', sp : 'Cobble Hill', ep : 'Duncan' },
RDBC000104 : { pr : 'BC', sp : 'Duncan', ep : 'Ladysmith' },
RDBC000105 : { pr : 'BC', sp : 'Ladysmith', ep : 'Nanaimo' },
RDBC000106 : { pr : 'BC', sp : 'Horseshoe Bay', ep : 'North Vancouver' },
RDBC000107 : { pr : 'BC', sp : 'North Vancouver', ep : 'Vancouver' },
RDBC000108 : { pr : 'BC', sp : 'Vancouver', ep : 'Port Mann Bridge' },
RDBC000109 : { pr : 'BC', sp : 'Port Mann Bridge', ep : 'Langley' },
RDBC000110 : { pr : 'BC', sp : 'Langley', ep : 'Abbotsford' },
RDBC000111 : { pr : 'BC', sp : 'Abbotsford', ep : 'Chilliwack' },
RDBC000112 : { pr : 'BC', sp : 'Chilliwack', ep : 'Hope' },
RDBC000113 : { pr : 'BC', sp : 'Hope', ep : 'Boston Bar' },
RDBC000114 : { pr : 'BC', sp : 'Boston Bar', ep : 'Lytton' },
RDBC000115 : { pr : 'BC', sp : 'Lytton', ep : 'Cache Creek' },
RDBC000116 : { pr : 'BC', sp : 'Cache Creek', ep : 'Kamloops' },
RDBC000117 : { pr : 'BC', sp : 'Kamloops', ep : 'Chase' },
RDBC000118 : { pr : 'BC', sp : 'Chase', ep : 'Salmon Arm' },
RDBC000119 : { pr : 'BC', sp : 'Salmon Arm', ep : 'Sicamous' },
RDBC000120 : { pr : 'BC', sp : 'Sicamous', ep : 'Revelstoke' },
RDBC000121 : { pr : 'BC', sp : 'Revelstoke', ep : 'Rogers Pass' },
RDBC000122 : { pr : 'BC', sp : 'Rogers Pass', ep : 'Golden' },
RDBC000123 : { pr : 'BC', sp : 'Golden', ep : 'Alberta Border' },
RDBC000201 : { pr : 'BC', sp : 'Dawson Creek', ep : 'Alberta Border' },
RDBC000301 : { pr : 'BC', sp : 'Hope', ep : 'Allison Pass' },
RDBC000302 : { pr : 'BC', sp : 'Allison Pass', ep : 'Princeton' },
RDBC000303 : { pr : 'BC', sp : 'Princeton', ep : 'Keremeos' },
RDBC000304 : { pr : 'BC', sp : 'Keremeos', ep : 'Osoyoos' },
RDBC000305 : { pr : 'BC', sp : 'Osoyoos', ep : 'Rock Creek' },
RDBC000306 : { pr : 'BC', sp : 'Rock Creek', ep : 'Greenwood' },
RDBC000307 : { pr : 'BC', sp : 'Greenwood', ep : 'Grand Forks' },
RDBC000308 : { pr : 'BC', sp : 'Grand Forks', ep : 'Blueberry Paulson' },
RDBC000309 : { pr : 'BC', sp : 'Blueberry Paulson', ep : 'Castlegar' },
RDBC000310 : { pr : 'BC', sp : 'Castlegar', ep : 'Salmo' },
RDBC000311 : { pr : 'BC', sp : 'Salmo', ep : 'Monk Creek FSR' },
RDBC000312 : { pr : 'BC', sp : 'Monk Creek FSR', ep : 'Creston' },
RDBC000313 : { pr : 'BC', sp : 'Creston', ep : 'Yahk' },
RDBC000314 : { pr : 'BC', sp : 'Yahk', ep : 'Moyie' },
RDBC000315 : { pr : 'BC', sp : 'Moyie', ep : 'Cranbrook' },
RDBC000316 : { pr : 'BC', sp : 'Cranbrook', ep : 'Fernie' },
RDBC000317 : { pr : 'BC', sp : 'Fernie', ep : 'Sparwood' },
RDBC000318 : { pr : 'BC', sp : 'Sparwood', ep : 'Alberta Border' },
RDBC000401 : { pr : 'BC', sp : 'Qualicum Beach', ep : 'Port Alberni' },
RDBC000402 : { pr : 'BC', sp : 'Port Alberni', ep : 'Sutton Pass' },
RDBC000403 : { pr : 'BC', sp : 'Sutton Pass', ep : 'Ucluelet' },
RDBC000404 : { pr : 'BC', sp : 'Ucluelet', ep : 'Tofino' },
RDBC000501 : { pr : 'BC', sp : 'Hope', ep : 'Kingsvale' },
RDBC000502 : { pr : 'BC', sp : 'Kingsvale', ep : 'Merritt' },
RDBC000503 : { pr : 'BC', sp : 'Merritt', ep : 'Lac Le Jeune' },
RDBC000504 : { pr : 'BC', sp : 'Lac Le Jeune', ep : 'Kamloops' },
RDBC000505 : { pr : 'BC', sp : 'Kamloops', ep : 'Barriere' },
RDBC000506 : { pr : 'BC', sp : 'Barriere', ep : 'Birch Island' },
RDBC000507 : { pr : 'BC', sp : 'Birch Island', ep : 'Blue River' },
RDBC000508 : { pr : 'BC', sp : 'Blue River', ep : 'Tete Jaune' },
RDBC000601 : { pr : 'BC', sp : 'Nelway', ep : 'Salmo' },
RDBC000602 : { pr : 'BC', sp : 'Salmo', ep : 'Nelson' },
RDBC000603 : { pr : 'BC', sp : 'South Slocan', ep : 'Slocan' },
RDBC000604 : { pr : 'BC', sp : 'Slocan', ep : 'New Denver' },
RDBC000605 : { pr : 'BC', sp : 'New Denver', ep : 'Nakusp' },
RDBC000606 : { pr : 'BC', sp : 'Nakusp', ep : 'Fauquier' },
RDBC000607 : { pr : 'BC', sp : 'Needles', ep : 'Cherryville' },
RDBC000608 : { pr : 'BC', sp : 'Cherryville', ep : 'Vernon' },
RDBC000701 : { pr : 'BC', sp : 'Vancouver', ep : 'Port Coquitlam' },
RDBC000702 : { pr : 'BC', sp : 'Port Coquitlam', ep : 'Mission' },
RDBC000703 : { pr : 'BC', sp : 'Mission', ep : 'Agassiz' },
RDBC000704 : { pr : 'BC', sp : 'Agassiz', ep : 'Hope' },
RDBC000801 : { pr : 'BC', sp : 'Merritt', ep : 'Spences Bridge' },
RDBC000901 : { pr : 'BC', sp : 'HWY 1', ep : 'Agassiz' },
RDBC000902 : { pr : 'BC', sp : 'Agassiz', ep : 'Harrison Hot Springs' },
RDBC001001 : { pr : 'BC', sp : 'Ladner', ep : 'Cloverdale' },
RDBC001002 : { pr : 'BC', sp : 'Cloverdale', ep : 'Langley' },
RDBC001003 : { pr : 'BC', sp : 'Langley', ep : 'Hwy 1 Interchange' },
RDBC001101 : { pr : 'BC', sp : 'Mission', ep : 'Abbotsford' },
RDBC001102 : { pr : 'BC', sp : 'Abbotsford', ep : 'USA Border' },
RDBC001201 : { pr : 'BC', sp : 'Lytton', ep : 'Lillooet' },
RDBC001301 : { pr : 'BC', sp : 'Hwy 1 Interchange', ep : 'Aldergrove' },
RDBC001302 : { pr : 'BC', sp : 'Aldergrove', ep : 'USA Border' },
RDBC001401 : { pr : 'BC', sp : 'Victoria', ep : 'Sooke' },
RDBC001402 : { pr : 'BC', sp : 'Sooke', ep : 'Port Renfrew' },
RDBC001501 : { pr : 'BC', sp : 'Hwy 1 interchange', ep : 'Cloverdale' },
RDBC001502 : { pr : 'BC', sp : 'Cloverdale', ep : 'USA Border' },
RDBC001601 : { pr : 'BC', sp : 'Prince Rupert', ep : 'Terrace' },
RDBC001602 : { pr : 'BC', sp : 'Terrace', ep : 'Kitwanga' },
RDBC001603 : { pr : 'BC', sp : 'Kitwanga', ep : 'Hazelton' },
RDBC001604 : { pr : 'BC', sp : 'Hazelton', ep : 'Smithers' },
RDBC001605 : { pr : 'BC', sp : 'Smithers', ep : 'Houston' },
RDBC001606 : { pr : 'BC', sp : 'Houston', ep : 'Burns Lake' },
RDBC001607 : { pr : 'BC', sp : 'Burns Lake', ep : 'Fraser Lake' },
RDBC001608 : { pr : 'BC', sp : 'Fraser Lake', ep : 'Vanderhoof' },
RDBC001609 : { pr : 'BC', sp : 'Vanderhoof', ep : 'Prince George' },
RDBC001610 : { pr : 'BC', sp : 'Prince George', ep : 'Slim Creek' },
RDBC001611 : { pr : 'BC', sp : 'Slim Creek', ep : 'McBride' },
RDBC001612 : { pr : 'BC', sp : 'McBride', ep : 'Tete Jaune' },
RDBC001613 : { pr : 'BC', sp : 'Tete Jaune', ep : 'Red Pass' },
RDBC001614 : { pr : 'BC', sp : 'Red Pass', ep : 'Alberta Border' },
RDBC001615 : { pr : 'BC', sp : 'Sandspit', ep : 'Alliford Bay' },
RDBC001616 : { pr : 'BC', sp : 'Alliford Bay', ep : 'Skidegate' },
RDBC001617 : { pr : 'BC', sp : 'Skidegate', ep : 'Port Clements' },
RDBC001618 : { pr : 'BC', sp : 'Port Clements', ep : 'Masset' },
RDBC001701 : { pr : 'BC', sp : 'Victoria', ep : 'Brentwood Bay' },
RDBC001702 : { pr : 'BC', sp : 'Brentwood Bay', ep : 'Swartz Bay' },
RDBC001703 : { pr : 'BC', sp : 'Hwy 99 Interchange', ep : 'Tsawwassen Ferry Terminal' },
RDBC001801 : { pr : 'BC', sp : 'Lake Cowichan', ep : 'Duncan' },
RDBC001901 : { pr : 'BC', sp : 'Nanaimo', ep : 'Duke Point' },
RDBC001902 : { pr : 'BC', sp : 'Nanaimo', ep : 'Parksville' },
RDBC001903 : { pr : 'BC', sp : 'Parksville', ep : 'Cumberland' },
RDBC001904 : { pr : 'BC', sp : 'Cumberland', ep : 'Campbell River' },
RDBC001905 : { pr : 'BC', sp : 'Campbell River', ep : 'Sayward' },
RDBC001906 : { pr : 'BC', sp : 'Sayward', ep : 'Woss' },
RDBC001907 : { pr : 'BC', sp : 'Woss', ep : 'Port Hardy' },
RDBC001A01 : { pr : 'BC', sp : 'Surrey', ep : 'Langley' },
RDBC001A02 : { pr : 'BC', sp : 'Langley', ep : 'Aldergrove' },
RDBC001A03 : { pr : 'BC', sp : 'Aldergrove', ep : 'Abbotsford' },
RDBC001A04 : { pr : 'BC', sp : 'Chemainus', ep : ' ' },
RDBC002001 : { pr : 'BC', sp : 'Williams Lake', ep : 'Alexis Creek' },
RDBC002002 : { pr : 'BC', sp : 'Alexis Creek', ep : 'Anihim Lake' },
RDBC002003 : { pr : 'BC', sp : 'Anihim Lake', ep : 'Bella Coola' },
RDBC002101 : { pr : 'BC', sp : 'Creston', ep : 'US Border Crossing' },
RDBC002201 : { pr : 'BC', sp : 'Castlegar', ep : 'Trail Hill' },
RDBC002203 : { pr : 'BC', sp : 'Rossland', ep : 'Patterson' },
RDBC002301 : { pr : 'BC', sp : 'Nakusp', ep : 'Galena Bay' },
RDBC002302 : { pr : 'BC', sp : 'Shelter Bay', ep : 'Revelstoke' },
RDBC002303 : { pr : 'BC', sp : 'Revelstoke', ep : 'Mica Creek' },
RDBC002401 : { pr : 'BC', sp : '93 Mile', ep : 'Little Fort' },
RDBC002601 : { pr : 'BC', sp : 'Quesnel', ep : 'Cottonwood' },
RDBC002602 : { pr : 'BC', sp : 'Cottonwood', ep : 'Wells' },
RDBC002701 : { pr : 'BC', sp : 'Vanderhoof', ep : 'Ft St James' },
RDBC002801 : { pr : 'BC', sp : 'Campbell River', ep : 'Gold River' },
RDBC002901 : { pr : 'BC', sp : 'Tumbler Ridge', ep : 'Chetwynd' },
RDBC002902 : { pr : 'BC', sp : 'Chetwynd', ep : 'Hudson\'s Hope' },
RDBC002903 : { pr : 'BC', sp : 'Hudson\'s Hope', ep : 'Fort St John' },
RDBC003001 : { pr : 'BC', sp : 'HWY 19', ep : 'Port Alice' },
RDBC003101 : { pr : 'BC', sp : 'Balfour', ep : 'Kaslo' },
RDBC003102 : { pr : 'BC', sp : 'Kaslo', ep : 'Lardeau' },
RDBC003103 : { pr : 'BC', sp : 'Lardeau', ep : 'Gerrard' },
RDBC003104 : { pr : 'BC', sp : 'Gerrard', ep : 'Galena Bay' },
RDBC003301 : { pr : 'BC', sp : 'Kelowna', ep : 'Beaverdell' },
RDBC003302 : { pr : 'BC', sp : 'Beaverdell', ep : 'Rock Creek' },
RDBC003501 : { pr : 'BC', sp : 'Burns Lake', ep : 'Southbank' },
RDBC003701 : { pr : 'BC', sp : 'Kitimat', ep : 'Terrace' },
RDBC003702 : { pr : 'BC', sp : 'Kitwanga', ep : 'Cranberry Jct' },
RDBC003703 : { pr : 'BC', sp : 'Cranberry Jct', ep : 'Meziadin Jct' },
RDBC003704 : { pr : 'BC', sp : 'Meziadin Jct', ep : 'Bob Quinn Lake' },
RDBC003705 : { pr : 'BC', sp : 'Bob Quinn Lake', ep : 'Tatogga' },
RDBC003706 : { pr : 'BC', sp : 'Tatogga', ep : 'Dease Lake' },
RDBC003707 : { pr : 'BC', sp : 'Dease Lake', ep : 'Cassiar Jct' },
RDBC003708 : { pr : 'BC', sp : 'Cassiar Jct', ep : 'Yukon Border' },
RDBC003901 : { pr : 'BC', sp : 'Jct Hwy 97', ep : 'Mackenzie' },
RDBC003A01 : { pr : 'BC', sp : 'Castlegar', ep : 'Nelson' },
RDBC003A02 : { pr : 'BC', sp : 'Nelson', ep : 'Balfour' },
RDBC003A03 : { pr : 'BC', sp : 'Kootenay Bay', ep : 'Creston' },
RDBC003A04 : { pr : 'BC', sp : 'Keremeos', ep : 'Kaleden' },
RDBC003B01 : { pr : 'BC', sp : 'HWY 3 Jct', ep : 'Rossland' },
RDBC003B02 : { pr : 'BC', sp : 'Rossland', ep : 'Trail' },
RDBC003B03 : { pr : 'BC', sp : 'Trail', ep : 'Fruitvale' },
RDBC003B04 : { pr : 'BC', sp : 'Fruitvale', ep : 'HWY 3 Jct' },
RDBC004001 : { pr : 'BC', sp : 'Lillooet', ep : 'Gold Bridge' },
RDBC004301 : { pr : 'BC', sp : 'Sparwood', ep : 'Elkford' },
RDBC004901 : { pr : 'BC', sp : 'Dawson Creek', ep : 'Alberta Border' },
RDBC004A01 : { pr : 'BC', sp : 'Parksville', ep : 'Coombs' },
RDBC005101 : { pr : 'BC', sp : 'Glenora', ep : 'Dease Lake' },
RDBC005201 : { pr : 'BC', sp : 'Arras', ep : 'Tumbler Ridge' },
RDBC005202 : { pr : 'BC', sp : 'Tumbler Ridge', ep : 'Tupper' },
RDBC005901 : { pr : 'BC', sp : 'Quesnel', ep : 'Nazko' },
RDBC005A01 : { pr : 'BC', sp : 'Princeton', ep : 'Merritt' },
RDBC005A02 : { pr : 'BC', sp : 'Merritt', ep : 'Kamloops' },
RDBC007701 : { pr : 'BC', sp : 'Fort Nelson', ep : 'NWT Border' },
RDBC007B01 : { pr : 'BC', sp : 'Mary Hill Pass', ep : ' ' },
RDBC009101 : { pr : 'BC', sp : 'Richmond', ep : 'Alex Fraser Bridge' },
RDBC009102 : { pr : 'BC', sp : 'Alex Fraser Bridge', ep : 'HWY 99' },
RDBC009301 : { pr : 'BC', sp : 'Elko', ep : 'Rooseville' },
RDBC009302 : { pr : 'BC', sp : 'Cranbrook', ep : 'Canal Flats' },
RDBC009303 : { pr : 'BC', sp : 'Canal Flats', ep : 'Invermere' },
RDBC009304 : { pr : 'BC', sp : 'Invermere', ep : 'Radium' },
RDBC009305 : { pr : 'BC', sp : 'Radium', ep : 'Kootenay Crossing' },
RDBC009306 : { pr : 'BC', sp : 'Kootenay Crossing', ep : 'Alberta Border' },
RDBC009501 : { pr : 'BC', sp : 'Radium', ep : 'Brisco' },
RDBC009502 : { pr : 'BC', sp : 'Brisco', ep : 'Golden' },
RDBC009503 : { pr : 'BC', sp : 'Curzon', ep : 'Kingsgate' },
RDBC009701 : { pr : 'BC', sp : 'Osoyoos', ep : 'Oliver' },
RDBC009702 : { pr : 'BC', sp : 'Oliver', ep : 'Penticton' },
RDBC009703 : { pr : 'BC', sp : 'Penticton', ep : 'Kelowna' },
RDBC009704 : { pr : 'BC', sp : 'Kelowna', ep : 'Vernon' },
RDBC009705 : { pr : 'BC', sp : 'Vernon', ep : 'Falkland' },
RDBC009706 : { pr : 'BC', sp : 'Falkland', ep : 'HWY 1' },
RDBC009707 : { pr : 'BC', sp : 'Cache Creek', ep : 'Clinton' },
RDBC009708 : { pr : 'BC', sp : 'Clinton', ep : '100 Mile House' },
RDBC009709 : { pr : 'BC', sp : '100 Mile House', ep : 'Williams Lake' },
RDBC009710 : { pr : 'BC', sp : 'Williams Lake', ep : 'McLeese Lake' },
RDBC009711 : { pr : 'BC', sp : 'McLeese Lake', ep : 'Quesnel' },
RDBC009712 : { pr : 'BC', sp : 'Quesnel', ep : 'Hixon' },
RDBC009713 : { pr : 'BC', sp : 'Hixon', ep : 'Prince George' },
RDBC009714 : { pr : 'BC', sp : 'Prince George', ep : 'Bear Lake' },
RDBC009715 : { pr : 'BC', sp : 'Bear Lake', ep : 'McLeod Lake' },
RDBC009716 : { pr : 'BC', sp : 'McLeod Lake', ep : 'Pine Pass' },
RDBC009717 : { pr : 'BC', sp : 'Pine Pass', ep : 'Chetwynd' },
RDBC009718 : { pr : 'BC', sp : 'Chetwynd', ep : 'Dawson Creek' },
RDBC009719 : { pr : 'BC', sp : 'Dawson Creek', ep : 'Fort St John' },
RDBC009720 : { pr : 'BC', sp : 'Fort St John', ep : 'Wonowon' },
RDBC009721 : { pr : 'BC', sp : 'Wonowon', ep : 'Prophet River' },
RDBC009722 : { pr : 'BC', sp : 'Prophet River', ep : 'Fort Nelson' },
RDBC009723 : { pr : 'BC', sp : 'Fort Nelson', ep : 'Muncho Lake' },
RDBC009724 : { pr : 'BC', sp : 'Muncho Lake', ep : 'Skooks Landing' },
RDBC009725 : { pr : 'BC', sp : 'Skooks Landing', ep : 'Watson Lake (YT)' },
RDBC009901 : { pr : 'BC', sp : 'Peace Arch Crossing', ep : 'Hwy 91 Interchange' },
RDBC009902 : { pr : 'BC', sp : 'Hwy 91 Interchange', ep : 'Massey Tunnel' },
RDBC009903 : { pr : 'BC', sp : 'Massey Tunnel', ep : 'Oak St Bridge' },
RDBC009904 : { pr : 'BC', sp : 'Oak St Bridge', ep : 'Vancouver downtown' },
RDBC009905 : { pr : 'BC', sp : 'Vancouver downtown', ep : 'Stanley Park Causeway' },
RDBC009906 : { pr : 'BC', sp : 'Stanley Park Causeway', ep : 'Lions Gate Bridge' },
RDBC009907 : { pr : 'BC', sp : 'Lions Gate Bridge', ep : 'Taylor Way' },
RDBC009908 : { pr : 'BC', sp : 'Horseshoe Bay', ep : 'Squamish' },
RDBC009909 : { pr : 'BC', sp : 'Squamish', ep : 'Garibaldi' },
RDBC009910 : { pr : 'BC', sp : 'Garibaldi', ep : 'Whistler' },
RDBC009911 : { pr : 'BC', sp : 'Whistler', ep : 'Pemberton' },
RDBC009912 : { pr : 'BC', sp : 'Pemberton', ep : 'Lillooet' },
RDBC009913 : { pr : 'BC', sp : 'Lillooet', ep : 'Jct Hwy 97' },
RDBC00AH01 : { pr : 'BC', sp : 'Atlin HWY', ep : ' ' },
RDBC00CR01 : { pr : 'BC', sp : 'Coalmont Road', ep : ' ' },
RDBC00HR01 : { pr : 'BC', sp : 'Horsefly Road', ep : ' ' },
RDBC00LR01 : { pr : 'BC', sp : 'Likely Road', ep : ' ' },
RDBC00NH01 : { pr : 'BC', sp : 'Terrace', ep : 'New Aiyansh' },
RDBC00NH02 : { pr : 'BC', sp : 'New Aiyansh', ep : 'Gingolx' },
RDBC00WR01 : { pr : 'BC', sp : 'Westside Road', ep : ' ' },
RDBC010101 : { pr : 'BC', sp : 'Port Mellon', ep : 'Langdale' },
RDBC010102 : { pr : 'BC', sp : 'Langdale', ep : 'Gibsons' },
RDBC010103 : { pr : 'BC', sp : 'Gibsons', ep : 'Sechelt' },
RDBC010104 : { pr : 'BC', sp : 'Sechelt', ep : 'Irvines Landing' },
RDBC010105 : { pr : 'BC', sp : 'Irvines Landing', ep : 'Earls Cove' },
RDBC010106 : { pr : 'BC', sp : 'Saltery Bay', ep : 'Powell River' },
RDBC010107 : { pr : 'BC', sp : 'Powell River', ep : 'Lund' },
RDBC010302 : { pr : 'BC', sp : 'Fort St John', ep : 'Alberta Border' },
RDBC011801 : { pr : 'BC', sp : 'Topley', ep : 'Granisle' },
RDBC019A01 : { pr : 'BC', sp : 'Nanaimo', ep : ' ' },
RDBC019A02 : { pr : 'BC', sp : 'Parksville', ep : 'Courtenay' },
RDBC019A03 : { pr : 'BC', sp : 'Courtenay', ep : 'Campbell River' },
RDBC022A01 : { pr : 'BC', sp : 'Waneta Jct', ep : 'US Border' },
RDBC031A01 : { pr : 'BC', sp : 'Kaslo', ep : 'New Denver' },
RDBC037A01 : { pr : 'BC', sp : 'Stewart', ep : 'Meziadin' },
RDBC091A01 : { pr : 'BC', sp : 'Highway 91 Interchange', ep : 'Queensborough' },
RDBC091A02 : { pr : 'BC', sp : 'Queensborough', ep : 'New Westminster' },
RDBC095A01 : { pr : 'BC', sp : 'Cranbrook', ep : 'Kimberley' },
RDBC095A02 : { pr : 'BC', sp : 'Kimberley', ep : 'Wasa Jct' },
RDBC097A01 : { pr : 'BC', sp : 'Vernon', ep : 'Enderby' },
RDBC097A02 : { pr : 'BC', sp : 'Enderby', ep : 'Sicamous' },
RDBC097B01 : { pr : 'BC', sp : 'Enderby', ep : 'Salmon Arm' },
RDBC097C01 : { pr : 'BC', sp : 'Ashcroft', ep : 'Logan Lake' },
RDBC097C02 : { pr : 'BC', sp : 'Logan Lake', ep : 'Merritt' },
RDBC097C03 : { pr : 'BC', sp : 'Merritt', ep : 'Aspen Grove' },
RDBC097C04 : { pr : 'BC', sp : 'Aspen Grove', ep : 'Peachland' },
RDBC097D01 : { pr : 'BC', sp : 'Logan Lake', ep : 'Lac Le Jeune' },
RDBC099A01 : { pr : 'BC', sp : 'Vancouver downtown', ep : 'Surrey' },
RDBC0HBR01 : { pr : 'BC', sp : 'Gold River', ep : 'Tahsis' },
RDBC0HVR01 : { pr : 'BC', sp : 'Hemlock Valley Road', ep : ' ' },
RDBC0MWR01 : { pr : 'BC', sp : 'Mount Washington Road', ep : ' ' },
RDMB000101 : { pr : 'MB', sp : 'Falcon Lake', ep : 'Ontario border' },
RDMB000102 : { pr : 'MB', sp : 'Highway 308', ep : 'Falcon Lake' },
RDMB000103 : { pr : 'MB', sp : 'Hadashville', ep : 'Highway 308' },
RDMB000104 : { pr : 'MB', sp : '13 km west of Hadashville', ep : 'Hadashville' },
RDMB000105 : { pr : 'MB', sp : 'Brokenhead River', ep : '13 km west of Hadashville' },
RDMB000106 : { pr : 'MB', sp : 'St. Anne', ep : ' Brokenhead River' },
RDMB000107 : { pr : 'MB', sp : 'Highway 207', ep : 'St. Anne' },
RDMB000108 : { pr : 'MB', sp : 'Winnipeg city limits', ep : 'Highway 207' },
RDMB000109 : { pr : 'MB', sp : 'Headingley', ep : 'Winnipeg city limits' },
RDMB000110 : { pr : 'MB', sp : 'Headingley', ep : 'Elie' },
RDMB000111 : { pr : 'MB', sp : 'Elie', ep : 'Highway 13' },
RDMB000112 : { pr : 'MB', sp : 'Highway 13', ep : 'Portage la Prairie' },
RDMB000113 : { pr : 'MB', sp : 'Portage la Prairie', ep : 'Highway 16' },
RDMB000114 : { pr : 'MB', sp : 'Highway 16', ep : 'MacGregor' },
RDMB000115 : { pr : 'MB', sp : 'MacGregor', ep : 'Austin' },
RDMB000116 : { pr : 'MB', sp : 'Highway 34', ep : 'Carberry' },
RDMB000117 : { pr : 'MB', sp : 'Carberry', ep : 'Highway 340' },
RDMB000118 : { pr : 'MB', sp : 'Highway 340', ep : ' Brandon' },
RDMB000119 : { pr : 'MB', sp : 'Brandon', ep : 'Griswold' },
RDMB000120 : { pr : 'MB', sp : 'Griswold', ep : 'Virden' },
RDMB000121 : { pr : 'MB', sp : 'Virden', ep : 'Sask Border' },
RDMB000201 : { pr : 'MB', sp : 'Highway 100', ep : 'Starbuck' },
RDMB000202 : { pr : 'MB', sp : 'Starbuck', ep : 'Elm Creek' },
RDMB000203 : { pr : 'MB', sp : 'Elm Creek', ep : 'St. Claude' },
RDMB000204 : { pr : 'MB', sp : 'St. Claude', ep : 'E. Jct Highway 242' },
RDMB000205 : { pr : 'MB', sp : 'E. Jct Highway 242', ep : 'Holland' },
RDMB000206 : { pr : 'MB', sp : 'Holland', ep : 'Glenboro' },
RDMB000207 : { pr : 'MB', sp : 'Glenboro', ep : 'Highway 18' },
RDMB000208 : { pr : 'MB', sp : 'Highway 18', ep : 'Highway 10' },
RDMB000209 : { pr : 'MB', sp : 'Highway 10', ep : 'Souris' },
RDMB000210 : { pr : 'MB', sp : 'Souris', ep : 'W. Jct Highway 21' },
RDMB000211 : { pr : 'MB', sp : 'W. Jct Highway 21', ep : 'Pipestone' },
RDMB000212 : { pr : 'MB', sp : 'Pipestone', ep : 'Sask Border' },
RDMB000301 : { pr : 'MB', sp : 'Highway 100', ep : 'Winnipeg city limits' },
RDMB000302 : { pr : 'MB', sp : 'Highway 100', ep : 'Sanford' },
RDMB000303 : { pr : 'MB', sp : 'Sanford', ep : 'Sperling' },
RDMB000304 : { pr : 'MB', sp : 'Sperling', ep : 'Carman' },
RDMB000305 : { pr : 'MB', sp : 'Carman', ep : 'Highway 23' },
RDMB000306 : { pr : 'MB', sp : 'Highway 23', ep : 'Morden' },
RDMB000307 : { pr : 'MB', sp : 'Morden', ep : 'Highway 31' },
RDMB000308 : { pr : 'MB', sp : 'Highway 31', ep : 'Manitou' },
RDMB000309 : { pr : 'MB', sp : 'Manitou', ep : 'N. Jct Highway 34' },
RDMB000310 : { pr : 'MB', sp : 'N. Jct Highway 34', ep : 'S. Jct Highway 34' },
RDMB000311 : { pr : 'MB', sp : 'S. Jct Highway 34', ep : 'Cartwright' },
RDMB000312 : { pr : 'MB', sp : 'Cartwright', ep : 'S. Jct Highway 18' },
RDMB000313 : { pr : 'MB', sp : 'S. Jct Highway 18', ep : 'Highway 346' },
RDMB000314 : { pr : 'MB', sp : 'Highway 346', ep : 'Highway 450' },
RDMB000315 : { pr : 'MB', sp : 'Highway 450', ep : 'N. Jct Highway 21' },
RDMB000316 : { pr : 'MB', sp : 'N. Jct Highway 21', ep : 'Highway 452' },
RDMB000317 : { pr : 'MB', sp : 'Highway 452', ep : 'S. Jct Highway 83' },
RDMB000318 : { pr : 'MB', sp : 'S. Jct Highway 83', ep : 'Sask Border' },
RDMB000401 : { pr : 'MB', sp : 'Highway 9', ep : 'Highway 59' },
RDMB000501 : { pr : 'MB', sp : 'U.S. Border', ep : 'Cartwright' },
RDMB000502 : { pr : 'MB', sp : 'Cartwright', ep : 'Highway 23' },
RDMB000503 : { pr : 'MB', sp : 'Highway 23', ep : 'Highway 2' },
RDMB000504 : { pr : 'MB', sp : 'Highway 2', ep : 'Highway 1' },
RDMB000505 : { pr : 'MB', sp : 'Highway 1', ep : 'Highway 353' },
RDMB000506 : { pr : 'MB', sp : 'Highway 353', ep : 'Neepawa' },
RDMB000507 : { pr : 'MB', sp : 'Neepawa', ep : 'Highway 265' },
RDMB000508 : { pr : 'MB', sp : 'Highway 265', ep : 'Highway 261' },
RDMB000509 : { pr : 'MB', sp : 'Highway 261', ep : 'McCreary' },
RDMB000510 : { pr : 'MB', sp : 'McCreary', ep : 'Highway 68' },
RDMB000511 : { pr : 'MB', sp : 'Highway 68', ep : 'Ochre River' },
RDMB000512 : { pr : 'MB', sp : 'Ochre River', ep : 'S. Jct Highway 10' },
RDMB000513 : { pr : 'MB', sp : 'S. Jct Highway 10', ep : 'N. Jct Dauphin By-Pass' },
RDMB000514 : { pr : 'MB', sp : 'N. Jct Dauphin By-Pass', ep : 'N. Jct Highway 10' },
RDMB000515 : { pr : 'MB', sp : 'N. Jct Highway 10', ep : 'Grandview' },
RDMB000516 : { pr : 'MB', sp : 'Grandview', ep : 'Roblin' },
RDMB000517 : { pr : 'MB', sp : 'Roblin', ep : 'Sask Border' },
RDMB000601 : { pr : 'MB', sp : 'Highway 101', ep : 'Highway 67' },
RDMB000602 : { pr : 'MB', sp : 'Highway 67', ep : 'Highway 248' },
RDMB000603 : { pr : 'MB', sp : 'Highway 248', ep : 'St. Laurent' },
RDMB000604 : { pr : 'MB', sp : 'St. Laurent', ep : 'Lundar' },
RDMB000605 : { pr : 'MB', sp : 'Lundar', ep : 'N. Jct Highway 68' },
RDMB000606 : { pr : 'MB', sp : 'N. Jct Highway 68', ep : 'Ashern' },
RDMB000607 : { pr : 'MB', sp : 'Ashern', ep : 'Fairford' },
RDMB000608 : { pr : 'MB', sp : 'airford', ep : 'Gypsumville' },
RDMB000609 : { pr : 'MB', sp : 'Gypsumville', ep : 'Devil\'s Lake' },
RDMB000610 : { pr : 'MB', sp : 'Devil\'s Lake', ep : 'Grand Rapids' },
RDMB000611 : { pr : 'MB', sp : 'Grand Rapids', ep : 'William River' },
RDMB000612 : { pr : 'MB', sp : 'William River', ep : 'Ponton' },
RDMB000613 : { pr : 'MB', sp : 'Ponton', ep : 'Wabowden' },
RDMB000614 : { pr : 'MB', sp : 'Wabowden', ep : 'Thompson' },
RDMB000701 : { pr : 'MB', sp : 'Winnipeg city limits', ep : 'Highway 101' },
RDMB000702 : { pr : 'MB', sp : 'Highway 101', ep : 'Highway 67' },
RDMB000703 : { pr : 'MB', sp : 'Highway 67', ep : 'Teulon' },
RDMB000704 : { pr : 'MB', sp : 'Teulon', ep : 'Komarno' },
RDMB000705 : { pr : 'MB', sp : 'Komarno', ep : 'N. Jct Highway 231' },
RDMB000706 : { pr : 'MB', sp : 'N. Jct Highway 231', ep : 'Arborg' },
RDMB000801 : { pr : 'MB', sp : 'Winnipeg city limits', ep : 'Highway 101' },
RDMB000802 : { pr : 'MB', sp : 'Highway 101', ep : 'Highway 27' },
RDMB000803 : { pr : 'MB', sp : 'Highway 27', ep : 'Highway 67' },
RDMB000804 : { pr : 'MB', sp : 'Highway 67', ep : 'Highway 17' },
RDMB000805 : { pr : 'MB', sp : 'Highway 17', ep : 'Highway 229' },
RDMB000806 : { pr : 'MB', sp : 'Highway 229', ep : 'Highway 231' },
RDMB000807 : { pr : 'MB', sp : 'Highway 231', ep : 'Highway 68' },
RDMB000808 : { pr : 'MB', sp : 'Highway 68', ep : 'Highway 234' },
RDMB000809 : { pr : 'MB', sp : 'Highway 234', ep : '7 km S. of Gull Harbour' },
RDMB000901 : { pr : 'MB', sp : 'Winnipeg city limits', ep : 'Lockport' },
RDMB000902 : { pr : 'MB', sp : 'Lockport', ep : 'Highway 4' },
RDMB000903 : { pr : 'MB', sp : 'Highway 9A', ep : 'Highway 4' },
RDMB000904 : { pr : 'MB', sp : 'Jct Highway 4', ep : 'Highway 17' },
RDMB000905 : { pr : 'MB', sp : 'Highway 17', ep : 'Winnipeg Beach' },
RDMB000906 : { pr : 'MB', sp : 'Winnipeg Beach', ep : 'Gimli' },
RDMB001001 : { pr : 'MB', sp : 'U.S. Border', ep : 'Highway 3' },
RDMB001002 : { pr : 'MB', sp : 'Highway 3', ep : 'N. Jct Highway 23' },
RDMB001003 : { pr : 'MB', sp : 'N. Jct Highway 23', ep : 'S. Jct Highway 2' },
RDMB001004 : { pr : 'MB', sp : 'S. Jct Highway 2', ep : 'Highway 349' },
RDMB001005 : { pr : 'MB', sp : 'Highway 349', ep : 'Highway 1' },
RDMB001006 : { pr : 'MB', sp : 'Highway 1', ep : 'Highway 25' },
RDMB001007 : { pr : 'MB', sp : 'Highway 25', ep : 'Minnedosa' },
RDMB001008 : { pr : 'MB', sp : 'Minnedosa', ep : 'Highway 45' },
RDMB001009 : { pr : 'MB', sp : 'Highway 45', ep : 'Clear Lake' },
RDMB001010 : { pr : 'MB', sp : 'Clear Lake', ep : 'N. Ent. Riding Mtn Park' },
RDMB001011 : { pr : 'MB', sp : 'N. Ent. Riding Mtn Park', ep : 'S. Jct Highway 5' },
RDMB001012 : { pr : 'MB', sp : 'N. Jct Highway 5', ep : 'Highway 267' },
RDMB001013 : { pr : 'MB', sp : 'Highway 267', ep : 'Ethelbert' },
RDMB001014 : { pr : 'MB', sp : 'Ethelbert', ep : 'Pine River' },
RDMB001015 : { pr : 'MB', sp : 'Pine River', ep : 'Cowan' },
RDMB001016 : { pr : 'MB', sp : 'Cowan', ep : 'Highway 268' },
RDMB001017 : { pr : 'MB', sp : 'Highway 268', ep : ' Bowsman' },
RDMB001018 : { pr : 'MB', sp : 'Bowsman', ep : 'Highway 77' },
RDMB001019 : { pr : 'MB', sp : 'Highway 77', ep : 'Highway 60' },
RDMB001020 : { pr : 'MB', sp : 'Highway 60', ep : 'Highway 287' },
RDMB001021 : { pr : 'MB', sp : 'Highway 287', ep : 'Cranberry Portage' },
RDMB001022 : { pr : 'MB', sp : 'Cranberry Portage', ep : 'Flin Flon' },
RDMB001101 : { pr : 'MB', sp : 'Highway 1', ep : 'Highway 506' },
RDMB001102 : { pr : 'MB', sp : 'Highway 506', ep : 'S. Jct Highway 44' },
RDMB001103 : { pr : 'MB', sp : 'S. Jct Highway 44', ep : 'N. Jct Highway 44' },
RDMB001104 : { pr : 'MB', sp : 'N. Jct Highway 44', ep : 'Highway 211' },
RDMB001105 : { pr : 'MB', sp : 'Highway 211', ep : 'Lac Du Bonnet' },
RDMB001106 : { pr : 'MB', sp : 'Lac Du Bonnet', ep : 'Great Falls' },
RDMB001107 : { pr : 'MB', sp : 'Great Falls', ep : 'Powerview' },
RDMB001108 : { pr : 'MB', sp : 'Powerview', ep : 'Highway 59' },
RDMB001201 : { pr : 'MB', sp : 'US border', ep : 'Highway 89' },
RDMB001202 : { pr : 'MB', sp : 'Highway 89', ep : 'N. Jct Highway 203' },
RDMB001203 : { pr : 'MB', sp : 'N. Jct Highway 203', ep : 'Highway 205' },
RDMB001204 : { pr : 'MB', sp : 'Highway 205', ep : 'Steinbach' },
RDMB001205 : { pr : 'MB', sp : 'Steinbach', ep : 'Highway 1' },
RDMB001206 : { pr : 'MB', sp : 'Highway 1', ep : 'Anola' },
RDMB001207 : { pr : 'MB', sp : 'Anola', ep : 'Tyndall' },
RDMB001208 : { pr : 'MB', sp : 'Beausejour', ep : 'Highway 317' },
RDMB001209 : { pr : 'MB', sp : 'Highway 317', ep : 'Highway 59' },
RDMB001301 : { pr : 'MB', sp : 'Elm Creek', ep : 'Highway 1' },
RDMB001302 : { pr : 'MB', sp : 'Highway 305', ep : 'Elm Creek' },
RDMB001303 : { pr : 'MB', sp : 'Carman', ep : 'Highway 305' },
RDMB001401 : { pr : 'MB', sp : 'Highway 75', ep : 'Rosenfeld' },
RDMB001402 : { pr : 'MB', sp : 'Rosenfeld', ep : 'Plum Coulee' },
RDMB001403 : { pr : 'MB', sp : 'Plum Coulee', ep : 'Highway 32' },
RDMB001404 : { pr : 'MB', sp : 'Highway 32', ep : 'Highway 3' },
RDMB001501 : { pr : 'MB', sp : 'Winnipeg city limits', ep : 'Anola' },
RDMB001502 : { pr : 'MB', sp : 'Anola', ep : 'Hazel' },
RDMB001503 : { pr : 'MB', sp : 'Hazel', ep : 'Elma' },
RDMB001601 : { pr : 'MB', sp : 'Highway 1', ep : 'Highway 50' },
RDMB001602 : { pr : 'MB', sp : 'Highway 50', ep : 'Highway 352' },
RDMB001603 : { pr : 'MB', sp : 'Highway 352', ep : 'Highway 466' },
RDMB001604 : { pr : 'MB', sp : 'Highway 466', ep : 'Minnedosa' },
RDMB001605 : { pr : 'MB', sp : 'Minnedosa', ep : 'Newdale' },
RDMB001606 : { pr : 'MB', sp : 'Newdale', ep : 'Shoal Lake' },
RDMB001607 : { pr : 'MB', sp : 'Shoal Lake', ep : 'Highway 264' },
RDMB001608 : { pr : 'MB', sp : 'Highway 264', ep : 'Highway 83' },
RDMB001609 : { pr : 'MB', sp : 'Highway 83', ep : 'Highway 359' },
RDMB001610 : { pr : 'MB', sp : 'Highway 359', ep : 'Russell' },
RDMB001611 : { pr : 'MB', sp : 'Russell', ep : 'Sask Border' },
RDMB001701 : { pr : 'MB', sp : 'Highway 9', ep : 'Teulon' },
RDMB001702 : { pr : 'MB', sp : 'Teulon', ep : 'Inwood' },
RDMB001703 : { pr : 'MB', sp : 'Inwood', ep : 'Highway 68' },
RDMB001704 : { pr : 'MB', sp : 'Highway 68', ep : 'Highway 329' },
RDMB001705 : { pr : 'MB', sp : 'Highway 329', ep : 'Highway 325' },
RDMB001801 : { pr : 'MB', sp : 'U.S. Border', ep : 'S. Jct Highway 3' },
RDMB001802 : { pr : 'MB', sp : 'N. Jct Highway 3', ep : 'Ninette' },
RDMB001803 : { pr : 'MB', sp : 'Ninette', ep : 'Highway 2' },
RDMB002001 : { pr : 'MB', sp : 'Ochre River', ep : 'Dauphin' },
RDMB002002 : { pr : 'MB', sp : 'Dauphin', ep : 'Highway 267' },
RDMB002003 : { pr : 'MB', sp : 'Highway 267', ep : 'N. Jct Highway 269' },
RDMB002004 : { pr : 'MB', sp : 'N. Jct Highway 269', ep : 'Winnipegosis' },
RDMB002005 : { pr : 'MB', sp : 'Winnipegosis', ep : 'Highway 271' },
RDMB002006 : { pr : 'MB', sp : 'Highway 271', ep : 'Camperville' },
RDMB002007 : { pr : 'MB', sp : 'Camperville', ep : 'Cowan' },
RDMB002101 : { pr : 'MB', sp : 'U.S. Border', ep : 'S. Jct Highway 3' },
RDMB002102 : { pr : 'MB', sp : 'N. Jct Highway 3', ep : 'Highway 23' },
RDMB002103 : { pr : 'MB', sp : 'Highway 23', ep : 'Highway 2' },
RDMB002104 : { pr : 'MB', sp : 'Highway 2', ep : 'Highway 1' },
RDMB002105 : { pr : 'MB', sp : 'Highway 1', ep : 'Highway 259' },
RDMB002106 : { pr : 'MB', sp : 'Highway 259', ep : 'Highway 355' },
RDMB002107 : { pr : 'MB', sp : 'Highway 355', ep : 'Shoal Lake' },
RDMB002108 : { pr : 'MB', sp : 'Shoal Lake', ep : 'Oakburn' },
RDMB002201 : { pr : 'MB', sp : 'Souris', ep : 'Highway 23' },
RDMB002301 : { pr : 'MB', sp : 'La Rochelle', ep : 'Morris' },
RDMB002302 : { pr : 'MB', sp : 'Morris', ep : 'Highway 336' },
RDMB002303 : { pr : 'MB', sp : 'Highway 336', ep : 'Highway 3' },
RDMB002304 : { pr : 'MB', sp : 'Highway 3', ep : 'Miami' },
RDMB002305 : { pr : 'MB', sp : 'Miami', ep : 'Highway 244' },
RDMB002306 : { pr : 'MB', sp : 'Highway 244', ep : 'Highway 34' },
RDMB002307 : { pr : 'MB', sp : 'Highway 34', ep : 'Highway 5' },
RDMB002308 : { pr : 'MB', sp : 'Highway 5', ep : 'Ninette' },
RDMB002309 : { pr : 'MB', sp : 'Ninette', ep : 'Highway 346' },
RDMB002310 : { pr : 'MB', sp : 'Highway 346', ep : 'S. Jct Highway 10' },
RDMB002311 : { pr : 'MB', sp : 'N. Jct Highway 10', ep : 'Elgin' },
RDMB002312 : { pr : 'MB', sp : 'Elgin', ep : 'Highway 21' },
RDMB002401 : { pr : 'MB', sp : 'Highway 10', ep : 'Highway 250' },
RDMB002402 : { pr : 'MB', sp : 'Highway 250', ep : 'Highway 21' },
RDMB002403 : { pr : 'MB', sp : 'Highway 21', ep : 'Miniota' },
RDMB002501 : { pr : 'MB', sp : 'Highway 10', ep : 'Wheatland' },
RDMB002601 : { pr : 'MB', sp : 'Highway 1', ep : 'W. Jct Highway 248' },
RDMB002602 : { pr : 'MB', sp : 'W. Jct Highway 248', ep : 'Portage la Prairie' },
RDMB003001 : { pr : 'MB', sp : 'U.S. Border', ep : 'Rosenfeld' },
RDMB003101 : { pr : 'MB', sp : 'U.S. Border', ep : 'Highway 3' },
RDMB003201 : { pr : 'MB', sp : 'U.S. Border', ep : 'Winkler' },
RDMB003401 : { pr : 'MB', sp : 'U.S. Border', ep : 'S. Jct Highway 3' },
RDMB003402 : { pr : 'MB', sp : 'N. Jct Highway 3', ep : 'Highway 23' },
RDMB003403 : { pr : 'MB', sp : 'Highway 23', ep : 'Holland' },
RDMB003404 : { pr : 'MB', sp : 'Holland', ep : 'Austin' },
RDMB003405 : { pr : 'MB', sp : 'Austin', ep : 'Gladstone' },
RDMB003901 : { pr : 'MB', sp : 'Ponton', ep : 'Highway 392' },
RDMB003902 : { pr : 'MB', sp : 'Highway 392', ep : 'Reed Lake' },
RDMB003903 : { pr : 'MB', sp : 'Reed Lake', ep : 'Highway 10' },
RDMB004101 : { pr : 'MB', sp : 'Highway 1', ep : 'Highway 571' },
RDMB004102 : { pr : 'MB', sp : 'Highway 571', ep : 'Highway 42' },
RDMB004103 : { pr : 'MB', sp : 'Highway 42', ep : 'Highway 16' },
RDMB004201 : { pr : 'MB', sp : 'Shoal Lake', ep : 'Highway 264' },
RDMB004202 : { pr : 'MB', sp : 'Highway 264', ep : ' Birtle' },
RDMB004203 : { pr : 'MB', sp : 'Birtle', ep : 'Highway 41' },
RDMB004401 : { pr : 'MB', sp : 'Lockport', ep : 'Tyndall' },
RDMB004402 : { pr : 'MB', sp : 'Tyndall', ep : ' Beausejour' },
RDMB004403 : { pr : 'MB', sp : 'Beausejour', ep : 'N. Jct Highway 11' },
RDMB004404 : { pr : 'MB', sp : 'S. Jct Highway 11', ep : 'Rennie' },
RDMB004405 : { pr : 'MB', sp : 'Rennie', ep : 'Highway 312' },
RDMB004406 : { pr : 'MB', sp : 'Highway 312', ep : 'Highway 1' },
RDMB004501 : { pr : 'MB', sp : 'Highway 10', ep : 'Highway 250' },
RDMB004502 : { pr : 'MB', sp : 'Highway 250', ep : 'Rosburn' },
RDMB004503 : { pr : 'MB', sp : 'Rosburn', ep : 'Russell' },
RDMB005001 : { pr : 'MB', sp : 'Highway 16', ep : 'Langruth' },
RDMB005002 : { pr : 'MB', sp : 'Langruth', ep : 'Amaranth' },
RDMB005003 : { pr : 'MB', sp : 'Amaranth', ep : 'Silver Ridge' },
RDMB005004 : { pr : 'MB', sp : 'Silver Ridge', ep : '18 Km W. of Alonsa' },
RDMB005005 : { pr : 'MB', sp : '18 Km W. of Alonsa', ep : 'McCreary' },
RDMB005201 : { pr : 'MB', sp : 'Highway 59', ep : 'Steinbach' },
RDMB005202 : { pr : 'MB', sp : 'Steinbach', ep : 'La Broquerie' },
RDMB005901 : { pr : 'MB', sp : 'U.S. Border', ep : 'La Rochelle' },
RDMB005902 : { pr : 'MB', sp : 'La Rochelle', ep : 'Highway 52' },
RDMB005903 : { pr : 'MB', sp : 'Highway 52', ep : 'Ile des Chenes' },
RDMB005904 : { pr : 'MB', sp : 'Ile des Chenes', ep : 'Winnipeg city limits' },
RDMB005906 : { pr : 'MB', sp : 'Winnipeg city limits', ep : 'Highway 213' },
RDMB005907 : { pr : 'MB', sp : 'Highway 213', ep : 'Highway 44' },
RDMB005908 : { pr : 'MB', sp : 'Highway 44', ep : 'Libau' },
RDMB005909 : { pr : 'MB', sp : 'Libau', ep : 'Highway 12' },
RDMB005910 : { pr : 'MB', sp : 'Highway 12', ep : 'Victoria Beach' },
RDMB006001 : { pr : 'MB', sp : 'Highway 6', ep : 'Easterville Jct.' },
RDMB006002 : { pr : 'MB', sp : 'Easterville Jct.', ep : 'Oscar Piont Area' },
RDMB006003 : { pr : 'MB', sp : 'Oscar Piont Area', ep : 'Highway 10' },
RDMB006701 : { pr : 'MB', sp : 'Highway 8', ep : 'Highway 9' },
RDMB006702 : { pr : 'MB', sp : 'Highway 8', ep : 'Highway 7' },
RDMB006703 : { pr : 'MB', sp : 'Highway 7', ep : 'Stonewall' },
RDMB006704 : { pr : 'MB', sp : 'Stonewall', ep : 'Highway 6' },
RDMB006801 : { pr : 'MB', sp : 'Highway 8', ep : 'Arborg' },
RDMB006802 : { pr : 'MB', sp : 'Arborg', ep : 'Highway 512' },
RDMB006803 : { pr : 'MB', sp : 'Highway 512', ep : 'Highway 6' },
RDMB006804 : { pr : 'MB', sp : 'Highway 6', ep : 'Highway 325' },
RDMB006805 : { pr : 'MB', sp : 'Highway 325', ep : 'The Narrows' },
RDMB006806 : { pr : 'MB', sp : 'The Narrows', ep : 'Shergrove' },
RDMB006807 : { pr : 'MB', sp : 'Shergrove', ep : 'Highway 5' },
RDMB007501 : { pr : 'MB', sp : 'St. Adolphe', ep : 'Winnipeg' },
RDMB007502 : { pr : 'MB', sp : 'Ste. Agathe', ep : 'St. Adolphe' },
RDMB007503 : { pr : 'MB', sp : 'Morris', ep : 'Ste. Agathe' },
RDMB007504 : { pr : 'MB', sp : 'Highway 14', ep : 'Morris' },
RDMB007505 : { pr : 'MB', sp : 'Highway 14', ep : 'U.S. Border' },
RDMB007701 : { pr : 'MB', sp : 'Highway 10', ep : 'Sask Border' },
RDMB008301 : { pr : 'MB', sp : 'U.S. Border', ep : 'S. Jct Highway 3' },
RDMB008302 : { pr : 'MB', sp : 'Melita', ep : 'Highway 345' },
RDMB008303 : { pr : 'MB', sp : 'Highway 345', ep : 'Pipestone' },
RDMB008304 : { pr : 'MB', sp : 'Pipestone', ep : 'Highway 255' },
RDMB008305 : { pr : 'MB', sp : 'Highway 255', ep : 'Highway 1' },
RDMB008306 : { pr : 'MB', sp : 'Highway 1', ep : 'Miniota' },
RDMB008307 : { pr : 'MB', sp : 'Miniota', ep : 'Highway 355' },
RDMB008308 : { pr : 'MB', sp : 'Highway 355', ep : ' Birtle' },
RDMB008309 : { pr : 'MB', sp : 'Birtle', ep : 'Highway 16' },
RDMB008310 : { pr : 'MB', sp : 'Russell', ep : 'Highway 264' },
RDMB008311 : { pr : 'MB', sp : 'Highway 264', ep : 'Roblin' },
RDMB008312 : { pr : 'MB', sp : 'Roblin', ep : 'San Clara' },
RDMB008313 : { pr : 'MB', sp : 'San Clara', ep : 'Highway 57' },
RDMB008314 : { pr : 'MB', sp : 'Highway 57', ep : 'Highway 49' },
RDMB008315 : { pr : 'MB', sp : 'Highway 49', ep : 'Swan River' },
RDMB008901 : { pr : 'MB', sp : 'Highway 12', ep : 'US border' },
RDMB010001 : { pr : 'MB', sp : 'Highway 1 East', ep : 'Highway 59' },
RDMB010002 : { pr : 'MB', sp : 'Highway 59', ep : 'Highway 75' },
RDMB010003 : { pr : 'MB', sp : 'Highway 75', ep : 'Highway 3' },
RDMB010004 : { pr : 'MB', sp : 'Highway 3', ep : 'Highway 1 West (Portage Ave.)' },
RDMB010101 : { pr : 'MB', sp : 'Highway 1 East', ep : 'Highway 15' },
RDMB010102 : { pr : 'MB', sp : 'Highway 1 West (Portage Ave.)', ep : 'Highway 221' },
RDMB010103 : { pr : 'MB', sp : 'Highway 221', ep : 'Highway 7' },
RDMB010104 : { pr : 'MB', sp : 'Highway 7', ep : 'Highway 8' },
RDMB010105 : { pr : 'MB', sp : 'Highway 8', ep : 'Highway 59' },
RDMB010106 : { pr : 'MB', sp : 'Highway 59', ep : 'Highway 15' },
RDMB011001 : { pr : 'MB', sp : 'Highway 457', ep : 'Highway 10' },
RDMB020001 : { pr : 'MB', sp : 'St. Adolphe', ep : 'Winnipeg city limits' },
RDMB020101 : { pr : 'MB', sp : 'Highway 59', ep : 'Highway 75' },
RDMB020102 : { pr : 'MB', sp : 'Vita', ep : 'Highway 59' },
RDMB020103 : { pr : 'MB', sp : 'Menisino', ep : 'Vita' },
RDMB020104 : { pr : 'MB', sp : 'Highway 89', ep : 'Menisino' },
RDMB020105 : { pr : 'MB', sp : 'Highway 306', ep : 'Highway 32' },
RDMB020106 : { pr : 'MB', sp : 'S. Jct Highway 30', ep : 'Highway 306' },
RDMB020107 : { pr : 'MB', sp : 'Highway 75', ep : 'N. Jct Highway 30' },
RDMB020401 : { pr : 'MB', sp : 'Winnipeg city limits', ep : 'Lockport' },
RDMB021301 : { pr : 'MB', sp : 'Highway 59', ep : 'Highway 206' },
RDMB021302 : { pr : 'MB', sp : 'Highway 206', ep : 'Highway 12' },
RDMB022101 : { pr : 'MB', sp : 'Winnipeg city limits', ep : 'Highway 101' },
RDMB022102 : { pr : 'MB', sp : 'Highway 101', ep : 'Highway 236' },
RDMB022401 : { pr : 'MB', sp : 'Highway 325', ep : 'Fisher Bay' },
RDMB023601 : { pr : 'MB', sp : 'Highway 6', ep : 'Stonewall' },
RDMB023602 : { pr : 'MB', sp : 'Stonewall', ep : ' Balmoral' },
RDMB023603 : { pr : 'MB', sp : 'Balmoral', ep : 'Highway 7' },
RDMB024101 : { pr : 'MB', sp : 'Highway 100', ep : '10 km west' },
RDMB024401 : { pr : 'MB', sp : 'Manitou', ep : 'Highway 23' },
RDMB024402 : { pr : 'MB', sp : 'Highway 23', ep : 'S. Jct Highway 245' },
RDMB024403 : { pr : 'MB', sp : 'S. Jct Highway 245', ep : 'Highway 2' },
RDMB027601 : { pr : 'MB', sp : 'Ste. Rose', ep : 'Toutes Aides' },
RDMB027602 : { pr : 'MB', sp : 'Toutes Aides', ep : 'Waterhen' },
RDMB027603 : { pr : 'MB', sp : 'Waterhen', ep : 'Skownan' },
RDMB027801 : { pr : 'MB', sp : 'Silver Ridge', ep : 'Shergrove' },
RDMB028001 : { pr : 'MB', sp : 'Highway 391', ep : 'Split Lake Area' },
RDMB028002 : { pr : 'MB', sp : 'Split Lake Area', ep : 'Highway 290' },
RDMB028003 : { pr : 'MB', sp : 'Highway 290', ep : 'Gillam, Limestone & Fox Lake First Nation' },
RDMB028301 : { pr : 'MB', sp : 'The Pas', ep : 'Sask Border' },
RDMB029001 : { pr : 'MB', sp : 'Highway 280', ep : 'Limestone & Fox Lake First Nation' },
RDMB030401 : { pr : 'MB', sp : 'Highway 59', ep : 'Powerview' },
RDMB030402 : { pr : 'MB', sp : 'Powerview', ep : 'Manigotogan' },
RDMB030403 : { pr : 'MB', sp : 'Manigotagan', ep : ' Bissett' },
RDMB030404 : { pr : 'MB', sp : 'Bissett', ep : 'Highway 314' },
RDMB031301 : { pr : 'MB', sp : 'Lac Du Bonnet', ep : 'Highway 315' },
RDMB031401 : { pr : 'MB', sp : 'Highway 304', ep : 'Highway 315' },
RDMB031501 : { pr : 'MB', sp : 'Highway 313', ep : 'Highway 314' },
RDMB031701 : { pr : 'MB', sp : 'Highway 59', ep : 'Highway 12' },
RDMB031702 : { pr : 'MB', sp : 'Highway 12', ep : 'Lac Du Bonnet' },
RDMB032701 : { pr : 'MB', sp : 'Highway 60', ep : 'Easterville' },
RDMB037301 : { pr : 'MB', sp : 'Highway 6', ep : 'Jenpeg' },
RDMB037302 : { pr : 'MB', sp : 'Jenpeg', ep : 'Norway House' },
RDMB037401 : { pr : 'MB', sp : 'Highway 373', ep : 'Cross Lake' },
RDMB039101 : { pr : 'MB', sp : 'Highway 6', ep : 'Nelson House Jct.' },
RDMB039102 : { pr : 'MB', sp : 'Nelson House Jct.', ep : 'Suwannee River' },
RDMB039103 : { pr : 'MB', sp : 'Suwannee River', ep : 'Leaf Rapids' },
RDMB039104 : { pr : 'MB', sp : 'Leaf Rapids', ep : 'Lynn Lake' },
RDMB039201 : { pr : 'MB', sp : 'Highway 39', ep : 'Snow Lake' },
RDNB000101 : { pr : 'NB', sp : 'St. Stephen', ep : 'Saint John' },
RDNB000102 : { pr : 'NB', sp : 'Saint John', ep : 'Sussex' },
RDNB000103 : { pr : 'NB', sp : 'Sussex', ep : 'Riverglade' },
RDNB000201 : { pr : 'NB', sp : 'Quebec', ep : 'Perth-Andover' },
RDNB000202 : { pr : 'NB', sp : 'Perth-Andover', ep : 'Woodstock' },
RDNB000203 : { pr : 'NB', sp : 'Woodstock', ep : 'Fredericton' },
RDNB000204 : { pr : 'NB', sp : 'Fredericton', ep : 'Rte#10 (Coles Is.)' },
RDNB000205 : { pr : 'NB', sp : 'Rte#10 (Coles Is.)', ep : 'Moncton' },
RDNB000206 : { pr : 'NB', sp : 'Moncton', ep : 'Nova Scotia' },
RDNB000301 : { pr : 'NB', sp : 'Longs Creek', ep : 'St. Stephen' },
RDNB000401 : { pr : 'NB', sp : 'Thomaston Corner', ep : 'Maine' },
RDNB000701 : { pr : 'NB', sp : 'Fredericton', ep : 'Saint John' },
RDNB000801 : { pr : 'NB', sp : 'Fredericton', ep : 'Miramichi' },
RDNB000802 : { pr : 'NB', sp : 'Miramichi', ep : 'Bathurst' },
RDNB001001 : { pr : 'NB', sp : 'Fredericton', ep : 'Coles Island' },
RDNB001002 : { pr : 'NB', sp : 'Coles Island', ep : 'Sussex' },
RDNB001101 : { pr : 'NB', sp : 'Campbellton', ep : 'Bathurst' },
RDNB001102 : { pr : 'NB', sp : 'Bathurst', ep : 'Tracadie' },
RDNB001103 : { pr : 'NB', sp : 'Tracadie', ep : 'Miramichi' },
RDNB001104 : { pr : 'NB', sp : 'Miramichi', ep : 'Shediac' },
RDNB001501 : { pr : 'NB', sp : 'Moncton', ep : 'Shediac' },
RDNB001502 : { pr : 'NB', sp : 'Shediac', ep : 'Port Elgin' },
RDNB001601 : { pr : 'NB', sp : 'Aulac', ep : 'Cape Tormentine' },
RDNB001701 : { pr : 'NB', sp : 'St. Leonard', ep : 'St. Jean Baptiste' },
RDNB001702 : { pr : 'NB', sp : 'St. Jean Baptiste', ep : 'Campbellton' },
RDNB009501 : { pr : 'NB', sp : 'Woodstock', ep : 'Maine' },
RDNB010801 : { pr : 'NB', sp : 'Plaster Rock', ep : 'Renous' },
RDNB011601 : { pr : 'NB', sp : 'Chipman', ep : 'Rexton' },
RDNB012601 : { pr : 'NB', sp : 'Moncton', ep : 'Miramichi' },
RDNF000201 : { pr : 'NL', sp : 'New Gower Street', ep : 'Legion Road Kelligrews' },
RDNF001001 : { pr : 'NL', sp : 'St. John\'s', ep : 'Peter\'s River' },
RDNF006001 : { pr : 'NL', sp : 'Conception Bay South', ep : 'South River' },
RDNF007001 : { pr : 'NL', sp : 'Roaches Line', ep : 'Old Perlican' },
RDNF007501 : { pr : 'NL', sp : 'Veterans Memorial Drive', ep : ' ' },
RDNF008001 : { pr : 'NL', sp : 'Whitbourne', ep : 'Old Perlican' },
RDNF009001 : { pr : 'NL', sp : 'Salmonier Line', ep : 'Peter\'s River' },
RDNF009201 : { pr : 'NL', sp : 'Branch', ep : 'St.Catherine\'s' },
RDNF010001 : { pr : 'NL', sp : 'Whitbourne', ep : 'Branch' },
RDNF021001 : { pr : 'NL', sp : 'Goobies', ep : 'Swift Current' },
RDNF021002 : { pr : 'NL', sp : 'Swift Current', ep : 'Marystown' },
RDNF021003 : { pr : 'NL', sp : 'Marystown', ep : 'Grand Bank (via Garnish)' },
RDNF022001 : { pr : 'NL', sp : 'Grand Bank', ep : 'Burin (via Lord\'s Cove)' },
RDNF023001 : { pr : 'NL', sp : 'Clarenville', ep : 'Bonavista' },
RDNF032001 : { pr : 'NL', sp : 'Gambo', ep : 'Wesleyville' },
RDNF033001 : { pr : 'NL', sp : 'Gander', ep : 'Wesleyville' },
RDNF034001 : { pr : 'NL', sp : 'TCH', ep : 'Twillingate' },
RDNF035001 : { pr : 'NL', sp : 'TCH', ep : 'Leading Tickles' },
RDNF036001 : { pr : 'NL', sp : 'TCH', ep : 'Pool\'s Cove Intersection' },
RDNF036002 : { pr : 'NL', sp : 'Pool\'s Cove Intersection', ep : 'Harbour Breton' },
RDNF037001 : { pr : 'NL', sp : 'Badger', ep : 'Buchans' },
RDNF038001 : { pr : 'NL', sp : 'Triton', ep : 'Robert\'s Arm Area' },
RDNF039001 : { pr : 'NL', sp : 'Springdale Road', ep : ' ' },
RDNF041001 : { pr : 'NL', sp : 'Baie Verte Peninsula', ep : ' ' },
RDNF043001 : { pr : 'NL', sp : 'Deer Lake', ep : 'Gros Morne National Park' },
RDNF043002 : { pr : 'NL', sp : 'Gros Morne National Park', ep : 'Plum Point' },
RDNF043003 : { pr : 'NL', sp : 'Plum Point', ep : 'St. Anthony' },
RDNF043201 : { pr : 'NL', sp : 'Plum Point', ep : 'Roddickton Intersection' },
RDNF043202 : { pr : 'NL', sp : 'Roddickton Intersection', ep : 'St. Anthony Airport' },
RDNF046001 : { pr : 'NL', sp : 'Stephenville Access Road', ep : ' ' },
RDNF048001 : { pr : 'NL', sp : 'Burgeo Highway', ep : ' ' },
RDNF050001 : { pr : 'NL', sp : 'Quebec Border', ep : 'Wabush' },
RDNF050002 : { pr : 'NL', sp : 'Wabush', ep : 'Churchill Falls' },
RDNF050003 : { pr : 'NL', sp : 'Churchill Falls', ep : 'Happy Valley-Goose Bay' },
RDNF051001 : { pr : 'NL', sp : 'Quebec Border', ep : 'Red Bay' },
RDNF051002 : { pr : 'NL', sp : 'Red Bay', ep : 'Lodge Bay' },
RDNF051003 : { pr : 'NL', sp : 'Lodge Bay', ep : 'Port Hope Simpson' },
RDNF051004 : { pr : 'NL', sp : 'Port Hope Simpson', ep : 'Cartwright' },
RDNF051301 : { pr : 'NL', sp : 'St. Lewis Access Road', ep : ' ' },
RDNF051401 : { pr : 'NL', sp : 'Charlottetown Access Road', ep : ' ' },
RDNF051402 : { pr : 'NL', sp : 'Charlottetown', ep : 'Pinsent\'s Arm' },
RDNF052001 : { pr : 'NL', sp : 'Happy Valley-Goose Bay', ep : 'Northwest River' },
RDNF0TCH01 : { pr : 'NL', sp : 'St. John\'s', ep : 'Salmonier Line' },
RDNF0TCH02 : { pr : 'NL', sp : 'Salmonier Line', ep : 'Whitbourne' },
RDNF0TCH03 : { pr : 'NL', sp : 'Whitbourne', ep : 'Port Blandford' },
RDNF0TCH04 : { pr : 'NL', sp : 'Terra Nova National Park', ep : ' ' },
RDNF0TCH05 : { pr : 'NL', sp : 'Glovertown', ep : 'Gander' },
RDNF0TCH06 : { pr : 'NL', sp : 'Gander', ep : 'Grand Falls-Windsor' },
RDNF0TCH07 : { pr : 'NL', sp : 'Grand Falls-Windsor', ep : 'Hampden Jct' },
RDNF0TCH08 : { pr : 'NL', sp : 'Hampden Jct', ep : 'Deer Lake' },
RDNF0TCH09 : { pr : 'NL', sp : 'Deer Lake', ep : 'Corner Brook' },
RDNF0TCH10 : { pr : 'NL', sp : 'Corner Brook', ep : 'Stephenville Access' },
RDNF0TCH11 : { pr : 'NL', sp : 'Stephenville Access', ep : 'Port aux Basques' },
RDNS000101 : { pr : 'NS', sp : 'Coldbrook', ep : 'Wilmot' },
RDNS000102 : { pr : 'NS', sp : 'Wilmot', ep : 'Bridgetown' },
RDNS000103 : { pr : 'NS', sp : 'Bridgetown', ep : 'Bear River Bridge' },
RDNS000201 : { pr : 'NS', sp : 'Amherst', ep : 'Springhill' },
RDNS000202 : { pr : 'NS', sp : 'Springhill', ep : 'Parrsboro' },
RDNS000203 : { pr : 'NS', sp : 'Parrsboro', ep : 'Lower Five Islands' },
RDNS000204 : { pr : 'NS', sp : 'Lower Five Islands', ep : 'Glenholme' },
RDNS000205 : { pr : 'NS', sp : 'Glenholme', ep : 'Onslow' },
RDNS000206 : { pr : 'NS', sp : 'Truro', ep : 'Shubenacadie' },
RDNS000207 : { pr : 'NS', sp : 'Shubenacadie', ep : 'Enfield' },
RDNS000208 : { pr : 'NS', sp : 'Enfield', ep : 'Fall River' },
RDNS000301 : { pr : 'NS', sp : 'Hwy 103 at Exit 18', ep : 'Summerville Centre' },
RDNS000302 : { pr : 'NS', sp : 'Upper Tantallon', ep : 'Hubbards' },
RDNS000401 : { pr : 'NS', sp : 'Thompson Station', ep : 'Folly Lake' },
RDNS000402 : { pr : 'NS', sp : 'Folly Lake', ep : 'Glenholme' },
RDNS000403 : { pr : 'NS', sp : 'Truro', ep : 'Mount Thom' },
RDNS000404 : { pr : 'NS', sp : 'Port Hastings', ep : 'Port Hawkesbury' },
RDNS000405 : { pr : 'NS', sp : 'St Peter\'s', ep : 'Irish Cove' },
RDNS000406 : { pr : 'NS', sp : 'Irish Cove', ep : 'Sydney' },
RDNS000407 : { pr : 'NS', sp : 'Sydney', ep : 'Glace Bay' },
RDNS000601 : { pr : 'NS', sp : 'Amherst', ep : 'Port Howe' },
RDNS000602 : { pr : 'NS', sp : 'Port Howe', ep : 'Upper Malagash' },
RDNS000603 : { pr : 'NS', sp : 'Upper Malagash', ep : 'Brule' },
RDNS000604 : { pr : 'NS', sp : 'Brule', ep : 'Pictou Rotary' },
RDNS000701 : { pr : 'NS', sp : 'Burnside Industrial Park', ep : 'Bedford Bypass' },
RDNS000702 : { pr : 'NS', sp : 'Westphal', ep : 'Salmon River Bridge' },
RDNS000703 : { pr : 'NS', sp : 'Salmon River Bridge', ep : 'Pleasant Harbour' },
RDNS000704 : { pr : 'NS', sp : 'Pleasant Harbour', ep : 'Ecum Secum' },
RDNS000705 : { pr : 'NS', sp : 'Ecum Secum', ep : 'Sherbrooke' },
RDNS000706 : { pr : 'NS', sp : 'Sherbrooke', ep : 'Lochaber' },
RDNS000707 : { pr : 'NS', sp : 'Lochaber', ep : 'Antigonish' },
RDNS000801 : { pr : 'NS', sp : 'Liverpool', ep : 'Caledonia' },
RDNS000802 : { pr : 'NS', sp : 'Caledonia', ep : 'Maitland Bridge' },
RDNS000803 : { pr : 'NS', sp : 'Maitland Bridge', ep : 'Annapolis Royal' },
RDNS001001 : { pr : 'NS', sp : 'Bridgewater', ep : 'Cherryfield' },
RDNS001002 : { pr : 'NS', sp : 'Cherryfield', ep : 'Middleton' },
RDNS001201 : { pr : 'NS', sp : 'Chester Basin', ep : 'Sweet Road' },
RDNS001202 : { pr : 'NS', sp : 'Sweet Road', ep : 'Kentville' },
RDNS001401 : { pr : 'NS', sp : 'Chester', ep : 'Hants County Line' },
RDNS001402 : { pr : 'NS', sp : 'Hants County Line', ep : 'Windsor' },
RDNS001403 : { pr : 'NS', sp : 'Windsor', ep : 'Brooklyn' },
RDNS001404 : { pr : 'NS', sp : 'Brooklyn', ep : 'Milford' },
RDNS001601 : { pr : 'NS', sp : 'Canso Town', ep : 'Village of Guysborough' },
RDNS001602 : { pr : 'NS', sp : 'Village of Guysborough', ep : 'Monastery' },
RDNS001901 : { pr : 'NS', sp : 'Port Hastings', ep : 'Mabou' },
RDNS001902 : { pr : 'NS', sp : 'Mabou', ep : 'Margaree Forks' },
RDNS002101 : { pr : 'NS', sp : 'Main Avenue Fairview', ep : 'Old Sambro Road' },
RDNS003001 : { pr : 'NS', sp : 'Hwy 105 at Exit 7', ep : 'Margaree Forks' },
RDNS003002 : { pr : 'NS', sp : 'Margaree Forks', ep : 'Cheticamp' },
RDNS003003 : { pr : 'NS', sp : 'Cheticamp', ep : 'Pleasant Bay' },
RDNS003004 : { pr : 'NS', sp : 'Pleasant Bay', ep : 'Big Intervale' },
RDNS003005 : { pr : 'NS', sp : 'Big Intervale', ep : 'South Harbour' },
RDNS003006 : { pr : 'NS', sp : 'Neils Harbour', ep : 'South Harbour' },
RDNS003007 : { pr : 'NS', sp : 'Ingonish', ep : 'Neils Harbour' },
RDNS003008 : { pr : 'NS', sp : 'St Anns', ep : 'Ingonish' },
RDNS010101 : { pr : 'NS', sp : 'Bedford', ep : 'Mount Uniacke' },
RDNS010102 : { pr : 'NS', sp : 'Mount Uniacke', ep : 'Hantsport Interchange' },
RDNS010103 : { pr : 'NS', sp : 'Hantsport Interchange', ep : 'Kentville' },
RDNS010104 : { pr : 'NS', sp : 'Kentville', ep : 'Marshall Interchange' },
RDNS010105 : { pr : 'NS', sp : 'Marshall Interchange', ep : 'Bridgetown' },
RDNS010106 : { pr : 'NS', sp : 'Bridgetown', ep : 'Bear River' },
RDNS010107 : { pr : 'NS', sp : 'Bear River', ep : 'Weymouth' },
RDNS010108 : { pr : 'NS', sp : 'Weymouth', ep : 'Saulnierville' },
RDNS010109 : { pr : 'NS', sp : 'Saulnierville', ep : 'Beaver River Road' },
RDNS010110 : { pr : 'NS', sp : 'Beaver River Road', ep : 'Yarmouth' },
RDNS010201 : { pr : 'NS', sp : 'Halifax', ep : 'Kearney Lake' },
RDNS010202 : { pr : 'NS', sp : 'Kearney Lake', ep : 'Bedford' },
RDNS010203 : { pr : 'NS', sp : 'Bedford', ep : 'Fall River' },
RDNS010204 : { pr : 'NS', sp : 'Fall River', ep : 'Enfield' },
RDNS010205 : { pr : 'NS', sp : 'Enfield', ep : 'Shubenacadie' },
RDNS010206 : { pr : 'NS', sp : 'Shubenacadie', ep : 'Truro' },
RDNS010301 : { pr : 'NS', sp : 'Halifax', ep : 'Hubbards' },
RDNS010302 : { pr : 'NS', sp : 'Hubbards', ep : 'Martins River' },
RDNS010303 : { pr : 'NS', sp : 'Martins River', ep : 'Danesville' },
RDNS010304 : { pr : 'NS', sp : 'Danesville', ep : 'Granite Village' },
RDNS010305 : { pr : 'NS', sp : 'Granite Village', ep : 'Sable River' },
RDNS010306 : { pr : 'NS', sp : 'Sable River', ep : 'Barrington' },
RDNS010307 : { pr : 'NS', sp : 'Barrington', ep : 'Yarmouth' },
RDNS010401 : { pr : 'NS', sp : 'NB Border', ep : 'Amherst' },
RDNS010402 : { pr : 'NS', sp : 'Amherst', ep : 'Oxford' },
RDNS010403 : { pr : 'NS', sp : 'Oxford', ep : 'Cobequid Toll Booth' },
RDNS010404 : { pr : 'NS', sp : 'Cobequid Toll Booth', ep : 'Glenholme' },
RDNS010405 : { pr : 'NS', sp : 'Glenholme', ep : 'Truro' },
RDNS010406 : { pr : 'NS', sp : 'Truro', ep : 'Mount Thom' },
RDNS010407 : { pr : 'NS', sp : 'Mount Thom', ep : 'New Glasgow' },
RDNS010408 : { pr : 'NS', sp : 'New Glasgow', ep : 'Marshy Hope' },
RDNS010409 : { pr : 'NS', sp : 'Marshy Hope', ep : 'Antigonish' },
RDNS010410 : { pr : 'NS', sp : 'Antigonish', ep : 'Monastery' },
RDNS010411 : { pr : 'NS', sp : 'Monastery', ep : 'W Canso Causeway' },
RDNS010412 : { pr : 'NS', sp : 'W Canso Causeway', ep : 'Port Hastings' },
RDNS010413 : { pr : 'NS', sp : 'Port Hawkesbury', ep : 'St Peter\'s' },
RDNS010501 : { pr : 'NS', sp : 'Port Hastings', ep : 'Whycocomagh' },
RDNS010502 : { pr : 'NS', sp : 'Whycocomagh', ep : 'Bucklaw' },
RDNS010503 : { pr : 'NS', sp : 'Bucklaw', ep : 'Baddeck' },
RDNS010504 : { pr : 'NS', sp : 'Baddeck', ep : 'Dalem Lake' },
RDNS010505 : { pr : 'NS', sp : 'Dalem Lake', ep : 'North Sydney' },
RDNS010601 : { pr : 'NS', sp : 'Pictou Rotary', ep : 'Hwy 104 at Exit 22' },
RDNS010701 : { pr : 'NS', sp : 'Burnside Industrial Park', ep : 'Westphal' },
RDNS010702 : { pr : 'NS', sp : 'Westphal', ep : 'Musquodoboit Harbour' },
RDNS011101 : { pr : 'NS', sp : 'MacKay Bridge', ep : 'Woodside' },
RDNS011801 : { pr : 'NS', sp : 'Mic Mac Boulevard', ep : 'Hwy 102' },
RDNS012501 : { pr : 'NS', sp : 'Hwy 105 at Exit 20', ep : 'Grand Lake Road' },
RDNS021701 : { pr : 'NS', sp : 'Digby', ep : 'East Ferry' },
RDNS022301 : { pr : 'NS', sp : 'Hwy 105 at Exit 6', ep : 'Grand Narrows' },
RDNS022302 : { pr : 'NS', sp : 'Grand Narrows', ep : 'Leitches Creek' },
RDNS025201 : { pr : 'NS', sp : 'Whycocomagh', ep : 'Brook Village' },
RDNS025202 : { pr : 'NS', sp : 'Brook Village', ep : 'Mabou' },
RDNS028901 : { pr : 'NS', sp : 'Brookfield', ep : 'Sheepherders Junction' },
RDNS030501 : { pr : 'NS', sp : 'Sydney Mines', ep : 'Sydney River' },
RDNS030601 : { pr : 'NS', sp : 'Spryfield', ep : 'Sambro' },
RDNS031101 : { pr : 'NS', sp : 'Onslow', ep : 'Tatamagouche' },
RDNS033301 : { pr : 'NS', sp : 'End of Bay Road', ep : 'Tantallon' },
RDNS034901 : { pr : 'NS', sp : 'Spryfield', ep : 'Sambro' },
RDNS037401 : { pr : 'NS', sp : 'Sheet Harbour', ep : 'Trafalgar' },
RDNS037402 : { pr : 'NS', sp : 'Trafalgar', ep : 'New Glasgow' },
RDNS039501 : { pr : 'NS', sp : 'Whycocomagh', ep : 'South Lake Ainslie' },
RDNS039502 : { pr : 'NS', sp : 'South Lake Ainslie', ep : 'Southwest Margaree' },
RDNT000101 : { pr : 'NT', sp : 'Alberta border', ep : 'Enterprise' },
RDNT000102 : { pr : 'NT', sp : 'Enterprise', ep : 'Junction Hwy 3' },
RDNT000103 : { pr : 'NT', sp : 'Junction Hwy 3', ep : 'Junction Hwy 7' },
RDNT000104 : { pr : 'NT', sp : 'Junction Hwy 7', ep : 'Fort Simpson' },
RDNT000105 : { pr : 'NT', sp : 'Fort Simpson', ep : 'N\'Dulee/Camsell Bend Ice Crossing' },
RDNT000106 : { pr : 'NT', sp : 'N\'Dulee/Camsell Bend Ice Crossing', ep : 'Wrigley' },
RDNT000107 : { pr : 'NT', sp : 'Wrigley', ep : 'Tulita' },
RDNT000108 : { pr : 'NT', sp : 'Tulita', ep : 'Norman Wells' },
RDNT000109 : { pr : 'NT', sp : 'Norman Wells', ep : 'Fort Good Hope' },
RDNT000110 : { pr : 'NT', sp : 'Fort Good Hope', ep : 'Colville Lake' },
RDNT000111 : { pr : 'NT', sp : 'Trout Lake Winter Road', ep : ' ' },
RDNT000112 : { pr : 'NT', sp : 'Jean Marie Access Road', ep : ' ' },
RDNT000113 : { pr : 'NT', sp : 'Liard River Ice/Ferry Crossing near Fort Simpson', ep : ' ' },
RDNT000114 : { pr : 'NT', sp : 'N\'Dulee/Camsell Bend Ice/Ferry Crossing near Wrigley', ep : ' ' },
RDNT000115 : { pr : 'NT', sp : 'Tulita', ep : 'Deline' },
RDNT000201 : { pr : 'NT', sp : 'Enterprise', ep : 'Hay River' },
RDNT000301 : { pr : 'NT', sp : 'Junction Hwy 1', ep : 'Fort Providence' },
RDNT000302 : { pr : 'NT', sp : 'Fort Providence', ep : 'Behchoko' },
RDNT000303 : { pr : 'NT', sp : 'Behchoko', ep : 'Yellowknife' },
RDNT000304 : { pr : 'NT', sp : 'Mackenzie River Ice Crossing near Fort Providence', ep : ' ' },
RDNT000305 : { pr : 'NT', sp : 'Mackenzie River Ferry near Fort Providence', ep : ' ' },
RDNT000306 : { pr : 'NT', sp : 'Gameti Winter Road Junction (km 68)', ep : 'Gameti' },
RDNT000307 : { pr : 'NT', sp : 'Whati Winter Road Yellowknife Hwy (km 237)', ep : 'Whati' },
RDNT000401 : { pr : 'NT', sp : 'Ingraham Trail', ep : ' ' },
RDNT000402 : { pr : 'NT', sp : 'Dettah Ice Road Yellowknife', ep : 'Dettah' },
RDNT000501 : { pr : 'NT', sp : 'Junction Hwy 2', ep : 'Junction Hwy 6' },
RDNT000502 : { pr : 'NT', sp : 'Junction Hwy 6', ep : 'Fort Smith' },
RDNT000601 : { pr : 'NT', sp : 'Junction Hwy 5', ep : 'Fort Resolution' },
RDNT000701 : { pr : 'NT', sp : 'Alberta border', ep : 'Fort Liard' },
RDNT000702 : { pr : 'NT', sp : 'Fort Liard', ep : 'Junction Hwy 1' },
RDNT000703 : { pr : 'NT', sp : 'Nahanni Butte Winter Road', ep : ' ' },
RDNT000801 : { pr : 'NT', sp : 'Yukon Border', ep : 'Fort McPherson' },
RDNT000802 : { pr : 'NT', sp : 'Fort McPherson', ep : 'Tsiigehtchic' },
RDNT000803 : { pr : 'NT', sp : 'Tsiigehtchic', ep : 'Inuvik' },
RDNT000804 : { pr : 'NT', sp : 'Inuvik', ep : 'Tuktoyatuk' },
RDNT000805 : { pr : 'NT', sp : 'Aklavik Ice Road Junction (km 34)', ep : 'Aklavik' },
RDNT000806 : { pr : 'NT', sp : 'Peel River Ice/Ferry Crossing near Fort McPherson', ep : ' ' },
RDNT000807 : { pr : 'NT', sp : 'Arctic Red River Ice/Ferry Crossing near Tsiigehtchic', ep : ' ' },
RDNT000808 : { pr : 'NT', sp : 'Mackenzie River Ice Crossing near Tsiigehtchic', ep : ' ' },
RDON000301 : { pr : 'ON', sp : 'Windsor', ep : 'Leamington' },
RDON000302 : { pr : 'ON', sp : 'Talbotville Royal', ep : 'St. Thomas' },
RDON000303 : { pr : 'ON', sp : 'St. Thomas', ep : 'Simcoe' },
RDON000304 : { pr : 'ON', sp : 'Simcoe', ep : '5 km W. of Winger' },
RDON000305 : { pr : 'ON', sp : '5 km W. of Winger', ep : 'QEW at Fort Erie' },
RDON000401 : { pr : 'ON', sp : 'Clinton', ep : 'South Huron' },
RDON000402 : { pr : 'ON', sp : 'South Huron', ep : 'London' },
RDON000403 : { pr : 'ON', sp : 'Scottsville', ep : 'Talbotville Royal' },
RDON000404 : { pr : 'ON', sp : 'Walkerton', ep : 'Durham' },
RDON000405 : { pr : 'ON', sp : 'Durham', ep : 'Flesherton' },
RDON000601 : { pr : 'ON', sp : 'Espanola', ep : 'Little Current' },
RDON000602 : { pr : 'ON', sp : 'Little Current', ep : 'South Baymouth' },
RDON000603 : { pr : 'ON', sp : 'Tobermory', ep : 'Springmount' },
RDON000604 : { pr : 'ON', sp : 'Owen Sound', ep : 'Mount Forest' },
RDON000605 : { pr : 'ON', sp : 'Mount Forest', ep : 'Fergus' },
RDON000606 : { pr : 'ON', sp : 'Fergus', ep : 'Highway 401' },
RDON000607 : { pr : 'ON', sp : 'Morriston', ep : 'Highway 403' },
RDON000608 : { pr : 'ON', sp : 'Hamilton', ep : '5 km N. of Caledonia' },
RDON000609 : { pr : 'ON', sp : '5 km N. of Caledonia', ep : 'Port Dover' },
RDON000701 : { pr : 'ON', sp : 'Elginfield', ep : '5 km E. of St. Marys' },
RDON000702 : { pr : 'ON', sp : 'Stratford', ep : 'Kitchener' },
RDON000703 : { pr : 'ON', sp : 'Kitchener', ep : 'Highway 410' },
RDON000704 : { pr : 'ON', sp : 'Vinegar Hill', ep : 'Locust Hill' },
RDON000705 : { pr : 'ON', sp : 'Locust Hill', ep : 'Brooklin' },
RDON000706 : { pr : 'ON', sp : 'Highway 12', ep : 'Reaboro' },
RDON000707 : { pr : 'ON', sp : 'Reaboro', ep : 'Kendry' },
RDON000708 : { pr : 'ON', sp : 'Peterborough', ep : 'Highway 28' },
RDON000709 : { pr : 'ON', sp : 'Highway 28', ep : 'Madoc' },
RDON000710 : { pr : 'ON', sp : 'Madoc', ep : 'Perth' },
RDON000711 : { pr : 'ON', sp : 'Perth', ep : 'Highway 417' },
RDON000801 : { pr : 'ON', sp : 'Goderich', ep : 'Seaforth' },
RDON000802 : { pr : 'ON', sp : 'Seaforth', ep : 'Stratford' },
RDON000803 : { pr : 'ON', sp : 'Kitchener', ep : 'Preston' },
RDON000804 : { pr : 'ON', sp : 'Preston', ep : 'Hamilton' },
RDON000901 : { pr : 'ON', sp : 'Kincardine', ep : 'Walkerton' },
RDON000902 : { pr : 'ON', sp : 'Walkerton', ep : 'Harriston' },
RDON000903 : { pr : 'ON', sp : 'Orangeville', ep : '5 km E. of Mono Mills' },
RDON000904 : { pr : 'ON', sp : '5 km E. of Mono Mills', ep : 'Highway 400' },
RDON001001 : { pr : 'ON', sp : 'Orangeville', ep : 'Highway 7 at Brampton' },
RDON001002 : { pr : 'ON', sp : 'Primrose', ep : 'Orangeville' },
RDON001003 : { pr : 'ON', sp : 'Flesherton', ep : 'Shelburne' },
RDON001004 : { pr : 'ON', sp : 'Chatsworth', ep : 'Flesherton' },
RDON001101 : { pr : 'ON', sp : 'Rainy River', ep : 'Emo' },
RDON001102 : { pr : 'ON', sp : 'Emo', ep : 'Fort Frances' },
RDON001103 : { pr : 'ON', sp : 'Fort Frances', ep : 'Horse Collar Junction' },
RDON001104 : { pr : 'ON', sp : 'Horse Collar Junction', ep : 'Quetico' },
RDON001105 : { pr : 'ON', sp : 'Quetico', ep : 'Shabaqua Corners' },
RDON001106 : { pr : 'ON', sp : 'Shabaqua Corners', ep : 'Kakabeka Falls' },
RDON001107 : { pr : 'ON', sp : 'Kakabeka Falls', ep : 'Thunder Bay' },
RDON001108 : { pr : 'ON', sp : 'Thunder Bay', ep : 'Highway 527' },
RDON001109 : { pr : 'ON', sp : 'Highway 527', ep : 'Highway 587' },
RDON001110 : { pr : 'ON', sp : 'Highway 587', ep : 'Nipigon' },
RDON001111 : { pr : 'ON', sp : 'Nipigon', ep : 'East McKirdy' },
RDON001112 : { pr : 'ON', sp : 'East McKirdy', ep : 'Nezah' },
RDON001113 : { pr : 'ON', sp : 'Nezah', ep : 'Margo Lake' },
RDON001114 : { pr : 'ON', sp : 'Margo Lake', ep : 'Pagwachuan River' },
RDON001115 : { pr : 'ON', sp : 'Pagwachuan River', ep : 'Calstock' },
RDON001116 : { pr : 'ON', sp : 'Calstock', ep : 'Mattice' },
RDON001117 : { pr : 'ON', sp : 'Mattice', ep : 'Smooth Rock Falls' },
RDON001118 : { pr : 'ON', sp : 'Smooth Rock Falls', ep : 'Driftwood' },
RDON001119 : { pr : 'ON', sp : 'Driftwood', ep : 'Cochrane' },
RDON001120 : { pr : 'ON', sp : 'Cochrane', ep : 'Anthony' },
RDON001121 : { pr : 'ON', sp : 'Anthony', ep : 'Sesekinika' },
RDON001122 : { pr : 'ON', sp : 'Sesekinka', ep : 'Hough Lake' },
RDON001123 : { pr : 'ON', sp : 'Hough Lake', ep : 'Heaslip' },
RDON001124 : { pr : 'ON', sp : 'Heaslip', ep : 'Couttsville' },
RDON001125 : { pr : 'ON', sp : 'Couttsville', ep : 'Latchford' },
RDON001126 : { pr : 'ON', sp : 'Latchford', ep : '18 km S. of Temagami' },
RDON001127 : { pr : 'ON', sp : '18 km S. of Temagami', ep : 'North Bay' },
RDON001128 : { pr : 'ON', sp : 'North Bay', ep : 'Sundridge' },
RDON001129 : { pr : 'ON', sp : 'Sundridge', ep : '10 km N. of Huntsville' },
RDON001130 : { pr : 'ON', sp : '10 km N. of Huntsville', ep : 'Falkenburg Station' },
RDON001131 : { pr : 'ON', sp : 'Falkenburg Station', ep : 'Severn Bridge' },
RDON001132 : { pr : 'ON', sp : 'Highway 400 at Barrie', ep : 'Severn Bridge' },
RDON001201 : { pr : 'ON', sp : 'Midland', ep : 'Waubaushene' },
RDON001202 : { pr : 'ON', sp : 'Waubaushene', ep : 'Prices Corner' },
RDON001203 : { pr : 'ON', sp : 'Prices Corner', ep : 'Orillia' },
RDON001204 : { pr : 'ON', sp : 'Orillia', ep : 'Gamebridge' },
RDON001205 : { pr : 'ON', sp : 'Gamebridge', ep : 'Highway 7' },
RDON001206 : { pr : 'ON', sp : 'Highway 7', ep : 'Brooklin' },
RDON001501 : { pr : 'ON', sp : 'Carleton Place', ep : 'Smiths Falls' },
RDON001502 : { pr : 'ON', sp : 'Smiths Falls', ep : 'Codes Corner' },
RDON001601 : { pr : 'ON', sp : 'Highway 401/416 Interchange', ep : 'Johnstown Border Crossing' },
RDON001701 : { pr : 'ON', sp : 'Manitoba Border', ep : 'Kenora' },
RDON001702 : { pr : 'ON', sp : 'Kenora', ep : 'Vermillion Bay' },
RDON001703 : { pr : 'ON', sp : 'Vermillion Bay', ep : 'Highway 622' },
RDON001704 : { pr : 'ON', sp : 'Highway 622', ep : 'English River' },
RDON001705 : { pr : 'ON', sp : 'English River', ep : 'Raith' },
RDON001706 : { pr : 'ON', sp : 'Raith', ep : 'Shabaqua Corners' },
RDON001707 : { pr : 'ON', sp : 'Nipigon', ep : '6 km W. of Rossport' },
RDON001708 : { pr : 'ON', sp : '6 km W. of Rossport', ep : '9 km W. of Ripple' },
RDON001709 : { pr : 'ON', sp : '9 km W. of Ripple', ep : 'Highway 627' },
RDON001710 : { pr : 'ON', sp : 'Highway 627', ep : 'White River' },
RDON001711 : { pr : 'ON', sp : 'White River', ep : 'Highway 519' },
RDON001712 : { pr : 'ON', sp : 'Highway 519', ep : 'Wawa' },
RDON001713 : { pr : 'ON', sp : 'Wawa', ep : 'Agawa Bay' },
RDON001714 : { pr : 'ON', sp : 'Agawa Bay', ep : '10 km E. of Batchawana Bay' },
RDON001715 : { pr : 'ON', sp : '10 km E. of Batchawana Bay', ep : 'Sault Ste. Marie' },
RDON001716 : { pr : 'ON', sp : 'Sault Ste. Marie', ep : 'Highway 548' },
RDON001717 : { pr : 'ON', sp : 'Highway 548', ep : 'Thessalon' },
RDON001718 : { pr : 'ON', sp : 'Thessalon', ep : 'Iron Bridge' },
RDON001719 : { pr : 'ON', sp : 'Iron Bridge', ep : 'Serpent River' },
RDON001720 : { pr : 'ON', sp : 'Serpent River', ep : 'Massey' },
RDON001721 : { pr : 'ON', sp : 'Massey', ep : 'Whitefish' },
RDON001722 : { pr : 'ON', sp : 'Whitefish', ep : 'McFarlane Lake' },
RDON001723 : { pr : 'ON', sp : 'McFarlane Lake', ep : 'Hagar' },
RDON001724 : { pr : 'ON', sp : 'Markstay-Warren', ep : 'Beaucage' },
RDON001725 : { pr : 'ON', sp : 'Beaucage', ep : 'North Bay' },
RDON001726 : { pr : 'ON', sp : 'North Bay', ep : 'Rutherglen' },
RDON001727 : { pr : 'ON', sp : 'Rutherglen', ep : 'Deux-Rivières' },
RDON001728 : { pr : 'ON', sp : 'Deux-Rivières', ep : 'Chalk River' },
RDON001729 : { pr : 'ON', sp : 'Chalk River', ep : 'Cobden' },
RDON001730 : { pr : 'ON', sp : 'Cobden', ep : 'Highway 417 at Antrim' },
RDON001801 : { pr : 'ON', sp : 'Mono Mills', ep : 'Mulmur' },
RDON001802 : { pr : 'ON', sp : 'Mulmur', ep : 'Banda' },
RDON001901 : { pr : 'ON', sp : '5 km E. of St. Marys', ep : 'Stratford' },
RDON001902 : { pr : 'ON', sp : 'Highway 403 at Ingersoll', ep : 'Tillsonburg' },
RDON002101 : { pr : 'ON', sp : 'Owen Sound', ep : 'Southampton' },
RDON002102 : { pr : 'ON', sp : 'Southampton', ep : 'Amberley' },
RDON002103 : { pr : 'ON', sp : 'Amberley', ep : 'St. Joseph' },
RDON002104 : { pr : 'ON', sp : 'St. Joseph', ep : 'Highway 402' },
RDON002301 : { pr : 'ON', sp : 'Harriston', ep : 'Palmerston' },
RDON002302 : { pr : 'ON', sp : 'Palmerston', ep : 'Mitchell' },
RDON002303 : { pr : 'ON', sp : 'Mitchell', ep : 'Elginfield' },
RDON002401 : { pr : 'ON', sp : 'Cambridge', ep : 'Fairview' },
RDON002402 : { pr : 'ON', sp : 'Highway 401 at Paris', ep : 'Simcoe' },
RDON002601 : { pr : 'ON', sp : 'Owen Sound', ep : 'Collingwood' },
RDON002602 : { pr : 'ON', sp : 'Collingwood', ep : 'Barrie' },
RDON002701 : { pr : 'ON', sp : 'Highway 406 at Welland', ep : 'Highway 140' },
RDON002801 : { pr : 'ON', sp : 'Highway 7', ep : 'Lakefield' },
RDON002802 : { pr : 'ON', sp : 'Lakefield', ep : 'Apsley' },
RDON002803 : { pr : 'ON', sp : 'Apsley', ep : 'Ireland' },
RDON002804 : { pr : 'ON', sp : 'Ireland', ep : 'Denbigh' },
RDON003301 : { pr : 'ON', sp : 'Bloomfield', ep : 'Picton' },
RDON003302 : { pr : 'ON', sp : 'Picton', ep : 'Kingston' },
RDON003401 : { pr : 'ON', sp : 'Lochinvar', ep : 'Sandy Hill' },
RDON003501 : { pr : 'ON', sp : '5 km S. of Pontypool', ep : '5 km S. of Moore Falls' },
RDON003502 : { pr : 'ON', sp : '5 km S. of Moore Falls', ep : 'Carnarvon' },
RDON003503 : { pr : 'ON', sp : 'Carnarvon', ep : 'Dwight' },
RDON003701 : { pr : 'ON', sp : 'Actinolite', ep : 'Belleville' },
RDON004001 : { pr : 'ON', sp : 'Sarnia', ep : 'Wallaceburg' },
RDON004002 : { pr : 'ON', sp : 'Wallaceburg', ep : 'Kent Centre' },
RDON004101 : { pr : 'ON', sp : 'Bon Echo', ep : 'Kaladar' },
RDON004102 : { pr : 'ON', sp : 'Griffith', ep : 'Bon Echo' },
RDON004103 : { pr : 'ON', sp : 'Letts Corners', ep : 'Griffith' },
RDON004104 : { pr : 'ON', sp : 'Slabtown', ep : 'Highway 60' },
RDON004105 : { pr : 'ON', sp : 'Huckabones Corners', ep : 'Slabtown' },
RDON004106 : { pr : 'ON', sp : 'Highway 17', ep : 'Huckabones Corners' },
RDON004801 : { pr : 'ON', sp : 'HWY 7', ep : 'West Franklin' },
RDON004802 : { pr : 'ON', sp : 'West Franklin', ep : 'Highway 12' },
RDON004803 : { pr : 'ON', sp : 'HWY 12', ep : 'Talbot' },
RDON004901 : { pr : 'ON', sp : 'Marysville', ep : 'Solmesville' },
RDON005801 : { pr : 'ON', sp : 'Highway 406', ep : 'Thorold' },
RDON005802 : { pr : 'ON', sp : 'Highway 58A at Welland South', ep : '5 km N. of Port Colborne' },
RDON006001 : { pr : 'ON', sp : 'Huntsville', ep : 'HWY 35' },
RDON006002 : { pr : 'ON', sp : 'HWY 35', ep : '15 km W. of Whitney' },
RDON006003 : { pr : 'ON', sp : '15 km W. of Whitney', ep : 'Madawaska' },
RDON006004 : { pr : 'ON', sp : 'Madawaska', ep : 'Killaloe' },
RDON006005 : { pr : 'ON', sp : 'Killaloe', ep : 'Renfrew' },
RDON006101 : { pr : 'ON', sp : '9 km E. of Pigeon River', ep : 'Thunder Bay' },
RDON006201 : { pr : 'ON', sp : 'Maynooth', ep : 'Bancroft' },
RDON006202 : { pr : 'ON', sp : 'Bancroft', ep : 'Martins Landing' },
RDON006203 : { pr : 'ON', sp : 'Martins Landing', ep : 'Belleville' },
RDON006204 : { pr : 'ON', sp : 'Belleville', ep : 'Bloomfield' },
RDON006301 : { pr : 'ON', sp : 'North Bay', ep : 'Thorne' },
RDON006401 : { pr : 'ON', sp : 'Rutter', ep : 'Sucker Creek Landing' },
RDON006402 : { pr : 'ON', sp : 'Sucker Creek Landing', ep : 'Verner' },
RDON006403 : { pr : 'ON', sp : 'Sturgeon Falls', ep : 'Marten River' },
RDON006501 : { pr : 'ON', sp : 'Elk Lake', ep : 'Matchewan' },
RDON006502 : { pr : 'ON', sp : 'Elk Lake', ep : 'New Liskeard' },
RDON006503 : { pr : 'ON', sp : 'New Liskeard', ep : 'Quebec Border' },
RDON006601 : { pr : 'ON', sp : 'Matchewan', ep : 'Kenogami Lake' },
RDON006602 : { pr : 'ON', sp : 'Kenogami lake', ep : 'Swastika' },
RDON006603 : { pr : 'ON', sp : 'Swastika', ep : 'Quebec Border' },
RDON006701 : { pr : 'ON', sp : 'Porquis Junction', ep : 'Ansonville' },
RDON006901 : { pr : 'ON', sp : 'McFarlane Lake', ep : 'Highway 537' },
RDON006902 : { pr : 'ON', sp : 'Highway 537', ep : 'Estaire' },
RDON006903 : { pr : 'ON', sp : 'Estaire', ep : 'Cranberry' },
RDON006904 : { pr : 'ON', sp : 'Cranberry', ep : 'Pointe au Baril Station' },
RDON006905 : { pr : 'ON', sp : 'Pointe au Baril Station', ep : 'Hayes Corners' },
RDON006906 : { pr : 'ON', sp : 'Hayes Corners', ep : '8 km S. of Foot\'s Bay' },
RDON007101 : { pr : 'ON', sp : 'Highway 17', ep : 'Sioux Narrows' },
RDON007102 : { pr : 'ON', sp : 'Sioux Narrows', ep : 'Highway 615' },
RDON007103 : { pr : 'ON', sp : 'Highway 615', ep : 'Highway 11' },
RDON007201 : { pr : 'ON', sp : 'Highway 17', ep : '40 km S. of Sioux Lookout' },
RDON007202 : { pr : 'ON', sp : '40 km S. of Sioux Lookout', ep : 'Sioux Lookout' },
RDON007701 : { pr : 'ON', sp : 'Comber', ep : 'Leamington' },
RDON007A01 : { pr : 'ON', sp : 'Manchester', ep : 'Yelverton' },
RDON007A02 : { pr : 'ON', sp : 'Yelverton', ep : 'Cavan' },
RDON008501 : { pr : 'ON', sp : 'Kitchener', ep : 'St. Jacobs' },
RDON008901 : { pr : 'ON', sp : 'Harriston', ep : 'Signet' },
RDON008902 : { pr : 'ON', sp : 'Signet', ep : 'Alliston' },
RDON008903 : { pr : 'ON', sp : 'Alliston', ep : 'Cookstown' },
RDON009301 : { pr : 'ON', sp : 'Highway 400', ep : 'Midland' },
RDON009401 : { pr : 'ON', sp : 'Highway 11', ep : 'Highway 17' },
RDON009402 : { pr : 'ON', sp : 'Highway 654', ep : 'Highway 11' },
RDON00C301 : { pr : 'ON', sp : 'The Maples', ep : 'Craigsholme' },
RDON00C701 : { pr : 'ON', sp : 'HWY 6', ep : 'Elora' },
RDON00C702 : { pr : 'ON', sp : 'Elora', ep : 'Wellington CR 12' },
RDON00C703 : { pr : 'ON', sp : 'Wellington CR 12', ep : 'Teviotdale' },
RDON00C801 : { pr : 'ON', sp : 'HWY 23', ep : 'Perth CR 163' },
RDON00C802 : { pr : 'ON', sp : 'HWY 35', ep : 'Bobcaygeon' },
RDON00C901 : { pr : 'ON', sp : 'HWY 7/19', ep : 'St. Marys' },
RDON010101 : { pr : 'ON', sp : 'Wawa', ep : 'Highway 651' },
RDON010102 : { pr : 'ON', sp : 'Highway 651', ep : '40 km E. of Foleyet' },
RDON010103 : { pr : 'ON', sp : '40 km E. of Foleyet', ep : 'Highway 144' },
RDON010104 : { pr : 'ON', sp : 'Highway 144', ep : 'South Porcupine' },
RDON010105 : { pr : 'ON', sp : 'South Porcupine', ep : 'Anthony' },
RDON010106 : { pr : 'ON', sp : 'Matheson', ep : 'Quebec Border' },
RDON010201 : { pr : 'ON', sp : 'Sistonens Corners', ep : 'Jumbo Gardens' },
RDON010501 : { pr : 'ON', sp : 'Vermillion Bay', ep : 'Red Lake' },
RDON010801 : { pr : 'ON', sp : 'Serpent River', ep : '15 km N. of Elliot Lake' },
RDON010901 : { pr : 'ON', sp : 'Dufferin County Line', ep : 'Orangeville' },
RDON011201 : { pr : 'ON', sp : 'Highway 11', ep : 'Swastika' },
RDON011501 : { pr : 'ON', sp : 'Port Darlington', ep : '5 km S. of Pontypool' },
RDON011502 : { pr : 'ON', sp : '5 km S. of Pontypool', ep : 'Peterborough' },
RDON011801 : { pr : 'ON', sp : 'Muskoka Falls', ep : 'Vankoughnet' },
RDON011802 : { pr : 'ON', sp : 'Vankoughnet', ep : '5 km W. of Essonville' },
RDON011803 : { pr : 'ON', sp : '5 km W. of Essonville', ep : 'Paudash' },
RDON011B01 : { pr : 'ON', sp : 'Coleman', ep : 'New Liskeard' },
RDON012401 : { pr : 'ON', sp : 'Badger\'s Corners', ep : 'Sundridge' },
RDON012501 : { pr : 'ON', sp : 'Red Lake', ep : 'Cochenour' },
RDON012701 : { pr : 'ON', sp : 'Whitney', ep : 'Maynooth' },
RDON012901 : { pr : 'ON', sp : 'Highway 101', ep : '30 km N. of Highway 556' },
RDON012902 : { pr : 'ON', sp : '30 km N. of Highway 556', ep : 'Thessalon' },
RDON013001 : { pr : 'ON', sp : 'Highway 11', ep : 'McCluskeys Corners' },
RDON013201 : { pr : 'ON', sp : 'Highway 41', ep : 'Renfrew' },
RDON013701 : { pr : 'ON', sp : 'Highway 401', ep : 'Ivy Lea Border Crossing' },
RDON013801 : { pr : 'ON', sp : 'Highway 417', ep : 'Cornwall Border Crossing' },
RDON014001 : { pr : 'ON', sp : 'Welland', ep : 'Port Colborne' },
RDON014101 : { pr : 'ON', sp : 'Hayes Corners', ep : 'Rosseau' },
RDON014102 : { pr : 'ON', sp : 'Rosseau', ep : 'Utterson' },
RDON014401 : { pr : 'ON', sp : 'Highway 101', ep : '30 km S. of The Cache' },
RDON014402 : { pr : 'ON', sp : '30 km S. of The Cache', ep : '25 km S. of Highway 560' },
RDON014403 : { pr : 'ON', sp : '25 km S. of Highway 560', ep : 'Chelmsford' },
RDON014404 : { pr : 'ON', sp : 'Highway 17', ep : 'Chelmsford' },
RDON017A01 : { pr : 'ON', sp : 'HWY 17 E. of Keewatin', ep : 'HWY 17 W. of Longbow Lake' },
RDON040001 : { pr : 'ON', sp : 'Highway 401', ep : 'Highway 9' },
RDON040002 : { pr : 'ON', sp : 'Highway 9', ep : 'Innisfil Heights' },
RDON040003 : { pr : 'ON', sp : 'Innisfil Heights', ep : 'Highway 93' },
RDON040004 : { pr : 'ON', sp : 'Highway 93', ep : 'Crooked bay' },
RDON040005 : { pr : 'ON', sp : 'Crooked Bay', ep : 'Horseshoe Lake' },
RDON040101 : { pr : 'ON', sp : 'Windsor', ep : 'Pelton' },
RDON040102 : { pr : 'ON', sp : 'Pelton', ep : 'Tilbury' },
RDON040103 : { pr : 'ON', sp : 'Tilbury', ep : 'Highgate' },
RDON040104 : { pr : 'ON', sp : 'Highgate', ep : 'Highway 4' },
RDON040105 : { pr : 'ON', sp : 'Highway 4', ep : 'London' },
RDON040106 : { pr : 'ON', sp : 'London', ep : 'Highway 8' },
RDON040107 : { pr : 'ON', sp : 'Highway 8', ep : 'Badenoch' },
RDON040108 : { pr : 'ON', sp : 'Badenoch', ep : 'Lisgar' },
RDON040109 : { pr : 'ON', sp : 'Lisgar', ep : 'Highway 400' },
RDON040110 : { pr : 'ON', sp : 'Highway 400', ep : 'Highland Creek' },
RDON040111 : { pr : 'ON', sp : 'Highland Creek', ep : 'Oshawa' },
RDON040112 : { pr : 'ON', sp : 'Oshawa', ep : 'Newtonville' },
RDON040113 : { pr : 'ON', sp : 'Newtonville', ep : 'Trenton' },
RDON040114 : { pr : 'ON', sp : 'Trenton', ep : 'Napanee' },
RDON040115 : { pr : 'ON', sp : 'Napanee', ep : 'Gananoque' },
RDON040116 : { pr : 'ON', sp : 'Gananoque', ep : 'Cardinal' },
RDON040117 : { pr : 'ON', sp : 'Cardinal', ep : 'Quebec Border' },
RDON040201 : { pr : 'ON', sp : 'Sarnia Border Crossing', ep : '5 km E. of Warwick' },
RDON040202 : { pr : 'ON', sp : '5 km E. of Warwick', ep : 'White Oak' },
RDON040301 : { pr : 'ON', sp : 'Woodstock', ep : 'Muir' },
RDON040302 : { pr : 'ON', sp : 'Muir', ep : 'Langford' },
RDON040303 : { pr : 'ON', sp : 'Langford', ep : 'Hamilton' },
RDON040304 : { pr : 'ON', sp : 'Hamilton', ep : 'QEW at Burlington' },
RDON040305 : { pr : 'ON', sp : 'Mississauga City Centre', ep : 'Queen Elizabeth Way' },
RDON040306 : { pr : 'ON', sp : 'Highway 401', ep : 'Mississauga City Centre' },
RDON040401 : { pr : 'ON', sp : 'Highway 401', ep : 'Newmarket' },
RDON040501 : { pr : 'ON', sp : 'Queen Elizabeth Way', ep : 'Queenston Border Crossing' },
RDON040601 : { pr : 'ON', sp : 'Barnesdale', ep : 'Welland' },
RDON040701 : { pr : 'ON', sp : 'HWY 403/QEW Freeman', ep : 'HWY 403 Oakville' },
RDON040702 : { pr : 'ON', sp : 'HWY 403 Oakville', ep : 'HWY 401' },
RDON040703 : { pr : 'ON', sp : 'HWY 401', ep : 'HWY 410' },
RDON040704 : { pr : 'ON', sp : 'HWY 410', ep : 'HWY 427' },
RDON040705 : { pr : 'ON', sp : 'HWY 427', ep : 'HWY 400' },
RDON040706 : { pr : 'ON', sp : 'HWY 400', ep : 'HWY 404' },
RDON040707 : { pr : 'ON', sp : 'HWY 404', ep : 'Brock Rd.' },
RDON040901 : { pr : 'ON', sp : 'Highway 401', ep : 'Pearson Int\'l Airport' },
RDON041001 : { pr : 'ON', sp : 'Highway 7', ep : 'Highway 401' },
RDON041601 : { pr : 'ON', sp : 'Johnstown', ep : '5 km S. of Highway 417' },
RDON041602 : { pr : 'ON', sp : '5 km S. of Highway 417', ep : 'Highway 417' },
RDON041701 : { pr : 'ON', sp : 'Highway 17 at Chats Haven', ep : '10 km W. of Highway 7' },
RDON041702 : { pr : 'ON', sp : '10 km W. of Highway 7', ep : 'Kanata' },
RDON041703 : { pr : 'ON', sp : 'Kanata', ep : 'Ottawa' },
RDON041704 : { pr : 'ON', sp : 'Ottawa', ep : 'Highway 138' },
RDON041705 : { pr : 'ON', sp : 'Highway 138', ep : 'Quebec Border' },
RDON042001 : { pr : 'ON', sp : 'Queen Elizabeth Way', ep : 'Niagara Falls Border Crossing' },
RDON042701 : { pr : 'ON', sp : 'Queen Elizabeth Way', ep : 'Sunset Corners' },
RDON050201 : { pr : 'ON', sp : 'Dryden', ep : 'Gold Rock' },
RDON050202 : { pr : 'ON', sp : 'Gold Rock', ep : 'Highway 11' },
RDON051001 : { pr : 'ON', sp : 'Magnetawan', ep : 'Highway 124' },
RDON051601 : { pr : 'ON', sp : 'Sioux Lookout', ep : 'Highway 599' },
RDON051801 : { pr : 'ON', sp : 'Haines', ep : 'Seguin Falls' },
RDON051802 : { pr : 'ON', sp : 'Seguin Falls', ep : 'Highway 11' },
RDON051803 : { pr : 'ON', sp : 'Emsdale', ep : 'Kearney' },
RDON051901 : { pr : 'ON', sp : 'Highway 17', ep : 'Dubreuilville' },
RDON052001 : { pr : 'ON', sp : 'Dunchurch', ep : 'Ardbeg' },
RDON052002 : { pr : 'ON', sp : 'Burk\'s Falls', ep : 'Magnetawan' },
RDON052201 : { pr : 'ON', sp : 'Cranberry', ep : '7 km W. of Fleming\'s Landing' },
RDON052202 : { pr : 'ON', sp : '7 km W. of Fleming\'s Landing', ep : 'Trout Creek' },
RDON052301 : { pr : 'ON', sp : 'Madawaska', ep : '5 km S. of Cross Lake' },
RDON052401 : { pr : 'ON', sp : 'Earleys Corners', ep : 'Carr' },
RDON052501 : { pr : 'ON', sp : 'Minaki', ep : 'Whitedog' },
RDON052601 : { pr : 'ON', sp : 'Highway 69', ep : 'Britt' },
RDON052701 : { pr : 'ON', sp : 'Highway 11', ep : '50 km S. of Gull Bay' },
RDON052702 : { pr : 'ON', sp : '50 km S. of Gull Bay', ep : 'Armstrong Station' },
RDON052801 : { pr : 'ON', sp : 'Highway 64', ep : 'Wolseley Bay' },
RDON052901 : { pr : 'ON', sp : 'Pointe au Baril Station', ep : '21 km N. of Pointe au Baril Station' },
RDON053101 : { pr : 'ON', sp : 'Highway 17', ep : 'Bonfield' },
RDON053201 : { pr : 'ON', sp : 'Glendale', ep : '6 km  N. of Wabos' },
RDON053301 : { pr : 'ON', sp : 'Mattawa', ep : 'Highway 63' },
RDON053401 : { pr : 'ON', sp : 'Powassan', ep : 'Nipissing' },
RDON053402 : { pr : 'ON', sp : 'Nipissing', ep : '8 km W. of Restoule' },
RDON053501 : { pr : 'ON', sp : 'Markstay-Warren', ep : 'Rivière Veuve' },
RDON053502 : { pr : 'ON', sp : 'Markstay-Warren', ep : 'Noëlville' },
RDON053701 : { pr : 'ON', sp : 'Highway 69', ep : 'Wahnapitae' },
RDON053801 : { pr : 'ON', sp : 'Algoma Mills', ep : '5 km E. of Algoma Mills' },
RDON053901 : { pr : 'ON', sp : 'Warren', ep : 'River Valley' },
RDON054001 : { pr : 'ON', sp : 'Little Current', ep : 'West Bay' },
RDON054002 : { pr : 'ON', sp : 'West Bay', ep : 'Meldrum Bay' },
RDON054201 : { pr : 'ON', sp : 'Gore Bay', ep : 'Mindemoya' },
RDON054202 : { pr : 'ON', sp : 'Mindemoya', ep : 'Tehkummah' },
RDON054601 : { pr : 'ON', sp : 'Iron Bridge', ep : 'Highway 639' },
RDON054602 : { pr : 'ON', sp : 'Highway 639', ep : '10 km E. of Highway 639' },
RDON054701 : { pr : 'ON', sp : 'Highway 101', ep : 'Hawk Junction' },
RDON054801 : { pr : 'ON', sp : 'Highway 17', ep : '4 km E. of Richards Landing' },
RDON055101 : { pr : 'ON', sp : 'West Bay', ep : 'Mindemoya' },
RDON055102 : { pr : 'ON', sp : 'Dryden\'s Corner', ep : 'Providence Bay' },
RDON055201 : { pr : 'ON', sp : 'Highway 556', ep : 'Goulais Bay' },
RDON055301 : { pr : 'ON', sp : 'Massey', ep : 'Highway 810' },
RDON055401 : { pr : 'ON', sp : 'Highway 129', ep : 'Highway 546' },
RDON055601 : { pr : 'ON', sp : 'Highway 17', ep : 'Ranger Lake' },
RDON055602 : { pr : 'ON', sp : 'Ranger Lake', ep : 'Highway 129' },
RDON055701 : { pr : 'ON', sp : 'Blind River', ep : '15 km N. of Blind River' },
RDON055801 : { pr : 'ON', sp : 'Haileybury', ep : 'Mowat Landing' },
RDON055901 : { pr : 'ON', sp : 'Nobel', ep : 'Killbear Park' },
RDON056001 : { pr : 'ON', sp : 'Highway 144', ep : 'Englehart' },
RDON056201 : { pr : 'ON', sp : 'McCool', ep : 'Highway 11 at Thornloe' },
RDON056301 : { pr : 'ON', sp : 'Highway 17', ep : 'Batchawana Bay' },
RDON056401 : { pr : 'ON', sp : 'Highway 11', ep : 'Boston Creek' },
RDON056701 : { pr : 'ON', sp : 'North Cobalt', ep : 'Lower Notch GS' },
RDON056801 : { pr : 'ON', sp : 'Highway 11 at Kenogami Lake', ep : 'Kenogami Lake Station' },
RDON056901 : { pr : 'ON', sp : 'Highway 11 S. of Couttsville', ep : 'Heaslip' },
RDON057001 : { pr : 'ON', sp : 'Highway 11', ep : 'Sesekinika' },
RDON057101 : { pr : 'ON', sp : 'Highway 11 at Earlton', ep : 'Highway 562' },
RDON057201 : { pr : 'ON', sp : 'Highway 11 at Ramore', ep : '4 km N. of Holtyre' },
RDON057301 : { pr : 'ON', sp : 'Highway 560 at Charlton', ep : 'Highway 11 and 112 Junction' },
RDON057401 : { pr : 'ON', sp : 'Dunning', ep : 'Norembega' },
RDON057501 : { pr : 'ON', sp : 'Verner', ep : 'Field' },
RDON057701 : { pr : 'ON', sp : 'Shillington', ep : 'Ansonville' },
RDON057901 : { pr : 'ON', sp : 'Cochrane', ep : 'Gardiner' },
RDON058101 : { pr : 'ON', sp : 'Moonbeam', ep : 'Rene Brunelle Provincial Park' },
RDON058301 : { pr : 'ON', sp : 'Mead', ep : 'Lac-Ste-Thérèse' },
RDON058401 : { pr : 'ON', sp : 'MacLeod', ep : 'Nakina' },
RDON058501 : { pr : 'ON', sp : 'Nipigon', ep : 'Pine Portage' },
RDON058701 : { pr : 'ON', sp : 'Highway 11', ep : 'Silver Islet' },
RDON058801 : { pr : 'ON', sp : 'Stanley', ep : 'Mackies' },
RDON058901 : { pr : 'ON', sp : 'Highway 102', ep : '25 km N. of Lappe' },
RDON058A01 : { pr : 'ON', sp : 'Highway 140', ep : 'Highway 58 at Welland South' },
RDON059001 : { pr : 'ON', sp : 'Kakabeka Falls', ep : 'Nolalu' },
RDON059101 : { pr : 'ON', sp : 'Lappe', ep : '12 km N.W. of Lappe' },
RDON059201 : { pr : 'ON', sp : 'Novar', ep : 'Katrine' },
RDON059301 : { pr : 'ON', sp : 'Silver Mountain', ep : '9 km E. of Pigeon River' },
RDON059401 : { pr : 'ON', sp : 'Eagle River', ep : 'Dryden' },
RDON059501 : { pr : 'ON', sp : 'Highway 590', ep : 'Highway 597' },
RDON059601 : { pr : 'ON', sp : 'Kenora Bypass HWY 17A', ep : 'Minaki' },
RDON059701 : { pr : 'ON', sp : 'Highway 608', ep : 'Pardee' },
RDON059901 : { pr : 'ON', sp : 'Ignace', ep : 'Silver Dollar' },
RDON059902 : { pr : 'ON', sp : 'Silver Dollar', ep : 'Lake St. Joseph' },
RDON059903 : { pr : 'ON', sp : 'Lake St. Joseph', ep : 'Pickle Lake' },
RDON060001 : { pr : 'ON', sp : 'Rainy River', ep : 'Harris Hill' },
RDON060002 : { pr : 'ON', sp : 'Harris Hill', ep : 'Highway 600' },
RDON060003 : { pr : 'ON', sp : '8 km N. of North Branch', ep : 'North Branch' },
RDON060004 : { pr : 'ON', sp : 'Highway 71', ep : 'North Branch' },
RDON060101 : { pr : 'ON', sp : 'Dryden', ep : '4 km W. of Six Mile Corner' },
RDON060201 : { pr : 'ON', sp : 'Emo', ep : 'Fort Frances' },
RDON060301 : { pr : 'ON', sp : 'Highway 17', ep : 'Dyment' },
RDON060501 : { pr : 'ON', sp : 'Oxdrift', ep : 'Eton-Rugby' },
RDON060701 : { pr : 'ON', sp : 'Bigwood', ep : 'Highway 64' },
RDON060801 : { pr : 'ON', sp : 'South Gillies', ep : 'Highway 597' },
RDON060802 : { pr : 'ON', sp : 'Highway 597', ep : 'Moose Hill' },
RDON060901 : { pr : 'ON', sp : 'Red Lake Road', ep : '10 km N. of Quibell' },
RDON061101 : { pr : 'ON', sp : '13 km N. of Cozier', ep : '8 km N. of Crozier' },
RDON061102 : { pr : 'ON', sp : '8 km N. of Cozier', ep : '4 km S. of Crozier' },
RDON061201 : { pr : 'ON', sp : 'Healy Lake Rd.', ep : 'HWY 69' },
RDON061301 : { pr : 'ON', sp : 'Box Alder', ep : 'Government Landing' },
RDON061401 : { pr : 'ON', sp : 'Highway 17', ep : 'Manitouwadge' },
RDON061501 : { pr : 'ON', sp : 'Off Lake Corner', ep : 'Burditt Lake' },
RDON061701 : { pr : 'ON', sp : 'Stratton', ep : 'North Branch' },
RDON061801 : { pr : 'ON', sp : 'Red Lake', ep : 'Madsen' },
RDON061901 : { pr : 'ON', sp : 'Pinewood', ep : 'Arbor Vitae' },
RDON061902 : { pr : 'ON', sp : 'Arbor Vitae', ep : 'Highway 610' },
RDON061903 : { pr : 'ON', sp : '5 km E. of Minahico', ep : 'Minahico' },
RDON062101 : { pr : 'ON', sp : 'Sleeman', ep : 'Gameland' },
RDON062102 : { pr : 'ON', sp : 'Gameland', ep : 'Morson' },
RDON062201 : { pr : 'ON', sp : 'Highway 17', ep : '60 km N. of Atikokan' },
RDON062202 : { pr : 'ON', sp : '60 km N. of Atikokan', ep : 'Highway 11 at Atikokan' },
RDON062401 : { pr : 'ON', sp : 'Heaslip', ep : 'Larder Lake' },
RDON062501 : { pr : 'ON', sp : 'Margo Lake', ep : 'Caramat' },
RDON062701 : { pr : 'ON', sp : 'Highway 17', ep : 'Pic River' },
RDON063001 : { pr : 'ON', sp : 'Highway 17', ep : 'Kiosk' },
RDON063101 : { pr : 'ON', sp : 'White River', ep : '40 km N. of White River' },
RDON063102 : { pr : 'ON', sp : '40 km N. of White River', ep : 'Highway 11' },
RDON063201 : { pr : 'ON', sp : 'Rosseau', ep : 'Minett' },
RDON063401 : { pr : 'ON', sp : 'Smooth Rock Falls', ep : 'Abitibi Canyon' },
RDON063601 : { pr : 'ON', sp : 'Highway 11', ep : 'N. of Frederick' },
RDON063701 : { pr : 'ON', sp : 'Burwash', ep : 'Killarney' },
RDON063801 : { pr : 'ON', sp : 'Echo Bay', ep : 'Bruce Mines' },
RDON063901 : { pr : 'ON', sp : '15 km N. of Elliot Lake', ep : 'Highway 546' },
RDON064101 : { pr : 'ON', sp : 'Highway 17', ep : 'Highway 596' },
RDON064201 : { pr : 'ON', sp : 'Sioux Lookout', ep : 'Silver Dollar' },
RDON064501 : { pr : 'ON', sp : 'Highway 529', ep : 'Byng Inlet' },
RDON064701 : { pr : 'ON', sp : 'Vermillion Bay', ep : '20 km N.W. of Vermilion Bay' },
RDON065001 : { pr : 'ON', sp : 'Highway 11 at Dane', ep : '7 km E. of Dane' },
RDON065101 : { pr : 'ON', sp : 'Highway 101', ep : 'Missanabie' },
RDON065201 : { pr : 'ON', sp : 'Cochrane', ep : '150 km N. at Lawagamau Lake' },
RDON065401 : { pr : 'ON', sp : 'Nipissing', ep : 'Highway 94' },
RDON065501 : { pr : 'ON', sp : 'Driftwood', ep : 'Timmins' },
RDON065701 : { pr : 'ON', sp : 'Ear Falls', ep : '5 km E. of Ear Falls' },
RDON065801 : { pr : 'ON', sp : 'Kenora', ep : 'Redditt' },
RDON066101 : { pr : 'ON', sp : 'Highway 144', ep : 'Gogama' },
RDON066301 : { pr : 'ON', sp : 'Highway 11', ep : 'Calstock' },
RDON066401 : { pr : 'ON', sp : 'Highway 72', ep : 'Hudson' },
RDON066501 : { pr : 'ON', sp : 'Two Mile Corner', ep : 'Richan' },
RDON066701 : { pr : 'ON', sp : 'Highway 129', ep : 'Sultan' },
RDON066801 : { pr : 'ON', sp : 'Highway 11', ep : 'Greenwater Provincial Park' },
RDON067001 : { pr : 'ON', sp : 'Ophir', ep : 'Dunns Valley' },
RDON067101 : { pr : 'ON', sp : 'Kenora Bypass HWY 17A', ep : 'Grassy Narrows' },
RDON067201 : { pr : 'ON', sp : 'Highway 101', ep : 'Dobie' },
RDON067301 : { pr : 'ON', sp : 'Highway 17', ep : 'Shoal Lake' },
RDON080401 : { pr : 'ON', sp : 'Ear Falls', ep : 'Manitou Falls' },
RDON080501 : { pr : 'ON', sp : 'Highway 539A', ep : '35 km N. of River Valley' },
RDON081001 : { pr : 'ON', sp : 'Highway 553', ep : '40 km N. of Highway 553' },
RDON0C1101 : { pr : 'ON', sp : 'Shelburne', ep : 'The Maples' },
RDON0C1201 : { pr : 'ON', sp : 'Arthur', ep : 'Wellington CR 86' },
RDON0C1401 : { pr : 'ON', sp : 'Arthur', ep : 'HWY 89' },
RDON0C1801 : { pr : 'ON', sp : 'Waterloo R.M.-Wellington Border', ep : 'East-West Garafraxa TLINE' },
RDON0C2001 : { pr : 'ON', sp : 'Perth Line 17', ep : 'HWY 7/19' },
RDON0C2401 : { pr : 'ON', sp : 'Perth RD 183', ep : 'HWY 23' },
RDON0C2402 : { pr : 'ON', sp : 'Erin Garafraxa TLINE', ep : 'Erin Halton Hills TLINE' },
RDON0C2601 : { pr : 'ON', sp : 'HWY 7/19', ep : 'Tavistock' },
RDON0C2602 : { pr : 'ON', sp : 'Wellington CR 124', ep : 'Belwood' },
RDON0C3201 : { pr : 'ON', sp : 'Perth CR 130', ep : 'HWY 7/19' },
RDON0C3301 : { pr : 'ON', sp : 'Perth CR 112', ep : 'Perth CR 107' },
RDON0C3601 : { pr : 'ON', sp : 'Perth CR 119', ep : 'Perth RD 125' },
RDON0C3602 : { pr : 'ON', sp : 'Lindsay', ep : 'Bobcaygeon' },
RDON0C3701 : { pr : 'ON', sp : 'Perth CR 119', ep : 'Perth RD 109' },
RDON0C4301 : { pr : 'ON', sp : 'Perth CR 119', ep : 'Perth RD 103' },
RDON0C4401 : { pr : 'ON', sp : 'Perth CR 180', ep : 'Perth CR 119' },
RDON0C4501 : { pr : 'ON', sp : 'Sebright', ep : 'Kinmount' },
RDON0C4601 : { pr : 'ON', sp : 'HWY 401', ep : 'Maltby Road' },
RDON0C4801 : { pr : 'ON', sp : 'HWY 35', ep : 'Kirkfield' },
RDON0C4901 : { pr : 'ON', sp : 'Bobcaygeon', ep : 'Kawartha CR 121' },
RDON0C5501 : { pr : 'ON', sp : 'Perth CR 180', ep : 'Perth CR 119' },
RDON0C5601 : { pr : 'ON', sp : 'Perth CR 119', ep : 'Perth RD 105' },
RDON0C7201 : { pr : 'ON', sp : 'Perth RD 172', ep : 'Perth RD 116' },
RDON0C8601 : { pr : 'ON', sp : 'Perth CR 178', ep : 'Listowel' },
RDON0C8602 : { pr : 'ON', sp : 'Listowel', ep : 'Perth RD 116' },
RDON0C8603 : { pr : 'ON', sp : 'Perth RD 116', ep : 'HWY 7 at Guelph' },
RDON0C8701 : { pr : 'ON', sp : 'Harriston', ep : 'Howick Minto TLINE' },
RDON0C8801 : { pr : 'ON', sp : 'Perth CR 178', ep : 'HWY 23' },
RDON0C9101 : { pr : 'ON', sp : 'Perth CR 93', ep : 'Perth CR 140' },
RDON0C9301 : { pr : 'ON', sp : 'HWY 23', ep : 'Teviotdale' },
RDON0DVP01 : { pr : 'ON', sp : 'Gardiner Expressway', ep : 'Highway 401' },
RDON0GDR01 : { pr : 'ON', sp : 'Highway 427', ep : 'Lakeshore Blvd. E. of DVP' },
RDON0QEW01 : { pr : 'ON', sp : 'Fort Erie Border Crossing', ep : 'Orchard Park' },
RDON0QEW02 : { pr : 'ON', sp : 'Jordan Harbour', ep : 'Orchard Park' },
RDON0QEW03 : { pr : 'ON', sp : 'Jordan Harbour', ep : 'Hamilton Beach' },
RDON0QEW04 : { pr : 'ON', sp : 'Hamilton Beach', ep : 'Bronte' },
RDON0QEW05 : { pr : 'ON', sp : 'Bronte', ep : 'Highway 403' },
RDON0QEW06 : { pr : 'ON', sp : 'Highway 403', ep : 'Gardiner Expressway' },
RDON0RR401 : { pr : 'ON', sp : 'Flesherton', ep : 'Grey Rd 13 (RR 13)' },
RDON0RR701 : { pr : 'ON', sp : 'Meaford', ep : 'Kimberley' },
RDON528A01 : { pr : 'ON', sp : 'Wolseley Bay', ep : '5 km E. of Wolseley Bay' },
RDON529A01 : { pr : 'ON', sp : 'Highway 529', ep : 'Bayfield Inlet' },
RDON539A01 : { pr : 'ON', sp : 'River Valley', ep : 'Highway 805' },
RDON540A01 : { pr : 'ON', sp : 'Highway 540', ep : 'Barrie Island' },
RDON607A01 : { pr : 'ON', sp : 'Bigwood', ep : 'Bon Air' },
RDON703601 : { pr : 'ON', sp : 'Highway 11 at Potter', ep : '4 km W. of Potter' },
RDON703701 : { pr : 'ON', sp : 'Highway 11 N. of Berylvale', ep : 'Highway 11 S. of Berylvale' },
RDON718201 : { pr : 'ON', sp : 'Highway 559', ep : 'Shawanaga River' },
RDONC10101 : { pr : 'ON', sp : 'HWY 7', ep : 'Perth CR 101/24' },
RDONC10124 : { pr : 'ON', sp : 'Perth CR 101', ep : 'Tavistock' },
RDONC10701 : { pr : 'ON', sp : 'Perth CR 56', ep : 'Perth CR 101/24' },
RDONC10902 : { pr : 'ON', sp : 'Harriston', ep : 'East-West Luther TLINE' },
RDONC11201 : { pr : 'ON', sp : 'Stratford', ep : 'Perth CR 26' },
RDONC11301 : { pr : 'ON', sp : 'HWY 7/19', ep : 'Perth Oxford Road' },
RDONC11801 : { pr : 'ON', sp : 'HWY 7', ep : 'Perth CR 9' },
RDONC11901 : { pr : 'ON', sp : 'Stratford', ep : 'Perth CR 131' },
RDONC12101 : { pr : 'ON', sp : 'Perth CR 119', ep : 'Perth CR 86' },
RDONC12102 : { pr : 'ON', sp : 'HWY 35', ep : 'Boundary Road' },
RDONC12301 : { pr : 'ON', sp : 'HWY 7', ep : 'St. Marys' },
RDONC12302 : { pr : 'ON', sp : 'Teviotdale', ep : 'HWY 23' },
RDONC12401 : { pr : 'ON', sp : 'Shelburne', ep : 'Maple Valley' },
RDONC12402 : { pr : 'ON', sp : 'Maple Valley', ep : 'Singhampton' },
RDONC12403 : { pr : 'ON', sp : 'Waterloo R.M.-Wellington Border', ep : 'Winston Churchill Blvd' },
RDONC12501 : { pr : 'ON', sp : 'Wellington CR 124', ep : 'Wellington Sideroad 32' },
RDONC13001 : { pr : 'ON', sp : 'HWY 8', ep : 'St. Marys' },
RDONC13101 : { pr : 'ON', sp : 'Perth CR 55', ep : 'Perth CR 86' },
RDONC13501 : { pr : 'ON', sp : 'HWY 8', ep : 'Perth CR 55' },
RDONC13901 : { pr : 'ON', sp : 'St. Marys', ep : 'Whalen Line' },
RDONC14001 : { pr : 'ON', sp : 'Perth CR 86', ep : 'Teviotdale' },
RDONC14701 : { pr : 'ON', sp : 'Perth CR 72', ep : 'Perth CR 86' },
RDONC15101 : { pr : 'ON', sp : 'Perth CR 8', ep : 'Whalen Line' },
RDONC16301 : { pr : 'ON', sp : 'Perth RD 139', ep : 'HWY 23' },
RDONC17801 : { pr : 'ON', sp : 'Perth CR 86', ep : 'HWY 23' },
RDONC18001 : { pr : 'ON', sp : 'Perth Line 17', ep : 'Perth CR 55' },
RDONRR1301 : { pr : 'ON', sp : 'Kimberley', ep : 'Grey Rd 4 (RR4)' },
RDPE000101 : { pr : 'PE', sp : 'Wood Islands', ep : 'Orwell' },
RDPE000102 : { pr : 'PE', sp : 'Orwell', ep : 'Charlottetown' },
RDPE000103 : { pr : 'PE', sp : 'Charlottetown', ep : 'Crapaud' },
RDPE000104 : { pr : 'PE', sp : 'Crapaud', ep : 'Albany' },
RDPE000201 : { pr : 'PE', sp : 'Souris', ep : 'Morell' },
RDPE000202 : { pr : 'PE', sp : 'Morell', ep : 'Charlottetown' },
RDPE000203 : { pr : 'PE', sp : 'Charlottetown', ep : 'Summerfield' },
RDPE000204 : { pr : 'PE', sp : 'Summerfield', ep : 'Summerside' },
RDPE000205 : { pr : 'PE', sp : 'Summerside', ep : 'O\'Leary Corners' },
RDPE000206 : { pr : 'PE', sp : 'O\'Leary Corners', ep : 'Tignish' },
RDPE000301 : { pr : 'PE', sp : 'Georgetown', ep : 'Cherry Valley' },
RDPE000401 : { pr : 'PE', sp : 'Dingwell Mills', ep : 'Montague' },
RDPE001005 : { pr : 'PE', sp : 'Albany', ep : 'Borden' },
RDPE001A01 : { pr : 'PE', sp : 'Albany', ep : 'Summerside' },
RDPE031501 : { pr : 'PE', sp : 'Montague', ep : 'Caledonia' },
RDPE031502 : { pr : 'PE', sp : 'Caledonia', ep : 'Wood Islands' },
RDQC000501 : { pr : 'QC', sp : 'Ottawa', ep : 'Chelsea' },
RDQC000502 : { pr : 'QC', sp : 'Chelsea', ep : 'La Pêche' },
RDQC001001 : { pr : 'QC', sp : 'Pont Champlain', ep : 'Chambly' },
RDQC001002 : { pr : 'QC', sp : 'Chambly', ep : 'Jonction de l\'autoroute 10 et de la route 139 à Granby' },
RDQC001003 : { pr : 'QC', sp : 'Jonction de l\'autoroute 10 et de la route 139 à Granby', ep : 'Bromont' },
RDQC001004 : { pr : 'QC', sp : 'Bromont', ep : 'Eastman' },
RDQC001005 : { pr : 'QC', sp : 'Eastman', ep : 'Magog' },
RDQC001006 : { pr : 'QC', sp : 'Magog', ep : 'Sherbrooke' },
RDQC001301 : { pr : 'QC', sp : 'Jonction des autoroutes 13 et 20', ep : 'Pont Louis-Bisson à Laval' },
RDQC001302 : { pr : 'QC', sp : 'Pont Louis-Bisson à Laval', ep : 'Jonction des autoroutes 13 et 640' },
RDQC001501 : { pr : 'QC', sp : 'Lacolle frontière des États-Unis', ep : 'Candiac' },
RDQC001502 : { pr : 'QC', sp : 'Candiac', ep : 'Pont Champlain' },
RDQC001503 : { pr : 'QC', sp : 'Pont Champlain', ep : 'Jonction de l\'échangeur Décarie' },
RDQC001504 : { pr : 'QC', sp : 'Jonction de l\'échangeur de l\'autoroute des Laurentides', ep : 'Pont Médéric-Martin à Laval' },
RDQC001505 : { pr : 'QC', sp : 'Pont Médéric-Martin à Laval', ep : 'Sainte-Thérèse' },
RDQC001506 : { pr : 'QC', sp : 'Sainte-Thérèse', ep : 'Saint-Jérôme' },
RDQC001507 : { pr : 'QC', sp : 'Saint-Jérôme', ep : 'Sainte-Adèle' },
RDQC001508 : { pr : 'QC', sp : 'Sainte-Adèle', ep : 'Sainte-Agathe-des-Monts' },
RDQC002001 : { pr : 'QC', sp : 'Rivière-Beaudette frontière de l\'Ontario', ep : 'L\'Île-Perrot' },
RDQC002002 : { pr : 'QC', sp : 'L\'Île-Perrot', ep : 'Dorval' },
RDQC002003 : { pr : 'QC', sp : 'Dorval', ep : 'Jonction de l\'échangeur Décarie' },
RDQC002004 : { pr : 'QC', sp : 'Pont-tunnel Louis-Hippolyte-La Fontaine', ep : 'Mont-Saint-Hilaire' },
RDQC002005 : { pr : 'QC', sp : 'Mont-Saint-Hilaire', ep : 'Sainte-Hélène-de-Bagot' },
RDQC002006 : { pr : 'QC', sp : 'Sainte-Hélène-de-Bagot', ep : 'Drummondville' },
RDQC002007 : { pr : 'QC', sp : 'Drummondville', ep : 'Sainte-Eulalie' },
RDQC002008 : { pr : 'QC', sp : 'Sainte-Eulalie', ep : 'Saint-Louis-de-Blandford' },
RDQC002009 : { pr : 'QC', sp : 'Saint-Louis-de-Blandford', ep : 'Villeroy' },
RDQC002010 : { pr : 'QC', sp : 'Villeroy', ep : 'Lévis secteur Saint-Nicolas' },
RDQC002011 : { pr : 'QC', sp : 'Lévis secteur Saint-Nicolas', ep : 'Lévis' },
RDQC002012 : { pr : 'QC', sp : 'Lévis', ep : 'Montmagny' },
RDQC002013 : { pr : 'QC', sp : 'Montmagny', ep : 'La Pocatière' },
RDQC002014 : { pr : 'QC', sp : 'La Pocatière', ep : 'Saint-Pascal' },
RDQC002015 : { pr : 'QC', sp : 'Saint-Pascal', ep : 'Rivière-du-Loup' },
RDQC002016 : { pr : 'QC', sp : 'Rivière-du-Loup', ep : 'Cacouna' },
RDQC002017 : { pr : 'QC', sp : 'Le Bic', ep : 'Sainte-Luce' },
RDQC002501 : { pr : 'QC', sp : 'Pont-tunnel Louis-Hippolyte-La Fontaine', ep : 'Montréal arrondissement Anjou' },
RDQC002502 : { pr : 'QC', sp : 'Boulevard Henri-Bourassa à Montréal', ep : 'Jonction autoroute 640 à Mascouche' },
RDQC002503 : { pr : 'QC', sp : 'Jonction autoroute 640 à Mascouche', ep : 'Saint-Roch-de-l\'Achigan' },
RDQC002504 : { pr : 'QC', sp : 'Saint-Roch-de-l\'Achigan', ep : 'Sainte-Julienne' },
RDQC003001 : { pr : 'QC', sp : 'Châteauguay', ep : 'Sainte-Catherine' },
RDQC003002 : { pr : 'QC', sp : 'Candiac', ep : 'Jonction des autoroutes 10 et 30' },
RDQC003003 : { pr : 'QC', sp : 'Jonction des autoroutes 10 et 30', ep : 'Jonction des autoroutes 20 et 30' },
RDQC003004 : { pr : 'QC', sp : 'Jonction des autoroutes 20 et 30', ep : 'Contrecour' },
RDQC003005 : { pr : 'QC', sp : 'Contrecour', ep : 'Sorel-Tracy' },
RDQC003101 : { pr : 'QC', sp : 'Lavaltrie', ep : 'Joliette' },
RDQC003501 : { pr : 'QC', sp : 'Saint-Jean-sur-Richelieu', ep : 'Jonction de l\'autoroute 10 à Carignan' },
RDQC004001 : { pr : 'QC', sp : 'Pointe-Fortune frontière de l\'Ontario', ep : 'Vaudreuil-Dorion' },
RDQC004002 : { pr : 'QC', sp : 'Vaudreuil-Dorion', ep : 'Kirkland' },
RDQC004003 : { pr : 'QC', sp : 'Kirkland', ep : 'Jonction des autoroutes 40 et 520' },
RDQC004004 : { pr : 'QC', sp : 'Jonction des autoroutes 40 et 520', ep : 'Montréal arrondissement Saint-Léonard' },
RDQC004005 : { pr : 'QC', sp : 'Montréal arrondissement Saint-Léonard', ep : 'Pont Charles-De Gaulle à Montréal' },
RDQC004006 : { pr : 'QC', sp : 'Pont Charles-De Gaulle à Montréal', ep : 'Jonction autoroute 31 à Lavaltrie' },
RDQC004007 : { pr : 'QC', sp : 'Jonction autoroute 31 à Lavaltrie', ep : 'Maskinongé' },
RDQC004008 : { pr : 'QC', sp : 'Maskinongé', ep : 'Jonction des autoroutes 40 et 55' },
RDQC004009 : { pr : 'QC', sp : 'Trois-Rivières secteur Trois-Rivières-Ouest', ep : 'Trois-Rivières secteur Sainte-Marthe-du-Cap' },
RDQC004010 : { pr : 'QC', sp : 'Trois-Rivières secteur Sainte-Marthe-du-Cap', ep : 'Batiscan' },
RDQC004011 : { pr : 'QC', sp : 'Batiscan', ep : 'Deschambault-Grondines' },
RDQC004012 : { pr : 'QC', sp : 'Deschambault-Grondines', ep : 'Donnacona' },
RDQC004013 : { pr : 'QC', sp : 'Donnacona', ep : 'Saint-Augustin-de-Desmaures' },
RDQC004014 : { pr : 'QC', sp : 'Saint-Augustin-de-Desmaures', ep : 'Québec arrondissement Laurentien' },
RDQC004015 : { pr : 'QC', sp : 'Québec arrondissement Laurentien', ep : 'Québec centre-ville' },
RDQC004016 : { pr : 'QC', sp : 'L\'Ancienne-Lorette', ep : 'Jonction des autoroutes 40 et 73' },
RDQC004017 : { pr : 'QC', sp : 'Jonction des autoroutes 40 et 73', ep : 'Beauport' },
RDQC005001 : { pr : 'QC', sp : 'Gatineau secteur Hull', ep : 'Gatineau montée Paiement' },
RDQC005002 : { pr : 'QC', sp : 'Gatineau montée Paiement', ep : 'Jonction de l\'autoroute 50 et de la route 309' },
RDQC005003 : { pr : 'QC', sp : 'Brownsburg-Chatham', ep : 'Jonction des autoroutes 15 et 50 à Mirabel' },
RDQC005501 : { pr : 'QC', sp : 'Stanstead frontière des États-Unis', ep : 'Magog' },
RDQC005502 : { pr : 'QC', sp : 'Sherbrooke', ep : 'L\'Avenir' },
RDQC005503 : { pr : 'QC', sp : 'L\'Avenir', ep : 'Jonction des autoroutes 20 et 55' },
RDQC005504 : { pr : 'QC', sp : 'Jonction des autoroutes 20 et 55', ep : 'Saint-Célestin' },
RDQC005505 : { pr : 'QC', sp : 'Saint-Célestin', ep : 'Pont Laviolette à Bécancour' },
RDQC005506 : { pr : 'QC', sp : 'Pont Laviolette à Bécancour', ep : 'Jonction des autoroutes 40 et 55' },
RDQC005507 : { pr : 'QC', sp : 'Jonction des autoroutes 40 et 55', ep : 'Shawinigan secteur Grand-Mère' },
RDQC007001 : { pr : 'QC', sp : 'Saguenay arrondissement Jonquière', ep : 'Saguenay arrondissement Chicoutimi' },
RDQC007301 : { pr : 'QC', sp : 'Beauceville', ep : 'Saint-Joseph-de-Beauce' },
RDQC007302 : { pr : 'QC', sp : 'Saint-Joseph-de-Beauce', ep : 'Sainte-Marie-de-Beauce' },
RDQC007303 : { pr : 'QC', sp : 'Sainte-Marie-de-Beauce', ep : 'Lévis secteur Charny' },
RDQC007304 : { pr : 'QC', sp : 'Lévis secteur Charny', ep : 'Pont Pierre-Laporte à Québec' },
RDQC007305 : { pr : 'QC', sp : 'Pont Pierre-Laporte à Québec', ep : 'L\'Ancienne-Lorette' },
RDQC007306 : { pr : 'QC', sp : 'Jonction des autoroutes 40 et 73', ep : 'Québec arrondissement Charlesbourg' },
RDQC007307 : { pr : 'QC', sp : 'Québec arrondissement Charlesbourg', ep : 'Stoneham-et-Tewkesbury' },
RDQC008501 : { pr : 'QC', sp : 'Saint-Antonin', ep : 'Rivière-du-Loup' },
RDQC010101 : { pr : 'QC', sp : 'Témiscaming frontière de l\'Ontario', ep : 'Saint-Édouard-de-Fabre' },
RDQC010102 : { pr : 'QC', sp : 'Saint-Édouard-de-Fabre', ep : 'Ville-Marie' },
RDQC010103 : { pr : 'QC', sp : 'Ville-Marie', ep : 'Notre-Dame-du-Nord' },
RDQC010104 : { pr : 'QC', sp : 'Notre-Dame-du-Nord', ep : 'Intersection des routes 101 et 391 à Rémigny' },
RDQC010105 : { pr : 'QC', sp : 'Rouyn-Noranda secteur Rémigny', ep : 'Rouyn-Noranda secteur Arntfield' },
RDQC010106 : { pr : 'QC', sp : 'Rouyn-Noranda secteur Arntfield', ep : 'Rouyn-Noranda' },
RDQC010107 : { pr : 'QC', sp : 'Rouyn-Noranda', ep : 'Jonction des routes 101 et 393' },
RDQC010501 : { pr : 'QC', sp : 'La Pêche', ep : 'Low' },
RDQC010502 : { pr : 'QC', sp : 'Low', ep : 'Gracefield' },
RDQC010503 : { pr : 'QC', sp : 'Gracefield', ep : 'Grand-Remous' },
RDQC010801 : { pr : 'QC', sp : 'Sherbrooke arrondissement Lennoxville', ep : 'Cookshire-Eaton' },
RDQC010802 : { pr : 'QC', sp : 'Cookshire-Eaton', ep : 'Lingwick' },
RDQC010803 : { pr : 'QC', sp : 'Lingwick', ep : 'Stornoway' },
RDQC010804 : { pr : 'QC', sp : 'Stornoway', ep : 'Saint-Évariste-de-Forsyth' },
RDQC010805 : { pr : 'QC', sp : 'Saint-Évariste-de-Forsyth', ep : 'Beauceville' },
RDQC010901 : { pr : 'QC', sp : 'Rivière-Héva', ep : 'Jonction des routes 109 111 et 395 à Amos' },
RDQC010902 : { pr : 'QC', sp : 'Jonction des routes 109 111 et 395 à Amos', ep : 'Saint-Dominique-du-Rosaire' },
RDQC010903 : { pr : 'QC', sp : 'Saint-Dominique-du-Rosaire', ep : 'Joutel' },
RDQC010904 : { pr : 'QC', sp : 'Joutel', ep : 'Matagami' },
RDQC011101 : { pr : 'QC', sp : 'Val-d\'Or', ep : 'La Corne' },
RDQC011102 : { pr : 'QC', sp : 'La Corne', ep : 'Jonction des routes 109 111 et 395 à Amos' },
RDQC011103 : { pr : 'QC', sp : 'Amos centre-ville', ep : 'Taschereau' },
RDQC011104 : { pr : 'QC', sp : 'Taschereau', ep : 'Macamic' },
RDQC011105 : { pr : 'QC', sp : 'Macamic', ep : 'La Sarre' },
RDQC011201 : { pr : 'QC', sp : 'Sherbrooke arrondissement Fleurimont', ep : 'East Angus' },
RDQC011202 : { pr : 'QC', sp : 'East Angus', ep : 'Weedon' },
RDQC011203 : { pr : 'QC', sp : 'Weedon', ep : 'Thetford Mines secteur Black Lake' },
RDQC011204 : { pr : 'QC', sp : 'Thetford Mines secteur Black Lake', ep : 'Tring-Jonction' },
RDQC011205 : { pr : 'QC', sp : 'Tring-Jonction', ep : 'Vallée-Jonction' },
RDQC011301 : { pr : 'QC', sp : 'Jonction des routes 113 et 117', ep : 'Senneterre' },
RDQC011302 : { pr : 'QC', sp : 'Senneterre', ep : 'Halte routière' },
RDQC011303 : { pr : 'QC', sp : 'Halte routière', ep : 'Lebel-sur-Quévillon' },
RDQC011304 : { pr : 'QC', sp : 'Lebel-sur-Quévillon', ep : 'Miquelon' },
RDQC011305 : { pr : 'QC', sp : 'Miquelon', ep : 'Chapais' },
RDQC011306 : { pr : 'QC', sp : 'Chapais', ep : 'Jonction des routes 113 et 167' },
RDQC011601 : { pr : 'QC', sp : 'Jonction de l\'autoroute 20 et de la route 116', ep : 'Acton Vale' },
RDQC011602 : { pr : 'QC', sp : 'Acton Vale', ep : 'Melbourne' },
RDQC011603 : { pr : 'QC', sp : 'Melbourne', ep : 'Kingsey Falls' },
RDQC011604 : { pr : 'QC', sp : 'Kingsey Falls', ep : 'Victoriaville' },
RDQC011605 : { pr : 'QC', sp : 'Victoriaville', ep : 'Princeville' },
RDQC011606 : { pr : 'QC', sp : 'Princeville', ep : 'Plessisville' },
RDQC011701 : { pr : 'QC', sp : 'Sainte-Agathe-des-Monts', ep : 'Mont-Tremblant secteur Saint-Jovite' },
RDQC011702 : { pr : 'QC', sp : 'Mont-Tremblant secteur Saint-Jovite', ep : 'Lac-Saguay' },
RDQC011703 : { pr : 'QC', sp : 'Lac-Saguay', ep : 'Chemin du Festival à Grand-Remous' },
RDQC011704 : { pr : 'QC', sp : 'Chemin du Festival à Grand-Remous', ep : 'Partie sud de la réserve faunique La Vérendrye' },
RDQC011705 : { pr : 'QC', sp : 'Partie sud de la réserve faunique La Vérendrye', ep : 'Milieu de la réserve faunique La Vérendrye' },
RDQC011706 : { pr : 'QC', sp : 'Milieu de la réserve faunique La Vérendrye', ep : 'Louvicourt' },
RDQC011707 : { pr : 'QC', sp : 'Louvicourt', ep : 'Val-d\'Or' },
RDQC011708 : { pr : 'QC', sp : 'Val-d\'Or', ep : 'Malartic' },
RDQC011709 : { pr : 'QC', sp : 'Malartic', ep : 'Lac-Joannès' },
RDQC011710 : { pr : 'QC', sp : 'Lac-Joannès', ep : 'Rouyn-Noranda' },
RDQC011711 : { pr : 'QC', sp : 'Rouyn-Noranda secteur Arntfield', ep : 'Rouyn-Noranda frontière de l\'Ontario' },
RDQC012201 : { pr : 'QC', sp : 'Saint-Gérard-Majella', ep : 'Drummondville' },
RDQC012202 : { pr : 'QC', sp : 'Jonction de l\'autoroute 955 et de la route 122', ep : 'Victoriaville' },
RDQC012501 : { pr : 'QC', sp : 'Sainte-Julienne', ep : 'Chertsey' },
RDQC012502 : { pr : 'QC', sp : 'Chertsey', ep : 'Notre-Dame-de-la-Merci' },
RDQC012503 : { pr : 'QC', sp : 'Notre-Dame-de-la-Merci', ep : 'Saint-Donat' },
RDQC013101 : { pr : 'QC', sp : 'Joliette', ep : 'Saint-Félix-de-Valois' },
RDQC013102 : { pr : 'QC', sp : 'Saint-Félix-de-Valois', ep : 'Sainte-Émélie-de-L\'Énergie' },
RDQC013103 : { pr : 'QC', sp : 'Sainte-Émélie-de-L\'Énergie', ep : 'Saint-Michel-des-Saints' },
RDQC013201 : { pr : 'QC', sp : 'Salaberry-de-Valleyfield', ep : 'Beauharnois' },
RDQC013202 : { pr : 'QC', sp : 'Beauharnois', ep : 'Châteauguay' },
RDQC013203 : { pr : 'QC', sp : 'Jonction de l\'échangeur Saint-Pierre', ep : 'Candiac' },
RDQC013204 : { pr : 'QC', sp : 'Pont Champlain', ep : 'Pont-tunnel Louis-Hippolyte-La Fontaine' },
RDQC013205 : { pr : 'QC', sp : 'Sorel-Tracy', ep : 'Saint-Gérard-Majella' },
RDQC013206 : { pr : 'QC', sp : 'Route Lallemand à Lévis', ep : 'Saint-Vallier' },
RDQC013207 : { pr : 'QC', sp : 'Saint-Vallier', ep : 'L\'Islet' },
RDQC013208 : { pr : 'QC', sp : 'L\'Islet', ep : 'Sainte-Anne-de-la-Pocatière' },
RDQC013209 : { pr : 'QC', sp : 'Sainte-Anne-de-la-Pocatière', ep : 'Kamouraska' },
RDQC013210 : { pr : 'QC', sp : 'Kamouraska', ep : 'Rivière-du-Loup secteur Saint-Patrice' },
RDQC013211 : { pr : 'QC', sp : 'Cacouna', ep : 'Saint-Simon' },
RDQC013212 : { pr : 'QC', sp : 'Saint-Simon', ep : 'Le Bic' },
RDQC013213 : { pr : 'QC', sp : 'Sainte-Flavie', ep : 'Baie-des-Sables' },
RDQC013214 : { pr : 'QC', sp : 'Baie-des-Sables', ep : 'Matane' },
RDQC013215 : { pr : 'QC', sp : 'Matane', ep : 'Les Méchins' },
RDQC013216 : { pr : 'QC', sp : 'Les Méchins', ep : 'Sainte-Anne-des-Monts' },
RDQC013217 : { pr : 'QC', sp : 'Sainte-Anne-des-Monts', ep : 'L\'Anse-Pleureuse' },
RDQC013218 : { pr : 'QC', sp : 'L\'Anse-Pleureuse', ep : 'Sainte-Madeleine-de-la-Rivière-Madeleine' },
RDQC013219 : { pr : 'QC', sp : 'Sainte-Madeleine-de-la-Rivière-Madeleine', ep : 'Cloridorme' },
RDQC013220 : { pr : 'QC', sp : 'Cloridorme', ep : 'Gaspé secteur Rivière-au-Renard' },
RDQC013221 : { pr : 'QC', sp : 'Gaspé secteur Rivière-au-Renard', ep : 'Gaspé secteur Saint-Majorique' },
RDQC013222 : { pr : 'QC', sp : 'Gaspé secteur Saint-Majorique', ep : 'Gaspé' },
RDQC013223 : { pr : 'QC', sp : 'Gaspé secteur centre-ville', ep : 'Gaspé secteur Anse-à-Brillant' },
RDQC013224 : { pr : 'QC', sp : 'Gaspé secteur Anse-à-Brillant', ep : 'Percé secteur Anse-à-Beaufils' },
RDQC013225 : { pr : 'QC', sp : 'Percé secteur Anse-à-Beaufils', ep : 'Chandler secteur Newport' },
RDQC013226 : { pr : 'QC', sp : 'Chandler secteur Newport', ep : 'New Richmond' },
RDQC013227 : { pr : 'QC', sp : 'New Richmond', ep : 'Pointe-à-la-Croix' },
RDQC013228 : { pr : 'QC', sp : 'Pointe-à-la-Croix', ep : 'Amqui' },
RDQC013229 : { pr : 'QC', sp : 'Amqui', ep : 'Sayabec' },
RDQC013230 : { pr : 'QC', sp : 'Sayabec', ep : 'Sainte-Flavie' },
RDQC013301 : { pr : 'QC', sp : 'Saint-Armand frontière des États-Unis', ep : 'Pike River' },
RDQC013302 : { pr : 'QC', sp : 'Pike River', ep : 'Saint-Jean-sur-Richelieu' },
RDQC013601 : { pr : 'QC', sp : 'Pont Pierre-Laporte à Québec', ep : 'Québec centre-ville' },
RDQC013701 : { pr : 'QC', sp : 'Jonction des routes 112 et 137 à Granby', ep : 'Saint-Hyacinthe' },
RDQC013801 : { pr : 'QC', sp : 'Elgin frontière des États-Unis', ep : 'Sainte-Martine' },
RDQC013802 : { pr : 'QC', sp : 'Sainte-Martine', ep : 'Pont Honoré-Mercier à Montréal' },
RDQC013803 : { pr : 'QC', sp : 'Pont de la rivière Montmorency', ep : 'Beaupré' },
RDQC013804 : { pr : 'QC', sp : 'Beaupré', ep : 'Saint-Tite-des-Caps' },
RDQC013805 : { pr : 'QC', sp : 'Saint-Tite-des-Caps', ep : 'Baie-Saint-Paul' },
RDQC013806 : { pr : 'QC', sp : 'Baie-Saint-Paul', ep : 'La Malbaie secteur Saint-Fidèle-de-Mont-Murray' },
RDQC013807 : { pr : 'QC', sp : 'La Malbaie secteur Saint-Fidèle-de-Mont-Murray', ep : 'Baie-Sainte-Catherine' },
RDQC013808 : { pr : 'QC', sp : 'Tadoussac', ep : 'Les Bergeronnes' },
RDQC013809 : { pr : 'QC', sp : 'Les Bergeronnes', ep : 'Longue-Rive' },
RDQC013810 : { pr : 'QC', sp : 'Longue-Rive', ep : 'Forestville' },
RDQC013811 : { pr : 'QC', sp : 'Forestville', ep : 'Betsiamites' },
RDQC013812 : { pr : 'QC', sp : 'Betsiamites', ep : 'Baie-Comeau' },
RDQC013813 : { pr : 'QC', sp : 'Baie-Comeau', ep : 'Godbout' },
RDQC013814 : { pr : 'QC', sp : 'Godbout', ep : 'Baie-Trinité' },
RDQC013815 : { pr : 'QC', sp : 'Baie-Trinité', ep : 'Port-Cartier' },
RDQC013816 : { pr : 'QC', sp : 'Port-Cartier', ep : 'Sept-Îles secteur Gallix' },
RDQC013817 : { pr : 'QC', sp : 'Sept-Îles secteur Gallix', ep : 'Sept-Îles' },
RDQC013818 : { pr : 'QC', sp : 'Sept-Îles', ep : 'Rivière-au-Bouleau' },
RDQC013819 : { pr : 'QC', sp : 'Rivière-au-Bouleau', ep : 'Magpie' },
RDQC013820 : { pr : 'QC', sp : 'Magpie', ep : 'Havre-Saint-Pierre' },
RDQC013821 : { pr : 'QC', sp : 'Havre-Saint-Pierre', ep : 'Baie-Johan-Beetz' },
RDQC013822 : { pr : 'QC', sp : 'Baie-Johan-Beetz', ep : 'Natashquan' },
RDQC013901 : { pr : 'QC', sp : 'Acton Vale', ep : 'Drummondville secteur Saint-Nicéphore' },
RDQC013902 : { pr : 'QC', sp : 'Cowansville', ep : 'Jonction des routes 112 et 137 à Granby' },
RDQC014101 : { pr : 'QC', sp : 'Coaticook', ep : 'Sainte-Catherine-de-Hatley' },
RDQC014701 : { pr : 'QC', sp : 'Dixville frontière des États-Unis', ep : 'Coaticook' },
RDQC014702 : { pr : 'QC', sp : 'Coaticook', ep : 'Sherbrooke arrondissement Lennoxville' },
RDQC014801 : { pr : 'QC', sp : 'L\'Isle-aux-Allumettes frontière de l\'Ontario', ep : 'Fort-Coulonge' },
RDQC014802 : { pr : 'QC', sp : 'Fort-Coulonge', ep : 'Bryson' },
RDQC014803 : { pr : 'QC', sp : 'Bryson', ep : 'Pontiac' },
RDQC014804 : { pr : 'QC', sp : 'Pontiac', ep : 'Gatineau secteur Aylmer' },
RDQC014805 : { pr : 'QC', sp : 'Gatineau secteur Aylmer', ep : 'Jonction de l\'autoroute 5 et de la route 148' },
RDQC014806 : { pr : 'QC', sp : 'Gatineau secteur Masson-Angers', ep : 'Fassett' },
RDQC014807 : { pr : 'QC', sp : 'Fassett', ep : 'Lachute' },
RDQC014808 : { pr : 'QC', sp : 'Lachute', ep : 'Saint-Eustache' },
RDQC015501 : { pr : 'QC', sp : 'Shawinigan secteur Grand-Mère', ep : 'Rivière-Matawin' },
RDQC015502 : { pr : 'QC', sp : 'Rivière-Matawin', ep : 'La Tuque' },
RDQC015503 : { pr : 'QC', sp : 'La Tuque', ep : 'Lac à la Carpe' },
RDQC015504 : { pr : 'QC', sp : 'Lac à la Carpe', ep : 'Lac-Bouchette' },
RDQC015505 : { pr : 'QC', sp : 'Lac-Bouchette', ep : 'Chambord' },
RDQC015701 : { pr : 'QC', sp : 'Jonction de l\'autoroute 40 et de la route 157', ep : 'Shawinigan' },
RDQC015801 : { pr : 'QC', sp : 'Lachute', ep : 'Jonction de l\'autoroute 15 et de la route 158' },
RDQC015802 : { pr : 'QC', sp : 'Jonction de l\'autoroute 15 et de la route 158', ep : 'Saint-Lin-Laurentides' },
RDQC015803 : { pr : 'QC', sp : 'Saint-Lin-Laurentides', ep : 'Joliette' },
RDQC015804 : { pr : 'QC', sp : 'Joliette', ep : 'Berthierville' },
RDQC016101 : { pr : 'QC', sp : 'Saint-Augustin-de-Woburn frontière des États-Unis', ep : 'Lac-Mégantic' },
RDQC016102 : { pr : 'QC', sp : 'Lac-Mégantic', ep : 'Stornoway' },
RDQC016103 : { pr : 'QC', sp : 'Stornoway', ep : 'Weedon' },
RDQC016104 : { pr : 'QC', sp : 'Beaulac-Garthby', ep : 'Notre-Dame-de-Ham' },
RDQC016105 : { pr : 'QC', sp : 'Notre-Dame-de-Ham', ep : 'Jonction des routes 116 et 161' },
RDQC016501 : { pr : 'QC', sp : 'Thetford Mines secteur Black Lake', ep : 'Saint-Ferdinand' },
RDQC016502 : { pr : 'QC', sp : 'Saint-Ferdinand', ep : 'Plessisville' },
RDQC016503 : { pr : 'QC', sp : 'Jonction des routes 116 et 165', ep : 'Jonction de l\'autoroute 20 et de la route 165' },
RDQC016701 : { pr : 'QC', sp : 'Saint-Félicien', ep : 'La Doré' },
RDQC016702 : { pr : 'QC', sp : 'La Doré', ep : 'Parc Chibougamau au kilomètre 85' },
RDQC016703 : { pr : 'QC', sp : 'Parc Chibougamau au kilomètre 85', ep : 'Parc Chibougamau au kilomètre 191' },
RDQC016704 : { pr : 'QC', sp : 'Parc Chibougamau au kilomètre 191', ep : 'Chibougamau' },
RDQC016901 : { pr : 'QC', sp : 'Jonction des routes 169 et 175', ep : 'Hébertville' },
RDQC016902 : { pr : 'QC', sp : 'Hébertville', ep : 'Alma' },
RDQC016903 : { pr : 'QC', sp : 'Alma', ep : 'Sainte-Monique' },
RDQC016904 : { pr : 'QC', sp : 'Sainte-Monique', ep : 'Péribonka' },
RDQC016905 : { pr : 'QC', sp : 'Péribonka', ep : 'Dolbeau-Mistassini' },
RDQC016906 : { pr : 'QC', sp : 'Jonction des routes 169 et 373 à Saint-Félicien', ep : 'Roberval' },
RDQC016907 : { pr : 'QC', sp : 'Roberval', ep : 'Métabetchouan-Lac-à-la-Croix' },
RDQC016908 : { pr : 'QC', sp : 'Jonction des routes 169 et 170 à Métabetchouan-Lac-à-la-Croix', ep : 'Hébertville' },
RDQC017001 : { pr : 'QC', sp : 'Saint-Siméon', ep : 'Sagard' },
RDQC017002 : { pr : 'QC', sp : 'Sagard', ep : 'Saint-Félix-d\'Otis' },
RDQC017003 : { pr : 'QC', sp : 'Saint-Félix-d\'Otis', ep : 'Saguenay arrondissement La Baie' },
RDQC017004 : { pr : 'QC', sp : 'Saguenay arrondissement La Baie', ep : 'Saguenay arrondissement Chicoutimi' },
RDQC017005 : { pr : 'QC', sp : 'Saguenay arrondissement Jonquière', ep : 'Saint-Bruno' },
RDQC017006 : { pr : 'QC', sp : 'Jonction des routes 169 et 170', ep : 'Saint-Gédéon' },
RDQC017007 : { pr : 'QC', sp : 'Saint-Gédéon', ep : 'Métabetchouan-Lac-à-la-Croix' },
RDQC017201 : { pr : 'QC', sp : 'Jonction des routes 138 et 172', ep : 'Sacré-Cour' },
RDQC017202 : { pr : 'QC', sp : 'Sacré-Cour', ep : 'Bardsville' },
RDQC017203 : { pr : 'QC', sp : 'Bardsville', ep : 'Sainte-Rose-du-Nord' },
RDQC017204 : { pr : 'QC', sp : 'Sainte-Rose-du-Nord', ep : 'Saguenay arrondissement Chicoutimi' },
RDQC017205 : { pr : 'QC', sp : 'Saguenay arrondissement Chicoutimi', ep : 'Saint-Ambroise' },
RDQC017206 : { pr : 'QC', sp : 'Saint-Ambroise', ep : 'Jonction des routes 169 et 172 à Alma' },
RDQC017301 : { pr : 'QC', sp : 'Saint-Théophile frontière des États-Unis', ep : 'Saint-Georges' },
RDQC017302 : { pr : 'QC', sp : 'Saint-Georges', ep : 'Beauceville' },
RDQC017303 : { pr : 'QC', sp : 'Saint-Henri', ep : 'Lévis' },
RDQC017501 : { pr : 'QC', sp : 'Stoneham-et-Tewkesbury', ep : 'L\'Étape' },
RDQC017502 : { pr : 'QC', sp : 'L\'Étape', ep : 'Jonction de l\'autoroute 70 et de la route 175 à Saguenay' },
RDQC018501 : { pr : 'QC', sp : 'Dégelis frontière du Nouveau-Brunswick', ep : 'Cabano' },
RDQC018502 : { pr : 'QC', sp : 'Cabano', ep : 'Saint-Hubert-de-Rivière-du-Loup' },
RDQC018503 : { pr : 'QC', sp : 'Saint-Hubert-de-Rivière-du-Loup', ep : 'Saint-Antonin' },
RDQC019501 : { pr : 'QC', sp : 'Amqui', ep : 'Matane' },
RDQC019701 : { pr : 'QC', sp : 'Gaspé secteur Saint-Majorique', ep : 'Gaspé secteur Rivière-au-Renard' },
RDQC019801 : { pr : 'QC', sp : 'L\'Anse-Pleureuse', ep : 'Murdochville' },
RDQC019802 : { pr : 'QC', sp : 'Murdochville', ep : 'Gaspé secteur centre-ville' },
RDQC020101 : { pr : 'QC', sp : 'Coteau-du-Lac', ep : 'Salaberry-de-Valleyfield' },
RDQC020401 : { pr : 'QC', sp : 'Lac-Mégantic', ep : 'Saint-Gédéon-de-Beauce' },
RDQC020402 : { pr : 'QC', sp : 'Saint-Gédéon-de-Beauce', ep : 'Jonction des routes 173 et 204' },
RDQC020403 : { pr : 'QC', sp : 'Saint-Georges', ep : 'Saint-Prosper' },
RDQC020404 : { pr : 'QC', sp : 'Saint-Prosper', ep : 'Saint-Camille-de-Lellis' },
RDQC020405 : { pr : 'QC', sp : 'Saint-Camille-de-Lellis', ep : 'Sainte-Lucie-de-Beauregard' },
RDQC020406 : { pr : 'QC', sp : 'Sainte-Lucie-de-Beauregard', ep : 'Sainte-Perpétue' },
RDQC020407 : { pr : 'QC', sp : 'Sainte-Perpétue', ep : 'Saint-Jean-Port-Joli' },
RDQC021601 : { pr : 'QC', sp : 'Saint-Malachie', ep : 'Buckland' },
RDQC023201 : { pr : 'QC', sp : 'Rivière-Bleue', ep : 'Jonction des routes 185 et 232 Ouest à Cabano' },
RDQC023202 : { pr : 'QC', sp : 'Jonction des routes 185 et 232 Est à Cabano', ep : 'Lac-des-Aigles' },
RDQC023203 : { pr : 'QC', sp : 'Lac-des-Aigles', ep : 'Rimouski' },
RDQC027701 : { pr : 'QC', sp : 'Sainte-Rose-de-Watford', ep : 'Saint-Léon-de-Standon' },
RDQC027702 : { pr : 'QC', sp : 'Saint-Léon-de-Standon', ep : 'Sainte-Claire' },
RDQC027703 : { pr : 'QC', sp : 'Sainte-Claire', ep : 'Saint-Henri' },
RDQC027901 : { pr : 'QC', sp : 'Buckland', ep : 'Beaumont' },
RDQC028101 : { pr : 'QC', sp : 'Saint-Philémon', ep : 'Saint-Michel-de-Bellechasse' },
RDQC028301 : { pr : 'QC', sp : 'Saint-Just-de-Bretenières', ep : 'Jct HWY 20' },
RDQC028901 : { pr : 'QC', sp : 'Saint-Jean-de-la-Lande frontière du Nouveau-Brunswick', ep : 'Rivière-Bleue' },
RDQC028902 : { pr : 'QC', sp : 'Rivière-Bleue', ep : 'Pohénégamook' },
RDQC028903 : { pr : 'QC', sp : 'Pohénégamook', ep : 'Saint-Alexandre-de-Kamouraska' },
RDQC029901 : { pr : 'QC', sp : 'New Richmond', ep : 'Sainte-Anne-des-Monts' },
RDQC030901 : { pr : 'QC', sp : 'Jonction de l\'autoroute 50 et de la route 309', ep : 'Notre-Dame-du-Laus' },
RDQC030902 : { pr : 'QC', sp : 'Notre-Dame-du-Laus', ep : 'Mont-Laurier' },
RDQC032301 : { pr : 'QC', sp : 'Montebello', ep : 'Lac-des-Plages' },
RDQC032302 : { pr : 'QC', sp : 'Lac-des-Plages', ep : 'Jonction des routes 117 et 323 à Mont-Tremblant' },
RDQC034901 : { pr : 'QC', sp : 'Louiseville', ep : 'Saint-Alexis-des-Monts' },
RDQC035901 : { pr : 'QC', sp : 'Champlain', ep : 'Shawinigan secteur Grand-Mère' },
RDQC037301 : { pr : 'QC', sp : 'Dolbeau-Mistassini', ep : 'Jonction des routes 169 et 373 à Saint-Félicien' },
RDQC038101 : { pr : 'QC', sp : 'Saint-Urbain', ep : 'Ferland-et-Boilleau' },
RDQC038102 : { pr : 'QC', sp : 'Ferland-et-Boilleau', ep : 'Saguenay arrondissement La Baie' },
RDQC038601 : { pr : 'QC', sp : 'Jonction des routes 111 et 386', ep : 'Barraute' },
RDQC038602 : { pr : 'QC', sp : 'Barraute', ep : 'Senneterre' },
RDQC038801 : { pr : 'QC', sp : 'Rapide-Danseur frontière de l\'Ontario', ep : 'Duparquet' },
RDQC038901 : { pr : 'QC', sp : 'Jonction des routes 138 et 389', ep : 'Zec Varin au kilomètre 48' },
RDQC038902 : { pr : 'QC', sp : 'Zec Varin au kilomètre 48', ep : 'Manic 3 au kilomètre 94' },
RDQC038903 : { pr : 'QC', sp : 'Manic 3 au kilomètre 94', ep : 'Rivière-aux-Outardes au kilomètre 165' },
RDQC038904 : { pr : 'QC', sp : 'Rivière-aux-Outardes au kilomètre 165', ep : 'Manic-Cinq au kilomètre 212' },
RDQC038905 : { pr : 'QC', sp : 'Manic-Cinq au kilomètre 212', ep : 'Rivière Le Torrent au kilomètre 348' },
RDQC038906 : { pr : 'QC', sp : 'Rivière Le Torrent au kilomètre 348', ep : 'Fire Lake au kilomètre 480' },
RDQC038907 : { pr : 'QC', sp : 'Fire Lake au kilomètre 480', ep : 'Mont-Wright au kilomètre 546' },
RDQC038908 : { pr : 'QC', sp : 'Mont-Wright au kilomètre 546', ep : 'Fermont frontière du Labrador' },
RDQC039301 : { pr : 'QC', sp : 'Jonction des routes 101 et 393', ep : 'Palmarolle' },
RDQC039302 : { pr : 'QC', sp : 'Palmarolle', ep : 'La Sarre' },
RDQC044001 : { pr : 'QC', sp : 'Jonction des autoroutes 13 et 440', ep : 'Jonction des autoroutes 25 et 440' },
RDQC044002 : { pr : 'QC', sp : 'Québec centre-ville', ep : 'Pont de la rivière Montmorency' },
RDQC054001 : { pr : 'QC', sp : 'Jonction des autoroutes 20 et 540', ep : 'Jonction des autoroutes 40 et 540 à Vaudreuil-Dorion' },
RDQC054002 : { pr : 'QC', sp : 'Jonction des autoroutes 40 et 540 à Québec', ep : 'Jonction des autoroutes 73 et 540 et de la route 175' },
RDQC057301 : { pr : 'QC', sp : 'L\'Ancienne-Lorette', ep : 'Québec secteur Val-Bélair' },
RDQC061001 : { pr : 'QC', sp : 'Sherbrooke', ep : 'Sherbrooke arrondissement Fleurimont' },
RDQC064001 : { pr : 'QC', sp : 'Saint-Joseph-du-Lac', ep : 'Saint-Eustache' },
RDQC064002 : { pr : 'QC', sp : 'Saint-Eustache', ep : 'Bois-des-Filion' },
RDQC064003 : { pr : 'QC', sp : 'Bois-des-Filion', ep : 'Charlemagne' },
RDQC072001 : { pr : 'QC', sp : 'Jonction de l\'échangeur Décarie', ep : 'Montréal' },
RDQC074001 : { pr : 'QC', sp : 'Jonction du boulevard Laurier', ep : 'Jonction du boulevard Lebourgneuf' },
RDQC095501 : { pr : 'QC', sp : 'Warwick', ep : 'Saint-Albert' },
RDQC095502 : { pr : 'QC', sp : 'Saint-Albert', ep : 'Jonction des autoroutes 20 55 et 955' },
RDSK000101 : { pr : 'SK', sp : 'Manitoba Border', ep : 'West Jct Hwy 8' },
RDSK000102 : { pr : 'SK', sp : 'West Jct Hwy 8', ep : 'Whitewood' },
RDSK000103 : { pr : 'SK', sp : 'Whitewood', ep : 'Broadview' },
RDSK000104 : { pr : 'SK', sp : 'Broadview', ep : 'Grenfell' },
RDSK000105 : { pr : 'SK', sp : 'Grenfell', ep : 'Sintaluta' },
RDSK000106 : { pr : 'SK', sp : 'Sintaluta', ep : 'Jct Hwy 35' },
RDSK000107 : { pr : 'SK', sp : 'Jct Hwy 35', ep : 'Balgonie' },
RDSK000108 : { pr : 'SK', sp : 'Balgonie', ep : 'Regina' },
RDSK000109 : { pr : 'SK', sp : 'Jct Hwy 1 Bypass', ep : 'Jct Hwy 6' },
RDSK000110 : { pr : 'SK', sp : 'Jct Hwy 6', ep : 'Belle Plaine' },
RDSK000111 : { pr : 'SK', sp : 'Belle Plaine', ep : 'Jct Hwy 39' },
RDSK000112 : { pr : 'SK', sp : 'Jct Hwy 301', ep : 'Moose Jaw' },
RDSK000113 : { pr : 'SK', sp : 'Moose Jaw', ep : 'Caronport' },
RDSK000114 : { pr : 'SK', sp : 'Caronport', ep : 'Mortlach' },
RDSK000115 : { pr : 'SK', sp : 'Mortlach', ep : 'Chaplin' },
RDSK000116 : { pr : 'SK', sp : 'Chaplin', ep : 'Hwy 19 - south junction' },
RDSK000117 : { pr : 'SK', sp : 'Hwy 19 - south junction', ep : 'Rush Lake' },
RDSK000118 : { pr : 'SK', sp : 'Rush Lake', ep : 'Swift Current' },
RDSK000119 : { pr : 'SK', sp : 'Swift Current', ep : 'Gull Lake' },
RDSK000120 : { pr : 'SK', sp : 'Gull Lake', ep : 'Tompkins' },
RDSK000121 : { pr : 'SK', sp : 'Tompkins', ep : 'Piapot' },
RDSK000122 : { pr : 'SK', sp : 'Piapot', ep : 'Jct Hwy 21' },
RDSK000123 : { pr : 'SK', sp : 'Jct Hwy 21', ep : 'Alberta Border' },
RDSK000201 : { pr : 'SK', sp : 'U.S. Border', ep : 'Rockglen' },
RDSK000202 : { pr : 'SK', sp : 'Rockglen', ep : 'Scout Lake' },
RDSK000203 : { pr : 'SK', sp : 'Scout Lake', ep : 'Assiniboia' },
RDSK000204 : { pr : 'SK', sp : 'Assiniboia', ep : 'Mossbank' },
RDSK000205 : { pr : 'SK', sp : 'Mossbank', ep : 'Jct Hwy 36' },
RDSK000206 : { pr : 'SK', sp : 'Jct Hwy 36', ep : '15 Wing Base Access' },
RDSK000207 : { pr : 'SK', sp : '15 Wing Base Access', ep : 'Moose Jaw' },
RDSK000208 : { pr : 'SK', sp : 'Moose Jaw', ep : 'Tuxford' },
RDSK000209 : { pr : 'SK', sp : 'Tuxford', ep : 'Qu\'Appelle Valley' },
RDSK000210 : { pr : 'SK', sp : 'Qu\'Appelle Valley', ep : 'Chamberlain' },
RDSK000211 : { pr : 'SK', sp : 'Jct Hwy 11', ep : 'Penzance' },
RDSK000212 : { pr : 'SK', sp : 'Penzance', ep : 'Liberty' },
RDSK000213 : { pr : 'SK', sp : 'Liberty', ep : 'Imperial' },
RDSK000214 : { pr : 'SK', sp : 'Imperial', ep : 'Watrous' },
RDSK000215 : { pr : 'SK', sp : 'Watrous', ep : 'Young' },
RDSK000216 : { pr : 'SK', sp : 'Young', ep : 'Jct Hwy 16' },
RDSK000217 : { pr : 'SK', sp : 'Jct Hwy 16', ep : 'North Jct Hwy 5' },
RDSK000218 : { pr : 'SK', sp : 'North Jct Hwy 5', ep : 'Jct Hwy 27' },
RDSK000219 : { pr : 'SK', sp : 'Jct Hwy 27', ep : 'Jct Hwy 41' },
RDSK000220 : { pr : 'SK', sp : 'Jct Hwy 41', ep : 'St. Louis' },
RDSK000221 : { pr : 'SK', sp : 'St. Louis', ep : 'Prince Albert' },
RDSK000222 : { pr : 'SK', sp : 'Prince Albert', ep : 'Jct Hwy 263' },
RDSK000223 : { pr : 'SK', sp : 'Jct Hwy 263', ep : 'Jct Hwy 264' },
RDSK000224 : { pr : 'SK', sp : 'Jct Hwy 264', ep : 'Jct Hwy 916' },
RDSK000225 : { pr : 'SK', sp : 'Jct Hwy 916', ep : 'Weyakwin' },
RDSK000226 : { pr : 'SK', sp : 'Weyakwin', ep : 'Two Forks River' },
RDSK000227 : { pr : 'SK', sp : 'Two Forks River', ep : 'South Jct Hwy 165' },
RDSK000228 : { pr : 'SK', sp : 'South Jct Hwy 165', ep : 'North Jct Hwy 165' },
RDSK000229 : { pr : 'SK', sp : 'North Jct Hwy 165', ep : 'La Ronge' },
RDSK000301 : { pr : 'SK', sp : 'Manitoba Border', ep : 'Erwood' },
RDSK000302 : { pr : 'SK', sp : 'Erwood', ep : 'Hudson Bay' },
RDSK000303 : { pr : 'SK', sp : 'Hudson Bay', ep : 'Prairie River Access' },
RDSK000304 : { pr : 'SK', sp : 'Prairie River Access', ep : 'Mistamin' },
RDSK000305 : { pr : 'SK', sp : 'Mistamin', ep : 'South Jct Hwy 23' },
RDSK000306 : { pr : 'SK', sp : 'South Jct Hwy 23', ep : 'Tisdale' },
RDSK000307 : { pr : 'SK', sp : 'Tisdale', ep : 'Melfort' },
RDSK000308 : { pr : 'SK', sp : 'Melfort', ep : 'Kinistino' },
RDSK000309 : { pr : 'SK', sp : 'Kinistino', ep : 'Jct Hwy 25' },
RDSK000310 : { pr : 'SK', sp : 'Jct Hwy 25', ep : 'Prince Albert' },
RDSK000311 : { pr : 'SK', sp : 'Prince Albert', ep : '20 km W. Prince Albert' },
RDSK000312 : { pr : 'SK', sp : '20 km W. Prince Albert', ep : 'Shellbrook' },
RDSK000313 : { pr : 'SK', sp : 'Shellbrook', ep : 'Shell Lake' },
RDSK000314 : { pr : 'SK', sp : 'Shell Lake', ep : 'Spritwood' },
RDSK000315 : { pr : 'SK', sp : 'Spritwood', ep : 'Jct Hwy 4' },
RDSK000316 : { pr : 'SK', sp : 'Jct Hwy 4', ep : 'Jct Hwy 26' },
RDSK000317 : { pr : 'SK', sp : 'Jct Hwy 26', ep : 'Jct Hwy 17' },
RDSK000401 : { pr : 'SK', sp : 'U.S. Border', ep : 'Val Marie' },
RDSK000402 : { pr : 'SK', sp : 'Val Marie', ep : 'Cadillac' },
RDSK000403 : { pr : 'SK', sp : 'Cadillac', ep : 'Swift Current' },
RDSK000404 : { pr : 'SK', sp : 'Swift Current', ep : 'Saskatchewan Landing' },
RDSK000405 : { pr : 'SK', sp : 'Saskatchewan Landing', ep : 'Kyle' },
RDSK000406 : { pr : 'SK', sp : 'Kyle', ep : 'Elrose' },
RDSK000407 : { pr : 'SK', sp : 'Elrose', ep : 'Rosetown' },
RDSK000408 : { pr : 'SK', sp : 'Rosetown', ep : 'Grid 768' },
RDSK000409 : { pr : 'SK', sp : 'Grid 768', ep : 'Biggar' },
RDSK000410 : { pr : 'SK', sp : 'Biggar', ep : 'Cando' },
RDSK000411 : { pr : 'SK', sp : 'Cando', ep : 'North Battleford' },
RDSK000412 : { pr : 'SK', sp : 'North Battleford', ep : 'Battlefords Prov. Park Acc.' },
RDSK000413 : { pr : 'SK', sp : 'Battlefords Prov. Park Acc.', ep : 'Glaslyn' },
RDSK000414 : { pr : 'SK', sp : 'Glaslyn', ep : 'Meadow Lake' },
RDSK000415 : { pr : 'SK', sp : 'Jct Hwy 55', ep : 'Jct Hwy 224' },
RDSK000501 : { pr : 'SK', sp : 'Manitoba Border', ep : 'Highway 57' },
RDSK000502 : { pr : 'SK', sp : 'Highway 57', ep : 'Kamsack' },
RDSK000503 : { pr : 'SK', sp : 'Kamsack', ep : 'Canora' },
RDSK000504 : { pr : 'SK', sp : 'Canora', ep : 'Rama' },
RDSK000505 : { pr : 'SK', sp : 'Rama', ep : 'Wadena' },
RDSK000506 : { pr : 'SK', sp : 'Wadena', ep : 'Quill Lake' },
RDSK000507 : { pr : 'SK', sp : 'Quill Lake', ep : 'Watson' },
RDSK000508 : { pr : 'SK', sp : 'Watson', ep : 'Humboldt' },
RDSK000509 : { pr : 'SK', sp : 'Humboldt', ep : 'Jct Hwy 2' },
RDSK000510 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Saskatoon' },
RDSK000601 : { pr : 'SK', sp : 'U.S. Border', ep : 'Ceylon' },
RDSK000602 : { pr : 'SK', sp : 'Ceylon', ep : 'Jct Hwy 13' },
RDSK000603 : { pr : 'SK', sp : 'Jct Hwy 13', ep : '25.94km N of Jct Hwy 13' },
RDSK000604 : { pr : 'SK', sp : '25.94km N of Jct Hwy 13', ep : 'Jct Hwy 39' },
RDSK000605 : { pr : 'SK', sp : 'Jct Hwy 39', ep : 'Jct Hwy 306' },
RDSK000606 : { pr : 'SK', sp : 'Jct Hwy 306', ep : 'Regina' },
RDSK000607 : { pr : 'SK', sp : 'Regina', ep : 'Piapot Grid' },
RDSK000608 : { pr : 'SK', sp : 'Piapot Grid', ep : 'Southey' },
RDSK000609 : { pr : 'SK', sp : 'Southey', ep : 'Raymore' },
RDSK000610 : { pr : 'SK', sp : 'Raymore', ep : 'Dafoe' },
RDSK000611 : { pr : 'SK', sp : 'Dafoe', ep : 'Leroy Access' },
RDSK000612 : { pr : 'SK', sp : 'Leroy Access', ep : 'Watson' },
RDSK000613 : { pr : 'SK', sp : 'Watson', ep : 'Naicam' },
RDSK000614 : { pr : 'SK', sp : 'Naicam', ep : 'Silver Park' },
RDSK000615 : { pr : 'SK', sp : 'Silver Park', ep : 'Melfort' },
RDSK000616 : { pr : 'SK', sp : 'Melfort', ep : 'Gronlid' },
RDSK000617 : { pr : 'SK', sp : 'Gronlid', ep : 'George Willis Bridge' },
RDSK000618 : { pr : 'SK', sp : 'George Willis Bridge', ep : 'Jct Hwy 55' },
RDSK000701 : { pr : 'SK', sp : 'Saskatoon', ep : 'Jct Hwy 60' },
RDSK000702 : { pr : 'SK', sp : 'Jct Hwy 60', ep : 'Delisle' },
RDSK000703 : { pr : 'SK', sp : 'Delisle', ep : 'Rosetown' },
RDSK000704 : { pr : 'SK', sp : 'Rosetown', ep : 'Fiske' },
RDSK000705 : { pr : 'SK', sp : 'Fiske', ep : 'Kindersley' },
RDSK000706 : { pr : 'SK', sp : 'Kindersley', ep : 'Alberta Border' },
RDSK000801 : { pr : 'SK', sp : 'U.S. Border', ep : 'Jct Hwy 18' },
RDSK000802 : { pr : 'SK', sp : 'Jct Hwy 18', ep : 'Jct Hwy 361' },
RDSK000803 : { pr : 'SK', sp : 'Jct Hwy 361', ep : 'Jct Hwy 13' },
RDSK000804 : { pr : 'SK', sp : 'Jct Hwy 13', ep : 'Jct Hwy 48' },
RDSK000805 : { pr : 'SK', sp : 'Jct Hwy 48', ep : 'Moosomin' },
RDSK000806 : { pr : 'SK', sp : 'Moosomin', ep : 'Qu\'Appelle Valley' },
RDSK000807 : { pr : 'SK', sp : 'Qu\'Appelle Valley', ep : 'Spy Hill' },
RDSK000808 : { pr : 'SK', sp : 'Spy Hill', ep : 'Jct Hwy 16' },
RDSK000809 : { pr : 'SK', sp : 'Jct Hwy 16', ep : 'Jct Hwy 381' },
RDSK000810 : { pr : 'SK', sp : 'Jct Hwy 381', ep : 'Jct Hwy 10' },
RDSK000811 : { pr : 'SK', sp : 'Jct Hwy 10', ep : 'Kamsack' },
RDSK000812 : { pr : 'SK', sp : 'Kamsack', ep : 'Pelly' },
RDSK000813 : { pr : 'SK', sp : 'Jct Hwy 49', ep : 'Swan Plain' },
RDSK000814 : { pr : 'SK', sp : 'Swan Plain', ep : 'Forest Boundary' },
RDSK000901 : { pr : 'SK', sp : 'U.S. Border', ep : 'Jct Hwy 18' },
RDSK000902 : { pr : 'SK', sp : 'Jct Hwy 18', ep : 'Jct Hwy 361' },
RDSK000903 : { pr : 'SK', sp : 'Jct Hwy 361', ep : 'Carlyle' },
RDSK000904 : { pr : 'SK', sp : 'Carlyle', ep : 'North Jct Hwy 48' },
RDSK000905 : { pr : 'SK', sp : 'North Jct Hwy 48', ep : 'Whitewood' },
RDSK000906 : { pr : 'SK', sp : 'Whitewood', ep : 'Jct Hwy 22' },
RDSK000907 : { pr : 'SK', sp : 'Jct Hwy 22', ep : 'Jct Hwy 15' },
RDSK000908 : { pr : 'SK', sp : 'Jct Hwy 15', ep : 'Yorkton' },
RDSK000909 : { pr : 'SK', sp : 'Yorkton', ep : 'Canora' },
RDSK000910 : { pr : 'SK', sp : 'Canora', ep : 'Jct Hwy 49' },
RDSK000911 : { pr : 'SK', sp : 'Jct Hwy 49', ep : 'Preeceville' },
RDSK000912 : { pr : 'SK', sp : 'Preeceville', ep : 'Usherville' },
RDSK000913 : { pr : 'SK', sp : 'Usherville', ep : 'Jct Hwy 983' },
RDSK000914 : { pr : 'SK', sp : 'Jct Hwy 983', ep : 'Jct Hwy 23' },
RDSK000915 : { pr : 'SK', sp : 'Jct Hwy 23', ep : 'Hudson Bay' },
RDSK000916 : { pr : 'SK', sp : 'Hudson Bay', ep : 'Ruby Lake Access' },
RDSK000917 : { pr : 'SK', sp : 'Ruby Lake Access', ep : 'Manitoba Border' },
RDSK001001 : { pr : 'SK', sp : 'Manitoba Border', ep : 'Wroxton' },
RDSK001002 : { pr : 'SK', sp : 'Wroxton', ep : 'Yorkton' },
RDSK001003 : { pr : 'SK', sp : 'Yorkton', ep : 'Melville' },
RDSK001004 : { pr : 'SK', sp : 'Melville', ep : 'Balcarres' },
RDSK001005 : { pr : 'SK', sp : 'Balcarres', ep : 'Fort Qu\'Appelle' },
RDSK001006 : { pr : 'SK', sp : 'Fort Qu\'Appelle', ep : 'Balgonie' },
RDSK001101 : { pr : 'SK', sp : 'Regina', ep : 'Lumsden' },
RDSK001102 : { pr : 'SK', sp : 'Lumsden', ep : 'Bethune' },
RDSK001103 : { pr : 'SK', sp : 'Bethune', ep : 'E. Jct Hwy 2' },
RDSK001104 : { pr : 'SK', sp : 'E. Jct Hwy 2', ep : 'Aylesbury' },
RDSK001105 : { pr : 'SK', sp : 'Aylesbury', ep : 'Davidson' },
RDSK001106 : { pr : 'SK', sp : 'Davidson', ep : 'Kenaston' },
RDSK001107 : { pr : 'SK', sp : 'Kenaston', ep : 'Dundurn' },
RDSK001108 : { pr : 'SK', sp : 'Dundurn', ep : 'Saskatoon' },
RDSK001109 : { pr : 'SK', sp : 'Jct Hwy 12', ep : 'Osler' },
RDSK001110 : { pr : 'SK', sp : 'Osler', ep : 'Rosthern' },
RDSK001111 : { pr : 'SK', sp : 'Rosthern', ep : 'Duck Lake' },
RDSK001112 : { pr : 'SK', sp : 'Duck Lake', ep : 'MacDowall' },
RDSK001113 : { pr : 'SK', sp : 'MacDowall', ep : 'Prince Albert' },
RDSK001201 : { pr : 'SK', sp : 'Saskatoon', ep : 'Jct Hwy 305' },
RDSK001202 : { pr : 'SK', sp : 'Jct Hwy 305', ep : 'Jct Hwy 312' },
RDSK001203 : { pr : 'SK', sp : 'Jct Hwy 312', ep : 'Petrofka Bridge' },
RDSK001204 : { pr : 'SK', sp : 'Petrofka Bridge', ep : 'Blaine Lake' },
RDSK001205 : { pr : 'SK', sp : 'Blaine Lake', ep : '39 Km N. of Blaine Lake' },
RDSK001206 : { pr : 'SK', sp : '39 Km N. of Blaine Lake', ep : 'Shell Lake' },
RDSK001301 : { pr : 'SK', sp : 'Manitoba Border', ep : 'Jct Hwy 8' },
RDSK001302 : { pr : 'SK', sp : 'Jct Hwy 8', ep : 'W. Jct Hwy 9' },
RDSK001303 : { pr : 'SK', sp : 'W. Jct Hwy 9', ep : 'Jct Hwy 47' },
RDSK001304 : { pr : 'SK', sp : 'Stoughton', ep : 'Weyburn' },
RDSK001305 : { pr : 'SK', sp : 'Weyburn', ep : 'Jct Hwy 28' },
RDSK001306 : { pr : 'SK', sp : 'Jct Hwy 28', ep : 'Highway 6' },
RDSK001307 : { pr : 'SK', sp : 'Highway 6', ep : 'Highway 34' },
RDSK001308 : { pr : 'SK', sp : 'Jct Hwy 34', ep : 'East Jct Hwy 36' },
RDSK001309 : { pr : 'SK', sp : 'East Jct Hwy 36', ep : 'Assiniboia' },
RDSK001310 : { pr : 'SK', sp : 'Assiniboia', ep : 'Lafleche' },
RDSK001311 : { pr : 'SK', sp : 'Lafleche', ep : 'Kincaid' },
RDSK001312 : { pr : 'SK', sp : 'Kincaid', ep : 'Aneroid' },
RDSK001313 : { pr : 'SK', sp : 'Aneroid', ep : 'Cadillac' },
RDSK001314 : { pr : 'SK', sp : 'Cadillac', ep : 'Jct Hwy 37' },
RDSK001315 : { pr : 'SK', sp : 'Shaunavon', ep : 'Eastend' },
RDSK001316 : { pr : 'SK', sp : 'Eastend', ep : 'North Jct Hwy 21' },
RDSK001317 : { pr : 'SK', sp : 'North Jct Hwy 21', ep : 'Alberta Border' },
RDSK001401 : { pr : 'SK', sp : 'Saskatoon', ep : 'Asquith' },
RDSK001402 : { pr : 'SK', sp : 'Asquith', ep : 'Perdue' },
RDSK001403 : { pr : 'SK', sp : 'Perdue', ep : 'Biggar' },
RDSK001404 : { pr : 'SK', sp : 'Biggar', ep : 'Landis' },
RDSK001405 : { pr : 'SK', sp : 'Landis', ep : 'Wilkie' },
RDSK001406 : { pr : 'SK', sp : 'Wilkie', ep : 'Unity' },
RDSK001407 : { pr : 'SK', sp : 'Unity', ep : 'Alberta Border' },
RDSK001501 : { pr : 'SK', sp : 'Jct Hwy 16', ep : 'Jct Hwy 9' },
RDSK001502 : { pr : 'SK', sp : 'Jct Hwy 9', ep : 'Melville' },
RDSK001503 : { pr : 'SK', sp : 'Melville', ep : 'Goodeve' },
RDSK001504 : { pr : 'SK', sp : 'Goodeve', ep : 'Ituna' },
RDSK001505 : { pr : 'SK', sp : 'Ituna', ep : 'Leross' },
RDSK001506 : { pr : 'SK', sp : 'Leross', ep : 'Jct Hwy 6' },
RDSK001507 : { pr : 'SK', sp : 'Raymore', ep : 'Jct Hwy 20' },
RDSK001508 : { pr : 'SK', sp : 'Jct Hwy 20', ep : 'Jct Hwy 2' },
RDSK001509 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Farrerdale' },
RDSK001510 : { pr : 'SK', sp : 'Farrerdale', ep : 'Kenaston' },
RDSK001511 : { pr : 'SK', sp : 'Kenaston', ep : 'Jct Hwy 19' },
RDSK001512 : { pr : 'SK', sp : 'Jct Hwy 19', ep : 'Jct Hwy 219' },
RDSK001513 : { pr : 'SK', sp : 'Jct Hwy 219', ep : 'Outlook' },
RDSK001514 : { pr : 'SK', sp : 'Outlook', ep : 'Jct Hwy 42' },
RDSK001515 : { pr : 'SK', sp : 'Jct Hwy 42', ep : 'Jct Hwy 4' },
RDSK001601 : { pr : 'SK', sp : 'Manitoba Border', ep : 'Churchbridge' },
RDSK001602 : { pr : 'SK', sp : 'Churchbridge', ep : 'Yorkton' },
RDSK001603 : { pr : 'SK', sp : 'Yorkton', ep : 'Jct Hwy 47' },
RDSK001604 : { pr : 'SK', sp : 'Jct Hwy 47', ep : 'Sheho' },
RDSK001605 : { pr : 'SK', sp : 'Sheho', ep : 'Foam Lake' },
RDSK001606 : { pr : 'SK', sp : 'Foam Lake', ep : 'Elfros' },
RDSK001607 : { pr : 'SK', sp : 'Elfros', ep : 'Dafoe' },
RDSK001608 : { pr : 'SK', sp : 'Jct Hwy 6', ep : 'Jct Hwy 20' },
RDSK001609 : { pr : 'SK', sp : 'Jct Hwy 20', ep : 'Jct Hwy 2' },
RDSK001610 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Saskatoon' },
RDSK001611 : { pr : 'SK', sp : 'Saskatoon', ep : 'Langham' },
RDSK001612 : { pr : 'SK', sp : 'Langham', ep : 'Borden Bridge' },
RDSK001613 : { pr : 'SK', sp : 'Borden Bridge', ep : 'Radisson' },
RDSK001614 : { pr : 'SK', sp : 'Radisson', ep : 'Maymont' },
RDSK001615 : { pr : 'SK', sp : 'Maymont', ep : 'North Battleford' },
RDSK001616 : { pr : 'SK', sp : 'North Battleford', ep : 'Paynton' },
RDSK001617 : { pr : 'SK', sp : 'Paynton', ep : 'Maidstone' },
RDSK001618 : { pr : 'SK', sp : 'Maidstone', ep : 'Marshall' },
RDSK001619 : { pr : 'SK', sp : 'Marshall', ep : 'Lloydminster' },
RDSK001701 : { pr : 'SK', sp : 'Jct Hwy 14', ep : 'Jct Hwy 40' },
RDSK001702 : { pr : 'SK', sp : 'Jct Hwy 40', ep : 'Lloydminster' },
RDSK001703 : { pr : 'SK', sp : 'Lloydminster', ep : 'Jct Hwy 3' },
RDSK001704 : { pr : 'SK', sp : 'Jct Hwy 3', ep : 'Baynton Bridge' },
RDSK001705 : { pr : 'SK', sp : 'Baynton Bridge', ep : 'Onion Lake' },
RDSK001801 : { pr : 'SK', sp : 'Manitoba Border', ep : 'Carnduff' },
RDSK001802 : { pr : 'SK', sp : 'Carnduff', ep : 'Jct Hwy 9' },
RDSK001803 : { pr : 'SK', sp : 'Jct Hwy 9', ep : 'Jct Hwy 39' },
RDSK001804 : { pr : 'SK', sp : 'Jct Hwy 47', ep : 'Jct Hwy 350' },
RDSK001805 : { pr : 'SK', sp : 'Jct Hwy 350', ep : 'Jct Hwy 35' },
RDSK001806 : { pr : 'SK', sp : 'Jct Hwy 35', ep : 'Jct Hwy 28' },
RDSK001807 : { pr : 'SK', sp : 'Jct Hwy 28', ep : 'Jct Hwy 6' },
RDSK001808 : { pr : 'SK', sp : 'Jct Hwy 6', ep : 'Jct Hwy 34' },
RDSK001809 : { pr : 'SK', sp : 'Jct Hwy 34', ep : 'Hwy 36 - east jct' },
RDSK001810 : { pr : 'SK', sp : 'Highway 36 - east jct', ep : 'Rockglen' },
RDSK001811 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Wood Mountain' },
RDSK001812 : { pr : 'SK', sp : 'Wood Mountain', ep : 'McCord' },
RDSK001813 : { pr : 'SK', sp : 'McCord', ep : 'Jct Hwy 19' },
RDSK001814 : { pr : 'SK', sp : 'Jct Hwy 19', ep : 'Ponteix Grid 628' },
RDSK001815 : { pr : 'SK', sp : 'Ponteix Grid 628', ep : 'Val Marie' },
RDSK001816 : { pr : 'SK', sp : 'Jct Hwy 4', ep : 'Climax' },
RDSK001817 : { pr : 'SK', sp : 'Climax', ep : 'Jct Hwy 13' },
RDSK001901 : { pr : 'SK', sp : 'Jct Hwy 18', ep : 'Kincaid' },
RDSK001902 : { pr : 'SK', sp : 'Kincaid', ep : 'North Jct Hwy 363' },
RDSK001903 : { pr : 'SK', sp : 'North Jct Hwy 363', ep : 'Jct Hwy 1' },
RDSK001904 : { pr : 'SK', sp : 'Chaplin', ep : 'Central Butte' },
RDSK001905 : { pr : 'SK', sp : 'Jct Hwy 42', ep : 'Elbow' },
RDSK001906 : { pr : 'SK', sp : 'Elbow', ep : 'Jct Hwy 44' },
RDSK001907 : { pr : 'SK', sp : 'Jct Hwy 44', ep : 'Jct Hwy 15' },
RDSK002001 : { pr : 'SK', sp : 'Lumsden', ep : 'Jct Hwy 322' },
RDSK002002 : { pr : 'SK', sp : 'Jct Hwy 322', ep : 'Jct Hwy 22' },
RDSK002003 : { pr : 'SK', sp : 'Jct Hwy 22', ep : 'South Jct Hwy 15' },
RDSK002004 : { pr : 'SK', sp : 'South Jct Hwy 15', ep : 'North Jct Hwy 15' },
RDSK002005 : { pr : 'SK', sp : 'North Jct Hwy 15', ep : 'Jct Hwy 16' },
RDSK002006 : { pr : 'SK', sp : 'Jct Hwy 16', ep : 'Humboldt' },
RDSK002007 : { pr : 'SK', sp : 'Humboldt', ep : '1.6 km N. of Pilger' },
RDSK002008 : { pr : 'SK', sp : '1.6 km N. of Pilger', ep : 'Middle Lake Access' },
RDSK002009 : { pr : 'SK', sp : 'Middle Lake', ep : 'Jct Hwy 41' },
RDSK002010 : { pr : 'SK', sp : 'Jct Hwy 41', ep : 'Jct Hwy 320' },
RDSK002011 : { pr : 'SK', sp : 'Jct Hwy 320', ep : 'Jct Hwy 3' },
RDSK002101 : { pr : 'SK', sp : 'U.S. Border', ep : 'Jct Hwy 13' },
RDSK002102 : { pr : 'SK', sp : 'Jct Hwy 13', ep : 'Cypress Park Access' },
RDSK002103 : { pr : 'SK', sp : 'Cypress Park Access', ep : 'Jct Hwy 1' },
RDSK002104 : { pr : 'SK', sp : 'Jct Hwy 1', ep : 'Fox Valley' },
RDSK002105 : { pr : 'SK', sp : 'Fox Valley', ep : 'Leader' },
RDSK002106 : { pr : 'SK', sp : 'Leader', ep : 'Jct Hwy 44' },
RDSK002107 : { pr : 'SK', sp : 'Glidden', ep : 'Kindersley' },
RDSK002108 : { pr : 'SK', sp : 'Kindersley', ep : 'South Jct Hwy 31' },
RDSK002109 : { pr : 'SK', sp : 'South Jct Hwy 31', ep : 'Kerrobert' },
RDSK002110 : { pr : 'SK', sp : 'Kerrobert', ep : 'Revenue Grid' },
RDSK002111 : { pr : 'SK', sp : 'Revenue Grid', ep : 'Unity' },
RDSK002112 : { pr : 'SK', sp : 'Unity', ep : 'Jct Hwy 40' },
RDSK002113 : { pr : 'SK', sp : 'Jct Hwy 40', ep : 'Jct Hwy 16' },
RDSK002114 : { pr : 'SK', sp : 'Jct Hwy 16', ep : 'South Jct Hwy 303' },
RDSK002115 : { pr : 'SK', sp : 'South Jct Hwy 303', ep : 'East Jct Hwy 3' },
RDSK002116 : { pr : 'SK', sp : 'West Jct Hwy 3', ep : 'Peck Lake' },
RDSK002117 : { pr : 'SK', sp : 'Peck Lake', ep : 'Pierceland' },
RDSK002118 : { pr : 'SK', sp : 'Pierceland', ep : 'Meadow Lake Park' },
RDSK002201 : { pr : 'SK', sp : 'Manitoba Border', ep : 'South Jct Hwy 8' },
RDSK002202 : { pr : 'SK', sp : 'North Jct Hwy 8', ep : 'Jct Hwy 9' },
RDSK002203 : { pr : 'SK', sp : 'Jct Hwy 9', ep : 'Jct Hwy 47' },
RDSK002204 : { pr : 'SK', sp : 'Jct Hwy 47', ep : 'Jct Hwy 10' },
RDSK002205 : { pr : 'SK', sp : 'Jct Hwy 35', ep : 'Dysart' },
RDSK002206 : { pr : 'SK', sp : 'Dysart', ep : 'Jct Hwy 6' },
RDSK002207 : { pr : 'SK', sp : 'Jct Hwy 6', ep : 'Jct Hwy 20' },
RDSK002301 : { pr : 'SK', sp : 'Jct Hwy 9', ep : 'Weekes Access' },
RDSK002302 : { pr : 'SK', sp : 'Weekes Access', ep : 'Somme' },
RDSK002303 : { pr : 'SK', sp : 'Somme', ep : 'Jct Hwy 38' },
RDSK002304 : { pr : 'SK', sp : 'Jct Hwy 38', ep : 'South Jct Hwy 3' },
RDSK002305 : { pr : 'SK', sp : 'North Jct Hwy 3', ep : 'Jct Hwy 335' },
RDSK002306 : { pr : 'SK', sp : 'Jct Hwy 335', ep : 'Jct Hwy 55' },
RDSK002401 : { pr : 'SK', sp : 'Spiritwood', ep : 'Leoville' },
RDSK002402 : { pr : 'SK', sp : 'Leoville', ep : 'Chitek Lake' },
RDSK002501 : { pr : 'SK', sp : 'Jct Hwy 3', ep : 'Jct Hwy 2' },
RDSK002601 : { pr : 'SK', sp : 'Jct Hwy 4', ep : 'Vawn' },
RDSK002602 : { pr : 'SK', sp : 'Vawn', ep : 'Turtleford' },
RDSK002603 : { pr : 'SK', sp : 'Turtleford', ep : 'St. Walburg' },
RDSK002604 : { pr : 'SK', sp : 'St. Walburg', ep : 'Loon Lake' },
RDSK002605 : { pr : 'SK', sp : 'Loon Lake', ep : 'Goodsoil' },
RDSK002701 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Jct Hwy 41' },
RDSK002801 : { pr : 'SK', sp : 'Jct Hwy 18', ep : 'Jct Hwy 377' },
RDSK002802 : { pr : 'SK', sp : 'Jct Hwy 377', ep : 'Jct Hwy 13' },
RDSK002901 : { pr : 'SK', sp : 'Wilkie', ep : 'Grid 787' },
RDSK002902 : { pr : 'SK', sp : 'Grid 787', ep : 'Battleford' },
RDSK003001 : { pr : 'SK', sp : 'Eston Regional Park', ep : 'Eston' },
RDSK003002 : { pr : 'SK', sp : 'Eston', ep : 'Jct Hwy 7' },
RDSK003101 : { pr : 'SK', sp : 'Jct Hwy 4', ep : 'Herschel Access' },
RDSK003102 : { pr : 'SK', sp : 'Herschel Access', ep : 'Grid 656' },
RDSK003103 : { pr : 'SK', sp : 'Grid 656', ep : 'Plenty' },
RDSK003104 : { pr : 'SK', sp : 'Plenty', ep : 'Jct Hwy 21' },
RDSK003105 : { pr : 'SK', sp : 'Kerrobert', ep : 'Luseland' },
RDSK003106 : { pr : 'SK', sp : 'Luseland', ep : '6.9 km W. of Denzil' },
RDSK003107 : { pr : 'SK', sp : '6.9 km W. of Denzil', ep : 'Jct Hwy 14' },
RDSK003201 : { pr : 'SK', sp : 'Jct Hwy 1', ep : 'Jct Hwy 332' },
RDSK003202 : { pr : 'SK', sp : 'Jct Hwy 332', ep : 'Cabri' },
RDSK003203 : { pr : 'SK', sp : 'Cabri', ep : 'Lancer' },
RDSK003204 : { pr : 'SK', sp : 'Lancer', ep : 'Leader' },
RDSK003301 : { pr : 'SK', sp : 'Stoughton', ep : 'Fillmore' },
RDSK003302 : { pr : 'SK', sp : 'Fillmore', ep : 'Francis' },
RDSK003303 : { pr : 'SK', sp : 'Francis', ep : 'Kronau' },
RDSK003304 : { pr : 'SK', sp : 'Kronau', ep : 'Regina' },
RDSK003401 : { pr : 'SK', sp : 'U.S. Border', ep : 'Grid 705' },
RDSK003402 : { pr : 'SK', sp : 'Grid 705', ep : 'Jct Hwy 13' },
RDSK003501 : { pr : 'SK', sp : 'U.S. Border', ep : 'Jct Hwy 18' },
RDSK003502 : { pr : 'SK', sp : 'Jct Hwy 18', ep : 'Colgate Access' },
RDSK003503 : { pr : 'SK', sp : 'Colgate Access', ep : 'Weyburn' },
RDSK003504 : { pr : 'SK', sp : 'Weyburn', ep : 'Jct Hwy 306' },
RDSK003505 : { pr : 'SK', sp : 'Jct Hwy 306', ep : 'Jct Hwy 33' },
RDSK003506 : { pr : 'SK', sp : 'Jct Hwy 33', ep : 'Jct Hwy 48' },
RDSK003507 : { pr : 'SK', sp : 'Jct Hwy 48', ep : 'Jct Hwy 1' },
RDSK003508 : { pr : 'SK', sp : 'Jct Hwy 1', ep : 'Jct Hwy 10' },
RDSK003509 : { pr : 'SK', sp : 'Fort Qu\'Appelle', ep : 'Lipton' },
RDSK003510 : { pr : 'SK', sp : 'Lipton', ep : 'Leross' },
RDSK003511 : { pr : 'SK', sp : 'Leross', ep : 'Elfros' },
RDSK003512 : { pr : 'SK', sp : 'Elfros', ep : 'Wadena' },
RDSK003513 : { pr : 'SK', sp : 'Wadena', ep : 'Jct Hwy 49' },
RDSK003514 : { pr : 'SK', sp : 'Jct Hwy 49', ep : 'North Jct Hwy 349' },
RDSK003515 : { pr : 'SK', sp : 'Jct Hwy 349', ep : 'Barrier River' },
RDSK003516 : { pr : 'SK', sp : 'Barrier River', ep : 'Tisdale' },
RDSK003517 : { pr : 'SK', sp : 'Tisdale', ep : 'Jct Hwy 335' },
RDSK003518 : { pr : 'SK', sp : 'Jct Hwy 335', ep : 'Nipawin' },
RDSK003519 : { pr : 'SK', sp : 'Jct Hwy 55', ep : 'Carroll\'s Cove Access' },
RDSK003520 : { pr : 'SK', sp : 'Carroll\'s Cove Access', ep : 'Roads End' },
RDSK003601 : { pr : 'SK', sp : 'U.S. Border', ep : 'West Jct Hwy 18' },
RDSK003602 : { pr : 'SK', sp : 'West Jct Hwy 18', ep : 'Willow Bunch' },
RDSK003603 : { pr : 'SK', sp : 'Willow Bunch', ep : 'Jct Hwy 13' },
RDSK003604 : { pr : 'SK', sp : 'Jct Hwy 13', ep : 'Jct Hwy 2' },
RDSK003701 : { pr : 'SK', sp : 'U.S. Border', ep : 'Climax' },
RDSK003702 : { pr : 'SK', sp : 'Climax', ep : 'Shaunavon' },
RDSK003703 : { pr : 'SK', sp : 'Shaunavon', ep : 'Gull Lake' },
RDSK003704 : { pr : 'SK', sp : 'Gull Lake', ep : 'Cabri' },
RDSK003801 : { pr : 'SK', sp : 'Jct Hwy 5', ep : 'Jct Hwy 49' },
RDSK003802 : { pr : 'SK', sp : 'Jct Hwy 49', ep : 'Perigord' },
RDSK003803 : { pr : 'SK', sp : 'Perigord', ep : 'Jct Hwy 23' },
RDSK003901 : { pr : 'SK', sp : 'U.S. Border', ep : 'Jct Hwy 18' },
RDSK003902 : { pr : 'SK', sp : 'Jct Hwy 18', ep : 'Estevan' },
RDSK003903 : { pr : 'SK', sp : 'Estevan', ep : 'Midale' },
RDSK003904 : { pr : 'SK', sp : 'Midale', ep : 'Weyburn' },
RDSK003905 : { pr : 'SK', sp : 'Weyburn', ep : 'Yellow Grass' },
RDSK003906 : { pr : 'SK', sp : 'Yellow Grass', ep : 'Jct Hwy 6' },
RDSK003907 : { pr : 'SK', sp : 'Jct Hwy 6', ep : 'Jct Hwy 339' },
RDSK003908 : { pr : 'SK', sp : 'Jct Hwy 339', ep : 'Jct Hwy 1' },
RDSK004001 : { pr : 'SK', sp : 'Wilbert', ep : 'Alberta Border' },
RDSK004002 : { pr : 'SK', sp : 'Battleford', ep : 'Wilbert' },
RDSK004003 : { pr : 'SK', sp : 'Jct Hwy 376', ep : 'North Battleford' },
RDSK004004 : { pr : 'SK', sp : 'Hafford', ep : 'Jct Hwy 376' },
RDSK004005 : { pr : 'SK', sp : 'Blaine Lake', ep : 'Hafford' },
RDSK004006 : { pr : 'SK', sp : 'Blaine Lake', ep : 'Leask' },
RDSK004007 : { pr : 'SK', sp : 'Leask', ep : 'Jct Hwy 3' },
RDSK004101 : { pr : 'SK', sp : 'Melfort', ep : 'Jct Hwy 368' },
RDSK004102 : { pr : 'SK', sp : 'Jct Hwy 368', ep : 'Jct Hwy 20' },
RDSK004103 : { pr : 'SK', sp : 'Jct Hwy 20', ep : 'Jct Hwy 2' },
RDSK004104 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Jct Hwy 27' },
RDSK004105 : { pr : 'SK', sp : 'Jct Hwy 27', ep : 'Jct Hwy 5' },
RDSK004201 : { pr : 'SK', sp : 'Jct Hwy 2', ep : '2 km west of Keeler' },
RDSK004202 : { pr : 'SK', sp : '2 km west of Keeler', ep : 'Hwy 19 - north jct' },
RDSK004203 : { pr : 'SK', sp : 'Hwy 19 - north jct', ep : 'Diefenbaker Lake' },
RDSK004204 : { pr : 'SK', sp : 'Diefenbaker Lake', ep : 'Lucky Lake' },
RDSK004205 : { pr : 'SK', sp : 'Lucky Lake', ep : 'Jct Hwy 342' },
RDSK004206 : { pr : 'SK', sp : 'Jct Hwy 342', ep : 'Dinsmore' },
RDSK004207 : { pr : 'SK', sp : 'Jct Hwy 44', ep : 'Jct Hwy 15' },
RDSK004301 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Palmer' },
RDSK004302 : { pr : 'SK', sp : 'Palmer', ep : 'Gravelbourg' },
RDSK004303 : { pr : 'SK', sp : 'West limits Gravelbourg', ep : 'Jct Hwy 19' },
RDSK004304 : { pr : 'SK', sp : 'Jct Hwy 19', ep : 'Vanguard' },
RDSK004305 : { pr : 'SK', sp : 'Vanguard', ep : 'Jct Hwy 4' },
RDSK004401 : { pr : 'SK', sp : 'Davidson', ep : 'Jct Hwy 19' },
RDSK004402 : { pr : 'SK', sp : 'Jct Hwy 19', ep : 'Jct Hwy 219' },
RDSK004403 : { pr : 'SK', sp : 'Jct Hwy 219', ep : 'Jct Hwy 45' },
RDSK004404 : { pr : 'SK', sp : 'Jcn Hwy 45', ep : 'West Jct Hwy 42' },
RDSK004405 : { pr : 'SK', sp : 'Dinsmore', ep : 'Jct Hwy 4' },
RDSK004406 : { pr : 'SK', sp : 'Jct Hwy 4', ep : 'Eston' },
RDSK004407 : { pr : 'SK', sp : 'Eston', ep : 'South Jct Hwy 21' },
RDSK004408 : { pr : 'SK', sp : 'Jct Hwy 21', ep : 'Alsask' },
RDSK004501 : { pr : 'SK', sp : 'Lucky Lake', ep : 'Birsay' },
RDSK004502 : { pr : 'SK', sp : 'Birsay', ep : 'South Jct Hwy 44' },
RDSK004503 : { pr : 'SK', sp : 'South Jct Hwy 44', ep : 'North Jct Hwy 44' },
RDSK004504 : { pr : 'SK', sp : 'North Jct Hwy 44', ep : 'Jct Hwy 15' },
RDSK004505 : { pr : 'SK', sp : 'Jct Hwy 15', ep : 'Swanson' },
RDSK004506 : { pr : 'SK', sp : 'Swanson', ep : 'Delisle' },
RDSK004601 : { pr : 'SK', sp : 'Balgonie', ep : 'Regina' },
RDSK004701 : { pr : 'SK', sp : 'U.S. Border', ep : 'Estevan' },
RDSK004702 : { pr : 'SK', sp : 'Estevan', ep : 'Jct Hwy 361' },
RDSK004703 : { pr : 'SK', sp : 'Jct Hwy 361', ep : 'Jct Hwy 13' },
RDSK004704 : { pr : 'SK', sp : 'Jct Hwy 13', ep : 'Handsworth Road' },
RDSK004705 : { pr : 'SK', sp : 'Handsworth Road', ep : 'Jct Hwy 48' },
RDSK004706 : { pr : 'SK', sp : 'Jct Hwy 48', ep : 'Jct Hwy 1' },
RDSK004707 : { pr : 'SK', sp : 'Jct Hwy 1', ep : 'Jct Hwy 247' },
RDSK004708 : { pr : 'SK', sp : 'Jct Hwy 247', ep : 'Melville' },
RDSK004709 : { pr : 'SK', sp : 'Melville', ep : 'Jct Hwy 52' },
RDSK004710 : { pr : 'SK', sp : 'Jct Hwy 52', ep : 'Jct Hwy 16' },
RDSK004711 : { pr : 'SK', sp : 'Jct Hwy 16', ep : 'Jct Hwy 229' },
RDSK004712 : { pr : 'SK', sp : 'Jct Hwy 229', ep : 'Jct Hwy 5' },
RDSK004713 : { pr : 'SK', sp : 'Buchanan', ep : 'Preeceville' },
RDSK004801 : { pr : 'SK', sp : 'Manitoba Border', ep : 'Jct Hwy 8' },
RDSK004802 : { pr : 'SK', sp : 'Jct Hwy 8', ep : 'Jct Hwy 9' },
RDSK004803 : { pr : 'SK', sp : 'Jct Hwy 9', ep : 'Kennedy' },
RDSK004804 : { pr : 'SK', sp : 'Kennedy', ep : 'Kipling' },
RDSK004805 : { pr : 'SK', sp : 'Kipling', ep : 'Jct Hwy 47' },
RDSK004806 : { pr : 'SK', sp : 'Jct Hwy 47', ep : 'Jct Hwy 35' },
RDSK004807 : { pr : 'SK', sp : 'Jct Hwy 35', ep : 'White City' },
RDSK004901 : { pr : 'SK', sp : 'Manitoba Border', ep : 'West Jct Hwy 8' },
RDSK004902 : { pr : 'SK', sp : 'West Jct Hwy 8', ep : 'Jct Hwy 9' },
RDSK004903 : { pr : 'SK', sp : 'Preeceville', ep : 'Okla' },
RDSK004904 : { pr : 'SK', sp : 'Okla', ep : 'Jct Hwy 38' },
RDSK004905 : { pr : 'SK', sp : 'Jct Hwy 38', ep : 'Jct Hwy 35' },
RDSK005101 : { pr : 'SK', sp : 'Jct Hwy 4', ep : 'Handel Access' },
RDSK005102 : { pr : 'SK', sp : 'Handel Access', ep : 'Kerrobert' },
RDSK005103 : { pr : 'SK', sp : 'Kerrobert', ep : 'North Jcn Hwy 317' },
RDSK005104 : { pr : 'SK', sp : 'North Jct Hwy 317', ep : 'South Jct Hwy 317' },
RDSK005105 : { pr : 'SK', sp : 'South Jcn Hwy 317', ep : 'Alberta Border' },
RDSK005201 : { pr : 'SK', sp : 'Yorkton', ep : 'Jct Hwy 47' },
RDSK005202 : { pr : 'SK', sp : 'Jct Hwy 47', ep : 'Homefield' },
RDSK005203 : { pr : 'SK', sp : 'Homefield', ep : 'Jct Hwy 15' },
RDSK005401 : { pr : 'SK', sp : 'Jct Hwy 11', ep : 'Regina Beach' },
RDSK005501 : { pr : 'SK', sp : 'Jct Hwy 9', ep : 'Shoal Lake Access' },
RDSK005502 : { pr : 'SK', sp : 'Shoal Lake Access', ep : '7 km W. of Red Earth Access' },
RDSK005503 : { pr : 'SK', sp : '7 km W. of Red Earth Access', ep : 'Jct Hwy 123' },
RDSK005504 : { pr : 'SK', sp : 'Jct Hwy 123', ep : 'Nipawin' },
RDSK005505 : { pr : 'SK', sp : 'Nipawin', ep : 'North Jct Hwy 35' },
RDSK005506 : { pr : 'SK', sp : 'North Jct Hwy 35', ep : 'Choiceland' },
RDSK005507 : { pr : 'SK', sp : 'Choiceland', ep : 'Smeaton' },
RDSK005508 : { pr : 'SK', sp : 'Smeaton', ep : 'Meath Park' },
RDSK005509 : { pr : 'SK', sp : 'Meath Park', ep : 'Pulp Mill Access' },
RDSK005510 : { pr : 'SK', sp : 'Pulp Mill Access', ep : 'Prince Albert' },
RDSK005511 : { pr : 'SK', sp : 'Shellbrook', ep : 'Canwood' },
RDSK005512 : { pr : 'SK', sp : 'Canwood', ep : 'Debden' },
RDSK005513 : { pr : 'SK', sp : 'Debden', ep : 'Big River' },
RDSK005514 : { pr : 'SK', sp : 'Big River', ep : 'Jct Hwy 924' },
RDSK005515 : { pr : 'SK', sp : 'Jct Hwy 924', ep : 'Green Lake' },
RDSK005516 : { pr : 'SK', sp : 'Green Lake', ep : 'Jct Hwy 903' },
RDSK005517 : { pr : 'SK', sp : 'Jct Hwy 903', ep : 'Meadow Lake' },
RDSK005518 : { pr : 'SK', sp : 'Meadow Lake', ep : 'Grid 699' },
RDSK005519 : { pr : 'SK', sp : 'Grid 699', ep : 'Waterhen River Road' },
RDSK005520 : { pr : 'SK', sp : 'Waterhen River Road', ep : 'South Jct Hwy 26' },
RDSK005521 : { pr : 'SK', sp : 'Peerless', ep : 'Alberta Border' },
RDSK005601 : { pr : 'SK', sp : 'Indian Head', ep : 'Katepwa' },
RDSK005602 : { pr : 'SK', sp : 'Katepwa', ep : 'Fort Qu\'Apelle' },
RDSK005603 : { pr : 'SK', sp : 'Fort Qu\'Appelle', ep : 'Jct Hwy 210' },
RDSK005701 : { pr : 'SK', sp : 'Manitoba Border', ep : 'Jct Hwy 5' },
RDSK005801 : { pr : 'SK', sp : 'Jct Hwy 18', ep : 'La Fleche' },
RDSK005802 : { pr : 'SK', sp : 'La Fleche', ep : 'Jct Hwy 43' },
RDSK005803 : { pr : 'SK', sp : 'North Limits of Gravelbourg', ep : 'Shamrock' },
RDSK005804 : { pr : 'SK', sp : 'Shamrock', ep : 'Jct Hwy 1' },
RDSK006001 : { pr : 'SK', sp : 'Pike Lake', ep : 'Jct Hwy 7' },
RDSK008001 : { pr : 'SK', sp : 'Esterhazy', ep : 'K-1 Mine' },
RDSK008002 : { pr : 'SK', sp : 'K-1 Mine', ep : 'Churchbridge' },
RDSK008003 : { pr : 'SK', sp : 'Churchbridge', ep : 'Jct Hwy 10' },
RDSK009901 : { pr : 'SK', sp : 'Craven', ep : 'Jct Hwy 6' },
RDSK010201 : { pr : 'SK', sp : 'La Ronge', ep : '31.8km N. of La Ronge' },
RDSK010202 : { pr : 'SK', sp : '31.8km N. of La Ronge', ep : 'McLennan Lake' },
RDSK010203 : { pr : 'SK', sp : 'McLennan Lake', ep : 'Jct Hwy 905' },
RDSK010204 : { pr : 'SK', sp : 'Jct Hwy 905', ep : 'Southend' },
RDSK010601 : { pr : 'SK', sp : 'Jct Hwy 55', ep : 'Jct Hwy 120' },
RDSK010602 : { pr : 'SK', sp : 'Jct Hwy 120', ep : 'Little Bear Lake' },
RDSK010603 : { pr : 'SK', sp : 'Little Bear Lake', ep : 'Jct Hwy 165' },
RDSK010604 : { pr : 'SK', sp : 'Jct Hwy 165', ep : 'Jct Hwy 911' },
RDSK010605 : { pr : 'SK', sp : 'Jct Hwy 911', ep : 'Jct Hwy 135' },
RDSK010606 : { pr : 'SK', sp : 'Jct Hwy 135', ep : 'Creighton' },
RDSK012001 : { pr : 'SK', sp : 'Jct Hwy 55', ep : 'Jct Hwy 265' },
RDSK012002 : { pr : 'SK', sp : 'Jct Hwy 265', ep : 'Jct Hwy 913' },
RDSK012003 : { pr : 'SK', sp : 'Jct Hwy 913', ep : 'Jct Hwy 106' },
RDSK012301 : { pr : 'SK', sp : 'Jct Hwy 55', ep : 'E.B. Campbell Dam' },
RDSK012302 : { pr : 'SK', sp : 'E.B. Campbell Dam', ep : 'Cumberland House' },
RDSK013501 : { pr : 'SK', sp : 'Jct Hwy 106', ep : 'Pelican Narrows' },
RDSK013502 : { pr : 'SK', sp : 'Pelican Narrows', ep : 'Sandy Bay' },
RDSK015501 : { pr : 'SK', sp : 'Green Lake', ep : 'Jct Hwy 165' },
RDSK015502 : { pr : 'SK', sp : 'Jct Hwy 165', ep : 'Buffalo Narrows' },
RDSK015503 : { pr : 'SK', sp : 'Buffalo Narrows', ep : 'La Loche' },
RDSK016501 : { pr : 'SK', sp : 'Jct Hwy 106', ep : 'Jct Hwy 912' },
RDSK016502 : { pr : 'SK', sp : 'Jct Hwy 912', ep : 'North Jct Hwy 2' },
RDSK016503 : { pr : 'SK', sp : 'South Jct Hwy 2', ep : 'Jct Hwy 910' },
RDSK016504 : { pr : 'SK', sp : 'Jct Hwy 910', ep : 'Jct Hwy 914' },
RDSK016505 : { pr : 'SK', sp : 'Jct Hwy 914', ep : '38 km E. of Jct Hwy 155' },
RDSK016506 : { pr : 'SK', sp : '38 km E. of Jc 155', ep : 'Lac La Plonge Access' },
RDSK016507 : { pr : 'SK', sp : 'Lac La Plonge Access', ep : 'Jct Hwy 155' },
RDSK016701 : { pr : 'SK', sp : 'Sturgeon Weir River', ep : 'Denare Beach' },
RDSK016702 : { pr : 'SK', sp : 'Denare Beach', ep : 'Creighton' },
RDSK020101 : { pr : 'SK', sp : 'Jct Hwy 1', ep : 'Jct Hwy 247' },
RDSK020201 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Buffalo Pound Park' },
RDSK020901 : { pr : 'SK', sp : 'Jct Hwy 9', ep : '5 Km W' },
RDSK021001 : { pr : 'SK', sp : 'Jct Hwy 10', ep : 'Echo Valley Park' },
RDSK021002 : { pr : 'SK', sp : 'Echo Valley Park', ep : 'Fort Qu\'Appelle' },
RDSK021101 : { pr : 'SK', sp : 'Jct Hwy 11', ep : 'Blackstrap Prov. Park' },
RDSK021201 : { pr : 'SK', sp : 'Jct Hwy 11', ep : 'Fort Carlton Park' },
RDSK021901 : { pr : 'SK', sp : 'Jct Hwy 44', ep : 'Jct Hwy 15' },
RDSK021902 : { pr : 'SK', sp : 'Jct Hwy 15', ep : 'Grid 764' },
RDSK021903 : { pr : 'SK', sp : 'Grid 764', ep : '3km S. of Whitecap FN' },
RDSK021904 : { pr : 'SK', sp : '3km S. of Whitecap FN', ep : 'Furdale Access Road' },
RDSK021905 : { pr : 'SK', sp : 'Furdale Access Road', ep : 'Saskatoon' },
RDSK022001 : { pr : 'SK', sp : 'Jct Hwy 20', ep : 'Rowan\'s Ravine Park' },
RDSK022101 : { pr : 'SK', sp : 'Jct Hwy 21', ep : 'Cypress Hills Park Gate' },
RDSK022401 : { pr : 'SK', sp : 'Jct Hwy 4', ep : 'Jct Hwy 26' },
RDSK022501 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Batoche' },
RDSK022502 : { pr : 'SK', sp : 'Batoche', ep : 'Jct Hwy 312' },
RDSK022901 : { pr : 'SK', sp : 'Jct Hwy 9', ep : 'Jct Hwy 47' },
RDSK024001 : { pr : 'SK', sp : 'Jct Hwy 55', ep : 'Prince Albert Ntl Park Boundary' },
RDSK024701 : { pr : 'SK', sp : 'Jct Hwy 9', ep : 'Jct Hwy 47' },
RDSK025501 : { pr : 'SK', sp : 'Jct Hwy 55', ep : 'Tobin Lake' },
RDSK026301 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Prince Albert Ntl Park Boundary' },
RDSK026401 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Prince Albert Ntl Park Boundary' },
RDSK026501 : { pr : 'SK', sp : 'Jct Hwy 120', ep : 'Jct Hwy 926' },
RDSK027101 : { pr : 'SK', sp : 'Maple Creek', ep : 'Fort Walsh' },
RDSK030101 : { pr : 'SK', sp : 'Jct Hwy 1', ep : 'Buffalo Pound Park' },
RDSK030201 : { pr : 'SK', sp : 'Weldon Ferry', ep : 'Prince Albert' },
RDSK030202 : { pr : 'SK', sp : 'Prince Albert', ep : '30 km W. of Prince Albert' },
RDSK030301 : { pr : 'SK', sp : 'Turtleford', ep : 'Jct Hwy 21' },
RDSK030302 : { pr : 'SK', sp : 'Jct Hwy 21', ep : 'Jct Hwy 16' },
RDSK030401 : { pr : 'SK', sp : 'Meadow Lake', ep : 'Loon Lake' },
RDSK030501 : { pr : 'SK', sp : 'Jct Hwy 11', ep : 'Jct Hwy 12' },
RDSK030502 : { pr : 'SK', sp : 'Jct Hwy 12', ep : 'Jct Hwy 16' },
RDSK030601 : { pr : 'SK', sp : 'Jct Hwy 35', ep : 'Riceton' },
RDSK030602 : { pr : 'SK', sp : 'Riceton', ep : 'Jct Hwy 6' },
RDSK030701 : { pr : 'SK', sp : 'Jct Hwy 7', ep : '13 km N. of Jct Hwy 7' },
RDSK030702 : { pr : 'SK', sp : '13 km N. of Jct Hwy 7', ep : 'Jct Hwy 21' },
RDSK030801 : { pr : 'SK', sp : 'Manitoba Border', ep : 'Jct Hwy 8' },
RDSK030901 : { pr : 'SK', sp : 'Rhein', ep : 'Jct Hwy 9' },
RDSK031001 : { pr : 'SK', sp : 'Balcarres', ep : 'Ituna' },
RDSK031002 : { pr : 'SK', sp : 'Jct Hwy 52', ep : 'Grid 743' },
RDSK031003 : { pr : 'SK', sp : 'Grid 743', ep : 'Foam Lake' },
RDSK031004 : { pr : 'SK', sp : 'Foam Lake', ep : 'Jct Hwy 5' },
RDSK031201 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Jct Hwy 225' },
RDSK031202 : { pr : 'SK', sp : 'Jct Hwy 225', ep : 'Jct Hwy 11' },
RDSK031203 : { pr : 'SK', sp : 'Jct Hwy 11', ep : 'Jct Hwy 12' },
RDSK031601 : { pr : 'SK', sp : 'Jct Hwy 16', ep : 'Jct Hwy 5' },
RDSK031701 : { pr : 'SK', sp : 'Jct Hwy 7', ep : 'South Jct Hwy 51' },
RDSK031702 : { pr : 'SK', sp : 'North Jct Hwy 51', ep : '12 km N. of N. Jct 51' },
RDSK031703 : { pr : 'SK', sp : '12 km N. of N. Jct 51', ep : 'Jct Hwy 31' },
RDSK031801 : { pr : 'SK', sp : 'Carnduff', ep : 'Alida' },
RDSK032001 : { pr : 'SK', sp : 'Jct Hwy 20', ep : 'Jct Hwy 2' },
RDSK032101 : { pr : 'SK', sp : 'Liebenthal', ep : 'Alberta Border' },
RDSK032201 : { pr : 'SK', sp : 'Jct Hwy 20', ep : 'Jct Hwy 220' },
RDSK032401 : { pr : 'SK', sp : 'Jct Hwy 378', ep : 'Mayfair' },
RDSK033201 : { pr : 'SK', sp : 'Jct Hwy 32', ep : '7.1km W of Hwy 32' },
RDSK033202 : { pr : 'SK', sp : '7.1km W of Hwy 32', ep : 'Hazlet' },
RDSK033401 : { pr : 'SK', sp : 'Jct Hwy 13', ep : 'Jct Hwy 339' },
RDSK033402 : { pr : 'SK', sp : 'Jct Hwy 339', ep : 'Jct Hwy 39' },
RDSK033501 : { pr : 'SK', sp : 'Arborfield', ep : 'Jct Hwy 35' },
RDSK033502 : { pr : 'SK', sp : 'Jct Hwy 35', ep : 'Gronlid' },
RDSK033901 : { pr : 'SK', sp : 'Jct Hwy 334', ep : 'Jct Hwy 39' },
RDSK034001 : { pr : 'SK', sp : 'Jct Hwy 16', ep : 'Jct Hwy 40' },
RDSK034201 : { pr : 'SK', sp : 'Jct Hwy 42', ep : 'Jct Hwy 4' },
RDSK034202 : { pr : 'SK', sp : 'Jct Hwy 4', ep : 'Grid 647' },
RDSK034203 : { pr : 'SK', sp : 'Grid 647', ep : 'Plato Access' },
RDSK034301 : { pr : 'SK', sp : 'Jct Hwy 4', ep : 'Simmie' },
RDSK034901 : { pr : 'SK', sp : 'Jct Hwy 38', ep : 'Archerwill' },
RDSK034902 : { pr : 'SK', sp : 'Jct Hwy 35', ep : 'Jct Hwy 6' },
RDSK035001 : { pr : 'SK', sp : 'U.S. Border', ep : 'Torquay' },
RDSK035401 : { pr : 'SK', sp : 'Jct Hwy 11', ep : 'Dilke' },
RDSK035501 : { pr : 'SK', sp : 'Meath Park', ep : 'Spruce Home' },
RDSK035502 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Sturgeon Lake Reserve' },
RDSK035701 : { pr : 'SK', sp : 'Togo', ep : 'Jct Hwy 8' },
RDSK035801 : { pr : 'SK', sp : 'Wood Mountain', ep : 'Limerick' },
RDSK036101 : { pr : 'SK', sp : 'Manitoba Border', ep : 'Jct Hwy 8' },
RDSK036102 : { pr : 'SK', sp : 'Jct Hwy 8', ep : 'Jct Hwy 318' },
RDSK036103 : { pr : 'SK', sp : 'Jct Hwy 318', ep : 'Jct Hwy 9' },
RDSK036104 : { pr : 'SK', sp : 'Jct Hwy 9', ep : '15 km W. of Jct Hwy 9' },
RDSK036105 : { pr : 'SK', sp : '15 km W. of Jct Hwy 9', ep : 'Lampman' },
RDSK036106 : { pr : 'SK', sp : 'Lampman', ep : 'Jct Hwy 47' },
RDSK036301 : { pr : 'SK', sp : 'Moose Jaw', ep : '43 km W. of Moose Jaw' },
RDSK036302 : { pr : 'SK', sp : '43 km west of Moose Jaw', ep : 'Old Wives' },
RDSK036303 : { pr : 'SK', sp : 'Old Wives', ep : 'Shamrock' },
RDSK036304 : { pr : 'SK', sp : 'Shamrock', ep : 'Hodgeville' },
RDSK036305 : { pr : 'SK', sp : 'Hodgeville', ep : 'Neidpath' },
RDSK036306 : { pr : 'SK', sp : 'Neidpath', ep : 'Jct Hwy 4' },
RDSK036401 : { pr : 'SK', sp : 'Jct Hwy 10', ep : 'Balgonie' },
RDSK036501 : { pr : 'SK', sp : 'Watrous', ep : 'Manitou Beach' },
RDSK036502 : { pr : 'SK', sp : 'Manitou Beach', ep : 'Jct Hwy 16' },
RDSK036701 : { pr : 'SK', sp : 'Jct Hwy 42', ep : 'Jct Hwy 19' },
RDSK036801 : { pr : 'SK', sp : 'Jct Hwy 5', ep : 'Grid 756' },
RDSK036802 : { pr : 'SK', sp : 'Grid 756', ep : 'St. Brieux' },
RDSK036803 : { pr : 'SK', sp : 'St. Brieux', ep : 'Beatty' },
RDSK036901 : { pr : 'SK', sp : 'Jct Hwy 10', ep : 'Togo' },
RDSK037101 : { pr : 'SK', sp : 'Jct Hwy 21', ep : 'Alberta Border' },
RDSK037301 : { pr : 'SK', sp : 'Jct Hwy 42', ep : 'Jct Hwy 45' },
RDSK037401 : { pr : 'SK', sp : 'Jct Hwy 21', ep : 'Tramping Lake' },
RDSK037402 : { pr : 'SK', sp : 'Tramping Lake', ep : '1 km S of Scott' },
RDSK037403 : { pr : 'SK', sp : '1 km S of Scott', ep : 'Jct Hwy 14' },
RDSK037601 : { pr : 'SK', sp : 'Jct Hwy 14', ep : 'Arelee' },
RDSK037602 : { pr : 'SK', sp : 'Arelee', ep : 'Jct Hwy 16' },
RDSK037603 : { pr : 'SK', sp : 'Jct Hwy 16', ep : 'Jct Hwy 40' },
RDSK037604 : { pr : 'SK', sp : 'Jct Hwy 40', ep : 'Jct Hwy 324' },
RDSK037701 : { pr : 'SK', sp : 'Jct Hwy 28', ep : 'Jct Hwy 6' },
RDSK037801 : { pr : 'SK', sp : 'Jct Hwy 4', ep : 'Jct Hwy 324' },
RDSK037802 : { pr : 'SK', sp : 'Jct Hwy 324', ep : 'Rabbit Lake' },
RDSK037803 : { pr : 'SK', sp : 'Rabbit Lake', ep : 'Jct Hwy 3' },
RDSK037901 : { pr : 'SK', sp : 'McMahon', ep : 'Jct Hwy 4' },
RDSK038101 : { pr : 'SK', sp : 'Manitoba Border', ep : 'Jct Hwy 80' },
RDSK039701 : { pr : 'SK', sp : 'Jct Hwy 16', ep : 'Allan' },
RDSK090301 : { pr : 'SK', sp : 'Jct Hwy 55', ep : 'Waterhen River' },
RDSK090302 : { pr : 'SK', sp : 'Waterhen River', ep : 'Jct Hwy 965' },
RDSK090303 : { pr : 'SK', sp : 'Jct Hwy 965', ep : '74 km North of Jct Hwy 965' },
RDSK090401 : { pr : 'SK', sp : 'Jcn HWY 4', ep : '30km N of Jct Hwy 4' },
RDSK090402 : { pr : 'SK', sp : '30km N of Jct Hwy 4', ep : 'Jcn HWY 903' },
RDSK090501 : { pr : 'SK', sp : 'Jct Hwy 102', ep : 'Wathaman River' },
RDSK090502 : { pr : 'SK', sp : 'Wathaman River', ep : 'Rabbit Lake Mine' },
RDSK090503 : { pr : 'SK', sp : 'Rabbit Lake Mine', ep : 'Points North Landing' },
RDSK090504 : { pr : 'SK', sp : 'Points North Landing', ep : 'Black Lake' },
RDSK090505 : { pr : 'SK', sp : 'Black Lake', ep : 'Stony Rapids' },
RDSK090801 : { pr : 'SK', sp : 'Jct Hwy 155', ep : 'Ile-a-la-Crosse' },
RDSK090901 : { pr : 'SK', sp : 'Jct Hwy 155', ep : 'Turnor Lake' },
RDSK091001 : { pr : 'SK', sp : 'Jct Hwy 165', ep : 'Besnard Lake' },
RDSK091101 : { pr : 'SK', sp : 'Jct Hwy 106', ep : 'Deschambault Lake' },
RDSK091201 : { pr : 'SK', sp : 'Jct Hwy 920', ep : 'Jct Hwy 913' },
RDSK091202 : { pr : 'SK', sp : 'Jct Hwy 913', ep : 'Jct Hwy 165' },
RDSK091203 : { pr : 'SK', sp : 'Jct Hwy 165', ep : 'Wapawekka Lake' },
RDSK091301 : { pr : 'SK', sp : 'Jct Hwy 120', ep : 'Jct Hwy 927' },
RDSK091302 : { pr : 'SK', sp : 'Jct Hwy 912', ep : 'Jct Hwy 106' },
RDSK091401 : { pr : 'SK', sp : 'Jct Hwy 165', ep : 'Pinehouse' },
RDSK091402 : { pr : 'SK', sp : 'Pinehouse', ep : 'Churchill River' },
RDSK091403 : { pr : 'SK', sp : 'Churchill River', ep : 'Key Lake Minesite' },
RDSK091501 : { pr : 'SK', sp : 'Jct Hwy 102', ep : 'Stanley Mission' },
RDSK091601 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Jct Hwy 924' },
RDSK091801 : { pr : 'SK', sp : 'Jct Hwy 165', ep : '2.4km North of Jct 165' },
RDSK091802 : { pr : 'SK', sp : '2.4km North of Jct 165', ep : 'Patuanak' },
RDSK091901 : { pr : 'SK', sp : 'Jct Hwy 21', ep : 'Primrose Lake' },
RDSK092001 : { pr : 'SK', sp : 'Jct Hwy 106', ep : 'Jct Hwy 932' },
RDSK092002 : { pr : 'SK', sp : 'Jct Hwy 932', ep : 'Jct Hwy 933' },
RDSK092201 : { pr : 'SK', sp : 'Bodmin', ep : '33 Km N of Bodmin' },
RDSK092202 : { pr : 'SK', sp : '33 Km N of Bodmin', ep : 'Jct Hwy 916' },
RDSK092401 : { pr : 'SK', sp : 'Jct Hwy 55', ep : 'Dore Lake' },
RDSK092501 : { pr : 'SK', sp : 'Jct Hwy 155', ep : 'Dillon-Michel' },
RDSK092601 : { pr : 'SK', sp : 'Jct Hwy 120', ep : 'Jct Hwy 265' },
RDSK092602 : { pr : 'SK', sp : 'Jct Hwy 265', ep : 'Jct Hwy 931' },
RDSK092603 : { pr : 'SK', sp : 'Jct Hwy 931', ep : 'Jct Hwy 969' },
RDSK092701 : { pr : 'SK', sp : 'Jct Hwy 912', ep : 'East Trout Lake' },
RDSK093101 : { pr : 'SK', sp : 'Jct Hwy 926', ep : 'Jct Hwy 963' },
RDSK094201 : { pr : 'SK', sp : 'Jct Hwy 55', ep : 'Jct Hwy 943' },
RDSK094202 : { pr : 'SK', sp : 'JCT Hwy 943', ep : 'Roads End' },
RDSK094301 : { pr : 'SK', sp : 'Jct Hwy 942', ep : 'Jct Hwy 946' },
RDSK094302 : { pr : 'SK', sp : 'Jct Hwy 946', ep : 'Meetoos' },
RDSK094501 : { pr : 'SK', sp : 'Jct Hwy 24', ep : 'Jct Hwy 943' },
RDSK094601 : { pr : 'SK', sp : 'Jct Hwy 943', ep : 'Leoville Grid' },
RDSK095001 : { pr : 'SK', sp : 'Jct Hwy 224', ep : 'Jct Hwy 21' },
RDSK095101 : { pr : 'SK', sp : 'Jct Hwy 904', ep : 'Jct Hwy 903' },
RDSK095301 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Jct Hwy 263' },
RDSK095501 : { pr : 'SK', sp : 'La Loche', ep : '4.6 km N. of La Loche' },
RDSK095502 : { pr : 'SK', sp : '4.6 km N. of La Loche', ep : 'Clearwater River' },
RDSK095503 : { pr : 'SK', sp : 'Clearwater River', ep : 'Km 130' },
RDSK095504 : { pr : 'SK', sp : 'Km 130', ep : 'Cluff Lake Mine' },
RDSK095601 : { pr : 'SK', sp : 'Jct Hwy 155', ep : 'Alberta Border' },
RDSK096501 : { pr : 'SK', sp : 'Jct Hwy 155', ep : 'Jct Hwy 903' },
RDSK096901 : { pr : 'SK', sp : 'Jct Hwy 2', ep : 'Timber Bay' },
RDSK096902 : { pr : 'SK', sp : 'Timber Bay', ep : 'Jct Hwy 165' },
RDSK098001 : { pr : 'SK', sp : 'Woody Lake Rd. N. of Arra', ep : 'Armit' },
RDSK098101 : { pr : 'SK', sp : 'Jct Woody Lake Road', ep : '26 km West' },
RDSK098201 : { pr : 'SK', sp : 'Forest Boundary', ep : 'Jct Hwy 983' },
RDSK098202 : { pr : 'SK', sp : 'Jct Hwy 983', ep : 'Forest Boundary' },
RDSK098301 : { pr : 'SK', sp : 'Jct Hwy 982', ep : 'Jct Hwy 9' },
RDSK098302 : { pr : 'SK', sp : 'Jct Hwy 9', ep : 'Jct Hwy 984' },
RDSK098401 : { pr : 'SK', sp : 'Fire Tower', ep : 'Jct Hwy 23' },
RDSK905101 : { pr : 'SK', sp : 'Stony Rapids', ep : 'Shasko Bay Winter Road' },
RDSK905301 : { pr : 'SK', sp : 'Fond du Lac', ep : 'Uranium City' },
RDSK905401 : { pr : 'SK', sp : 'Hidden Bay', ep : 'Wollaston Lake' },
RDYT000101 : { pr : 'YT', sp : 'Yukon/BC Border KM 968', ep : 'Watson Lake KM 980' },
RDYT000102 : { pr : 'YT', sp : 'Watson Lake KM 980', ep : 'Jct Hwy 37 Stewart Cassiar Highway KM 1002' },
RDYT000103 : { pr : 'YT', sp : 'Jct Hwy 37 Stewart Cassiar Highway KM 1002', ep : 'Big Creek KM 1042' },
RDYT000104 : { pr : 'YT', sp : 'Big Creek KM 1042', ep : 'KM 1063' },
RDYT000105 : { pr : 'YT', sp : 'KM 1063', ep : 'Swift River KM 1137' },
RDYT000106 : { pr : 'YT', sp : 'Swift River KM 1137', ep : 'Log Jam Creek KM 1165' },
RDYT000107 : { pr : 'YT', sp : 'Log Jam Creek KM 1165', ep : 'KM 1196' },
RDYT000108 : { pr : 'YT', sp : 'KM 1196', ep : 'KM 1233' },
RDYT000109 : { pr : 'YT', sp : 'KM 1233', ep : 'Teslin River KM 1296' },
RDYT000110 : { pr : 'YT', sp : 'Teslin River KM 1296', ep : 'Jct Hwy 8 Tagish Road KM 1342' },
RDYT000111 : { pr : 'YT', sp : 'Jct Hwy 8 Tagish Road KM 1342', ep : 'Doehle Drive KM 1363' },
RDYT000112 : { pr : 'YT', sp : 'Doehle Drive KM 1363', ep : 'Jct Hwy 2 South Klondike Highway KM 1404' },
RDYT000113 : { pr : 'YT', sp : 'Jct Hwy 2 South Klondike Highway KM 1404', ep : 'Two Mile Hill Whitehorse KM 1426' },
RDYT000114 : { pr : 'YT', sp : 'Two Mile Hill Whitehorse KM 1426', ep : 'Parent Lane KM 1439' },
RDYT000115 : { pr : 'YT', sp : 'Parent Lane KM 1439', ep : 'Takhini Crossing Rest Area KM 1454' },
RDYT000116 : { pr : 'YT', sp : 'Takhini Crossing Rest Area KM 1454', ep : 'Mendenhall River KM 1504' },
RDYT000117 : { pr : 'YT', sp : 'Mendenhall River KM 1504', ep : 'Canyon Creek Rest Area KM 1548' },
RDYT000118 : { pr : 'YT', sp : 'Canyon Creek Rest Area KM 1548', ep : 'Haines Junction KM 1579' },
RDYT000119 : { pr : 'YT', sp : 'Haines Junction KM 1579', ep : 'Bear Creek Summit KM 1599' },
RDYT000120 : { pr : 'YT', sp : 'Bear Creek Summit KM 1599', ep : 'Jarvis Creek KM 1608' },
RDYT000121 : { pr : 'YT', sp : 'Jarvis Creek KM 1608', ep : 'Silver Creek KM 1637' },
RDYT000122 : { pr : 'YT', sp : 'Silver Creek KM 1637', ep : 'Slims River KM 1705' },
RDYT000123 : { pr : 'YT', sp : 'Slims River KM 1705', ep : 'Destruction Bay KM 1743' },
RDYT000124 : { pr : 'YT', sp : 'Destruction Bay KM 1743', ep : 'Kluane River KM 1791' },
RDYT000125 : { pr : 'YT', sp : 'Kluane River KM 1791', ep : 'KM 1834' },
RDYT000126 : { pr : 'YT', sp : 'KM 1834', ep : 'Edith Creek KM 1844' },
RDYT000127 : { pr : 'YT', sp : 'Edith Creek KM 1844', ep : 'White River KM 1881' },
RDYT000128 : { pr : 'YT', sp : 'White River KM 1881', ep : 'Beaver Creek KM 1934' },
RDYT000129 : { pr : 'YT', sp : 'Beaver Creek KM 1934', ep : 'Canada/US Border KM 1966' },
RDYT000201 : { pr : 'YT', sp : 'Canada/US Border KM 24', ep : 'Fraser KM 37' },
RDYT000202 : { pr : 'YT', sp : 'Fraser KM 37', ep : 'Log Cabin KM 44' },
RDYT000203 : { pr : 'YT', sp : 'Log Cabin KM 44', ep : 'Avalanche Area KM 58' },
RDYT000204 : { pr : 'YT', sp : 'Avalanche Area KM 58', ep : 'Avalanche Area KM 70' },
RDYT000205 : { pr : 'YT', sp : 'Avalanche Area KM 70', ep : 'Yukon/BC Border KM 80' },
RDYT000206 : { pr : 'YT', sp : 'Yukon/BC Border KM 80', ep : 'Carcross KM 106' },
RDYT000207 : { pr : 'YT', sp : 'Carcross KM 106', ep : 'Robinson Roadhouse KM 142' },
RDYT000208 : { pr : 'YT', sp : 'Robinson Roadhouse KM 142', ep : 'Jct Hwy 1 Alaska Highway KM 158' },
RDYT000209 : { pr : 'YT', sp : 'Jct Hwy 1 Alaska Highway KM 192', ep : 'Jct Takhini Hot Springs Road KM 198' },
RDYT000210 : { pr : 'YT', sp : 'Jct Takhini Hot Springs Road KM 198', ep : 'Deep Creek KM 224' },
RDYT000211 : { pr : 'YT', sp : 'Deep Creek KM 224', ep : 'KM 256' },
RDYT000212 : { pr : 'YT', sp : 'KM 256', ep : 'Braeburn Airstrip KM 281' },
RDYT000213 : { pr : 'YT', sp : 'Braeburn Airstrip KM 281', ep : 'Carmacks KM 356' },
RDYT000214 : { pr : 'YT', sp : 'Carmacks KM 356', ep : 'KM 430' },
RDYT000215 : { pr : 'YT', sp : 'KM 430', ep : 'Pelly Crossing KM 463' },
RDYT000216 : { pr : 'YT', sp : 'Pelly Crossing KM 463', ep : 'Stewart Crossing KM 534' },
RDYT000217 : { pr : 'YT', sp : 'Stewart Crossing KM 534', ep : 'McQuestion River KM 580' },
RDYT000218 : { pr : 'YT', sp : 'McQuestion River KM 580', ep : 'Gravel Lake KM 622' },
RDYT000219 : { pr : 'YT', sp : 'Gravel Lake KM 622', ep : 'Tintina Trench Rest Area KM 655' },
RDYT000220 : { pr : 'YT', sp : 'Tintina Trench Rest Area KM 655', ep : 'Jct Hwy 5 Dempster Highway KM 675' },
RDYT000221 : { pr : 'YT', sp : 'Jct Hwy 5 Dempster Highway KM 675', ep : 'Henderson Subdivision KM 691' },
RDYT000222 : { pr : 'YT', sp : 'Henderson Subdivision KM 691', ep : 'Rock Creek Subdivision KM 697' },
RDYT000223 : { pr : 'YT', sp : 'Rock Creek Subdivision KM 697', ep : 'Dawson City KM 716' },
RDYT000301 : { pr : 'YT', sp : 'Canada/US Border KM 71', ep : 'KM 90' },
RDYT000302 : { pr : 'YT', sp : 'KM 90', ep : 'Blanchard River KM 145' },
RDYT000303 : { pr : 'YT', sp : 'Blanchard River KM 145', ep : 'Klukshu Creek KM 182' },
RDYT000304 : { pr : 'YT', sp : 'Klukshu Creek KM 182', ep : 'Dezadeash Lake KM 193' },
RDYT000305 : { pr : 'YT', sp : 'Dezadeash Lake KM 193', ep : 'Haines Junction KM 246' },
RDYT000401 : { pr : 'YT', sp : 'Watson Lake KM 0', ep : 'Jct Airport Road KM 10' },
RDYT000402 : { pr : 'YT', sp : 'Jct Airport Road KM 10', ep : 'Tom Creek KM 36' },
RDYT000403 : { pr : 'YT', sp : 'Tom Creek KM 36', ep : 'KM 58' },
RDYT000404 : { pr : 'YT', sp : 'KM 58', ep : 'Jct Nahanni Range Road KM 108' },
RDYT000405 : { pr : 'YT', sp : 'Jct Nahanni Range Road KM 108', ep : 'Frances Lake KM 172' },
RDYT000406 : { pr : 'YT', sp : 'Frances Lake KM 172', ep : 'Finlayson Lake KM 230' },
RDYT000407 : { pr : 'YT', sp : 'Finlayson Lake KM 230', ep : 'Hoole River KM 303' },
RDYT000408 : { pr : 'YT', sp : 'Hoole River KM 303', ep : 'Ross River KM 362' },
RDYT000409 : { pr : 'YT', sp : 'Ross River KM 362', ep : 'Faro KM 414' },
RDYT000410 : { pr : 'YT', sp : 'Faro KM 414', ep : 'Drury Creek KM 468' },
RDYT000411 : { pr : 'YT', sp : 'Drury Creek KM 468', ep : 'KM 529' },
RDYT000412 : { pr : 'YT', sp : 'KM 529', ep : 'KM 564' },
RDYT000413 : { pr : 'YT', sp : 'KM 564', ep : 'Carmacks KM 582' },
RDYT000501 : { pr : 'YT', sp : 'Jct Hwy 2 Klondike Highway', ep : 'Glacier Creek KM 24' },
RDYT000502 : { pr : 'YT', sp : 'Glacier Creek KM 24', ep : 'North Fork Klondike River KM 67' },
RDYT000503 : { pr : 'YT', sp : 'North Fork Klondike River KM 67', ep : 'East Blackstone River KM 86' },
RDYT000504 : { pr : 'YT', sp : 'East Blackstone River KM 86', ep : 'KM 100' },
RDYT000505 : { pr : 'YT', sp : 'KM 100', ep : 'KM 139' },
RDYT000506 : { pr : 'YT', sp : 'KM 139', ep : 'Windy Pass KM 146' },
RDYT000507 : { pr : 'YT', sp : 'Windy Pass KM 146', ep : 'Engineer Creek KM 161' },
RDYT000508 : { pr : 'YT', sp : 'Engineer Creek KM 161', ep : 'Ogilvie River KM 195' },
RDYT000509 : { pr : 'YT', sp : 'Ogilvie River KM 195', ep : 'Airstrip KM 237' },
RDYT000510 : { pr : 'YT', sp : 'Airstrip KM 237', ep : 'KM 286' },
RDYT000511 : { pr : 'YT', sp : 'KM 286', ep : 'Rest Area/Airstrip KM 325' },
RDYT000512 : { pr : 'YT', sp : 'Rest Area/Airstrip KM 325', ep : 'Eagle Plains KM 369' },
RDYT000513 : { pr : 'YT', sp : 'Eagle Plains KM 369', ep : 'Drift Area KM 394' },
RDYT000514 : { pr : 'YT', sp : 'Drift Area KM 394', ep : 'Rock River KM 446' },
RDYT000515 : { pr : 'YT', sp : 'Rock River KM 446', ep : 'Yukon/Northwest Territories Border KM 465' },
RDYT000601 : { pr : 'YT', sp : 'Jct Hwy 1 Alaska Highway KM 0', ep : 'Sydney Creek KM 46' },
RDYT000602 : { pr : 'YT', sp : 'Sydney Creek KM 46', ep : 'Quiet Lake KM 98' },
RDYT000603 : { pr : 'YT', sp : 'Quiet Lake KM 98', ep : 'KM 165' },
RDYT000604 : { pr : 'YT', sp : 'KM 165', ep : 'Ross River KM 228' },
RDYT000605 : { pr : 'YT', sp : 'Ross River KM 228', ep : 'KM 282' },
RDYT000606 : { pr : 'YT', sp : 'KM 282', ep : 'Twin Creeks KM 344' },
RDYT000607 : { pr : 'YT', sp : 'Twin Creeks KM 344', ep : 'Yukon/Northwest Territories Border KM 463' },
RDYT000701 : { pr : 'YT', sp : 'Jct Hwy 8 Tagish Road', ep : 'Yukon/BC Border KM 41' },
RDYT000801 : { pr : 'YT', sp : 'Jct Hwy 1 Alaska Highway KM 0', ep : 'Tagish River KM 21' },
RDYT000802 : { pr : 'YT', sp : 'Tagish River KM 21', ep : 'Carcross KM 54' },
RDYT000901 : { pr : 'YT', sp : 'Dawson City', ep : 'Sunnydale KM 4' },
RDYT000902 : { pr : 'YT', sp : 'Sunnydale KM 4', ep : 'Clinton Creek Road KM 59' },
RDYT000903 : { pr : 'YT', sp : 'Clinton Creek Road KM 59', ep : 'Sixty Mile Road KM 86' },
RDYT000904 : { pr : 'YT', sp : 'Sixty Mile Road KM 86', ep : 'Canada/US Border KM 106' },
RDYT001001 : { pr : 'YT', sp : 'Jct Hwy 4 Campbell Highway KM 0', ep : 'North Branch Creek KM 53' },
RDYT001002 : { pr : 'YT', sp : 'North Branch Creek KM 53', ep : 'KM 134' },
RDYT001101 : { pr : 'YT', sp : 'Jct Hwy 2 Klondike Highway', ep : 'Mayo KM 50' },
RDYT001102 : { pr : 'YT', sp : 'Mayo KM 50', ep : 'Jct South McQesten Road KM 87' },
RDYT001103 : { pr : 'YT', sp : 'Jct South McQesten Road KM 87', ep : 'Elsa KM 96' },
RDYT001104 : { pr : 'YT', sp : 'Elsa KM 96', ep : 'Keno City KM 110' },
RDYT003701 : { pr : 'YT', sp : 'Jct Hwy 1 Alaska Highway KM 727', ep : 'Yukon/BC Border KM 724' }
};

/* MAP OBJ */
/* ===========================================================================
 * Dynamic Mapping
 * Jim Ing
 * 2007.11
 * ===========================================================================
 */

/*extern VEColor, VELatLong, VELatLongRectangle, VEMap, VEShape, VEShapeLayer, VEShapeType, VETileSourceSpecification, VEDashboardSize, VEDistanceUnit, VERouteDistanceUnit, VERouteOptions, GetVEMapInstance, g_omniFlightSuite, lang, roads_lbl, roads_pmx_sur, roads_pmx_vis, roads_prov_expiry, roads_ve_lbl, roads_err_msg, roads_prov_sur, roads_prov_vis, roads_seg, RS, Timer */

g_omniFlightSuite = ''; // workaround for VE6 bug?

/**
 * Pelmorex map object.
 */
var Pmx =
{
    debug                   : false,                                             // true requires Firebug

    console                 :
    {
        debug               : false,
        log                 : false,
        info                : true,
        warn                : true,
        error               : true
    },

    lang                    : 'en',

    mapStyle                : 'r',                                               // r = Road, a = Aerial, h = Hybrid, s = Shaded

    elemId                  :
    {
        map                 : 'map',
        popup               : 'map_popup',
        road_tiles          : 'road_tiles',
        spinner             : 'spinner',
        zoom                : 'zoom',
        vectorLevel         : 'vector',

        opt_dashboard       : 'dashboard',
        opt_debug           : 'debug',
        opt_minimap         : 'minimap',
        opt_road_conditions : 'road_conditions'

        //opt_landmarks       : 'landmarks',
        //opt_directions      : 'directions',
        //opt_traffic         : 'traffic'
    },

    tileId                  : 'road_tiles',
    tileUrl                 : 'http://webmaptiles.weather.ca/cache/current',     // tiles-map-dev.testdev.pelmorex.com = 72.14.162.214 = 10.10.202.16

    jsonReqSep              : '&',
    //jsonUrl                 : 'http://10.10.202.15/RDW',              // web-map-dev.testdev.pelmorex.com   = 72.14.162.213 = 10.10.202.15
    //jsonUrl                 : 'http://72.14.162.213/RDW',              // web-map-dev.testdev.pelmorex.com   = 72.14.162.213 = 10.10.202.15
    jsonUrl                 : 'http://webmapvector.weather.ca/RDW',
    //jsonUrl                 : 'http://10.10.202.15:4003/RDW',
    //jsonUrl                 : 'http://72.14.162.214:80/RDW',

    jsonCallback            : 'Pmx.drawRoads',

    imgRoot                 : 'img/',
    markerImg               : 'marker_twn_alpha_lg.png',

    latitude                : 43.51164670862528,
    longitude               : -79.6893310546875,

    //zoomRatios              : [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.25, 1.25, 1.5, 1.5, 1.75, 2.0, 2.25, 2.5, 2.75, 3.25, 3.5, 3.75, 4.0, 4.0, 5.0, 4.0, 4.0, 4.0 ],
    //zoomRatios              : [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.25, 1.25, 1.5, 1.5, 1.75, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ],
    zoomRatios              : [ 1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2 ],

    zoom                    : 8,

    vectorLevel             : 1,
    mediumShieldLevel       : 8,
    largeShieldLevel        : 11,

    maxTimeout              : 12000,

    endPanTimerDelay        : 1000,
    endZoomTimerDelay       : 500,

    //---[ "private" properties ]---

    bounds                  :
    {
        x1                  : 0,
        y1                  : 0,
        x2                  : 0,
        y2                  : 0
    },

    screen                  :
    {
        w                   : 0,
        h                   : 0
    },

    pngFix                  : false,

    cursor                  : '',
    mapType                 : '',
    timeout                 : '',

    endPanZoomTimer         : null,
    zoomed                  : false,

    jsr                     : null,
    map                     : null,
    tileSource              : null,

    elems                   : {},

    landmarkLayer           : null,
    roadShapeLayer          : null,
    roadShadowShapeLayer    : null
};

//----------------------------------------------------------------------------

/**
 * Description: Initialize the map.
 */
Pmx.init = function( lat, lon, z )
{
    var mapElem;

    if( lat ) { Pmx.latitude = parseFloat( lat, 10 ); }
    if( lon ) { Pmx.longitude = parseFloat( lon, 10 ); }
    if( z ) { Pmx.zoom = parseFloat( z, 10 ); }

    Pmx.JSR.scriptCounter = 1;

    // set the language
    if( window.lang )
    {
        if( lang == 'en' || lang == 'fr' || lang == 'EN' || lang == 'FR' )
        {
            Pmx.lang = lang.toLowerCase();
        }
    }

    // set whether the client's browser requires a PNG fix for IE or not
    if( window.navigator.appVersion.indexOf( 'MSIE 6' ) != -1 || window.navigator.appVersion.indexOf( 'MSIE 5.5' ) != -1 )
    {
        Pmx.pngFix = true;
    }

    // populate elements
    for( var i in Pmx.elemId )
    {
        Pmx.elems[ i ] = document.getElementById( Pmx.elemId[ i ] );
    }

    // set the zoom levels for vectors
    Pmx.setVectorLevel( Pmx.elems.vectorLevel );

    // set the debug mode
    Pmx.toggleDebug( Pmx.elems.opt_debug );

    // show the browser version
    if( Pmx.debug === true && Pmx.console.info === true )
    {
        console.info( 'Browser: ' + navigator.userAgent );
    }

    // check for a supported browser
    if( navigator.userAgent.indexOf( 'Mozilla' ) != -1 )
    {
        // check for the VEMap control
        if( window.VEMap )
        {
            // initialize shape layers
            Pmx.landmarkLayer = new VEShapeLayer();
            Pmx.roadShapeLayer = new VEShapeLayer();
            Pmx.roadShadowShapeLayer = new VEShapeLayer();

            // show VEMap version
            if( Pmx.debug === true && Pmx.console.info === true )
            {
                console.info( 'VEMap ' + VEMap.GetVersion() );
            }

            // show server URLs in stats window
            if( document.getElementById( 'rdw' ) ) { document.getElementById( 'rdw' ).innerHTML = Pmx.jsonUrl; }
            if( document.getElementById( 'tile' ) ) { document.getElementById( 'tile' ).innerHTML = Pmx.tileUrl; }

            try
            {
                // create VE map
                Pmx.map = new VEMap( Pmx.elemId.map );
                Pmx.map.SetDashboardSize( VEDashboardSize.Normal ); // Normal | Small | Tiny

                Pmx.map.LoadMap( new VELatLong( Pmx.latitude, Pmx.longitude ), Pmx.zoom, 'r', false );

                // customize map (non-API)
                Pmx.hideVEButtons();
                Pmx.resizeVEButtons( '50px', '90px', '50px' );
                Pmx.updateLanguageLabels();

                // set map events
                //Pmx.map.AttachEvent( 'onchangeview', Pmx.updateMap );
                Pmx.map.AttachEvent( 'onendzoom', Pmx.checkContinuousZoom );
                Pmx.map.AttachEvent( 'onendpan', Pmx.checkContinuousPan );
                Pmx.map.AttachEvent( 'onchangemapstyle', Pmx.updateMapStyle );
                Pmx.map.AttachEvent( 'onmousewheel', Pmx.onMouseWheel );

                // set map options
                Pmx.map.SetMapStyle( Pmx.mapStyle );
                Pmx.map.SetMouseWheelZoomToCenter( false );
                Pmx.map.SetScaleBarDistanceUnit( VEDistanceUnit.Kilometers );
                Pmx.map.ClearInfoBoxStyles();

                // set road tiles
                Pmx.tileSource = new VETileSourceSpecification( Pmx.tileId, 'Pmx.getCacheTilePath' );
                Pmx.tileSource.GetTilePath = Pmx.getCacheTilePath;
                Pmx.tileSource.NumServers = 1;
                Pmx.tileSource.MinZoomLevel = 1;
                Pmx.tileSource.MaxZoomLevel = Pmx.vectorLevel;
                Pmx.tileSource.Opacity = 1.0;
                Pmx.tileSource.ZIndex = 100;

                // enable/disable map features
                Pmx.toggleDashboard( Pmx.elems.opt_dashboard );
                Pmx.toggleMiniMap( Pmx.elems.opt_minimap );

                //Pmx.drawLandmarks();
                //Pmx.toggleLandmarks( Pmx.elems.opt_landmarks );

                //Pmx.map.LoadTraffic( false ); // overlay data from traffic.com
                //Pmx.toggleTraffic( Pmx.elems.opt_traffic );

                //Pmx.toggleDirections( Pmx.elems.opt_directions );

                // update the road conditions
                Pmx.updateMap();
            }
            catch( e )
            {
                Pmx.hideLoading();

                if( Pmx.debug === true && Pmx.console.error === true )
                {
                    console.error( 'init: ' + e.description );
                }
            }
        }
        else
        {
            Pmx.hideLoading();
            Pmx.showError( roads_err_msg.ve_load[ Pmx.lang ] + '<br />' + roads_err_msg.try_again[ Pmx.lang ] );
        }
    }
    else
    {
        Pmx.hideLoading();
        Pmx.showError( roads_err_msg.browser[ Pmx.lang ] + '<br />' + roads_err_msg.browser_req[ Pmx.lang ] + '<br />' + roads_err_msg.browser_list[ Pmx.lang ] );
    }
};

/**
 * Description: Add a delay to the pan event.
 */
Pmx.checkContinuousPan = function()
{
    // if the timer is set, clear it and reset it
    if( Pmx.endPanZoomTimer !== null )
    {
        window.clearTimeout( Pmx.endPanZoomTimer );
    }

    if( document.getElementById( 'fetch' ) ) { document.getElementById( 'fetch' ).innerHTML = 'false'; }

    Pmx.endPanZoomTimer = window.setTimeout( Pmx.handleEndPan, Pmx.endPanTimerDelay );
};

/**
 * Description: Add a delay to the zoom event.
 */
Pmx.checkContinuousZoom = function()
{
    if( Pmx.zoomed === false )
    {
        Pmx.zoomed = true;

        Pmx.roadShadowShapeLayer.Hide();
        Pmx.roadShapeLayer.Hide();

        Pmx.roadShadowShapeLayer.DeleteAllShapes();
        Pmx.roadShadowShapeLayer = new VEShapeLayer();
    }

    // if the timer is set, clear it and reset it
    if( Pmx.endPanZoomTimer !== null )
    {
        window.clearTimeout( Pmx.endPanZoomTimer );
    }

    if( document.getElementById( 'fetch' ) ) { document.getElementById( 'fetch' ).innerHTML = 'false'; }

    Pmx.endPanZoomTimer = window.setTimeout( Pmx.handleEndZoom, Pmx.endZoomTimerDelay );
};

/**
 * Description: Draws pushpins for landmarks.
 */
Pmx.drawLandmarks = function()
{
    Timer.start( 'drawLandmarks' );

    try
    {
        // The Weather Network
        var twnPin = new VEShape( VEShapeType.Pushpin, new VELatLong( 43.51164670862528, -79.6893310546875 ) );
        twnPin.SetTitle( '<img src="' + Pmx.imgRoot + 'twn_logo.png" border="0" alt="The Weather Network" />' );
        twnPin.SetDescription( '<img src="' + Pmx.imgRoot + 'twn_hq_md.jpg" border="0" alt="Pelmorex" /><br />2655 Bristol Circle<br />Oakville, ON L6H 7W1<br />(905) 829-1159<br />' );

        if( Pmx.pngFix === true )
        {
            twnPin.SetCustomIcon( '<div class="shield_twn_alpha_lg"></div>' );
        }
        else
        {
            twnPin.SetCustomIcon( '<div><img src="' + Pmx.imgRoot + Pmx.markerImg + '" /></div>' );
        }

        // MeteoMedia
        var mmPin = new VEShape( VEShapeType.Pushpin, new VELatLong( 45.521594, -73.549808 ) );
        mmPin.SetTitle( '<img src="' + Pmx.imgRoot + 'mm_logo.png" border="0" alt="M&eacute;t&eacute;oM&eacute;dia" />' );
        mmPin.SetDescription( '1755, boul. Ren&eacute;-L&eacute;vesque Est, Bureau 251<br />Montreal, QC H2K 4P6<br />(514) 597-0232<br />' );

        if( Pmx.pngFix === true )
        {
            mmPin.SetCustomIcon( '<div class="shield_twn_alpha_lg"></div>' );
        }
        else
        {
            mmPin.SetCustomIcon( '<div><img src="' + Pmx.imgRoot + Pmx.markerImg + '" /></div>' );
        }

        // add landmarks
        Pmx.landmarkLayer = new VEShapeLayer();
        Pmx.landmarkLayer.ZIndex = 110;
        Pmx.landmarkLayer.AddShape( twnPin );
        Pmx.landmarkLayer.AddShape( mmPin );

        Pmx.map.AddShapeLayer( Pmx.landmarkLayer );
    }
    catch( e )
    {
        if( Pmx.debug === true && Pmx.console.error === true )
        {
            console.error( 'drawLandmarks: ' + e.description );
        }
    }

    Timer.stop();
};

/**
 * Description: Draws vector-based road conditions. This is a callback function for a JSR response.
 */
Pmx.drawRoads = function()
{
    Timer.start( 'drawRoads' );

    try
    {
        if( RS.L.length > 0 )
        {
            Pmx.mapType = 'vectors';

            Pmx.roadShadowShapeLayer.DeleteAllShapes();
            Pmx.roadShadowShapeLayer = new VEShapeLayer();
            //Pmx.roadShadowShapeLayer.Hide();

            Pmx.roadShapeLayer.DeleteAllShapes();
            Pmx.roadShapeLayer = new VEShapeLayer();
            //Pmx.roadShapeLayer.Hide();

            var col;
            var points;
            var road;
            var yyyy, yy, mm, dd, hh, nn, ss, ampm;
            var dtc, dtc_str, dtc_obj, no, seg, mts, mtv, pms, pmv, prv, code;
            var dtc_htm, no_htm, seg_htm, mt_htm, pm_htm;
            var shadow;
            var upd_time, age_hour;
            var midPoint, pt1, pt2, shieldSize, showShield;
            var css, icon;

            var cur_time = ( new Date() ).getTime();

            // set the line width based on zoom level
            var lineSize = 1;
            if( Pmx.zoom >= 14 ) { lineSize = 10; }
            else if( Pmx.zoom >= 12 ) { lineSize = 8; }
            else if( Pmx.zoom >= 10 ) { lineSize = 6; }
            else if( Pmx.zoom >= 7 ) { lineSize = 4; }
            else if( Pmx.zoom >= 4 ) { lineSize = 2; }

            /*
             * RS: (result set)
             *   L = lines
             *   P = points
             *   T = latitude
             *   G = longitude
             *
             *   DTC = date/time of condition
             *   NO  = highway number
             *   ID  = segment ID
             *   MTS = provincial surface code
             *   MTV = provincial visibility code
             *   PMS = Pelmorex surface code
             *   PMV = Pelmorex visibility code
             *   PRV = province code
             */

            var numSegments = RS.L.length;
            var numVertices = 0;
            var tally = [];
            var tallyCnt = [];
            var poorVisPos = [];

            for( var g = 0; g < numSegments; g++ )
            {
                // get a tally of the number of segments for each highway
                tally[ RS.L[ g ].NO ] = ( tally[ RS.L[ g ].NO ] ) ? tally[ RS.L[ g ].NO ] + 1 : 1;

                // check for poor visibility
                if( RS.L[ g ].PMV == 'PR' )
                {
                    poorVisPos[ RS.L[ g ].NO ] = g;
                }

                for( var h = 0; h < RS.L[ g ].P.length; h++ )
                {
                    numVertices++;
                }
            }

            var density = Math.ceil( ( numSegments / numVertices ) * 100 );

/*
            if( Pmx.debug === true && Pmx.console.debug === true )
            {
                console.debug( 'tally:' );
                for( var t in tally )
                {
                    console.debug( t + '=' + tally[ t ] );
                }

                console.debug( 'poorVisPos:' );
                for( var p in poorVisPos )
                {
                    console.debug( p + '=' + poorVisPos[ p ] );
                }
            }
*/

            for( var i = 0; i < numSegments; i++ )
            {
                if( Pmx.debug === true && Pmx.console.warn === true )
                {
                    if( RS.L[ i ].DTC === '' || RS.L[ i ].NO === '' || RS.L[ i ].MTS === '' || RS.L[ i ].MTV === '' || RS.L[ i ].PMS === '' || RS.L[ i ].PMV === '' || RS.L[ i ].PRV === '' )
                    {
                        console.warn( i + ': DTC=' + RS.L[ i ].DTC + ', NO=' + RS.L[ i ].NO + ', MTS=' + RS.L[ i ].MTS + ', MTV=' + RS.L[ i ].MTV + ', PMS=' + RS.L[ i ].PMS + ', PMV=' + RS.L[ i ].PMV + ', PRV=' + RS.L[ i ].PRV );
                    }
                }

                // province code
                prv = ( RS.L[ i ].PRV !== '' ) ? RS.L[ i ].PRV : '';

                // populate the points
                points = [];
                for( var j = 0; j < RS.L[ i ].P.length; j++ )
                {
                    points[ j ] = new VELatLong( RS.L[ i ].P[ j ].T, RS.L[ i ].P[ j ].G );
                }

                if( points.length > 1 )
                {
                    // add a "shadow" under white coloured roads
                    if( roads_mts_iss[ RS.L[ i ].PRV ][ RS.L[ i ].MTS ] == 'ISCR' )
                    {
                        shadow = new VEShape( VEShapeType.Polyline, points );
                        shadow.SetLineWidth( lineSize + 2 );
                        shadow.SetLineColor( roads_is_sur[ Pmx.mapStyle ].ISXX.colour );
                        shadow.SetCustomIcon( '<div></div>' );

                        Pmx.roadShadowShapeLayer.AddShape( shadow );

                        road = new VEShape( VEShapeType.Polyline, points );
                        road.SetLineWidth( lineSize );
                    }
                    // create a "regular" road
                    else
                    {
                        road = new VEShape( VEShapeType.Polyline, points );
                        road.SetLineWidth( lineSize );
                    }

                    // road colour
                    if( ( RS.L[ i ].PRV && RS.L[ i ].MTS ) )
                    {
                        if( roads_is_sur[ Pmx.mapStyle ][ roads_mts_iss[ RS.L[ i ].PRV ][ RS.L[ i ].MTS ] ] )
                        {
                            col = roads_is_sur[ Pmx.mapStyle ][ roads_mts_iss[ RS.L[ i ].PRV ][ RS.L[ i ].MTS ] ].colour;
                        }
                        else
                        {
                            col = roads_is_sur[ Pmx.mapStyle ].ISNA.colour;

                            if( Pmx.debug === true && Pmx.console.warn === true )
                            {
                                console.warn( '[' + RS.L[ i ].PRV + '][' + RS.L[ i ].MTS + '] => ' + roads_mts_iss[ RS.L[ i ].PRV ][ RS.L[ i ].MTS ] );
                            }
                        }
                    }
                    else
                    {
                        col = roads_is_sur[ Pmx.mapStyle ].ISNA.colour;
                    }

                    // parse date and time
                    dtc = '';
                    age_hour = 0;

                    if( RS.L[ i ].DTC )
                    {
                        dtc_str = RS.L[ i ].DTC;

                        /*
                         * Format: dd mm yy hh nn
                         *          |  |  |  |  +--- minutes
                         *          |  |  |  +------ hours
                         *          |  |  +--------- year (offset from 1995)
                         *          |  +------------ month
                         *          +--------------- day
                         */

                        dd = parseInt( dtc_str.substr( 0, 2 ), 10 );
                        mm = parseInt( dtc_str.substr( 2, 2 ), 10 );
                        yy = parseInt( dtc_str.substr( 4, 2 ), 10 );
                        hh = parseInt( dtc_str.substr( 6, 2 ), 10 );
                        nn = parseInt( dtc_str.substr( 8, 2 ), 10 );
                        ss = 0;

                        // PMX year is offset from 1995
                        yyyy = 1995 + yy;

                        // convert string format to UTC date object
                        dtc_obj = new Date( Date.UTC( yyyy, ( mm - 1 ), dd, hh, nn, ss ) );

                        dtc_htm  = '<span class="map_popup_label">' + roads_lbl.dtc[ Pmx.lang ] + ':</span><br />';
                        dtc_htm += '<span class="map_popup_text">' + Pmx.formatDate( dtc_obj ) + '</span><br /><br />';

                        // check the age of the road data
                        upd_time = dtc_obj.getTime();
                        age_hour = Math.round( ( cur_time - upd_time ) / 1000 / 3600 );
                    }
                    var cur_month_num = ( new Date() ).getMonth() + 1;

                    // expire line after 26 hours in the winter or 14 days in the summer
                    var expiry_time;
                    if( cur_month_num >= summer_month && cur_month_num < winter_month )
                    {
                        expiry_time = summer_expiry;
                    }
                    else
                    {
                        expiry_time = winter_expiry;
                    }

                    //if( age_hour > roads_prov_expiry[ prv ] )
                    if( age_hour > expiry_time )
                    {
                        // show N/A line if data is too old
                        col = roads_is_sur[ Pmx.mapStyle ].ISNA.colour;

                        road.SetCustomIcon( '<div></div>' );

                        if( Pmx.debug === true && Pmx.console.warn === true )
                        {
                            console.warn( 'The data for line ' + i + ' is more than ' + roads_prov_expiry[ prv ] + ' hours old. (' + age_hour + ' hours)' );
                        }
                    }
                    else
                    {
                        // highway number
                        no_htm = '';
                        if( RS.L[ i ].NO && RS.L[ i ].NO !== '' )
                        {
                            no = RS.L[ i ].NO;
                            //no_htm = '<div class="map_popup_bar" onmousedown="dragStart( event, \'' + Pmx.elemId.popup + '\')">' + roads_lbl.hwy[ Pmx.lang ] + ': ' + no + '</div>';
                            no_htm = '<div class="map_popup_bar">' + roads_lbl.hwy[ Pmx.lang ] + ': ' + no + '</div>';
                        }

                        // segment start point and end point
                        seg_htm = '';

                        if( RS.L[ i ].ID && RS.L[ i ].ID !== '' )
                        {
                            seg = RS.L[ i ].ID;
                            seg = seg.replace( /\W/, '' ); // strip non-alphanumeric characters

                            if( roads_seg[ seg ] )
                            {
                                //seg_htm  = '<span class="map_popup_label">' + roads_lbl.sp[ Pmx.lang ] + ':</span><br /><span class="map_popup_text">' + roads_seg[ seg ].sp + '</span><br />';
                                //seg_htm += '<span class="map_popup_label">' + roads_lbl.ep[ Pmx.lang ] + ':</span><br /><span class="map_popup_text">' + roads_seg[ seg ].ep + '</span><br /><br />';
                                seg_htm  = '<span class="map_popup_label">' + roads_lbl.seg[ Pmx.lang ] + ':</span><br /><span class="map_popup_text">' + roads_seg[ seg ].sp + ' ' + roads_lbl.to[ Pmx.lang ] + ' ' + roads_seg[ seg ].ep + '</span><br /><br />';
                            }
                        }

                        mt_htm  = '<span class="map_popup_label">' + roads_lbl.mt[ Pmx.lang ] + ':</span>';
                        mt_htm += '<ul class="map_popup_list">';

                        // province surface condition
                        if( RS.L[ i ].MTS && RS.L[ i ].MTS !== '' )
                        {
                            mts = RS.L[ i ].MTS;
                            mts = mts.replace( /\W/, '' ); // strip non-alphanumeric characters

                            if( roads_prov_sur[ prv ][ mts ] )
                            {
                                mt_htm += '<li>' + roads_lbl.mts[ Pmx.lang ] + ': ' + roads_prov_sur[ prv ][ mts ][ Pmx.lang ] + '</li>';
                            }
                            else
                            {
                                if( Pmx.debug === true && Pmx.console.warn === true )
                                {
                                    console.warn( prv + ' MTS has an unknown code (' + mts + ')' );
                                }
                            }
                        }

                        // province visibility condition
                        if( RS.L[ i ].MTV && RS.L[ i ].MTV !== '' )
                        {
                            mtv = RS.L[ i ].MTV;
                            mtv = mtv.replace( /^<1$/, '0' ); // fix code from YT
                            mtv = mtv.replace( /\W/, '' ); // strip non-alphanumeric characters

                            if( roads_prov_vis[ prv ][ mtv ] )
                            {
                                mt_htm += '<li>' + roads_lbl.mtv[ Pmx.lang ] + ': ' + roads_prov_vis[ prv ][ mtv ][ Pmx.lang ] + '</li>';
                            }
                            else
                            {
                                if( Pmx.debug === true && Pmx.console.warn === true )
                                {
                                    console.warn( prv + ' MTV has an unknown code (' + mtv + ')' );
                                }
                            }
                        }

                        mt_htm += '</ul>';

                        pm_htm  = '<span class="map_popup_label">' + roads_lbl.pm[ Pmx.lang ] + ':</span>';
                        pm_htm += '<ul class="map_popup_list">';

                        // Pelmorex surface condition
                        if( RS.L[ i ].PMS && RS.L[ i ].PMS !== '' )
                        {
                            pms = RS.L[ i ].PMS;

                            if( roads_pmx_sur[ Pmx.mapStyle ][ pms ] ) // WRC TODO?
                            {
                                pm_htm += '<li>' + roads_lbl.pms[ Pmx.lang ] + ': ' + roads_pmx_sur[ Pmx.mapStyle ][ pms ][ Pmx.lang ] + '</li>';
                            }
                            else
                            {
                                if( Pmx.debug === true && Pmx.console.warn === true )
                                {
                                    console.warn( prv + ' PMS has an unknown code (' + pms + ')' );
                                }
                            }
                        }

                        // Pelmorex visibility condition
                        if( RS.L[ i ].PMV && RS.L[ i ].PMV !== '' )
                        {
                            pmv = RS.L[ i ].PMV;

                            if( roads_pmx_vis[ pmv ] )
                            {
                                // TODO: remove temporary fix for error in Pelmorex code for Quebec
                                if( prv == 'QC' )
                                {
                                    // ignore
                                }
                                else
                                {
                                    pm_htm += '<li>' + roads_lbl.pmv[ Pmx.lang ] + ': ' + roads_pmx_vis[ pmv ][ Pmx.lang ] + '</li>';
                                }
                            }
                            else
                            {
                                if( Pmx.debug === true && Pmx.console.warn === true )
                                {
                                    console.warn( prv + ' PMV has an unknown code (' + pmv + ')' );
                                }
                            }
                        }

                        pm_htm += '</ul>';

                        // info box
                        road.SetTitle( no_htm );
                        road.SetDescription( seg_htm + dtc_htm + mt_htm );

                        // pushpin shield

                        showShield = false;

                        tallyCnt[ RS.L[ i ].NO ] = ( tallyCnt[ RS.L[ i ].NO ] ) ? tallyCnt[ RS.L[ i ].NO ] + 1 : 1;

                        // filter shields

                        if( Pmx.zoom < Pmx.mediumShieldLevel )
                        {
                            // a poor condition takes precedence over the midpoint
                            if( poorVisPos[ RS.L[ i ].NO ] )
                            {
                                if( i == poorVisPos[ RS.L[ i ].NO ] )
                                {
                                    showShield = true;
                                }
                            }
                            // show only major highways in ON and QC
                            else if( prv == 'ON' || prv == 'QC' )
                            {
                                if( RS.L[ i ].NO.length >= 3 )
                                {
                                    midPoint = ( tally[ RS.L[ i ].NO ] > 1 ) ? Math.floor( tally[ RS.L[ i ].NO ] / 2 ) : 1;

                                    if( tallyCnt[ RS.L[ i ].NO ] == midPoint )
                                    {
                                        showShield = true;
                                    }
                                }
                            }
                            else
                            {
                                midPoint = ( tally[ RS.L[ i ].NO ] > 1 ) ? Math.floor( tally[ RS.L[ i ].NO ] / 2 ) : 1;

                                if( tallyCnt[ RS.L[ i ].NO ] == midPoint )
                                {
                                    showShield = true;
                                }
                            }

                            shieldSize = 'sm';
                        }
                        else if( Pmx.zoom >= Pmx.mediumShieldLevel && Pmx.zoom < Pmx.largeShieldLevel )
                        {
                            // a poor condition takes precedence over the two points
                            if( poorVisPos[ RS.L[ i ].NO ] )
                            {
                                if( i == poorVisPos[ RS.L[ i ].NO ] )
                                {
                                    showShield = true;
                                }
                            }
                            else
                            {
                                pt1 = Math.ceil( tally[ RS.L[ i ].NO ] * 0.33 );
                                pt2 = Math.ceil( tally[ RS.L[ i ].NO ] * 0.66 );

                                if( tallyCnt[ RS.L[ i ].NO ] == pt1 || tallyCnt[ RS.L[ i ].NO ] == pt2 )
                                {
                                    showShield = true;
                                }
                            }

                            shieldSize = 'md';
                        }
                        else
                        {
                            showShield = true;
                            shieldSize = 'lg';
                        }

                        if( showShield === true )
                        {
                            if( Pmx.debug === true && Pmx.console.debug === true )
                            {
                                console.debug( 'i=' + i + ', hwy=' + RS.L[ i ].NO + ', pmv=' + RS.L[ i ].PMV );
                            }

                            if( RS.L[ i ].PMV )
                            {
                                pmv = RS.L[ i ].PMV;

                                // TODO: remove temporary fix for error in Pelmorex code for Quebec
                                if( prv == 'QC' )
                                {
                                    mtv = RS.L[ i ].MTV;
                                    code = 'NA';
                                    if( mtv == 'B' ) { code = 'GD'; }
                                    else if( mtv == 'R' || mtv == 'NE' || mtv == 'N' ) { code = 'PR'; }
                                }
                                else
                                {
                                    code = pmv;
                                }

                                if( Pmx.pngFix === true )
                                {
                                    css = roads_pmx_vis[ code ][ 'css_' + shieldSize ];
                                    road.SetCustomIcon( '<div class="' + css + '"></div>' );
                                }
                                else
                                {
                                    icon = roads_pmx_vis[ code ][ 'icon_' + shieldSize ];
                                    road.SetCustomIcon( '<div><img src="' + Pmx.imgRoot + icon + '" /></div>' );
                                }
                            }
                            else
                            {
                                road.SetCustomIcon( '<div></div>' );
                            }
                        }
                        else
                        {
                            road.SetCustomIcon( '<div></div>' );
                        }
                    }

                    // set the road colour
                    road.SetLineColor( col );

                    // add road to the road layer
                    Pmx.roadShapeLayer.AddShape( road );

/*
                    if( col != roads_pmx_sur[ Pmx.mapStyle ].NA.colour )
                    {
                        // set the road colour
                        road.SetLineColor( col );

                        // add road to the road layer
                        Pmx.roadShapeLayer.AddShape( road );
                    }
*/
                }
                else
                {
                    if( Pmx.debug === true && Pmx.console.warn === true )
                    {
                        console.warn( 'Line ' + i + '/' + numSegments + ' does not have enough points!' );
                    }
                }
            }

            // update stats
            if( document.getElementById( 'segments' ) ) { document.getElementById( 'segments' ).innerHTML = numSegments; }
            if( document.getElementById( 'vertices' ) ) { document.getElementById( 'vertices' ).innerHTML = numVertices; }
            if( document.getElementById( 'density' ) ) { document.getElementById( 'density' ).innerHTML = density + '%'; }

            // add road layers to the map
            Pmx.map.AddShapeLayer( Pmx.roadShadowShapeLayer );
            Pmx.roadShadowShapeLayer.Show();

            Pmx.map.AddShapeLayer( Pmx.roadShapeLayer );
            Pmx.roadShapeLayer.Show();

            if( Pmx.debug === true && Pmx.console.info === true )
            {
                console.info( 'drawRoads: lines=' + numSegments + ', vertices=' + numVertices + ', zoom=' + Pmx.zoom );
            }

            if( Pmx.debug === true && Pmx.console.info === true )
            {
                var scriptElems = document.getElementsByTagName( 'head' ).item( 0 ).getElementsByTagName( 'script' );
                for( i = 0; i < scriptElems.length; i++ )
                {
                    console.info( '\t' + i + ': [' + scriptElems[ i ].id + '] ' + encodeURI( scriptElems[ i ].src ) );
                }
            }
        }
        else
        {
            if( Pmx.debug === true && Pmx.console.warn === true )
            {
                console.warn( 'No lines!' );
            }
        }
    }
    catch( e )
    {
        if( Pmx.debug === true && Pmx.console.error === true )
        {
            console.error( 'drawRoads: ' + e.message );
        }
    }

    // clean up
    Pmx.jsr.removeScriptTag();

    Pmx.hideLoading();

    Timer.stop();
};

/**
 * Description: Format date object in local time.
 */
Pmx.formatDate = function( date_obj )
{
    var date_fmt = '';

    if( date_obj )
    {
        var yyyy = date_obj.getFullYear();
        var mm = Pmx.zeroPad( ( date_obj.getMonth() + 1 ), 2 );
        var dd = Pmx.zeroPad( date_obj.getDate(), 2 );

        // format hours in 12-hour time
        var ampm;
        var hh = date_obj.getHours();
/*
        if( hh < 12 )
        {
            ampm = 'AM';
        }
        else
        {
            hh = hh - 12;
            ampm = 'PM';
        }
*/
        if( hh === 0 )
        {
            hh = 12;
            ampm = 'AM';
        }
        else if( hh > 0 && hh < 12 )
        {
            ampm = 'AM';
        }
        else if( hh == 12 )
        {
            ampm = 'PM';
        }
        else
        {
            hh = hh - 12;
            ampm = 'PM';
        }

        hh = Pmx.zeroPad( hh, 2 );
        var nn = Pmx.zeroPad( date_obj.getMinutes(), 2 );

        // get timezone offset in hours
        var tz = date_obj.getTimezoneOffset() / 60;
        if( tz < 0 )
        {
            tz = '+' + Math.abs( tz );
        }
        else
        {
            tz = '-' + Math.abs( tz );
        }

        //date_fmt = yyyy + '/' + mm + '/' + dd + ' ' + hh + ':' + nn + ' ' + ampm + ' (GMT' + tz + ')';
        date_fmt = yyyy + '/' + mm + '/' + dd + ' ' + hh + ':' + nn + ' ' + ampm;
    }

    return date_fmt;
};

/**
 * Description: Format date object in UTC.
 */
Pmx.formatDateUTC = function( date_obj )
{
    var date_fmt = '';

    if( date_obj )
    {
        var yyyy_utc = date_obj.getUTCFullYear();
        var mm_utc = Pmx.zeroPad( ( date_obj.getUTCMonth() + 1 ), 2 );
        var dd_utc = Pmx.zeroPad( date_obj.getUTCDate(), 2 );

        // format hours in 12-hour time
        var ampm_utc;
        var hh_utc = date_obj.getUTCHours();
        if( hh_utc < 12 )
        {
            ampm_utc = 'AM';
        }
        else
        {
            hh_utc = hh_utc - 12;
            ampm_utc = 'PM';
        }
        hh_utc = Pmx.zeroPad( hh_utc, 2 );
        var nn_utc = Pmx.zeroPad( date_obj.getUTCMinutes(), 2 );

        date_fmt = yyyy_utc + '/' + mm_utc + '/' + dd_utc + ' ' + hh_utc + ':' + nn_utc + ' ' + ampm_utc + ' (GMT)';
    }

    return date_fmt;
};

/**
 * Description: Converts the VirtualEarth tile path structure to OpenLayers.
 */
Pmx.getCacheTilePath = function( tileContext )
{
    //Timer.start( 'getCacheTilePath' );

    var tileX = tileContext.XPos;
    var tileY = Math.pow( 2, tileContext.ZoomLevel ) - tileContext.YPos - 1;
    var tileZ = tileContext.ZoomLevel;

    // append epoch time to URL to prevent caching of tiles
    var epoch = ( new Date() ).getTime();

    var components = [
        this.layername,
        Pmx.zeroPad( tileZ, 2 ),
        Pmx.zeroPad( parseInt( tileX / 1000000, 10 ), 3 ),
        Pmx.zeroPad( ( parseInt( tileX / 1000, 10 ) % 1000 ), 3 ),
        Pmx.zeroPad( ( parseInt( tileX, 10 ) % 1000 ), 3 ),
        Pmx.zeroPad( parseInt( tileY / 1000000, 10 ), 3 ),
        Pmx.zeroPad( ( parseInt( tileY / 1000, 10 ) % 1000 ), 3 ),
        Pmx.zeroPad( ( parseInt( tileY, 10 ) % 1000 ), 3 ) + '.' + 'png?s=' + epoch
    ];

    var path = components.join( '/' );
    var url = Pmx.tileUrl + path;

    if( Pmx.debug === true && Pmx.console.debug === true )
    {
        console.debug( 'tileX=' + tileX + ', tileY=' + tileY + ', tileZ=' + tileZ + ', tileSrc=' + url );
    }

    //Timer.stop();

    return url;
};

/**
 * Description: Get tile-based road conditions.
 */
Pmx.getRoadTiles = function()
{
    Timer.start( 'getRoadTiles' );

    try
    {
        Pmx.tileSource.MaxZoomLevel = Pmx.vectorLevel;

        Pmx.tileSource.Bounds = [ new VELatLongRectangle( new VELatLong( Pmx.bounds.x1, Pmx.bounds.y1 ), new VELatLong( Pmx.bounds.x2, Pmx.bounds.y2 ) ) ];

        // display all the tileSource properties
/*
        if( Pmx.debug === true && Pmx.console.debug === true )
        {
            console.debug( 'tileSource:' );
            for( var i in Pmx.tileSource )
            {
                if( typeof( Pmx.tileSource[ i ] ) == 'object' )
                {
                    console.debug( '\t' + i + ':' + Pmx.tileSource[ i ] );
                    for( var j in Pmx.tileSource[ i ] )
                    {

                        if( typeof( Pmx.tileSource[ i ][ j ] ) == 'object' )
                        {
                            console.debug( '\t\t' + j + ':' + Pmx.tileSource[ i ][ j ] );
                            for( var k in Pmx.tileSource[ i ][ j ] )
                            {
                                console.debug( '\t\t\t' + k + '=' + Pmx.tileSource[ i ][ j ][ k ] + ' [' + typeof( Pmx.tileSource[ i ][ j ][ k ] ) + ']' );
                            }
                        }
                        else
                        {
                            console.debug( '\t\t' + j + '=' + Pmx.tileSource[ i ][ j ] + ' [' + typeof( Pmx.tileSource[ i ][ j ] ) + ']' );
                        }
                    }
                }
                else
                {
                    console.debug( '\t' + i + '=' + Pmx.tileSource[ i ] + ' [' + typeof( Pmx.tileSource[ i ] ) + ']' );
                }
            }
        }
*/

        if( Pmx.mapType == 'tiles' )
        {
            Pmx.map.DeleteTileLayer( Pmx.tileId );
        }

        Pmx.map.AddTileLayer( Pmx.tileSource, true );
        Pmx.mapType = 'tiles';
    }
    catch( e )
    {
        if( Pmx.debug === true && Pmx.console.error === true )
        {
            console.error( 'getRoadTiles: ' + e.description );
        }
    }

    Timer.stop();
};

/**
 * Description: Update the map if the pan/zoom delay is reached.
 */
Pmx.handleEndPan = function()
{
    Pmx.endPanZoomTimer = null;
    Pmx.updateMap();
};

/**
 * Description: Update the map if the pan/zoom delay is reached.
 */
Pmx.handleEndZoom = function()
{
    Pmx.endPanZoomTimer = null;
    Pmx.zoomed = false;
    Pmx.updateMap();
};

/**
 * Description: Hide the loading indicators.
 */
Pmx.hideLoading = function()
{
    if( Pmx.elems.spinner.style.display != 'none' )
    {
        window.status = '';
        Pmx.elems.map.style.cursor = Pmx.cursor;
        Pmx.elems.spinner.style.display = 'none';
    }

    if( Pmx.timeout )
    {
        clearTimeout( Pmx.timeout );
/*
        if( Pmx.debug === true && Pmx.console.warn === true )
        {
            console.warn( 'The request timed out!' );
        }
*/
    }
};

/**
 * Description: Hide the map popup.
 */
Pmx.hidePopup = function()
{
    var popupDivElem = document.getElementById( Pmx.elemId.popup );
    popupDivElem.style.display = "none";
};

/**
 * Description: Hide selected buttons on the VE dashboard.
 */
Pmx.hideVEButtons = function()
{
    try
    {
        var ids = [
            'MSVE_navAction_FlatlandMapMode',
            'MSVE_navAction_View3DMapMode',
            'MSVE_navAction_separator0',
            'MSVE_navAction_ObliqueMapView',
            'MSVE_navAction_separator2',
            'MSVE_navAction_toggleGlyphWrapper'
        ];

        for( var i = 0; i < ids.length; i++ )
        {
            document.getElementById( ids[ i ] ).style.display = 'none';
        }
    }
    catch( e )
    {
        // ignore
    }
};

/**
 * Description: Handle onmousewheel event to disable zooming in and out with the scroll wheel.
 */
Pmx.onMouseWheel = function( e )
{
    return true;
};

/**
 * Description: Resize the width of selected VE buttons to support longer French text.
 */
Pmx.resizeVEButtons = function( w1, w2, w3 )
{
    try
    {
        if( w1 )
        {
            document.getElementById( 'MSVE_navAction_RoadMapStyle' ).style.width = w1;
        }

        if( w2 )
        {
            document.getElementById( 'MSVE_navAction_AerialMapStyle' ).style.width = w2;
        }

        if( w3 )
        {
            document.getElementById( 'MSVE_navAction_HybridMapStyle' ).style.width = w3;
        }
    }
    catch( e )
    {
        // ignore
    }
};

/**
 * Description: Sends a JSON Script Request.
 */
Pmx.sendJSR = function( url )
{
    Timer.start( 'sendJSR' );

    try
    {
        Pmx.jsr = new Pmx.JSR( url );

        Pmx.jsr.buildScriptTag();
        Pmx.jsr.addScriptTag();
/*
        if( Pmx.debug === true && Pmx.console.debug === true )
        {
            var headElem = document.getElementsByTagName( 'head' ).item( 0 );
            console.debug( headElem.innerHTML );
        }
*/
    }
    catch( e )
    {
        if( Pmx.debug === true && Pmx.console.error === true )
        {
            console.error( 'sendJSR: ' + e.description );
        }
    }

    Timer.stop();
};

/**
 * Description: Sets the language to 'en' or 'fr'.
 */
Pmx.setLang = function( val )
{
    if( val == 'fr' || val == 'FR' )
    {
        Pmx.lang = 'fr';
    }
    else
    {
        Pmx.lang = 'en';
    }

    Pmx.updateLanguageLabels();
    Pmx.updateMap();
};

/**
 * Description: Center the map over a location based on lat/lon pair.
 */
Pmx.setLatLon = function( lat, lon )
{
    if( lat ) { Pmx.latitude = parseFloat( lat, 10 ); }
    if( lon ) { Pmx.longitude = parseFloat( lon, 10 ); }

    var latlon = new VELatLong( Pmx.latitude, Pmx.longitude );

    Pmx.map.SetCenter( latlon );
    Pmx.updateMap();
};

/**
 * Description: Center the map over a location based on lat/lon string.
 */
Pmx.setLocation = function( val )
{
    var coords = val.split( ',' );

    Pmx.latitude = parseFloat( coords[ 0 ], 10 );
    Pmx.longitude = parseFloat( coords[ 1 ], 10 );

    var latlon = new VELatLong( Pmx.latitude, Pmx.longitude );

    Pmx.map.SetCenter( latlon );
    Pmx.updateMap();
};

/**
 * Description: Set the zoom level when vector-based roads are used on the map.
 */
Pmx.setVectorLevel = function( elem )
{
    if( elem )
    {
        Pmx.vectorLevel = elem.value;
    }
};

/**
 * Description: Show an error message.
 */
Pmx.showError = function( html )
{
    var mapElem = document.getElementById( Pmx.elemId.map );

    mapElem.style.backgroundColor = '#FFE8E8';
    mapElem.style.color = '#FF0000';
    mapElem.style.textAlign = 'center';
    mapElem.innerHTML = '<span><b>' + roads_err_msg.error[ Pmx.lang ] + ':</b><br /><br />' + html + '</span>';
};

/**
 * Description: Show the loading indicators.
 */
Pmx.showLoading = function( msg )
{
    if( msg )
    {
        window.status = msg;
    }

    Pmx.elems.map.style.cursor = 'wait';
    Pmx.elems.spinner.style.display = 'inline';
    Pmx.timeout = setTimeout( "Pmx.hideLoading()", Pmx.maxTimeout );
};

/**
 * Description: Show the map popup.
 */
Pmx.showPopup = function( m, q )
{
    var j = new GetVEMapInstance( q );
    if( j === null )
    {
        return;
    }

    var a = null;
    var s = null;
    var r = null;

    if( j.m_velayermanager === null )
    {
        return;
    }

    var k = null;
    k = j.m_velayermanager.VE_LayerManager;
    if( !k )
    {
        return;
    }

    a = k.GetAnnotationById( m );
    if( !a )
    {
        return;
    }
    //console.debug( a.Title + ': ' + a.Notes );

    var popupDivElem = document.getElementById( Pmx.elemId.popup );

    var popupClose = '<img class="map_popup_close" src="' + Pmx.imgRoot + 'close_aero_off.gif" onmouseover="this.src=\'' + Pmx.imgRoot + 'close_aero_on.gif\';" onmouseout="this.src=\'' + Pmx.imgRoot + 'close_aero_off.gif\';" onclick="Pmx.hidePopup();" alt="Close" title="Close" />';

    popupDivElem.innerHTML = popupClose + a.Title + a.Notes;
    popupDivElem.style.display = "inline";

    var h = popupDivElem.offsetHeight; // get height of content area AFTER it's been updated AND visible
    //var w = popupDivElem.style.width;
    var w = 190;

    var x = event.clientX;
    var y = event.clientY;

    var sizeX = parseInt( w, 10 ) + parseInt( x, 10 );
    var sizeY = parseInt( h, 10 ) + parseInt( y, 10 );

    // check if box is beyond the right margin
    if( sizeX > document.body.clientWidth )
    {
        var x1 = parseInt( document.body.clientWidth, 10 ) - parseInt( w, 10 );

        // check if box is beyond the left margin
        if( x1 > 0 )
        {
            x = x - w;
        }
    }

    // check if box is beyond the bottom margin
    if( sizeY > document.body.clientHeight )
    {
        var y1 = parseInt( y, 10 ) - parseInt( h, 10 );

        // check if box is beyond the top margin
        if( y1 > 0 )
        {
            y = y - h;
        }
    }

    popupDivElem.style.left = x + 'px';
    popupDivElem.style.top = y + 'px';

    // add iframe behind popup so it displays over select menus and other plugins
    if( Pmx.pngFix === true )
    {
        // IE 5.5 and 6.0
        popupDivElem.innerHTML += '<iframe id="map_popup_iframe" src="about:blank" style="position: absolute; border-style: none; top: -1px; left: -1px; width: ' + ( w + 10 ) + 'px; height: ' + ( h - 2 ) + 'px; z-index: -1; visibility: visible;" scrolling="no" frameborder="1"></iframe>';
    }
    else
    {
        popupDivElem.innerHTML += '<iframe id="map_popup_iframe" src="blank.html" style="position: absolute; top: 1px; left: 1px; width: ' + ( w + 6 ) + 'px; height: ' + ( h - 6 ) + 'px; z-index: -1; visibility: visible;" scrolling="no" frameborder="0" allowtransparency="true" style="filter: chroma(color=#FFFFFF)"></iframe>';
    }
};

/**
 * Description: Toggle the VE dashboard.
 */
Pmx.toggleDashboard = function( elem )
{
    if( elem )
    {
        if( elem.checked )
        {
            Pmx.map.ShowDashboard();
        }
        else
        {
            Pmx.map.HideDashboard();
        }
    }
};

/**
 * Description: Toggle the debug property.
 */
Pmx.toggleDebug = function( elem )
{
    if( elem )
    {
        if( elem.checked )
        {
            Pmx.debug = true;
        }
        else
        {
            Pmx.debug = false;
        }
    }
};

/**
 * Description: Toggle the driving directions layer.
 */
Pmx.toggleDirections = function( elem )
{
    if( elem )
    {
        Pmx.showLoading( 'Loading directions...' );

        try
        {
            var opts = new VERouteOptions();
            opts.DistanceUnit = VERouteDistanceUnit.Kilometer;
            opts.SetBestMapView = false;

            if( elem.checked )
            {
                Pmx.map.GetDirections( [ "Toronto", "Montreal" ], opts );
            }
            else
            {
                Pmx.map.GetDirections( [] );
            }
        }
        catch( e )
        {
            // ignore
        }

        Pmx.hideLoading();
    }
};

/**
 * Description: Toggle the landmarks layer.
 */
Pmx.toggleLandmarks = function( elem )
{
    if( elem )
    {
        if( elem.checked )
        {
            Pmx.landmarkLayer.Show();
        }
        else
        {
            Pmx.landmarkLayer.Hide();
        }
    }
};

/**
 * Description: Toggle the VE mini map.
 */
Pmx.toggleMiniMap = function( elem )
{
    if( elem )
    {
        if( elem.checked )
        {
            var xoffset = parseInt( Pmx.elems.map.style.width, 10 ) - 160;
            var yoffset = parseInt( Pmx.elems.map.style.height, 10 ) - 180;

            Pmx.map.ShowMiniMap( xoffset, yoffset );
        }
        else
        {
            Pmx.map.HideMiniMap();
        }
    }
};

/**
 * Description: Toggle the road conditions layer.
 */
Pmx.toggleRoadConditions = function( elem )
{
    if( elem )
    {
        if( elem.checked )
        {
            if( Pmx.zoom >= Pmx.vectorLevel )
            {
                Pmx.roadShadowShapeLayer.Show();
                Pmx.roadShapeLayer.Show();
            }
            else
            {
                Pmx.map.ShowTileLayer( Pmx.tileId );
            }
        }
        else
        {
            if( Pmx.zoom >= Pmx.vectorLevel )
            {
                Pmx.roadShadowShapeLayer.Hide();
                Pmx.roadShapeLayer.Hide();
            }
            else
            {
                Pmx.map.HideTileLayer( Pmx.tileId );
            }
        }
    }
};

/**
 * Description: Toggle the "shadows" for vector-based roads.
 */
Pmx.toggleRoadShadows = function( elem )
{
    if( elem )
    {
        if( elem.checked )
        {
            if( Pmx.zoom >= Pmx.vectorLevel )
            {
                Pmx.roadShadowShapeLayer.Show();

                Pmx.roadShapeLayer.Hide();
                Pmx.roadShapeLayer.Show();
            }
            else
            {
                Pmx.map.ShowTileLayer( Pmx.tileId );
            }
        }
        else
        {
            if( Pmx.zoom >= Pmx.vectorLevel )
            {
                Pmx.roadShadowShapeLayer.Hide();
            }
            else
            {
                Pmx.map.HideTileLayer( Pmx.tileId );
            }
        }
    }
};

/**
 * Description: Toggle the VE traffic.com layer.
 */
Pmx.toggleTraffic = function( elem )
{
    if( elem )
    {
        if( elem.checked )
        {
            Pmx.map.LoadTraffic( true );
        }
        else
        {
            try
            {
                Pmx.map.LoadTraffic( false );
            }
            catch( e )
            {
                // ignore
            }
        }
    }
};

/**
 * Description: Updates the bounding box for the current map view.
 */
Pmx.updateBounds = function()
{
    var updated = false;
    var ratio;

    try
    {
        var x1 = Pmx.map.GetMapView().TopLeftLatLong.Latitude;
        var y1 = Pmx.map.GetMapView().TopLeftLatLong.Longitude;
        var x2 = Pmx.map.GetMapView().BottomRightLatLong.Latitude;
        var y2 = Pmx.map.GetMapView().BottomRightLatLong.Longitude;

        // check if the current view is within the bounds
        if( x1 > Pmx.bounds.x1 || y1 < Pmx.bounds.y1 || x2 < Pmx.bounds.x2 || y2 > Pmx.bounds.y2 )
        {
            updated = true;
            ratio = Pmx.zoomRatios[ Pmx.zoom ];

            var center = Pmx.map.GetCenter();

            // calculate offsets
            var xoffset = ( ( y2 - y1 ) * ratio ) / 2;
            var yoffset = ( ( x1 - x2 ) * ratio ) / 2;

            // scale bounds
            var xs1 = center.Latitude + yoffset;
            var ys1 = center.Longitude - xoffset;
            var xs2 = center.Latitude - yoffset;
            var ys2 = center.Longitude + xoffset;

            // update bounds
            Pmx.bounds.x1 = xs1;
            Pmx.bounds.y1 = ys1;
            Pmx.bounds.x2 = xs2;
            Pmx.bounds.y2 = ys2;

            if( Pmx.debug === true && Pmx.console.debug === true )
            {
                console.debug( 'updateBounds: [updated=' + updated + '], [x1=' + x1 + ', y1=' + y1 + ', x2=' + x2 + ', y2=' + y2 + '], [ratio=' + ratio + '], [zoom=' + Pmx.zoom + '], [xs1=' + xs1 + ', ys1=' + ys1 + ', xs2=' + xs2 + ', ys2=' + ys2 + ']' );
            }
        }
        else
        {
            if( Pmx.debug === true && Pmx.console.debug === true )
            {
                console.debug( 'updateBounds: [updated=' + updated + '], [Pmx.bounds.x1=' + Pmx.bounds.x1 + ', Pmx.bounds.y1=' + Pmx.bounds.y1 + ', Pmx.bounds.x2=' + Pmx.bounds.x2 + ', Pmx.bounds.y2=' + Pmx.bounds.y2 + '], [x1=' + x1 + ', y1=' + y1 + ', x2=' + x2 + ', y2=' + y2 + ']' );
            }
        }

        return updated;
    }
    catch( e )
    {
        if( Pmx.debug === true && Pmx.console.warn === true )
        {
            console.warn( 'updateBounds: ' + e.description );
        }
    }
};

/**
 * Description: Update the language of the labels.
 */
Pmx.updateLanguageLabels = function()
{
    try
    {
        var elem;

        // update text in loading dialog
        if( document.getElementById( 'spinner_txt' ) )
        {
            document.getElementById( 'spinner_txt' ).innerHTML = roads_lbl.ld[ Pmx.lang ];
        }

        // update text in Virtual Earth
        for( var e in roads_ve_lbl )
        {
            elem = document.getElementById( e );

            if( elem.innerHTML && roads_ve_lbl[ e ].label[ Pmx.lang ] )
            {
                elem.innerHTML = roads_ve_lbl[ e ].label[ Pmx.lang ];
            }

            if( elem.title && roads_ve_lbl[ e ].title[ Pmx.lang ] )
            {
                elem.title = roads_ve_lbl[ e ].title[ Pmx.lang ];
            }
        }
    }
    catch( err )
    {
        if( Pmx.debug === true && Pmx.console.warn === true )
        {
            console.warn( 'updateLanguageLabels: ' + err.description );
        }
    }
};

/**
 * Description: Updates the map on a pan or zoom event.
 */
Pmx.updateMap = function( evt )
{
    Pmx.screen.w = parseInt( Pmx.elems.map.style.width, 10 );
    Pmx.screen.h = parseInt( Pmx.elems.map.style.height, 10 );

    // check if the zoom level changed
    var zoomed = false;
    if( Pmx.map.GetZoomLevel() != Pmx.zoom )
    {
        zoomed = true;
        Pmx.zoom = Pmx.map.GetZoomLevel();

        // reset bounds
        Pmx.bounds.x1 = 0;
        Pmx.bounds.y1 = 0;
        Pmx.bounds.x2 = 0;
        Pmx.bounds.y2 = 0;
    }

    if( Pmx.elems.zoom ) { Pmx.elems.zoom.innerHTML = Pmx.zoom; }

    if( !Pmx.elems.opt_road_conditions || Pmx.elems.opt_road_conditions.checked === true )
    {
        try
        {
            var updated = Pmx.updateBounds();

            if( zoomed === true || updated === true )
            {
                // update stats
                if( document.getElementById( 'segments' ) ) { document.getElementById( 'segments' ).innerHTML = ''; }
                if( document.getElementById( 'vertices' ) ) { document.getElementById( 'vertices' ).innerHTML = ''; }
                if( document.getElementById( 'density' ) ) { document.getElementById( 'density' ).innerHTML = ''; }
                if( document.getElementById( 'time' ) ) { document.getElementById( 'time' ).innerHTML = ''; }
                if( document.getElementById( 'fetch' ) ) { document.getElementById( 'fetch' ).innerHTML = 'true'; }

                // show vector-based road conditions
                if( Pmx.zoom >= Pmx.vectorLevel )
                {
                    //Pmx.roadShadowShapeLayer.DeleteAllShapes();
                    //Pmx.roadShapeLayer.DeleteAllShapes();

                    Pmx.cursor = Pmx.elems.map.style.cursor;

                    Pmx.showLoading( 'Requesting vector data...' );

                    try
                    {
                        if( Pmx.mapType == 'tiles' )
                        {
                            Pmx.map.DeleteTileLayer( Pmx.tileId );
                        }
                    }
                    catch( err )
                    {
                        if( Pmx.debug === true && Pmx.console.warn === true )
                        {
                            console.warn( 'updateMap (DeleteTileLayer): ' + err.description );
                        }
                    }

                    var url = Pmx.jsonUrl;

                    // RDW request format
                    url += '?X1=' + Pmx.bounds.y1 + Pmx.jsonReqSep + 'Y1=' + Pmx.bounds.x1;
                    url += Pmx.jsonReqSep + 'X2=' + Pmx.bounds.y2 + Pmx.jsonReqSep + 'Y2=' + Pmx.bounds.x2;
                    url += Pmx.jsonReqSep + 'ZL=' + Pmx.zoom;
                    url += Pmx.jsonReqSep + 'AT=5';
                    url += Pmx.jsonReqSep + 'CB=' + Pmx.jsonCallback;

                    // TODO: add HTTP response to prevent caching?
                    //url += 'HD=[12345]';
                    //url += Pmx.jsonReqSep + 'HD=[12345]';
                    //url += Pmx.jsonReqSep + 'HD=[Expires: -1\r\nCache-Control: no-store, no-cache, must-revalidate\r\nHD=Pragma: no-cache\r\n]';
                    //url += Pmx.jsonReqSep + 'HD=[Expires: -1]';
                    //url += Pmx.jsonReqSep + 'HD=[Cache-Control: no-store, no-cache, must-revalidate]';
                    //url += Pmx.jsonReqSep + 'HD=[Pragma: no-cache]';

                    if( Pmx.debug === true && Pmx.console.log === true )
                    {
                        console.log( 'JSR: ' + encodeURI( url ) );
                    }

                    // add script element to document head, which sends an HTTP
                    // request, and executes the 'drawRoads' callback function on
                    // the data in the HTTP response

                    Pmx.sendJSR( url );
                }
                // show tile-based road conditions
                else
                {
                    if( Pmx.roadShapeLayer.IsVisible() )
                    {
                        Pmx.roadShadowShapeLayer.Hide();
                        Pmx.roadShapeLayer.Hide();
                    }

                    Pmx.getRoadTiles();
                }
            }
        }
        catch( e )
        {
            Pmx.hideLoading();

            if( Pmx.debug === true && Pmx.console.error === true )
            {
                console.error( 'updateMap: ' + e.description );
            }
        }
    }
};

/**
 * Description: Update the map style for switching the road colours.
 */
Pmx.updateMapStyle = function()
{
    Pmx.mapStyle = Pmx.map.GetMapStyle();
    Pmx.drawRoads();
};

/**
 * Zero-pad a positive integer.
 * number - {Int}
 * length - {Int}
 *
 * Returns:
 * {String} A zero-padded string
 */
Pmx.zeroPad = function( number, length )
{
    number = String( number );
    var zeros = [];
    for( var i = 0; i < length; ++i )
    {
        zeros.push( '0' );
    }
    return zeros.join( '' ).substring( 0, length - number.length ) + number;
};

//---[ Helper Classes ]-------------------------------------------------------

/**
 * JSON Script Request (JSR) object.
 */
Pmx.JSR = function(  srcUrl )
{
    this.srcUrl = srcUrl;
    this.noCache = Pmx.jsonReqSep + 'noCache=' + ( new Date() ).getTime() + Pmx.jsonReqSep;
    this.headTagElem = document.getElementsByTagName( 'head' ).item( 0 );
    this.scriptId = 'PmxMapId' + Pmx.JSR.scriptCounter++;
};

/**
 * Description: Build the script tag.
 */
Pmx.JSR.prototype.buildScriptTag = function()
{
    try
    {
        this.scriptObj = document.createElement( 'script' );

        this.scriptObj.setAttribute( 'type', 'text/javascript' );
        this.scriptObj.setAttribute( 'src', this.srcUrl + this.noCache );
        //this.scriptObj.setAttribute( 'src', this.srcUrl );
        this.scriptObj.setAttribute( 'id', this.scriptId );
    }
    catch( e )
    {
        if( Pmx.debug === true && Pmx.console.error === true )
        {
            console.error( 'buildScriptTag: ' + e.description );
        }
    }
};

/**
 * Description: Add the script tag to the <head>.
 */
Pmx.JSR.prototype.addScriptTag = function()
{
    try
    {
        this.headTagElem.appendChild( this.scriptObj );
    }
    catch( e )
    {
        if( Pmx.debug === true && Pmx.console.error === true )
        {
            console.error( 'addScriptTag: ' + e.description );
        }
    }
};

/**
 * Description: Remove the script tag from the <head>.
 */
Pmx.JSR.prototype.removeScriptTag = function()
{
    // TODO: add logic to remove any previous script tags that weren't removed
    try
    {
        if( this.scriptObj )
        {
            this.headTagElem.removeChild( this.scriptObj );
        }
    }
    catch( e )
    {
        if( Pmx.debug === true && Pmx.console.warn === true )
        {
            console.warn( 'removeScriptTag: ' + e.description );
        }
    }
};

/**
 * Description: Timer object for benchmarking.
 */
var Timer =
{
    functionName : '',
    startTime    : 0,
    stopTime     : 0,
    elapsedTime  : 0
};

/**
 * Description: Start timer.
 */
Timer.start = function( functionName )
{
    this.functionName = functionName;
    this.startTime = new Date();
};

/**
 * Description: Stop timer.
 */
Timer.stop = function()
{
    this.stopTime = new Date();
    this.elapsedTime = ( this.stopTime - this.startTime ) / 1000;

    if( Pmx.debug === true && Pmx.console.info === true )
    {
        console.info( this.functionName + ': ' + this.elapsedTime + ' secs.' );
    }

    if( document.getElementById( 'time' ) && this.functionName == 'drawRoads' )
    {
        document.getElementById( 'time' ).innerHTML = this.elapsedTime + ' secs.';
    }
};

//---[ Global Functions ]-----------------------------------------------------

/**
 * Description: This is a callback function for when there is no data in the JSON response.
 */
function NoContent()
{
    Pmx.hideLoading();

    Pmx.jsr.removeScriptTag();

    Pmx.roadShadowShapeLayer.DeleteAllShapes();
    Pmx.roadShapeLayer.DeleteAllShapes();

    if( Pmx.debug === true && Pmx.console.warn === true )
    {
        console.warn( 'No data returned!' );
    }
}
/* MAP OBJ */

