diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7a04521 --- /dev/null +++ b/Makefile @@ -0,0 +1,40 @@ +PROJECT = go-traintimes + +VERSION=`git describe --tags` +BUILD=`date +%FT%T%z` + + +ECR_REPO = git.caliban.io/martin + +APP_IMAGE = $(ECR_REPO)/$(PROJECT):$(VERSION) + +NO_CACHE = true + +LDFLAGS=-ldflags "-w -s -X main.Version=${VERSION} -X main.Build=${BUILD}" + + +.PHONY: build +build: + #CC=/usr/local/musl/bin/musl-gcc go build --ldflags '-linkmode external -extldflags "-static"' server.go + GCO_ENABLED=0 GOOS=linux go build ${LDFLAGS} -o ${PROJECT} main.go + # go build ${LDFLAGS} -o ${PROJECT} server.go + +# docker build ./docker/. -t $(APP_IMAGE) --build-arg VERSION=$(VERSION) --no-cache=$(NO_CACHE) --compress=true + docker build --platform linux/amd64 --no-cache -force-rm --tag ${APP_IMAGE} --file ./docker/Dockerfile . + + +#push docker image to registry +.PHONY: push +push: build + docker push $(APP_IMAGE) + + +#push docker image to registry +.PHONY: run +run: build + docker run $(APP_IMAGE) + +ver: + @echo '$(VERSION)' + #echo $ERSION +.PHONY: ver \ No newline at end of file diff --git a/OLD_pb_public/browserconfig.xml b/OLD_pb_public/browserconfig.xml new file mode 100644 index 0000000..9e68e5d --- /dev/null +++ b/OLD_pb_public/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #2b5797 + + + diff --git a/OLD_pb_public/build/bundle.css b/OLD_pb_public/build/bundle.css new file mode 100644 index 0000000..797405f --- /dev/null +++ b/OLD_pb_public/build/bundle.css @@ -0,0 +1,12 @@ +@import url("https://fonts.googleapis.com/css?family=Roboto+Condensed");@import url(./fonts/fujicons.css);*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}body{height:100%;overflow-x:hidden;font-family:'Roboto Condensed', sans-serif;font-size:1rem;line-height:1.6}a{color:#5e81ac;text-decoration:none}a:hover{color:#666}a.active{color:#b48ead}ul{list-style:none}img{width:100%}.container{max-width:1100px;margin:auto;overflow-y:scroll;padding:0 2rem}hr{margin-top:2.2rem;margin-bottom:2rem;border-width:0;border-top:1px solid #2e3440}.flex{display:flex}.pad{padding:0.5rem}.pad--1{padding:1rem}.pad--2{padding:2rem}.pad--3{padding:3rem}.pady{padding:0.5rem 0}.pady--top{padding-top:0.5rem}.pady--bottom{padding-bottom:0.5rem}.pady--1{padding:1rem 0}.pady--2{padding:2rem 0}.pady--3{padding:3rem 0}.padx{padding:0 0.5rem}.padx--right{padding-right:0.5rem}.padx--left{padding-left:0.5rem}.padx--1{padding:0 1rem}.padx--2{padding:0 2rem}.padx--3{padding:0 3rem}.grid{display:flex;display:-ms-flexbox;flex-wrap:wrap}.grid--1{display:grid;grid-template-columns:repeat(1, 1fr);grid-gap:1rem}.grid--2{display:grid;grid-template-columns:repeat(2, 1fr);grid-gap:1rem}.grid--3{display:grid;grid-template-columns:repeat(3, 1fr);grid-gap:1px}.grid--4{display:grid;grid-template-columns:repeat(4, 1fr);grid-gap:1rem}.row{margin-left:3px;margin-right:3px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.col-1{width:8.33333%}.col-2{width:16.66667%}.col-3{width:25%}.col-4{width:33.33333%}.col-5{width:41.66667%}.col-6{width:50%}.col-7{width:58.33333%}.col-8{width:66.66667%}.col-9{width:75%}.col-10{width:83.33333%}.col-11{width:91.66667%}.col-12{width:100%;margin-left:0}.col-1-3rd{width:32.666667%}.col-2-3rd{width:65.3333333333%}.col-half{width:48%}.offset-1-col{margin-left:8.66666666667%}.offset-2-col{margin-left:17.3333333333%}.offset-3-col{margin-left:26%}.offset-4-col{margin-left:34.6666666667%}.offset-5-col{margin-left:43.3333333333%}.offset-6-col{margin-left:52%}.offset-7-col{margin-left:60.6666666667%}.offset-8-col{margin-left:69.3333333333%}.offset-9-col{margin-left:78.0%}.offset-10-col{margin-left:86.6666666667%}.offset-11-col{margin-left:95.3333333333%}.offset-1-3rd-col{margin-left:34.6666666667%}.offset-2-3rd-col{margin-left:69.3333333333%}.offset-half-col{margin-left:52%}.x-large{font-size:4rem;line-height:1.2;margin-bottom:1rem}.large{font-size:3rem;line-height:1.2;margin-bottom:1rem}.lead{font-size:1.5rem;margin-bottom:1rem}.text-primary{color:#5e81ac}.text-dark{color:#2e3440}.text-light{color:#2e3440}.text-success{color:#a3be8c}.text-danger{color:#bf616a}.text-highlight{color:#b48ead}.text-highlight2{color:#ebcb8b}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-display1,h1{font-weight:400;font-size:34px;line-height:40px}.text-title,h3{font-weight:400;font-size:20px;line-height:28px}.text-subhead,h4{font-weight:400;font-size:16px;line-height:24px}.text-body2,h5{font-weight:500;font-size:14px;line-height:24px}.text-body1{font-weight:400;font-size:14px;line-height:20px}.text-caption{font-weight:400;font-size:12px;line-height:16px}.align-middle{vertical-align:middle !important}.all-center{display:flex;flex-direction:column;width:100%;margin:auto;justify-content:center;align-items:center;text-align:center}.text-justify{text-align:justify !important}.text-nowrap{white-space:nowrap !important}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-bottom{vertical-align:bottom !important}.btn,.btn--slim{display:inline-block;background:#e5e9f0;color:#333;padding:0.4rem 1.3rem;font-size:1rem;border:none;cursor:pointer;margin-right:0.5rem;transition:opacity 0.2s ease-in;outline:none}.btn:disabled,.btn--slim:disabled{cursor:not-allowed;pointer-events:none;opacity:0.60;box-shadow:none}.btn:enabled:hover,.btn--slim:enabled:hover{opacity:0.8}.btn--slim{padding:0.4rem}.btn-link{background:none;padding:0;margin:0}.btn-block{display:block;width:100%}.btn-sm,.btn-sm--slim{font-size:0.8rem;padding:0.3rem 1rem;margin-right:0.2rem}.btn-sm--slim{padding:0.3rem}.badge{display:inline-block;font-size:0.6rem;padding:0.1rem 0.4rem;text-align:center;margin:0.3rem;background:#e5e9f0;color:#333;border-radius:3px}.alert{padding:0.7rem;margin:1rem 0;opacity:0.9;background:#e5e9f0;color:#333}.btn-primary,.bg-primary,.badge-primary,.alert-primary{background:#5e81ac;color:#fff}.btn-light,.bg-light,.badge-light,.alert-light{background:#e5e9f0;color:#333}.btn-dark,.bg-dark,.badge-dark,.alert-dark{background:#2e3440;color:#fff}.btn-danger,.bg-danger,.badge-danger,.alert-danger{background:#bf616a;color:#fff}.btn-success,.bg-success,.badge-success,.alert-success{background:#a3be8c;color:#fff}.btn-white,.bg-white,.badge-white,.alert-white{background:#fff;color:#333;border:#ccc solid 1px}.bg-light,.badge-light{border:#ccc solid 1px}.table-responsive{display:block;overflow-x:auto;width:100%}table{max-width:100%;width:100%;border:0;margin-bottom:1rem;border-collapse:collapse}tr{border-top:1px solid #ccc}tbody tr:nth-of-type(odd){background-color:rgba(0, 0, 0, 0.04)}tbody td{border-top:1px solid #e1e1e1}.navbar{position:fixed;display:flex;justify-content:space-between;align-items:center;z-index:2;width:100%;opacity:0.9;margin-bottom:1rem;min-height:56px}.navbar ul{display:flex}.navbar a{color:#fff;padding:0.45rem;margin:0 0.25rem}.navbar a:hover{color:#e5e9f0}.navbar .welcome span{margin-right:0.6rem}.navbar .navbar-section{align-items:center;display:flex;display:-ms-flexbox;flex:1 0 0;-ms-flex-align:center}.navbar .navbar-section:not(:first-child):last-child{justify-content:flex-end}.navbar .navbar-brand{font-size:200%;font-weight:bold}header+div.container{position:relative;top:56px;overflow:auto;height:calc(100vh - 56px);max-height:calc(100vh - 56px)}.m{margin:0.5rem}.m--1{margin:1rem}.m--2{margin:2rem}.m--3{margin:3rem}.mb{margin-bottom:.1rem !important}.mb--1{margin-bottom:.2rem !important}.mb--2{margin-bottom:.4rem !important}.ml{margin-left:.1rem !important}.ml--1{margin-left:.2rem !important}.ml--2{margin-left:.4rem !important}.mr{margin-right:.1rem !important}.mr--1{margin-right:.2rem !important}.mr .mr-2{margin-right:.4rem !important}.mt{margin-top:.1rem !important}.mt--1{margin-top:.2rem !important}.mt--2{margin-top:.4rem !important}.mx{margin-left:0.5rem !important;margin-right:0.5rem !important}.mx--1{margin-left:1rem !important;margin-right:1rem !important}.mx--2{margin-left:2rem !important;margin-right:2rem !important}.my{margin:0.5rem 0}.my--1{margin:1rem 0}.my--2{margin:2rem 0}.my--3{margin:3rem 0}.card,.card--slim{padding:1rem;border:#ccc 1px dotted;margin:0.7rem 0}.card--slim{padding:5px}.cardTitle{border-bottom-color:#eee;border-bottom-width:1px;border-bottom-style:solid;margin-bottom:15px}.cardV2{border-radius:4px;background-color:#fff;box-shadow:0 0 4px 0 rgba(0, 0, 0, 0.14), 0 3px 4px 0 rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);min-width:0}.seemore{font-size:14px;font-weight:500}.cardLink{color:#2196F3;margin-top:10px}@media(max-width: 480px){.container{max-width:98vw;padding:0 0;overflow-y:scroll}}@media(max-height: 480px){.navbar{min-height:36px}header+div.container{position:relative;top:36px;max-height:calc(100vh - 36px)}.navbar .navbar-brand{font-size:125%;font-weight:bold}}@media(min-height: 900px){body{font-size:x-large}}.nrccAlert a{color:#00ffa2}.betterInput{background-color:deeppink;padding-bottom:6px !important;padding-top:6px !important}.up,.ontime,.trendUp{color:#4CAF50 !important}.down,.delayed,.trendDown{color:#F44336 !important} +.mui-dropdown.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{display:inline-block;position:relative}.mui-dropdown__menu.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{box-shadow:0 1px 3px rgba(21, 21, 21, 0.12), 0 1px 2px rgba(21, 21, 21, 0.24);position:absolute;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:1rem;text-align:left;background-color:#fff;border-radius:0.1;z-index:100;background-clip:padding-box}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.mui-dropdown__menu.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{border-top:1px solid rgba(21, 21, 21, 0.12);border-left:1px solid rgba(21, 21, 21, 0.12)}}@supports (-ms-ime-align: auto){.mui-dropdown__menu.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{border-top:1px solid rgba(21, 21, 21, 0.12);border-left:1px solid rgba(21, 21, 21, 0.12)}}.mui-dropdown__menu.mui--is-open.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{display:block}.mui-dropdown__menu.svelte-1up86vp>li.svelte-1up86vp>a.svelte-1up86vp{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.6;color:#294c5d;text-decoration:none;white-space:nowrap}.mui-dropdown__menu.svelte-1up86vp>li.svelte-1up86vp>a.svelte-1up86vp:hover,.mui-dropdown__menu.svelte-1up86vp>li.svelte-1up86vp>a.svelte-1up86vp:focus{text-decoration:none;color:#294c5d;background-color:#dcc894}.mui-dropdown--right.svelte-1up86vp.svelte-1up86vp>.mui-dropdown__menu.svelte-1up86vp.svelte-1up86vp{margin:0 0 0 2px}input.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{background-color:deeppink;padding-bottom:6px !important;padding-top:6px !important} +.grid-3.svelte-ojjucl{display:grid;grid-template-columns:repeat(3, 1fr);grid-gap:1rem} +.TRcard.svelte-10t8pfm.svelte-10t8pfm{display:flex;justify-content:space-between;align-items:center;padding:0.7rem 0rem;z-index:1;width:98%;opacity:0.9;margin-bottom:0.4rem;border-bottom-color:#666666;box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), + 0 1px 5px 0 rgba(0, 0, 0, 0.12)}.TRcard.svelte-10t8pfm .entry.svelte-10t8pfm{align-items:left;display:flex;display:-ms-flexbox;-ms-flex-align:center;flex-direction:column}.TRcard.svelte-10t8pfm .entry.svelte-10t8pfm:not(:first-child):last-child{justify-content:flex-end;align-items:right}.entryOld.svelte-10t8pfm.svelte-10t8pfm{height:36px;margin:6px 0;vertical-align:middle}.TRcardOld.svelte-10t8pfm.svelte-10t8pfm{position:relative;background-color:#fff;min-height:48px;margin:0.5rem 8px;border-bottom-color:#666666;box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), + 0 1px 5px 0 rgba(0, 0, 0, 0.12);vertical-align:middle;padding:0.5rem 0;border-radius:0.1rem} +.avatar.svelte-1y2z4hv{max-width:48px;max-height:48px;-o-object-fit:scale-down;object-fit:scale-down;border-radius:0.1rem} +label.svelte-1wws4hx{font-weight:normal} +.svelte-apetsu{background:#f55a4e;padding:3px} +.svelte-apetsu{background:#f55a4e;padding:3px} + +/*# sourceMappingURL=bundle.css.map */ \ No newline at end of file diff --git a/OLD_pb_public/build/bundle.js b/OLD_pb_public/build/bundle.js new file mode 100644 index 0000000..7bf47fc --- /dev/null +++ b/OLD_pb_public/build/bundle.js @@ -0,0 +1,8 @@ +var app=function(){"use strict";function e(){}const t=e=>e;function n(e){return e()}function r(){return Object.create(null)}function o(e){e.forEach(n)}function a(e){return"function"==typeof e}function i(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}function l(t,...n){if(null==t)return e;const r=t.subscribe(...n);return r.unsubscribe?()=>r.unsubscribe():r}function s(e){let t;return l(e,e=>t=e)(),t}const c="undefined"!=typeof window;let u=c?()=>window.performance.now():()=>Date.now(),d=c?e=>requestAnimationFrame(e):e;const h=new Set;function f(e){h.forEach(t=>{t.c(e)||(h.delete(t),t.f())}),0!==h.size&&d(f)}function S(e){let t;return 0===h.size&&d(f),{promise:new Promise(n=>{h.add(t={c:e,f:n})}),abort(){h.delete(t)}}}function m(e,t){e.appendChild(t)}function g(e,t,n){e.insertBefore(t,n||null)}function y(e){e.parentNode.removeChild(e)}function B(e,t){for(let n=0;ne.removeEventListener(t,n,r)}function H(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function W(e,t){t=""+t,e.wholeText!==t&&(e.data=t)}function v(e,t){e.value=null==t?"":t}function T(e,t){const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,!1,!1,t),n}const N=new Set;let R,M=0;function P(e,t,n,r,o,a,i,l=0){const s=16.666/r;let c="{\n";for(let e=0;e<=1;e+=s){const r=t+(n-t)*a(e);c+=100*e+`%{${i(r,1-r)}}\n`}const u=c+`100% {${i(n,1-n)}}\n}`,d=`__svelte_${function(e){let t=5381,n=e.length;for(;n--;)t=(t<<5)-t^e.charCodeAt(n);return t>>>0}(u)}_${l}`,h=e.ownerDocument;N.add(h);const f=h.__svelte_stylesheet||(h.__svelte_stylesheet=h.head.appendChild(p("style")).sheet),S=h.__svelte_rules||(h.__svelte_rules={});S[d]||(S[d]=!0,f.insertRule(`@keyframes ${d} ${u}`,f.cssRules.length));const m=e.style.animation||"";return e.style.animation=`${m?m+", ":""}${d} ${r}ms linear ${o}ms 1 both`,M+=1,d}function A(e,t){const n=(e.style.animation||"").split(", "),r=n.filter(t?e=>e.indexOf(t)<0:e=>-1===e.indexOf("__svelte")),o=n.length-r.length;o&&(e.style.animation=r.join(", "),M-=o,M||d(()=>{M||(N.forEach(e=>{const t=e.__svelte_stylesheet;let n=t.cssRules.length;for(;n--;)t.deleteRule(n);e.__svelte_rules={}}),N.clear())}))}function D(e){R=e}function E(){if(!R)throw new Error("Function called outside component initialization");return R}function k(e){E().$$.on_mount.push(e)}function G(e){E().$$.on_destroy.push(e)}function F(e,t){const n=e.$$.callbacks[t.type];n&&n.slice().forEach(e=>e(t))}const I=[],O=[],K=[],x=[],$=Promise.resolve();let Y=!1;function _(){Y||(Y=!0,$.then(Q))}function U(){return _(),$}function V(e){K.push(e)}function J(e){x.push(e)}let j=!1;const X=new Set;function Q(){if(!j){j=!0;do{for(let e=0;e{Z=null})),Z}function ee(e,t,n){e.dispatchEvent(T(`${t?"intro":"outro"}${n}`))}const te=new Set;let ne;function re(){ne={r:0,c:[],p:ne}}function oe(){ne.r||o(ne.c),ne=ne.p}function ae(e,t){e&&e.i&&(te.delete(e),e.i(t))}function ie(e,t,n,r){if(e&&e.o){if(te.has(e))return;te.add(e),ne.c.push(()=>{te.delete(e),r&&(n&&e.d(1),r())}),e.o(t)}}const le={duration:0};function se(n,r,i,l){let s=r(n,i),c=l?0:1,d=null,h=null,f=null;function m(){f&&A(n,f)}function g(e,t){const n=e.b-c;return t*=Math.abs(n),{a:c,b:e.b,d:n,duration:t,start:e.start,end:e.start+t,group:e.group}}function y(r){const{delay:a=0,duration:i=300,easing:l=t,tick:y=e,css:B}=s||le,p={start:u()+a,b:r};r||(p.group=ne,ne.r+=1),d?h=p:(B&&(m(),f=P(n,c,r,i,a,l,B)),r&&y(0,1),d=g(p,i),V(()=>ee(n,r,"start")),S(e=>{if(h&&e>h.start&&(d=g(h,i),h=null,ee(n,d.b,"start"),B&&(m(),f=P(n,c,d.b,d.duration,0,l,s.css))),d)if(e>=d.end)y(c=d.b,1-c),ee(n,d.b,"end"),h||(d.b?m():--d.group.r||o(d.group.c)),d=null;else if(e>=d.start){const t=e-d.start;c=d.a+d.d*l(t/d.duration),y(c,1-c)}return!(!d&&!h)}))}return{run(e){a(s)?q().then(()=>{s=s(),y(e)}):y(e)},end(){m(),d=h=null}}}function ce(e,t){ie(e,1,1,()=>{t.delete(e.key)})}function ue(e,t,n,r,o,a,i,l,s,c,u,d){let h=e.length,f=a.length,S=h;const m={};for(;S--;)m[e[S].key]=S;const g=[],y=new Map,B=new Map;for(S=f;S--;){const e=d(o,a,S),l=n(e);let s=i.get(l);s?r&&s.p(e,t):(s=c(l,e),s.c()),y.set(l,g[S]=s),l in m&&B.set(l,Math.abs(S-m[l]))}const p=new Set,C=new Set;function L(e){ae(e,1),e.m(l,u),i.set(e.key,e),u=e.first,f--}for(;h&&f;){const t=g[f-1],n=e[h-1],r=t.key,o=n.key;t===n?(u=t.first,h--,f--):y.has(o)?!i.has(r)||p.has(r)?L(t):C.has(o)?h--:B.get(r)>B.get(o)?(C.add(r),L(t)):(p.add(o),h--):(s(n,i),h--)}for(;h--;){const t=e[h];y.has(t.key)||s(t,i)}for(;f;)L(g[f-1]);return g}function de(e,t,n){const r=e.$$.props[t];void 0!==r&&(e.$$.bound[r]=n,n(e.$$.ctx[r]))}function he(e){e&&e.c()}function fe(e,t,r){const{fragment:i,on_mount:l,on_destroy:s,after_update:c}=e.$$;i&&i.m(t,r),V(()=>{const t=l.map(n).filter(a);s?s.push(...t):o(t),e.$$.on_mount=[]}),c.forEach(V)}function Se(e,t){const n=e.$$;null!==n.fragment&&(o(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function me(t,n,a,i,l,s,c=[-1]){const u=R;D(t);const d=n.props||{},h=t.$$={fragment:null,ctx:null,props:s,update:e,not_equal:l,bound:r(),on_mount:[],on_destroy:[],before_update:[],after_update:[],context:new Map(u?u.$$.context:[]),callbacks:r(),dirty:c,skip_bound:!1};let f=!1;if(h.ctx=a?a(t,d,(e,n,...r)=>{const o=r.length?r[0]:n;return h.ctx&&l(h.ctx[e],h.ctx[e]=o)&&(!h.skip_bound&&h.bound[e]&&h.bound[e](o),f&&function(e,t){-1===e.$$.dirty[0]&&(I.push(e),_(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){var t;this.$$set&&(t=e,0!==Object.keys(t).length)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const ye=[];function Be(e,t){return{subscribe:pe(e,t).subscribe}}function pe(t,n=e){let r;const o=[];function a(e){if(i(t,e)&&(t=e,r)){const e=!ye.length;for(let e=0;e{const e=o.indexOf(s);-1!==e&&o.splice(e,1),0===o.length&&(r(),r=null)}}}}function Ce(t,n,r){const i=!Array.isArray(t),s=i?[t]:t,c=n.length<2;return Be(r,t=>{let r=!1;const u=[];let d=0,h=e;const f=()=>{if(d)return;h();const r=n(i?u[0]:u,t);c?t(r):h=a(r)?r:e},S=s.map((e,t)=>l(e,e=>{u[t]=e,d&=~(1<{d|=1<{Se(e,1)}),oe()}o?(t=new o({}),t.$on("routeEvent",e[5]),he(t.$$.fragment),ae(t.$$.fragment,1),fe(t,n.parentNode,n)):t=null}},i(e){r||(t&&ae(t.$$.fragment,e),r=!0)},o(e){t&&ie(t.$$.fragment,e),r=!1},d(e){e&&y(n),t&&Se(t,e)}}}function we(e){let t,n,r;var o=e[0];function a(e){return{props:{params:e[1]}}}return o&&(t=new o(a(e)),t.$on("routeEvent",e[4])),{c(){t&&he(t.$$.fragment),n=w()},m(e,o){t&&fe(t,e,o),g(e,n,o),r=!0},p(e,r){const i={};if(2&r&&(i.params=e[1]),o!==(o=e[0])){if(t){re();const e=t;ie(e.$$.fragment,1,0,()=>{Se(e,1)}),oe()}o?(t=new o(a(e)),t.$on("routeEvent",e[4]),he(t.$$.fragment),ae(t.$$.fragment,1),fe(t,n.parentNode,n)):t=null}else o&&t.$set(i)},i(e){r||(t&&ae(t.$$.fragment,e),r=!0)},o(e){t&&ie(t.$$.fragment,e),r=!1},d(e){e&&y(n),t&&Se(t,e)}}}function be(e){let t,n,r,o;const a=[we,Le],i=[];function l(e,t){return e[1]?0:1}return t=l(e),n=i[t]=a[t](e),{c(){n.c(),r=w()},m(e,n){i[t].m(e,n),g(e,r,n),o=!0},p(e,[o]){let s=t;t=l(e),t===s?i[t].p(e,o):(re(),ie(i[s],1,1,()=>{i[s]=null}),oe(),n=i[t],n||(n=i[t]=a[t](e),n.c()),ae(n,1),n.m(r.parentNode,r))},i(e){o||(ae(n),o=!0)},o(e){ie(n),o=!1},d(e){i[t].d(e),e&&y(r)}}}function He(){const e=window.location.href.indexOf("#/");let t=e>-1?window.location.href.substr(e+1):"/";const n=t.indexOf("?");let r="";return n>-1&&(r=t.substr(n+1),t=t.substr(0,n)),{location:t,querystring:r}}const We=Be(null,(function(e){e(He());const t=()=>{e(He())};return window.addEventListener("hashchange",t,!1),function(){window.removeEventListener("hashchange",t,!1)}}));Ce(We,e=>e.location),Ce(We,e=>e.querystring);function ve(e){if(!e||e.length<1||"/"!=e.charAt(0)&&0!==e.indexOf("#/"))throw Error("Invalid parameter location");return U().then(()=>{window.location.hash=("#"==e.charAt(0)?"":"#")+e})}function Te(t,n,r){let o,a=e;!function(e,t,n){e.$$.on_destroy.push(l(t,n))}(t,We,e=>r(6,o=e)),t.$$.on_destroy.push(()=>a());let{routes:i={}}=n,{prefix:s=""}=n;class c{constructor(e,t){if(!t||"function"!=typeof t&&("object"!=typeof t||!0!==t._sveltesparouter))throw Error("Invalid component object");if(!e||"string"==typeof e&&(e.length<1||"/"!=e.charAt(0)&&"*"!=e.charAt(0))||"object"==typeof e&&!(e instanceof RegExp))throw Error('Invalid value for "path" argument');const{pattern:n,keys:r}=function(e,t){if(e instanceof RegExp)return{keys:!1,pattern:e};var n,r,o,a,i=[],l="",s=e.split("/");for(s[0]||s.shift();o=s.shift();)"*"===(n=o[0])?(i.push("wild"),l+="/(.*)"):":"===n?(r=o.indexOf("?",1),a=o.indexOf(".",1),i.push(o.substring(1,~r?r:~a?a:o.length)),l+=~r&&!~a?"(?:/([^/]+?))?":"/([^/]+?)",~a&&(l+=(~r?"?":"")+"\\"+o.substring(a))):l+="/"+o;return{keys:i,pattern:new RegExp("^"+l+(t?"(?=$|/)":"/?$"),"i")}}(e);this.path=e,"object"==typeof t&&!0===t._sveltesparouter?(this.component=t.route,this.conditions=t.conditions||[],this.userData=t.userData):(this.component=t,this.conditions=[],this.userData=void 0),this._pattern=n,this._keys=r}match(e){s&&e.startsWith(s)&&(e=e.substr(s.length)||"/");const t=this._pattern.exec(e);if(null===t)return null;if(!1===this._keys)return t;const n={};let r=0;for(;r{u.push(new c(t,e))}):Object.keys(i).forEach(e=>{u.push(new c(e,i[e]))});let d=null,h=null;const f=function(){const e=E();return(t,n)=>{const r=e.$$.callbacks[t];if(r){const o=T(t,n);r.slice().forEach(t=>{t.call(e,o)})}}}(),S=(e,t)=>{U().then(()=>{f(e,t)})};return t.$$set=e=>{"routes"in e&&r(2,i=e.routes),"prefix"in e&&r(3,s=e.prefix)},t.$$.update=()=>{if(65&t.$$.dirty){r(0,d=null);let e=0;for(;!d&&e{t&&(e.node.classList.remove(t),e.pattern.test(Me)&&e.node.classList.add(t))})}function Ae(e){const t=e-1;return t*t*t+1}function De(e,{delay:n=0,duration:r=400,easing:o=t}){const a=+getComputedStyle(e).opacity;return{delay:n,duration:r,easing:o,css:e=>"opacity: "+e*a}}function Ee(e,{delay:t=0,duration:n=400,easing:r=Ae}){const o=getComputedStyle(e),a=+o.opacity,i=parseFloat(o.height),l=parseFloat(o.paddingTop),s=parseFloat(o.paddingBottom),c=parseFloat(o.marginTop),u=parseFloat(o.marginBottom),d=parseFloat(o.borderTopWidth),h=parseFloat(o.borderBottomWidth);return{delay:t,duration:n,easing:r,css:e=>`overflow: hidden;opacity: ${Math.min(20*e,1)*a};height: ${e*i}px;padding-top: ${e*l}px;padding-bottom: ${e*s}px;margin-top: ${e*c}px;margin-bottom: ${e*u}px;border-top-width: ${e*d}px;border-bottom-width: ${e*h}px;`}}We.subscribe(e=>{Me=e.location+(e.querystring?"?"+e.querystring:""),Re.map(Pe)});const ke=new Map([["ZNJ","Northampton North Junction"],["ZPS","Plaistow L.T."],["MSC","Marseille St Charles"],["ZAE","Aldgate East"],["ZEP","East Putney"],["GBG","Gorebridge"],["ZHR","Holloway Road"],["ZPN","Paddington (Bakerloo Line)"],["NMC","New Mills Central"],["HBB","Hubberts Bridge"],["ADC","Adlington (Cheshire)"],["WHI","Whitstable"],["FEG","Fellgate (T & W Metro)"],["HRH","Horsham"],["LNW","Llanwrtyd"],["RYP","Ryde Pier Head"],["PRU","Prudhoe"],["TLH","Tilehurst"],["SBM","South Bermondsey"],["TAM","Tamworth"],["CFD","Castleford"],["NMN","New Mills Newtown"],["HFS","Hatfield & Stainforth"],["WFN","Watford North"],["GWN","Gowerton"],["WMW","Walthamstow Queens Road"],["INP","Inverkip"],["WRW","Warwick"],["WHG","Westhoughton"],["WIM","Wimbledon"],["CLM","Collingham"],["DRF","Driffield"],["NWT","Newtown (Powys)"],["SOE","Southend East"],["PNF","Penyffordd"],["WYE","Wye"],["BAR","Bare Lane"],["YRM","Yarm"],["NTH","Neath"],["ERH","Erith"],["CFO","Chalfont & Latimer"],["FGW","Fishguard & Goodwick"],["BAY","Bayford"],["BER","Bearley"],["SIT","Sittingbourne"],["WHL","White Hart Lane"],["DRN","Duirinish"],["SWK","Southwick"],["MTM","Martin Mill"],["NWR","Newtonmore"],["ADW","Addiewell"],["ALV","Alvechurch"],["SQE","Surrey Quays"],["HIG","Highbridge & Burnham"],["RMC","Rotherham Central"],["NTN","Newton"],["CBN","Camborne"],["RIA","Rhoose Cardiff Intl Airport"],["BXW","Boxhill & Westhumble"],["TNN","Thorne North"],["FTN","Fratton"],["RUA","Ruabon"],["LAY","Layton"],["LLV","Llandovery"],["MAS","Manors"],["CLG","Claygate"],["CTT","Church Stretton"],["GGV","Gargrave"],["TNS","Thorne South"],["CRE","Crewe"],["WXC","Wrexham Central"],["CAD","Cadoxton"],["HYB","Honeybourne"],["WGT","Wigton"],["WRX","Wrexham General"],["RHO","Rhosneigr"],["KWL","Kidwelly"],["RYD","Ryde Esplanade"],["PTL","Priesthill & Darnley"],["NWN","Newton for Hyde"],["SBP","Stonebridge Park"],["PEV","Pevensey & Westham"],["ACL","Acle"],["GDH","Gordon Hill"],["LSY","Lower Sydenham"],["SEB","Seaburn (T & W Metro)"],["AYW","Aberystwyth"],["LNZ","Lenzie"],["MDS","Morden South"],["ADD","Adderley Park"],["EFL","East Farleigh"],["SPU","Staplehurst"],["UHL","Upper Holloway"],["WLP","Welshpool"],["CAS","Castleton"],["HAM","Hamworthy"],["BGN","Bridgend"],["BRN","Bearsden"],["APG","Aspley Guise"],["DEW","Dewsbury"],["BPS","Blackpool South"],["KSL","Kearsley"],["PYJ","Paisley St James"],["NBA","New Barnet"],["WHR","West Horndon"],["HLD","Hellifield"],["RDR","Radyr"],["VAL","Valley"],["BSD","Bearsted"],["FIT","Filton Abbey Wood"],["NAY","Newton Aycliffe"],["BWK","Berwick-upon-Tweed"],["BIF","Barrow-in-Furness"],["DMY","Drumry"],["CKH","Corkerhill"],["LBK","Long Buckby"],["BEA","Bridge of Allan"],["PEB","Pevensey Bay"],["CRL","Chorley"],["ECS","Eccles Road"],["FSG","Fishersgate"],["YSR","Ystrad Rhondda"],["UNV","University (T & W Metro)"],["WCL","West Calder"],["GNW","Greenwich"],["SAB","Smallbrook Junction"],["BDA","Brundall"],["LNG","Longcross"],["PSW","Polesworth"],["SPP","Shippea Hill"],["FIL","Filey"],["HRR","Harrington"],["MGM","Metheringham"],["RAV","Ravenglass for Eskdale"],["OLT","Olton"],["CRD","Chester Road"],["SAH","Salhouse"],["GIL","Gillingham (Dorset)"],["GNT","Gunton"],["FEN","Fenny Stratford"],["CBB","Carbis Bay"],["BLW","Bulwell"],["FMR","Falmer"],["WNY","White Notley"],["SFD","Salford Central"],["BGI","Bargeddie"],["WLY","Woodley"],["BYC","Betws-y-Coed"],["WYT","Wythall"],["KID","Kidderminster"],["SMO","South Merton"],["ULC","Ulceby"],["AWK","Adwick"],["CRR","Corrour"],["OVR","Overton"],["RET","Retford"],["STQ","Southampton Town Quay (Bus)"],["BBS","Bordesley"],["GOS","Grange-over-Sands"],["MAY","Maybole"],["YET","Yetminster"],["LIH","Leigh (Kent)"],["SMC","Sampford Courtenay"],["SLO","Slough"],["LHE","Loch Eil Outward Bound"],["WBP","West Brompton"],["NBT","Norbiton"],["KVP","Kiveton Park"],["PNL","Pannal"],["MEO","Meols"],["SRG","Seer Green"],["CTO","Carlton"],["GLY","Glynde"],["MSW","Mansfield Woodhouse"],["IBM","IBM"],["BRL","Barrhill"],["TRD","Troed-y-rhiw"],["MEC","Meols Cop"],["POL","Polsloe Bridge"],["TPN","Ton Pentre"],["BCK","Buckley"],["CHC","Charing Cross (Glasgow)"],["SRA","Stratford (London)"],["WWO","West Worthing"],["RSH","Rose Hill Marple"],["SMT","St Margarets (Hertfordshire)"],["WIH","Winchmore Hill"],["CRS","Carstairs"],["KGX","London Kings Cross"],["LHS","Limehouse"],["THB","Thornliebank"],["DRT","Darton"],["LLD","Llandudno"],["NRN","Nairn"],["KGE","Kingsknowe"],["TNA","Thornton Abbey"],["LRD","London Road (Guildford)"],["BAL","Balham"],["FRH","Calais Frethun"],["WAC","Warrington Central"],["GMV","Great Malvern"],["MNC","Markinch"],["WRT","Worstead"],["EBB","Ebbw Vale Town"],["MEL","Meldreth"],["BYB","Blythe Bridge"],["LOT","Lostock"],["CNM","Cheltenham Spa"],["FZH","Frizinghall"],["LLJ","Llandudno Junction"],["UPM","Upminster"],["DBC","Dumbarton Central"],["STT","Stewarton"],["DBE","Dumbarton East"],["TYS","Tyseley"],["DNS","Dinas Powys"],["DEE","Dundee"],["LDY","Ladybank"],["PBY","Pembrey & Burry Port"],["GMD","Grimsby Docks"],["KEI","Keighley"],["BIP","Bishopstone"],["SFO","Stanford-le-Hope"],["BYF","Broughty Ferry"],["MYH","Maryhill"],["DRM","Drem"],["NBE","Newbridge"],["WSF","Winsford"],["THD","Thames Ditton"],["HMM","Hammerton"],["HOR","Horley"],["BLY","Bletchley"],["ARU","Arundel"],["FNB","Farnborough (Main)"],["CGW","Caergwrle"],["MAO","Martins Heron"],["OXT","Oxted"],["PAT","Patricroft"],["GMB","Grimsby Town"],["TUR","Turkey Street"],["TAF","Taffs Well"],["LTN","Luton Airport Parkway"],["CHM","Chelmsford"],["FLW","Fulwell"],["HTW","Hartwood"],["PNZ","Penzance"],["WDE","Wood End"],["GCW","Glan Conwy"],["HOV","Hove"],["TRH","Trehafod"],["WTE","Whitlocks End"],["DLJ","Dalston Junction"],["VIR","Virginia Water"],["ASP","Aspatria"],["LPT","Longport"],["LWS","Lewes"],["EWD","Earlswood (West Midlands)"],["WAN","Wanborough"],["BTO","Betchworth"],["FLN","Flint"],["BUK","Bucknell"],["LLM","Llangammarch"],["CNG","Congleton"],["WMN","Warminster"],["MTL","Mortlake"],["BWT","Bridgwater"],["BRT","Barlaston"],["MNP","Manor Park"],["ESL","Eastleigh"],["SHO","Sholing"],["EGT","Egton"],["HDH","Hampstead Heath"],["WCP","Worcester Park"],["ISP","Islip"],["TPB","Thorpe Bay"],["CRH","Crouch Hill"],["TBW","Tunbridge Wells"],["GLE","Gleneagles"],["KSW","Kirkby Stephen"],["ALW","Allens West"],["DMG","Dinas Rhondda"],["BSR","Broadstairs"],["WEM","Wem"],["CSN","Chessington North"],["HRD","Harling Road"],["AUI","Ardlui"],["ERI","Eridge"],["APD","Appledore (Kent)"],["DHN","Deighton"],["GLG","Glengarnock"],["MLH","Mill Hill (Lancashire)"],["WRP","Warwick Parkway"],["GOF","Golf Street"],["CHY","Chertsey"],["WOK","Woking"],["LLE","Llanelli"],["MYB","London Marylebone"],["WIL","Willington"],["WIJ","Willesden Junction"],["BME","Broome"],["CAM","Camberley"],["SRT","Shortlands"],["SOP","Southport"],["TYB","Tan-y-Bwlch (Bus)"],["ENC","Enfield Chase"],["RYP","Ryde Pier Head"],["BEB","Bebington"],["LGW","Langwathby"],["WSE","Winchelsea"],["BFR","London Blackfriars"],["SCT","Scotscalder"],["RUG","Rugby"],["SRS","Selhurst"],["MLF","Milford (Surrey)"],["PNA","Penally"],["STU","Sturry"],["TWB","Tweedbank"],["YSM","Ystrad Mynach"],["JEQ","Jewellery Quarter"],["PTW","Prestwick Town"],["EBK","Eastbrook"],["PER","Penrhiwceiber"],["CWM","Cwmbran"],["ING","Invergowrie"],["RBS","British Steel Redcar"],["HLG","Hall Green"],["LSN","Livingston North"],["RML","Romiley"],["BUU","Burnham-on-Crouch"],["ZBC","Barons Court Underground"],["CPN","Chapleton"],["ROG","Rogart"],["LVG","Livingston South"],["HTC","Heaton Chapel"],["KGN","Kings Nympton"],["LCC","Lochluichart"],["DCG","Duncraig"],["TOD","Todmorden"],["WEA","West Ealing"],["SOK","South Kenton"],["SLA","Slateford"],["HLC","Helensburgh Central"],["LGJ","Loughborough Junction"],["HED","Halewood"],["ATH","Atherstone"],["EYN","Eynsford"],["SOT","Stoke-on-Trent"],["CAC","Caldercruix"],["SRC","Streatham Common"],["MSO","Moston"],["BEU","Beaulieu Road"],["ZBK","Barking Underground"],["BNR","Brockley Whins (T & W Metro)"],["LOH","Lostock Hall"],["MIL","Mill Hill Broadway"],["OHL","Old Hill"],["BDW","Bedwyn"],["PMA","Portsmouth Arms"],["WHC","Walthamstow Central"],["KDY","Kirkcaldy"],["FAZ","Fazakerley"],["GLC","Glasgow Central"],["HLU","Helensburgh Upper"],["LTG","Lostock Gralam"],["DLK","Dalston Kingsland"],["MTN","Moreton (Dorset)"],["EBL","East Boldon (T & W Metro)"],["CYN","Cynghordy"],["CHT","Chathill"],["HPT","Hopton Heath"],["ALO","Alloa"],["PMS","Portsmouth & Southsea"],["CON","Connel Ferry"],["WNC","Windsor & Eton Central"],["BET","Bethnal Green"],["SST","Stansted Mountfitchet"],["ESH","Esher"],["WSE","Winchelsea"],["CSS","Chessington South"],["CSL","Codsall"],["CPA","Corpach"],["HGF","Hag Fold"],["SRD","Stapleton Road"],["UPM","Upminster"],["BSJ","Bedford St Johns"],["RYB","Roy Bridge"],["DMP","Dumpton Park"],["LYT","Lymington Town"],["WHE","Whalley"],["HKC","Hackney Central"],["HYC","Hyde Central"],["PEW","Pewsey"],["AHN","Ashton-under-Lyne"],["PRW","Perranwell"],["CKL","Corkickle"],["DOD","Dodworth"],["WTA","Wester Hailes"],["PAW","Pelaw (T & W Metro)"],["AYP","Albany Park"],["NEW","Newcraighall"],["ORE","Ore"],["HAS","Halesworth"],["KWG","Kew Gardens"],["EXG","Exhibition Centre"],["HIL","Hillside"],["MPL","Marple"],["SDA","Snodland"],["BKA","Bookham"],["BNT","Brinnington"],["HKW","Hackney Wick"],["ACR","Accrington"],["QRP","Queens Road Peckham"],["MDG","Midgham"],["BAW","Blackwater"],["MEX","Mexborough"],["ADK","Ardwick"],["DNY","Danby"],["HIN","Hindley"],["PYG","Paisley Gilmour Street"],["PRA","Prestwick Intl Airport"],["DDP","Dudley Port"],["NMK","Newmarket"],["KGL","Kings Langley"],["MLN","Milngavie"],["FML","Frimley"],["NTR","Northallerton"],["SDW","Sandwich"],["BBW","Berry Brow"],["DID","Didcot Parkway"],["SOG","Stonegate"],["HAI","Halling"],["PWL","Pwllheli"],["WCF","Westcliff"],["HGG","Haggerston"],["CMR","Cromer"],["ALX","Alexandria"],["COO","Cookham"],["MRS","Monks Risborough"],["YRT","Yorton"],["BEN","Bentham"],["GOB","Gobowen"],["HAL","Hale"],["CAY","Carntyne"],["BUI","Burnside"],["SEL","Sellafield"],["WIM","Wimbledon"],["YRD","Yardley Wood"],["CHN","Cheshunt"],["HFX","Halifax"],["ELD","Earlswood (Surrey)"],["TOK","Three Oaks"],["PBN","Paris Nord"],["TED","Teddington"],["HKM","Hykeham"],["GRS","Garscadden"],["DSL","Disley"],["HDE","Hedge End"],["BNP","Barnstaple"],["KNS","Kennishead"],["LAK","Lakenheath"],["TUH","Tulse Hill"],["BSY","Brondesbury"],["FOX","Foxfield"],["SHR","Shrewsbury"],["WMG","Welham Green"],["HLF","Hillfoot"],["PMR","Peckham Rye"],["SGR","Slade Green"],["FRE","Freshfield"],["SDG","Sandling"],["DMR","Dalmuir"],["TRF","Trefforest"],["LZB","Lazonby & Kirkoswald"],["KCK","Knockholt"],["LLW","Llwyngwril"],["DCT","Danescourt"],["HRM","Harrietsham"],["WCM","Wickham Market"],["FEA","Featherstone"],["HNH","Herne Hill"],["MCO","Manchester Oxford Road"],["LER","Leytonstone High Road"],["RAU","Rauceby"],["HMW","Hampton Wick"],["SJS","St James Street"],["TEA","Tees-side Airport"],["LNR","Llanwrda"],["BEE","Beeston"],["MTV","Mount Vernon"],["BSV","Buckshaw Parkway"],["DAL","Dalmally"],["KTN","Kentish Town"],["TRA","Trafford Park"],["AMB","Ambergate"],["GOX","Goxhill"],["PLT","Pontlottyn"],["ATT","Attadale"],["POK","Pokesdown"],["STI","Stadium of Light (T & W Metro)"],["HOO","Hooton"],["KGS","Kings Sutton"],["KTW","Kentish Town West"],["ZPC","Piccadilly Circus Underground"],["UTT","Uttoxeter"],["BLH","Bellshill"],["BGA","Brundall Gardens"],["PRT","Prestatyn"],["CPT","Clapton"],["LET","Letchworth Garden City"],["PSN","Parson Street"],["PNE","Penge East"],["NFD","Northfield"],["LTV","Lichfield Trent Valley"],["CBG","Cambridge"],["NPD","New Pudsey"],["ETL","East Tilbury"],["LTV","Lichfield Trent Valley"],["SNI","Snaith"],["AVN","Avonmouth"],["TEN","Tenby"],["PTG","Port Glasgow"],["SPF","Springfield"],["TBD","Three Bridges"],["SLD","Salford Crescent"],["GOE","Goldthorpe"],["SMY","St Mary Cray"],["DBY","Derby"],["HXX","Heathrow Airport T123"],["THO","Thornford"],["PRE","Preston"],["KWN","Kilwinning"],["PRE","Preston"],["HWH","Haltwhistle"],["CNN","Canonbury"],["BOH","Bosham"],["OPK","Orrell Park"],["BDB","Broadbottom"],["LCK","Lockwood"],["NFL","Northfleet"],["TNP","Tonypandy"],["FOC","Falls of Cruachan"],["HYM","Haymarket"],["HIT","Hitchin"],["CLE","Cleethorpes"],["PAL","Palmers Green"],["ARD","Ardgay"],["BUS","Busby"],["LGE","Long Eaton"],["TUL","Tulloch"],["ABD","Aberdeen"],["BRO","Bridge of Orchy"],["GCT","Great Coates"],["INE","Ince & Elton"],["WTT","Witton"],["TRS","Thurston"],["FNC","Farncombe"],["EBD","Ebbsfleet International"],["DUR","Durrington-on-Sea"],["CSA","Cosham"],["PEG","Pegswood"],["CEA","Cleland"],["GCR","Gloucester"],["TAC","Tackley"],["MFH","Milford Haven"],["PRY","Perry Barr"],["RHL","Rhyl"],["THW","The Hawthorns"],["WTH","Whitehaven"],["KNG","Kingston"],["MIK","Micklefield"],["LRG","Lairg"],["EPS","Epsom"],["WBQ","Warrington Bank Quay"],["CUW","Clunderwen"],["DTG","Dinting"],["ACT","Ascot"],["BID","Bidston"],["BWG","Bowling"],["BMP","Brampton (Cumbria)"],["CLT","Clacton-on-Sea"],["BCH","Birchington-on-Sea"],["BEF","Benfleet"],["HMS","Helmsdale"],["KEY","Keyham"],["MOS","Moss Side"],["PTK","Partick"],["SGN","South Greenford"],["SOR","Sole Street"],["DBD","Denby Dale"],["BSP","Brondesbury Park"],["SEE","Southease"],["CNR","Crianlarich"],["CRT","Chartham"],["SUG","Sugar Loaf"],["HGM","Higham"],["WNG","Waun-gron Park"],["DUM","Dumbreck"],["PMR","Peckham Rye"],["CRB","Corbridge"],["NFA","North Fambridge"],["AGV","Abergavenny"],["HAG","Hagley"],["CEL","Chelford"],["HGD","Hungerford"],["BWN","Bloxwich North"],["KVD","Kelvindale"],["RUS","Ruswarp"],["CLV","Claverdon"],["RNH","Rainhill"],["EWW","Ewell West"],["HHY","Highbury & Islington"],["APP","Appleby"],["HKN","Hucknall"],["MSN","Marsden"],["TPC","Thorpe Culvert"],["EWE","Ewell East"],["GTN","Grangetown"],["LEO","Leominster"],["DOL","Dolau"],["CUH","Curriehill"],["KBK","Kents Bank"],["DPS","Dublin Port (Stena)"],["PAI","Pallion (T & W Metro)"],["MCB","Moulsecoomb"],["NMT","Needham Market"],["WFI","Westerfield"],["SCG","Stone Crossing"],["STR","Stranraer"],["ZWA","Waterloo Underground"],["PIL","Pilning"],["SWD","Swinderby"],["MSK","Marske"],["TRN","Troon"],["WID","Widnes"],["KMS","Kemsing"],["STZ","St Peters (T & W Metro)"],["ANF","Ashurst New Forest"],["WTN","Whitton"],["ANL","Anniesland"],["SCS","Starcross"],["FRB","Fairbourne"],["STK","Stockton"],["BEV","Beverley"],["KKM","Kirkham & Wesham"],["PDW","Paddock Wood"],["CAN","Carnoustie"],["STC","Strathcarron"],["CUF","Cuffley"],["MTP","Montpelier"],["SWM","Swanscombe"],["CBE","Canterbury East"],["DMF","Dumfries"],["HNT","Huntly"],["LLT","Llanbister Road"],["WAT","London Waterloo"],["MEW","Maesteg (Ewenny Road)"],["SUT","Sutton Coldfield"],["LDS","Leeds"],["BNM","Burnham"],["BEL","Beauly"],["HXM","Hoveton & Wroxham"],["HDL","Headstone Lane"],["LEY","Leyland"],["PRE","Preston"],["SNY","Sunnymeads"],["RNF","Rainford"],["EGN","Eastrington"],["KGH","Kinghorn"],["MAT","Matlock"],["NCK","New Cumnock"],["NWP","Newport (South Wales)"],["QPW","Queens Park (London)"],["MSD","Moorside"],["WLM","Williamwood"],["DWD","Dolwyddelan"],["WTL","Whitland"],["MPK","Mosspark"],["MAU","Mauldeth Road"],["HEX","Hexham"],["CLI","Clifton"],["SYD","Sydenham"],["LAD","Ladywell"],["CTM","Chatham"],["SWY","Sway"],["TRU","Truro"],["DLY","Dalry"],["PRP","Preston Park"],["BPB","Blackpool Pleasure Beach"],["LHO","Langho"],["SPS","Stepps"],["TOP","Topsham"],["BIA","Bishop Auckland"],["HTH","Handforth"],["MRT","Moreton (Merseyside)"],["MCH","March"],["TDU","Tondu"],["BCS","Bicester North"],["NMP","Northampton"],["ALP","Althorpe"],["BSE","Bury St Edmunds"],["PTR","Petersfield"],["BUC","Buckenham"],["KLY","Kenley"],["ELW","Eltham"],["WHA","Westenhanger"],["WWL","Whitwell"],["EDW","East Dulwich"],["NRD","North Road"],["BTE","Bitterne"],["IMW","Imperial Wharf"],["ANN","Annan"],["BDN","Brading"],["CES","Cressing"],["KBW","Knebworth"],["DAR","Darlington"],["HWD","Hawarden"],["TAD","Tadworth"],["BAG","Bagshot"],["ZHS","Kensington High St Underground"],["SMD","Stamford"],["BUD","Burneside"],["DOT","Dunston"],["ELS","Elstree & Borehamwood"],["CHF","Church Fenton"],["HAZ","Hazel Grove"],["KMH","Kempston Hardwick"],["SOF","South Woodham Ferrers"],["NRW","Norwich"],["AHS","Ashurst"],["FZW","Fitzwilliam"],["MIN","Milliken Park"],["RUN","Runcorn"],["WSL","Walsall"],["OKM","Oakham"],["WAT","London Waterloo"],["AYP","Albany Park"],["MST","Maesteg"],["KNU","Knucklas"],["LEI","Leicester"],["WAT","London Waterloo"],["WCR","Whitecraigs"],["MRP","Moorthorpe"],["SNH","St Helens Central"],["CAO","Cannock"],["RAI","Rainham (Kent)"],["RKT","Ruskington"],["YOK","Yoker"],["BDT","Bridlington"],["LDN","Llandanwg"],["SHJ","St Helens Junction"],["CHH","Christs Hospital"],["CMF","Cromford"],["HYR","Haydons Road"],["LGN","Longton"],["BXH","Bexleyheath"],["CPM","Chippenham"],["DFR","Drumfrochar"],["NCO","Newcourt"],["WET","Weeton"],["EMD","East Midlands Parkway"],["POP","Poppleton"],["AYH","Aylesham"],["ZUM","Upminster Underground"],["CHD","Chesterfield"],["HEZ","Heworth (T & W Metro)"],["PRB","Prestbury"],["GTR","Goostrey"],["ACK","Acklington"],["KNL","Kensal Green"],["SAN","Sandown"],["THL","Tile Hill"],["SIP","Shipton"],["SFA","Stratford International"],["UPW","Upwey"],["GIP","Gipsy Hill"],["RUT","Rutherglen"],["SES","South Elmsall"],["TGM","Teignmouth"],["ADS","Ardrossan Harbour"],["BCG","Birchgrove"],["RFD","Rochford"],["PES","Pensarn"],["BAI","Blairhill"],["TLB","Talybont"],["SVG","Stevenage"],["WPE","Wapping"],["BDG","Bridgeton"],["THH","Thatto Heath"],["ATB","Attenborough"],["MTH","Motherwell"],["WKM","Wokingham"],["GMT","Grosmont"],["ARL","Arlesey"],["BGD","Bargoed"],["REE","Reedham (Norfolk)"],["HPA","Honor Oak Park"],["NUN","Nuneaton"],["TRM","Trimley"],["WTY","Witley"],["SWO","Snowdown"],["MDB","Maidstone Barracks"],["ENL","Enfield Lock"],["MIJ","Mitcham Junction"],["MDE","Maidstone East"],["GOD","Godalming"],["HGR","Hither Green"],["SPO","Spondon"],["WNT","Wandsworth Town"],["ECR","East Croydon"],["CLS","Chester-le-Street"],["QYD","Quakers Yard"],["WBC","Waterbeach"],["NES","Neston"],["PCN","Paisley Canal"],["WSA","West Allerton"],["SFI","Shawfair"],["SLH","Sleights"],["HTN","Hatton"],["KIV","Kiveton Bridge"],["RIS","Rishton"],["DMS","Dormans"],["LCN","Lincoln Central"],["AYP","Albany Park"],["ERI","Eridge"],["WLC","Waltham Cross"],["MPT","Morpeth"],["MDW","Maidstone West"],["WEL","Wellingborough"],["HRY","Harringay Green Lanes"],["MOB","Mobberley"],["SWL","Swale"],["ECC","Eccles"],["HEW","Heworth"],["LLH","Llangennech"],["BKO","Brookwood"],["GSY","Guiseley"],["SBY","Selby"],["WSB","Westbury"],["ETC","Etchingham"],["BLT","Blantyre"],["SSD","Stansted Airport"],["DOR","Dore"],["NVR","Navigation Road"],["CFF","Croftfoot"],["CKN","Crewkerne"],["GLT","Glenrothes with Thornton"],["WTG","Watlington"],["BAN","Banbury"],["HYS","Hayes (Kent)"],["BHR","Builth Road"],["KND","Kingswood"],["KNN","Kings Norton"],["WOL","Wolverton"],["WTO","Water Orton"],["ADR","Airdrie"],["LLC","Llandecwyn"],["PKS","Parkstone (Dorset)"],["GOM","Gomshall"],["TYL","Tyndrum Lower"],["BOP","Bowes Park"],["HRY","Harringay Green Lanes"],["HER","Hersham"],["WRH","Worthing"],["BON","Bolton"],["BOA","Bradford-on-Avon"],["CFH","Chafford Hundred"],["UTY","Upper Tyndrum"],["NAR","Narberth"],["BDL","Birkdale"],["HMT","Ham Street"],["MKM","Melksham"],["AUW","Ascott-under-Wychwood"],["EAL","Ealing Broadway"],["EAL","Ealing Broadway"],["WTB","Whitby"],["CST","London Cannon Street"],["DWN","Darwen"],["BLE","Bramley (West Yorkshire)"],["AAP","Alexandra Palace"],["NUF","Nutfield"],["STG","Stirling"],["HON","Honiton"],["BPW","Bristol Parkway"],["KIT","Kintbury"],["RAD","Radley"],["MCE","Metro Centre"],["SNT","Stanlow & Thornton"],["BYD","Barry Docks"],["DAM","Dalmeny"],["FIN","Finstock"],["BMT","Bedminster"],["HSL","Haslemere"],["CET","Colchester Town"],["HDG","Heald Green"],["PNR","Penrith"],["MHM","Merstham"],["HSC","Hoscar"],["SNO","St Neots"],["BGM","Bellingham"],["NTL","Netley"],["HYH","Hythe"],["RDC","Redditch"],["LTK","Little Kimble"],["FOD","Ford"],["CLJ","Clapham Junction"],["HON","Honiton"],["CLJ","Clapham Junction"],["PNW","Penge West"],["WFJ","Watford Junction"],["HCH","Holmes Chapel"],["LVN","Littlehaven"],["BTL","Batley"],["ZET","Earl's Court Underground"],["WDL","Woodhall"],["BLX","Bloxwich"],["HLS","Hilsea"],["MKT","Marks Tey"],["OKE","Okehampton"],["HWY","High Wycombe"],["SYT","Somerleyton"],["MRY","Maryport"],["SDY","Sandy"],["CLJ","Clapham Junction"],["CEF","Chapel-en-le-Frith"],["LTP","Littleport"],["KPT","Kilpatrick"],["WDD","Widdrington"],["WHM","Whimple"],["CIT","Chislehurst"],["PFR","Pontefract Baghill"],["BKC","Birkenhead Central"],["HOY","Honley"],["INC","Ince"],["CLJ","Clapham Junction"],["GRC","Great Chesterford"],["IPS","Ipswich"],["WCB","Westcombe Park"],["CLJ","Clapham Junction"],["LYP","Lymington Pier"],["CTF","Catford"],["CTE","Chatelherault"],["FWY","Five Ways"],["NDL","North Dulwich"],["BWO","Bricket Wood"],["BKN","Birkenhead North"],["SOW","Sowerby Bridge"],["BTY","Bentley (Hampshire)"],["KLD","Kildale"],["NQY","Newquay"],["SCA","Scarborough"],["BEG","Beltring"],["BKP","Birkenhead Park"],["CLJ","Clapham Junction"],["GLO","Glossop"],["GRH","Gartcosh"],["TUT","Tutbury & Hatton"],["BCE","Bracknell"],["NNT","Nunthorpe"],["ZNP","Newbury Park Underground"],["SND","Sandhurst"],["FSB","Fishbourne (West Sussex)"],["SLW","Salwick"],["DIG","Digby & Sowton"],["EDG","Edge Hill"],["INH","Invershin"],["BTB","Barnetby"],["SJN","St James (T & W Metro)"],["SUY","Sudbury"],["AIG","Aigburth"],["ELR","Elsecar"],["SGB","Smethwick Galton Bridge"],["HYL","Hayle"],["KEM","Kemble"],["WIM","Wimbledon"],["SAS","St Annes-on-the-Sea"],["SHM","Sheringham"],["WRL","Wetheral"],["SUP","Sundridge Park"],["AWM","Ashwell & Morden"],["BUY","Burley Park"],["ABA","Aberdare"],["CRO","Croy"],["DAT","Datchet"],["LGS","Langside"],["WDM","Windermere"],["GMY","Goodmayes"],["BDQ","Bradford Forster Square"],["SOH","South Hampstead"],["GPK","Grange Park"],["EDP","Edinburgh Park"],["NWB","North Wembley"],["NWE","Newport (Essex)"],["CYT","Cherry Tree"],["HUY","Huyton"],["SFN","Shifnal"],["TOM","Tottenham Hale"],["CDI","Crediton"],["HUT","Hutton Cranswick"],["ABW","Abbey Wood"],["GDL","Godley"],["RHD","Ribblehead"],["TYP","Tynemouth (T & W Metro)"],["CSO","Croston"],["PHR","Penshurst"],["LAC","Lancing"],["SWS","South Wigston"],["BUX","Buxton"],["MLD","Mouldsworth"],["FLE","Fleet"],["MKR","Market Rasen"],["LEG","Lea Green"],["CMH","Cwmbach"],["TMC","Templecombe"],["TWI","Twickenham"],["WEE","Weeley"],["HID","Hall I' Th' Wood"],["TTF","Thetford"],["DLH","Doleham"],["BTF","Bottesford"],["JOR","Jordanhill"],["TIL","Tilbury Town"],["BMR","Bromborough Rake"],["DPD","Dorking Deepdene"],["BUT","Burton-on-Trent"],["LEO","Leominster"],["FRN","Fearn"],["SPK","Sutton Parkway"],["STL","Southall"],["VXH","Vauxhall"],["ALM","Alnmouth"],["HMN","Homerton"],["PNS","Penistone"],["DFP","Dublin Ferryport"],["SED","Shelford"],["MLB","Millbrook (Bedfordshire)"],["WWR","Wandsworth Road"],["WBR","Whaley Bridge"],["CNS","Conisbrough"],["JHN","Johnstone"],["LND","Longniddry"],["STF","Stromeferry"],["BCN","Branchton"],["PET","Petts Wood"],["RSG","Rose Grove"],["SAM","Saltmarshe"],["BNS","Barnes"],["PKG","Penkridge"],["SGB","Smethwick Galton Bridge"],["MUF","Manchester United FC"],["RHY","Rhymney"],["AMR","Amersham"],["KDB","Kidbrooke"],["PLC","Pluckley"],["CSM","Castleton Moor"],["HWF","Heathrow Airport T4 (Bus)"],["TAD","Tadworth"],["GTY","Gatley"],["HWX","Heathrow Airport T5 (Bus)"],["BLK","Blackrod"],["SLK","Silkstone Common"],["BSB","Bleasby"],["AGS","Argyle Street"],["MUI","Muirend"],["SMG","St Margarets (London)"],["MAN","Manchester Piccadilly"],["SEG","Selling"],["PLN","Portlethen"],["BSM","Branksome"],["NLN","New Lane"],["HTO","Hightown"],["BYI","Barry Island"],["HOL","Holton Heath"],["SFL","Seaforth & Litherland"],["SBR","Spean Bridge"],["KGS","Kings Sutton"],["LRB","London Road (Brighton)"],["GSC","Gilshochill"],["MCM","Morecambe"],["STP","London St Pancras (Intl)"],["FGT","Faygate"],["ALD","Alderley Edge"],["COH","Crowborough"],["ANF","Ashurst New Forest"],["OCK","Ockendon"],["ASN","Addlestone"],["CLL","Collington"],["MOT","Motspur Park"],["SDL","Sandhills"],["KKB","Kirkby in Ashfield"],["PAD","London Paddington"],["WOB","Woburn Sands"],["BNI","Barnes Bridge"],["QPW","Queens Park (London)"],["BNY","Barnsley"],["BPN","Blackpool North"],["KWD","Kirkwood"],["SCH","Scotstounhill"],["KNT","Kenton"],["LHD","Leatherhead"],["DRO","Dronfield"],["MRD","Morchard Road"],["CHU","Cheadle Hulme"],["LIC","Lichfield City"],["DSM","Darsham"],["ENF","Enfield Town"],["SSE","Shoreham-by-Sea"],["LGF","Longfield"],["LIP","Liphook"],["ACC","Acton Central"],["NHE","New Hythe"],["GCH","Garelochhead"],["GSN","Garston (Hertfordshire)"],["WRY","Wraysbury"],["RID","Ridgmont"],["KNF","Knutsford"],["STN","Stonehaven"],["WHP","West Hampstead Thameslink"],["DIS","Diss"],["MLG","Mallaig"],["REI","Reigate"],["DNG","Dunton Green"],["LUX","Luxulyan"],["GFD","Greenford"],["GNR","Green Road"],["STH","Shepreth"],["BXW","Boxhill & Westhumble"],["DUD","Duddeston"],["FER","Fernhill"],["CHI","Chingford"],["BKQ","Hamilton Square"],["MUB","Musselburgh"],["ULL","Ulleskelf"],["CLP","Clapham High Street"],["COW","Cowdenbeath"],["GLH","Glasshoughton"],["ATL","Attleborough"],["BIN","Bingham"],["LGO","Llangynllo"],["LRB","London Road (Brighton)"],["WKD","Walkden"],["HRW","Harrow & Wealdstone"],["URM","Urmston"],["CUA","Culrain"],["NBW","North Berwick"],["DMC","Drumchapel"],["EMP","Emerson Park"],["HLE","Hillington East"],["MGN","Marston Green"],["UWL","Upper Warlingham"],["LWM","Llantwit Major"],["ZDE","Dagenham East Underground"],["HIB","High Brooms"],["TQY","Torquay"],["LEU","Leuchars"],["LST","London Liverpool Street"],["ZTG","Turnham Green Underground"],["CDY","Cartsdyke"],["MTC","Mitcham Eastfields"],["HVF","Haverfordwest"],["CSW","Chestfield & Swalecliffe"],["TIR","Tir-phil"],["ERL","Earlestown"],["BGL","Bugle"],["HWM","Harlow Mill"],["SYB","Stalybridge"],["NOA","Newton-on-Ayr"],["FRT","Frant"],["GUI","Guide Bridge"],["HLW","Hillington West"],["MYT","Mytholmroyd"],["BKM","Berkhamsted"],["NEL","Nelson"],["NLT","Northolt Park"],["BES","Bescar Lane"],["BNA","Burnage"],["SRY","Shoeburyness"],["MSR","Minster"],["BNH","Barnehurst"],["DUN","Dunbar"],["LLG","Llangadog"],["PIN","Pinhoe"],["POR","Porth"],["CTR","Chester"],["MCK","Marne La Vallee"],["BUO","Bursledon"],["MDL","Middlewood"],["RHM","Reedham (Surrey)"],["WHD","West Hampstead"],["BDH","Bedhampton"],["ROB","Roby"],["KBF","Kirkby-in-Furness"],["RTR","Rochester"],["STV","Stevenston"],["TIP","Tipton"],["ASB","Ardrossan South Beach"],["DBR","Derby Road"],["LMS","Leamington Spa"],["FSK","Fiskerton"],["HWI","Horwich Parkway"],["WLI","Welling"],["WGC","Welwyn Garden City"],["SOU","Southampton Central"],["RUE","Runcorn East"],["FNH","Farnham"],["SRI","Spring Road"],["TAU","Taunton"],["ALT","Altrincham"],["WDS","Woodlesford"],["LEL","Lelant"],["MNR","Manor Road"],["PPL","Pontypool & New Inn"],["RDG","Reading"],["WNR","Windsor & Eton Riverside"],["SWT","Slaithwaite"],["RCD","Rochdale"],["CYP","Crystal Palace"],["DDG","Dorridge"],["KBX","Kirby Cross"],["SBJ","Stourbridge Junction"],["CRI","Cricklewood"],["WDU","West Dulwich"],["SNN","Swinton (Manchester)"],["BRP","Brampton (Suffolk)"],["COV","Coventry"],["DGL","Dingle Road"],["PYC","Pontyclun"],["LNY","Langley"],["GRP","Grove Park"],["HOU","Hounslow"],["SAE","Saltaire"],["BEH","Bedworth"],["SCY","South Croydon"],["BCY","Brockley"],["AVI","Avignon"],["VIC","London Victoria"],["BWD","Birchwood"],["HWN","Harlow Town"],["VIC","London Victoria"],["FRO","Frome"],["VIC","London Victoria"],["AWT","Armathwaite"],["CAT","Caterham"],["COB","Cooden Beach"],["WVH","Wolverhampton"],["HME","Hamble"],["AUG","Aughton Park"],["BEX","Bexhill"],["ACY","Abercynon"],["CML","Carmyle"],["PBR","Potters Bar"],["TOL","Tolworth"],["APN","Newcastle Airport"],["ADN","Ardrossan Town"],["GDP","Gidea Park"],["SBJ","Stourbridge Junction"],["WIJ","Willesden Junction"],["SDM","Shieldmuir"],["SEV","Sevenoaks"],["FRM","Fareham"],["HNA","Hinton Admiral"],["MRN","Marden"],["MIA","Manchester Airport"],["SBT","Stourbridge Town"],["MAI","Maidenhead"],["BKH","Blackheath"],["BYS","Braystones"],["HGT","Harrogate"],["BIL","Billingham"],["STM","St Michaels"],["BVD","Belvedere"],["LTS","Lelant Saltings"],["LHA","Loch Awe"],["BAD","Banstead"],["INT","Ingatestone"],["MKC","Milton Keynes Central"],["EDR","Edmonton Green"],["BNV","Banavie"],["BTP","Braintree Freeport"],["ROC","Roche"],["CHP","Chipstead"],["FNW","Farnworth"],["TAI","Tain"],["GAL","Galashiels"],["CHG","Charing"],["RMD","Richmond"],["MTN","Moreton (Dorset)"],["COR","Corby"],["SOI","Stow"],["BLG","Bellgrove"],["CNF","Carnforth"],["PST","Prestonpans"],["PKT","Park Street"],["SKS","Stocksfield"],["NRC","Newbury Racecourse"],["PNY","Pen-y-bont"],["EKL","East Kilbride"],["SRU","South Ruislip"],["CDU","Cam & Dursley"],["BRV","Bournville"],["WMS","Wemyss Bay"],["UDD","Uddingston"],["BHD","Brithdir"],["MOR","Mortimer"],["CUM","Culham"],["SDH","Sudbury Hill Harrow"],["STA","Stafford"],["PRL","Prittlewell"],["RDT","Radlett"],["SHP","Shepperton"],["CNP","Conway Park"],["TLK","The Lakes"],["BRX","Brixton"],["MTB","Matlock Bath"],["CLN","Chapeltown"],["KYN","Keynsham"],["NWA","North Walsham"],["BYA","Berney Arms"],["REC","Rectory Road"],["RRB","Ryder Brow"],["SUD","Sudbury & Harrow Road"],["SMN","Southminster"],["YAT","Yatton"],["KSN","Kearsney"],["PTF","Pantyffynnon"],["SWN","Swinton (South Yorkshire)"],["SRN","Strines"],["SWA","Swansea"],["TRR","Torre"],["SSC","Seascale"],["HOT","Henley-on-Thames"],["MVL","Malvern Link"],["ARR","Arram"],["SLT","Saltcoats"],["ANZ","Anerley"],["FPK","Finsbury Park"],["LAN","Lancaster"],["THA","Thatcham"],["BSC","Bescot Stadium"],["MTO","Marton"],["EGG","Eggesford"],["KEH","Keith"],["WCY","West Croydon"],["BOD","Bodmin Parkway"],["HOP","Hope (Derbyshire)"],["HRW","Harrow & Wealdstone"],["WTC","Whitchurch (Shropshire)"],["CHX","London Charing Cross"],["KIR","Kirkby"],["WGA","Westgate-on-Sea"],["WSM","Weston-super-Mare"],["BKS","Bekesbourne"],["AHT","Aldershot"],["DFI","Duffield"],["GIR","Girvan"],["ZBB","Barbican Underground"],["HPE","Hope (Flintshire)"],["CLW","Chorleywood"],["HHL","Heath High Level"],["KKS","Kirk Sandall"],["RDD","Riddlesdown"],["RFY","Rock Ferry"],["ABE","Aber"],["HSK","Hassocks"],["SHT","Shotton"],["LVC","Liverpool Central"],["AIN","Aintree"],["HNG","Hengoed"],["LIS","Liss"],["ARM","Armadale"],["FFA","Ffairfach"],["HCB","Hackbridge"],["LVC","Liverpool Central"],["ELP","Ellesmere Port"],["DYF","Dyffryn Ardudwy"],["TYW","Tywyn"],["CWN","Cowden"],["EGH","Egham"],["RET","Retford"],["HAY","Hayes & Harlington"],["SAT","South Acton"],["PMT","Polmont"],["HPQ","Harwich International"],["WED","Wedgwood"],["BIO","Baillieston"],["WCH","Whitchurch (Hampshire)"],["MNE","Manea"],["SNF","Shenfield"],["ROM","Romsey"],["CHL","Chilworth"],["CDN","Coulsdon Town"],["TLS","Thorpe-le-Soken"],["WRS","Wressle"],["BDY","Bredbury"],["THI","Thirsk"],["WES","Westerton"],["CPU","Capenhurst"],["LRH","Larkhall"],["OLD","Old Street"],["DGT","Deansgate"],["SEM","Seamer"],["SVB","Severn Beach"],["BMC","Bromley Cross"],["SEC","Seaton Carew"],["ZLW","Whitechapel"],["SEE","Southease"],["SOA","Southampton Airpt Parkway"],["WDO","Waddon"],["WTS","Whatstandwell"],["LPY","Liverpool South Parkway"],["HFN","Hertford North"],["KGM","Kingham"],["WFL","Wainfleet"],["SKN","St Keyne Wishing Well Halt"],["DPT","Devonport"],["SOW","Sowerby Bridge"],["WDU","West Dulwich"],["BCB","Burscough Bridge"],["HST","High Street"],["LEM","Leyton Midland Road"],["PYL","Pyle"],["WRU","West Ruislip"],["WYB","Weybridge"],["TAB","Tame Bridge Parkway"],["TRE","Trefforest Estate"],["WYB","Weybridge"],["HND","Hanborough"],["WLW","Welwyn North"],["BMO","Birmingham Moor Street"],["BCJ","Burscough Junction"],["DCW","Dorchester West"],["LVJ","James Street"],["RDF","Radcliffe (Nottinghamshire)"],["CPY","Clapham (North Yorkshire)"],["RMF","Romford"],["SAV","Stratford-upon-Avon"],["LHW","Lochwinnoch"],["NOT","Nottingham"],["CUD","Cuddington"],["LLA","Llanaber"],["SNE","Stone"],["SHL","Shawlands"],["FFD","Freshford"],["SHF","Sheffield"],["YRK","York"],["CSD","Cobham & Stoke d'Abernon"],["ENT","Entwistle"],["PRN","Parton"],["ROL","Rolleston"],["BRH","Borth"],["BCV","Bruce Grove"],["SMR","Smethwick Rolfe Street"],["ACN","Achnasheen"],["KWB","Kew Bridge"],["SAR","St Andrews Road"],["ASF","Ashfield"],["FLM","Flimby"],["LBT","Larbert"],["WOR","Worle"],["CWL","Colwall"],["EXC","Exeter Central"],["NTB","Norton Bridge"],["TWY","Twyford"],["ROR","Rogerstone"],["BDI","Bradford Interchange"],["WNL","Whinhill"],["BLA","Blair Atholl"],["KML","Kemsley"],["SDR","Saunderton"],["GRK","Gourock"],["VXH","Vauxhall"],["FTW","Fort William"],["LIT","Littlehampton"],["SIV","St Ives"],["BLD","Baildon"],["GLM","Gillingham (Kent)"],["SHS","Shotts"],["UCK","Uckfield"],["BTG","Barnt Green"],["BOM","Bromborough"],["ACH","Achnashellach"],["UHA","Uphall"],["VXH","Vauxhall"],["DIN","Dingwall"],["HDW","Hadley Wood"],["SOB","Southbourne"],["LEE","Lee"],["QBR","Queenborough"],["LOC","Lockerbie"],["SMA","Small Heath"],["WDB","Woodbridge"],["HIR","Horton-in-Ribblesdale"],["PON","Ponders End"],["FRI","Frinton-on-Sea"],["SAL","Salisbury"],["SRH","Streatham Hill"],["CRK","Chirk"],["EXR","Essex Road"],["HOK","Hook"],["SML","Sea Mills"],["HLY","Holytown"],["NWD","Norwood Junction"],["ASY","Ashley"],["ESW","Elmswell"],["HOH","Harrow-on-the-Hill"],["AGR","Angel Road"],["NSD","Newstead"],["HUL","Hull"],["HLL","Heath Low Level"],["PBL","Parbold"],["JOH","Johnston"],["SMB","Smithy Bridge"],["NSH","North Sheen"],["UPL","Upholland"],["BGE","Broad Green"],["CBY","Charlbury"],["WME","Woodmansterne"],["LAR","Largs"],["MMO","Melton Mowbray"],["LIN","Linlithgow"],["WDT","West Drayton"],["HFE","Hertford East"],["KET","Kettering"],["PUL","Pulborough"],["QRB","Queenstown Road Battersea"],["WMB","Wembley Central"],["BRG","Borough Green & Wrotham"],["GEA","Gretna Green"],["KPA","Kensington Olympia"],["CIM","Cilmeri"],["SWR","Stewartby"],["CMO","Camelon"],["GLQ","Glasgow Queen Street"],["BSU","Brunstane"],["IFI","Ifield"],["ARN","Arnside"],["FRW","Fairwater"],["LKE","Lake"],["CTL","Cattal"],["DMH","Dilton Marsh"],["WWD","Woolwich Dockyard"],["BTS","Burntisland"],["HSW","Heswall"],["KEL","Kelvedon"],["DBL","Dunblane"],["NLR","North Llanrwst"],["HUB","Hunmanby"],["SAF","Salfords"],["WNE","Wilnecote"],["QPK","Queens Park (Glasgow)"],["WTM","Witham"],["AVP","Aylesbury Vale Parkway"],["PTD","Pontarddulais"],["RDG","Reading"],["EXM","Exmouth"],["SNW","Swanwick"],["FCN","Falconwood"],["GOO","Goole"],["LBO","Loughborough"],["HSB","Helsby"],["SHD","Shildon"],["TAY","Taynuilt"],["SNS","Staines"],["CBW","Canterbury West"],["EGF","East Garforth"],["AUR","Aberdour"],["DKG","Dorking"],["GAR","Garrowhill"],["HUN","Huntingdon"],["LLY","Llwynypia"],["SAY","Swanley"],["TTH","Thornton Heath"],["LSK","Liskeard"],["LSW","Leasowe"],["PMP","Plumpton"],["WKK","Wakefield Kirkgate"],["RFY","Rock Ferry"],["DDK","Dagenham Dock"],["HPN","Hapton"],["LNB","Llanbradach"],["BAD","Banstead"],["BIT","Bicester Village"],["MBR","Middlesbrough"],["AAT","Achanalt"],["HIP","Highams Park"],["SIN","Singer"],["TYG","Tygwyn"],["CUP","Cupar"],["FKC","Folkestone Central"],["SIL","Sileby"],["ESM","Elsenham"],["EPD","Epsom Downs"],["HBP","Hornbeam Park"],["HOZ","Howwood"],["RFY","Rock Ferry"],["MEP","Meopham"],["SWG","Swaythling"],["AVM","Aviemore"],["BHK","Bush Hill Park"],["PEA","Peartree"],["WNN","Wennington"],["AYL","Aylesford"],["PIT","Pitlochry"],["OVE","Overpool"],["ZCO","Croxley Underground"],["GYM","Great Yarmouth"],["CPK","Carpenders Park"],["GLC","Glasgow Central"],["LAS","Llansamlet"],["SPN","Spooner Row"],["FKW","Folkestone West"],["KBC","Kinbrace"],["AND","Anderston"],["ZCW","Canada Water"],["DON","Doncaster"],["EAR","Earley"],["CTN","Charlton"],["ZFD","Farringdon Underground"],["SBF","St Budeaux Ferry Road"],["PCD","Pencoed"],["LBG","London Bridge"],["MZH","Maze Hill"],["WTI","Winnersh Triangle"],["HPD","Harpenden"],["SHT","Shotton"],["LBG","London Bridge"],["NRT","Nethertown"],["LBG","London Bridge"],["HMY","Hairmyres"],["HHB","Heysham Port"],["PSH","Pershore"],["PAN","Pangbourne"],["CLU","Carluke"],["SOC","Southend Central"],["MFF","Minffordd"],["BRF","Brierfield"],["COT","Cottingley"],["PTB","Pentre-bach"],["SKG","Skegness"],["INS","Insch"],["EXN","Exton"],["LOO","Looe"],["WWA","Woolwich Arsenal"],["CLK","Clock House"],["BPT","Bishopton"],["BAS","Bere Alston"],["LCS","Locheilside"],["MEV","Merthyr Vale"],["BDH","Bedhampton"],["SDE","Shadwell"],["STP","London St Pancras (Intl)"],["WEH","West Ham"],["HUP","Humphrey Park"],["BTO","Betchworth"],["EVE","Evesham"],["SEF","Seaford"],["ALR","Alresford"],["HNL","Henley-in-Arden"],["SRL","Shirley"],["BFF","Blaenau Ffestiniog"],["FNN","Farnborough North"],["NLW","Newton-le-Willows"],["YAL","Yalding"],["BMH","Bournemouth"],["LHM","Lealholm"],["TVP","Tiverton Parkway"],["BIW","Biggleswade"],["WLS","Woolston"],["BIP","Bishopstone"],["EBV","Ebbw Vale Parkway"],["NNG","Newark North Gate"],["PHG","Penhelig"],["MNG","Manningtree"],["TAT","Tattenham Corner"],["MEN","Menheniot"],["FSB","Fishbourne (West Sussex)"],["CNN","Canonbury"],["HRO","Harold Wood"],["BKJ","Beckenham Junction"],["NFN","Nafferton"],["BNO","Benton (T & W Metro)"],["GRV","Gravesend"],["NBY","Newbury"],["SDC","Shoreditch High Street"],["AXP","Alexandra Parade"],["FXN","Foxton"],["MTS","Montrose"],["BTN","Brighton"],["RDG","Reading"],["CIR","Caledonian Rd & Barnsbury"],["TAL","Talsarnau"],["CWN","Cowden"],["NLS","Nailsea & Backwell"],["WNH","Warnham"],["HWB","Hawarden Bridge"],["LLN","Llandaf"],["NRB","Norbury"],["CSY","Coseley"],["LLL","Llandeilo"],["RIC","Rickmansworth"],["WMB","Wembley Central"],["ADV","Andover"],["PFL","Purfleet"],["SWE","Swineshead"],["SHB","Shirebrook"],["DFD","Dartford"],["HAN","Hanwell"],["NUT","Nutbourne"],["MLW","Marlow"],["WBL","Warblington"],["RHI","Rhiwbina"],["DEP","Deptford"],["CUB","Cumbernauld"],["HCN","Headcorn"],["LAW","Landywood"],["THC","Thurnscoe"],["CNO","Chetnole"],["COI","Crosshill"],["SHW","Shawford"],["BAJ","Baglan"],["SUR","Surbiton"],["AUK","Auchinleck"],["KTL","Kirton Lindsey"],["LID","Lidlington"],["CDR","Cardross"],["SYL","Syon Lane"],["HYT","Hyde North"],["LAI","Laindon"],["HOX","Hoxton"],["LEW","Lewisham"],["BSK","Basingstoke"],["CRW","Crawley"],["GBS","Goring-by-Sea"],["WHS","Whyteleafe South"],["MHR","Market Harborough"],["ERD","Erdington"],["GST","Gathurst"],["LGG","Langley Green"],["OVR","Overton"],["NEH","New Eltham"],["SDN","St Denys"],["MTG","Mottingham"],["WTR","Wateringbury"],["CDB","Cardiff Bay"],["FNT","Feniton"],["BLP","Belper"],["HSG","Hathersage"],["HVH","Hoek Van Holland"],["DVN","Davenport"],["LWH","Lawrence Hill"],["WCK","Wick"],["BMB","Bamber Bridge"],["DRI","Drigg"],["TWN","Town Green"],["CHE","Cheam"],["SAX","Saxmundham"],["MAG","Maghull"],["SBE","Starbeck"],["MCN","Machynlleth"],["CBC","Coatbridge Central"],["BYL","Barry Links"],["BEM","Bempton"],["SFR","Shalford"],["BIC","Billericay"],["BTR","Braintree"],["ISL","Isleworth"],["HLN","Harlington"],["SSM","Stocksmoor"],["GMN","Great Missenden"],["KNE","Kennett"],["POO","Poole"],["RNR","Roughton Road"],["ILK","Ilkley"],["PMH","Portsmouth Harbour"],["RDA","Redland"],["FRS","Forsinard"],["HRN","Hornsey"],["SLY","Selly Oak"],["OXT","Oxted"],["CBS","Coatbridge Sunnyside"],["WMD","Wymondham"],["TEY","Teynham"],["BAV","Barrow Haven"],["BYE","Bynea"],["WKB","West Kilbride"],["BCU","Brockenhurst"],["AMT","Aldermaston"],["LGB","Langbank"],["MRF","Moorfields"],["PMH","Portsmouth Harbour"],["ROO","Roose"],["KIL","Kildonan"],["BHC","Balloch"],["WIV","Wivenhoe"],["BTT","Battersby"],["CCT","Cathcart"],["HRL","Harlech"],["RGW","Ramsgreave & Wilpshire"],["WVF","Wivelsfield"],["SAJ","St Johns"],["WDH","Woodhouse"],["FOG","Forest Gate"],["HTF","Hartford"],["WNW","West Norwood"],["CSG","Cressington"],["SHU","Stonehouse"],["WDN","Walsden"],["SAC","St Albans"],["WFF","Whifflet"],["HOW","Howden"],["MLY","Morley"],["ASG","Alsager"],["LOB","Longbridge"],["WOM","Wombwell"],["MSH","Mossley Hill"],["ECP","Energlyn & Churchill Park"],["EPH","Elephant & Castle"],["RDW","Reading West"],["EKB","Eskbank"],["BRU","Bruton"],["CME","Combe"],["MIH","Mills Hill"],["PPD","Pontypridd"],["SAD","Sandwell & Dudley"],["KGT","Kilgetty"],["BRI","Bristol Temple Meads"],["HOC","Hockley"],["LBR","Llanbedr"],["NSG","New Southgate"],["DGC","Denham Golf Club"],["PNM","Penmere"],["MHS","Meadowhall"],["PSL","Port Sunlight"],["DWW","Dawlish Warren"],["RTN","Renton"],["BUJ","Burton Joyce"],["HUR","Hurst Green"],["BDK","Baldock"],["LNY","Langley"],["BSH","Bushey"],["DOW","Downham Market"],["KIN","Kingussie"],["BLO","Blaydon"],["DVY","Dovey Junction"],["BWS","Barrow Upon Soar"],["SGL","South Gyle"],["WHT","Whitchurch (Glamorgan)"],["ACB","Acton Bridge"],["ZHA","Hammersmith Underground"],["WRB","Wrabness"],["NQU","North Queensferry"],["TYC","Ty Croes"],["ANC","Ancaster"],["NBN","New Brighton"],["HEC","Heckington"],["QUI","Quintrell Downs"],["WCX","Wembley Stadium"],["LWT","Lowestoft"],["RAN","Rannoch"],["THU","Thurgarton"],["CSK","Calstock"],["MER","Merthyr Tydfil"],["NEI","Neilston"],["CBD","Conon Bridge"],["DNO","Dunrobin Castle"],["HUD","Huddersfield"],["SKW","Stoke Newington"],["ARG","Arisaig"],["CNW","Conwy"],["MNN","Menston"],["PLE","Pollokshields East"],["LLO","Llandrindod"],["LAU","Laurencekirk"],["MSL","Mossley"],["SIE","Sherburn-in-Elmet"],["CBH","Cambridge Heath"],["KBN","Kilburn High Road"],["SID","Sidcup"],["FEL","Feltham"],["CCC","Criccieth"],["STO","South Tottenham"],["WOO","Wool"],["GRK","Gourock"],["LLI","Llandybie"],["AXM","Axminster"],["WGV","Wargrave"],["HSD","Hamstead"],["PLW","Pollokshields West"],["BRK","Berwick (Sussex)"],["CTW","Church & Oswaldtwistle"],["XIB","Bourg St Maurice"],["SKI","Skipton"],["BDM","Bedford"],["PLM","Plumley"],["YVJ","Yeovil Junction"],["DEN","Dean"],["DAM","Dalmeny"],["WGN","Wigan North Western"],["WRE","Wrenbury"],["RYN","Roydon"],["YVJ","Yeovil Junction"],["ABH","Abererch"],["UNI","University"],["AMY","Amberley"],["CSB","Carshalton Beeches"],["EFF","Effingham Junction"],["SVK","Seven Kings"],["DEA","Deal"],["WNP","Wanstead Park"],["ALK","Aslockton"],["ULV","Ulverston"],["LIV","Liverpool Lime Street"],["ABC","Altnabreac"],["LAP","Lapford"],["NIT","Nitshill"],["RAM","Ramsgate"],["KNO","Knottingley"],["LIV","Liverpool Lime Street"],["CSH","Carshalton"],["BFE","Bere Ferrers"],["AVY","Aberdovey"],["CBK","Cranbrook (Devon)"],["WLN","Wellington (Shropshire)"],["CGN","Cogan"],["ASC","Ashchurch for Tewkesbury"],["AVF","Avoncliff"],["CBP","Castle Bar Park"],["GSL","Gunnislake"],["HMC","Hampton Court"],["PLY","Plymouth"],["CLA","Clandon"],["CNE","Colne"],["NXG","New Cross Gate"],["CIL","Chilham"],["FLI","Flixton"],["NWX","New Cross"],["BMY","Bramley (Hampshire)"],["CWS","Caersws"],["BHO","Blackhorse Road"],["CFT","Crofton Park"],["GLS","Glaisdale"],["WMI","Wildmill"],["AST","Aston"],["CDT","Caldicot"],["ESD","Elmstead Woods"],["KLN","Kings Lynn"],["SLQ","St Leonards Warrior Square"],["PNC","Penychain"],["BUB","Burnley Barracks"],["BNC","Burnley Central"],["AXM","Axminster"],["AXM","Axminster"],["BGS","Bogston"],["BAC","Bache"],["HWW","How Wood"],["BNG","Bangor (Gwynedd)"],["BRM","Barmouth"],["DNL","Dunlop"],["EML","East Malling"],["CMO","Camelon"],["EDY","East Didsbury"],["SPR","Springburn"],["ELE","Elmers End"],["WKI","West Kirby"],["LBZ","Leighton Buzzard"],["WES","Westerton"],["LYD","Lydney"],["PYT","Poynton"],["RCC","Redcar Central"],["CWE","Crowle"],["KNA","Knaresborough"],["RCE","Redcar East"],["BUH","Brough"],["DAN","Darnall"],["WNF","Winchfield"],["WKF","Wakefield Westgate"],["PWY","Patchway"],["DZY","Danzey"],["FLD","Fauldhouse"],["WPL","Worplesdon"],["BSL","Beasdale"],["KKD","Kirkdale"],["EAG","Eaglescliffe"],["CRM","Cramlington"],["SIH","St Helier"],["HBY","Hartlebury"],["COA","Coatdyke"],["CHW","Chalkwell"],["RYS","Royston"],["DVH","Dove Holes"],["HEV","Hever"],["SPA","Spalding"],["BOG","Bognor Regis"],["EUS","London Euston"],["FRL","Fairlie"],["EDB","Edinburgh"],["MRR","Morar"],["WSH","Wishaw"],["CPW","Chepstow"],["SUU","Sunbury"],["HAP","Hatfield Peverel"],["OUN","Oulton Broad North"],["MIC","Micheldever"],["WOF","Worcester Foregate Street"],["WRX","Wrexham General"],["OUS","Oulton Broad South"],["CAK","Cark"],["FRY","Ferriby"],["FOH","Forest Hill"],["STY","Stratford Parkway"],["OLF","Oldfield Park"],["WAL","Walton-on-Thames"],["PTT","Patterton"],["GLQ","Glasgow Queen Street"],["EBA","Euxton Balshaw Lane"],["HLM","Holmwood"],["FAV","Faversham"],["GOL","Golspie"],["KKH","Kirkhill"],["WSR","Woodsmoor"],["CNL","Canley"],["SPT","Stockport"],["WBD","Whitley Bridge"],["HIA","Hampton-in-Arden"],["BLV","Belle Vue"],["DMK","Denmark Hill"],["DWL","Dawlish"],["FLF","Flowery Field"],["DGY","Deganwy"],["SYS","Syston"],["KKN","Kirknewton"],["WBO","Wimbledon Chase"],["ALB","Albrighton"],["BEP","Bermuda Park (Nuneaton)"],["BFN","Byfleet & New Haw"],["SKM","Stoke Mandeville"],["NEM","New Malden"],["SER","St Erth"],["GNL","Green Lane"],["HEI","Heighington"],["OMS","Ormskirk"],["HBN","Hollingbourne"],["COL","Colchester"],["MES","Melton"],["AHV","Ash Vale"],["KRK","Kirkconnel"],["BYN","Bryn"],["CWC","Chappel & Wakes Colne"],["BIK","Birkbeck"],["SWM","Swanscombe"],["AUD","Audley End"],["BRE","Brentwood"],["YOK","Yoker"],["AHS","Ashurst"],["GSW","Garswood"],["SHU","Stonehouse"],["SNR","Sanderstead"],["BRC","Breich"],["HDM","Haddenham & Thame Parkway"],["BAH","Bank Hall"],["PRR","Princes Risborough"],["SYA","Styal"],["GPO","Gospel Oak"],["SLV","Silver Street"],["FZP","Furze Platt"],["MFA","Morfa Mawddach"],["DLG","Dolgarrog"],["CWB","Colwyn Bay"],["HVN","Havenhouse"],["LUT","Luton"],["GIG","Giggleswick"],["KGP","Kings Park"],["RYH","Rye House"],["GOR","Goring & Streatley"],["HFD","Hereford"],["BIG","Billingshurst"],["STJ","Severn Tunnel Junction"],["SAU","St Austell"],["WHS","Whyteleafe South"],["WST","Wood Street"],["LED","Ledbury"],["MRF","Moorfields"],["OLF","Oldfield Park"],["ATN","Atherton"],["BRS","Berrylands"],["WSB","Westbury"],["CYS","Cathays"],["CWD","Creswell"],["LOS","Lostwithiel"],["BHS","Brockholes"],["THT","Thorntonhall"],["DRG","Drayton Green"],["ANS","Ainsdale"],["DYP","Drayton Park"],["KLY","Kenley"],["LEH","Lea Hall"],["LPR","Long Preston"],["SVS","Seven Sisters"],["WWW","Wootton Wawen"],["SHI","Shiplake"],["WML","Wilmslow"],["EDL","Edale"],["FLX","Felixstowe"],["NBR","Narborough"],["PFY","Poulton-le-Fylde"],["PRP","Preston Park"],["COE","Coombe Junction Halt"],["SST","Stansted Mountfitchet"],["WLD","West St Leonards"],["PMW","Penmaenmawr"],["YEO","Yeoford"],["YVP","Yeovil Pen Mill"],["GRF","Garforth"],["MON","Monifieth"],["NOR","Normanton"],["COM","Commondale"],["ZFD","Farringdon Underground"],["ORR","Orrell"],["LOW","Lowdham"],["YVP","Yeovil Pen Mill"],["HWF","Heathrow Airport T4 (Bus)"],["LPG","Llanfairpwll"],["LWR","Llanrwst"],["CRN","Crowthorne"],["JCH","James Cook"],["LLS","Llanishen"],["NCE","New Clee"],["RAY","Raynes Park"],["SAW","Sawbridgeworth"],["WLO","Waterloo (Merseyside)"],["ROE","Rotherhithe"],["HNB","Herne Bay"],["SHY","Shipley"],["MTA","Mountain Ash"],["SJP","St James' Park"],["LYC","Lympstone Commando"],["NWM","New Milton"],["WIJ","Willesden Junction"],["FLT","Flitwick"],["BRA","Brora"],["HYN","Hyndland"],["RUF","Rufford"],["PTA","Port Talbot Parkway"],["SMH","Stamford Hill"],["GVE","Garve"],["HTE","Hatch End"],["WSE","Winchelsea"],["DLT","Dalton"],["SPY","Shepley"],["CFL","Crossflatts"],["LIH","Leigh (Kent)"],["LYM","Lympstone Village"],["SOL","Solihull"],["CTH","Chadwell Heath"],["FOK","Four Oaks"],["TRI","Tring"],["BLB","Battlesbridge"],["FAL","Falmouth Docks"],["HPL","Hartlepool"],["OXN","Oxenholme Lake District"],["OTF","Otford"],["OUT","Outwood"],["WLE","Whittlesea"],["SBV","St Budeaux Victoria Road"],["HHY","Highbury & Islington"],["CKS","Clarkston"],["EDN","Eden Park"],["SDP","Sandplace"],["AFK","Ashford International"],["DLM","Delamere"],["HHY","Highbury & Islington"],["INK","Inverkeithing"],["SAA","St Albans Abbey"],["HLB","Hildenborough"],["KTH","Kent House"],["BUL","Butlers Lane"],["AML","Acton Main Line"],["FMT","Falmouth Town"],["BAM","Bamford"],["FFD","Freshford"],["WAT","London Waterloo"],["SHN","Shanklin"],["CKT","Crookston"],["BKL","Bickley"],["DND","Dinsdale"],["NCL","Newcastle"],["WLV","Wallasey Village"],["THS","Thurso"],["ZBS","Baker Street Underground"],["WAE","London Waterloo East"],["TIS","Tisbury"],["BXS","Brussels Midi"],["LEA","Leagrave"],["BAB","Balcombe"],["NCZ","Newcastle Central Metro"],["ASH","Ash"],["RDB","Redbridge"],["BBK","Bilbrook"],["BUW","Burley-in-Wharfedale"],["GBD","Gilberdyke"],["NSB","Normans Bay"],["RGT","Rugeley Town"],["SEH","Shoreham (Kent)"],["BSH","Bushey"],["ELG","Elgin"],["FTN","Fratton"],["EBN","Eastbourne"],["FTM","Fort Matilda"],["MBK","Millbrook (Hampshire)"],["POT","Pontefract Tanshelf"],["WGW","Wigan Wallgate"],["SUO","Sutton (Surrey)"],["AYS","Aylesbury"],["LVM","Levenshulme"],["WAD","Wadhurst"],["PGN","Paignton"],["BOC","Bootle"],["BUG","Burgess Hill"],["AHD","Ashtead"],["OKL","Oakleigh Park"],["LTT","Little Sutton"],["BAU","Barton-on-Humber"],["GWE","Gwersyllt"],["PMH","Portsmouth Harbour"],["SBU","Southbury"],["CDF","Cardiff Central"],["DTW","Droitwich Spa"],["FST","London Fenchurch Street"],["CEY","Cononley"],["HML","Hemel Hempstead"],["OKN","Oakengates"],["CGD","Craigendoran"],["PEM","Pemberton"],["NHL","New Holland"],["SNP","Stanhope"],["EST","Easterhouse"],["GRA","Grantham"],["TAP","Taplow"],["SUC","Sutton Common"],["GNH","Greenhithe for Bluewater"],["NCT","Newark Castle"],["BTD","Bolton-on-Dearne"],["HNC","Hamilton Central"],["ECL","Eccleston Park"],["OLY","Ockley"],["PLD","Portslade"],["BBG","Bishopbriggs"],["COP","Copplestone"],["SDB","Sandbach"],["COV","Coventry"],["EXD","Exeter St Davids"],["LTH","Llanhilleth"],["SQH","Sanquhar"],["ERA","Eastham Rake"],["BSK","Basingstoke"],["MIR","Mirfield"],["PFM","Pontefract Monkhill"],["GUN","Gunnersbury"],["WLG","Wallasey Grove Road"],["PBO","Peterborough"],["PLU","Plumstead"],["CDQ","Cardiff Queen Street"],["BXB","Broxbourne"],["HNW","Hamilton West"],["EXT","Exeter St Thomas"],["WLT","Wallington"],["HNX","Hunts Cross"],["HMP","Hampton"],["ALF","Alfreton"],["BAA","Barnham"],["SEA","Seaham"],["WBY","West Byfleet"],["BGL","Bugle"],["WRK","Worksop"],["WWI","West Wickham"],["FGT","Faygate"],["STW","Strawberry Hill"],["NFL","Northfleet"],["BUE","Bures"],["NMP","Northampton"],["CBL","Cambuslang"],["GFN","Giffnock"],["INV","Inverness"],["WGR","Woodgrange Park"],["STS","Saltash"],["STP","London St Pancras (Intl)"],["SUN","Sunderland"],["SDF","Saundersfoot"],["FNV","Furness Vale"],["YAE","Yate"],["MCV","Manchester Victoria"],["RED","Redruth"],["SNG","Sunningdale"],["PDG","Padgate"],["HTR","Heathrow Central Bus Stn"],["BHI","Birmingham International"],["CWH","Crews Hill"],["NTA","Newton Abbot"],["SFA","Stratford International"],["WOH","Woldingham"],["SXY","Saxilby"],["GKC","Greenock Central"],["PTC","Portchester"],["GLD","Guildford"],["BNF","Briton Ferry"],["DAG","Dalgety Bay"],["SOO","Strood"],["DLS","Dalston"],["LFD","Lingfield"],["BBN","Blackburn"],["CGM","Cottingham"],["RVB","Ravensbourne"],["AIR","Airbles"],["BRR","Barrhead"],["CLH","Clitheroe"],["MRM","Manors (T & W Metro)"],["GMT","Grosmont"],["DHM","Durham"],["PAR","Par"],["IVY","Ivybridge"],["LVN","Littlehaven"],["GKW","Greenock West"],["HNK","Hinckley"],["KMK","Kilmarnock"],["RMD","Richmond"],["SIC","Silecroft"],["HAD","Haddiscoe"],["DNM","Denham"],["OXS","Oxshott"],["SLB","Saltburn"],["DNT","Dent"],["WHY","Whyteleafe"],["CRG","Cross Gates"],["LCG","Lochgelly"],["BHG","Bathgate"],["TNF","Tonfanau"],["MAL","Malden Manor"],["NUT","Nutbourne"],["NWX","New Cross"],["TON","Tonbridge"],["TRO","Trowbridge"],["WKG","Workington"],["BSI","Balmossie"],["SMK","Stowmarket"],["LGD","Lingwood"],["FBY","Formby"],["NNP","Ninian Park"],["ADM","Adisham"],["GRL","Greenfaulds"],["RLN","Rowlands Castle"],["AMF","Ammanford"],["KMP","Kempton Park"],["SNL","Stoneleigh"],["BWB","Bow Brickhill"],["ABY","Ashburys"],["BRY","Barry"],["MYL","Maryland"],["BBL","Bat & Ball"],["PUT","Putney"],["CAA","Coventry Arena"],["HMD","Hampden Park"],["GYP","Gypsy Lane"],["CMY","Crossmyloof"],["DUL","Dullingham"],["WNM","Weston Milton"],["AFV","Ansdell & Fairhaven"],["SYH","Sydenham Hill"],["GTW","Gatwick Airport"],["HYK","Hoylake"],["MIS","Mistley"],["PPK","Possilpark & Parkhouse"],["WYM","Wylam"],["MLM","Millom"],["WAV","Wavertree Tech Park"],["LAM","Lamphey"],["CCH","Chichester"],["MLT","Malton"],["SGM","St Germans"],["WND","Wendover"],["HAF","Heathrow Airport T4"],["THE","Theale"],["ADL","Adlington (Lancashire)"],["HWV","Heathrow Airport T5"],["PLK","Plockton"],["HWC","Harwich Town"],["CWU","Crowhurst"],["CHK","Chiswick"],["HEN","Hendon"],["DRU","Drumgelloch"],["HAB","Habrough"],["LVT","Lisvane & Thornhill"],["TOK","Three Oaks"],["SVR","Silverdale"],["HEL","Hensall"],["SON","Steeton & Silsden"],["WIC","Wickford"],["NAN","Nantwich"],["LUD","Ludlow"],["AFS","Ashford (Surrey)"],["SGH","South Gosforth (T & W Metro)"],["WYL","Wylde Green"],["RDH","Redhill"],["RNM","Rainham (Essex)"],["MIF","Millfield (T & W Metro)"],["WIN","Winchester"],["LLR","Llanharan"],["NET","Netherfield"],["BSN","Boston"],["GRN","Grindleford"],["APB","Appley Bridge"],["PYN","Penryn"],["SRR","Sarn"],["BND","Brandon"],["DLW","Dalwhinnie"],["BIB","Bishops Lydeard"],["CUX","Cuxton"],["PRS","Prees"],["CLC","Castle Cary"],["SCF","Stechford"],["CLD","Chelsfield"],["RIL","Rice Lane"],["TBY","Thornaby"],["LPY","Liverpool South Parkway"],["CRV","Craven Arms"],["WMA","West Malling"],["DTN","Denton"],["DOC","Dockyard"],["DCH","Dorchester South"],["NXG","New Cross Gate"],["CDS","Coulsdon South"],["LLF","Llanfairfechan"],["SLL","Stallingborough"],["CDO","Cardonald"],["HAT","Hatfield"],["RDN","Reddish North"],["WOS","Worcester Shrub Hill"],["HAV","Havant"],["SNA","Sandal & Agbrigg"],["MIM","Moreton-in-Marsh"],["ART","Arrochar & Tarbet"],["OBN","Oban"],["RDS","Reddish South"],["TOO","Tooting"],["WMC","Wilmcote"],["SIA","Southend Airport"],["EBT","Edenbridge Town"],["PLG","Polegate"],["BSW","Birmingham Snow Hill"],["GRB","Great Bentley"],["HHB","Heysham Port"],["SNK","Sankey for Penketh"],["BXD","Buxted"],["ASK","Askam"],["CFB","Catford Bridge"],["GMG","Garth (Mid Glamorgan)"],["NCM","North Camp"],["APF","Appleford"],["EWR","East Worthing"],["WON","Walton-on-the-Naze"],["ROW","Rowley Regis"],["WSU","West Sutton"],["BGG","Brigg"],["EBD","Ebbsfleet International"],["ZEL","Elephant & Castle Underground"],["PHR","Penshurst"],["MRB","Manorbier"],["SPH","Shepherds Well"],["STD","Stroud"],["TGS","Ty Glas"],["BCF","Beaconsfield"],["HDF","Hadfield"],["CDD","Cardenden"],["LTL","Littleborough"],["CHR","Christchurch"],["MFT","Mansfield"],["PWE","Pollokshaws East"],["LPW","Lapworth"],["BNE","Bourne End"],["CRA","Cradley Heath"],["CHO","Cholsey"],["WRM","Wareham"],["CSR","Chassen Road"],["SEN","Shenstone"],["BOE","Botley"],["ANG","Angmering"],["DVC","Dovercourt"],["PMG","Porthmadog Harbour (Bus)"],["ORN","Old Roan"],["NGT","Newington"],["KNI","Knighton"],["GVH","Gravelly Hill"],["OXF","Oxford"],["CKY","Crosskeys"],["BLL","Bardon Mill"],["FGH","Fishguard Harbour"],["LYE","Lye"],["CLR","Clarbeston Road"],["HBD","Hebden Bridge"],["IGD","Invergordon"],["YNW","Ynyswen"],["PWW","Pollokshaws West"],["RMB","Roman Bridge"],["GRT","Grateley"],["AGT","Aldrington"],["CED","Cheddington"],["RVN","Ravensthorpe"],["KEN","Kendal"],["MAR","Margate"],["PSE","Pitsea"],["CTK","City Thameslink"],["BAT","Battle"],["HEV","Hever"],["WAS","Watton-at-Stone"],["CLY","Chinley"],["HES","Hessle"],["UPH","Upper Halliford"],["WNS","Winnersh"],["AON","Alton"],["LGK","Longbeck"],["SHC","Streethouse"],["EMS","Emsworth"],["SYH","Sydenham Hill"],["BAK","Battersea Park"],["GLQ","Glasgow Queen Street"],["BKJ","Beckenham Junction"],["UMB","Umberleigh"],["CMN","Carmarthen"],["SHH","Shirehampton"],["MAX","Maxwell Park"],["HGY","Harringay"],["AVF","Avoncliff"],["BYK","Bentley (South Yorkshire)"],["GER","Gerrards Cross"],["HLR","Hall Road"],["HNF","Hednesford"],["FRD","Frodsham"],["KNR","Kensal Rise"],["BCC","Beccles"],["HGN","Hough Green"],["BKW","Berkswell"],["EBR","Edenbridge"],["BKT","Blake Street"],["CEH","Coleshill Parkway"],["LEN","Lenham"],["BEC","Beckenham Hill"],["FNY","Finchley Road & Frognal"],["LTM","Lytham"],["BKJ","Beckenham Junction"],["KDG","Kidsgrove"],["IGD","Invergordon"],["CPH","Caerphilly"],["APS","Apsley"],["HTY","Hattersley"],["SAL","Salisbury"],["BNW","Bootle New Strand"],["SOB","Southbourne"],["BTH","Bath Spa"],["DFE","Dunfermline Town"],["SLS","Shettleston"],["ELY","Ely"],["BMF","Broomfleet"],["NVH","Newhaven Harbour"],["LCL","Lochailort"],["PMD","Pembroke Dock"],["WAR","Ware"],["BFD","Brentford"],["GLZ","Glazebrook"],["HSY","Horsley"],["SPI","Spital"],["SHZ","South Hylton (T & W Metro)"],["MOO","Muir of Ord"],["NHD","Nunhead"],["BKR","Blackridge"],["IRL","Irlam"],["NVN","Newhaven Town"],["WRN","West Runton"],["HDB","Haydon Bridge"],["EAD","Earlsfield"],["RDM","Riding Mill"],["WMR","Widney Manor"],["BPK","Brookmans Park"],["WLF","Whittlesford Parkway"],["GDN","Godstone"],["TFC","Telford Central"],["SHE","Sherborne"],["GNB","Gainsborough Central"],["BOT","Bootle Oriel Road"],["EGR","East Grinstead"],["LNK","Lanark"],["NEG","Newtongrange"],["SAL","Salisbury"],["CFR","Chandlers Ford"],["LGM","Langley Mill"],["GSD","Garsdale"],["LAG","Langwith-Whaley Thorns"],["BNL","Barnhill"],["IVR","Iver"],["CNY","Cantley"],["HGS","Hastings"],["BEY","Ben Rhydding"],["BMD","Brimsdown"],["ARB","Arbroath"],["BLN","Blundellsands & Crosby"],["MSS","Moses Gate"],["DST","Duke Street"],["HYW","Hinchley Wood"],["AYR","Ayr"],["SRO","Shireoaks"],["CAR","Carlisle"],["DSY","Daisy Hill"],["RGL","Rugeley Trent Valley"],["GFF","Gilfach Fargoed"],["WAF","Wallyford"],["INR","Inverurie"],["SBK","South Bank"],["ELO","Elton & Orston"],["SPB","Shepherds Bush"],["STE","Streatham"],["CYB","Cefn-y-Bedd"],["HDY","Headingley"],["HCT","Huncoat"],["DYC","Dyce"],["HYD","Heyford"],["PRH","Penrhyndeudraeth"],["SET","Settle"],["WFH","Watford High Street"],["DLR","Dalreoch"],["BKD","Blakedown"],["PTM","Porthmadog"],["ORP","Orpington"],["GBL","Gainsborough Lea Road"],["SCU","Scunthorpe"],["PTH","Perth"],["TAM","Tamworth"],["TRB","Treherbert"],["BXY","Bexley"],["TRY","Treorchy"],["HRS","Horsforth"],["SHV","Southsea Hoverport (Bus)"],["SUM","Summerston"],["WFJ","Watford Junction"],["FYS","Ferryside"],["NUM","Northumberland Park"],["SVL","Staveley"],["CYK","Clydebank"],["HDN","Harlesden"],["PLS","Pleasington"],["TLC","Tal-y-Cafn"],["WAM","Walmer"],["BMG","Barming"],["IFD","Ilford"],["GTA","Great Ayton"],["NBC","New Beckenham"],["LUD","Ludlow"],["FNR","Farningham Road"],["CFN","Clifton Down"],["HAC","Hackney Downs"],["PGM","Pengam"],["RLG","Rayleigh"],["BKG","Barking"],["BLM","Belmont"],["NTC","Newton St Cyres"],["RYE","Rye"],["DBG","Mottisfont & Dunbridge"],["NWI","Northwich"],["PSC","Prescot"],["DKD","Dunkeld & Birnam"],["AGL","Abergele & Pensarn"],["CRF","Carfin"],["SOM","South Milford"],["CRY","Crayford"],["LIU","Lille Europe"],["GLF","Glenfinnan"],["SWI","Swindon"],["SCR","St Columb Road"],["TEO","Theobalds Grove"],["BHM","Birmingham New Street"],["BML","Bramhall"],["WIJ","Willesden Junction"],["COS","Cosford"],["ACG","Acocks Green"],["DVP","Dover Priory"],["MOG","Moorgate"],["ROS","Rosyth"],["WAO","Walton (Merseyside)"],["GNH","Greenhithe for Bluewater"],["RWC","Rawcliffe"],["LES","Leigh-on-Sea"],["HLI","Healing"],["WEY","Weymouth"],["AFK","Ashford International"],["HON","Honiton"],["RCA","Risca & Pontymister"],["BIY","Bingley"],["FOR","Forres"],["KLM","Kilmaurs"],["BOR","Bodorgan"],["BSS","Barassie"],["PUR","Purley"],["MAC","Macclesfield"],["RBR","Robertsbridge"],["HHE","Haywards Heath"],["ALN","Althorne"],["GBK","Greenbank"],["BMV","Bromsgrove"],["GTO","Gorton"],["PMB","Pembroke"],["SKE","Skewen"],["CAU","Causeland"],["PEN","Penarth"],["UPT","Upton"],["BMN","Bromley North"],["ZTH","Tower Hill Underground"],["KYL","Kyle of Lochalsh"],["TTN","Totton"],["HWF","Heathrow Airport T4 (Bus)"],["BMS","Bromley South"],["ASS","Alness"],["SSS","Sheerness-on-Sea"],["CAG","Carrbridge"],["GTH","Garth (Powys)"],["LOF","London Fields"],["BIS","Bishops Stortford"],["BRW","Brunswick"],["CHH","Christs Hospital"],["HHD","Holyhead"],["MFL","Mount Florida"],["DAK","Dalmarnock"],["WSW","Wandsworth Common"],["MDN","Maiden Newton"],["DFL","Dunfermline Queen Margaret"],["IRV","Irvine"],["WHN","Whiston"],["SBS","St Bees"],["PKG","Penkridge"],["SOU","Southampton Central"],["COY","Coryton"],["GGJ","Georgemas Junction"],["SLR","Sleaford"],["DKT","Dorking West"],["SQU","Squires Gate"],["CMD","Camden Road"],["BSO","Basildon"],["CBR","Cooksbridge"],["BYM","Burnley Manchester Road"],["MLF","Milford (Surrey)"],["RYR","Ryde St Johns Road"],["TEY","Teynham"],["TOT","Totnes"],["FRF","Fairfield"],["PUO","Purley Oaks"],["GNF","Greenfield"],["GRY","Grays"],["BGH","Brighouse"],["FKG","Falkirk Grahamston"],["HKH","Hawkhead"],["PYP","Pont-y-Pant"],["FKK","Falkirk High"],["SOV","Southend Victoria"],["MEY","Merryton"]]);var Ge={findStation:function(e){const t=e.toUpperCase(),n=ke.get(t);return console.log(n),n},searchStation:function(e){const t=[],n=e.length<=3,r=e.length>=3,o=new RegExp(`(${e})`,"gi");return ke.forEach((e,a)=>{let i;n&&o.test(a)&&(i=[a,e]),void 0===i&&r&&o.test(e)&&(i=[a,e]),"object"==typeof i&&t.push(i)}),t.slice(0,5)}};let Fe={};Fe=function(){try{return!!localStorage}catch(e){return!1}}()?{save:function(e,t){localStorage[e]=t},load:function(e){return localStorage[e]},exists:function(e){return!(void 0===localStorage[e])}}:{save:function(e,t){document.cookie=`${e}=${encodeURIComponent(t)}`},load:function(e){var t=`; ${document.cookie};`,n=t.indexOf(`; ${e}=`);if(n<0)return"";n=n+e.length+3;var r=t.indexOf(";",n+1);return decodeURIComponent(t.substring(n,r))}};var Ie={partOfDay:function(e,t){console.log(new Date),null==e&&(e=(new Date).getHours().toString()),void 0===t&&(t=!1);const n=e.substring(0,2);let r="";return console.log("Hours",n),r=n>=0&&n<4?"Late Night":n>=4&&n<7?"Early Morning":n>=7&&n<12?"Morning":n>=12&&n<17?"Afternoon":n<21?"Evening":"Night",t&&(r="night"===r?"tonight":"this "+r),console.log("partOfDay",r),r},toHour:function(e=0){return 36e5-(new Date).getTime()%36e5+e},hourFloor:function(){const e=new Date;return parseInt(36e5*~~(e.getTime()/36e5),10).toString(32)},distance:function(e,t,n,r){const o=.017453292519943295,a=Math.cos,i=.5-a((n-e)*o)/2+a(e*o)*a(n*o)*(1-a((r-t)*o))/2;return 12742*Math.asin(Math.sqrt(i))},maybePluralize:(e,t,n="s")=>`${e} ${t}${1!==e?n:""}`,minuteFloor:function(){const e=new Date;return parseInt(6e4*~~(e.getTime()/6e4),10).toString(32)},debounce:function(e,t){let n;return function(...r){clearTimeout(n),n=setTimeout(()=>e.apply(this,r),t)}},throttle:function(e,t){var n=!1;return function(){n||(e.apply(null,arguments),n=!0,setTimeout((function(){n=!1}),t))}},once:function(e){var t,n=!1;return function(){return n||(t=e.apply(this,arguments),n=!0),t}},isEmpty:function(e){for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},LocalStorage:Fe},Oe=function e(t){function n(e,t,r){var o,a={};if(Array.isArray(e))return e.concat(t);for(o in e)a[r?o.toLowerCase():o]=e[o];for(o in t){var i=r?o.toLowerCase():o,l=t[o];a[i]=i in a&&"object"==typeof l?n(a[i],l,"headers"===i):l}return a}function r(e,r,o,a){"string"!=typeof e&&(e=(r=e).url);var i={config:r},l=n(t,r),s={},c=a||l.data;(l.transformRequest||[]).map((function(e){c=e(c,l.headers)||c})),c&&"object"==typeof c&&"function"!=typeof c.append&&(c=JSON.stringify(c),s["content-type"]="application/json");var u=document.cookie.match(RegExp("(^|; )"+l.xsrfCookieName+"=([^;]*)"));if(u&&(s[l.xsrfHeaderName]=u[2]),l.auth&&(s.authorization=l.auth),l.baseURL&&(e=new URL(e,l.baseURL)+""),l.params){var d=~e.indexOf("?")?"&":"?";e+=d+(l.paramsSerializer?l.paramsSerializer(l.params):new URLSearchParams(l.params))}return(l.fetch||fetch)(e,{method:o||l.method,body:c,headers:n(l.headers,s,!0),credentials:l.withCredentials?"include":void 0}).then((function(e){for(var t in e)"function"!=typeof e[t]&&(i[t]=e[t]);return(l.validateStatus?l.validateStatus(e.status):e.ok)?"stream"==l.responseType?(i.data=e.body,i):e[l.responseType||"text"]().then((function(e){i.data=e,i.data=JSON.parse(e)})).catch(Object).then((function(){return i})):Promise.reject(i)}))}return t=t||{},r.request=r,r.get=function(e,t){return r(e,t,"get")},r.delete=function(e,t){return r(e,t,"delete")},r.options=function(e,t){return r(e,t,"options")},r.post=function(e,t,n){return r(e,n,"post",t)},r.put=function(e,t,n){return r(e,n,"put",t)},r.patch=function(e,t,n){return r(e,n,"patch",t)},r.all=Promise.all,r.spread=function(e){return function(t){return e.apply(this,t)}},r.CancelToken="function"==typeof AbortController?AbortController:Object,r.defaults=t,r.create=e,r}(),Ke="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function xe(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var $e,Ye,_e=(function(e,t){ +/*! + localForage -- Offline Storage, Improved + Version 1.9.0 + https://localforage.github.io/localForage + (c) 2013-2017 Mozilla, Apache License 2.0 + */ +e.exports=function e(t,n,r){function o(i,l){if(!n[i]){if(!t[i]){if(!l&&xe)return xe();if(a)return a(i,!0);var s=new Error("Cannot find module '"+i+"'");throw s.code="MODULE_NOT_FOUND",s}var c=n[i]={exports:{}};t[i][0].call(c.exports,(function(e){var n=t[i][1][e];return o(n||e)}),c,c.exports,e,t,n,r)}return n[i].exports}for(var a=xe,i=0;i=43)}})).catch((function(){return!1}))}function w(e){return"boolean"==typeof m?c.resolve(m):L(e).then((function(e){return m=e}))}function b(e){var t=g[e.name],n={};n.promise=new c((function(e,t){n.resolve=e,n.reject=t})),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then((function(){return n.promise})):t.dbReady=n.promise}function H(e){var t=g[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function W(e,t){var n=g[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function v(e,t){return new c((function(n,r){if(g[e.name]=g[e.name]||G(),e.db){if(!t)return n(e.db);b(e),e.db.close()}var o=[e.name];t&&o.push(e.version);var a=i.open.apply(i,o);t&&(a.onupgradeneeded=function(t){var n=a.result;try{n.createObjectStore(e.storeName),t.oldVersion<=1&&n.createObjectStore(S)}catch(n){if("ConstraintError"!==n.name)throw n;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){n(a.result),H(e)}}))}function T(e){return v(e,!1)}function N(e){return v(e,!0)}function R(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),r=e.versione.db.version;if(r&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||n){if(n){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function M(e){return new c((function(t,n){var r=new FileReader;r.onerror=n,r.onloadend=function(n){var r=btoa(n.target.result||"");t({__local_forage_encoded_blob:!0,data:r,type:e.type})},r.readAsBinaryString(e)}))}function P(e){return s([C(atob(e.data))],{type:e.type})}function A(e){return e&&e.__local_forage_encoded_blob}function D(e){var t=this,n=t._initReady().then((function(){var e=g[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return d(n,e,e),n}function E(e){b(e);for(var t=g[e.name],n=t.forages,r=0;r0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return c.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),N(e)})).then((function(){return E(e).then((function(){k(e,t,n,r-1)}))})).catch(n);n(o)}}function G(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function F(e){var t=this,n={db:null};if(e)for(var r in e)n[r]=e[r];var o=g[n.name];o||(o=G(),g[n.name]=o),o.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=D);var a=[];function i(){return c.resolve()}for(var l=0;l>4,u[s++]=(15&r)<<4|o>>2,u[s++]=(3&o)<<6|63&a;return c}function Se(e){var t,n=new Uint8Array(e),r="";for(t=0;t>2],r+=X[(3&n[t])<<4|n[t+1]>>4],r+=X[(15&n[t+1])<<2|n[t+2]>>6],r+=X[63&n[t+2]];return n.length%3==2?r=r.substring(0,r.length-1)+"=":n.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function me(e,t){var n="";if(e&&(n=he.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===he.call(e.buffer))){var r,o=Z;e instanceof ArrayBuffer?(r=e,o+=ee):(r=e.buffer,"[object Int8Array]"===n?o+=ne:"[object Uint8Array]"===n?o+=re:"[object Uint8ClampedArray]"===n?o+=oe:"[object Int16Array]"===n?o+=ae:"[object Uint16Array]"===n?o+=le:"[object Int32Array]"===n?o+=ie:"[object Uint32Array]"===n?o+=se:"[object Float32Array]"===n?o+=ce:"[object Float64Array]"===n?o+=ue:t(new Error("Failed to get type for BinaryArray"))),t(o+Se(r))}else if("[object Blob]"===n){var a=new FileReader;a.onload=function(){var n=Q+e.type+"~"+Se(this.result);t(Z+te+n)},a.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(n){console.error("Couldn't convert value into a JSON string: ",e),t(null,n)}}function ge(e){if(e.substring(0,q)!==Z)return JSON.parse(e);var t,n=e.substring(de),r=e.substring(q,de);if(r===te&&z.test(n)){var o=n.match(z);t=o[1],n=n.substring(o[0].length)}var a=fe(n);switch(r){case ee:return a;case te:return s([a],{type:t});case ne:return new Int8Array(a);case re:return new Uint8Array(a);case oe:return new Uint8ClampedArray(a);case ae:return new Int16Array(a);case le:return new Uint16Array(a);case ie:return new Int32Array(a);case se:return new Uint32Array(a);case ce:return new Float32Array(a);case ue:return new Float64Array(a);default:throw new Error("Unkown type: "+r)}}var ye={serialize:me,deserialize:ge,stringToBuffer:fe,bufferToString:Se};function Be(e,t,n,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function pe(e){var t=this,n={db:null};if(e)for(var r in e)n[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new c((function(e,r){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(e){return r(e)}n.db.transaction((function(o){Be(o,n,(function(){t._dbInfo=n,e()}),(function(e,t){r(t)}))}),r)}));return n.serializer=ye,o}function Ce(e,t,n,r,o,a){e.executeSql(n,r,o,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,l){l.rows.length?a(e,i):Be(e,t,(function(){e.executeSql(n,r,o,a)}),a)}),a):a(e,i)}),a)}function Le(e,t){var n=this;e=h(e);var r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,n){var r=n.rows.length?n.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return u(r,t),r}function we(e,t){var n=this,r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"SELECT * FROM "+o.storeName,[],(function(n,r){for(var a=r.rows,i=a.length,l=0;l0)return void a(be.apply(o,[e,l,n,r-1]));i(t)}}))}))})).catch(i)}));return u(a,n),a}function He(e,t,n){return be.apply(this,[e,t,n,1])}function We(e,t){var n=this;e=h(e);var r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){r(t)}))}))})).catch(r)}));return u(r,t),r}function ve(e){var t=this,n=new c((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Ce(t,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,t){n(t)}))}))})).catch(n)}));return u(n,e),n}function Te(e){var t=this,n=new c((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Ce(t,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(t,n){var r=n.rows.item(0).c;e(r)}),(function(e,t){n(t)}))}))})).catch(n)}));return u(n,e),n}function Ne(e,t){var n=this,r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,n){var r=n.rows.length?n.rows.item(0).key:null;t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return u(r,t),r}function Re(e){var t=this,n=new c((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Ce(t,r,"SELECT key FROM "+r.storeName,[],(function(t,n){for(var r=[],o=0;o '__WebKitDatabaseInfoTable__'",[],(function(n,r){for(var o=[],a=0;a0}function Fe(e){var t=this,n={};if(e)for(var r in e)n[r]=e[r];return n.keyPrefix=Ee(e,t._defaultConfig),Ge()?(t._dbInfo=n,n.serializer=ye,c.resolve()):c.reject()}function Ie(e){var t=this,n=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,n=localStorage.length-1;n>=0;n--){var r=localStorage.key(n);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return u(n,e),n}function Oe(e,t){var n=this;e=h(e);var r=n.ready().then((function(){var t=n._dbInfo,r=localStorage.getItem(t.keyPrefix+e);return r&&(r=t.serializer.deserialize(r)),r}));return u(r,t),r}function Ke(e,t){var n=this,r=n.ready().then((function(){for(var t=n._dbInfo,r=t.keyPrefix,o=r.length,a=localStorage.length,i=1,l=0;l=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}})):c.reject("Invalid arguments"),t),r}var Je={_driver:"localStorageWrapper",_initStorage:Fe,_support:De(),iterate:Ke,getItem:Oe,setItem:Ue,removeItem:_e,clear:Ie,length:Ye,key:xe,keys:$e,dropInstance:Ve},je=function(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)},Xe=function(e,t){for(var n=e.length,r=0;r> wsUrl",t),this.socket=null,this.timer=0,this.clock=null,this.connected=!1,this.connectBuffer=[],this.startWebSocket=function(){const e=""===n?t:`${t}:${n}`;console.log("Starting socket",e);const r=window.MozWebSocket?MozWebSocket:WebSocket;this.socket=new r(e,"stream"),this.socket.onopen=this.handleWebsocketOnOpen.bind(this),this.socket.onmessage=this.handleWebsocketMessage.bind(this),this.socket.onclose=this.handleWebsocketClose.bind(this),this.socket.onerror=function(e){console.error(e)}},this.subscribe=function(e){console.log("Subscribe::",e);const t={request:"SUBSCRIBE",message:"",channel:e};this.connected?this.socket.send(JSON.stringify(t)):this.connectBuffer.push(JSON.stringify(t))},this.send=function(e){console.log("Sending",e),this.socket.send(e)},this.handleData=function(t){e.trigger("message",t)},this.handleBuffer=function(){for(console.log("*** handleBuffer");this.connectBuffer.length>0;){const e=this.connectBuffer.shift();this.socket.send(e)}},this.handleWebsocketOnOpen=function(){this.retry=0,console.log("**** Websocket Connected ****"),this.clock=new Date,this.connected=!0,setTimeout(()=>{this.handleBuffer()},1500)},this.handleWebsocketMessage=function(e){let t;try{console.log("handleWebsocketMessage::raw",e),t=JSON.parse(e.data),console.log("handleWebsocketMessage::command",t)}catch(e){}t&&this.handleData.call(this,t)},this.handleWebsocketClose=function(){console.error("WebSocket Connection Closed.");console.log("Socket alive for",.001);const e=this;console.log("Waiting ",15e3),this.timer=setTimeout((function(){e.startWebSocket()}),15e3)},this.startWebSocket()},Ve=[{follow:!1,name:"nationalrailenq",id:33546465},{follow:!1,name:"networkrail",id:365344176},{follow:!1,name:"NetworkRailSCOT",id:402687948},{follow:!1,name:"AvantiWestCoast",id:0xfdebe737417a000},{follow:!1,name:"CalSleeper",id:2870293725},{follow:!1,name:"CrossCountryUK",id:153368708},{follow:!1,name:"Eurostar",id:98412169},{follow:!1,name:"EurostarUK",id:59742254},{follow:!1,name:"GatwickExpress",id:163816182},{follow:!1,name:"GlasgowSubway",id:224607925},{follow:!1,name:"GWRHelp",id:15589815},{follow:!1,name:"HeathrowExpress",id:20240678},{follow:!1,name:"LNER",id:313306238},{follow:!1,name:"LNRailway",id:0xca2b366c356b000},{follow:!1,name:"northernassist",id:194512268},{follow:!1,name:"ScotRail",id:61569136},{follow:!1,name:"Stansted_Exp",id:257511611},{follow:!1,name:"TfL",id:47319664},{follow:!1,name:"WestMidRailway",id:0xcb4b3f097575000},{follow:!1,name:"NetworkRailBHM",id:583910976},{follow:!1,name:"NetworkRailEDB",id:586614081},{follow:!1,name:"NetworkRailEUS",id:581807264},{follow:!1,name:"NetworkRailGLC",id:421061171},{follow:!1,name:"NetworkRailKGX",id:459192871},{follow:!1,name:"NetworkRailLST",id:581826097},{follow:!1,name:"NetworkRailMAN",id:583895871},{follow:!1,name:"NetworkRailVIC",id:587354752},{follow:!1,name:"BTP",id:266094415},{follow:!1,name:"BTPAvonSomerset",id:0xa40431bb2d69000},{follow:!1,name:"BTPBhm",id:952003488},{follow:!1,name:"BTPBlackCountry",id:0xaa76997f5562000},{follow:!1,name:"BTPCambs",id:2574726074},{follow:!1,name:"BTPCardiff_NWP",id:951714852},{follow:!1,name:"BTPEAnglia",id:4479942923},{follow:!1,name:"BTPEssex",id:2949032015},{follow:!1,name:"BTPGtrMcr",id:1670204977},{follow:!1,name:"BTPLeics",id:0xa9023573bd76000},{follow:!1,name:"BTPLiverpoolSt",id:951912242},{follow:!1,name:"BTPLondon",id:957226980},{follow:!1,name:"BTPLondonBridge",id:3346645594},{follow:!1,name:"BTPMersey",id:951748434},{follow:!1,name:"BTPNorthScot",id:2238888007},{follow:!1,name:"BTPNorthWales",id:951487338},{follow:!1,name:"BTPOxon",id:0xa495f93bb965000},{follow:!1,name:"BTPPontypridd",id:1672678292},{follow:!1,name:"BTPScotland",id:957256160},{follow:!1,name:"BTPSouthYorks",id:3384315676},{follow:!1,name:"BTPTeesValley",id:0xb21ed0d43964000},{follow:!1,name:"BTPUnderground",id:0xdafd09816950000},{follow:!1,name:"BTPWales",id:1430734374},{follow:!1,name:"BTPWaterloo",id:951997044},{follow:!1,name:"BTPWestScot",id:951757261}];let Je=location.port?":"+location.port:"",je=`${location.protocol}//${location.hostname}${Je}`,Xe=!1;const Qe={},ze={newTweets:pe([]),twitterFollowing:pe({}),twitterFollowingList:pe([]),tweetList:pe([]),tweets:pe([]),favourites:pe([]),routes:pe([]),routeIndex:pe(0),incrementRouteIndex(){this.routeIndex.update(e=>e+1)},async saveRoute(e){const t={...e};t.id=s(this.routeIndex),this.routes.update(e=>[...e,t]),this.incrementRouteIndex()},deleteRoute(e){const t=s(this.routes).slice(0,e),n=s(this.routes).slice(e+1);this.routes.set([...t,...n])},async getTweets(){const e=s(ze.twitterFollowingList).map(e=>e[1].id),t=je.concat("/twitter");Oe({method:"post",url:t,data:{list:e}}).then(e=>{const t=e.data;this.newTweets.set(t)}).catch(e=>{console.error("Store:getTweets",e)})},getTweetByID(e){return s(this.tweets).get(e)},getTwitterFollowing(){return s(this.twitterFollowing)},saveTwitterFollowing(e){this.twitterFollowing.set(e)},getBaseUrl:()=>je,updateTweetList(e){this.tweetList.update(t=>[e,...t])},updateTwitter(e){this.tweets.update(t=>t.set(e.id,e))},updateNewTweets(e){this.newTweets.update(t=>{let n=[...t];return n.unshift(e),n=n.slice(0,49),n})},trigger(e,t){if(console.log("trigger",t),t.hasOwnProperty("message")){const e=t.message;this.updateNewTweets(e)}}},Ze=new Ue(ze);function qe(t){let n,r,o,a,i,l,s,c,u,d,h,f,S,B;return{c(){n=p("div"),r=p("div"),o=p("div"),a=C(t[0]),i=L(),l=p("div"),s=C(t[1]),c=L(),u=p("div"),d=p("span"),h=C(t[2]),H(r,"class","entry col-8 ml--1 svelte-10t8pfm"),H(d,"class",f="btn "+t[3]+" svelte-10t8pfm"),H(u,"class","entry col-4 text-center svelte-10t8pfm"),H(n,"class","row TRcard svelte-10t8pfm")},m(e,f){g(e,n,f),m(n,r),m(r,o),m(o,a),m(r,i),m(r,l),m(l,s),m(n,c),m(n,u),m(u,d),m(d,h),S||(B=b(d,"click",t[4]),S=!0)},p(e,[t]){1&t&&W(a,e[0]),2&t&&W(s,e[1]),4&t&&W(h,e[2]),8&t&&f!==(f="btn "+e[3]+" svelte-10t8pfm")&&H(d,"class",f)},i:e,o:e,d(e){e&&y(n),S=!1,B()}}}function et(e,t,n){let r,o,a,i,l,s,{destStation:c}=t,{startStation:u}=t,d=ze.getBaseUrl(),h={eta:"OFF",sta:"OFF"},f=0,S=0;async function m(){console.log(`Update: ${u} / ${c}`);const e=new Date,t=e.getHours()<6?36e5:95e3,r=t-e.getTime()%t;S=e.getTime()+r,await async function(){const e=Ie.minuteFloor(),t=a.concat("&mh="+e);Oe.get(t).then(e=>{n(8,h={...e.data}),console.dir(h)}).catch(e=>{console.error("TrainRoute:getTrain",e)})}(),clearTimeout(f),f=0,f=setTimeout(m,r+10)}return k(async()=>{if(Ie.LocalStorage.exists(`${u}${c}`)){const e=JSON.parse(Ie.LocalStorage.load(`${u}${c}`));n(8,h={...h,...e.trainData}),S=e.due,n(0,r=e.startStationName),n(1,o=e.destStationName),a=e.url}else n(0,r=Ge.findStation(u)),n(1,o=Ge.findStation(c)),a=`${d}/getnexttraintimes?from=${u}&to=${c}`;const e=(new Date).getTime();e>S?m():(f=0,f=setTimeout(m,S-e))}),G(async()=>{clearInterval(f);const e={due:S,trainData:h,startStationName:r,destStationName:o,url:a};Ie.LocalStorage.save(`${u}${c}`,JSON.stringify(e))}),e.$$set=e=>{"destStation"in e&&n(5,c=e.destStation),"startStation"in e&&n(6,u=e.startStation)},e.$$.update=()=>{352&e.$$.dirty&&(n(3,l="On time"===h.eta?"ontime":"delayed"),n(2,i="On time"===h.eta?h.sta:h.eta),s=`#/timetable/${u}/${c}`)},[r,o,i,l,function(){ve(s)},c,u]}_e.getItem("twitterFollowing").then(e=>{console.log("localForage::twitterFollowing",e),null!==e?ze.twitterFollowing.set(e):(Ve.forEach(e=>{Qe[e.name]={id:e.id,follow:!1}}),ze.twitterFollowing.set(Qe),_e.setItem("twitterFollowing",Qe).catch(e=>{console.error(e)}))}).catch(e=>{console.error(e)}),_e.getItem("favourites").then(e=>{null!==e&&ze.favourites.set(e)}).catch(e=>{console.error(e)}),_e.getItem("routes").then(e=>{null!==e&&ze.routes.set(e)}).catch(e=>{console.error(e)}),_e.getItem("routeIndex").then(e=>{null!==e&&ze.routeIndex.set(e)}).catch(e=>{console.error(e)}),ze.favourites.subscribe(e=>{console.log(">> Store.state.favourites",e)}),ze.routes.subscribe(e=>{Xe&&_e.setItem("routes",e).catch(e=>{console.error(e)})}),ze.routeIndex.subscribe(e=>{Xe&&_e.setItem("routeIndex",e).catch(e=>{console.error(e)})}),ze.twitterFollowing.subscribe(e=>{Xe&&_e.setItem("twitterFollowing",e).catch(e=>{console.error(e)});const t=Object.entries(s(ze.twitterFollowing)).filter(e=>{if(e[1].follow)return e});ze.twitterFollowingList.set(t)}),ze.twitterFollowingList.subscribe(e=>{0!==e.length&&(console.log("twitterFollowingList",e.length),e.forEach(e=>{const t=e[1].id;Ze.subscribe("t-"+t)}))}),ze.newTweets.subscribe(e=>{if(0===e.length)return;console.log(">> newTweets",e.length);const t=e.sort((e,t)=>t.ts-e.ts).map(e=>e.id),n=e.map(e=>[e.id,e]);ze.tweetList.set(t),ze.tweets.set(new Map(n))}),setTimeout(()=>{Xe=!0},250);class tt extends ge{constructor(e){super(),me(this,e,et,qe,i,{destStation:5,startStation:6})}}function nt(e,t,n){const r=e.slice();return r[1]=t[n],r}function rt(e){let t,n;return t=new tt({props:{destStation:e[1].destStation.id,startStation:e[1].startStation.id}}),{c(){he(t.$$.fragment)},m(e,r){fe(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.destStation=e[1].destStation.id),1&n&&(r.startStation=e[1].startStation.id),t.$set(r)},i(e){n||(ae(t.$$.fragment,e),n=!0)},o(e){ie(t.$$.fragment,e),n=!1},d(e){Se(t,e)}}}function ot(e){let t,n,r=e[0],o=[];for(let t=0;tie(o[e],1,1,()=>{o[e]=null});return{c(){t=p("div");for(let e=0;e{n(0,r=e)}),[r]}var it={reduceOtherDetails(e){const t=[];let n=0;const r=/<\s*[aA].*?href\s*=\s*(?:"|')(.*?)(?:"|')[^>]*>(.*?)<\s*?\/\s*?[aA]\s*?>/;if("object"==typeof e.nrccMessages&&null!==e.nrccMessages)for(const o of e.nrccMessages){const e={index:0,msg:"",link:null,linkText:""};let a=o.value.replace(' ">','">').replace("","").replace("/gi,"");const i=r.exec(o.value);a=a.replace(r,""),e.index=n,e.msg=a,null!==i&&(e.link=i[1],e.linkText=i[2]),t.push(e),n++}return{nrMessages:t,nrMessagesExist:t.length>0}},reduceTrainTimetable(e){const t=[];let n="";const r=["💠","🚉"];if("object"==typeof e&&null!==e){if(console.log(">> reduceTrainService"),"object"==typeof e.trainServices&&null!==e.trainServices)for(const o of e.trainServices){const e=o.destination[0],a=null!==e.via?e.via:"",i=null!==o.platform?o.platform:""+r[0],l=null!==o.sta?o.sta:"D "+o.std,s=null===o.sta,c=null!==o.eta?o.eta:o.etd,u=o.length,d=u>0?` (${u} 🚃) `:"",h="on time"===c.toLowerCase()?"ontime":"delayed",f=null!==o.delayReason?o.delayReason:"",S=null!==o.cancelReason?o.cancelReason:"No reason given 🤷",m=o.serviceIdUrlSafe;t.push({location:e.locationName,time:l,status:c,platform:i,cancel:S,type:"train",delay:f,carriageCount:d,via:a,statusMode:h,isCancelled:o.isCancelled,isDeparture:s,serviceIdUrlSafe:m}),n=o.isCancelled?`${n}${e.locationName} ${a}${l}\n ❌ ${S}`:`${n}${e.locationName}${d}${a}\n ${l}\n ${c}\n ${i}\n ${f}`}if("object"==typeof e.busServices&&null!==e.busServices)for(const n of e.busServices){const e=n.destination[0],r=null!==e.via?e.via:"",o=null!==n.platform?n.platform:"",a=null!==n.sta?n.sta:"D "+n.std,i=null!==n.eta?n.eta:n.etd;t.push({location:e.locationName,time:a,status:i,platform:o,cancel:n.cancelReason,type:"bus",via:r})}}return console.log(t),t},reduceTrainService(e){let t=[];const n=e.sta||e.std,r=e.eta||e.etd,o={locationName:e.locationName,crs:e.crs,st:e.sta,et:e.eta,at:e.ata,isCancelled:e.isCancelled,length:e.length,detachFront:e.detachFront,adhocAlerts:e.adhocAlerts};return null!==e.previousCallingPoints&&(t=t.concat(e.previousCallingPoints[0].callingPoint)),t.push(o),null!==e.subsequentCallingPoints&&(t=t.concat(e.subsequentCallingPoints[0].callingPoint)),t=t.map(e=>(e.et=null===e.et?"":e.et,e.at=null===e.at?"":e.at,e.etMode="on time"===e.et.toLowerCase()?"ontime":"delayed",e.atMode="on time"===e.at.toLowerCase()?"ontime":"delayed",e.delayReason=null!==e.delayReason?e.delayReason:"",e.cancelReason=null!==e.cancelReason?e.cancelReason:"No reason given 🤷",e.classCancel=e.isCancelled?"cancelledRow":"",null!==e.st||null!==e.et&&""!==e.et||(e.st="D "+n,e.et=r),e)),t}};function lt(e,t,n){const r=e.slice();return r[5]=t[n],r}function st(e){let t,n=e[0],r=[];for(let t=0;t0&&st(t);return{c(){n=p("section"),r=p("div"),r.innerHTML='
Station
\n
Due
\n
Estimated
\n
Arrived
',o=L(),a&&a.c(),H(r,"class","grid card text-subhead")},m(e,t){g(e,n,t),m(n,r),m(n,o),a&&a.m(n,null)},p(e,[t]){e[0].length>0?a?a.p(e,t):(a=st(e),a.c(),a.m(n,null)):a&&(a.d(1),a=null)},i:e,o:e,d(e){e&&y(n),a&&a.d()}}}function dt(e,t,n){let r,{serviceId:o}=t,a=[],i=ze.getBaseUrl();async function l(){{const e="/getservice?serviceid="+o,t=i.concat(e);await Oe.get(t).then(e=>{const t=JSON.parse(e.data);n(0,a=it.reduceTrainService(t))})}}return k(async()=>{await l(),r=setInterval(async()=>{console.log("Service update"),await l()},12e4)}),G(async()=>{clearInterval(r)}),e.$$set=e=>{"serviceId"in e&&n(1,o=e.serviceId)},[a,o]}class ht extends ge{constructor(e){super(),me(this,e,dt,ut,i,{serviceId:1})}}function ft(t){let n,r,o;return r=new ht({props:{serviceId:t[0]}}),{c(){n=p("div"),he(r.$$.fragment),H(n,"class","container")},m(e,t){g(e,n,t),fe(r,n,null),o=!0},p:e,i(e){o||(ae(r.$$.fragment,e),o=!0)},o(e){ie(r.$$.fragment,e),o=!1},d(e){e&&y(n),Se(r)}}}function St(e,t,n){let{params:r={}}=t,o=r.serviceId;return e.$$set=e=>{"params"in e&&n(1,r=e.params)},[o,r]}function mt(e,t,n){const r=e.slice();return r[8]=t[n],r[10]=n,r}function gt(e,t,n){const r=e.slice();return r[8]=t[n],r}function yt(e){let t,n,r=e[1].nrMessages,o=[];for(let t=0;te[8].serviceIdUrlSafe;for(let t=0;t{v||(v=se(n,De,{},!0)),v.run(1)}),T=!0)},o(e){e&&(v||(v=se(n,De,{},!1)),v.run(0)),T=!1},d(e){e&&y(n),D&&D.d(),G.d(),e&&v&&v.end(),N=!1,R()}}}function Wt(e){let t,n,r,o,a=!0===e[1].nrMessagesExist&&yt(e),i=e[0].length>0&&Ct(e);return{c(){t=p("div"),n=p("section"),a&&a.c(),r=L(),i&&i.c()},m(e,l){g(e,t,l),m(t,n),a&&a.m(n,null),m(n,r),i&&i.m(n,null),o=!0},p(e,[t]){!0===e[1].nrMessagesExist?a?a.p(e,t):(a=yt(e),a.c(),a.m(n,r)):a&&(a.d(1),a=null),e[0].length>0?i?(i.p(e,t),1&t&&ae(i,1)):(i=Ct(e),i.c(),ae(i,1),i.m(n,null)):i&&(re(),ie(i,1,1,()=>{i=null}),oe())},i(e){o||(ae(i),o=!0)},o(e){ie(i),o=!1},d(e){e&&y(t),a&&a.d(),i&&i.d()}}}function vt(e,t,n){let r,{fromStation:o}=t,{destStation:a}=t,i=[],l={},s=ze.getBaseUrl();async function c(){{const e=`/gettrains?from=${o}&to=${a}`,t=s.concat(e);await Oe.get(t).then(e=>{const t={...e.data};n(0,i=it.reduceTrainTimetable(t)),n(1,l=it.reduceOtherDetails(t))})}}return k(async()=>{await c(),r=setInterval(async()=>{console.log("Timetable update"),await c()},12e4)}),G(async()=>{clearInterval(r)}),e.$$set=e=>{"fromStation"in e&&n(3,o=e.fromStation),"destStation"in e&&n(4,a=e.destStation)},[i,l,function(e){ve("/service/"+e)},o,a]}class Tt extends ge{constructor(e){super(),me(this,e,vt,Wt,i,{fromStation:3,destStation:4})}}function Nt(e){let t,n,r,o,a,i,l,s,c;return s=new Tt({props:{fromStation:e[2],destStation:e[3]}}),{c(){t=p("div"),n=p("div"),r=p("div"),o=C(e[0]),a=C(" TO "),i=C(e[1]),l=L(),he(s.$$.fragment),H(r,"class","text-center text-dark text-subhead"),H(t,"class","container")},m(e,u){g(e,t,u),m(t,n),m(n,r),m(r,o),m(r,a),m(r,i),m(n,l),fe(s,n,null),c=!0},p(e,[t]){(!c||1&t)&&W(o,e[0]),(!c||2&t)&&W(i,e[1])},i(e){c||(ae(s.$$.fragment,e),c=!0)},o(e){ie(s.$$.fragment,e),c=!1},d(e){e&&y(t),Se(s)}}}function Rt(e,t,n){let r,o,{params:a={}}=t,i=a.fromStation,l=a.destStation;return k(async()=>{n(0,r=Ge.findStation(i)),n(1,o=Ge.findStation(l))}),e.$$set=e=>{"params"in e&&n(4,a=e.params)},[r,o,i,l,a]}function Mt(e,t,n){const r=e.slice();return r[9]=t[n],r[11]=n,r}function Pt(e){let t,n=e[4],r=[];for(let t=0;t0&&Pt(t);return{c(){n=p("span"),r=p("label"),i=C(t[1]),l=L(),s=p("input"),c=L(),h&&h.c(),H(r,"for",t[0]),H(s,"class","betterInput svelte-1up86vp"),H(s,"autocomplete","off"),H(s,"name",t[0]),H(n,"class","mui-dropdown mui-dropdown--right svelte-1up86vp")},m(e,o){g(e,n,o),m(n,r),m(r,i),m(n,l),m(n,s),v(s,t[2]),m(n,c),h&&h.m(n,null),u||(d=[b(s,"keyup",(function(){a(t[3])&&t[3].apply(this,arguments)})),b(s,"input",t[7])],u=!0)},p(e,[o]){t=e,2&o&&W(i,t[1]),1&o&&H(r,"for",t[0]),1&o&&H(s,"name",t[0]),4&o&&s.value!==t[2]&&v(s,t[2]),t[4].length>0?h?h.p(t,o):(h=Pt(t),h.c(),h.m(n,null)):h&&(h.d(1),h=null)},i:e,o:e,d(e){e&&y(n),h&&h.d(),u=!1,o(d)}}}function Et(e,t,n){let r,{returnValue:o=""}=t,a="",{name:i}=t,{label:l}=t,s=[];function c(){n(6,o=""),a.length>=2?n(4,s=Ge.searchStation(a)):n(4,s=[])}return k(async()=>{n(3,r=Ie.debounce(c,750))}),e.$$set=e=>{"returnValue"in e&&n(6,o=e.returnValue),"name"in e&&n(0,i=e.name),"label"in e&&n(1,l=e.label)},e.$$.update=()=>{64&e.$$.dirty&&""===o&&n(2,a="")},[i,l,a,r,s,function(e){let[t,r]=e.target.dataset.content.split(",");n(6,o={id:t,name:r}),n(2,a=r),n(4,s=[])},o,function(){a=this.value,n(2,a),n(6,o)}]}class kt extends ge{constructor(e){super(),me(this,e,Et,Dt,i,{returnValue:6,name:0,label:1})}}function Gt(t){let n,r,o,a;return{c(){n=p("div"),r=p("button"),r.textContent="Add a new route",H(r,"class","btn btn-primary"),H(r,"id","new"),H(r,"type","button")},m(e,i){g(e,n,i),m(n,r),o||(a=b(r,"click",t[6]),o=!0)},p:e,i:e,o:e,d(e){e&&y(n),o=!1,a()}}}function Ft(e){let t,n,r,a,i,l,s,c,u,d,h,f,S,B,w,W,v,T,N,R,M,P,A,D;function E(t){e[7].call(null,t)}let k={label:"Departure Station",name:"startStation"};function G(t){e[8].call(null,t)}void 0!==e[1]&&(k.returnValue=e[1]),s=new kt({props:k}),O.push(()=>de(s,"returnValue",E));let F={label:"Destination Station",name:"destStation"};return void 0!==e[2]&&(F.returnValue=e[2]),S=new kt({props:F}),O.push(()=>de(S,"returnValue",G)),{c(){t=p("div"),n=p("div"),r=p("div"),r.textContent="New Route",a=L(),i=p("div"),l=p("div"),he(s.$$.fragment),u=L(),d=p("div"),d.innerHTML='',h=L(),f=p("div"),he(S.$$.fragment),w=L(),W=p("div"),v=p("button"),v.textContent="Close",T=L(),N=p("button"),R=C("Save"),H(r,"class","text-subhead"),H(l,"class",""),H(d,"class","text-center"),H(f,"class",""),H(i,"class","grid-3"),H(v,"class","btn btn-sm"),H(v,"type","button"),H(N,"class","btn btn-primary btn-sm"),H(N,"id","save"),H(N,"type","button"),N.disabled=M=!e[3],H(W,"class","my text-right"),H(n,"class","mui-row card"),H(t,"class","container ")},m(o,c){g(o,t,c),m(t,n),m(n,r),m(n,a),m(n,i),m(i,l),fe(s,l,null),m(i,u),m(i,d),m(i,h),m(i,f),fe(S,f,null),m(n,w),m(n,W),m(W,v),m(W,T),m(W,N),m(N,R),P=!0,A||(D=[b(v,"click",e[4]),b(N,"click",e[5])],A=!0)},p(e,t){const n={};!c&&2&t&&(c=!0,n.returnValue=e[1],J(()=>c=!1)),s.$set(n);const r={};!B&&4&t&&(B=!0,r.returnValue=e[2],J(()=>B=!1)),S.$set(r),(!P||8&t&&M!==(M=!e[3]))&&(N.disabled=M)},i(e){P||(ae(s.$$.fragment,e),ae(S.$$.fragment,e),P=!0)},o(e){ie(s.$$.fragment,e),ie(S.$$.fragment,e),P=!1},d(e){e&&y(t),Se(s),Se(S),A=!1,o(D)}}}function It(e){let t,n,r,o;const a=[Ft,Gt],i=[];function l(e,t){return e[0]?0:1}return t=l(e),n=i[t]=a[t](e),{c(){n.c(),r=w()},m(e,n){i[t].m(e,n),g(e,r,n),o=!0},p(e,[o]){let s=t;t=l(e),t===s?i[t].p(e,o):(re(),ie(i[s],1,1,()=>{i[s]=null}),oe(),n=i[t],n||(n=i[t]=a[t](e),n.c()),ae(n,1),n.m(r.parentNode,r))},i(e){o||(ae(n),o=!0)},o(e){ie(n),o=!1},d(e){i[t].d(e),e&&y(r)}}}function Ot(e,t,n){let r,o,a,i=!1;function l(){n(1,r=""),n(2,o=""),n(0,i=!1)}return e.$$.update=()=>{6&e.$$.dirty&&(console.log("typeof startStation",typeof r),n(3,a="object"==typeof r&&"object"==typeof o))},[i,r,o,a,l,async function(){await ze.saveRoute({startStation:r,destStation:o}),l()},function(){n(0,i=!0)},function(e){r=e,n(1,r)},function(e){o=e,n(2,o)}]}class Kt extends ge{constructor(e){super(),me(this,e,Ot,It,i,{})}}function xt(t){let n,r,a,i,l,s,c,u,d,h;return{c(){n=p("div"),r=p("button"),r.textContent="Delete",a=L(),i=p("button"),i.textContent="Edit",l=L(),s=p("button"),s.textContent="Close",H(r,"class","btn btn-danger btn-sm"),H(r,"id","delete"),H(r,"type","button"),H(i,"class","btn btn-primary btn-sm"),H(i,"id","save"),H(i,"type","button"),H(s,"class","btn btn-sm"),H(s,"type","button"),H(n,"class","my grid-3 svelte-ojjucl")},m(e,o){g(e,n,o),m(n,r),m(n,a),m(n,i),m(n,l),m(n,s),u=!0,d||(h=[b(r,"click",t[2]),b(i,"click",Yt),b(s,"click",t[3])],d=!0)},p:e,i(e){u||(V(()=>{c||(c=se(n,Ee,{},!0)),c.run(1)}),u=!0)},o(e){c||(c=se(n,Ee,{},!1)),c.run(0),u=!1},d(e){e&&y(n),e&&c&&c.end(),d=!1,o(h)}}}function $t(n){let r,i,l,s,c,d,h,f,B,w,v,T,N,R,M,D,E,k=n[0].startStation.name+"",G=n[0].destStation.name+"",F=n[1]&&xt(n);return{c(){r=p("div"),i=p("div"),l=p("div"),s=C(k),c=L(),d=p("div"),d.innerHTML='',h=L(),f=p("div"),B=C(G),w=L(),v=p("div"),T=p("button"),T.innerHTML='',N=L(),F&&F.c(),H(l,"class","col-5"),H(d,"class","col-1"),H(f,"class","col-5"),H(T,"class","btn btn-sm--slim"),H(v,"class","col-1"),H(i,"class","grid card ")},m(e,t){g(e,r,t),m(r,i),m(i,l),m(l,s),m(i,c),m(i,d),m(i,h),m(i,f),m(f,B),m(i,w),m(i,v),m(v,T),m(r,N),F&&F.m(r,null),M=!0,D||(E=b(T,"click",n[5]),D=!0)},p(e,[t]){(!M||1&t)&&k!==(k=e[0].startStation.name+"")&&W(s,k),(!M||1&t)&&G!==(G=e[0].destStation.name+"")&&W(B,G),e[1]?F?(F.p(e,t),2&t&&ae(F,1)):(F=xt(e),F.c(),ae(F,1),F.m(r,null)):F&&(re(),ie(F,1,1,()=>{F=null}),oe())},i(e){M||(ae(F),R&&R.end(1),M=!0)},o(n){ie(F),n&&(R=function(n,r,i){let l,s=r(n,i),c=!0;const d=ne;function h(){const{delay:r=0,duration:a=300,easing:i=t,tick:h=e,css:f}=s||le;f&&(l=P(n,1,0,a,r,i,f));const m=u()+r,g=m+a;V(()=>ee(n,!1,"start")),S(e=>{if(c){if(e>=g)return h(0,1),ee(n,!1,"end"),--d.r||o(d.c),!1;if(e>=m){const t=i((e-m)/a);h(1-t,t)}}return c})}return d.r+=1,a(s)?q().then(()=>{s=s(),h()}):h(),{end(e){e&&s.tick&&s.tick(1,0),c&&(l&&A(n,l),c=!1)}}}(r,Ee,{})),M=!1},d(e){e&&y(r),F&&F.d(),e&&R&&R.end(),D=!1,E()}}}function Yt(){}function _t(e,t,n){let{item:r}=t,{id:o}=t,a=!1;return e.$$set=e=>{"item"in e&&n(0,r=e.item),"id"in e&&n(4,o=e.id)},[r,a,function(){console.log("delete: "+o),n(1,a=!1),ze.deleteRoute(o)},function(){n(1,a=!1)},o,()=>n(1,a=!a)]}class Ut extends ge{constructor(e){super(),me(this,e,_t,$t,i,{item:0,id:4})}}function Vt(e,t,n){const r=e.slice();return r[1]=t[n],r[3]=n,r}function Jt(e,t){let n,r,o;return r=new Ut({props:{item:t[1],id:t[3]}}),{key:e,first:null,c(){n=w(),he(r.$$.fragment),this.first=n},m(e,t){g(e,n,t),fe(r,e,t),o=!0},p(e,t){const n={};1&t&&(n.item=e[1]),1&t&&(n.id=e[3]),r.$set(n)},i(e){o||(ae(r.$$.fragment,e),o=!0)},o(e){ie(r.$$.fragment,e),o=!1},d(e){e&&y(n),Se(r,e)}}}function jt(e){let t,n,r=[],o=new Map,a=e[0];const i=e=>e[1].id;for(let t=0;t{n(0,r=e)}),[r]}class Qt extends ge{constructor(e){super(),me(this,e,Xt,jt,i,{})}}function zt(e,t,n){const r=e.slice();return r[4]=t[n],r[5]=t,r[6]=n,r}function Zt(e){let t,n=Ve,r=[];for(let t=0;t{n(0,r=ze.getTwitterFollowing()),n(1,o=Object.keys(r).length>0)});const a=ze.twitterFollowing.subscribe(async e=>{n(0,r=e),n(1,o=Object.keys(r).length>0),console.log("_following",r)});return G(async()=>{ze.saveTwitterFollowing(r),a()}),[r,o,function(e){r[e.name].follow=this.checked,n(0,r)}]}class nn extends ge{constructor(e){super(),me(this,e,tn,en,i,{})}}function rn(t){let n,r,o,a,i,l,s,c,u,d,h;return a=new Kt({}),l=new Qt({}),d=new nn({}),{c(){n=p("div"),r=p("div"),r.textContent="Settings",o=L(),he(a.$$.fragment),i=L(),he(l.$$.fragment),s=L(),c=p("hr"),u=L(),he(d.$$.fragment),H(r,"class","text-dark text-subhead"),H(n,"class","container")},m(e,t){g(e,n,t),m(n,r),m(n,o),fe(a,n,null),m(n,i),fe(l,n,null),m(n,s),m(n,c),m(n,u),fe(d,n,null),h=!0},p:e,i(e){h||(ae(a.$$.fragment,e),ae(l.$$.fragment,e),ae(d.$$.fragment,e),h=!0)},o(e){ie(a.$$.fragment,e),ie(l.$$.fragment,e),ie(d.$$.fragment,e),h=!1},d(e){e&&y(n),Se(a),Se(l),Se(d)}}}function on(t){let n;return{c(){n=p("div"),n.innerHTML='

Favourites

\n\n
a
\n
b
\n
c
\n
d
',H(n,"class","container svelte-apetsu")},m(e,t){g(e,n,t)},p:e,i:e,o:e,d(e){e&&y(n)}}}function an(e){let t,n,r,o,a,i,l,s,c,u,d,h,f,S,B,w,b,v,T,N,R,M,P=e[0].user.name+"",A=e[0].user.screen_name+"",D=e[0].created_at+"",E=e[1]&&ln(e);return{c(){t=p("div"),n=p("div"),r=p("div"),o=p("img"),l=L(),s=p("div"),c=p("div"),u=C(P),d=L(),h=p("div"),f=C("@"),S=C(A),B=L(),E&&E.c(),w=L(),b=p("div"),v=C(e[2]),T=L(),N=p("div"),R=p("small"),M=C(D),H(o,"class","avatar col-2 svelte-1y2z4hv"),o.src!==(a=cn(e[0].user.profile_image_url_https))&&H(o,"src",a),H(o,"alt",i="@"+e[0].user.screen_name),H(c,"class","text-subhead text-dark"),H(h,"class","badge"),H(s,"class","col-10 ml-2"),H(r,"class","grid"),H(n,"class","tweet-header"),H(b,"class","tweetBody"),H(R,"class","text-highlight2"),H(t,"class","card--slim")},m(e,a){g(e,t,a),m(t,n),m(n,r),m(r,o),m(r,l),m(r,s),m(s,c),m(c,u),m(s,d),m(s,h),m(h,f),m(h,S),m(t,B),E&&E.m(t,null),m(t,w),m(t,b),m(b,v),m(t,T),m(t,N),m(N,R),m(R,M)},p(e,n){1&n&&o.src!==(a=cn(e[0].user.profile_image_url_https))&&H(o,"src",a),1&n&&i!==(i="@"+e[0].user.screen_name)&&H(o,"alt",i),1&n&&P!==(P=e[0].user.name+"")&&W(u,P),1&n&&A!==(A=e[0].user.screen_name+"")&&W(S,A),e[1]?E?E.p(e,n):(E=ln(e),E.c(),E.m(t,w)):E&&(E.d(1),E=null),4&n&&W(v,e[2]),1&n&&D!==(D=e[0].created_at+"")&&W(M,D)},d(e){e&&y(t),E&&E.d()}}}function ln(e){let t,n,r,o=e[0].in_reply_to_screen_name+"";return{c(){t=p("div"),n=C("Replying to @"),r=C(o),H(t,"class","text-primary")},m(e,o){g(e,t,o),m(t,n),m(t,r)},p(e,t){1&t&&o!==(o=e[0].in_reply_to_screen_name+"")&&W(r,o)},d(e){e&&y(t)}}}function sn(t){let n,r=t[0]&&an(t);return{c(){r&&r.c(),n=w()},m(e,t){r&&r.m(e,t),g(e,n,t)},p(e,[t]){e[0]?r?r.p(e,t):(r=an(e),r.c(),r.m(n.parentNode,n)):r&&(r.d(1),r=null)},i:e,o:e,d(e){r&&r.d(e),e&&y(n)}}}function cn(e){return"https://image.silvrtree.co.uk/48,fit,q80/"+e}function un(e,t,n){let r,o,{id:a}=t,i=!1,l="";return k(async()=>{r=ze.getTweetByID(a),n(0,o=JSON.parse(r.tweet))}),e.$$set=e=>{"id"in e&&n(3,a=e.id)},e.$$.update=()=>{1&e.$$.dirty&&o&&(n(1,i=o&&null!==o.in_reply_to_status_id),n(2,l=o&&o.truncated?o.extended_tweet.full_text:o.text))},[o,i,l,a]}class dn extends ge{constructor(e){super(),me(this,e,un,sn,i,{id:3})}}function hn(e,t,n){const r=e.slice();return r[3]=t[n],r[5]=n,r}function fn(e,t){let n,r,o;return r=new dn({props:{id:t[3]}}),{key:e,first:null,c(){n=w(),he(r.$$.fragment),this.first=n},m(e,t){g(e,n,t),fe(r,e,t),o=!0},p(e,t){const n={};1&t&&(n.id=e[3]),r.$set(n)},i(e){o||(ae(r.$$.fragment,e),o=!0)},o(e){ie(r.$$.fragment,e),o=!1},d(e){e&&y(n),Se(r,e)}}}function Sn(e){let t,n,r,o,a=[],i=new Map,l=e[0];const s=e=>e[3];for(let t=0;t{await ze.getTweets()});const o=ze.tweetList.subscribe(async e=>{n(0,r=e)});return G(async()=>{o(),clearInterval(undefined)}),[r]}function gn(t){let n,r,o;return{c(){n=p("h2"),n.textContent="NotFound",r=L(),o=p("p"),o.textContent="Oops, this route doesn't exist!",H(n,"class","routetitle svelte-apetsu"),H(o,"class","svelte-apetsu")},m(e,t){g(e,n,t),g(e,r,t),g(e,o,t)},p:e,i:e,o:e,d(e){e&&y(n),e&&y(r),e&&y(o)}}}const yn=new Map;function Bn(t){let n,r,o;return{c(){n=p("span"),n.innerHTML='',H(n,"class","")},m(e,a){g(e,n,a),r||(o=b(n,"click",t[1]),r=!0)},p:e,d(e){e&&y(n),r=!1,o()}}}function pn(t){let n,r,o,a,i,l,s,c,u,d,h=1===t[0]&&Bn(t);return{c(){n=p("header"),r=p("section"),h&&h.c(),o=L(),a=p("span"),a.textContent=""+Cn,i=L(),l=p("section"),s=p("a"),s.innerHTML='',c=L(),u=p("a"),u.innerHTML='',d=L(),H(a,"class","text-bold navbar-brand mx-1 text-uppercase"),H(r,"class","navbar-section"),H(s,"title","Tweets"),H(s,"href","/#/tweets"),H(s,"class","btn--slim bg-primary"),H(u,"title","Settings"),H(u,"href","/#/settings"),H(u,"class","btn bg-primary "),H(l,"class","navbar-section text-right"),H(n,"class","navbar bg-primary")},m(e,t){g(e,n,t),m(n,r),h&&h.m(r,null),m(r,o),m(r,a),m(n,i),m(n,l),m(l,s),m(l,c),m(l,u),m(l,d)},p(e,[t]){1===e[0]?h?h.p(e,t):(h=Bn(e),h.c(),h.m(r,o)):h&&(h.d(1),h=null)},i:e,o:e,d(e){e&&y(n),h&&h.d()}}}yn.set("/",class extends ge{constructor(e){super(),me(this,e,at,ot,i,{})}}),yn.set("/timetable/:fromStation/:destStation",class extends ge{constructor(e){super(),me(this,e,Rt,Nt,i,{params:4})}}),yn.set("/service/:serviceId",class extends ge{constructor(e){super(),me(this,e,St,ft,i,{params:1})}}),yn.set("/settings",class extends ge{constructor(e){super(),me(this,e,null,rn,i,{})}}),yn.set("/favourites",class extends ge{constructor(e){super(),me(this,e,null,on,i,{})}}),yn.set("/tweets",class extends ge{constructor(e){super(),me(this,e,mn,Sn,i,{})}}),yn.set("*",class extends ge{constructor(e){super(),me(this,e,null,gn,i,{})}});let Cn="Traintimes";function Ln(e,t,n){let r,{page:o}=t;return e.$$set=e=>{"page"in e&&n(2,o=e.page)},e.$$.update=()=>{4&e.$$.dirty&&n(0,r="Home"===o?0:1)},[r,function(){U().then(()=>{window.history.back()})},o]}class wn extends ge{constructor(e){super(),me(this,e,Ln,pn,i,{page:2})}}function bn(e){let t,n,r,o;return t=new wn({props:{page:e[0]}}),r=new Ne({props:{routes:yn}}),r.$on("conditionsFailed",Hn),r.$on("routeLoaded",e[1]),r.$on("routeEvent",Wn),{c(){he(t.$$.fragment),n=L(),he(r.$$.fragment)},m(e,a){fe(t,e,a),g(e,n,a),fe(r,e,a),o=!0},p(e,[n]){const r={};1&n&&(r.page=e[0]),t.$set(r)},i(e){o||(ae(t.$$.fragment,e),ae(r.$$.fragment,e),o=!0)},o(e){ie(t.$$.fragment,e),ie(r.$$.fragment,e),o=!1},d(e){Se(t,e),e&&y(n),Se(r,e)}}}function Hn(e){console.error("Caught event conditionsFailed",e.detail)}function Wn(e){console.info("Caught event routeEvent",e.detail)}function vn(e,t,n){let r;return[r,function(e){console.info("Caught event routeLoaded",e.detail),n(0,r=e.detail.name),console.log("currentPage",r)}]}const Tn=new class extends ge{constructor(e){super(),me(this,e,vn,bn,i,{})}}({target:document.body,props:{}});return"serviceWorker"in navigator&&(navigator.serviceWorker.ready.then((function(e){console.warn("Ready??",e)})),window.addEventListener("load",(function(){navigator.serviceWorker.register("./service-worker.js").then(e=>{console.warn("Service Worker Registered",e.scope)}).catch(e=>{console.error("Registration failed with "+e)})}))),Tn}(); diff --git a/OLD_pb_public/build/fonts/GothamSSm-Black.otf b/OLD_pb_public/build/fonts/GothamSSm-Black.otf new file mode 100755 index 0000000..95aa773 Binary files /dev/null and b/OLD_pb_public/build/fonts/GothamSSm-Black.otf differ diff --git a/OLD_pb_public/build/fonts/GothamSSm-Bold.otf b/OLD_pb_public/build/fonts/GothamSSm-Bold.otf new file mode 100755 index 0000000..3d624a6 Binary files /dev/null and b/OLD_pb_public/build/fonts/GothamSSm-Bold.otf differ diff --git a/OLD_pb_public/build/fonts/GothamSSm-Book.otf b/OLD_pb_public/build/fonts/GothamSSm-Book.otf new file mode 100755 index 0000000..497df6e Binary files /dev/null and b/OLD_pb_public/build/fonts/GothamSSm-Book.otf differ diff --git a/OLD_pb_public/build/fonts/GothamSSm-Light.otf b/OLD_pb_public/build/fonts/GothamSSm-Light.otf new file mode 100755 index 0000000..3430a31 Binary files /dev/null and b/OLD_pb_public/build/fonts/GothamSSm-Light.otf differ diff --git a/OLD_pb_public/build/fonts/GothamSSm-Medium.otf b/OLD_pb_public/build/fonts/GothamSSm-Medium.otf new file mode 100755 index 0000000..8f4e1c2 Binary files /dev/null and b/OLD_pb_public/build/fonts/GothamSSm-Medium.otf differ diff --git a/OLD_pb_public/build/fonts/Roboto-normal-400.woff b/OLD_pb_public/build/fonts/Roboto-normal-400.woff new file mode 100644 index 0000000..92dfacc Binary files /dev/null and b/OLD_pb_public/build/fonts/Roboto-normal-400.woff differ diff --git a/OLD_pb_public/build/fonts/Roboto_Condensed-normal-400.woff b/OLD_pb_public/build/fonts/Roboto_Condensed-normal-400.woff new file mode 100644 index 0000000..613f5de Binary files /dev/null and b/OLD_pb_public/build/fonts/Roboto_Condensed-normal-400.woff differ diff --git a/OLD_pb_public/build/fonts/Roboto_Mono-normal-400.woff b/OLD_pb_public/build/fonts/Roboto_Mono-normal-400.woff new file mode 100644 index 0000000..c41382c Binary files /dev/null and b/OLD_pb_public/build/fonts/Roboto_Mono-normal-400.woff differ diff --git a/OLD_pb_public/build/fonts/Roboto_Slab-normal-400.woff b/OLD_pb_public/build/fonts/Roboto_Slab-normal-400.woff new file mode 100644 index 0000000..3374dc1 Binary files /dev/null and b/OLD_pb_public/build/fonts/Roboto_Slab-normal-400.woff differ diff --git a/pb_public/build/fonts/fonts.css b/OLD_pb_public/build/fonts/fonts.css similarity index 100% rename from pb_public/build/fonts/fonts.css rename to OLD_pb_public/build/fonts/fonts.css diff --git a/OLD_pb_public/build/fonts/fujicons.css b/OLD_pb_public/build/fonts/fujicons.css new file mode 100644 index 0000000..ff6f266 --- /dev/null +++ b/OLD_pb_public/build/fonts/fujicons.css @@ -0,0 +1,321 @@ +@font-face { + font-family: 'Fujicons'; + font-style: normal; + font-weight: 400; + src: url(fujicons.ttf) format('truetype'); + unicode-range: U+0-10FFFF; +} + + +.fa { + display: inline-block; + font: normal normal normal 14px/1 Fujicons; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} + + +.fa-back:before { + content: ""; +} + +.fa-back-chevron:before { + content: "\E91F" +} + +.fa-forward:before { + content: ""; +} + +.fa-globe:before { + content: "\EA12" +} + +.fa-up:before { + content: "\E925" +} + +.fa-down:before { + content: "\E922" +} + +.fa-work:before { + content: "\E998" +} + +.fa-home:before { + content: "\EA1E" +} + +.fa-refresh:before { + content: "\EA88" +} + +.fa-menu:before { + content: "\EA68" +} + +.fa-star:before { + content: "\EAB3" +} + +.fa-star-filled:before { + content: "\EAB2" +} + +.fa-thick-arrow:before { + content: "\EA08" +} + +.fa-tick:before { + content: "\E9A4" +} + +.fa-cross:before { + content: "\E951" +} + +.fa-cross-circle:before { + content: "\E9D2" +} + +.fa-cross-circle-filled:before { + content: "\E9D1" +} + +.fa-alert:before { + content: "\E9ED" +} + +.fa-alert-filled:before { + content: "\E9EC" +} + +.fa-info:before { + content: "\E9EF" +} + +.fa-info-filled:before { + content: "\E9EE" +} + +.fa-bookmark:before { + content: "\E951" +} + +.fa-bookmark-filled:before { + content: "\E950" +} + +.fa-clockface:before { + content: "\E9AB" +} + +.fa-clockface-filled:before { + content: "\E9AA" +} + +.fa-twitter:before { + content: "\EAE5" +} + +.fa-cog:before { + content: "\EA9E" +} + +.fa-cog-solid:before { + content: "\EA11" +} + +.fa-foursquare:before { + content: "\EA0B" +} + + + + + + + + + + +/*full list*/ + +.fa-binoculars-solid:before { + content: "\E900" +} + +.fa-binoculars:before { + content: "\E901" +} + +.fa-check-circle-solid:before { + content: "\E902" +} + +.fa-check-circle:before { + content: "\E903" +} + diff --git a/OLD_pb_public/build/fonts/fujicons.ttf b/OLD_pb_public/build/fonts/fujicons.ttf new file mode 100755 index 0000000..a323b19 Binary files /dev/null and b/OLD_pb_public/build/fonts/fujicons.ttf differ diff --git a/OLD_pb_public/build/fonts/fujicons.woff b/OLD_pb_public/build/fonts/fujicons.woff new file mode 100644 index 0000000..c41206c Binary files /dev/null and b/OLD_pb_public/build/fonts/fujicons.woff differ diff --git a/pb_public/build/fonts/fujicons.woff2 b/OLD_pb_public/build/fonts/fujicons.woff2 similarity index 100% rename from pb_public/build/fonts/fujicons.woff2 rename to OLD_pb_public/build/fonts/fujicons.woff2 diff --git a/OLD_pb_public/build/fonts/gotham.css b/OLD_pb_public/build/fonts/gotham.css new file mode 100644 index 0000000..ce9f10b --- /dev/null +++ b/OLD_pb_public/build/fonts/gotham.css @@ -0,0 +1,39 @@ +@font-face { + font-family: 'Gotham'; + font-style: normal; + font-weight: 400; + src: url(GothamSSm-Book.otf) format('opentype'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Gotham Light'; + font-style: normal; + font-weight: 400; + src: url(GothamSSm-Light.otf) format('opentype'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Gotham Medium'; + font-style: normal; + font-weight: 400; + src: url(GothamSSm-Medium.otf) format('opentype'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Gotham Bold'; + font-style: normal; + font-weight: 400; + src: url(GothamSSm-Bold.otf) format('opentype'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Gotham Black'; + font-style: normal; + font-weight: 400; + src: url(GothamSSm-Black.otf) format('opentype'); + unicode-range: U+0-10FFFF; +} diff --git a/pb_public/build/tmp/build-errors.log b/OLD_pb_public/build/tmp/build-errors.log similarity index 100% rename from pb_public/build/tmp/build-errors.log rename to OLD_pb_public/build/tmp/build-errors.log diff --git a/OLD_pb_public/favicon.png b/OLD_pb_public/favicon.png new file mode 100644 index 0000000..669014f Binary files /dev/null and b/OLD_pb_public/favicon.png differ diff --git a/OLD_pb_public/fonts/GothamSSm-Black.otf b/OLD_pb_public/fonts/GothamSSm-Black.otf new file mode 100755 index 0000000..95aa773 Binary files /dev/null and b/OLD_pb_public/fonts/GothamSSm-Black.otf differ diff --git a/OLD_pb_public/fonts/GothamSSm-Bold.otf b/OLD_pb_public/fonts/GothamSSm-Bold.otf new file mode 100755 index 0000000..3d624a6 Binary files /dev/null and b/OLD_pb_public/fonts/GothamSSm-Bold.otf differ diff --git a/OLD_pb_public/fonts/GothamSSm-Book.otf b/OLD_pb_public/fonts/GothamSSm-Book.otf new file mode 100755 index 0000000..497df6e Binary files /dev/null and b/OLD_pb_public/fonts/GothamSSm-Book.otf differ diff --git a/OLD_pb_public/fonts/GothamSSm-Light.otf b/OLD_pb_public/fonts/GothamSSm-Light.otf new file mode 100755 index 0000000..3430a31 Binary files /dev/null and b/OLD_pb_public/fonts/GothamSSm-Light.otf differ diff --git a/OLD_pb_public/fonts/GothamSSm-Medium.otf b/OLD_pb_public/fonts/GothamSSm-Medium.otf new file mode 100755 index 0000000..8f4e1c2 Binary files /dev/null and b/OLD_pb_public/fonts/GothamSSm-Medium.otf differ diff --git a/OLD_pb_public/fonts/Roboto-normal-400.woff b/OLD_pb_public/fonts/Roboto-normal-400.woff new file mode 100644 index 0000000..92dfacc Binary files /dev/null and b/OLD_pb_public/fonts/Roboto-normal-400.woff differ diff --git a/OLD_pb_public/fonts/Roboto_Condensed-normal-400.woff b/OLD_pb_public/fonts/Roboto_Condensed-normal-400.woff new file mode 100644 index 0000000..613f5de Binary files /dev/null and b/OLD_pb_public/fonts/Roboto_Condensed-normal-400.woff differ diff --git a/OLD_pb_public/fonts/Roboto_Mono-normal-400.woff b/OLD_pb_public/fonts/Roboto_Mono-normal-400.woff new file mode 100644 index 0000000..c41382c Binary files /dev/null and b/OLD_pb_public/fonts/Roboto_Mono-normal-400.woff differ diff --git a/OLD_pb_public/fonts/Roboto_Slab-normal-400.woff b/OLD_pb_public/fonts/Roboto_Slab-normal-400.woff new file mode 100644 index 0000000..3374dc1 Binary files /dev/null and b/OLD_pb_public/fonts/Roboto_Slab-normal-400.woff differ diff --git a/OLD_pb_public/fonts/fonts.css b/OLD_pb_public/fonts/fonts.css new file mode 100644 index 0000000..8c53312 --- /dev/null +++ b/OLD_pb_public/fonts/fonts.css @@ -0,0 +1,32 @@ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(Roboto-normal-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Roboto Condensed'; + font-style: normal; + font-weight: 400; + src: url(Roboto_Condensed-normal-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + src: url(Roboto_Mono-normal-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Roboto Slab'; + font-style: normal; + font-weight: 400; + src: url(Roboto_Slab-normal-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + diff --git a/OLD_pb_public/fonts/fujicons.css b/OLD_pb_public/fonts/fujicons.css new file mode 100644 index 0000000..287f484 --- /dev/null +++ b/OLD_pb_public/fonts/fujicons.css @@ -0,0 +1,209 @@ +@font-face { + font-family: 'Fujicons'; + font-style: normal; + font-weight: 400; + src: url(fujicons.ttf) format('truetype'); + unicode-range: U+0-10FFFF; +} + + +.fa { + display: inline-block; + font: normal normal normal 14px/1 Fujicons; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} + + +.fa-back:before { + content: ""; +} + +.fa-forward:before { + content: ""; +} + +.fa-globe:before { + content: "\EA12" +} + +.fa-up:before { + content: "\E925" +} + +.fa-down:before { + content: "\E922" +} + +.fa-work:before { + content: "\E998" +} + +.fa-home:before { + content: "\EA1E" +} + +.fa-refresh:before { + content: "\EA88" +} diff --git a/OLD_pb_public/fonts/fujicons.ttf b/OLD_pb_public/fonts/fujicons.ttf new file mode 100755 index 0000000..a323b19 Binary files /dev/null and b/OLD_pb_public/fonts/fujicons.ttf differ diff --git a/OLD_pb_public/fonts/gotham.css b/OLD_pb_public/fonts/gotham.css new file mode 100644 index 0000000..ce9f10b --- /dev/null +++ b/OLD_pb_public/fonts/gotham.css @@ -0,0 +1,39 @@ +@font-face { + font-family: 'Gotham'; + font-style: normal; + font-weight: 400; + src: url(GothamSSm-Book.otf) format('opentype'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Gotham Light'; + font-style: normal; + font-weight: 400; + src: url(GothamSSm-Light.otf) format('opentype'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Gotham Medium'; + font-style: normal; + font-weight: 400; + src: url(GothamSSm-Medium.otf) format('opentype'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Gotham Bold'; + font-style: normal; + font-weight: 400; + src: url(GothamSSm-Bold.otf) format('opentype'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Gotham Black'; + font-style: normal; + font-weight: 400; + src: url(GothamSSm-Black.otf) format('opentype'); + unicode-range: U+0-10FFFF; +} diff --git a/OLD_pb_public/global.css b/OLD_pb_public/global.css new file mode 100644 index 0000000..e69de29 diff --git a/OLD_pb_public/img/Icon-144.png b/OLD_pb_public/img/Icon-144.png new file mode 100644 index 0000000..45e0459 Binary files /dev/null and b/OLD_pb_public/img/Icon-144.png differ diff --git a/OLD_pb_public/img/Icon-192.png b/OLD_pb_public/img/Icon-192.png new file mode 100644 index 0000000..daf222c Binary files /dev/null and b/OLD_pb_public/img/Icon-192.png differ diff --git a/OLD_pb_public/img/Icon-36.png b/OLD_pb_public/img/Icon-36.png new file mode 100644 index 0000000..b1ad90e Binary files /dev/null and b/OLD_pb_public/img/Icon-36.png differ diff --git a/OLD_pb_public/img/Icon-48.png b/OLD_pb_public/img/Icon-48.png new file mode 100644 index 0000000..15d29c1 Binary files /dev/null and b/OLD_pb_public/img/Icon-48.png differ diff --git a/OLD_pb_public/img/Icon-512.png b/OLD_pb_public/img/Icon-512.png new file mode 100644 index 0000000..fa3720b Binary files /dev/null and b/OLD_pb_public/img/Icon-512.png differ diff --git a/OLD_pb_public/img/Icon-72.png b/OLD_pb_public/img/Icon-72.png new file mode 100644 index 0000000..649b07c Binary files /dev/null and b/OLD_pb_public/img/Icon-72.png differ diff --git a/OLD_pb_public/img/Icon-96.png b/OLD_pb_public/img/Icon-96.png new file mode 100644 index 0000000..eace2dd Binary files /dev/null and b/OLD_pb_public/img/Icon-96.png differ diff --git a/OLD_pb_public/img/android-chrome-192x192.png b/OLD_pb_public/img/android-chrome-192x192.png new file mode 100644 index 0000000..3aa557d Binary files /dev/null and b/OLD_pb_public/img/android-chrome-192x192.png differ diff --git a/OLD_pb_public/img/apple-touch-icon.png b/OLD_pb_public/img/apple-touch-icon.png new file mode 100644 index 0000000..8387a2e Binary files /dev/null and b/OLD_pb_public/img/apple-touch-icon.png differ diff --git a/OLD_pb_public/img/favicon-16x16.png b/OLD_pb_public/img/favicon-16x16.png new file mode 100644 index 0000000..0e695c5 Binary files /dev/null and b/OLD_pb_public/img/favicon-16x16.png differ diff --git a/OLD_pb_public/img/favicon-32x32.png b/OLD_pb_public/img/favicon-32x32.png new file mode 100644 index 0000000..b4bc5c5 Binary files /dev/null and b/OLD_pb_public/img/favicon-32x32.png differ diff --git a/OLD_pb_public/img/favicon.ico b/OLD_pb_public/img/favicon.ico new file mode 100644 index 0000000..aa96bef Binary files /dev/null and b/OLD_pb_public/img/favicon.ico differ diff --git a/OLD_pb_public/img/mstile-150x150.png b/OLD_pb_public/img/mstile-150x150.png new file mode 100644 index 0000000..f580457 Binary files /dev/null and b/OLD_pb_public/img/mstile-150x150.png differ diff --git a/OLD_pb_public/img/photothumb.db b/OLD_pb_public/img/photothumb.db new file mode 100644 index 0000000..fa58b80 Binary files /dev/null and b/OLD_pb_public/img/photothumb.db differ diff --git a/OLD_pb_public/img/safari-pinned-tab.svg b/OLD_pb_public/img/safari-pinned-tab.svg new file mode 100644 index 0000000..bd9b59f --- /dev/null +++ b/OLD_pb_public/img/safari-pinned-tab.svg @@ -0,0 +1,33 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + + + + + diff --git a/OLD_pb_public/index.html b/OLD_pb_public/index.html new file mode 100644 index 0000000..d0c9f03 --- /dev/null +++ b/OLD_pb_public/index.html @@ -0,0 +1,30 @@ + + + + + + + Traintimes + + + + + + + + + + + + + + + + + + + + + + diff --git a/OLD_pb_public/manifest.json b/OLD_pb_public/manifest.json new file mode 100644 index 0000000..30f8da3 --- /dev/null +++ b/OLD_pb_public/manifest.json @@ -0,0 +1,46 @@ +{ + "name": "Train Times", + "short_name": "Train Times", + "icons": [ + { + "src": "/img/Icon-36.png", + "sizes": "36x36", + "type": "image/png" + }, + { + "src": "/img/Icon-48.png", + "sizes": "48x48", + "type": "image/png" + }, + { + "src": "/img/Icon-72.png", + "sizes": "72x72", + "type": "image/png" + }, + { + "src": "/img/Icon-96.png", + "sizes": "96x96", + "type": "image/png" + }, + { + "src": "/img/Icon-144.png", + "sizes": "144x144", + "type": "image/png" + }, + { + "src": "/img/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/img/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "start_url": ".", + "imgdisplay": "standalone", + "display": "standalone" +} diff --git a/OLD_pb_public/public/browserconfig.xml b/OLD_pb_public/public/browserconfig.xml new file mode 100755 index 0000000..9e68e5d --- /dev/null +++ b/OLD_pb_public/public/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #2b5797 + + + diff --git a/OLD_pb_public/public/build/bundle.css b/OLD_pb_public/public/build/bundle.css new file mode 100644 index 0000000..b4f12ae --- /dev/null +++ b/OLD_pb_public/public/build/bundle.css @@ -0,0 +1,11 @@ +@import url("https://fonts.googleapis.com/css?family=Roboto+Condensed");@import url(./fonts/fujicons.css);*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}body{height:100%;overflow-x:hidden;font-family:'Roboto Condensed', sans-serif;font-size:1rem;line-height:1.6}a{color:#5e81ac;text-decoration:none}a:hover{color:#666}a.active{color:#b48ead}ul{list-style:none}img{width:100%}.container{max-width:1100px;margin:auto;overflow-y:scroll;padding:0 2rem}hr{margin-top:2.2rem;margin-bottom:2rem;border-width:0;border-top:1px solid #2e3440}.flex{display:flex}.pad{padding:0.5rem}.pad--1{padding:1rem}.pad--2{padding:2rem}.pad--3{padding:3rem}.pady{padding:0.5rem 0}.pady--top{padding-top:0.5rem}.pady--bottom{padding-bottom:0.5rem}.pady--1{padding:1rem 0}.pady--2{padding:2rem 0}.pady--3{padding:3rem 0}.padx{padding:0 0.5rem}.padx--right{padding-right:0.5rem}.padx--left{padding-left:0.5rem}.padx--1{padding:0 1rem}.padx--2{padding:0 2rem}.padx--3{padding:0 3rem}.grid{display:flex;display:-ms-flexbox;flex-wrap:wrap}.grid--1{display:grid;grid-template-columns:repeat(1, 1fr);grid-gap:1rem}.grid--2{display:grid;grid-template-columns:repeat(2, 1fr);grid-gap:1rem}.grid--3{display:grid;grid-template-columns:repeat(3, 1fr);grid-gap:1px}.grid--4{display:grid;grid-template-columns:repeat(4, 1fr);grid-gap:1rem}.row{margin-left:3px;margin-right:3px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.col-1{width:8.33333%}.col-2{width:16.66667%}.col-3{width:25%}.col-4{width:33.33333%}.col-5{width:41.66667%}.col-6{width:50%}.col-7{width:58.33333%}.col-8{width:66.66667%}.col-9{width:75%}.col-10{width:83.33333%}.col-11{width:91.66667%}.col-12{width:100%;margin-left:0}.col-1-3rd{width:32.666667%}.col-2-3rd{width:65.3333333333%}.col-half{width:48%}.offset-1-col{margin-left:8.66666666667%}.offset-2-col{margin-left:17.3333333333%}.offset-3-col{margin-left:26%}.offset-4-col{margin-left:34.6666666667%}.offset-5-col{margin-left:43.3333333333%}.offset-6-col{margin-left:52%}.offset-7-col{margin-left:60.6666666667%}.offset-8-col{margin-left:69.3333333333%}.offset-9-col{margin-left:78.0%}.offset-10-col{margin-left:86.6666666667%}.offset-11-col{margin-left:95.3333333333%}.offset-1-3rd-col{margin-left:34.6666666667%}.offset-2-3rd-col{margin-left:69.3333333333%}.offset-half-col{margin-left:52%}.x-large{font-size:4rem;line-height:1.2;margin-bottom:1rem}.large{font-size:3rem;line-height:1.2;margin-bottom:1rem}.lead{font-size:1.5rem;margin-bottom:1rem}.text-primary{color:#5e81ac}.text-dark{color:#2e3440}.text-light{color:#2e3440}.text-success{color:#a3be8c}.text-danger{color:#bf616a}.text-highlight{color:#b48ead}.text-highlight2{color:#ebcb8b}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-display1,h1{font-weight:400;font-size:34px;line-height:40px}.text-title,h3{font-weight:400;font-size:20px;line-height:28px}.text-subhead,h4{font-weight:400;font-size:16px;line-height:24px}.text-body2,h5{font-weight:500;font-size:14px;line-height:24px}.text-body1{font-weight:400;font-size:14px;line-height:20px}.text-caption{font-weight:400;font-size:12px;line-height:16px}.align-middle{vertical-align:middle !important}.all-center{display:flex;flex-direction:column;width:100%;margin:auto;justify-content:center;align-items:center;text-align:center}.text-justify{text-align:justify !important}.text-nowrap{white-space:nowrap !important}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-bottom{vertical-align:bottom !important}.btn,.btn--slim{display:inline-block;background:#e5e9f0;color:#333;padding:0.4rem 1.3rem;font-size:1rem;border:none;cursor:pointer;margin-right:0.5rem;transition:opacity 0.2s ease-in;outline:none}.btn:disabled,.btn--slim:disabled{cursor:not-allowed;pointer-events:none;opacity:0.60;box-shadow:none}.btn:enabled:hover,.btn--slim:enabled:hover{opacity:0.8}.btn--slim{padding:0.4rem}.btn-link{background:none;padding:0;margin:0}.btn-block{display:block;width:100%}.btn-sm,.btn-sm--slim{font-size:0.8rem;padding:0.3rem 1rem;margin-right:0.2rem}.btn-sm--slim{padding:0.3rem}.badge{display:inline-block;font-size:0.6rem;padding:0.1rem 0.4rem;text-align:center;margin:0.3rem;background:#e5e9f0;color:#333;border-radius:3px}.alert{padding:0.7rem;margin:1rem 0;opacity:0.9;background:#e5e9f0;color:#333}.btn-primary,.bg-primary,.badge-primary,.alert-primary{background:#5e81ac;color:#fff}.btn-light,.bg-light,.badge-light,.alert-light{background:#e5e9f0;color:#333}.btn-dark,.bg-dark,.badge-dark,.alert-dark{background:#2e3440;color:#fff}.btn-danger,.bg-danger,.badge-danger,.alert-danger{background:#bf616a;color:#fff}.btn-success,.bg-success,.badge-success,.alert-success{background:#a3be8c;color:#fff}.btn-white,.bg-white,.badge-white,.alert-white{background:#fff;color:#333;border:#ccc solid 1px}.bg-light,.badge-light{border:#ccc solid 1px}.table-responsive{display:block;overflow-x:auto;width:100%}table{max-width:100%;width:100%;border:0;margin-bottom:1rem;border-collapse:collapse}tr{border-top:1px solid #ccc}tbody tr:nth-of-type(odd){background-color:rgba(0, 0, 0, 0.04)}tbody td{border-top:1px solid #e1e1e1}.navbar{position:fixed;display:flex;justify-content:space-between;align-items:center;z-index:2;width:100%;opacity:0.9;margin-bottom:1rem;min-height:56px}.navbar ul{display:flex}.navbar a{color:#fff;padding:0.45rem;margin:0 0.25rem}.navbar a:hover{color:#e5e9f0}.navbar .welcome span{margin-right:0.6rem}.navbar .navbar-section{align-items:center;display:flex;display:-ms-flexbox;flex:1 0 0;-ms-flex-align:center}.navbar .navbar-section:not(:first-child):last-child{justify-content:flex-end}.navbar .navbar-brand{font-size:200%;font-weight:bold}header+div.container{position:relative;top:56px;overflow:auto;height:calc(100vh - 56px);max-height:calc(100vh - 56px)}.m{margin:0.5rem}.m--1{margin:1rem}.m--2{margin:2rem}.m--3{margin:3rem}.mb{margin-bottom:.1rem !important}.mb--1{margin-bottom:.2rem !important}.mb--2{margin-bottom:.4rem !important}.ml{margin-left:.1rem !important}.ml--1{margin-left:.2rem !important}.ml--2{margin-left:.4rem !important}.mr{margin-right:.1rem !important}.mr--1{margin-right:.2rem !important}.mr .mr-2{margin-right:.4rem !important}.mt{margin-top:.1rem !important}.mt--1{margin-top:.2rem !important}.mt--2{margin-top:.4rem !important}.mx{margin-left:0.5rem !important;margin-right:0.5rem !important}.mx--1{margin-left:1rem !important;margin-right:1rem !important}.mx--2{margin-left:2rem !important;margin-right:2rem !important}.my{margin:0.5rem 0}.my--1{margin:1rem 0}.my--2{margin:2rem 0}.my--3{margin:3rem 0}.card,.card--slim{padding:1rem;border:#ccc 1px dotted;margin:0.7rem 0}.card--slim{padding:5px}.cardTitle{border-bottom-color:#eee;border-bottom-width:1px;border-bottom-style:solid;margin-bottom:15px}.cardV2{border-radius:4px;background-color:#fff;box-shadow:0 0 4px 0 rgba(0, 0, 0, 0.14), 0 3px 4px 0 rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);min-width:0}.seemore{font-size:14px;font-weight:500}.cardLink{color:#2196F3;margin-top:10px}@media(max-width: 480px){.container{max-width:98vw;padding:0 0;overflow-y:scroll}}@media(max-height: 480px){.navbar{min-height:36px}header+div.container{position:relative;top:36px;max-height:calc(100vh - 36px)}.navbar .navbar-brand{font-size:125%;font-weight:bold}}@media(min-height: 900px){body{font-size:x-large}}.nrccAlert a{color:#00ffa2}.betterInput{background-color:deeppink;padding-bottom:6px !important;padding-top:6px !important}.up,.ontime,.trendUp{color:#4CAF50 !important}.down,.delayed,.trendDown{color:#F44336 !important} +.mui-dropdown.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{display:inline-block;position:relative}.mui-dropdown__menu.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{box-shadow:0 1px 3px rgba(21, 21, 21, 0.12), 0 1px 2px rgba(21, 21, 21, 0.24);position:absolute;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:1rem;text-align:left;background-color:#fff;border-radius:0.1;z-index:100;background-clip:padding-box}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.mui-dropdown__menu.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{border-top:1px solid rgba(21, 21, 21, 0.12);border-left:1px solid rgba(21, 21, 21, 0.12)}}@supports (-ms-ime-align: auto){.mui-dropdown__menu.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{border-top:1px solid rgba(21, 21, 21, 0.12);border-left:1px solid rgba(21, 21, 21, 0.12)}}.mui-dropdown__menu.mui--is-open.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{display:block}.mui-dropdown__menu.svelte-1up86vp>li.svelte-1up86vp>a.svelte-1up86vp{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.6;color:#294c5d;text-decoration:none;white-space:nowrap}.mui-dropdown__menu.svelte-1up86vp>li.svelte-1up86vp>a.svelte-1up86vp:hover,.mui-dropdown__menu.svelte-1up86vp>li.svelte-1up86vp>a.svelte-1up86vp:focus{text-decoration:none;color:#294c5d;background-color:#dcc894}.mui-dropdown--right.svelte-1up86vp.svelte-1up86vp>.mui-dropdown__menu.svelte-1up86vp.svelte-1up86vp{margin:0 0 0 2px}input.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{background-color:deeppink;padding-bottom:6px !important;padding-top:6px !important} +.TRcard.svelte-10t8pfm.svelte-10t8pfm{display:flex;justify-content:space-between;align-items:center;padding:0.7rem 0rem;z-index:1;width:98%;opacity:0.9;margin-bottom:0.4rem;border-bottom-color:#666666;box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), + 0 1px 5px 0 rgba(0, 0, 0, 0.12)}.TRcard.svelte-10t8pfm .entry.svelte-10t8pfm{align-items:left;display:flex;display:-ms-flexbox;-ms-flex-align:center;flex-direction:column}.TRcard.svelte-10t8pfm .entry.svelte-10t8pfm:not(:first-child):last-child{justify-content:flex-end;align-items:right}.entryOld.svelte-10t8pfm.svelte-10t8pfm{height:36px;margin:6px 0;vertical-align:middle}.TRcardOld.svelte-10t8pfm.svelte-10t8pfm{position:relative;background-color:#fff;min-height:48px;margin:0.5rem 8px;border-bottom-color:#666666;box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), + 0 1px 5px 0 rgba(0, 0, 0, 0.12);vertical-align:middle;padding:0.5rem 0;border-radius:0.1rem} +.avatar.svelte-1y2z4hv{max-width:48px;max-height:48px;-o-object-fit:scale-down;object-fit:scale-down;border-radius:0.1rem} +label.svelte-1wws4hx{font-weight:normal} +.svelte-apetsu{background:#f55a4e;padding:3px} +.svelte-apetsu{background:#f55a4e;padding:3px} + +/*# sourceMappingURL=bundle.css.map */ \ No newline at end of file diff --git a/OLD_pb_public/public/build/bundle.css.map b/OLD_pb_public/public/build/bundle.css.map new file mode 100644 index 0000000..e4e6beb --- /dev/null +++ b/OLD_pb_public/public/build/bundle.css.map @@ -0,0 +1,24 @@ +{ + "version": 3, + "file": "bundle.css", + "sources": [ + "../../App.svelte", + "../../SettingsInput.svelte", + "../../TrainRoute.svelte", + "../../Twitter.svelte", + "../../TwitterSettings.svelte", + "../../Favourites.svelte", + "../../NotFound.svelte" + ], + "sourcesContent": [ + "\n\n\n\n\n\n\n
\n\n", + "\n\n\n\n\n \n \n {#if searchResults.length > 0}\n \n {/if}\n\n", + "\n\n\n\n
\n
\n
{startStationName}
\n
{destStationName}
\n
\n
\n {displayTime}\n
\n
\n", + "\n\n\n\n{#if tweet}\n
\n\n
\n
\n \"@{tweet.user.screen_name}\"/\n
\n
{tweet.user.name}
\n
@{tweet.user.screen_name}
\n
\n
\n
\n {#if inReply}\n
\n Replying to @{tweet.in_reply_to_screen_name}\n
\n {/if}\n
\n {tweetBody}\n
\n
\n {tweet.created_at}\n
\n\n
\n{/if}\n", + "\n\n\n\n
\n
Twitter
\n {#if mounted}\n\n
\n {#each tweeters as item }\n
\n \n
\n\n {/each}\n
\n {/if}\n\n
\n", + "\n\n\n\n
\n

Favourites

\n\n
\n
a
\n
b
\n
c
\n
d
\n
\n\n
\n\n\n\n", + "\n\n\n\n

NotFound

\n\n

Oops, this route doesn't exist!

\n" + ], + "names": [], + "mappings": "AA+B0B,QAAQ,IAAI,0DAA0D,CAAC,CAAC,AAClG,QAAQ,IAAI,oBAAoB,CAAC,CAAC,AAC1B,CAAC,AAAC,CACF,SAAS,AAAC,CACV,QAAQ,AAAE,CAAC,AACjB,UAAU,CAAE,UAAU,CACtB,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,CAAC,AAAE,CAAC,AAEP,IAAI,AAAE,CAAC,AACb,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,kBAAkB,CAAC,CAAC,UAAU,CAC3C,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,GAAG,AAAE,CAAC,AAEb,CAAC,AAAE,CAAC,AACV,KAAK,CAAE,OAAO,CACd,eAAe,CAAE,IAAI,AAAE,CAAC,AAElB,OAAO,AAAE,CAAC,AAChB,KAAK,CAAE,IAAI,AAAE,CAAC,AAER,QAAQ,AAAE,CAAC,AACjB,KAAK,CAAE,OAAO,AAAE,CAAC,AAEX,EAAE,AAAE,CAAC,AACX,UAAU,CAAE,IAAI,AAAE,CAAC,AAEb,GAAG,AAAE,CAAC,AACZ,KAAK,CAAE,IAAI,AAAE,CAAC,AAER,UAAU,AAAE,CAAC,AACnB,SAAS,CAAE,MAAM,CACjB,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,MAAM,CAClB,OAAO,CAAE,CAAC,CAAC,IAAI,AAAE,CAAC,AAEZ,EAAE,AAAE,CAAC,AACX,UAAU,CAAE,MAAM,CAClB,aAAa,CAAE,IAAI,CACnB,YAAY,CAAE,CAAC,CACf,UAAU,CAAE,GAAG,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAE1B,KAAK,AAAE,CAAC,AACd,OAAO,CAAE,IAAI,AAAE,CAAC,AAGV,IAAI,AAAE,CAAC,AACb,OAAO,CAAE,MAAM,AAAE,CAAC,AACV,OAAO,AAAE,CAAC,AAChB,OAAO,CAAE,IAAI,AAAE,CAAC,AACV,OAAO,AAAE,CAAC,AAChB,OAAO,CAAE,IAAI,AAAE,CAAC,AACV,OAAO,AAAE,CAAC,AAChB,OAAO,CAAE,IAAI,AAAE,CAAC,AAEZ,KAAK,AAAE,CAAC,AACd,OAAO,CAAE,MAAM,CAAC,CAAC,AAAE,CAAC,AACZ,UAAU,AAAE,CAAC,AACnB,WAAW,CAAE,MAAM,AAAE,CAAC,AAChB,aAAa,AAAE,CAAC,AACtB,cAAc,CAAE,MAAM,AAAE,CAAC,AACnB,QAAQ,AAAE,CAAC,AACjB,OAAO,CAAE,IAAI,CAAC,CAAC,AAAE,CAAC,AACZ,QAAQ,AAAE,CAAC,AACjB,OAAO,CAAE,IAAI,CAAC,CAAC,AAAE,CAAC,AACZ,QAAQ,AAAE,CAAC,AACjB,OAAO,CAAE,IAAI,CAAC,CAAC,AAAE,CAAC,AAEd,KAAK,AAAE,CAAC,AACd,OAAO,CAAE,CAAC,CAAC,MAAM,AAAE,CAAC,AACZ,YAAY,AAAE,CAAC,AACrB,aAAa,CAAE,MAAM,AAAE,CAAC,AAClB,WAAW,AAAE,CAAC,AACpB,YAAY,CAAE,MAAM,AAAE,CAAC,AACjB,QAAQ,AAAE,CAAC,AACjB,OAAO,CAAE,CAAC,CAAC,IAAI,AAAE,CAAC,AACZ,QAAQ,AAAE,CAAC,AACjB,OAAO,CAAE,CAAC,CAAC,IAAI,AAAE,CAAC,AACZ,QAAQ,AAAE,CAAC,AACjB,OAAO,CAAE,CAAC,CAAC,IAAI,AAAE,CAAC,AAGd,KAAK,AAAE,CAAC,AACd,OAAO,CAAE,IAAI,CACb,OAAO,CAAE,WAAW,CACpB,SAAS,CAAE,IAAI,AAES,CAAC,AACjB,QAAQ,AAAE,CAAC,AACjB,OAAO,CAAE,IAAI,CACb,qBAAqB,CAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CACrC,QAAQ,CAAE,IAAI,AAAE,CAAC,AACX,QAAQ,AAAE,CAAC,AACjB,OAAO,CAAE,IAAI,CACb,qBAAqB,CAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CACrC,QAAQ,CAAE,IAAI,AAAE,CAAC,AACX,QAAQ,AAAE,CAAC,AACjB,OAAO,CAAE,IAAI,CACb,qBAAqB,CAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CACrC,QAAQ,CAAE,GAAG,AAAE,CAAC,AACV,QAAQ,AAAE,CAAC,AACjB,OAAO,CAAE,IAAI,CACb,qBAAqB,CAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CACrC,QAAQ,CAAE,IAAI,AAAE,CAAC,AAEb,IAAI,AAAE,CAAC,AACb,WAAW,CAAE,GAAG,CAChB,YAAY,CAAE,GAAG,AAAE,CAAC,AACZ,WAAW,AAAC,CAAU,UAAU,AAAE,CAAC,AACzC,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,AAAE,CAAC,AACX,UAAU,AAAE,CAAC,AACnB,KAAK,CAAE,IAAI,AAAE,CAAC,AASV,OAAO,AAAC,CACR,QAAQ,AAAE,CAAC,AACjB,WAAW,CAAE,EAAE,AAAE,CAAC,AAEZ,mBAAmB,AAAC,CACpB,oBAAoB,AAAE,CAAC,AAC7B,WAAW,CAAE,CAAC,AAAE,CAAC,AAEX,MAAM,AAAE,CAAC,AACf,KAAK,CAAE,QAAQ,AAAE,CAAC,AAEZ,MAAM,AAAE,CAAC,AACf,KAAK,CAAE,SAAS,AAAE,CAAC,AAEb,MAAM,AAAE,CAAC,AACf,KAAK,CAAE,GAAG,AAAE,CAAC,AAEP,MAAM,AAAE,CAAC,AACf,KAAK,CAAE,SAAS,AAAE,CAAC,AAEb,MAAM,AAAE,CAAC,AACf,KAAK,CAAE,SAAS,AAAE,CAAC,AAEb,MAAM,AAAE,CAAC,AACf,KAAK,CAAE,GAAG,AAAE,CAAC,AAEP,MAAM,AAAE,CAAC,AACf,KAAK,CAAE,SAAS,AAAE,CAAC,AAEb,MAAM,AAAE,CAAC,AACf,KAAK,CAAE,SAAS,AAAE,CAAC,AAEb,MAAM,AAAE,CAAC,AACf,KAAK,CAAE,GAAG,AAAE,CAAC,AAEP,OAAO,AAAE,CAAC,AAChB,KAAK,CAAE,SAAS,AAAE,CAAC,AAEb,OAAO,AAAE,CAAC,AAChB,KAAK,CAAE,SAAS,AAAE,CAAC,AAEb,OAAO,AAAE,CAAC,AAChB,KAAK,CAAE,IAAI,CACX,WAAW,CAAE,CAAC,AAAE,CAAC,AAEX,UAAU,AAAE,CAAC,AACnB,KAAK,CAAE,UAAU,AAAE,CAAC,AAEd,UAAU,AAAE,CAAC,AACnB,KAAK,CAAE,cAAc,AAAE,CAAC,AAElB,SAAS,AAAE,CAAC,AAClB,KAAK,CAAE,GAAG,AAAE,CAAC,AAGP,aAAa,AAAE,CAAC,AACtB,WAAW,CAAE,cAAc,AAAE,CAAC,AAExB,aAAa,AAAE,CAAC,AACtB,WAAW,CAAE,cAAc,AAAE,CAAC,AAExB,aAAa,AAAE,CAAC,AACtB,WAAW,CAAE,GAAG,AAAE,CAAC,AAEb,aAAa,AAAE,CAAC,AACtB,WAAW,CAAE,cAAc,AAAE,CAAC,AAExB,aAAa,AAAE,CAAC,AACtB,WAAW,CAAE,cAAc,AAAE,CAAC,AAExB,aAAa,AAAE,CAAC,AACtB,WAAW,CAAE,GAAG,AAAE,CAAC,AAEb,aAAa,AAAE,CAAC,AACtB,WAAW,CAAE,cAAc,AAAE,CAAC,AAExB,aAAa,AAAE,CAAC,AACtB,WAAW,CAAE,cAAc,AAAE,CAAC,AAExB,aAAa,AAAE,CAAC,AACtB,WAAW,CAAE,KAAK,AAAE,CAAC,AAEf,cAAc,AAAE,CAAC,AACvB,WAAW,CAAE,cAAc,AAAE,CAAC,AAExB,cAAc,AAAE,CAAC,AACvB,WAAW,CAAE,cAAc,AAAE,CAAC,AAExB,iBAAiB,AAAE,CAAC,AAC1B,WAAW,CAAE,cAAc,AAAE,CAAC,AAExB,iBAAiB,AAAE,CAAC,AAC1B,WAAW,CAAE,cAAc,AAAE,CAAC,AAExB,gBAAgB,AAAE,CAAC,AACzB,WAAW,CAAE,GAAG,AAAE,CAAC,AAEb,QAAQ,AAAE,CAAC,AACjB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,GAAG,CAChB,aAAa,CAAE,IAAI,AAAE,CAAC,AAEhB,MAAM,AAAE,CAAC,AACf,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,GAAG,CAChB,aAAa,CAAE,IAAI,AAAE,CAAC,AAEhB,KAAK,AAAE,CAAC,AACd,SAAS,CAAE,MAAM,CACjB,aAAa,CAAE,IAAI,AAAE,CAAC,AAEhB,aAAa,AAAE,CAAC,AACtB,KAAK,CAAE,OAAO,AAAE,CAAC,AAEX,UAAU,AAAE,CAAC,AACnB,KAAK,CAAE,OAAO,AAAE,CAAC,AAEX,WAAW,AAAE,CAAC,AACpB,KAAK,CAAE,OAAO,AAAE,CAAC,AAEX,aAAa,AAAE,CAAC,AACtB,KAAK,CAAE,OAAO,AAAE,CAAC,AAEX,YAAY,AAAE,CAAC,AACrB,KAAK,CAAE,OAAO,AAAE,CAAC,AAEX,eAAe,AAAE,CAAC,AACxB,KAAK,CAAE,OAAO,AAAE,CAAC,AAEX,gBAAgB,AAAE,CAAC,AACzB,KAAK,CAAE,OAAO,AAAE,CAAC,AAEX,YAAY,AAAE,CAAC,AACrB,UAAU,CAAE,MAAM,AAAE,CAAC,AAEf,WAAW,AAAE,CAAC,AACpB,UAAU,CAAE,KAAK,AAAE,CAAC,AAEd,UAAU,AAAE,CAAC,AACnB,UAAU,CAAE,IAAI,AAAE,CAAC,AAEb,eAAe,AAAE,CAAC,AACxB,cAAc,CAAE,SAAS,AAAE,CAAC,AAEtB,eAAe,AAAE,CAAC,AACxB,cAAc,CAAE,SAAS,AAAE,CAAC,AAEtB,gBAAgB,AAAE,CAAC,AACzB,cAAc,CAAE,UAAU,AAAE,CAAC,AAEvB,cAAc,AAAC,CAAU,EAAE,AAAE,CAAC,AACpC,WAAW,CAAE,GAAG,CAChB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,AAAE,CAAC,AAEd,WAAW,AAAC,CAAU,EAAE,AAAE,CAAC,AACjC,WAAW,CAAE,GAAG,CAChB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,AAAE,CAAC,AAEd,aAAa,AAAC,CAAU,EAAE,AAAE,CAAC,AACnC,WAAW,CAAE,GAAG,CAChB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,AAAE,CAAC,AAEd,WAAW,AAAC,CAAU,EAAE,AAAE,CAAC,AACjC,WAAW,CAAE,GAAG,CAChB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,AAAE,CAAC,AAEd,WAAW,AAAE,CAAC,AACpB,WAAW,CAAE,GAAG,CAChB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,AAAE,CAAC,AAEd,aAAa,AAAE,CAAC,AACtB,WAAW,CAAE,GAAG,CAChB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,AAAE,CAAC,AAEd,aAAa,AAAE,CAAC,AACtB,cAAc,CAAE,MAAM,CAAC,UAAU,AAAE,CAAC,AAG9B,WAAW,AAAE,CAAC,AACpB,OAAO,CAAE,IAAI,CACb,cAAc,CAAE,MAAM,CACtB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,eAAe,CAAE,MAAM,CACvB,WAAW,CAAE,MAAM,CACnB,UAAU,CAAE,MAAM,AAAE,CAAC,AAEf,aAAa,AAAE,CAAC,AACtB,UAAU,CAAE,OAAO,CAAC,UAAU,AAAE,CAAC,AAE3B,YAAY,AAAE,CAAC,AACrB,WAAW,CAAE,MAAM,CAAC,UAAU,AAAE,CAAC,AAE3B,eAAe,AAAE,CAAC,AACxB,cAAc,CAAE,QAAQ,CAAC,UAAU,AAAE,CAAC,AAEhC,UAAU,AAAE,CAAC,AACnB,cAAc,CAAE,GAAG,CAAC,UAAU,AAAE,CAAC,AAE3B,aAAa,AAAE,CAAC,AACtB,cAAc,CAAE,MAAM,CAAC,UAAU,AAAE,CAAC,AAE9B,IAAI,AAAC,CAAU,UAAU,AAAE,CAAC,AAClC,OAAO,CAAE,YAAY,CACrB,UAAU,CAAE,OAAO,CACnB,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,MAAM,CAAC,MAAM,CACtB,SAAS,CAAE,IAAI,CACf,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,OAAO,CACf,YAAY,CAAE,MAAM,CACpB,UAAU,CAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAChC,OAAO,CAAE,IAAI,AAAE,CAAC,AACR,aAAa,AAAC,CAAU,mBAAmB,AAAE,CAAC,AACpD,MAAM,CAAE,WAAW,CACnB,cAAc,CAAE,IAAI,CACpB,OAAO,CAAE,IAAI,CACb,UAAU,CAAE,IAAI,AAAE,CAAC,AACb,kBAAkB,AAAC,CAAU,wBAAwB,AAAE,CAAC,AAC9D,OAAO,CAAE,GAAG,AAAE,CAAC,AACT,UAAU,AAAE,CAAC,AACnB,OAAO,CAAE,MAAM,AAAE,CAAC,AAEd,SAAS,AAAE,CAAC,AAClB,UAAU,CAAE,IAAI,CAChB,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,CAAC,AAAE,CAAC,AAEN,UAAU,AAAE,CAAC,AACnB,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,AAAE,CAAC,AAER,OAAO,AAAC,CAAU,aAAa,AAAE,CAAC,AACxC,SAAS,CAAE,MAAM,CACjB,OAAO,CAAE,MAAM,CAAC,IAAI,CACpB,YAAY,CAAE,MAAM,AAAE,CAAC,AACf,aAAa,AAAE,CAAC,AACtB,OAAO,CAAE,MAAM,AAAE,CAAC,AAEd,MAAM,AAAE,CAAC,AACf,OAAO,CAAE,YAAY,CACrB,SAAS,CAAE,MAAM,CACjB,OAAO,CAAE,MAAM,CAAC,MAAM,CACtB,UAAU,CAAE,MAAM,CAClB,MAAM,CAAE,MAAM,CACd,UAAU,CAAE,OAAO,CACnB,KAAK,CAAE,IAAI,CACX,aAAa,CAAE,GAAG,AAAE,CAAC,AAEf,MAAM,AAAE,CAAC,AACf,OAAO,CAAE,MAAM,CACf,MAAM,CAAE,IAAI,CAAC,CAAC,CACd,OAAO,CAAE,GAAG,CACZ,UAAU,CAAE,OAAO,CACnB,KAAK,CAAE,IAAI,AAAE,CAAC,AAER,YAAY,AAAC,CACb,WAAW,AAAC,CACZ,cAAc,AAAC,CACf,cAAc,AAAE,CAAC,AACvB,UAAU,CAAE,OAAO,CACnB,KAAK,CAAE,IAAI,AAAE,CAAC,AAER,UAAU,AAAC,CACX,SAAS,AAAC,CACV,YAAY,AAAC,CACb,YAAY,AAAE,CAAC,AACrB,UAAU,CAAE,OAAO,CACnB,KAAK,CAAE,IAAI,AAAE,CAAC,AAER,SAAS,AAAC,CACV,QAAQ,AAAC,CACT,WAAW,AAAC,CACZ,WAAW,AAAE,CAAC,AACpB,UAAU,CAAE,OAAO,CACnB,KAAK,CAAE,IAAI,AAAE,CAAC,AAER,WAAW,AAAC,CACZ,UAAU,AAAC,CACX,aAAa,AAAC,CACd,aAAa,AAAE,CAAC,AACtB,UAAU,CAAE,OAAO,CACnB,KAAK,CAAE,IAAI,AAAE,CAAC,AAER,YAAY,AAAC,CACb,WAAW,AAAC,CACZ,cAAc,AAAC,CACf,cAAc,AAAE,CAAC,AACvB,UAAU,CAAE,OAAO,CACnB,KAAK,CAAE,IAAI,AAAE,CAAC,AAER,UAAU,AAAC,CACX,SAAS,AAAC,CACV,YAAY,AAAC,CACb,YAAY,AAAE,CAAC,AACrB,UAAU,CAAE,IAAI,CAChB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,AAAE,CAAC,AAcnB,SAAS,AAAC,CACV,YAAY,AAAE,CAAC,AACrB,MAAM,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,AAAE,CAAC,AAEnB,iBAAiB,AAAE,CAAC,AAC1B,OAAO,CAAE,KAAK,CACd,UAAU,CAAE,IAAI,CAChB,KAAK,CAAE,IAAI,AAAE,CAAC,AAER,KAAK,AAAE,CAAC,AACd,SAAS,CAAE,IAAI,CACf,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,CAAC,CACT,aAAa,CAAE,IAAI,CACnB,eAAe,CAAE,QAAQ,AAAE,CAAC,AAEtB,EAAE,AAAE,CAAC,AACX,UAAU,CAAE,GAAG,CAAC,KAAK,CAAC,IAAI,AAAE,CAAC,AAEvB,KAAK,AAAC,CAAC,AAAQ,mBAAmB,AAAE,CAAC,AAC3C,gBAAgB,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,AAAE,CAAC,AAElC,KAAK,AAAC,CAAC,AAAQ,EAAE,AAAE,CAAC,AAC1B,UAAU,CAAE,GAAG,CAAC,KAAK,CAAC,OAAO,AAAE,CAAC,AAG1B,OAAO,AAAE,CAAC,AAChB,QAAQ,CAAE,KAAK,CACf,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,aAAa,CAC9B,WAAW,CAAE,MAAM,CAEnB,OAAO,CAAE,CAAC,CACV,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,GAAG,CACZ,aAAa,CAAE,IAAI,CACnB,UAAU,CAAE,IAAI,AAAE,CAAC,AAEb,OAAO,AAAC,CAAC,AAAQ,EAAE,AAAE,CAAC,AAC5B,OAAO,CAAE,IAAI,AAAE,CAAC,AAEV,OAAO,AAAC,CAAC,AAAQ,CAAC,AAAE,CAAC,AAC3B,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,OAAO,CAChB,MAAM,CAAE,CAAC,CAAC,OAAO,AAAE,CAAC,AAEd,OAAO,AAAC,CAAC,AAAQ,OAAO,AAAE,CAAC,AACjC,KAAK,CAAE,OAAO,AAAE,CAAC,AAEX,OAAO,AAAC,CAAC,AAAQ,QAAQ,AAAC,CAAC,AAAQ,IAAI,AAAE,CAAC,AAChD,YAAY,CAAE,MAAM,AAAE,CAAC,AAEjB,OAAO,AAAC,CAAC,AAAQ,eAAe,AAAE,CAAC,AACzC,WAAW,CAAE,MAAM,CACnB,OAAO,CAAE,IAAI,CACb,OAAO,CAAE,WAAW,CACpB,IAAI,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACX,cAAc,CAAE,MAAM,AAAE,CAAC,AAEnB,OAAO,AAAC,CAAC,AAAQ,4CAA4C,AAAE,CAAC,AACtE,eAAe,CAAE,QAAQ,AAAE,CAAC,AAEtB,OAAO,AAAC,CAAC,AAAQ,aAAa,AAAE,CAAC,AACvC,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,AAAE,CAAC,AAEd,MAAM,AAAC,CAAW,aAAa,AAAE,CAAC,AACxC,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,IAAI,CACT,QAAQ,CAAE,IAAI,CACd,MAAM,CAAE,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAC1B,UAAU,CAAE,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,AAAE,CAAC,AAG3B,EAAE,AAAE,CAAC,AACX,MAAM,CAAE,MAAM,AAAE,CAAC,AACT,KAAK,AAAE,CAAC,AACd,MAAM,CAAE,IAAI,AAAE,CAAC,AACT,KAAK,AAAE,CAAC,AACd,MAAM,CAAE,IAAI,AAAE,CAAC,AACT,KAAK,AAAE,CAAC,AACd,MAAM,CAAE,IAAI,AAAE,CAAC,AAEX,GAAG,AAAE,CAAC,AACZ,aAAa,CAAE,KAAK,CAAC,UAAU,AAAE,CAAC,AAC1B,MAAM,AAAE,CAAC,AACf,aAAa,CAAE,KAAK,CAAC,UAAU,AAAE,CAAC,AAC5B,MAAM,AAAE,CAAC,AACf,aAAa,CAAE,KAAK,CAAC,UAAU,AAAE,CAAC,AAE9B,GAAG,AAAE,CAAC,AACZ,WAAW,CAAE,KAAK,CAAC,UAAU,AAAE,CAAC,AACxB,MAAM,AAAE,CAAC,AACf,WAAW,CAAE,KAAK,CAAC,UAAU,AAAE,CAAC,AAC1B,MAAM,AAAE,CAAC,AACf,WAAW,CAAE,KAAK,CAAC,UAAU,AAAE,CAAC,AAE5B,GAAG,AAAE,CAAC,AACZ,YAAY,CAAE,KAAK,CAAC,UAAU,AAAE,CAAC,AACzB,MAAM,AAAE,CAAC,AACf,YAAY,CAAE,KAAK,CAAC,UAAU,AAAE,CAAC,AAC3B,GAAG,AAAC,CAAC,AAAQ,KAAK,AAAE,CAAC,AAC3B,YAAY,CAAE,KAAK,CAAC,UAAU,AAAE,CAAC,AAE7B,GAAG,AAAE,CAAC,AACZ,UAAU,CAAE,KAAK,CAAC,UAAU,AAAE,CAAC,AACvB,MAAM,AAAE,CAAC,AACf,UAAU,CAAE,KAAK,CAAC,UAAU,AAAE,CAAC,AACzB,MAAM,AAAE,CAAC,AACf,UAAU,CAAE,KAAK,CAAC,UAAU,AAAE,CAAC,AAE3B,GAAG,AAAE,CAAC,AACZ,WAAW,CAAE,MAAM,CAAC,UAAU,CAC9B,YAAY,CAAE,MAAM,CAAC,UAAU,AAAE,CAAC,AAC1B,MAAM,AAAE,CAAC,AACf,WAAW,CAAE,IAAI,CAAC,UAAU,CAC5B,YAAY,CAAE,IAAI,CAAC,UAAU,AAAE,CAAC,AAC1B,MAAM,AAAE,CAAC,AACf,WAAW,CAAE,IAAI,CAAC,UAAU,CAC5B,YAAY,CAAE,IAAI,CAAC,UAAU,AAAE,CAAC,AAE5B,GAAG,AAAE,CAAC,AACZ,MAAM,CAAE,MAAM,CAAC,CAAC,AAAE,CAAC,AACX,MAAM,AAAE,CAAC,AACf,MAAM,CAAE,IAAI,CAAC,CAAC,AAAE,CAAC,AACX,MAAM,AAAE,CAAC,AACf,MAAM,CAAE,IAAI,CAAC,CAAC,AAAE,CAAC,AACX,MAAM,AAAE,CAAC,AACf,MAAM,CAAE,IAAI,CAAC,CAAC,AAAE,CAAC,AAGb,KAAK,AAAC,CAAU,WAAW,AAAE,CAAC,AACpC,OAAO,CAAE,IAAI,CACb,MAAM,CAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CACvB,MAAM,CAAE,MAAM,CAAC,CAAC,AAAE,CAAC,AACX,WAAW,AAAE,CAAC,AACpB,OAAO,CAAE,GAAG,AAAE,CAAC,AAEX,UAAU,AAAE,CAAC,AACnB,mBAAmB,CAAE,IAAI,CACzB,mBAAmB,CAAE,GAAG,CACxB,mBAAmB,CAAE,KAAK,CAC1B,aAAa,CAAE,IAAI,AAAE,CAAC,AAEhB,OAAO,AAAE,CAAC,AAChB,aAAa,CAAE,GAAG,CAClB,gBAAgB,CAAE,IAAI,CACtB,UAAU,CAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAG1G,SAAS,CAAE,CAAC,AAEa,CAAC,AAEpB,QAAQ,AAAE,CAAC,AACjB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,GAAG,AAAE,CAAC,AAEb,SAAS,AAAE,CAAC,AAClB,KAAK,CAAE,OAAO,CACd,UAAU,CAAE,IAAI,AAAE,CAAC,AAGrB,MAAM,AAAC,YAAY,KAAK,CAAC,AAAC,CAAC,AACjB,UAAU,AAAE,CAAC,AACnB,SAAS,CAAE,IAAI,CACf,OAAO,CAAE,CAAC,CAAC,CAAC,CACZ,UAAU,CAAE,MAAM,AAAE,CAAC,AAAC,CAAC,AAE3B,MAAM,AAAC,aAAa,KAAK,CAAC,AAAC,CAAC,AAClB,OAAO,AAAE,CAAC,AAChB,UAAU,CAAE,IAAI,AAAE,CAAC,AACb,MAAM,AAAC,CAAW,aAAa,AAAE,CAAC,AACxC,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,IAAI,CACT,UAAU,CAAE,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,AAAE,CAAC,AAC3B,OAAO,AAAC,CAAC,AAAQ,aAAa,AAAE,CAAC,AACvC,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,AAAE,CAAC,AAAC,CAAC,AAE1B,MAAM,AAAC,aAAa,KAAK,CAAC,AAAC,CAAC,AAClB,IAAI,AAAE,CAAC,AACb,SAAS,CAAE,OAAO,AAAE,CAAC,AAAC,CAAC,AAEnB,UAAU,AAAC,CAAC,AAAQ,CAAC,AAAE,CAAC,AAC9B,KAAK,CAAE,OAAO,AAAE,CAAC,AAEX,YAAY,AAAE,CAAC,AACrB,gBAAgB,CAAE,QAAQ,CAC1B,cAAc,CAAE,GAAG,CAAC,UAAU,CAC9B,WAAW,CAAE,GAAG,CAAC,UAAU,AAAE,CAAC,AAExB,GAAG,AAAC,CACJ,OAAO,AAAC,CACR,QAAQ,AAAE,CAAC,AACjB,KAAK,CAAE,OAAO,CAAC,UAAU,AAAE,CAAC,AAEtB,KAAK,AAAC,CACN,QAAQ,AAAC,CACT,UAAU,AAAE,CAAC,AACnB,KAAK,CAAE,OAAO,CAAC,UAAU,AAAE,CAAC;AC7mB9B,aAAa,6CAAC,CAAC,AACb,OAAO,CAAE,YAAY,CACrB,QAAQ,CAAE,QAAQ,AAAE,CAAC,AAKvB,mBAAmB,6CAAC,CAAC,AACnB,UAAU,CAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAC9E,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,IAAI,CACb,SAAS,CAAE,KAAK,CAChB,OAAO,CAAE,GAAG,CAAC,CAAC,CACd,MAAM,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CACf,UAAU,CAAE,IAAI,CAChB,SAAS,CAAE,IAAI,CACf,UAAU,CAAE,IAAI,CAChB,gBAAgB,CAAE,IAAI,CACtB,aAAa,CAAE,GAAG,CAClB,OAAO,CAAE,GAAG,CACZ,eAAe,CAAE,WAAW,AAAE,CAAC,AAC/B,OAAO,GAAG,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,EAAE,oBAAoB,MAAM,CAAC,AAAC,CAAC,AACrE,mBAAmB,6CAAC,CAAC,AACnB,UAAU,CAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAC5C,WAAW,CAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,AAAE,CAAC,AAAC,CAAC,AACtD,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,AAAC,CAAC,AAC/B,mBAAmB,6CAAC,CAAC,AACnB,UAAU,CAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAC5C,WAAW,CAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,AAAE,CAAC,AAAC,CAAC,AACtD,mBAAmB,aAAa,6CAAC,CAAC,AAChC,OAAO,CAAE,KAAK,AAAE,CAAC,AACnB,kCAAmB,CAAG,iBAAE,CAAG,CAAC,eAAC,CAAC,AAC5B,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,GAAG,CAAC,IAAI,CACjB,KAAK,CAAE,IAAI,CACX,WAAW,CAAE,MAAM,CACnB,WAAW,CAAE,GAAG,CAChB,KAAK,CAAE,OAAO,CACd,eAAe,CAAE,IAAI,CACrB,WAAW,CAAE,MAAM,AAAE,CAAC,AACtB,kCAAmB,CAAG,iBAAE,CAAG,gBAAC,MAAM,CAAE,kCAAmB,CAAG,iBAAE,CAAG,gBAAC,MAAM,AAAC,CAAC,AACtE,eAAe,CAAE,IAAI,CACrB,KAAK,CAAE,OAAO,CACd,gBAAgB,CAAE,OAAO,AAAE,CAAC,AAgBlC,kDAAoB,CAAG,mBAAmB,8BAAC,CAAC,AAC1C,MAAM,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,AAAE,CAAC,AAKtB,KAAK,6CAAC,CAAC,AACL,gBAAgB,CAAE,QAAQ,CAC1B,cAAc,CAAE,GAAG,CAAC,UAAU,CAC9B,WAAW,CAAE,GAAG,CAAC,UAAU,AAAE,CAAC;ACpB5B,OAAO,8BAAC,CAAC,AACL,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,aAAa,CAC9B,WAAW,CAAE,MAAM,CACnB,OAAO,CAAE,MAAM,CAAC,IAAI,CACpB,OAAO,CAAE,CAAC,CACV,KAAK,CAAE,GAAG,CACV,OAAO,CAAE,GAAG,CACZ,aAAa,CAAE,MAAM,CACrB,mBAAmB,CAAE,OAAO,CAC5B,UAAU,CAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/E,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,AACnC,CAAC,AAED,sBAAO,CAAC,MAAM,eAAC,CAAC,AACZ,WAAW,CAAE,IAAI,CACjB,OAAO,CAAE,IAAI,CACb,OAAO,CAAE,WAAW,CAGpB,cAAc,CAAE,MAAM,CACtB,cAAc,CAAE,MAAM,AAC1B,CAAC,AAED,sBAAO,CAAC,qBAAM,KAAK,YAAY,CAAC,WAAW,AAAC,CAAC,AACzC,eAAe,CAAE,QAAQ,CAEzB,WAAW,CAAE,KAAK,AACtB,CAAC,AAED,SAAS,8BAAC,CAAC,AACP,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,GAAG,CAAC,CAAC,CACb,cAAc,CAAE,MAAM,AAC1B,CAAC,AAED,UAAU,8BAAC,CAAC,AACR,QAAQ,CAAE,QAAQ,CAClB,gBAAgB,CAAE,IAAI,CACtB,UAAU,CAAE,IAAI,CAChB,MAAM,CAAE,MAAM,CAAC,GAAG,CAClB,mBAAmB,CAAE,OAAO,CAC5B,UAAU,CAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/E,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAC/B,cAAc,CAAE,MAAM,CACtB,OAAO,CAAE,MAAM,CAAC,CAAC,CACjB,aAAa,CAAE,MAAM,AACzB,CAAC;AClHD,OAAO,eAAC,CAAC,AACL,SAAS,CAAE,IAAI,CACf,UAAU,CAAE,IAAI,CAChB,aAAa,CAAE,UAAU,CACtB,UAAU,CAAE,UAAU,CACzB,aAAa,CAAE,MAAM,AACzB,CAAC;ACJD,KAAK,eAAC,CAAC,AACH,WAAW,CAAE,MAAM,AACvB,CAAC;AC9BD,cAAE,CAAC,AACC,UAAU,CAAE,OAAO,CACnB,OAAO,CAAE,GAAG,AAChB,CAAC;ACHD,cAAE,CAAC,AACC,UAAU,CAAE,OAAO,CACnB,OAAO,CAAE,GAAG,AAChB,CAAC" +} \ No newline at end of file diff --git a/OLD_pb_public/public/build/bundle.js b/OLD_pb_public/public/build/bundle.js new file mode 100644 index 0000000..feec2fe --- /dev/null +++ b/OLD_pb_public/public/build/bundle.js @@ -0,0 +1,8 @@ +var app=function(){"use strict";function e(){}const t=e=>e;function n(e){return e()}function r(){return Object.create(null)}function o(e){e.forEach(n)}function a(e){return"function"==typeof e}function i(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}function l(t,...n){if(null==t)return e;const r=t.subscribe(...n);return r.unsubscribe?()=>r.unsubscribe():r}function s(e){let t;return l(e,e=>t=e)(),t}const c="undefined"!=typeof window;let u=c?()=>window.performance.now():()=>Date.now(),d=c?e=>requestAnimationFrame(e):e;const h=new Set;function f(e){h.forEach(t=>{t.c(e)||(h.delete(t),t.f())}),0!==h.size&&d(f)}function S(e){let t;return 0===h.size&&d(f),{promise:new Promise(n=>{h.add(t={c:e,f:n})}),abort(){h.delete(t)}}}function m(e,t){e.appendChild(t)}function g(e,t,n){e.insertBefore(t,n||null)}function y(e){e.parentNode.removeChild(e)}function B(e,t){for(let n=0;ne.removeEventListener(t,n,r)}function H(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function W(e,t){t=""+t,e.wholeText!==t&&(e.data=t)}function v(e,t){e.value=null==t?"":t}function T(e,t){const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,!1,!1,t),n}const N=new Set;let R,M=0;function P(e,t,n,r,o,a,i,l=0){const s=16.666/r;let c="{\n";for(let e=0;e<=1;e+=s){const r=t+(n-t)*a(e);c+=100*e+`%{${i(r,1-r)}}\n`}const u=c+`100% {${i(n,1-n)}}\n}`,d=`__svelte_${function(e){let t=5381,n=e.length;for(;n--;)t=(t<<5)-t^e.charCodeAt(n);return t>>>0}(u)}_${l}`,h=e.ownerDocument;N.add(h);const f=h.__svelte_stylesheet||(h.__svelte_stylesheet=h.head.appendChild(p("style")).sheet),S=h.__svelte_rules||(h.__svelte_rules={});S[d]||(S[d]=!0,f.insertRule(`@keyframes ${d} ${u}`,f.cssRules.length));const m=e.style.animation||"";return e.style.animation=`${m?m+", ":""}${d} ${r}ms linear ${o}ms 1 both`,M+=1,d}function A(e,t){const n=(e.style.animation||"").split(", "),r=n.filter(t?e=>e.indexOf(t)<0:e=>-1===e.indexOf("__svelte")),o=n.length-r.length;o&&(e.style.animation=r.join(", "),M-=o,M||d(()=>{M||(N.forEach(e=>{const t=e.__svelte_stylesheet;let n=t.cssRules.length;for(;n--;)t.deleteRule(n);e.__svelte_rules={}}),N.clear())}))}function D(e){R=e}function E(){if(!R)throw new Error("Function called outside component initialization");return R}function k(e){E().$$.on_mount.push(e)}function G(e){E().$$.on_destroy.push(e)}function F(e,t){const n=e.$$.callbacks[t.type];n&&n.slice().forEach(e=>e(t))}const I=[],O=[],K=[],x=[],$=Promise.resolve();let Y=!1;function _(){Y||(Y=!0,$.then(Q))}function U(){return _(),$}function V(e){K.push(e)}function J(e){x.push(e)}let j=!1;const X=new Set;function Q(){if(!j){j=!0;do{for(let e=0;e{Z=null})),Z}function ee(e,t,n){e.dispatchEvent(T(`${t?"intro":"outro"}${n}`))}const te=new Set;let ne;function re(){ne={r:0,c:[],p:ne}}function oe(){ne.r||o(ne.c),ne=ne.p}function ae(e,t){e&&e.i&&(te.delete(e),e.i(t))}function ie(e,t,n,r){if(e&&e.o){if(te.has(e))return;te.add(e),ne.c.push(()=>{te.delete(e),r&&(n&&e.d(1),r())}),e.o(t)}}const le={duration:0};function se(n,r,i,l){let s=r(n,i),c=l?0:1,d=null,h=null,f=null;function m(){f&&A(n,f)}function g(e,t){const n=e.b-c;return t*=Math.abs(n),{a:c,b:e.b,d:n,duration:t,start:e.start,end:e.start+t,group:e.group}}function y(r){const{delay:a=0,duration:i=300,easing:l=t,tick:y=e,css:B}=s||le,p={start:u()+a,b:r};r||(p.group=ne,ne.r+=1),d?h=p:(B&&(m(),f=P(n,c,r,i,a,l,B)),r&&y(0,1),d=g(p,i),V(()=>ee(n,r,"start")),S(e=>{if(h&&e>h.start&&(d=g(h,i),h=null,ee(n,d.b,"start"),B&&(m(),f=P(n,c,d.b,d.duration,0,l,s.css))),d)if(e>=d.end)y(c=d.b,1-c),ee(n,d.b,"end"),h||(d.b?m():--d.group.r||o(d.group.c)),d=null;else if(e>=d.start){const t=e-d.start;c=d.a+d.d*l(t/d.duration),y(c,1-c)}return!(!d&&!h)}))}return{run(e){a(s)?q().then(()=>{s=s(),y(e)}):y(e)},end(){m(),d=h=null}}}function ce(e,t){ie(e,1,1,()=>{t.delete(e.key)})}function ue(e,t,n,r,o,a,i,l,s,c,u,d){let h=e.length,f=a.length,S=h;const m={};for(;S--;)m[e[S].key]=S;const g=[],y=new Map,B=new Map;for(S=f;S--;){const e=d(o,a,S),l=n(e);let s=i.get(l);s?r&&s.p(e,t):(s=c(l,e),s.c()),y.set(l,g[S]=s),l in m&&B.set(l,Math.abs(S-m[l]))}const p=new Set,C=new Set;function L(e){ae(e,1),e.m(l,u),i.set(e.key,e),u=e.first,f--}for(;h&&f;){const t=g[f-1],n=e[h-1],r=t.key,o=n.key;t===n?(u=t.first,h--,f--):y.has(o)?!i.has(r)||p.has(r)?L(t):C.has(o)?h--:B.get(r)>B.get(o)?(C.add(r),L(t)):(p.add(o),h--):(s(n,i),h--)}for(;h--;){const t=e[h];y.has(t.key)||s(t,i)}for(;f;)L(g[f-1]);return g}function de(e,t,n){const r=e.$$.props[t];void 0!==r&&(e.$$.bound[r]=n,n(e.$$.ctx[r]))}function he(e){e&&e.c()}function fe(e,t,r){const{fragment:i,on_mount:l,on_destroy:s,after_update:c}=e.$$;i&&i.m(t,r),V(()=>{const t=l.map(n).filter(a);s?s.push(...t):o(t),e.$$.on_mount=[]}),c.forEach(V)}function Se(e,t){const n=e.$$;null!==n.fragment&&(o(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function me(t,n,a,i,l,s,c=[-1]){const u=R;D(t);const d=n.props||{},h=t.$$={fragment:null,ctx:null,props:s,update:e,not_equal:l,bound:r(),on_mount:[],on_destroy:[],before_update:[],after_update:[],context:new Map(u?u.$$.context:[]),callbacks:r(),dirty:c,skip_bound:!1};let f=!1;if(h.ctx=a?a(t,d,(e,n,...r)=>{const o=r.length?r[0]:n;return h.ctx&&l(h.ctx[e],h.ctx[e]=o)&&(!h.skip_bound&&h.bound[e]&&h.bound[e](o),f&&function(e,t){-1===e.$$.dirty[0]&&(I.push(e),_(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){var t;this.$$set&&(t=e,0!==Object.keys(t).length)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const ye=[];function Be(e,t){return{subscribe:pe(e,t).subscribe}}function pe(t,n=e){let r;const o=[];function a(e){if(i(t,e)&&(t=e,r)){const e=!ye.length;for(let e=0;e{const e=o.indexOf(s);-1!==e&&o.splice(e,1),0===o.length&&(r(),r=null)}}}}function Ce(t,n,r){const i=!Array.isArray(t),s=i?[t]:t,c=n.length<2;return Be(r,t=>{let r=!1;const u=[];let d=0,h=e;const f=()=>{if(d)return;h();const r=n(i?u[0]:u,t);c?t(r):h=a(r)?r:e},S=s.map((e,t)=>l(e,e=>{u[t]=e,d&=~(1<{d|=1<{Se(e,1)}),oe()}o?(t=new o({}),t.$on("routeEvent",e[5]),he(t.$$.fragment),ae(t.$$.fragment,1),fe(t,n.parentNode,n)):t=null}},i(e){r||(t&&ae(t.$$.fragment,e),r=!0)},o(e){t&&ie(t.$$.fragment,e),r=!1},d(e){e&&y(n),t&&Se(t,e)}}}function we(e){let t,n,r;var o=e[0];function a(e){return{props:{params:e[1]}}}return o&&(t=new o(a(e)),t.$on("routeEvent",e[4])),{c(){t&&he(t.$$.fragment),n=w()},m(e,o){t&&fe(t,e,o),g(e,n,o),r=!0},p(e,r){const i={};if(2&r&&(i.params=e[1]),o!==(o=e[0])){if(t){re();const e=t;ie(e.$$.fragment,1,0,()=>{Se(e,1)}),oe()}o?(t=new o(a(e)),t.$on("routeEvent",e[4]),he(t.$$.fragment),ae(t.$$.fragment,1),fe(t,n.parentNode,n)):t=null}else o&&t.$set(i)},i(e){r||(t&&ae(t.$$.fragment,e),r=!0)},o(e){t&&ie(t.$$.fragment,e),r=!1},d(e){e&&y(n),t&&Se(t,e)}}}function be(e){let t,n,r,o;const a=[we,Le],i=[];function l(e,t){return e[1]?0:1}return t=l(e),n=i[t]=a[t](e),{c(){n.c(),r=w()},m(e,n){i[t].m(e,n),g(e,r,n),o=!0},p(e,[o]){let s=t;t=l(e),t===s?i[t].p(e,o):(re(),ie(i[s],1,1,()=>{i[s]=null}),oe(),n=i[t],n||(n=i[t]=a[t](e),n.c()),ae(n,1),n.m(r.parentNode,r))},i(e){o||(ae(n),o=!0)},o(e){ie(n),o=!1},d(e){i[t].d(e),e&&y(r)}}}function He(){const e=window.location.href.indexOf("#/");let t=e>-1?window.location.href.substr(e+1):"/";const n=t.indexOf("?");let r="";return n>-1&&(r=t.substr(n+1),t=t.substr(0,n)),{location:t,querystring:r}}const We=Be(null,(function(e){e(He());const t=()=>{e(He())};return window.addEventListener("hashchange",t,!1),function(){window.removeEventListener("hashchange",t,!1)}}));Ce(We,e=>e.location),Ce(We,e=>e.querystring);function ve(e){if(!e||e.length<1||"/"!=e.charAt(0)&&0!==e.indexOf("#/"))throw Error("Invalid parameter location");return U().then(()=>{window.location.hash=("#"==e.charAt(0)?"":"#")+e})}function Te(t,n,r){let o,a=e;!function(e,t,n){e.$$.on_destroy.push(l(t,n))}(t,We,e=>r(6,o=e)),t.$$.on_destroy.push(()=>a());let{routes:i={}}=n,{prefix:s=""}=n;class c{constructor(e,t){if(!t||"function"!=typeof t&&("object"!=typeof t||!0!==t._sveltesparouter))throw Error("Invalid component object");if(!e||"string"==typeof e&&(e.length<1||"/"!=e.charAt(0)&&"*"!=e.charAt(0))||"object"==typeof e&&!(e instanceof RegExp))throw Error('Invalid value for "path" argument');const{pattern:n,keys:r}=function(e,t){if(e instanceof RegExp)return{keys:!1,pattern:e};var n,r,o,a,i=[],l="",s=e.split("/");for(s[0]||s.shift();o=s.shift();)"*"===(n=o[0])?(i.push("wild"),l+="/(.*)"):":"===n?(r=o.indexOf("?",1),a=o.indexOf(".",1),i.push(o.substring(1,~r?r:~a?a:o.length)),l+=~r&&!~a?"(?:/([^/]+?))?":"/([^/]+?)",~a&&(l+=(~r?"?":"")+"\\"+o.substring(a))):l+="/"+o;return{keys:i,pattern:new RegExp("^"+l+(t?"(?=$|/)":"/?$"),"i")}}(e);this.path=e,"object"==typeof t&&!0===t._sveltesparouter?(this.component=t.route,this.conditions=t.conditions||[],this.userData=t.userData):(this.component=t,this.conditions=[],this.userData=void 0),this._pattern=n,this._keys=r}match(e){s&&e.startsWith(s)&&(e=e.substr(s.length)||"/");const t=this._pattern.exec(e);if(null===t)return null;if(!1===this._keys)return t;const n={};let r=0;for(;r{u.push(new c(t,e))}):Object.keys(i).forEach(e=>{u.push(new c(e,i[e]))});let d=null,h=null;const f=function(){const e=E();return(t,n)=>{const r=e.$$.callbacks[t];if(r){const o=T(t,n);r.slice().forEach(t=>{t.call(e,o)})}}}(),S=(e,t)=>{U().then(()=>{f(e,t)})};return t.$$set=e=>{"routes"in e&&r(2,i=e.routes),"prefix"in e&&r(3,s=e.prefix)},t.$$.update=()=>{if(65&t.$$.dirty){r(0,d=null);let e=0;for(;!d&&e{t&&(e.node.classList.remove(t),e.pattern.test(Me)&&e.node.classList.add(t))})}function Ae(e){const t=e-1;return t*t*t+1}function De(e,{delay:n=0,duration:r=400,easing:o=t}){const a=+getComputedStyle(e).opacity;return{delay:n,duration:r,easing:o,css:e=>"opacity: "+e*a}}function Ee(e,{delay:t=0,duration:n=400,easing:r=Ae}){const o=getComputedStyle(e),a=+o.opacity,i=parseFloat(o.height),l=parseFloat(o.paddingTop),s=parseFloat(o.paddingBottom),c=parseFloat(o.marginTop),u=parseFloat(o.marginBottom),d=parseFloat(o.borderTopWidth),h=parseFloat(o.borderBottomWidth);return{delay:t,duration:n,easing:r,css:e=>`overflow: hidden;opacity: ${Math.min(20*e,1)*a};height: ${e*i}px;padding-top: ${e*l}px;padding-bottom: ${e*s}px;margin-top: ${e*c}px;margin-bottom: ${e*u}px;border-top-width: ${e*d}px;border-bottom-width: ${e*h}px;`}}We.subscribe(e=>{Me=e.location+(e.querystring?"?"+e.querystring:""),Re.map(Pe)});const ke=new Map([["ZNJ","Northampton North Junction"],["ZPS","Plaistow L.T."],["MSC","Marseille St Charles"],["ZAE","Aldgate East"],["ZEP","East Putney"],["GBG","Gorebridge"],["ZHR","Holloway Road"],["ZPN","Paddington (Bakerloo Line)"],["NMC","New Mills Central"],["HBB","Hubberts Bridge"],["ADC","Adlington (Cheshire)"],["WHI","Whitstable"],["FEG","Fellgate (T & W Metro)"],["HRH","Horsham"],["LNW","Llanwrtyd"],["RYP","Ryde Pier Head"],["PRU","Prudhoe"],["TLH","Tilehurst"],["SBM","South Bermondsey"],["TAM","Tamworth"],["CFD","Castleford"],["NMN","New Mills Newtown"],["HFS","Hatfield & Stainforth"],["WFN","Watford North"],["GWN","Gowerton"],["WMW","Walthamstow Queens Road"],["INP","Inverkip"],["WRW","Warwick"],["WHG","Westhoughton"],["WIM","Wimbledon"],["CLM","Collingham"],["DRF","Driffield"],["NWT","Newtown (Powys)"],["SOE","Southend East"],["PNF","Penyffordd"],["WYE","Wye"],["BAR","Bare Lane"],["YRM","Yarm"],["NTH","Neath"],["ERH","Erith"],["CFO","Chalfont & Latimer"],["FGW","Fishguard & Goodwick"],["BAY","Bayford"],["BER","Bearley"],["SIT","Sittingbourne"],["WHL","White Hart Lane"],["DRN","Duirinish"],["SWK","Southwick"],["MTM","Martin Mill"],["NWR","Newtonmore"],["ADW","Addiewell"],["ALV","Alvechurch"],["SQE","Surrey Quays"],["HIG","Highbridge & Burnham"],["RMC","Rotherham Central"],["NTN","Newton"],["CBN","Camborne"],["RIA","Rhoose Cardiff Intl Airport"],["BXW","Boxhill & Westhumble"],["TNN","Thorne North"],["FTN","Fratton"],["RUA","Ruabon"],["LAY","Layton"],["LLV","Llandovery"],["MAS","Manors"],["CLG","Claygate"],["CTT","Church Stretton"],["GGV","Gargrave"],["TNS","Thorne South"],["CRE","Crewe"],["WXC","Wrexham Central"],["CAD","Cadoxton"],["HYB","Honeybourne"],["WGT","Wigton"],["WRX","Wrexham General"],["RHO","Rhosneigr"],["KWL","Kidwelly"],["RYD","Ryde Esplanade"],["PTL","Priesthill & Darnley"],["NWN","Newton for Hyde"],["SBP","Stonebridge Park"],["PEV","Pevensey & Westham"],["ACL","Acle"],["GDH","Gordon Hill"],["LSY","Lower Sydenham"],["SEB","Seaburn (T & W Metro)"],["AYW","Aberystwyth"],["LNZ","Lenzie"],["MDS","Morden South"],["ADD","Adderley Park"],["EFL","East Farleigh"],["SPU","Staplehurst"],["UHL","Upper Holloway"],["WLP","Welshpool"],["CAS","Castleton"],["HAM","Hamworthy"],["BGN","Bridgend"],["BRN","Bearsden"],["APG","Aspley Guise"],["DEW","Dewsbury"],["BPS","Blackpool South"],["KSL","Kearsley"],["PYJ","Paisley St James"],["NBA","New Barnet"],["WHR","West Horndon"],["HLD","Hellifield"],["RDR","Radyr"],["VAL","Valley"],["BSD","Bearsted"],["FIT","Filton Abbey Wood"],["NAY","Newton Aycliffe"],["BWK","Berwick-upon-Tweed"],["BIF","Barrow-in-Furness"],["DMY","Drumry"],["CKH","Corkerhill"],["LBK","Long Buckby"],["BEA","Bridge of Allan"],["PEB","Pevensey Bay"],["CRL","Chorley"],["ECS","Eccles Road"],["FSG","Fishersgate"],["YSR","Ystrad Rhondda"],["UNV","University (T & W Metro)"],["WCL","West Calder"],["GNW","Greenwich"],["SAB","Smallbrook Junction"],["BDA","Brundall"],["LNG","Longcross"],["PSW","Polesworth"],["SPP","Shippea Hill"],["FIL","Filey"],["HRR","Harrington"],["MGM","Metheringham"],["RAV","Ravenglass for Eskdale"],["OLT","Olton"],["CRD","Chester Road"],["SAH","Salhouse"],["GIL","Gillingham (Dorset)"],["GNT","Gunton"],["FEN","Fenny Stratford"],["CBB","Carbis Bay"],["BLW","Bulwell"],["FMR","Falmer"],["WNY","White Notley"],["SFD","Salford Central"],["BGI","Bargeddie"],["WLY","Woodley"],["BYC","Betws-y-Coed"],["WYT","Wythall"],["KID","Kidderminster"],["SMO","South Merton"],["ULC","Ulceby"],["AWK","Adwick"],["CRR","Corrour"],["OVR","Overton"],["RET","Retford"],["STQ","Southampton Town Quay (Bus)"],["BBS","Bordesley"],["GOS","Grange-over-Sands"],["MAY","Maybole"],["YET","Yetminster"],["LIH","Leigh (Kent)"],["SMC","Sampford Courtenay"],["SLO","Slough"],["LHE","Loch Eil Outward Bound"],["WBP","West Brompton"],["NBT","Norbiton"],["KVP","Kiveton Park"],["PNL","Pannal"],["MEO","Meols"],["SRG","Seer Green"],["CTO","Carlton"],["GLY","Glynde"],["MSW","Mansfield Woodhouse"],["IBM","IBM"],["BRL","Barrhill"],["TRD","Troed-y-rhiw"],["MEC","Meols Cop"],["POL","Polsloe Bridge"],["TPN","Ton Pentre"],["BCK","Buckley"],["CHC","Charing Cross (Glasgow)"],["SRA","Stratford (London)"],["WWO","West Worthing"],["RSH","Rose Hill Marple"],["SMT","St Margarets (Hertfordshire)"],["WIH","Winchmore Hill"],["CRS","Carstairs"],["KGX","London Kings Cross"],["LHS","Limehouse"],["THB","Thornliebank"],["DRT","Darton"],["LLD","Llandudno"],["NRN","Nairn"],["KGE","Kingsknowe"],["TNA","Thornton Abbey"],["LRD","London Road (Guildford)"],["BAL","Balham"],["FRH","Calais Frethun"],["WAC","Warrington Central"],["GMV","Great Malvern"],["MNC","Markinch"],["WRT","Worstead"],["EBB","Ebbw Vale Town"],["MEL","Meldreth"],["BYB","Blythe Bridge"],["LOT","Lostock"],["CNM","Cheltenham Spa"],["FZH","Frizinghall"],["LLJ","Llandudno Junction"],["UPM","Upminster"],["DBC","Dumbarton Central"],["STT","Stewarton"],["DBE","Dumbarton East"],["TYS","Tyseley"],["DNS","Dinas Powys"],["DEE","Dundee"],["LDY","Ladybank"],["PBY","Pembrey & Burry Port"],["GMD","Grimsby Docks"],["KEI","Keighley"],["BIP","Bishopstone"],["SFO","Stanford-le-Hope"],["BYF","Broughty Ferry"],["MYH","Maryhill"],["DRM","Drem"],["NBE","Newbridge"],["WSF","Winsford"],["THD","Thames Ditton"],["HMM","Hammerton"],["HOR","Horley"],["BLY","Bletchley"],["ARU","Arundel"],["FNB","Farnborough (Main)"],["CGW","Caergwrle"],["MAO","Martins Heron"],["OXT","Oxted"],["PAT","Patricroft"],["GMB","Grimsby Town"],["TUR","Turkey Street"],["TAF","Taffs Well"],["LTN","Luton Airport Parkway"],["CHM","Chelmsford"],["FLW","Fulwell"],["HTW","Hartwood"],["PNZ","Penzance"],["WDE","Wood End"],["GCW","Glan Conwy"],["HOV","Hove"],["TRH","Trehafod"],["WTE","Whitlocks End"],["DLJ","Dalston Junction"],["VIR","Virginia Water"],["ASP","Aspatria"],["LPT","Longport"],["LWS","Lewes"],["EWD","Earlswood (West Midlands)"],["WAN","Wanborough"],["BTO","Betchworth"],["FLN","Flint"],["BUK","Bucknell"],["LLM","Llangammarch"],["CNG","Congleton"],["WMN","Warminster"],["MTL","Mortlake"],["BWT","Bridgwater"],["BRT","Barlaston"],["MNP","Manor Park"],["ESL","Eastleigh"],["SHO","Sholing"],["EGT","Egton"],["HDH","Hampstead Heath"],["WCP","Worcester Park"],["ISP","Islip"],["TPB","Thorpe Bay"],["CRH","Crouch Hill"],["TBW","Tunbridge Wells"],["GLE","Gleneagles"],["KSW","Kirkby Stephen"],["ALW","Allens West"],["DMG","Dinas Rhondda"],["BSR","Broadstairs"],["WEM","Wem"],["CSN","Chessington North"],["HRD","Harling Road"],["AUI","Ardlui"],["ERI","Eridge"],["APD","Appledore (Kent)"],["DHN","Deighton"],["GLG","Glengarnock"],["MLH","Mill Hill (Lancashire)"],["WRP","Warwick Parkway"],["GOF","Golf Street"],["CHY","Chertsey"],["WOK","Woking"],["LLE","Llanelli"],["MYB","London Marylebone"],["WIL","Willington"],["WIJ","Willesden Junction"],["BME","Broome"],["CAM","Camberley"],["SRT","Shortlands"],["SOP","Southport"],["TYB","Tan-y-Bwlch (Bus)"],["ENC","Enfield Chase"],["RYP","Ryde Pier Head"],["BEB","Bebington"],["LGW","Langwathby"],["WSE","Winchelsea"],["BFR","London Blackfriars"],["SCT","Scotscalder"],["RUG","Rugby"],["SRS","Selhurst"],["MLF","Milford (Surrey)"],["PNA","Penally"],["STU","Sturry"],["TWB","Tweedbank"],["YSM","Ystrad Mynach"],["JEQ","Jewellery Quarter"],["PTW","Prestwick Town"],["EBK","Eastbrook"],["PER","Penrhiwceiber"],["CWM","Cwmbran"],["ING","Invergowrie"],["RBS","British Steel Redcar"],["HLG","Hall Green"],["LSN","Livingston North"],["RML","Romiley"],["BUU","Burnham-on-Crouch"],["ZBC","Barons Court Underground"],["CPN","Chapleton"],["ROG","Rogart"],["LVG","Livingston South"],["HTC","Heaton Chapel"],["KGN","Kings Nympton"],["LCC","Lochluichart"],["DCG","Duncraig"],["TOD","Todmorden"],["WEA","West Ealing"],["SOK","South Kenton"],["SLA","Slateford"],["HLC","Helensburgh Central"],["LGJ","Loughborough Junction"],["HED","Halewood"],["ATH","Atherstone"],["EYN","Eynsford"],["SOT","Stoke-on-Trent"],["CAC","Caldercruix"],["SRC","Streatham Common"],["MSO","Moston"],["BEU","Beaulieu Road"],["ZBK","Barking Underground"],["BNR","Brockley Whins (T & W Metro)"],["LOH","Lostock Hall"],["MIL","Mill Hill Broadway"],["OHL","Old Hill"],["BDW","Bedwyn"],["PMA","Portsmouth Arms"],["WHC","Walthamstow Central"],["KDY","Kirkcaldy"],["FAZ","Fazakerley"],["GLC","Glasgow Central"],["HLU","Helensburgh Upper"],["LTG","Lostock Gralam"],["DLK","Dalston Kingsland"],["MTN","Moreton (Dorset)"],["EBL","East Boldon (T & W Metro)"],["CYN","Cynghordy"],["CHT","Chathill"],["HPT","Hopton Heath"],["ALO","Alloa"],["PMS","Portsmouth & Southsea"],["CON","Connel Ferry"],["WNC","Windsor & Eton Central"],["BET","Bethnal Green"],["SST","Stansted Mountfitchet"],["ESH","Esher"],["WSE","Winchelsea"],["CSS","Chessington South"],["CSL","Codsall"],["CPA","Corpach"],["HGF","Hag Fold"],["SRD","Stapleton Road"],["UPM","Upminster"],["BSJ","Bedford St Johns"],["RYB","Roy Bridge"],["DMP","Dumpton Park"],["LYT","Lymington Town"],["WHE","Whalley"],["HKC","Hackney Central"],["HYC","Hyde Central"],["PEW","Pewsey"],["AHN","Ashton-under-Lyne"],["PRW","Perranwell"],["CKL","Corkickle"],["DOD","Dodworth"],["WTA","Wester Hailes"],["PAW","Pelaw (T & W Metro)"],["AYP","Albany Park"],["NEW","Newcraighall"],["ORE","Ore"],["HAS","Halesworth"],["KWG","Kew Gardens"],["EXG","Exhibition Centre"],["HIL","Hillside"],["MPL","Marple"],["SDA","Snodland"],["BKA","Bookham"],["BNT","Brinnington"],["HKW","Hackney Wick"],["ACR","Accrington"],["QRP","Queens Road Peckham"],["MDG","Midgham"],["BAW","Blackwater"],["MEX","Mexborough"],["ADK","Ardwick"],["DNY","Danby"],["HIN","Hindley"],["PYG","Paisley Gilmour Street"],["PRA","Prestwick Intl Airport"],["DDP","Dudley Port"],["NMK","Newmarket"],["KGL","Kings Langley"],["MLN","Milngavie"],["FML","Frimley"],["NTR","Northallerton"],["SDW","Sandwich"],["BBW","Berry Brow"],["DID","Didcot Parkway"],["SOG","Stonegate"],["HAI","Halling"],["PWL","Pwllheli"],["WCF","Westcliff"],["HGG","Haggerston"],["CMR","Cromer"],["ALX","Alexandria"],["COO","Cookham"],["MRS","Monks Risborough"],["YRT","Yorton"],["BEN","Bentham"],["GOB","Gobowen"],["HAL","Hale"],["CAY","Carntyne"],["BUI","Burnside"],["SEL","Sellafield"],["WIM","Wimbledon"],["YRD","Yardley Wood"],["CHN","Cheshunt"],["HFX","Halifax"],["ELD","Earlswood (Surrey)"],["TOK","Three Oaks"],["PBN","Paris Nord"],["TED","Teddington"],["HKM","Hykeham"],["GRS","Garscadden"],["DSL","Disley"],["HDE","Hedge End"],["BNP","Barnstaple"],["KNS","Kennishead"],["LAK","Lakenheath"],["TUH","Tulse Hill"],["BSY","Brondesbury"],["FOX","Foxfield"],["SHR","Shrewsbury"],["WMG","Welham Green"],["HLF","Hillfoot"],["PMR","Peckham Rye"],["SGR","Slade Green"],["FRE","Freshfield"],["SDG","Sandling"],["DMR","Dalmuir"],["TRF","Trefforest"],["LZB","Lazonby & Kirkoswald"],["KCK","Knockholt"],["LLW","Llwyngwril"],["DCT","Danescourt"],["HRM","Harrietsham"],["WCM","Wickham Market"],["FEA","Featherstone"],["HNH","Herne Hill"],["MCO","Manchester Oxford Road"],["LER","Leytonstone High Road"],["RAU","Rauceby"],["HMW","Hampton Wick"],["SJS","St James Street"],["TEA","Tees-side Airport"],["LNR","Llanwrda"],["BEE","Beeston"],["MTV","Mount Vernon"],["BSV","Buckshaw Parkway"],["DAL","Dalmally"],["KTN","Kentish Town"],["TRA","Trafford Park"],["AMB","Ambergate"],["GOX","Goxhill"],["PLT","Pontlottyn"],["ATT","Attadale"],["POK","Pokesdown"],["STI","Stadium of Light (T & W Metro)"],["HOO","Hooton"],["KGS","Kings Sutton"],["KTW","Kentish Town West"],["ZPC","Piccadilly Circus Underground"],["UTT","Uttoxeter"],["BLH","Bellshill"],["BGA","Brundall Gardens"],["PRT","Prestatyn"],["CPT","Clapton"],["LET","Letchworth Garden City"],["PSN","Parson Street"],["PNE","Penge East"],["NFD","Northfield"],["LTV","Lichfield Trent Valley"],["CBG","Cambridge"],["NPD","New Pudsey"],["ETL","East Tilbury"],["LTV","Lichfield Trent Valley"],["SNI","Snaith"],["AVN","Avonmouth"],["TEN","Tenby"],["PTG","Port Glasgow"],["SPF","Springfield"],["TBD","Three Bridges"],["SLD","Salford Crescent"],["GOE","Goldthorpe"],["SMY","St Mary Cray"],["DBY","Derby"],["HXX","Heathrow Airport T123"],["THO","Thornford"],["PRE","Preston"],["KWN","Kilwinning"],["PRE","Preston"],["HWH","Haltwhistle"],["CNN","Canonbury"],["BOH","Bosham"],["OPK","Orrell Park"],["BDB","Broadbottom"],["LCK","Lockwood"],["NFL","Northfleet"],["TNP","Tonypandy"],["FOC","Falls of Cruachan"],["HYM","Haymarket"],["HIT","Hitchin"],["CLE","Cleethorpes"],["PAL","Palmers Green"],["ARD","Ardgay"],["BUS","Busby"],["LGE","Long Eaton"],["TUL","Tulloch"],["ABD","Aberdeen"],["BRO","Bridge of Orchy"],["GCT","Great Coates"],["INE","Ince & Elton"],["WTT","Witton"],["TRS","Thurston"],["FNC","Farncombe"],["EBD","Ebbsfleet International"],["DUR","Durrington-on-Sea"],["CSA","Cosham"],["PEG","Pegswood"],["CEA","Cleland"],["GCR","Gloucester"],["TAC","Tackley"],["MFH","Milford Haven"],["PRY","Perry Barr"],["RHL","Rhyl"],["THW","The Hawthorns"],["WTH","Whitehaven"],["KNG","Kingston"],["MIK","Micklefield"],["LRG","Lairg"],["EPS","Epsom"],["WBQ","Warrington Bank Quay"],["CUW","Clunderwen"],["DTG","Dinting"],["ACT","Ascot"],["BID","Bidston"],["BWG","Bowling"],["BMP","Brampton (Cumbria)"],["CLT","Clacton-on-Sea"],["BCH","Birchington-on-Sea"],["BEF","Benfleet"],["HMS","Helmsdale"],["KEY","Keyham"],["MOS","Moss Side"],["PTK","Partick"],["SGN","South Greenford"],["SOR","Sole Street"],["DBD","Denby Dale"],["BSP","Brondesbury Park"],["SEE","Southease"],["CNR","Crianlarich"],["CRT","Chartham"],["SUG","Sugar Loaf"],["HGM","Higham"],["WNG","Waun-gron Park"],["DUM","Dumbreck"],["PMR","Peckham Rye"],["CRB","Corbridge"],["NFA","North Fambridge"],["AGV","Abergavenny"],["HAG","Hagley"],["CEL","Chelford"],["HGD","Hungerford"],["BWN","Bloxwich North"],["KVD","Kelvindale"],["RUS","Ruswarp"],["CLV","Claverdon"],["RNH","Rainhill"],["EWW","Ewell West"],["HHY","Highbury & Islington"],["APP","Appleby"],["HKN","Hucknall"],["MSN","Marsden"],["TPC","Thorpe Culvert"],["EWE","Ewell East"],["GTN","Grangetown"],["LEO","Leominster"],["DOL","Dolau"],["CUH","Curriehill"],["KBK","Kents Bank"],["DPS","Dublin Port (Stena)"],["PAI","Pallion (T & W Metro)"],["MCB","Moulsecoomb"],["NMT","Needham Market"],["WFI","Westerfield"],["SCG","Stone Crossing"],["STR","Stranraer"],["ZWA","Waterloo Underground"],["PIL","Pilning"],["SWD","Swinderby"],["MSK","Marske"],["TRN","Troon"],["WID","Widnes"],["KMS","Kemsing"],["STZ","St Peters (T & W Metro)"],["ANF","Ashurst New Forest"],["WTN","Whitton"],["ANL","Anniesland"],["SCS","Starcross"],["FRB","Fairbourne"],["STK","Stockton"],["BEV","Beverley"],["KKM","Kirkham & Wesham"],["PDW","Paddock Wood"],["CAN","Carnoustie"],["STC","Strathcarron"],["CUF","Cuffley"],["MTP","Montpelier"],["SWM","Swanscombe"],["CBE","Canterbury East"],["DMF","Dumfries"],["HNT","Huntly"],["LLT","Llanbister Road"],["WAT","London Waterloo"],["MEW","Maesteg (Ewenny Road)"],["SUT","Sutton Coldfield"],["LDS","Leeds"],["BNM","Burnham"],["BEL","Beauly"],["HXM","Hoveton & Wroxham"],["HDL","Headstone Lane"],["LEY","Leyland"],["PRE","Preston"],["SNY","Sunnymeads"],["RNF","Rainford"],["EGN","Eastrington"],["KGH","Kinghorn"],["MAT","Matlock"],["NCK","New Cumnock"],["NWP","Newport (South Wales)"],["QPW","Queens Park (London)"],["MSD","Moorside"],["WLM","Williamwood"],["DWD","Dolwyddelan"],["WTL","Whitland"],["MPK","Mosspark"],["MAU","Mauldeth Road"],["HEX","Hexham"],["CLI","Clifton"],["SYD","Sydenham"],["LAD","Ladywell"],["CTM","Chatham"],["SWY","Sway"],["TRU","Truro"],["DLY","Dalry"],["PRP","Preston Park"],["BPB","Blackpool Pleasure Beach"],["LHO","Langho"],["SPS","Stepps"],["TOP","Topsham"],["BIA","Bishop Auckland"],["HTH","Handforth"],["MRT","Moreton (Merseyside)"],["MCH","March"],["TDU","Tondu"],["BCS","Bicester North"],["NMP","Northampton"],["ALP","Althorpe"],["BSE","Bury St Edmunds"],["PTR","Petersfield"],["BUC","Buckenham"],["KLY","Kenley"],["ELW","Eltham"],["WHA","Westenhanger"],["WWL","Whitwell"],["EDW","East Dulwich"],["NRD","North Road"],["BTE","Bitterne"],["IMW","Imperial Wharf"],["ANN","Annan"],["BDN","Brading"],["CES","Cressing"],["KBW","Knebworth"],["DAR","Darlington"],["HWD","Hawarden"],["TAD","Tadworth"],["BAG","Bagshot"],["ZHS","Kensington High St Underground"],["SMD","Stamford"],["BUD","Burneside"],["DOT","Dunston"],["ELS","Elstree & Borehamwood"],["CHF","Church Fenton"],["HAZ","Hazel Grove"],["KMH","Kempston Hardwick"],["SOF","South Woodham Ferrers"],["NRW","Norwich"],["AHS","Ashurst"],["FZW","Fitzwilliam"],["MIN","Milliken Park"],["RUN","Runcorn"],["WSL","Walsall"],["OKM","Oakham"],["WAT","London Waterloo"],["AYP","Albany Park"],["MST","Maesteg"],["KNU","Knucklas"],["LEI","Leicester"],["WAT","London Waterloo"],["WCR","Whitecraigs"],["MRP","Moorthorpe"],["SNH","St Helens Central"],["CAO","Cannock"],["RAI","Rainham (Kent)"],["RKT","Ruskington"],["YOK","Yoker"],["BDT","Bridlington"],["LDN","Llandanwg"],["SHJ","St Helens Junction"],["CHH","Christs Hospital"],["CMF","Cromford"],["HYR","Haydons Road"],["LGN","Longton"],["BXH","Bexleyheath"],["CPM","Chippenham"],["DFR","Drumfrochar"],["NCO","Newcourt"],["WET","Weeton"],["EMD","East Midlands Parkway"],["POP","Poppleton"],["AYH","Aylesham"],["ZUM","Upminster Underground"],["CHD","Chesterfield"],["HEZ","Heworth (T & W Metro)"],["PRB","Prestbury"],["GTR","Goostrey"],["ACK","Acklington"],["KNL","Kensal Green"],["SAN","Sandown"],["THL","Tile Hill"],["SIP","Shipton"],["SFA","Stratford International"],["UPW","Upwey"],["GIP","Gipsy Hill"],["RUT","Rutherglen"],["SES","South Elmsall"],["TGM","Teignmouth"],["ADS","Ardrossan Harbour"],["BCG","Birchgrove"],["RFD","Rochford"],["PES","Pensarn"],["BAI","Blairhill"],["TLB","Talybont"],["SVG","Stevenage"],["WPE","Wapping"],["BDG","Bridgeton"],["THH","Thatto Heath"],["ATB","Attenborough"],["MTH","Motherwell"],["WKM","Wokingham"],["GMT","Grosmont"],["ARL","Arlesey"],["BGD","Bargoed"],["REE","Reedham (Norfolk)"],["HPA","Honor Oak Park"],["NUN","Nuneaton"],["TRM","Trimley"],["WTY","Witley"],["SWO","Snowdown"],["MDB","Maidstone Barracks"],["ENL","Enfield Lock"],["MIJ","Mitcham Junction"],["MDE","Maidstone East"],["GOD","Godalming"],["HGR","Hither Green"],["SPO","Spondon"],["WNT","Wandsworth Town"],["ECR","East Croydon"],["CLS","Chester-le-Street"],["QYD","Quakers Yard"],["WBC","Waterbeach"],["NES","Neston"],["PCN","Paisley Canal"],["WSA","West Allerton"],["SFI","Shawfair"],["SLH","Sleights"],["HTN","Hatton"],["KIV","Kiveton Bridge"],["RIS","Rishton"],["DMS","Dormans"],["LCN","Lincoln Central"],["AYP","Albany Park"],["ERI","Eridge"],["WLC","Waltham Cross"],["MPT","Morpeth"],["MDW","Maidstone West"],["WEL","Wellingborough"],["HRY","Harringay Green Lanes"],["MOB","Mobberley"],["SWL","Swale"],["ECC","Eccles"],["HEW","Heworth"],["LLH","Llangennech"],["BKO","Brookwood"],["GSY","Guiseley"],["SBY","Selby"],["WSB","Westbury"],["ETC","Etchingham"],["BLT","Blantyre"],["SSD","Stansted Airport"],["DOR","Dore"],["NVR","Navigation Road"],["CFF","Croftfoot"],["CKN","Crewkerne"],["GLT","Glenrothes with Thornton"],["WTG","Watlington"],["BAN","Banbury"],["HYS","Hayes (Kent)"],["BHR","Builth Road"],["KND","Kingswood"],["KNN","Kings Norton"],["WOL","Wolverton"],["WTO","Water Orton"],["ADR","Airdrie"],["LLC","Llandecwyn"],["PKS","Parkstone (Dorset)"],["GOM","Gomshall"],["TYL","Tyndrum Lower"],["BOP","Bowes Park"],["HRY","Harringay Green Lanes"],["HER","Hersham"],["WRH","Worthing"],["BON","Bolton"],["BOA","Bradford-on-Avon"],["CFH","Chafford Hundred"],["UTY","Upper Tyndrum"],["NAR","Narberth"],["BDL","Birkdale"],["HMT","Ham Street"],["MKM","Melksham"],["AUW","Ascott-under-Wychwood"],["EAL","Ealing Broadway"],["EAL","Ealing Broadway"],["WTB","Whitby"],["CST","London Cannon Street"],["DWN","Darwen"],["BLE","Bramley (West Yorkshire)"],["AAP","Alexandra Palace"],["NUF","Nutfield"],["STG","Stirling"],["HON","Honiton"],["BPW","Bristol Parkway"],["KIT","Kintbury"],["RAD","Radley"],["MCE","Metro Centre"],["SNT","Stanlow & Thornton"],["BYD","Barry Docks"],["DAM","Dalmeny"],["FIN","Finstock"],["BMT","Bedminster"],["HSL","Haslemere"],["CET","Colchester Town"],["HDG","Heald Green"],["PNR","Penrith"],["MHM","Merstham"],["HSC","Hoscar"],["SNO","St Neots"],["BGM","Bellingham"],["NTL","Netley"],["HYH","Hythe"],["RDC","Redditch"],["LTK","Little Kimble"],["FOD","Ford"],["CLJ","Clapham Junction"],["HON","Honiton"],["CLJ","Clapham Junction"],["PNW","Penge West"],["WFJ","Watford Junction"],["HCH","Holmes Chapel"],["LVN","Littlehaven"],["BTL","Batley"],["ZET","Earl's Court Underground"],["WDL","Woodhall"],["BLX","Bloxwich"],["HLS","Hilsea"],["MKT","Marks Tey"],["OKE","Okehampton"],["HWY","High Wycombe"],["SYT","Somerleyton"],["MRY","Maryport"],["SDY","Sandy"],["CLJ","Clapham Junction"],["CEF","Chapel-en-le-Frith"],["LTP","Littleport"],["KPT","Kilpatrick"],["WDD","Widdrington"],["WHM","Whimple"],["CIT","Chislehurst"],["PFR","Pontefract Baghill"],["BKC","Birkenhead Central"],["HOY","Honley"],["INC","Ince"],["CLJ","Clapham Junction"],["GRC","Great Chesterford"],["IPS","Ipswich"],["WCB","Westcombe Park"],["CLJ","Clapham Junction"],["LYP","Lymington Pier"],["CTF","Catford"],["CTE","Chatelherault"],["FWY","Five Ways"],["NDL","North Dulwich"],["BWO","Bricket Wood"],["BKN","Birkenhead North"],["SOW","Sowerby Bridge"],["BTY","Bentley (Hampshire)"],["KLD","Kildale"],["NQY","Newquay"],["SCA","Scarborough"],["BEG","Beltring"],["BKP","Birkenhead Park"],["CLJ","Clapham Junction"],["GLO","Glossop"],["GRH","Gartcosh"],["TUT","Tutbury & Hatton"],["BCE","Bracknell"],["NNT","Nunthorpe"],["ZNP","Newbury Park Underground"],["SND","Sandhurst"],["FSB","Fishbourne (West Sussex)"],["SLW","Salwick"],["DIG","Digby & Sowton"],["EDG","Edge Hill"],["INH","Invershin"],["BTB","Barnetby"],["SJN","St James (T & W Metro)"],["SUY","Sudbury"],["AIG","Aigburth"],["ELR","Elsecar"],["SGB","Smethwick Galton Bridge"],["HYL","Hayle"],["KEM","Kemble"],["WIM","Wimbledon"],["SAS","St Annes-on-the-Sea"],["SHM","Sheringham"],["WRL","Wetheral"],["SUP","Sundridge Park"],["AWM","Ashwell & Morden"],["BUY","Burley Park"],["ABA","Aberdare"],["CRO","Croy"],["DAT","Datchet"],["LGS","Langside"],["WDM","Windermere"],["GMY","Goodmayes"],["BDQ","Bradford Forster Square"],["SOH","South Hampstead"],["GPK","Grange Park"],["EDP","Edinburgh Park"],["NWB","North Wembley"],["NWE","Newport (Essex)"],["CYT","Cherry Tree"],["HUY","Huyton"],["SFN","Shifnal"],["TOM","Tottenham Hale"],["CDI","Crediton"],["HUT","Hutton Cranswick"],["ABW","Abbey Wood"],["GDL","Godley"],["RHD","Ribblehead"],["TYP","Tynemouth (T & W Metro)"],["CSO","Croston"],["PHR","Penshurst"],["LAC","Lancing"],["SWS","South Wigston"],["BUX","Buxton"],["MLD","Mouldsworth"],["FLE","Fleet"],["MKR","Market Rasen"],["LEG","Lea Green"],["CMH","Cwmbach"],["TMC","Templecombe"],["TWI","Twickenham"],["WEE","Weeley"],["HID","Hall I' Th' Wood"],["TTF","Thetford"],["DLH","Doleham"],["BTF","Bottesford"],["JOR","Jordanhill"],["TIL","Tilbury Town"],["BMR","Bromborough Rake"],["DPD","Dorking Deepdene"],["BUT","Burton-on-Trent"],["LEO","Leominster"],["FRN","Fearn"],["SPK","Sutton Parkway"],["STL","Southall"],["VXH","Vauxhall"],["ALM","Alnmouth"],["HMN","Homerton"],["PNS","Penistone"],["DFP","Dublin Ferryport"],["SED","Shelford"],["MLB","Millbrook (Bedfordshire)"],["WWR","Wandsworth Road"],["WBR","Whaley Bridge"],["CNS","Conisbrough"],["JHN","Johnstone"],["LND","Longniddry"],["STF","Stromeferry"],["BCN","Branchton"],["PET","Petts Wood"],["RSG","Rose Grove"],["SAM","Saltmarshe"],["BNS","Barnes"],["PKG","Penkridge"],["SGB","Smethwick Galton Bridge"],["MUF","Manchester United FC"],["RHY","Rhymney"],["AMR","Amersham"],["KDB","Kidbrooke"],["PLC","Pluckley"],["CSM","Castleton Moor"],["HWF","Heathrow Airport T4 (Bus)"],["TAD","Tadworth"],["GTY","Gatley"],["HWX","Heathrow Airport T5 (Bus)"],["BLK","Blackrod"],["SLK","Silkstone Common"],["BSB","Bleasby"],["AGS","Argyle Street"],["MUI","Muirend"],["SMG","St Margarets (London)"],["MAN","Manchester Piccadilly"],["SEG","Selling"],["PLN","Portlethen"],["BSM","Branksome"],["NLN","New Lane"],["HTO","Hightown"],["BYI","Barry Island"],["HOL","Holton Heath"],["SFL","Seaforth & Litherland"],["SBR","Spean Bridge"],["KGS","Kings Sutton"],["LRB","London Road (Brighton)"],["GSC","Gilshochill"],["MCM","Morecambe"],["STP","London St Pancras (Intl)"],["FGT","Faygate"],["ALD","Alderley Edge"],["COH","Crowborough"],["ANF","Ashurst New Forest"],["OCK","Ockendon"],["ASN","Addlestone"],["CLL","Collington"],["MOT","Motspur Park"],["SDL","Sandhills"],["KKB","Kirkby in Ashfield"],["PAD","London Paddington"],["WOB","Woburn Sands"],["BNI","Barnes Bridge"],["QPW","Queens Park (London)"],["BNY","Barnsley"],["BPN","Blackpool North"],["KWD","Kirkwood"],["SCH","Scotstounhill"],["KNT","Kenton"],["LHD","Leatherhead"],["DRO","Dronfield"],["MRD","Morchard Road"],["CHU","Cheadle Hulme"],["LIC","Lichfield City"],["DSM","Darsham"],["ENF","Enfield Town"],["SSE","Shoreham-by-Sea"],["LGF","Longfield"],["LIP","Liphook"],["ACC","Acton Central"],["NHE","New Hythe"],["GCH","Garelochhead"],["GSN","Garston (Hertfordshire)"],["WRY","Wraysbury"],["RID","Ridgmont"],["KNF","Knutsford"],["STN","Stonehaven"],["WHP","West Hampstead Thameslink"],["DIS","Diss"],["MLG","Mallaig"],["REI","Reigate"],["DNG","Dunton Green"],["LUX","Luxulyan"],["GFD","Greenford"],["GNR","Green Road"],["STH","Shepreth"],["BXW","Boxhill & Westhumble"],["DUD","Duddeston"],["FER","Fernhill"],["CHI","Chingford"],["BKQ","Hamilton Square"],["MUB","Musselburgh"],["ULL","Ulleskelf"],["CLP","Clapham High Street"],["COW","Cowdenbeath"],["GLH","Glasshoughton"],["ATL","Attleborough"],["BIN","Bingham"],["LGO","Llangynllo"],["LRB","London Road (Brighton)"],["WKD","Walkden"],["HRW","Harrow & Wealdstone"],["URM","Urmston"],["CUA","Culrain"],["NBW","North Berwick"],["DMC","Drumchapel"],["EMP","Emerson Park"],["HLE","Hillington East"],["MGN","Marston Green"],["UWL","Upper Warlingham"],["LWM","Llantwit Major"],["ZDE","Dagenham East Underground"],["HIB","High Brooms"],["TQY","Torquay"],["LEU","Leuchars"],["LST","London Liverpool Street"],["ZTG","Turnham Green Underground"],["CDY","Cartsdyke"],["MTC","Mitcham Eastfields"],["HVF","Haverfordwest"],["CSW","Chestfield & Swalecliffe"],["TIR","Tir-phil"],["ERL","Earlestown"],["BGL","Bugle"],["HWM","Harlow Mill"],["SYB","Stalybridge"],["NOA","Newton-on-Ayr"],["FRT","Frant"],["GUI","Guide Bridge"],["HLW","Hillington West"],["MYT","Mytholmroyd"],["BKM","Berkhamsted"],["NEL","Nelson"],["NLT","Northolt Park"],["BES","Bescar Lane"],["BNA","Burnage"],["SRY","Shoeburyness"],["MSR","Minster"],["BNH","Barnehurst"],["DUN","Dunbar"],["LLG","Llangadog"],["PIN","Pinhoe"],["POR","Porth"],["CTR","Chester"],["MCK","Marne La Vallee"],["BUO","Bursledon"],["MDL","Middlewood"],["RHM","Reedham (Surrey)"],["WHD","West Hampstead"],["BDH","Bedhampton"],["ROB","Roby"],["KBF","Kirkby-in-Furness"],["RTR","Rochester"],["STV","Stevenston"],["TIP","Tipton"],["ASB","Ardrossan South Beach"],["DBR","Derby Road"],["LMS","Leamington Spa"],["FSK","Fiskerton"],["HWI","Horwich Parkway"],["WLI","Welling"],["WGC","Welwyn Garden City"],["SOU","Southampton Central"],["RUE","Runcorn East"],["FNH","Farnham"],["SRI","Spring Road"],["TAU","Taunton"],["ALT","Altrincham"],["WDS","Woodlesford"],["LEL","Lelant"],["MNR","Manor Road"],["PPL","Pontypool & New Inn"],["RDG","Reading"],["WNR","Windsor & Eton Riverside"],["SWT","Slaithwaite"],["RCD","Rochdale"],["CYP","Crystal Palace"],["DDG","Dorridge"],["KBX","Kirby Cross"],["SBJ","Stourbridge Junction"],["CRI","Cricklewood"],["WDU","West Dulwich"],["SNN","Swinton (Manchester)"],["BRP","Brampton (Suffolk)"],["COV","Coventry"],["DGL","Dingle Road"],["PYC","Pontyclun"],["LNY","Langley"],["GRP","Grove Park"],["HOU","Hounslow"],["SAE","Saltaire"],["BEH","Bedworth"],["SCY","South Croydon"],["BCY","Brockley"],["AVI","Avignon"],["VIC","London Victoria"],["BWD","Birchwood"],["HWN","Harlow Town"],["VIC","London Victoria"],["FRO","Frome"],["VIC","London Victoria"],["AWT","Armathwaite"],["CAT","Caterham"],["COB","Cooden Beach"],["WVH","Wolverhampton"],["HME","Hamble"],["AUG","Aughton Park"],["BEX","Bexhill"],["ACY","Abercynon"],["CML","Carmyle"],["PBR","Potters Bar"],["TOL","Tolworth"],["APN","Newcastle Airport"],["ADN","Ardrossan Town"],["GDP","Gidea Park"],["SBJ","Stourbridge Junction"],["WIJ","Willesden Junction"],["SDM","Shieldmuir"],["SEV","Sevenoaks"],["FRM","Fareham"],["HNA","Hinton Admiral"],["MRN","Marden"],["MIA","Manchester Airport"],["SBT","Stourbridge Town"],["MAI","Maidenhead"],["BKH","Blackheath"],["BYS","Braystones"],["HGT","Harrogate"],["BIL","Billingham"],["STM","St Michaels"],["BVD","Belvedere"],["LTS","Lelant Saltings"],["LHA","Loch Awe"],["BAD","Banstead"],["INT","Ingatestone"],["MKC","Milton Keynes Central"],["EDR","Edmonton Green"],["BNV","Banavie"],["BTP","Braintree Freeport"],["ROC","Roche"],["CHP","Chipstead"],["FNW","Farnworth"],["TAI","Tain"],["GAL","Galashiels"],["CHG","Charing"],["RMD","Richmond"],["MTN","Moreton (Dorset)"],["COR","Corby"],["SOI","Stow"],["BLG","Bellgrove"],["CNF","Carnforth"],["PST","Prestonpans"],["PKT","Park Street"],["SKS","Stocksfield"],["NRC","Newbury Racecourse"],["PNY","Pen-y-bont"],["EKL","East Kilbride"],["SRU","South Ruislip"],["CDU","Cam & Dursley"],["BRV","Bournville"],["WMS","Wemyss Bay"],["UDD","Uddingston"],["BHD","Brithdir"],["MOR","Mortimer"],["CUM","Culham"],["SDH","Sudbury Hill Harrow"],["STA","Stafford"],["PRL","Prittlewell"],["RDT","Radlett"],["SHP","Shepperton"],["CNP","Conway Park"],["TLK","The Lakes"],["BRX","Brixton"],["MTB","Matlock Bath"],["CLN","Chapeltown"],["KYN","Keynsham"],["NWA","North Walsham"],["BYA","Berney Arms"],["REC","Rectory Road"],["RRB","Ryder Brow"],["SUD","Sudbury & Harrow Road"],["SMN","Southminster"],["YAT","Yatton"],["KSN","Kearsney"],["PTF","Pantyffynnon"],["SWN","Swinton (South Yorkshire)"],["SRN","Strines"],["SWA","Swansea"],["TRR","Torre"],["SSC","Seascale"],["HOT","Henley-on-Thames"],["MVL","Malvern Link"],["ARR","Arram"],["SLT","Saltcoats"],["ANZ","Anerley"],["FPK","Finsbury Park"],["LAN","Lancaster"],["THA","Thatcham"],["BSC","Bescot Stadium"],["MTO","Marton"],["EGG","Eggesford"],["KEH","Keith"],["WCY","West Croydon"],["BOD","Bodmin Parkway"],["HOP","Hope (Derbyshire)"],["HRW","Harrow & Wealdstone"],["WTC","Whitchurch (Shropshire)"],["CHX","London Charing Cross"],["KIR","Kirkby"],["WGA","Westgate-on-Sea"],["WSM","Weston-super-Mare"],["BKS","Bekesbourne"],["AHT","Aldershot"],["DFI","Duffield"],["GIR","Girvan"],["ZBB","Barbican Underground"],["HPE","Hope (Flintshire)"],["CLW","Chorleywood"],["HHL","Heath High Level"],["KKS","Kirk Sandall"],["RDD","Riddlesdown"],["RFY","Rock Ferry"],["ABE","Aber"],["HSK","Hassocks"],["SHT","Shotton"],["LVC","Liverpool Central"],["AIN","Aintree"],["HNG","Hengoed"],["LIS","Liss"],["ARM","Armadale"],["FFA","Ffairfach"],["HCB","Hackbridge"],["LVC","Liverpool Central"],["ELP","Ellesmere Port"],["DYF","Dyffryn Ardudwy"],["TYW","Tywyn"],["CWN","Cowden"],["EGH","Egham"],["RET","Retford"],["HAY","Hayes & Harlington"],["SAT","South Acton"],["PMT","Polmont"],["HPQ","Harwich International"],["WED","Wedgwood"],["BIO","Baillieston"],["WCH","Whitchurch (Hampshire)"],["MNE","Manea"],["SNF","Shenfield"],["ROM","Romsey"],["CHL","Chilworth"],["CDN","Coulsdon Town"],["TLS","Thorpe-le-Soken"],["WRS","Wressle"],["BDY","Bredbury"],["THI","Thirsk"],["WES","Westerton"],["CPU","Capenhurst"],["LRH","Larkhall"],["OLD","Old Street"],["DGT","Deansgate"],["SEM","Seamer"],["SVB","Severn Beach"],["BMC","Bromley Cross"],["SEC","Seaton Carew"],["ZLW","Whitechapel"],["SEE","Southease"],["SOA","Southampton Airpt Parkway"],["WDO","Waddon"],["WTS","Whatstandwell"],["LPY","Liverpool South Parkway"],["HFN","Hertford North"],["KGM","Kingham"],["WFL","Wainfleet"],["SKN","St Keyne Wishing Well Halt"],["DPT","Devonport"],["SOW","Sowerby Bridge"],["WDU","West Dulwich"],["BCB","Burscough Bridge"],["HST","High Street"],["LEM","Leyton Midland Road"],["PYL","Pyle"],["WRU","West Ruislip"],["WYB","Weybridge"],["TAB","Tame Bridge Parkway"],["TRE","Trefforest Estate"],["WYB","Weybridge"],["HND","Hanborough"],["WLW","Welwyn North"],["BMO","Birmingham Moor Street"],["BCJ","Burscough Junction"],["DCW","Dorchester West"],["LVJ","James Street"],["RDF","Radcliffe (Nottinghamshire)"],["CPY","Clapham (North Yorkshire)"],["RMF","Romford"],["SAV","Stratford-upon-Avon"],["LHW","Lochwinnoch"],["NOT","Nottingham"],["CUD","Cuddington"],["LLA","Llanaber"],["SNE","Stone"],["SHL","Shawlands"],["FFD","Freshford"],["SHF","Sheffield"],["YRK","York"],["CSD","Cobham & Stoke d'Abernon"],["ENT","Entwistle"],["PRN","Parton"],["ROL","Rolleston"],["BRH","Borth"],["BCV","Bruce Grove"],["SMR","Smethwick Rolfe Street"],["ACN","Achnasheen"],["KWB","Kew Bridge"],["SAR","St Andrews Road"],["ASF","Ashfield"],["FLM","Flimby"],["LBT","Larbert"],["WOR","Worle"],["CWL","Colwall"],["EXC","Exeter Central"],["NTB","Norton Bridge"],["TWY","Twyford"],["ROR","Rogerstone"],["BDI","Bradford Interchange"],["WNL","Whinhill"],["BLA","Blair Atholl"],["KML","Kemsley"],["SDR","Saunderton"],["GRK","Gourock"],["VXH","Vauxhall"],["FTW","Fort William"],["LIT","Littlehampton"],["SIV","St Ives"],["BLD","Baildon"],["GLM","Gillingham (Kent)"],["SHS","Shotts"],["UCK","Uckfield"],["BTG","Barnt Green"],["BOM","Bromborough"],["ACH","Achnashellach"],["UHA","Uphall"],["VXH","Vauxhall"],["DIN","Dingwall"],["HDW","Hadley Wood"],["SOB","Southbourne"],["LEE","Lee"],["QBR","Queenborough"],["LOC","Lockerbie"],["SMA","Small Heath"],["WDB","Woodbridge"],["HIR","Horton-in-Ribblesdale"],["PON","Ponders End"],["FRI","Frinton-on-Sea"],["SAL","Salisbury"],["SRH","Streatham Hill"],["CRK","Chirk"],["EXR","Essex Road"],["HOK","Hook"],["SML","Sea Mills"],["HLY","Holytown"],["NWD","Norwood Junction"],["ASY","Ashley"],["ESW","Elmswell"],["HOH","Harrow-on-the-Hill"],["AGR","Angel Road"],["NSD","Newstead"],["HUL","Hull"],["HLL","Heath Low Level"],["PBL","Parbold"],["JOH","Johnston"],["SMB","Smithy Bridge"],["NSH","North Sheen"],["UPL","Upholland"],["BGE","Broad Green"],["CBY","Charlbury"],["WME","Woodmansterne"],["LAR","Largs"],["MMO","Melton Mowbray"],["LIN","Linlithgow"],["WDT","West Drayton"],["HFE","Hertford East"],["KET","Kettering"],["PUL","Pulborough"],["QRB","Queenstown Road Battersea"],["WMB","Wembley Central"],["BRG","Borough Green & Wrotham"],["GEA","Gretna Green"],["KPA","Kensington Olympia"],["CIM","Cilmeri"],["SWR","Stewartby"],["CMO","Camelon"],["GLQ","Glasgow Queen Street"],["BSU","Brunstane"],["IFI","Ifield"],["ARN","Arnside"],["FRW","Fairwater"],["LKE","Lake"],["CTL","Cattal"],["DMH","Dilton Marsh"],["WWD","Woolwich Dockyard"],["BTS","Burntisland"],["HSW","Heswall"],["KEL","Kelvedon"],["DBL","Dunblane"],["NLR","North Llanrwst"],["HUB","Hunmanby"],["SAF","Salfords"],["WNE","Wilnecote"],["QPK","Queens Park (Glasgow)"],["WTM","Witham"],["AVP","Aylesbury Vale Parkway"],["PTD","Pontarddulais"],["RDG","Reading"],["EXM","Exmouth"],["SNW","Swanwick"],["FCN","Falconwood"],["GOO","Goole"],["LBO","Loughborough"],["HSB","Helsby"],["SHD","Shildon"],["TAY","Taynuilt"],["SNS","Staines"],["CBW","Canterbury West"],["EGF","East Garforth"],["AUR","Aberdour"],["DKG","Dorking"],["GAR","Garrowhill"],["HUN","Huntingdon"],["LLY","Llwynypia"],["SAY","Swanley"],["TTH","Thornton Heath"],["LSK","Liskeard"],["LSW","Leasowe"],["PMP","Plumpton"],["WKK","Wakefield Kirkgate"],["RFY","Rock Ferry"],["DDK","Dagenham Dock"],["HPN","Hapton"],["LNB","Llanbradach"],["BAD","Banstead"],["BIT","Bicester Village"],["MBR","Middlesbrough"],["AAT","Achanalt"],["HIP","Highams Park"],["SIN","Singer"],["TYG","Tygwyn"],["CUP","Cupar"],["FKC","Folkestone Central"],["SIL","Sileby"],["ESM","Elsenham"],["EPD","Epsom Downs"],["HBP","Hornbeam Park"],["HOZ","Howwood"],["RFY","Rock Ferry"],["MEP","Meopham"],["SWG","Swaythling"],["AVM","Aviemore"],["BHK","Bush Hill Park"],["PEA","Peartree"],["WNN","Wennington"],["AYL","Aylesford"],["PIT","Pitlochry"],["OVE","Overpool"],["ZCO","Croxley Underground"],["GYM","Great Yarmouth"],["CPK","Carpenders Park"],["GLC","Glasgow Central"],["LAS","Llansamlet"],["SPN","Spooner Row"],["FKW","Folkestone West"],["KBC","Kinbrace"],["AND","Anderston"],["ZCW","Canada Water"],["DON","Doncaster"],["EAR","Earley"],["CTN","Charlton"],["ZFD","Farringdon Underground"],["SBF","St Budeaux Ferry Road"],["PCD","Pencoed"],["LBG","London Bridge"],["MZH","Maze Hill"],["WTI","Winnersh Triangle"],["HPD","Harpenden"],["SHT","Shotton"],["LBG","London Bridge"],["NRT","Nethertown"],["LBG","London Bridge"],["HMY","Hairmyres"],["HHB","Heysham Port"],["PSH","Pershore"],["PAN","Pangbourne"],["CLU","Carluke"],["SOC","Southend Central"],["MFF","Minffordd"],["BRF","Brierfield"],["COT","Cottingley"],["PTB","Pentre-bach"],["SKG","Skegness"],["INS","Insch"],["EXN","Exton"],["LOO","Looe"],["WWA","Woolwich Arsenal"],["CLK","Clock House"],["BPT","Bishopton"],["BAS","Bere Alston"],["LCS","Locheilside"],["MEV","Merthyr Vale"],["BDH","Bedhampton"],["SDE","Shadwell"],["STP","London St Pancras (Intl)"],["WEH","West Ham"],["HUP","Humphrey Park"],["BTO","Betchworth"],["EVE","Evesham"],["SEF","Seaford"],["ALR","Alresford"],["HNL","Henley-in-Arden"],["SRL","Shirley"],["BFF","Blaenau Ffestiniog"],["FNN","Farnborough North"],["NLW","Newton-le-Willows"],["YAL","Yalding"],["BMH","Bournemouth"],["LHM","Lealholm"],["TVP","Tiverton Parkway"],["BIW","Biggleswade"],["WLS","Woolston"],["BIP","Bishopstone"],["EBV","Ebbw Vale Parkway"],["NNG","Newark North Gate"],["PHG","Penhelig"],["MNG","Manningtree"],["TAT","Tattenham Corner"],["MEN","Menheniot"],["FSB","Fishbourne (West Sussex)"],["CNN","Canonbury"],["HRO","Harold Wood"],["BKJ","Beckenham Junction"],["NFN","Nafferton"],["BNO","Benton (T & W Metro)"],["GRV","Gravesend"],["NBY","Newbury"],["SDC","Shoreditch High Street"],["AXP","Alexandra Parade"],["FXN","Foxton"],["MTS","Montrose"],["BTN","Brighton"],["RDG","Reading"],["CIR","Caledonian Rd & Barnsbury"],["TAL","Talsarnau"],["CWN","Cowden"],["NLS","Nailsea & Backwell"],["WNH","Warnham"],["HWB","Hawarden Bridge"],["LLN","Llandaf"],["NRB","Norbury"],["CSY","Coseley"],["LLL","Llandeilo"],["RIC","Rickmansworth"],["WMB","Wembley Central"],["ADV","Andover"],["PFL","Purfleet"],["SWE","Swineshead"],["SHB","Shirebrook"],["DFD","Dartford"],["HAN","Hanwell"],["NUT","Nutbourne"],["MLW","Marlow"],["WBL","Warblington"],["RHI","Rhiwbina"],["DEP","Deptford"],["CUB","Cumbernauld"],["HCN","Headcorn"],["LAW","Landywood"],["THC","Thurnscoe"],["CNO","Chetnole"],["COI","Crosshill"],["SHW","Shawford"],["BAJ","Baglan"],["SUR","Surbiton"],["AUK","Auchinleck"],["KTL","Kirton Lindsey"],["LID","Lidlington"],["CDR","Cardross"],["SYL","Syon Lane"],["HYT","Hyde North"],["LAI","Laindon"],["HOX","Hoxton"],["LEW","Lewisham"],["BSK","Basingstoke"],["CRW","Crawley"],["GBS","Goring-by-Sea"],["WHS","Whyteleafe South"],["MHR","Market Harborough"],["ERD","Erdington"],["GST","Gathurst"],["LGG","Langley Green"],["OVR","Overton"],["NEH","New Eltham"],["SDN","St Denys"],["MTG","Mottingham"],["WTR","Wateringbury"],["CDB","Cardiff Bay"],["FNT","Feniton"],["BLP","Belper"],["HSG","Hathersage"],["HVH","Hoek Van Holland"],["DVN","Davenport"],["LWH","Lawrence Hill"],["WCK","Wick"],["BMB","Bamber Bridge"],["DRI","Drigg"],["TWN","Town Green"],["CHE","Cheam"],["SAX","Saxmundham"],["MAG","Maghull"],["SBE","Starbeck"],["MCN","Machynlleth"],["CBC","Coatbridge Central"],["BYL","Barry Links"],["BEM","Bempton"],["SFR","Shalford"],["BIC","Billericay"],["BTR","Braintree"],["ISL","Isleworth"],["HLN","Harlington"],["SSM","Stocksmoor"],["GMN","Great Missenden"],["KNE","Kennett"],["POO","Poole"],["RNR","Roughton Road"],["ILK","Ilkley"],["PMH","Portsmouth Harbour"],["RDA","Redland"],["FRS","Forsinard"],["HRN","Hornsey"],["SLY","Selly Oak"],["OXT","Oxted"],["CBS","Coatbridge Sunnyside"],["WMD","Wymondham"],["TEY","Teynham"],["BAV","Barrow Haven"],["BYE","Bynea"],["WKB","West Kilbride"],["BCU","Brockenhurst"],["AMT","Aldermaston"],["LGB","Langbank"],["MRF","Moorfields"],["PMH","Portsmouth Harbour"],["ROO","Roose"],["KIL","Kildonan"],["BHC","Balloch"],["WIV","Wivenhoe"],["BTT","Battersby"],["CCT","Cathcart"],["HRL","Harlech"],["RGW","Ramsgreave & Wilpshire"],["WVF","Wivelsfield"],["SAJ","St Johns"],["WDH","Woodhouse"],["FOG","Forest Gate"],["HTF","Hartford"],["WNW","West Norwood"],["CSG","Cressington"],["SHU","Stonehouse"],["WDN","Walsden"],["SAC","St Albans"],["WFF","Whifflet"],["HOW","Howden"],["MLY","Morley"],["ASG","Alsager"],["LOB","Longbridge"],["WOM","Wombwell"],["MSH","Mossley Hill"],["ECP","Energlyn & Churchill Park"],["EPH","Elephant & Castle"],["RDW","Reading West"],["EKB","Eskbank"],["BRU","Bruton"],["CME","Combe"],["MIH","Mills Hill"],["PPD","Pontypridd"],["SAD","Sandwell & Dudley"],["KGT","Kilgetty"],["BRI","Bristol Temple Meads"],["HOC","Hockley"],["LBR","Llanbedr"],["NSG","New Southgate"],["DGC","Denham Golf Club"],["PNM","Penmere"],["MHS","Meadowhall"],["PSL","Port Sunlight"],["DWW","Dawlish Warren"],["RTN","Renton"],["BUJ","Burton Joyce"],["HUR","Hurst Green"],["BDK","Baldock"],["LNY","Langley"],["BSH","Bushey"],["DOW","Downham Market"],["KIN","Kingussie"],["BLO","Blaydon"],["DVY","Dovey Junction"],["BWS","Barrow Upon Soar"],["SGL","South Gyle"],["WHT","Whitchurch (Glamorgan)"],["ACB","Acton Bridge"],["ZHA","Hammersmith Underground"],["WRB","Wrabness"],["NQU","North Queensferry"],["TYC","Ty Croes"],["ANC","Ancaster"],["NBN","New Brighton"],["HEC","Heckington"],["QUI","Quintrell Downs"],["WCX","Wembley Stadium"],["LWT","Lowestoft"],["RAN","Rannoch"],["THU","Thurgarton"],["CSK","Calstock"],["MER","Merthyr Tydfil"],["NEI","Neilston"],["CBD","Conon Bridge"],["DNO","Dunrobin Castle"],["HUD","Huddersfield"],["SKW","Stoke Newington"],["ARG","Arisaig"],["CNW","Conwy"],["MNN","Menston"],["PLE","Pollokshields East"],["LLO","Llandrindod"],["LAU","Laurencekirk"],["MSL","Mossley"],["SIE","Sherburn-in-Elmet"],["CBH","Cambridge Heath"],["KBN","Kilburn High Road"],["SID","Sidcup"],["FEL","Feltham"],["CCC","Criccieth"],["STO","South Tottenham"],["WOO","Wool"],["GRK","Gourock"],["LLI","Llandybie"],["AXM","Axminster"],["WGV","Wargrave"],["HSD","Hamstead"],["PLW","Pollokshields West"],["BRK","Berwick (Sussex)"],["CTW","Church & Oswaldtwistle"],["XIB","Bourg St Maurice"],["SKI","Skipton"],["BDM","Bedford"],["PLM","Plumley"],["YVJ","Yeovil Junction"],["DEN","Dean"],["DAM","Dalmeny"],["WGN","Wigan North Western"],["WRE","Wrenbury"],["RYN","Roydon"],["YVJ","Yeovil Junction"],["ABH","Abererch"],["UNI","University"],["AMY","Amberley"],["CSB","Carshalton Beeches"],["EFF","Effingham Junction"],["SVK","Seven Kings"],["DEA","Deal"],["WNP","Wanstead Park"],["ALK","Aslockton"],["ULV","Ulverston"],["LIV","Liverpool Lime Street"],["ABC","Altnabreac"],["LAP","Lapford"],["NIT","Nitshill"],["RAM","Ramsgate"],["KNO","Knottingley"],["LIV","Liverpool Lime Street"],["CSH","Carshalton"],["BFE","Bere Ferrers"],["AVY","Aberdovey"],["CBK","Cranbrook (Devon)"],["WLN","Wellington (Shropshire)"],["CGN","Cogan"],["ASC","Ashchurch for Tewkesbury"],["AVF","Avoncliff"],["CBP","Castle Bar Park"],["GSL","Gunnislake"],["HMC","Hampton Court"],["PLY","Plymouth"],["CLA","Clandon"],["CNE","Colne"],["NXG","New Cross Gate"],["CIL","Chilham"],["FLI","Flixton"],["NWX","New Cross"],["BMY","Bramley (Hampshire)"],["CWS","Caersws"],["BHO","Blackhorse Road"],["CFT","Crofton Park"],["GLS","Glaisdale"],["WMI","Wildmill"],["AST","Aston"],["CDT","Caldicot"],["ESD","Elmstead Woods"],["KLN","Kings Lynn"],["SLQ","St Leonards Warrior Square"],["PNC","Penychain"],["BUB","Burnley Barracks"],["BNC","Burnley Central"],["AXM","Axminster"],["AXM","Axminster"],["BGS","Bogston"],["BAC","Bache"],["HWW","How Wood"],["BNG","Bangor (Gwynedd)"],["BRM","Barmouth"],["DNL","Dunlop"],["EML","East Malling"],["CMO","Camelon"],["EDY","East Didsbury"],["SPR","Springburn"],["ELE","Elmers End"],["WKI","West Kirby"],["LBZ","Leighton Buzzard"],["WES","Westerton"],["LYD","Lydney"],["PYT","Poynton"],["RCC","Redcar Central"],["CWE","Crowle"],["KNA","Knaresborough"],["RCE","Redcar East"],["BUH","Brough"],["DAN","Darnall"],["WNF","Winchfield"],["WKF","Wakefield Westgate"],["PWY","Patchway"],["DZY","Danzey"],["FLD","Fauldhouse"],["WPL","Worplesdon"],["BSL","Beasdale"],["KKD","Kirkdale"],["EAG","Eaglescliffe"],["CRM","Cramlington"],["SIH","St Helier"],["HBY","Hartlebury"],["COA","Coatdyke"],["CHW","Chalkwell"],["RYS","Royston"],["DVH","Dove Holes"],["HEV","Hever"],["SPA","Spalding"],["BOG","Bognor Regis"],["EUS","London Euston"],["FRL","Fairlie"],["EDB","Edinburgh"],["MRR","Morar"],["WSH","Wishaw"],["CPW","Chepstow"],["SUU","Sunbury"],["HAP","Hatfield Peverel"],["OUN","Oulton Broad North"],["MIC","Micheldever"],["WOF","Worcester Foregate Street"],["WRX","Wrexham General"],["OUS","Oulton Broad South"],["CAK","Cark"],["FRY","Ferriby"],["FOH","Forest Hill"],["STY","Stratford Parkway"],["OLF","Oldfield Park"],["WAL","Walton-on-Thames"],["PTT","Patterton"],["GLQ","Glasgow Queen Street"],["EBA","Euxton Balshaw Lane"],["HLM","Holmwood"],["FAV","Faversham"],["GOL","Golspie"],["KKH","Kirkhill"],["WSR","Woodsmoor"],["CNL","Canley"],["SPT","Stockport"],["WBD","Whitley Bridge"],["HIA","Hampton-in-Arden"],["BLV","Belle Vue"],["DMK","Denmark Hill"],["DWL","Dawlish"],["FLF","Flowery Field"],["DGY","Deganwy"],["SYS","Syston"],["KKN","Kirknewton"],["WBO","Wimbledon Chase"],["ALB","Albrighton"],["BEP","Bermuda Park (Nuneaton)"],["BFN","Byfleet & New Haw"],["SKM","Stoke Mandeville"],["NEM","New Malden"],["SER","St Erth"],["GNL","Green Lane"],["HEI","Heighington"],["OMS","Ormskirk"],["HBN","Hollingbourne"],["COL","Colchester"],["MES","Melton"],["AHV","Ash Vale"],["KRK","Kirkconnel"],["BYN","Bryn"],["CWC","Chappel & Wakes Colne"],["BIK","Birkbeck"],["SWM","Swanscombe"],["AUD","Audley End"],["BRE","Brentwood"],["YOK","Yoker"],["AHS","Ashurst"],["GSW","Garswood"],["SHU","Stonehouse"],["SNR","Sanderstead"],["BRC","Breich"],["HDM","Haddenham & Thame Parkway"],["BAH","Bank Hall"],["PRR","Princes Risborough"],["SYA","Styal"],["GPO","Gospel Oak"],["SLV","Silver Street"],["FZP","Furze Platt"],["MFA","Morfa Mawddach"],["DLG","Dolgarrog"],["CWB","Colwyn Bay"],["HVN","Havenhouse"],["LUT","Luton"],["GIG","Giggleswick"],["KGP","Kings Park"],["RYH","Rye House"],["GOR","Goring & Streatley"],["HFD","Hereford"],["BIG","Billingshurst"],["STJ","Severn Tunnel Junction"],["SAU","St Austell"],["WHS","Whyteleafe South"],["WST","Wood Street"],["LED","Ledbury"],["MRF","Moorfields"],["OLF","Oldfield Park"],["ATN","Atherton"],["BRS","Berrylands"],["WSB","Westbury"],["CYS","Cathays"],["CWD","Creswell"],["LOS","Lostwithiel"],["BHS","Brockholes"],["THT","Thorntonhall"],["DRG","Drayton Green"],["ANS","Ainsdale"],["DYP","Drayton Park"],["KLY","Kenley"],["LEH","Lea Hall"],["LPR","Long Preston"],["SVS","Seven Sisters"],["WWW","Wootton Wawen"],["SHI","Shiplake"],["WML","Wilmslow"],["EDL","Edale"],["FLX","Felixstowe"],["NBR","Narborough"],["PFY","Poulton-le-Fylde"],["PRP","Preston Park"],["COE","Coombe Junction Halt"],["SST","Stansted Mountfitchet"],["WLD","West St Leonards"],["PMW","Penmaenmawr"],["YEO","Yeoford"],["YVP","Yeovil Pen Mill"],["GRF","Garforth"],["MON","Monifieth"],["NOR","Normanton"],["COM","Commondale"],["ZFD","Farringdon Underground"],["ORR","Orrell"],["LOW","Lowdham"],["YVP","Yeovil Pen Mill"],["HWF","Heathrow Airport T4 (Bus)"],["LPG","Llanfairpwll"],["LWR","Llanrwst"],["CRN","Crowthorne"],["JCH","James Cook"],["LLS","Llanishen"],["NCE","New Clee"],["RAY","Raynes Park"],["SAW","Sawbridgeworth"],["WLO","Waterloo (Merseyside)"],["ROE","Rotherhithe"],["HNB","Herne Bay"],["SHY","Shipley"],["MTA","Mountain Ash"],["SJP","St James' Park"],["LYC","Lympstone Commando"],["NWM","New Milton"],["WIJ","Willesden Junction"],["FLT","Flitwick"],["BRA","Brora"],["HYN","Hyndland"],["RUF","Rufford"],["PTA","Port Talbot Parkway"],["SMH","Stamford Hill"],["GVE","Garve"],["HTE","Hatch End"],["WSE","Winchelsea"],["DLT","Dalton"],["SPY","Shepley"],["CFL","Crossflatts"],["LIH","Leigh (Kent)"],["LYM","Lympstone Village"],["SOL","Solihull"],["CTH","Chadwell Heath"],["FOK","Four Oaks"],["TRI","Tring"],["BLB","Battlesbridge"],["FAL","Falmouth Docks"],["HPL","Hartlepool"],["OXN","Oxenholme Lake District"],["OTF","Otford"],["OUT","Outwood"],["WLE","Whittlesea"],["SBV","St Budeaux Victoria Road"],["HHY","Highbury & Islington"],["CKS","Clarkston"],["EDN","Eden Park"],["SDP","Sandplace"],["AFK","Ashford International"],["DLM","Delamere"],["HHY","Highbury & Islington"],["INK","Inverkeithing"],["SAA","St Albans Abbey"],["HLB","Hildenborough"],["KTH","Kent House"],["BUL","Butlers Lane"],["AML","Acton Main Line"],["FMT","Falmouth Town"],["BAM","Bamford"],["FFD","Freshford"],["WAT","London Waterloo"],["SHN","Shanklin"],["CKT","Crookston"],["BKL","Bickley"],["DND","Dinsdale"],["NCL","Newcastle"],["WLV","Wallasey Village"],["THS","Thurso"],["ZBS","Baker Street Underground"],["WAE","London Waterloo East"],["TIS","Tisbury"],["BXS","Brussels Midi"],["LEA","Leagrave"],["BAB","Balcombe"],["NCZ","Newcastle Central Metro"],["ASH","Ash"],["RDB","Redbridge"],["BBK","Bilbrook"],["BUW","Burley-in-Wharfedale"],["GBD","Gilberdyke"],["NSB","Normans Bay"],["RGT","Rugeley Town"],["SEH","Shoreham (Kent)"],["BSH","Bushey"],["ELG","Elgin"],["FTN","Fratton"],["EBN","Eastbourne"],["FTM","Fort Matilda"],["MBK","Millbrook (Hampshire)"],["POT","Pontefract Tanshelf"],["WGW","Wigan Wallgate"],["SUO","Sutton (Surrey)"],["AYS","Aylesbury"],["LVM","Levenshulme"],["WAD","Wadhurst"],["PGN","Paignton"],["BOC","Bootle"],["BUG","Burgess Hill"],["AHD","Ashtead"],["OKL","Oakleigh Park"],["LTT","Little Sutton"],["BAU","Barton-on-Humber"],["GWE","Gwersyllt"],["PMH","Portsmouth Harbour"],["SBU","Southbury"],["CDF","Cardiff Central"],["DTW","Droitwich Spa"],["FST","London Fenchurch Street"],["CEY","Cononley"],["HML","Hemel Hempstead"],["OKN","Oakengates"],["CGD","Craigendoran"],["PEM","Pemberton"],["NHL","New Holland"],["SNP","Stanhope"],["EST","Easterhouse"],["GRA","Grantham"],["TAP","Taplow"],["SUC","Sutton Common"],["GNH","Greenhithe for Bluewater"],["NCT","Newark Castle"],["BTD","Bolton-on-Dearne"],["HNC","Hamilton Central"],["ECL","Eccleston Park"],["OLY","Ockley"],["PLD","Portslade"],["BBG","Bishopbriggs"],["COP","Copplestone"],["SDB","Sandbach"],["COV","Coventry"],["EXD","Exeter St Davids"],["LTH","Llanhilleth"],["SQH","Sanquhar"],["ERA","Eastham Rake"],["BSK","Basingstoke"],["MIR","Mirfield"],["PFM","Pontefract Monkhill"],["GUN","Gunnersbury"],["WLG","Wallasey Grove Road"],["PBO","Peterborough"],["PLU","Plumstead"],["CDQ","Cardiff Queen Street"],["BXB","Broxbourne"],["HNW","Hamilton West"],["EXT","Exeter St Thomas"],["WLT","Wallington"],["HNX","Hunts Cross"],["HMP","Hampton"],["ALF","Alfreton"],["BAA","Barnham"],["SEA","Seaham"],["WBY","West Byfleet"],["BGL","Bugle"],["WRK","Worksop"],["WWI","West Wickham"],["FGT","Faygate"],["STW","Strawberry Hill"],["NFL","Northfleet"],["BUE","Bures"],["NMP","Northampton"],["CBL","Cambuslang"],["GFN","Giffnock"],["INV","Inverness"],["WGR","Woodgrange Park"],["STS","Saltash"],["STP","London St Pancras (Intl)"],["SUN","Sunderland"],["SDF","Saundersfoot"],["FNV","Furness Vale"],["YAE","Yate"],["MCV","Manchester Victoria"],["RED","Redruth"],["SNG","Sunningdale"],["PDG","Padgate"],["HTR","Heathrow Central Bus Stn"],["BHI","Birmingham International"],["CWH","Crews Hill"],["NTA","Newton Abbot"],["SFA","Stratford International"],["WOH","Woldingham"],["SXY","Saxilby"],["GKC","Greenock Central"],["PTC","Portchester"],["GLD","Guildford"],["BNF","Briton Ferry"],["DAG","Dalgety Bay"],["SOO","Strood"],["DLS","Dalston"],["LFD","Lingfield"],["BBN","Blackburn"],["CGM","Cottingham"],["RVB","Ravensbourne"],["AIR","Airbles"],["BRR","Barrhead"],["CLH","Clitheroe"],["MRM","Manors (T & W Metro)"],["GMT","Grosmont"],["DHM","Durham"],["PAR","Par"],["IVY","Ivybridge"],["LVN","Littlehaven"],["GKW","Greenock West"],["HNK","Hinckley"],["KMK","Kilmarnock"],["RMD","Richmond"],["SIC","Silecroft"],["HAD","Haddiscoe"],["DNM","Denham"],["OXS","Oxshott"],["SLB","Saltburn"],["DNT","Dent"],["WHY","Whyteleafe"],["CRG","Cross Gates"],["LCG","Lochgelly"],["BHG","Bathgate"],["TNF","Tonfanau"],["MAL","Malden Manor"],["NUT","Nutbourne"],["NWX","New Cross"],["TON","Tonbridge"],["TRO","Trowbridge"],["WKG","Workington"],["BSI","Balmossie"],["SMK","Stowmarket"],["LGD","Lingwood"],["FBY","Formby"],["NNP","Ninian Park"],["ADM","Adisham"],["GRL","Greenfaulds"],["RLN","Rowlands Castle"],["AMF","Ammanford"],["KMP","Kempton Park"],["SNL","Stoneleigh"],["BWB","Bow Brickhill"],["ABY","Ashburys"],["BRY","Barry"],["MYL","Maryland"],["BBL","Bat & Ball"],["PUT","Putney"],["CAA","Coventry Arena"],["HMD","Hampden Park"],["GYP","Gypsy Lane"],["CMY","Crossmyloof"],["DUL","Dullingham"],["WNM","Weston Milton"],["AFV","Ansdell & Fairhaven"],["SYH","Sydenham Hill"],["GTW","Gatwick Airport"],["HYK","Hoylake"],["MIS","Mistley"],["PPK","Possilpark & Parkhouse"],["WYM","Wylam"],["MLM","Millom"],["WAV","Wavertree Tech Park"],["LAM","Lamphey"],["CCH","Chichester"],["MLT","Malton"],["SGM","St Germans"],["WND","Wendover"],["HAF","Heathrow Airport T4"],["THE","Theale"],["ADL","Adlington (Lancashire)"],["HWV","Heathrow Airport T5"],["PLK","Plockton"],["HWC","Harwich Town"],["CWU","Crowhurst"],["CHK","Chiswick"],["HEN","Hendon"],["DRU","Drumgelloch"],["HAB","Habrough"],["LVT","Lisvane & Thornhill"],["TOK","Three Oaks"],["SVR","Silverdale"],["HEL","Hensall"],["SON","Steeton & Silsden"],["WIC","Wickford"],["NAN","Nantwich"],["LUD","Ludlow"],["AFS","Ashford (Surrey)"],["SGH","South Gosforth (T & W Metro)"],["WYL","Wylde Green"],["RDH","Redhill"],["RNM","Rainham (Essex)"],["MIF","Millfield (T & W Metro)"],["WIN","Winchester"],["LLR","Llanharan"],["NET","Netherfield"],["BSN","Boston"],["GRN","Grindleford"],["APB","Appley Bridge"],["PYN","Penryn"],["SRR","Sarn"],["BND","Brandon"],["DLW","Dalwhinnie"],["BIB","Bishops Lydeard"],["CUX","Cuxton"],["PRS","Prees"],["CLC","Castle Cary"],["SCF","Stechford"],["CLD","Chelsfield"],["RIL","Rice Lane"],["TBY","Thornaby"],["LPY","Liverpool South Parkway"],["CRV","Craven Arms"],["WMA","West Malling"],["DTN","Denton"],["DOC","Dockyard"],["DCH","Dorchester South"],["NXG","New Cross Gate"],["CDS","Coulsdon South"],["LLF","Llanfairfechan"],["SLL","Stallingborough"],["CDO","Cardonald"],["HAT","Hatfield"],["RDN","Reddish North"],["WOS","Worcester Shrub Hill"],["HAV","Havant"],["SNA","Sandal & Agbrigg"],["MIM","Moreton-in-Marsh"],["ART","Arrochar & Tarbet"],["OBN","Oban"],["RDS","Reddish South"],["TOO","Tooting"],["WMC","Wilmcote"],["SIA","Southend Airport"],["EBT","Edenbridge Town"],["PLG","Polegate"],["BSW","Birmingham Snow Hill"],["GRB","Great Bentley"],["HHB","Heysham Port"],["SNK","Sankey for Penketh"],["BXD","Buxted"],["ASK","Askam"],["CFB","Catford Bridge"],["GMG","Garth (Mid Glamorgan)"],["NCM","North Camp"],["APF","Appleford"],["EWR","East Worthing"],["WON","Walton-on-the-Naze"],["ROW","Rowley Regis"],["WSU","West Sutton"],["BGG","Brigg"],["EBD","Ebbsfleet International"],["ZEL","Elephant & Castle Underground"],["PHR","Penshurst"],["MRB","Manorbier"],["SPH","Shepherds Well"],["STD","Stroud"],["TGS","Ty Glas"],["BCF","Beaconsfield"],["HDF","Hadfield"],["CDD","Cardenden"],["LTL","Littleborough"],["CHR","Christchurch"],["MFT","Mansfield"],["PWE","Pollokshaws East"],["LPW","Lapworth"],["BNE","Bourne End"],["CRA","Cradley Heath"],["CHO","Cholsey"],["WRM","Wareham"],["CSR","Chassen Road"],["SEN","Shenstone"],["BOE","Botley"],["ANG","Angmering"],["DVC","Dovercourt"],["PMG","Porthmadog Harbour (Bus)"],["ORN","Old Roan"],["NGT","Newington"],["KNI","Knighton"],["GVH","Gravelly Hill"],["OXF","Oxford"],["CKY","Crosskeys"],["BLL","Bardon Mill"],["FGH","Fishguard Harbour"],["LYE","Lye"],["CLR","Clarbeston Road"],["HBD","Hebden Bridge"],["IGD","Invergordon"],["YNW","Ynyswen"],["PWW","Pollokshaws West"],["RMB","Roman Bridge"],["GRT","Grateley"],["AGT","Aldrington"],["CED","Cheddington"],["RVN","Ravensthorpe"],["KEN","Kendal"],["MAR","Margate"],["PSE","Pitsea"],["CTK","City Thameslink"],["BAT","Battle"],["HEV","Hever"],["WAS","Watton-at-Stone"],["CLY","Chinley"],["HES","Hessle"],["UPH","Upper Halliford"],["WNS","Winnersh"],["AON","Alton"],["LGK","Longbeck"],["SHC","Streethouse"],["EMS","Emsworth"],["SYH","Sydenham Hill"],["BAK","Battersea Park"],["GLQ","Glasgow Queen Street"],["BKJ","Beckenham Junction"],["UMB","Umberleigh"],["CMN","Carmarthen"],["SHH","Shirehampton"],["MAX","Maxwell Park"],["HGY","Harringay"],["AVF","Avoncliff"],["BYK","Bentley (South Yorkshire)"],["GER","Gerrards Cross"],["HLR","Hall Road"],["HNF","Hednesford"],["FRD","Frodsham"],["KNR","Kensal Rise"],["BCC","Beccles"],["HGN","Hough Green"],["BKW","Berkswell"],["EBR","Edenbridge"],["BKT","Blake Street"],["CEH","Coleshill Parkway"],["LEN","Lenham"],["BEC","Beckenham Hill"],["FNY","Finchley Road & Frognal"],["LTM","Lytham"],["BKJ","Beckenham Junction"],["KDG","Kidsgrove"],["IGD","Invergordon"],["CPH","Caerphilly"],["APS","Apsley"],["HTY","Hattersley"],["SAL","Salisbury"],["BNW","Bootle New Strand"],["SOB","Southbourne"],["BTH","Bath Spa"],["DFE","Dunfermline Town"],["SLS","Shettleston"],["ELY","Ely"],["BMF","Broomfleet"],["NVH","Newhaven Harbour"],["LCL","Lochailort"],["PMD","Pembroke Dock"],["WAR","Ware"],["BFD","Brentford"],["GLZ","Glazebrook"],["HSY","Horsley"],["SPI","Spital"],["SHZ","South Hylton (T & W Metro)"],["MOO","Muir of Ord"],["NHD","Nunhead"],["BKR","Blackridge"],["IRL","Irlam"],["NVN","Newhaven Town"],["WRN","West Runton"],["HDB","Haydon Bridge"],["EAD","Earlsfield"],["RDM","Riding Mill"],["WMR","Widney Manor"],["BPK","Brookmans Park"],["WLF","Whittlesford Parkway"],["GDN","Godstone"],["TFC","Telford Central"],["SHE","Sherborne"],["GNB","Gainsborough Central"],["BOT","Bootle Oriel Road"],["EGR","East Grinstead"],["LNK","Lanark"],["NEG","Newtongrange"],["SAL","Salisbury"],["CFR","Chandlers Ford"],["LGM","Langley Mill"],["GSD","Garsdale"],["LAG","Langwith-Whaley Thorns"],["BNL","Barnhill"],["IVR","Iver"],["CNY","Cantley"],["HGS","Hastings"],["BEY","Ben Rhydding"],["BMD","Brimsdown"],["ARB","Arbroath"],["BLN","Blundellsands & Crosby"],["MSS","Moses Gate"],["DST","Duke Street"],["HYW","Hinchley Wood"],["AYR","Ayr"],["SRO","Shireoaks"],["CAR","Carlisle"],["DSY","Daisy Hill"],["RGL","Rugeley Trent Valley"],["GFF","Gilfach Fargoed"],["WAF","Wallyford"],["INR","Inverurie"],["SBK","South Bank"],["ELO","Elton & Orston"],["SPB","Shepherds Bush"],["STE","Streatham"],["CYB","Cefn-y-Bedd"],["HDY","Headingley"],["HCT","Huncoat"],["DYC","Dyce"],["HYD","Heyford"],["PRH","Penrhyndeudraeth"],["SET","Settle"],["WFH","Watford High Street"],["DLR","Dalreoch"],["BKD","Blakedown"],["PTM","Porthmadog"],["ORP","Orpington"],["GBL","Gainsborough Lea Road"],["SCU","Scunthorpe"],["PTH","Perth"],["TAM","Tamworth"],["TRB","Treherbert"],["BXY","Bexley"],["TRY","Treorchy"],["HRS","Horsforth"],["SHV","Southsea Hoverport (Bus)"],["SUM","Summerston"],["WFJ","Watford Junction"],["FYS","Ferryside"],["NUM","Northumberland Park"],["SVL","Staveley"],["CYK","Clydebank"],["HDN","Harlesden"],["PLS","Pleasington"],["TLC","Tal-y-Cafn"],["WAM","Walmer"],["BMG","Barming"],["IFD","Ilford"],["GTA","Great Ayton"],["NBC","New Beckenham"],["LUD","Ludlow"],["FNR","Farningham Road"],["CFN","Clifton Down"],["HAC","Hackney Downs"],["PGM","Pengam"],["RLG","Rayleigh"],["BKG","Barking"],["BLM","Belmont"],["NTC","Newton St Cyres"],["RYE","Rye"],["DBG","Mottisfont & Dunbridge"],["NWI","Northwich"],["PSC","Prescot"],["DKD","Dunkeld & Birnam"],["AGL","Abergele & Pensarn"],["CRF","Carfin"],["SOM","South Milford"],["CRY","Crayford"],["LIU","Lille Europe"],["GLF","Glenfinnan"],["SWI","Swindon"],["SCR","St Columb Road"],["TEO","Theobalds Grove"],["BHM","Birmingham New Street"],["BML","Bramhall"],["WIJ","Willesden Junction"],["COS","Cosford"],["ACG","Acocks Green"],["DVP","Dover Priory"],["MOG","Moorgate"],["ROS","Rosyth"],["WAO","Walton (Merseyside)"],["GNH","Greenhithe for Bluewater"],["RWC","Rawcliffe"],["LES","Leigh-on-Sea"],["HLI","Healing"],["WEY","Weymouth"],["AFK","Ashford International"],["HON","Honiton"],["RCA","Risca & Pontymister"],["BIY","Bingley"],["FOR","Forres"],["KLM","Kilmaurs"],["BOR","Bodorgan"],["BSS","Barassie"],["PUR","Purley"],["MAC","Macclesfield"],["RBR","Robertsbridge"],["HHE","Haywards Heath"],["ALN","Althorne"],["GBK","Greenbank"],["BMV","Bromsgrove"],["GTO","Gorton"],["PMB","Pembroke"],["SKE","Skewen"],["CAU","Causeland"],["PEN","Penarth"],["UPT","Upton"],["BMN","Bromley North"],["ZTH","Tower Hill Underground"],["KYL","Kyle of Lochalsh"],["TTN","Totton"],["HWF","Heathrow Airport T4 (Bus)"],["BMS","Bromley South"],["ASS","Alness"],["SSS","Sheerness-on-Sea"],["CAG","Carrbridge"],["GTH","Garth (Powys)"],["LOF","London Fields"],["BIS","Bishops Stortford"],["BRW","Brunswick"],["CHH","Christs Hospital"],["HHD","Holyhead"],["MFL","Mount Florida"],["DAK","Dalmarnock"],["WSW","Wandsworth Common"],["MDN","Maiden Newton"],["DFL","Dunfermline Queen Margaret"],["IRV","Irvine"],["WHN","Whiston"],["SBS","St Bees"],["PKG","Penkridge"],["SOU","Southampton Central"],["COY","Coryton"],["GGJ","Georgemas Junction"],["SLR","Sleaford"],["DKT","Dorking West"],["SQU","Squires Gate"],["CMD","Camden Road"],["BSO","Basildon"],["CBR","Cooksbridge"],["BYM","Burnley Manchester Road"],["MLF","Milford (Surrey)"],["RYR","Ryde St Johns Road"],["TEY","Teynham"],["TOT","Totnes"],["FRF","Fairfield"],["PUO","Purley Oaks"],["GNF","Greenfield"],["GRY","Grays"],["BGH","Brighouse"],["FKG","Falkirk Grahamston"],["HKH","Hawkhead"],["PYP","Pont-y-Pant"],["FKK","Falkirk High"],["SOV","Southend Victoria"],["MEY","Merryton"]]);var Ge={findStation:function(e){const t=e.toUpperCase(),n=ke.get(t);return console.log(n),n},searchStation:function(e){const t=[],n=e.length<=3,r=e.length>=3,o=new RegExp(`(${e})`,"gi");return ke.forEach((e,a)=>{let i;n&&o.test(a)&&(i=[a,e]),void 0===i&&r&&o.test(e)&&(i=[a,e]),"object"==typeof i&&t.push(i)}),t.slice(0,5)}};let Fe={};Fe=function(){try{return!!localStorage}catch(e){return!1}}()?{save:function(e,t){localStorage[e]=t},load:function(e){return localStorage[e]},exists:function(e){return!(void 0===localStorage[e])}}:{save:function(e,t){document.cookie=`${e}=${encodeURIComponent(t)}`},load:function(e){var t=`; ${document.cookie};`,n=t.indexOf(`; ${e}=`);if(n<0)return"";n=n+e.length+3;var r=t.indexOf(";",n+1);return decodeURIComponent(t.substring(n,r))}};var Ie={partOfDay:function(e,t){console.log(new Date),null==e&&(e=(new Date).getHours().toString()),void 0===t&&(t=!1);const n=e.substring(0,2);let r="";return console.log("Hours",n),r=n>=0&&n<4?"Late Night":n>=4&&n<7?"Early Morning":n>=7&&n<12?"Morning":n>=12&&n<17?"Afternoon":n<21?"Evening":"Night",t&&(r="night"===r?"tonight":"this "+r),console.log("partOfDay",r),r},toHour:function(e=0){return 36e5-(new Date).getTime()%36e5+e},hourFloor:function(){const e=new Date;return parseInt(36e5*~~(e.getTime()/36e5),10).toString(32)},distance:function(e,t,n,r){const o=.017453292519943295,a=Math.cos,i=.5-a((n-e)*o)/2+a(e*o)*a(n*o)*(1-a((r-t)*o))/2;return 12742*Math.asin(Math.sqrt(i))},maybePluralize:(e,t,n="s")=>`${e} ${t}${1!==e?n:""}`,minuteFloor:function(){const e=new Date;return parseInt(6e4*~~(e.getTime()/6e4),10).toString(32)},debounce:function(e,t){let n;return function(...r){clearTimeout(n),n=setTimeout(()=>e.apply(this,r),t)}},throttle:function(e,t){var n=!1;return function(){n||(e.apply(null,arguments),n=!0,setTimeout((function(){n=!1}),t))}},once:function(e){var t,n=!1;return function(){return n||(t=e.apply(this,arguments),n=!0),t}},isEmpty:function(e){for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},LocalStorage:Fe},Oe=function e(t){function n(e,t,r){var o,a={};if(Array.isArray(e))return e.concat(t);for(o in e)a[r?o.toLowerCase():o]=e[o];for(o in t){var i=r?o.toLowerCase():o,l=t[o];a[i]=i in a&&"object"==typeof l?n(a[i],l,"headers"===i):l}return a}function r(e,r,o,a){"string"!=typeof e&&(e=(r=e).url);var i={config:r},l=n(t,r),s={},c=a||l.data;(l.transformRequest||[]).map((function(e){c=e(c,l.headers)||c})),c&&"object"==typeof c&&"function"!=typeof c.append&&(c=JSON.stringify(c),s["content-type"]="application/json");var u=document.cookie.match(RegExp("(^|; )"+l.xsrfCookieName+"=([^;]*)"));if(u&&(s[l.xsrfHeaderName]=u[2]),l.auth&&(s.authorization=l.auth),l.baseURL&&(e=new URL(e,l.baseURL)+""),l.params){var d=~e.indexOf("?")?"&":"?";e+=d+(l.paramsSerializer?l.paramsSerializer(l.params):new URLSearchParams(l.params))}return(l.fetch||fetch)(e,{method:o||l.method,body:c,headers:n(l.headers,s,!0),credentials:l.withCredentials?"include":void 0}).then((function(e){for(var t in e)"function"!=typeof e[t]&&(i[t]=e[t]);return(l.validateStatus?l.validateStatus(e.status):e.ok)?"stream"==l.responseType?(i.data=e.body,i):e[l.responseType||"text"]().then((function(e){i.data=e,i.data=JSON.parse(e)})).catch(Object).then((function(){return i})):Promise.reject(i)}))}return t=t||{},r.request=r,r.get=function(e,t){return r(e,t,"get")},r.delete=function(e,t){return r(e,t,"delete")},r.options=function(e,t){return r(e,t,"options")},r.post=function(e,t,n){return r(e,n,"post",t)},r.put=function(e,t,n){return r(e,n,"put",t)},r.patch=function(e,t,n){return r(e,n,"patch",t)},r.all=Promise.all,r.spread=function(e){return function(t){return e.apply(this,t)}},r.CancelToken="function"==typeof AbortController?AbortController:Object,r.defaults=t,r.create=e,r}(),Ke="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function xe(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var $e,Ye,_e=(function(e,t){ +/*! + localForage -- Offline Storage, Improved + Version 1.9.0 + https://localforage.github.io/localForage + (c) 2013-2017 Mozilla, Apache License 2.0 + */ +e.exports=function e(t,n,r){function o(i,l){if(!n[i]){if(!t[i]){if(!l&&xe)return xe();if(a)return a(i,!0);var s=new Error("Cannot find module '"+i+"'");throw s.code="MODULE_NOT_FOUND",s}var c=n[i]={exports:{}};t[i][0].call(c.exports,(function(e){var n=t[i][1][e];return o(n||e)}),c,c.exports,e,t,n,r)}return n[i].exports}for(var a=xe,i=0;i=43)}})).catch((function(){return!1}))}function w(e){return"boolean"==typeof m?c.resolve(m):L(e).then((function(e){return m=e}))}function b(e){var t=g[e.name],n={};n.promise=new c((function(e,t){n.resolve=e,n.reject=t})),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then((function(){return n.promise})):t.dbReady=n.promise}function H(e){var t=g[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function W(e,t){var n=g[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function v(e,t){return new c((function(n,r){if(g[e.name]=g[e.name]||G(),e.db){if(!t)return n(e.db);b(e),e.db.close()}var o=[e.name];t&&o.push(e.version);var a=i.open.apply(i,o);t&&(a.onupgradeneeded=function(t){var n=a.result;try{n.createObjectStore(e.storeName),t.oldVersion<=1&&n.createObjectStore(S)}catch(n){if("ConstraintError"!==n.name)throw n;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){n(a.result),H(e)}}))}function T(e){return v(e,!1)}function N(e){return v(e,!0)}function R(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),r=e.versione.db.version;if(r&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||n){if(n){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function M(e){return new c((function(t,n){var r=new FileReader;r.onerror=n,r.onloadend=function(n){var r=btoa(n.target.result||"");t({__local_forage_encoded_blob:!0,data:r,type:e.type})},r.readAsBinaryString(e)}))}function P(e){return s([C(atob(e.data))],{type:e.type})}function A(e){return e&&e.__local_forage_encoded_blob}function D(e){var t=this,n=t._initReady().then((function(){var e=g[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return d(n,e,e),n}function E(e){b(e);for(var t=g[e.name],n=t.forages,r=0;r0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return c.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),N(e)})).then((function(){return E(e).then((function(){k(e,t,n,r-1)}))})).catch(n);n(o)}}function G(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function F(e){var t=this,n={db:null};if(e)for(var r in e)n[r]=e[r];var o=g[n.name];o||(o=G(),g[n.name]=o),o.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=D);var a=[];function i(){return c.resolve()}for(var l=0;l>4,u[s++]=(15&r)<<4|o>>2,u[s++]=(3&o)<<6|63&a;return c}function Se(e){var t,n=new Uint8Array(e),r="";for(t=0;t>2],r+=X[(3&n[t])<<4|n[t+1]>>4],r+=X[(15&n[t+1])<<2|n[t+2]>>6],r+=X[63&n[t+2]];return n.length%3==2?r=r.substring(0,r.length-1)+"=":n.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function me(e,t){var n="";if(e&&(n=he.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===he.call(e.buffer))){var r,o=Z;e instanceof ArrayBuffer?(r=e,o+=ee):(r=e.buffer,"[object Int8Array]"===n?o+=ne:"[object Uint8Array]"===n?o+=re:"[object Uint8ClampedArray]"===n?o+=oe:"[object Int16Array]"===n?o+=ae:"[object Uint16Array]"===n?o+=le:"[object Int32Array]"===n?o+=ie:"[object Uint32Array]"===n?o+=se:"[object Float32Array]"===n?o+=ce:"[object Float64Array]"===n?o+=ue:t(new Error("Failed to get type for BinaryArray"))),t(o+Se(r))}else if("[object Blob]"===n){var a=new FileReader;a.onload=function(){var n=Q+e.type+"~"+Se(this.result);t(Z+te+n)},a.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(n){console.error("Couldn't convert value into a JSON string: ",e),t(null,n)}}function ge(e){if(e.substring(0,q)!==Z)return JSON.parse(e);var t,n=e.substring(de),r=e.substring(q,de);if(r===te&&z.test(n)){var o=n.match(z);t=o[1],n=n.substring(o[0].length)}var a=fe(n);switch(r){case ee:return a;case te:return s([a],{type:t});case ne:return new Int8Array(a);case re:return new Uint8Array(a);case oe:return new Uint8ClampedArray(a);case ae:return new Int16Array(a);case le:return new Uint16Array(a);case ie:return new Int32Array(a);case se:return new Uint32Array(a);case ce:return new Float32Array(a);case ue:return new Float64Array(a);default:throw new Error("Unkown type: "+r)}}var ye={serialize:me,deserialize:ge,stringToBuffer:fe,bufferToString:Se};function Be(e,t,n,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function pe(e){var t=this,n={db:null};if(e)for(var r in e)n[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new c((function(e,r){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(e){return r(e)}n.db.transaction((function(o){Be(o,n,(function(){t._dbInfo=n,e()}),(function(e,t){r(t)}))}),r)}));return n.serializer=ye,o}function Ce(e,t,n,r,o,a){e.executeSql(n,r,o,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,l){l.rows.length?a(e,i):Be(e,t,(function(){e.executeSql(n,r,o,a)}),a)}),a):a(e,i)}),a)}function Le(e,t){var n=this;e=h(e);var r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,n){var r=n.rows.length?n.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return u(r,t),r}function we(e,t){var n=this,r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"SELECT * FROM "+o.storeName,[],(function(n,r){for(var a=r.rows,i=a.length,l=0;l0)return void a(be.apply(o,[e,l,n,r-1]));i(t)}}))}))})).catch(i)}));return u(a,n),a}function He(e,t,n){return be.apply(this,[e,t,n,1])}function We(e,t){var n=this;e=h(e);var r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){r(t)}))}))})).catch(r)}));return u(r,t),r}function ve(e){var t=this,n=new c((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Ce(t,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,t){n(t)}))}))})).catch(n)}));return u(n,e),n}function Te(e){var t=this,n=new c((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Ce(t,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(t,n){var r=n.rows.item(0).c;e(r)}),(function(e,t){n(t)}))}))})).catch(n)}));return u(n,e),n}function Ne(e,t){var n=this,r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,n){var r=n.rows.length?n.rows.item(0).key:null;t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return u(r,t),r}function Re(e){var t=this,n=new c((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Ce(t,r,"SELECT key FROM "+r.storeName,[],(function(t,n){for(var r=[],o=0;o '__WebKitDatabaseInfoTable__'",[],(function(n,r){for(var o=[],a=0;a0}function Fe(e){var t=this,n={};if(e)for(var r in e)n[r]=e[r];return n.keyPrefix=Ee(e,t._defaultConfig),Ge()?(t._dbInfo=n,n.serializer=ye,c.resolve()):c.reject()}function Ie(e){var t=this,n=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,n=localStorage.length-1;n>=0;n--){var r=localStorage.key(n);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return u(n,e),n}function Oe(e,t){var n=this;e=h(e);var r=n.ready().then((function(){var t=n._dbInfo,r=localStorage.getItem(t.keyPrefix+e);return r&&(r=t.serializer.deserialize(r)),r}));return u(r,t),r}function Ke(e,t){var n=this,r=n.ready().then((function(){for(var t=n._dbInfo,r=t.keyPrefix,o=r.length,a=localStorage.length,i=1,l=0;l=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}})):c.reject("Invalid arguments"),t),r}var Je={_driver:"localStorageWrapper",_initStorage:Fe,_support:De(),iterate:Ke,getItem:Oe,setItem:Ue,removeItem:_e,clear:Ie,length:Ye,key:xe,keys:$e,dropInstance:Ve},je=function(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)},Xe=function(e,t){for(var n=e.length,r=0;r> wsUrl",t),this.socket=null,this.timer=0,this.clock=null,this.connected=!1,this.connectBuffer=[],this.startWebSocket=function(){const e=""===n?t:`${t}:${n}`;console.log("Starting socket",e);const r=window.MozWebSocket?MozWebSocket:WebSocket;this.socket=new r(e,"stream"),this.socket.onopen=this.handleWebsocketOnOpen.bind(this),this.socket.onmessage=this.handleWebsocketMessage.bind(this),this.socket.onclose=this.handleWebsocketClose.bind(this),this.socket.onerror=function(e){console.error(e)}},this.subscribe=function(e){console.log("Subscribe::",e);const t={request:"SUBSCRIBE",message:"",channel:e};this.connected?this.socket.send(JSON.stringify(t)):this.connectBuffer.push(JSON.stringify(t))},this.send=function(e){console.log("Sending",e),this.socket.send(e)},this.handleData=function(t){e.trigger("message",t)},this.handleBuffer=function(){for(console.log("*** handleBuffer");this.connectBuffer.length>0;){const e=this.connectBuffer.shift();this.socket.send(e)}},this.handleWebsocketOnOpen=function(){this.retry=0,console.log("**** Websocket Connected ****"),this.clock=new Date,this.connected=!0,setTimeout(()=>{this.handleBuffer()},1500)},this.handleWebsocketMessage=function(e){let t;try{console.log("handleWebsocketMessage::raw",e),t=JSON.parse(e.data),console.log("handleWebsocketMessage::command",t)}catch(e){}t&&this.handleData.call(this,t)},this.handleWebsocketClose=function(){console.error("WebSocket Connection Closed.");console.log("Socket alive for",.001);const e=this;console.log("Waiting ",15e3),this.timer=setTimeout((function(){e.startWebSocket()}),15e3)},this.startWebSocket()},Ve=[{follow:!1,name:"nationalrailenq",id:33546465},{follow:!1,name:"networkrail",id:365344176},{follow:!1,name:"NetworkRailSCOT",id:402687948},{follow:!1,name:"AvantiWestCoast",id:0xfdebe737417a000},{follow:!1,name:"CalSleeper",id:2870293725},{follow:!1,name:"CrossCountryUK",id:153368708},{follow:!1,name:"Eurostar",id:98412169},{follow:!1,name:"EurostarUK",id:59742254},{follow:!1,name:"GatwickExpress",id:163816182},{follow:!1,name:"GlasgowSubway",id:224607925},{follow:!1,name:"GWRHelp",id:15589815},{follow:!1,name:"HeathrowExpress",id:20240678},{follow:!1,name:"LNER",id:313306238},{follow:!1,name:"LNRailway",id:0xca2b366c356b000},{follow:!1,name:"northernassist",id:194512268},{follow:!1,name:"ScotRail",id:61569136},{follow:!1,name:"Stansted_Exp",id:257511611},{follow:!1,name:"TfL",id:47319664},{follow:!1,name:"WestMidRailway",id:0xcb4b3f097575000},{follow:!1,name:"NetworkRailBHM",id:583910976},{follow:!1,name:"NetworkRailEDB",id:586614081},{follow:!1,name:"NetworkRailEUS",id:581807264},{follow:!1,name:"NetworkRailGLC",id:421061171},{follow:!1,name:"NetworkRailKGX",id:459192871},{follow:!1,name:"NetworkRailLST",id:581826097},{follow:!1,name:"NetworkRailMAN",id:583895871},{follow:!1,name:"NetworkRailVIC",id:587354752},{follow:!1,name:"BTP",id:266094415},{follow:!1,name:"BTPAvonSomerset",id:0xa40431bb2d69000},{follow:!1,name:"BTPBhm",id:952003488},{follow:!1,name:"BTPBlackCountry",id:0xaa76997f5562000},{follow:!1,name:"BTPCambs",id:2574726074},{follow:!1,name:"BTPCardiff_NWP",id:951714852},{follow:!1,name:"BTPEAnglia",id:4479942923},{follow:!1,name:"BTPEssex",id:2949032015},{follow:!1,name:"BTPGtrMcr",id:1670204977},{follow:!1,name:"BTPLeics",id:0xa9023573bd76000},{follow:!1,name:"BTPLiverpoolSt",id:951912242},{follow:!1,name:"BTPLondon",id:957226980},{follow:!1,name:"BTPLondonBridge",id:3346645594},{follow:!1,name:"BTPMersey",id:951748434},{follow:!1,name:"BTPNorthScot",id:2238888007},{follow:!1,name:"BTPNorthWales",id:951487338},{follow:!1,name:"BTPOxon",id:0xa495f93bb965000},{follow:!1,name:"BTPPontypridd",id:1672678292},{follow:!1,name:"BTPScotland",id:957256160},{follow:!1,name:"BTPSouthYorks",id:3384315676},{follow:!1,name:"BTPTeesValley",id:0xb21ed0d43964000},{follow:!1,name:"BTPUnderground",id:0xdafd09816950000},{follow:!1,name:"BTPWales",id:1430734374},{follow:!1,name:"BTPWaterloo",id:951997044},{follow:!1,name:"BTPWestScot",id:951757261}];let Je=location.port?":"+location.port:"",je=`${location.protocol}//${location.hostname}${Je}`,Xe=!1;const Qe={},ze={newTweets:pe([]),twitterFollowing:pe({}),twitterFollowingList:pe([]),tweetList:pe([]),tweets:pe([]),favourites:pe([]),routes:pe([]),routeIndex:pe(0),incrementRouteIndex(){this.routeIndex.update(e=>e+1)},async saveRoute(e){const t={...e};t.id=s(this.routeIndex),this.routes.update(e=>[...e,t]),this.incrementRouteIndex()},deleteRoute(e){const t=s(this.routes).slice(0,e),n=s(this.routes).slice(e+1);this.routes.set([...t,...n])},async getTweets(){const e=s(ze.twitterFollowingList).map(e=>e[1].id),t=je.concat("/twitter");Oe({method:"post",url:t,data:{list:e}}).then(e=>{const t=e.data;this.newTweets.set(t)}).catch(e=>{console.error("Store:getTweets",e)})},getTweetByID(e){return s(this.tweets).get(e)},getTwitterFollowing(){return s(this.twitterFollowing)},saveTwitterFollowing(e){this.twitterFollowing.set(e)},getBaseUrl:()=>je,updateTweetList(e){this.tweetList.update(t=>[e,...t])},updateTwitter(e){this.tweets.update(t=>t.set(e.id,e))},updateNewTweets(e){this.newTweets.update(t=>{let n=[...t];return n.unshift(e),n=n.slice(0,49),n})},trigger(e,t){if(console.log("trigger",t),t.hasOwnProperty("message")){const e=t.message;this.updateNewTweets(e)}}},Ze=new Ue(ze);function qe(t){let n,r,o,a,i,l,s,c,u,d,h,f,S,B;return{c(){n=p("div"),r=p("div"),o=p("div"),a=C(t[0]),i=L(),l=p("div"),s=C(t[1]),c=L(),u=p("div"),d=p("span"),h=C(t[2]),H(r,"class","entry col-8 ml--1 svelte-10t8pfm"),H(d,"class",f="btn "+t[3]+" svelte-10t8pfm"),H(u,"class","entry col-4 text-center svelte-10t8pfm"),H(n,"class","row TRcard svelte-10t8pfm")},m(e,f){g(e,n,f),m(n,r),m(r,o),m(o,a),m(r,i),m(r,l),m(l,s),m(n,c),m(n,u),m(u,d),m(d,h),S||(B=b(d,"click",t[4]),S=!0)},p(e,[t]){1&t&&W(a,e[0]),2&t&&W(s,e[1]),4&t&&W(h,e[2]),8&t&&f!==(f="btn "+e[3]+" svelte-10t8pfm")&&H(d,"class",f)},i:e,o:e,d(e){e&&y(n),S=!1,B()}}}function et(e,t,n){let r,o,a,i,l,s,{destStation:c}=t,{startStation:u}=t,d=ze.getBaseUrl(),h={eta:"OFF",sta:"OFF"},f=0,S=0;async function m(){console.log(`Update: ${u} / ${c}`);const e=new Date,t=e.getHours()<6?36e5:95e3,r=t-e.getTime()%t;S=e.getTime()+r,await async function(){const e=Ie.minuteFloor(),t=a.concat("&mh="+e);Oe.get(t).then(e=>{n(8,h={...e.data}),console.dir(h)}).catch(e=>{console.error("TrainRoute:getTrain",e)})}(),clearTimeout(f),f=0,f=setTimeout(m,r+10)}return k(async()=>{if(Ie.LocalStorage.exists(`${u}${c}`)){const e=JSON.parse(Ie.LocalStorage.load(`${u}${c}`));n(8,h={...h,...e.trainData}),S=e.due,n(0,r=e.startStationName),n(1,o=e.destStationName),a=e.url}else n(0,r=Ge.findStation(u)),n(1,o=Ge.findStation(c)),a=`${d}/getnexttraintimes?from=${u}&to=${c}`;const e=(new Date).getTime();e>S?m():(f=0,f=setTimeout(m,S-e))}),G(async()=>{clearInterval(f);const e={due:S,trainData:h,startStationName:r,destStationName:o,url:a};Ie.LocalStorage.save(`${u}${c}`,JSON.stringify(e))}),e.$$set=e=>{"destStation"in e&&n(5,c=e.destStation),"startStation"in e&&n(6,u=e.startStation)},e.$$.update=()=>{352&e.$$.dirty&&(n(3,l="On time"===h.eta?"ontime":"delayed"),n(2,i="On time"===h.eta?h.sta:h.eta),s=`#/timetable/${u}/${c}`)},[r,o,i,l,function(){ve(s)},c,u]}_e.getItem("twitterFollowing").then(e=>{console.log("localForage::twitterFollowing",e),null!==e?ze.twitterFollowing.set(e):(Ve.forEach(e=>{Qe[e.name]={id:e.id,follow:!1}}),ze.twitterFollowing.set(Qe),_e.setItem("twitterFollowing",Qe).catch(e=>{console.error(e)}))}).catch(e=>{console.error(e)}),_e.getItem("favourites").then(e=>{null!==e&&ze.favourites.set(e)}).catch(e=>{console.error(e)}),_e.getItem("routes").then(e=>{null!==e&&ze.routes.set(e)}).catch(e=>{console.error(e)}),_e.getItem("routeIndex").then(e=>{null!==e&&ze.routeIndex.set(e)}).catch(e=>{console.error(e)}),ze.favourites.subscribe(e=>{console.log(">> Store.state.favourites",e)}),ze.routes.subscribe(e=>{Xe&&_e.setItem("routes",e).catch(e=>{console.error(e)})}),ze.routeIndex.subscribe(e=>{Xe&&_e.setItem("routeIndex",e).catch(e=>{console.error(e)})}),ze.twitterFollowing.subscribe(e=>{Xe&&_e.setItem("twitterFollowing",e).catch(e=>{console.error(e)});const t=Object.entries(s(ze.twitterFollowing)).filter(e=>{if(e[1].follow)return e});ze.twitterFollowingList.set(t)}),ze.twitterFollowingList.subscribe(e=>{0!==e.length&&(console.log("twitterFollowingList",e.length),e.forEach(e=>{const t=e[1].id;Ze.subscribe("t-"+t)}))}),ze.newTweets.subscribe(e=>{if(0===e.length)return;console.log(">> newTweets",e.length);const t=e.sort((e,t)=>t.ts-e.ts).map(e=>e.id),n=e.map(e=>[e.id,e]);ze.tweetList.set(t),ze.tweets.set(new Map(n))}),setTimeout(()=>{Xe=!0},250);class tt extends ge{constructor(e){super(),me(this,e,et,qe,i,{destStation:5,startStation:6})}}function nt(e,t,n){const r=e.slice();return r[1]=t[n],r}function rt(e){let t,n;return t=new tt({props:{destStation:e[1].destStation.id,startStation:e[1].startStation.id}}),{c(){he(t.$$.fragment)},m(e,r){fe(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.destStation=e[1].destStation.id),1&n&&(r.startStation=e[1].startStation.id),t.$set(r)},i(e){n||(ae(t.$$.fragment,e),n=!0)},o(e){ie(t.$$.fragment,e),n=!1},d(e){Se(t,e)}}}function ot(e){let t,n,r=e[0],o=[];for(let t=0;tie(o[e],1,1,()=>{o[e]=null});return{c(){t=p("div");for(let e=0;e{n(0,r=e)}),[r]}var it={reduceOtherDetails(e){const t=[];let n=0;const r=/<\s*[aA].*?href\s*=\s*(?:"|')(.*?)(?:"|')[^>]*>(.*?)<\s*?\/\s*?[aA]\s*?>/;if("object"==typeof e.nrccMessages&&null!==e.nrccMessages)for(const o of e.nrccMessages){const e={index:0,msg:"",link:null,linkText:""};let a=o.value.replace(' ">','">').replace("","").replace("/gi,"");const i=r.exec(o.value);a=a.replace(r,""),e.index=n,e.msg=a,null!==i&&(e.link=i[1],e.linkText=i[2]),t.push(e),n++}return{nrMessages:t,nrMessagesExist:t.length>0}},reduceTrainTimetable(e){const t=[];let n="";const r=["💠","🚉"];if("object"==typeof e&&null!==e){if(console.log(">> reduceTrainService"),"object"==typeof e.trainServices&&null!==e.trainServices)for(const o of e.trainServices){const e=o.destination[0],a=null!==e.via?e.via:"",i=null!==o.platform?o.platform:""+r[0],l=null!==o.sta?o.sta:"D "+o.std,s=null===o.sta,c=null!==o.eta?o.eta:o.etd,u=o.length,d=u>0?` (${u} 🚃) `:"",h="on time"===c.toLowerCase()?"ontime":"delayed",f=null!==o.delayReason?o.delayReason:"",S=null!==o.cancelReason?o.cancelReason:"No reason given 🤷",m=o.serviceIdUrlSafe;t.push({location:e.locationName,time:l,status:c,platform:i,cancel:S,type:"train",delay:f,carriageCount:d,via:a,statusMode:h,isCancelled:o.isCancelled,isDeparture:s,serviceIdUrlSafe:m}),n=o.isCancelled?`${n}${e.locationName} ${a}${l}\n ❌ ${S}`:`${n}${e.locationName}${d}${a}\n ${l}\n ${c}\n ${i}\n ${f}`}if("object"==typeof e.busServices&&null!==e.busServices)for(const n of e.busServices){const e=n.destination[0],r=null!==e.via?e.via:"",o=null!==n.platform?n.platform:"",a=null!==n.sta?n.sta:"D "+n.std,i=null!==n.eta?n.eta:n.etd;t.push({location:e.locationName,time:a,status:i,platform:o,cancel:n.cancelReason,type:"bus",via:r})}}return console.log(t),t},reduceTrainService(e){let t=[];const n=e.sta||e.std,r=e.eta||e.etd,o={locationName:e.locationName,crs:e.crs,st:e.sta,et:e.eta,at:e.ata,isCancelled:e.isCancelled,length:e.length,detachFront:e.detachFront,adhocAlerts:e.adhocAlerts};return null!==e.previousCallingPoints&&(t=t.concat(e.previousCallingPoints[0].callingPoint)),t.push(o),null!==e.subsequentCallingPoints&&(t=t.concat(e.subsequentCallingPoints[0].callingPoint)),t=t.map(e=>(e.et=null===e.et?"":e.et,e.at=null===e.at?"":e.at,e.etMode="on time"===e.et.toLowerCase()?"ontime":"delayed",e.atMode="on time"===e.at.toLowerCase()?"ontime":"delayed",e.delayReason=null!==e.delayReason?e.delayReason:"",e.cancelReason=null!==e.cancelReason?e.cancelReason:"No reason given 🤷",e.classCancel=e.isCancelled?"cancelledRow":"",null!==e.st||null!==e.et&&""!==e.et||(e.st="D "+n,e.et=r),e)),t}};function lt(e,t,n){const r=e.slice();return r[5]=t[n],r}function st(e){let t,n=e[0],r=[];for(let t=0;t0&&st(t);return{c(){n=p("section"),r=p("div"),r.innerHTML='
Station
\n
Due
\n
Estimated
\n
Arrived
',o=L(),a&&a.c(),H(r,"class","grid card text-subhead")},m(e,t){g(e,n,t),m(n,r),m(n,o),a&&a.m(n,null)},p(e,[t]){e[0].length>0?a?a.p(e,t):(a=st(e),a.c(),a.m(n,null)):a&&(a.d(1),a=null)},i:e,o:e,d(e){e&&y(n),a&&a.d()}}}function dt(e,t,n){let r,{serviceId:o}=t,a=[],i=ze.getBaseUrl();async function l(){{const e="/getservice?serviceid="+o,t=i.concat(e);await Oe.get(t).then(e=>{const t=JSON.parse(e.data);n(0,a=it.reduceTrainService(t))})}}return k(async()=>{await l(),r=setInterval(async()=>{console.log("Service update"),await l()},12e4)}),G(async()=>{clearInterval(r)}),e.$$set=e=>{"serviceId"in e&&n(1,o=e.serviceId)},[a,o]}class ht extends ge{constructor(e){super(),me(this,e,dt,ut,i,{serviceId:1})}}function ft(t){let n,r,o;return r=new ht({props:{serviceId:t[0]}}),{c(){n=p("div"),he(r.$$.fragment),H(n,"class","container")},m(e,t){g(e,n,t),fe(r,n,null),o=!0},p:e,i(e){o||(ae(r.$$.fragment,e),o=!0)},o(e){ie(r.$$.fragment,e),o=!1},d(e){e&&y(n),Se(r)}}}function St(e,t,n){let{params:r={}}=t,o=r.serviceId;return e.$$set=e=>{"params"in e&&n(1,r=e.params)},[o,r]}function mt(e,t,n){const r=e.slice();return r[8]=t[n],r[10]=n,r}function gt(e,t,n){const r=e.slice();return r[8]=t[n],r}function yt(e){let t,n,r=e[1].nrMessages,o=[];for(let t=0;te[8].serviceIdUrlSafe;for(let t=0;t{v||(v=se(n,De,{},!0)),v.run(1)}),T=!0)},o(e){e&&(v||(v=se(n,De,{},!1)),v.run(0)),T=!1},d(e){e&&y(n),D&&D.d(),G.d(),e&&v&&v.end(),N=!1,R()}}}function Wt(e){let t,n,r,o,a=!0===e[1].nrMessagesExist&&yt(e),i=e[0].length>0&&Ct(e);return{c(){t=p("div"),n=p("section"),a&&a.c(),r=L(),i&&i.c()},m(e,l){g(e,t,l),m(t,n),a&&a.m(n,null),m(n,r),i&&i.m(n,null),o=!0},p(e,[t]){!0===e[1].nrMessagesExist?a?a.p(e,t):(a=yt(e),a.c(),a.m(n,r)):a&&(a.d(1),a=null),e[0].length>0?i?(i.p(e,t),1&t&&ae(i,1)):(i=Ct(e),i.c(),ae(i,1),i.m(n,null)):i&&(re(),ie(i,1,1,()=>{i=null}),oe())},i(e){o||(ae(i),o=!0)},o(e){ie(i),o=!1},d(e){e&&y(t),a&&a.d(),i&&i.d()}}}function vt(e,t,n){let r,{fromStation:o}=t,{destStation:a}=t,i=[],l={},s=ze.getBaseUrl();async function c(){{const e=`/gettrains?from=${o}&to=${a}`,t=s.concat(e);await Oe.get(t).then(e=>{const t={...e.data};n(0,i=it.reduceTrainTimetable(t)),n(1,l=it.reduceOtherDetails(t))})}}return k(async()=>{await c(),r=setInterval(async()=>{console.log("Timetable update"),await c()},12e4)}),G(async()=>{clearInterval(r)}),e.$$set=e=>{"fromStation"in e&&n(3,o=e.fromStation),"destStation"in e&&n(4,a=e.destStation)},[i,l,function(e){ve("/service/"+e)},o,a]}class Tt extends ge{constructor(e){super(),me(this,e,vt,Wt,i,{fromStation:3,destStation:4})}}function Nt(e){let t,n,r,o,a,i,l,s,c;return s=new Tt({props:{fromStation:e[2],destStation:e[3]}}),{c(){t=p("div"),n=p("div"),r=p("div"),o=C(e[0]),a=C(" TO "),i=C(e[1]),l=L(),he(s.$$.fragment),H(r,"class","text-center text-dark text-subhead"),H(t,"class","container")},m(e,u){g(e,t,u),m(t,n),m(n,r),m(r,o),m(r,a),m(r,i),m(n,l),fe(s,n,null),c=!0},p(e,[t]){(!c||1&t)&&W(o,e[0]),(!c||2&t)&&W(i,e[1])},i(e){c||(ae(s.$$.fragment,e),c=!0)},o(e){ie(s.$$.fragment,e),c=!1},d(e){e&&y(t),Se(s)}}}function Rt(e,t,n){let r,o,{params:a={}}=t,i=a.fromStation,l=a.destStation;return k(async()=>{n(0,r=Ge.findStation(i)),n(1,o=Ge.findStation(l))}),e.$$set=e=>{"params"in e&&n(4,a=e.params)},[r,o,i,l,a]}function Mt(e,t,n){const r=e.slice();return r[9]=t[n],r[11]=n,r}function Pt(e){let t,n=e[4],r=[];for(let t=0;t0&&Pt(t);return{c(){n=p("span"),r=p("label"),i=C(t[1]),l=L(),s=p("input"),c=L(),h&&h.c(),H(r,"for",t[0]),H(s,"class","betterInput svelte-1up86vp"),H(s,"autocomplete","off"),H(s,"name",t[0]),H(n,"class","mui-dropdown mui-dropdown--right svelte-1up86vp")},m(e,o){g(e,n,o),m(n,r),m(r,i),m(n,l),m(n,s),v(s,t[2]),m(n,c),h&&h.m(n,null),u||(d=[b(s,"keyup",(function(){a(t[3])&&t[3].apply(this,arguments)})),b(s,"input",t[7])],u=!0)},p(e,[o]){t=e,2&o&&W(i,t[1]),1&o&&H(r,"for",t[0]),1&o&&H(s,"name",t[0]),4&o&&s.value!==t[2]&&v(s,t[2]),t[4].length>0?h?h.p(t,o):(h=Pt(t),h.c(),h.m(n,null)):h&&(h.d(1),h=null)},i:e,o:e,d(e){e&&y(n),h&&h.d(),u=!1,o(d)}}}function Et(e,t,n){let r,{returnValue:o=""}=t,a="",{name:i}=t,{label:l}=t,s=[];function c(){n(6,o=""),a.length>=2?n(4,s=Ge.searchStation(a)):n(4,s=[])}return k(async()=>{n(3,r=Ie.debounce(c,750))}),e.$$set=e=>{"returnValue"in e&&n(6,o=e.returnValue),"name"in e&&n(0,i=e.name),"label"in e&&n(1,l=e.label)},e.$$.update=()=>{64&e.$$.dirty&&""===o&&n(2,a="")},[i,l,a,r,s,function(e){let[t,r]=e.target.dataset.content.split(",");n(6,o={id:t,name:r}),n(2,a=r),n(4,s=[])},o,function(){a=this.value,n(2,a),n(6,o)}]}class kt extends ge{constructor(e){super(),me(this,e,Et,Dt,i,{returnValue:6,name:0,label:1})}}function Gt(t){let n,r,o,a;return{c(){n=p("div"),r=p("button"),r.textContent="Add a new route",H(r,"class","btn btn-primary"),H(r,"id","new"),H(r,"type","button")},m(e,i){g(e,n,i),m(n,r),o||(a=b(r,"click",t[6]),o=!0)},p:e,i:e,o:e,d(e){e&&y(n),o=!1,a()}}}function Ft(e){let t,n,r,a,i,l,s,c,u,d,h,f,S,B,w,W,v,T,N,R,M,P,A,D;function E(t){e[7].call(null,t)}let k={label:"Departure Station",name:"startStation"};function G(t){e[8].call(null,t)}void 0!==e[1]&&(k.returnValue=e[1]),s=new kt({props:k}),O.push(()=>de(s,"returnValue",E));let F={label:"Destination Station",name:"destStation"};return void 0!==e[2]&&(F.returnValue=e[2]),S=new kt({props:F}),O.push(()=>de(S,"returnValue",G)),{c(){t=p("div"),n=p("div"),r=p("div"),r.textContent="New Route",a=L(),i=p("div"),l=p("div"),he(s.$$.fragment),u=L(),d=p("div"),d.innerHTML='',h=L(),f=p("div"),he(S.$$.fragment),w=L(),W=p("div"),v=p("button"),v.textContent="Close",T=L(),N=p("button"),R=C("Save"),H(r,"class","text-subhead"),H(l,"class",""),H(d,"class","text-center"),H(f,"class",""),H(i,"class","grid-3"),H(v,"class","btn btn-sm"),H(v,"type","button"),H(N,"class","btn btn-primary btn-sm"),H(N,"id","save"),H(N,"type","button"),N.disabled=M=!e[3],H(W,"class","my text-right"),H(n,"class","mui-row card"),H(t,"class","container ")},m(o,c){g(o,t,c),m(t,n),m(n,r),m(n,a),m(n,i),m(i,l),fe(s,l,null),m(i,u),m(i,d),m(i,h),m(i,f),fe(S,f,null),m(n,w),m(n,W),m(W,v),m(W,T),m(W,N),m(N,R),P=!0,A||(D=[b(v,"click",e[4]),b(N,"click",e[5])],A=!0)},p(e,t){const n={};!c&&2&t&&(c=!0,n.returnValue=e[1],J(()=>c=!1)),s.$set(n);const r={};!B&&4&t&&(B=!0,r.returnValue=e[2],J(()=>B=!1)),S.$set(r),(!P||8&t&&M!==(M=!e[3]))&&(N.disabled=M)},i(e){P||(ae(s.$$.fragment,e),ae(S.$$.fragment,e),P=!0)},o(e){ie(s.$$.fragment,e),ie(S.$$.fragment,e),P=!1},d(e){e&&y(t),Se(s),Se(S),A=!1,o(D)}}}function It(e){let t,n,r,o;const a=[Ft,Gt],i=[];function l(e,t){return e[0]?0:1}return t=l(e),n=i[t]=a[t](e),{c(){n.c(),r=w()},m(e,n){i[t].m(e,n),g(e,r,n),o=!0},p(e,[o]){let s=t;t=l(e),t===s?i[t].p(e,o):(re(),ie(i[s],1,1,()=>{i[s]=null}),oe(),n=i[t],n||(n=i[t]=a[t](e),n.c()),ae(n,1),n.m(r.parentNode,r))},i(e){o||(ae(n),o=!0)},o(e){ie(n),o=!1},d(e){i[t].d(e),e&&y(r)}}}function Ot(e,t,n){let r,o,a,i=!1;function l(){n(1,r=""),n(2,o=""),n(0,i=!1)}return e.$$.update=()=>{6&e.$$.dirty&&(console.log("typeof startStation",typeof r),n(3,a="object"==typeof r&&"object"==typeof o))},[i,r,o,a,l,async function(){await ze.saveRoute({startStation:r,destStation:o}),l()},function(){n(0,i=!0)},function(e){r=e,n(1,r)},function(e){o=e,n(2,o)}]}class Kt extends ge{constructor(e){super(),me(this,e,Ot,It,i,{})}}function xt(t){let n,r,a,i,l,s,c,u,d,h,f,S;return{c(){n=p("div"),r=p("button"),r.textContent="Delete",a=L(),i=p("button"),i.textContent="Edit",l=L(),s=p("button"),s.textContent="Flip",c=L(),u=p("button"),u.textContent="Close",H(r,"class","btn btn-danger btn-sm"),H(r,"id","delete"),H(r,"type","button"),H(i,"class","btn btn-primary btn-sm"),H(i,"id","save"),H(i,"type","button"),H(s,"class","btn btn-primary btn-sm"),H(s,"id","flip"),H(s,"type","button"),H(u,"class","btn btn-sm"),H(u,"type","button"),H(n,"class","my grid-4")},m(e,o){g(e,n,o),m(n,r),m(n,a),m(n,i),m(n,l),m(n,s),m(n,c),m(n,u),h=!0,f||(S=[b(r,"click",t[2]),b(i,"click",Yt),b(s,"click",t[4]),b(u,"click",t[3])],f=!0)},p:e,i(e){h||(V(()=>{d||(d=se(n,Ee,{},!0)),d.run(1)}),h=!0)},o(e){d||(d=se(n,Ee,{},!1)),d.run(0),h=!1},d(e){e&&y(n),e&&d&&d.end(),f=!1,o(S)}}}function $t(n){let r,i,l,s,c,d,h,f,B,w,v,T,N,R,M,D,E,k=n[0].startStation.name+"",G=n[0].destStation.name+"",F=n[1]&&xt(n);return{c(){r=p("div"),i=p("div"),l=p("div"),s=C(k),c=L(),d=p("div"),d.innerHTML='',h=L(),f=p("div"),B=C(G),w=L(),v=p("div"),T=p("button"),T.innerHTML='',N=L(),F&&F.c(),H(l,"class","col-5"),H(d,"class","col-1"),H(f,"class","col-5"),H(T,"class","btn btn-sm--slim"),H(v,"class","col-1"),H(i,"class","grid card ")},m(e,t){g(e,r,t),m(r,i),m(i,l),m(l,s),m(i,c),m(i,d),m(i,h),m(i,f),m(f,B),m(i,w),m(i,v),m(v,T),m(r,N),F&&F.m(r,null),M=!0,D||(E=b(T,"click",n[6]),D=!0)},p(e,[t]){(!M||1&t)&&k!==(k=e[0].startStation.name+"")&&W(s,k),(!M||1&t)&&G!==(G=e[0].destStation.name+"")&&W(B,G),e[1]?F?(F.p(e,t),2&t&&ae(F,1)):(F=xt(e),F.c(),ae(F,1),F.m(r,null)):F&&(re(),ie(F,1,1,()=>{F=null}),oe())},i(e){M||(ae(F),R&&R.end(1),M=!0)},o(n){ie(F),n&&(R=function(n,r,i){let l,s=r(n,i),c=!0;const d=ne;function h(){const{delay:r=0,duration:a=300,easing:i=t,tick:h=e,css:f}=s||le;f&&(l=P(n,1,0,a,r,i,f));const m=u()+r,g=m+a;V(()=>ee(n,!1,"start")),S(e=>{if(c){if(e>=g)return h(0,1),ee(n,!1,"end"),--d.r||o(d.c),!1;if(e>=m){const t=i((e-m)/a);h(1-t,t)}}return c})}return d.r+=1,a(s)?q().then(()=>{s=s(),h()}):h(),{end(e){e&&s.tick&&s.tick(1,0),c&&(l&&A(n,l),c=!1)}}}(r,Ee,{})),M=!1},d(e){e&&y(r),F&&F.d(),e&&R&&R.end(),D=!1,E()}}}function Yt(){}function _t(e,t,n){let{item:r}=t,{id:o}=t,a=!1;return e.$$set=e=>{"item"in e&&n(0,r=e.item),"id"in e&&n(5,o=e.id)},[r,a,function(){console.log("delete: "+o),n(1,a=!1),ze.deleteRoute(o)},function(){n(1,a=!1)},function(){console.log("flipItem: "+o)},o,()=>n(1,a=!a)]}class Ut extends ge{constructor(e){super(),me(this,e,_t,$t,i,{item:0,id:5})}}function Vt(e,t,n){const r=e.slice();return r[1]=t[n],r[3]=n,r}function Jt(e,t){let n,r,o;return r=new Ut({props:{item:t[1],id:t[3]}}),{key:e,first:null,c(){n=w(),he(r.$$.fragment),this.first=n},m(e,t){g(e,n,t),fe(r,e,t),o=!0},p(e,t){const n={};1&t&&(n.item=e[1]),1&t&&(n.id=e[3]),r.$set(n)},i(e){o||(ae(r.$$.fragment,e),o=!0)},o(e){ie(r.$$.fragment,e),o=!1},d(e){e&&y(n),Se(r,e)}}}function jt(e){let t,n,r=[],o=new Map,a=e[0];const i=e=>e[1].id;for(let t=0;t{n(0,r=e)}),[r]}class Qt extends ge{constructor(e){super(),me(this,e,Xt,jt,i,{})}}function zt(e,t,n){const r=e.slice();return r[4]=t[n],r[5]=t,r[6]=n,r}function Zt(e){let t,n=Ve,r=[];for(let t=0;t{n(0,r=ze.getTwitterFollowing()),n(1,o=Object.keys(r).length>0)});const a=ze.twitterFollowing.subscribe(async e=>{n(0,r=e),n(1,o=Object.keys(r).length>0),console.log("_following",r)});return G(async()=>{ze.saveTwitterFollowing(r),a()}),[r,o,function(e){r[e.name].follow=this.checked,n(0,r)}]}class nn extends ge{constructor(e){super(),me(this,e,tn,en,i,{})}}function rn(t){let n,r,o,a,i,l,s,c,u,d,h;return a=new Kt({}),l=new Qt({}),d=new nn({}),{c(){n=p("div"),r=p("div"),r.textContent="Settings",o=L(),he(a.$$.fragment),i=L(),he(l.$$.fragment),s=L(),c=p("hr"),u=L(),he(d.$$.fragment),H(r,"class","text-dark text-subhead"),H(n,"class","container")},m(e,t){g(e,n,t),m(n,r),m(n,o),fe(a,n,null),m(n,i),fe(l,n,null),m(n,s),m(n,c),m(n,u),fe(d,n,null),h=!0},p:e,i(e){h||(ae(a.$$.fragment,e),ae(l.$$.fragment,e),ae(d.$$.fragment,e),h=!0)},o(e){ie(a.$$.fragment,e),ie(l.$$.fragment,e),ie(d.$$.fragment,e),h=!1},d(e){e&&y(n),Se(a),Se(l),Se(d)}}}function on(t){let n;return{c(){n=p("div"),n.innerHTML='

Favourites

\n\n
a
\n
b
\n
c
\n
d
',H(n,"class","container svelte-apetsu")},m(e,t){g(e,n,t)},p:e,i:e,o:e,d(e){e&&y(n)}}}function an(e){let t,n,r,o,a,i,l,s,c,u,d,h,f,S,B,w,b,v,T,N,R,M,P=e[0].user.name+"",A=e[0].user.screen_name+"",D=e[0].created_at+"",E=e[1]&&ln(e);return{c(){t=p("div"),n=p("div"),r=p("div"),o=p("img"),l=L(),s=p("div"),c=p("div"),u=C(P),d=L(),h=p("div"),f=C("@"),S=C(A),B=L(),E&&E.c(),w=L(),b=p("div"),v=C(e[2]),T=L(),N=p("div"),R=p("small"),M=C(D),H(o,"class","avatar col-2 svelte-1y2z4hv"),o.src!==(a=cn(e[0].user.profile_image_url_https))&&H(o,"src",a),H(o,"alt",i="@"+e[0].user.screen_name),H(c,"class","text-subhead text-dark"),H(h,"class","badge"),H(s,"class","col-10 ml-2"),H(r,"class","grid"),H(n,"class","tweet-header"),H(b,"class","tweetBody"),H(R,"class","text-highlight2"),H(t,"class","card--slim")},m(e,a){g(e,t,a),m(t,n),m(n,r),m(r,o),m(r,l),m(r,s),m(s,c),m(c,u),m(s,d),m(s,h),m(h,f),m(h,S),m(t,B),E&&E.m(t,null),m(t,w),m(t,b),m(b,v),m(t,T),m(t,N),m(N,R),m(R,M)},p(e,n){1&n&&o.src!==(a=cn(e[0].user.profile_image_url_https))&&H(o,"src",a),1&n&&i!==(i="@"+e[0].user.screen_name)&&H(o,"alt",i),1&n&&P!==(P=e[0].user.name+"")&&W(u,P),1&n&&A!==(A=e[0].user.screen_name+"")&&W(S,A),e[1]?E?E.p(e,n):(E=ln(e),E.c(),E.m(t,w)):E&&(E.d(1),E=null),4&n&&W(v,e[2]),1&n&&D!==(D=e[0].created_at+"")&&W(M,D)},d(e){e&&y(t),E&&E.d()}}}function ln(e){let t,n,r,o=e[0].in_reply_to_screen_name+"";return{c(){t=p("div"),n=C("Replying to @"),r=C(o),H(t,"class","text-primary")},m(e,o){g(e,t,o),m(t,n),m(t,r)},p(e,t){1&t&&o!==(o=e[0].in_reply_to_screen_name+"")&&W(r,o)},d(e){e&&y(t)}}}function sn(t){let n,r=t[0]&&an(t);return{c(){r&&r.c(),n=w()},m(e,t){r&&r.m(e,t),g(e,n,t)},p(e,[t]){e[0]?r?r.p(e,t):(r=an(e),r.c(),r.m(n.parentNode,n)):r&&(r.d(1),r=null)},i:e,o:e,d(e){r&&r.d(e),e&&y(n)}}}function cn(e){return"https://image.silvrtree.co.uk/48,fit,q80/"+e}function un(e,t,n){let r,o,{id:a}=t,i=!1,l="";return k(async()=>{r=ze.getTweetByID(a),n(0,o=JSON.parse(r.tweet))}),e.$$set=e=>{"id"in e&&n(3,a=e.id)},e.$$.update=()=>{1&e.$$.dirty&&o&&(n(1,i=o&&null!==o.in_reply_to_status_id),n(2,l=o&&o.truncated?o.extended_tweet.full_text:o.text))},[o,i,l,a]}class dn extends ge{constructor(e){super(),me(this,e,un,sn,i,{id:3})}}function hn(e,t,n){const r=e.slice();return r[3]=t[n],r[5]=n,r}function fn(e,t){let n,r,o;return r=new dn({props:{id:t[3]}}),{key:e,first:null,c(){n=w(),he(r.$$.fragment),this.first=n},m(e,t){g(e,n,t),fe(r,e,t),o=!0},p(e,t){const n={};1&t&&(n.id=e[3]),r.$set(n)},i(e){o||(ae(r.$$.fragment,e),o=!0)},o(e){ie(r.$$.fragment,e),o=!1},d(e){e&&y(n),Se(r,e)}}}function Sn(e){let t,n,r,o,a=[],i=new Map,l=e[0];const s=e=>e[3];for(let t=0;t{await ze.getTweets()});const o=ze.tweetList.subscribe(async e=>{n(0,r=e)});return G(async()=>{o(),clearInterval(undefined)}),[r]}function gn(t){let n,r,o;return{c(){n=p("h2"),n.textContent="NotFound",r=L(),o=p("p"),o.textContent="Oops, this route doesn't exist!",H(n,"class","routetitle svelte-apetsu"),H(o,"class","svelte-apetsu")},m(e,t){g(e,n,t),g(e,r,t),g(e,o,t)},p:e,i:e,o:e,d(e){e&&y(n),e&&y(r),e&&y(o)}}}const yn=new Map;function Bn(t){let n,r,o;return{c(){n=p("span"),n.innerHTML='',H(n,"class","")},m(e,a){g(e,n,a),r||(o=b(n,"click",t[1]),r=!0)},p:e,d(e){e&&y(n),r=!1,o()}}}function pn(t){let n,r,o,a,i,l,s,c,u,d,h=1===t[0]&&Bn(t);return{c(){n=p("header"),r=p("section"),h&&h.c(),o=L(),a=p("span"),a.textContent=""+Cn,i=L(),l=p("section"),s=p("a"),s.innerHTML='',c=L(),u=p("a"),u.innerHTML='',d=L(),H(a,"class","text-bold navbar-brand mx-1 text-uppercase"),H(r,"class","navbar-section"),H(s,"title","Tweets"),H(s,"href","/#/tweets"),H(s,"class","btn--slim bg-primary"),H(u,"title","Settings"),H(u,"href","/#/settings"),H(u,"class","btn bg-primary "),H(l,"class","navbar-section text-right"),H(n,"class","navbar bg-primary")},m(e,t){g(e,n,t),m(n,r),h&&h.m(r,null),m(r,o),m(r,a),m(n,i),m(n,l),m(l,s),m(l,c),m(l,u),m(l,d)},p(e,[t]){1===e[0]?h?h.p(e,t):(h=Bn(e),h.c(),h.m(r,o)):h&&(h.d(1),h=null)},i:e,o:e,d(e){e&&y(n),h&&h.d()}}}yn.set("/",class extends ge{constructor(e){super(),me(this,e,at,ot,i,{})}}),yn.set("/timetable/:fromStation/:destStation",class extends ge{constructor(e){super(),me(this,e,Rt,Nt,i,{params:4})}}),yn.set("/service/:serviceId",class extends ge{constructor(e){super(),me(this,e,St,ft,i,{params:1})}}),yn.set("/settings",class extends ge{constructor(e){super(),me(this,e,null,rn,i,{})}}),yn.set("/favourites",class extends ge{constructor(e){super(),me(this,e,null,on,i,{})}}),yn.set("/tweets",class extends ge{constructor(e){super(),me(this,e,mn,Sn,i,{})}}),yn.set("*",class extends ge{constructor(e){super(),me(this,e,null,gn,i,{})}});let Cn="Traintimes";function Ln(e,t,n){let r,{page:o}=t;return e.$$set=e=>{"page"in e&&n(2,o=e.page)},e.$$.update=()=>{4&e.$$.dirty&&n(0,r="Home"===o?0:1)},[r,function(){U().then(()=>{window.history.back()})},o]}class wn extends ge{constructor(e){super(),me(this,e,Ln,pn,i,{page:2})}}function bn(e){let t,n,r,o;return t=new wn({props:{page:e[0]}}),r=new Ne({props:{routes:yn}}),r.$on("conditionsFailed",Hn),r.$on("routeLoaded",e[1]),r.$on("routeEvent",Wn),{c(){he(t.$$.fragment),n=L(),he(r.$$.fragment)},m(e,a){fe(t,e,a),g(e,n,a),fe(r,e,a),o=!0},p(e,[n]){const r={};1&n&&(r.page=e[0]),t.$set(r)},i(e){o||(ae(t.$$.fragment,e),ae(r.$$.fragment,e),o=!0)},o(e){ie(t.$$.fragment,e),ie(r.$$.fragment,e),o=!1},d(e){Se(t,e),e&&y(n),Se(r,e)}}}function Hn(e){console.error("Caught event conditionsFailed",e.detail)}function Wn(e){console.info("Caught event routeEvent",e.detail)}function vn(e,t,n){let r;return[r,function(e){console.info("Caught event routeLoaded",e.detail),n(0,r=e.detail.name),console.log("currentPage",r)}]}const Tn=new class extends ge{constructor(e){super(),me(this,e,vn,bn,i,{})}}({target:document.body,props:{}});return"serviceWorker"in navigator&&(navigator.serviceWorker.ready.then((function(e){console.warn("Ready??",e)})),window.addEventListener("load",(function(){navigator.serviceWorker.register("./service-worker.js").then(e=>{console.warn("Service Worker Registered",e.scope)}).catch(e=>{console.error("Registration failed with "+e)})}))),Tn}(); diff --git a/OLD_pb_public/public/favicon.png b/OLD_pb_public/public/favicon.png new file mode 100755 index 0000000..669014f Binary files /dev/null and b/OLD_pb_public/public/favicon.png differ diff --git a/OLD_pb_public/public/global.css b/OLD_pb_public/public/global.css new file mode 100755 index 0000000..e69de29 diff --git a/OLD_pb_public/public/img/Icon-144.png b/OLD_pb_public/public/img/Icon-144.png new file mode 100755 index 0000000..45e0459 Binary files /dev/null and b/OLD_pb_public/public/img/Icon-144.png differ diff --git a/OLD_pb_public/public/img/Icon-192.png b/OLD_pb_public/public/img/Icon-192.png new file mode 100755 index 0000000..daf222c Binary files /dev/null and b/OLD_pb_public/public/img/Icon-192.png differ diff --git a/OLD_pb_public/public/img/Icon-36.png b/OLD_pb_public/public/img/Icon-36.png new file mode 100755 index 0000000..b1ad90e Binary files /dev/null and b/OLD_pb_public/public/img/Icon-36.png differ diff --git a/OLD_pb_public/public/img/Icon-48.png b/OLD_pb_public/public/img/Icon-48.png new file mode 100755 index 0000000..15d29c1 Binary files /dev/null and b/OLD_pb_public/public/img/Icon-48.png differ diff --git a/OLD_pb_public/public/img/Icon-512.png b/OLD_pb_public/public/img/Icon-512.png new file mode 100755 index 0000000..fa3720b Binary files /dev/null and b/OLD_pb_public/public/img/Icon-512.png differ diff --git a/OLD_pb_public/public/img/Icon-72.png b/OLD_pb_public/public/img/Icon-72.png new file mode 100755 index 0000000..649b07c Binary files /dev/null and b/OLD_pb_public/public/img/Icon-72.png differ diff --git a/OLD_pb_public/public/img/Icon-96.png b/OLD_pb_public/public/img/Icon-96.png new file mode 100755 index 0000000..eace2dd Binary files /dev/null and b/OLD_pb_public/public/img/Icon-96.png differ diff --git a/OLD_pb_public/public/img/android-chrome-192x192.png b/OLD_pb_public/public/img/android-chrome-192x192.png new file mode 100755 index 0000000..3aa557d Binary files /dev/null and b/OLD_pb_public/public/img/android-chrome-192x192.png differ diff --git a/OLD_pb_public/public/img/apple-touch-icon.png b/OLD_pb_public/public/img/apple-touch-icon.png new file mode 100755 index 0000000..8387a2e Binary files /dev/null and b/OLD_pb_public/public/img/apple-touch-icon.png differ diff --git a/OLD_pb_public/public/img/favicon-16x16.png b/OLD_pb_public/public/img/favicon-16x16.png new file mode 100755 index 0000000..0e695c5 Binary files /dev/null and b/OLD_pb_public/public/img/favicon-16x16.png differ diff --git a/OLD_pb_public/public/img/favicon-32x32.png b/OLD_pb_public/public/img/favicon-32x32.png new file mode 100755 index 0000000..b4bc5c5 Binary files /dev/null and b/OLD_pb_public/public/img/favicon-32x32.png differ diff --git a/OLD_pb_public/public/img/favicon.ico b/OLD_pb_public/public/img/favicon.ico new file mode 100755 index 0000000..aa96bef Binary files /dev/null and b/OLD_pb_public/public/img/favicon.ico differ diff --git a/OLD_pb_public/public/img/mstile-150x150.png b/OLD_pb_public/public/img/mstile-150x150.png new file mode 100755 index 0000000..f580457 Binary files /dev/null and b/OLD_pb_public/public/img/mstile-150x150.png differ diff --git a/OLD_pb_public/public/img/photothumb.db b/OLD_pb_public/public/img/photothumb.db new file mode 100755 index 0000000..fa58b80 Binary files /dev/null and b/OLD_pb_public/public/img/photothumb.db differ diff --git a/OLD_pb_public/public/img/safari-pinned-tab.svg b/OLD_pb_public/public/img/safari-pinned-tab.svg new file mode 100755 index 0000000..bd9b59f --- /dev/null +++ b/OLD_pb_public/public/img/safari-pinned-tab.svg @@ -0,0 +1,33 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + + + + + diff --git a/OLD_pb_public/public/index.html b/OLD_pb_public/public/index.html new file mode 100755 index 0000000..d0c9f03 --- /dev/null +++ b/OLD_pb_public/public/index.html @@ -0,0 +1,30 @@ + + + + + + + Traintimes + + + + + + + + + + + + + + + + + + + + + + diff --git a/OLD_pb_public/public/manifest.json b/OLD_pb_public/public/manifest.json new file mode 100755 index 0000000..30f8da3 --- /dev/null +++ b/OLD_pb_public/public/manifest.json @@ -0,0 +1,46 @@ +{ + "name": "Train Times", + "short_name": "Train Times", + "icons": [ + { + "src": "/img/Icon-36.png", + "sizes": "36x36", + "type": "image/png" + }, + { + "src": "/img/Icon-48.png", + "sizes": "48x48", + "type": "image/png" + }, + { + "src": "/img/Icon-72.png", + "sizes": "72x72", + "type": "image/png" + }, + { + "src": "/img/Icon-96.png", + "sizes": "96x96", + "type": "image/png" + }, + { + "src": "/img/Icon-144.png", + "sizes": "144x144", + "type": "image/png" + }, + { + "src": "/img/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/img/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "start_url": ".", + "imgdisplay": "standalone", + "display": "standalone" +} diff --git a/OLD_pb_public/public/service-worker.js b/OLD_pb_public/public/service-worker.js new file mode 100755 index 0000000..9fceb94 --- /dev/null +++ b/OLD_pb_public/public/service-worker.js @@ -0,0 +1,110 @@ +// Copyright 2016 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +const CACHE_VERSION = 8; +const dataCacheName = `traintimesData-v${CACHE_VERSION}`; +const cacheName = `traintimePWA-final-${CACHE_VERSION}`; +const filesToCache = [ + '/', + '/index.html', + '/service-worker.js', + '/manifest.json', + '/favicon.png', + '/browserconfig.xml', + '/build/bundle.css', + '/build/bundle.js', + '/build/fonts/fujicons.css', + '/build/fonts/fujicons.ttf', + '/img/Icon-36.png', + '/img/Icon-48.png', + '/img/Icon-72.png', + '/img/Icon-96.png', + '/img/Icon-144.png', + '/img/Icon-192.png', + '/img/Icon-512.png' +]; + +self.addEventListener('install', function(e) { + console.log('[ServiceWorker] Install'); + e.waitUntil( + caches.open(cacheName).then(function(cache) { + console.log('[ServiceWorker] Caching app shell'); + + return cache.addAll(filesToCache); + }) + ); +}); + +self.addEventListener('activate', function(e) { + console.log('[ServiceWorker] Activate'); + e.waitUntil( + caches.keys().then(function(keyList) { + return Promise.all(keyList.map(function(key) { + if (key !== cacheName && key !== dataCacheName) { + console.log('[ServiceWorker] Removing old cache', key); + + return caches.delete(key); + } + })); + }) + ); + + /* + * Fixes a corner case in which the app wasn't returning the latest data. + * You can reproduce the corner case by commenting out the line below and + * then doing the following steps: 1) load app for first time so that the + * initial New York City data is shown 2) press the refresh button on the + * app 3) go offline 4) reload the app. You expect to see the newer NYC + * data, but you actually see the initial data. This happens because the + * service worker is not yet activated. The code below essentially lets + * you activate the service worker faster. + */ + return self.clients.claim(); +}); + +self.addEventListener('fetch', function(e) { + console.warn('[Service Worker] Fetch', e.request.url); + const dataUrl = '/getnexttraintimes?'; + if (e.request.url.indexOf(dataUrl) > -1) { + console.log('!'); + + /* + * When the request URL contains dataUrl, the app is asking for fresh + * weather data. In this case, the service worker always goes to the + * network and then caches the response. This is called the "Cache then + * network" strategy: + * https://jakearchibald.com/2014/offline-cookbook/#cache-then-network + */ + e.respondWith( + caches.open(dataCacheName).then(function(cache) { + return fetch(e.request).then(function(response) { + cache.put(e.request.url, response.clone()); + + return response; + }); + }) + ); + } + else + + /* + * The app is asking for app shell files. In this scenario the app uses the + * "Cache, falling back to the network" offline strategy: + * https://jakearchibald.com/2014/offline-cookbook/#cache-falling-back-to-network + */ + e.respondWith( + caches.match(e.request).then(function(response) { + return response || fetch(e.request); + }) + ); +}); diff --git a/OLD_pb_public/service-worker.js b/OLD_pb_public/service-worker.js new file mode 100644 index 0000000..31f8064 --- /dev/null +++ b/OLD_pb_public/service-worker.js @@ -0,0 +1,110 @@ +// Copyright 2016 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +const CACHE_VERSION = 8; +const dataCacheName = `traintimesData-v${CACHE_VERSION}`; +const cacheName = `traintimePWA-final-${CACHE_VERSION}`; +const filesToCache = [ + '/', + '/index.html', + '/service-worker.js', + '/manifest.json', + '/favicon.png', + '/browserconfig.xml', + '/build/bundle.css', + '/build/bundle.js', + '/build/fonts/fujicons.css', + '/build/fonts/fujicons.woff', + '/img/Icon-36.png', + '/img/Icon-48.png', + '/img/Icon-72.png', + '/img/Icon-96.png', + '/img/Icon-144.png', + '/img/Icon-192.png', + '/img/Icon-512.png' +]; + +self.addEventListener('install', function(e) { + console.log('[ServiceWorker] Install'); + e.waitUntil( + caches.open(cacheName).then(function(cache) { + console.log('[ServiceWorker] Caching app shell'); + + return cache.addAll(filesToCache); + }) + ); +}); + +self.addEventListener('activate', function(e) { + console.log('[ServiceWorker] Activate'); + e.waitUntil( + caches.keys().then(function(keyList) { + return Promise.all(keyList.map(function(key) { + if (key !== cacheName && key !== dataCacheName) { + console.log('[ServiceWorker] Removing old cache', key); + + return caches.delete(key); + } + })); + }) + ); + + /* + * Fixes a corner case in which the app wasn't returning the latest data. + * You can reproduce the corner case by commenting out the line below and + * then doing the following steps: 1) load app for first time so that the + * initial New York City data is shown 2) press the refresh button on the + * app 3) go offline 4) reload the app. You expect to see the newer NYC + * data, but you actually see the initial data. This happens because the + * service worker is not yet activated. The code below essentially lets + * you activate the service worker faster. + */ + return self.clients.claim(); +}); + +self.addEventListener('fetch', function(e) { + console.warn('[Service Worker] Fetch', e.request.url); + const dataUrl = '/getnexttraintimes?'; + if (e.request.url.indexOf(dataUrl) > -1) { + console.log('!'); + + /* + * When the request URL contains dataUrl, the app is asking for fresh + * weather data. In this case, the service worker always goes to the + * network and then caches the response. This is called the "Cache then + * network" strategy: + * https://jakearchibald.com/2014/offline-cookbook/#cache-then-network + */ + e.respondWith( + caches.open(dataCacheName).then(function(cache) { + return fetch(e.request).then(function(response) { + cache.put(e.request.url, response.clone()); + + return response; + }); + }) + ); + } + else + + /* + * The app is asking for app shell files. In this scenario the app uses the + * "Cache, falling back to the network" offline strategy: + * https://jakearchibald.com/2014/offline-cookbook/#cache-falling-back-to-network + */ + e.respondWith( + caches.match(e.request).then(function(response) { + return response || fetch(e.request); + }) + ); +}); diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ce9fce0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.5' + +services: + trainserver: + container_name: trainserver + image: git.caliban.io/martin/go-traintimes:5.0.0 + restart: always + ports: + - "8100:8100" diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..7658ee7 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,29 @@ +FROM debian:12-slim +# FROM alpine:latest + +WORKDIR /app + +RUN mkdir -p /app/dist + +COPY ./go-traintimes /app/ + + +COPY ./pb_data /app/pb_data +COPY ./pb_public /app/pb_public + +RUN apt-get update && apt-get install -y ca-certificates + +# Need the following to get a go app to run inside a docker container +# as per: https://www.fairlyusefulcode.co.uk/post/go-alpine-linux/ -- DEAD!!! +# RUN apk upgrade musl +# RUN apk add gcompat + +# RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 +# RUN ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 + +RUN chmod +x /app/go-traintimes + +EXPOSE 8100 + +CMD [ "/app/go-traintimes", "serve", "--http=0.0.0.0:8100", "--dev"] + diff --git a/go-traintimes b/go-traintimes new file mode 100755 index 0000000..00fce20 Binary files /dev/null and b/go-traintimes differ diff --git a/go.mod b/go.mod index fe2d1d9..988afe6 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ go 1.22.4 require ( github.com/labstack/echo/v5 v5.0.0-20230722203903-ec5b858dab61 + github.com/pocketbase/dbx v1.10.1 github.com/pocketbase/pocketbase v0.22.14 ) @@ -50,7 +51,6 @@ require ( github.com/mattn/go-sqlite3 v1.14.22 // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect github.com/ncruces/go-strftime v0.1.9 // indirect - github.com/pocketbase/dbx v1.10.1 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/spf13/cast v1.6.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/main.go b/main.go index 4765f78..9fdf3f9 100644 --- a/main.go +++ b/main.go @@ -32,11 +32,25 @@ type GetTrainsRec struct { Hash string `db:"hash" json:"hash"` } +type GetTrainTimesRec struct { + Hash string `db:"hash" json:"hash"` + Body string `db:"body" json:"body"` + Ts int64 `db:"ts" json:"ts"` +} + const host = "https://huxley2.azurewebsites.net" var ( Version string Build string + tr = &http.Transport{ + MaxIdleConns: 10, + IdleConnTimeout: 30 * time.Second, + DisableCompression: true, + } + client = &http.Client{Transport: tr} + gmtTimeLoc = time.FixedZone("GMT", 0) + timeFormat = "Mon, 2 Jan 2006 15:04:05 GMT" ) func main() { @@ -58,7 +72,7 @@ func main() { e.Router.GET("/getnexttraintimes", func(c echo.Context) error { apis.ActivityLogger(app) - return GetNextTrainTimes(c) + return GetNextTrainTimes(c, app) }) scheduler.MustAdd("cleanup", "*/10 * * * *", func() { @@ -120,7 +134,7 @@ func getTrains(c echo.Context, app *pocketbase.PocketBase) error { if dberr == nil { // handle error - log.Printf("-- Cache hit %+v,%+v\n", recentTrain.From, recentTrain.To) + log.Printf("-- Cache hit train %+v\n", recentTrain.Hash) return c.String(200, recentTrain.Body) } @@ -129,12 +143,12 @@ func getTrains(c echo.Context, app *pocketbase.PocketBase) error { log.Printf("-- url: %+v\n", url) - tr := &http.Transport{ + /*tr := &http.Transport{ MaxIdleConns: 10, IdleConnTimeout: 30 * time.Second, DisableCompression: true, - } - client := &http.Client{Transport: tr} + }*/ + // client := &http.Client{Transport: tr} log.Printf("-- full url: %+v\n", host+url) resp, err := client.Get(host + url) @@ -174,7 +188,7 @@ func getTrains(c echo.Context, app *pocketbase.PocketBase) error { return c.JSON(http.StatusAccepted, dummy) } -func GetNextTrainTimes(c echo.Context) error { +func GetNextTrainTimes(c echo.Context, app *pocketbase.PocketBase) error { params := c.QueryParams() @@ -185,6 +199,10 @@ func GetNextTrainTimes(c echo.Context) error { To := c.QueryParamDefault("to", "") ts := time.Now().String() + tsUnix := time.Now().Unix() + now := time.Now() + then := now.Add(-2 * time.Minute) + log.Printf("-- %+v\n", ts) log.Printf("-- From: %+v\n", From) @@ -192,6 +210,21 @@ func GetNextTrainTimes(c echo.Context) error { dummy := DummyRecord{Ts: ts} + recentTraintimes := GetTrainTimesRec{} + + hash := fmt.Sprintf("%s%s", From, To) + + dberr := app.Dao().DB().NewQuery("SELECT * FROM traintimes WHERE hash = {:hash} and ts >= {:ts}").Bind(dbx.Params{ + "ts": tsUnix - 120, + "hash": hash, + }).One(&recentTraintimes) + + if dberr == nil { + // handle error + log.Printf("-- Cache hit traintimes %+v\n", recentTraintimes.Hash) + return c.String(200, recentTraintimes.Body) + } + if From != "" && To != "" { log.Println("-- Got something to search for") @@ -200,19 +233,18 @@ func GetNextTrainTimes(c echo.Context) error { log.Printf("-- url: %+v\n", url) - tr := &http.Transport{ - MaxIdleConns: 10, - IdleConnTimeout: 30 * time.Second, - DisableCompression: true, - } - client := &http.Client{Transport: tr} - log.Printf("-- full url: %+v\n", host+url) - resp, err := client.Get(host + url) + + req, err := http.NewRequest("GET", host+url, nil) if err != nil { // handle error } + + req.Header.Add("If-Modified-Since", then.In(gmtTimeLoc).Format(timeFormat)) + + resp, err := client.Do(req) + defer resp.Body.Close() body, err := io.ReadAll(resp.Body) @@ -241,6 +273,20 @@ func GetNextTrainTimes(c echo.Context) error { } + var nTrainTimesRec GetTrainTimesRec + + nTrainTimesRec.Hash = hash + nTrainTimesRec.Ts = tsUnix + nTrainTimesRec.Body = string(departJson) + + go func() { + err := saveTraintimesRec(app, nTrainTimesRec) + if err != nil { + log.Println(err) + + } + }() + // log.Println("-- body: %+v\n", string(body)) // c.Set(fiber.HeaderContentType, fiber.MIMEApplicationJSON) @@ -306,7 +352,7 @@ func saveTrainRec(app *pocketbase.PocketBase, trainRecord GetTrainsRec) error { } if len(record) == 0 { - log.Printf("-- Insert new\n") + log.Printf("-- Insert new train\n") record := models.NewRecord(collection) @@ -321,7 +367,7 @@ func saveTrainRec(app *pocketbase.PocketBase, trainRecord GetTrainsRec) error { return err } } else { - log.Printf("-- Update\n") + log.Printf("-- Update train\n") rec := record[0] rec.Set("body", trainRecord.Body) @@ -371,6 +417,57 @@ func saveTrainRec(app *pocketbase.PocketBase, trainRecord GetTrainsRec) error { return nil } +func saveTraintimesRec(app *pocketbase.PocketBase, traintimesRecord GetTrainTimesRec) error { + + log.Println("$$:saveTraintimesRec") + + // foundTrain := GetTrainsRec{} + + collection, err := app.Dao().FindCollectionByNameOrId("traintimes") + if err != nil { + log.Println(err) + return err + } + + record, recErr := app.Dao().FindRecordsByExpr("traintimes", dbx.NewExp("hash = {:hash}", dbx.Params{ + "hash": traintimesRecord.Hash, + })) + + if recErr != nil { + log.Println(recErr) + return recErr + } + + if len(record) == 0 { + log.Printf("-- Insert new traintimes\n") + + record := models.NewRecord(collection) + + record.Set("body", traintimesRecord.Body) + record.Set("ts", traintimesRecord.Ts) + record.Set("hash", traintimesRecord.Hash) + + if err := app.Dao().SaveRecord(record); err != nil { + log.Println(err) + return err + } + } else { + log.Printf("-- Update traintimes\n") + rec := record[0] + + rec.Set("body", traintimesRecord.Body) + rec.Set("ts", traintimesRecord.Ts) + + if err := app.Dao().SaveRecord(rec); err != nil { + log.Println(err) + return err + } + + } + + return nil +} + func CleanupDB(app *pocketbase.PocketBase) { ts := time.Now().Unix() - 600 diff --git a/pb_data/data.db b/pb_data/data.db index 1ce25c7..98fc8e6 100644 Binary files a/pb_data/data.db and b/pb_data/data.db differ diff --git a/pb_data/logs.db b/pb_data/logs.db index 2b5a8fa..b149b82 100644 Binary files a/pb_data/logs.db and b/pb_data/logs.db differ diff --git a/pb_public/browserconfig.xml b/pb_public/browserconfig.xml old mode 100644 new mode 100755 diff --git a/pb_public/build/bundle.css b/pb_public/build/bundle.css index 797405f..ba45992 100644 --- a/pb_public/build/bundle.css +++ b/pb_public/build/bundle.css @@ -1,6 +1,6 @@ -@import url("https://fonts.googleapis.com/css?family=Roboto+Condensed");@import url(./fonts/fujicons.css);*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}body{height:100%;overflow-x:hidden;font-family:'Roboto Condensed', sans-serif;font-size:1rem;line-height:1.6}a{color:#5e81ac;text-decoration:none}a:hover{color:#666}a.active{color:#b48ead}ul{list-style:none}img{width:100%}.container{max-width:1100px;margin:auto;overflow-y:scroll;padding:0 2rem}hr{margin-top:2.2rem;margin-bottom:2rem;border-width:0;border-top:1px solid #2e3440}.flex{display:flex}.pad{padding:0.5rem}.pad--1{padding:1rem}.pad--2{padding:2rem}.pad--3{padding:3rem}.pady{padding:0.5rem 0}.pady--top{padding-top:0.5rem}.pady--bottom{padding-bottom:0.5rem}.pady--1{padding:1rem 0}.pady--2{padding:2rem 0}.pady--3{padding:3rem 0}.padx{padding:0 0.5rem}.padx--right{padding-right:0.5rem}.padx--left{padding-left:0.5rem}.padx--1{padding:0 1rem}.padx--2{padding:0 2rem}.padx--3{padding:0 3rem}.grid{display:flex;display:-ms-flexbox;flex-wrap:wrap}.grid--1{display:grid;grid-template-columns:repeat(1, 1fr);grid-gap:1rem}.grid--2{display:grid;grid-template-columns:repeat(2, 1fr);grid-gap:1rem}.grid--3{display:grid;grid-template-columns:repeat(3, 1fr);grid-gap:1px}.grid--4{display:grid;grid-template-columns:repeat(4, 1fr);grid-gap:1rem}.row{margin-left:3px;margin-right:3px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.col-1{width:8.33333%}.col-2{width:16.66667%}.col-3{width:25%}.col-4{width:33.33333%}.col-5{width:41.66667%}.col-6{width:50%}.col-7{width:58.33333%}.col-8{width:66.66667%}.col-9{width:75%}.col-10{width:83.33333%}.col-11{width:91.66667%}.col-12{width:100%;margin-left:0}.col-1-3rd{width:32.666667%}.col-2-3rd{width:65.3333333333%}.col-half{width:48%}.offset-1-col{margin-left:8.66666666667%}.offset-2-col{margin-left:17.3333333333%}.offset-3-col{margin-left:26%}.offset-4-col{margin-left:34.6666666667%}.offset-5-col{margin-left:43.3333333333%}.offset-6-col{margin-left:52%}.offset-7-col{margin-left:60.6666666667%}.offset-8-col{margin-left:69.3333333333%}.offset-9-col{margin-left:78.0%}.offset-10-col{margin-left:86.6666666667%}.offset-11-col{margin-left:95.3333333333%}.offset-1-3rd-col{margin-left:34.6666666667%}.offset-2-3rd-col{margin-left:69.3333333333%}.offset-half-col{margin-left:52%}.x-large{font-size:4rem;line-height:1.2;margin-bottom:1rem}.large{font-size:3rem;line-height:1.2;margin-bottom:1rem}.lead{font-size:1.5rem;margin-bottom:1rem}.text-primary{color:#5e81ac}.text-dark{color:#2e3440}.text-light{color:#2e3440}.text-success{color:#a3be8c}.text-danger{color:#bf616a}.text-highlight{color:#b48ead}.text-highlight2{color:#ebcb8b}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-display1,h1{font-weight:400;font-size:34px;line-height:40px}.text-title,h3{font-weight:400;font-size:20px;line-height:28px}.text-subhead,h4{font-weight:400;font-size:16px;line-height:24px}.text-body2,h5{font-weight:500;font-size:14px;line-height:24px}.text-body1{font-weight:400;font-size:14px;line-height:20px}.text-caption{font-weight:400;font-size:12px;line-height:16px}.align-middle{vertical-align:middle !important}.all-center{display:flex;flex-direction:column;width:100%;margin:auto;justify-content:center;align-items:center;text-align:center}.text-justify{text-align:justify !important}.text-nowrap{white-space:nowrap !important}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-bottom{vertical-align:bottom !important}.btn,.btn--slim{display:inline-block;background:#e5e9f0;color:#333;padding:0.4rem 1.3rem;font-size:1rem;border:none;cursor:pointer;margin-right:0.5rem;transition:opacity 0.2s ease-in;outline:none}.btn:disabled,.btn--slim:disabled{cursor:not-allowed;pointer-events:none;opacity:0.60;box-shadow:none}.btn:enabled:hover,.btn--slim:enabled:hover{opacity:0.8}.btn--slim{padding:0.4rem}.btn-link{background:none;padding:0;margin:0}.btn-block{display:block;width:100%}.btn-sm,.btn-sm--slim{font-size:0.8rem;padding:0.3rem 1rem;margin-right:0.2rem}.btn-sm--slim{padding:0.3rem}.badge{display:inline-block;font-size:0.6rem;padding:0.1rem 0.4rem;text-align:center;margin:0.3rem;background:#e5e9f0;color:#333;border-radius:3px}.alert{padding:0.7rem;margin:1rem 0;opacity:0.9;background:#e5e9f0;color:#333}.btn-primary,.bg-primary,.badge-primary,.alert-primary{background:#5e81ac;color:#fff}.btn-light,.bg-light,.badge-light,.alert-light{background:#e5e9f0;color:#333}.btn-dark,.bg-dark,.badge-dark,.alert-dark{background:#2e3440;color:#fff}.btn-danger,.bg-danger,.badge-danger,.alert-danger{background:#bf616a;color:#fff}.btn-success,.bg-success,.badge-success,.alert-success{background:#a3be8c;color:#fff}.btn-white,.bg-white,.badge-white,.alert-white{background:#fff;color:#333;border:#ccc solid 1px}.bg-light,.badge-light{border:#ccc solid 1px}.table-responsive{display:block;overflow-x:auto;width:100%}table{max-width:100%;width:100%;border:0;margin-bottom:1rem;border-collapse:collapse}tr{border-top:1px solid #ccc}tbody tr:nth-of-type(odd){background-color:rgba(0, 0, 0, 0.04)}tbody td{border-top:1px solid #e1e1e1}.navbar{position:fixed;display:flex;justify-content:space-between;align-items:center;z-index:2;width:100%;opacity:0.9;margin-bottom:1rem;min-height:56px}.navbar ul{display:flex}.navbar a{color:#fff;padding:0.45rem;margin:0 0.25rem}.navbar a:hover{color:#e5e9f0}.navbar .welcome span{margin-right:0.6rem}.navbar .navbar-section{align-items:center;display:flex;display:-ms-flexbox;flex:1 0 0;-ms-flex-align:center}.navbar .navbar-section:not(:first-child):last-child{justify-content:flex-end}.navbar .navbar-brand{font-size:200%;font-weight:bold}header+div.container{position:relative;top:56px;overflow:auto;height:calc(100vh - 56px);max-height:calc(100vh - 56px)}.m{margin:0.5rem}.m--1{margin:1rem}.m--2{margin:2rem}.m--3{margin:3rem}.mb{margin-bottom:.1rem !important}.mb--1{margin-bottom:.2rem !important}.mb--2{margin-bottom:.4rem !important}.ml{margin-left:.1rem !important}.ml--1{margin-left:.2rem !important}.ml--2{margin-left:.4rem !important}.mr{margin-right:.1rem !important}.mr--1{margin-right:.2rem !important}.mr .mr-2{margin-right:.4rem !important}.mt{margin-top:.1rem !important}.mt--1{margin-top:.2rem !important}.mt--2{margin-top:.4rem !important}.mx{margin-left:0.5rem !important;margin-right:0.5rem !important}.mx--1{margin-left:1rem !important;margin-right:1rem !important}.mx--2{margin-left:2rem !important;margin-right:2rem !important}.my{margin:0.5rem 0}.my--1{margin:1rem 0}.my--2{margin:2rem 0}.my--3{margin:3rem 0}.card,.card--slim{padding:1rem;border:#ccc 1px dotted;margin:0.7rem 0}.card--slim{padding:5px}.cardTitle{border-bottom-color:#eee;border-bottom-width:1px;border-bottom-style:solid;margin-bottom:15px}.cardV2{border-radius:4px;background-color:#fff;box-shadow:0 0 4px 0 rgba(0, 0, 0, 0.14), 0 3px 4px 0 rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);min-width:0}.seemore{font-size:14px;font-weight:500}.cardLink{color:#2196F3;margin-top:10px}@media(max-width: 480px){.container{max-width:98vw;padding:0 0;overflow-y:scroll}}@media(max-height: 480px){.navbar{min-height:36px}header+div.container{position:relative;top:36px;max-height:calc(100vh - 36px)}.navbar .navbar-brand{font-size:125%;font-weight:bold}}@media(min-height: 900px){body{font-size:x-large}}.nrccAlert a{color:#00ffa2}.betterInput{background-color:deeppink;padding-bottom:6px !important;padding-top:6px !important}.up,.ontime,.trendUp{color:#4CAF50 !important}.down,.delayed,.trendDown{color:#F44336 !important} -.mui-dropdown.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{display:inline-block;position:relative}.mui-dropdown__menu.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{box-shadow:0 1px 3px rgba(21, 21, 21, 0.12), 0 1px 2px rgba(21, 21, 21, 0.24);position:absolute;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:1rem;text-align:left;background-color:#fff;border-radius:0.1;z-index:100;background-clip:padding-box}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.mui-dropdown__menu.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{border-top:1px solid rgba(21, 21, 21, 0.12);border-left:1px solid rgba(21, 21, 21, 0.12)}}@supports (-ms-ime-align: auto){.mui-dropdown__menu.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{border-top:1px solid rgba(21, 21, 21, 0.12);border-left:1px solid rgba(21, 21, 21, 0.12)}}.mui-dropdown__menu.mui--is-open.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{display:block}.mui-dropdown__menu.svelte-1up86vp>li.svelte-1up86vp>a.svelte-1up86vp{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.6;color:#294c5d;text-decoration:none;white-space:nowrap}.mui-dropdown__menu.svelte-1up86vp>li.svelte-1up86vp>a.svelte-1up86vp:hover,.mui-dropdown__menu.svelte-1up86vp>li.svelte-1up86vp>a.svelte-1up86vp:focus{text-decoration:none;color:#294c5d;background-color:#dcc894}.mui-dropdown--right.svelte-1up86vp.svelte-1up86vp>.mui-dropdown__menu.svelte-1up86vp.svelte-1up86vp{margin:0 0 0 2px}input.svelte-1up86vp.svelte-1up86vp.svelte-1up86vp{background-color:deeppink;padding-bottom:6px !important;padding-top:6px !important} -.grid-3.svelte-ojjucl{display:grid;grid-template-columns:repeat(3, 1fr);grid-gap:1rem} +@import url("./fonts/roboto-condensed.css");@import url("./fonts/fujicons.css");@import url("https://fonts.googleapis.com/css?family=Roboto+Condensed");@import url(./fonts/fujicons.css);.bg-red{background-color:#f44336}.bg-red-50{background-color:#ffebee}.bg-red-100{background-color:#ffcdd2}.bg-red-200{background-color:#ef9a9a}.bg-red-300{background-color:#e57373}.bg-red-400{background-color:#ef5350}.bg-red-500{background-color:#f44336}.bg-red-600{background-color:#e53935}.bg-red-700{background-color:#d32f2f}.bg-red-800{background-color:#c62828}.bg-red-900{background-color:#b71c1c}.bg-red-a100{background-color:#ff8a80}.bg-red-a200{background-color:#ff5252}.bg-red-a400{background-color:#ff1744}.bg-red-a700{background-color:#d50000}.bg-pink{background-color:#e91e63}.bg-pink-50{background-color:#fce4ec}.bg-pink-100{background-color:#f8bbd0}.bg-pink-200{background-color:#f48fb1}.bg-pink-300{background-color:#f06292}.bg-pink-400{background-color:#ec407a}.bg-pink-500{background-color:#e91e63}.bg-pink-600{background-color:#d81b60}.bg-pink-700{background-color:#c2185b}.bg-pink-800{background-color:#ad1457}.bg-pink-900{background-color:#880e4f}.bg-pink-a100{background-color:#ff80ab}.bg-pink-a200{background-color:#ff4081}.bg-pink-a400{background-color:#f50057}.bg-pink-a700{background-color:#c51162}.bg-purple{background-color:#9c27b0}.bg-purple-50{background-color:#f3e5f5}.bg-purple-100{background-color:#e1bee7}.bg-purple-200{background-color:#ce93d8}.bg-purple-300{background-color:#ba68c8}.bg-purple-400{background-color:#ab47bc}.bg-purple-500{background-color:#9c27b0}.bg-purple-600{background-color:#8e24aa}.bg-purple-700{background-color:#7b1fa2}.bg-purple-800{background-color:#6a1b9a}.bg-purple-900{background-color:#4a148c}.bg-purple-a100{background-color:#ea80fc}.bg-purple-a200{background-color:#e040fb}.bg-purple-a400{background-color:#d500f9}.bg-purple-a700{background-color:#a0f}.bg-deep-purple{background-color:#673ab7}.bg-deep-purple-50{background-color:#ede7f6}.bg-deep-purple-100{background-color:#d1c4e9}.bg-deep-purple-200{background-color:#b39ddb}.bg-deep-purple-300{background-color:#9575cd}.bg-deep-purple-400{background-color:#7e57c2}.bg-deep-purple-500{background-color:#673ab7}.bg-deep-purple-600{background-color:#5e35b1}.bg-deep-purple-700{background-color:#512da8}.bg-deep-purple-800{background-color:#4527a0}.bg-deep-purple-900{background-color:#311b92}.bg-deep-purple-a100{background-color:#b388ff}.bg-deep-purple-a200{background-color:#7c4dff}.bg-deep-purple-a400{background-color:#651fff}.bg-deep-purple-a700{background-color:#6200ea}.bg-indigo{background-color:#3f51b5}.bg-indigo-50{background-color:#e8eaf6}.bg-indigo-100{background-color:#c5cae9}.bg-indigo-200{background-color:#9fa8da}.bg-indigo-300{background-color:#7986cb}.bg-indigo-400{background-color:#5c6bc0}.bg-indigo-500{background-color:#3f51b5}.bg-indigo-600{background-color:#3949ab}.bg-indigo-700{background-color:#303f9f}.bg-indigo-800{background-color:#283593}.bg-indigo-900{background-color:#1a237e}.bg-indigo-a100{background-color:#8c9eff}.bg-indigo-a200{background-color:#536dfe}.bg-indigo-a400{background-color:#3d5afe}.bg-indigo-a700{background-color:#304ffe}.bg-blue{background-color:#2196f3}.bg-blue-50{background-color:#e3f2fd}.bg-blue-100{background-color:#bbdefb}.bg-blue-200{background-color:#90caf9}.bg-blue-300{background-color:#64b5f6}.bg-blue-400{background-color:#42a5f5}.bg-blue-500{background-color:#2196f3}.bg-blue-600{background-color:#1e88e5}.bg-blue-700{background-color:#1976d2}.bg-blue-800{background-color:#1565c0}.bg-blue-900{background-color:#0d47a1}.bg-blue-a100{background-color:#82b1ff}.bg-blue-a200{background-color:#448aff}.bg-blue-a400{background-color:#2979ff}.bg-blue-a700{background-color:#2962ff}.bg-light-blue{background-color:#03a9f4}.bg-light-blue-50{background-color:#e1f5fe}.bg-light-blue-100{background-color:#b3e5fc}.bg-light-blue-200{background-color:#81d4fa}.bg-light-blue-300{background-color:#4fc3f7}.bg-light-blue-400{background-color:#29b6f6}.bg-light-blue-500{background-color:#03a9f4}.bg-light-blue-600{background-color:#039be5}.bg-light-blue-700{background-color:#0288d1}.bg-light-blue-800{background-color:#0277bd}.bg-light-blue-900{background-color:#01579b}.bg-light-blue-a100{background-color:#80d8ff}.bg-light-blue-a200{background-color:#40c4ff}.bg-light-blue-a400{background-color:#00b0ff}.bg-light-blue-a700{background-color:#0091ea}.bg-cyan{background-color:#00bcd4}.bg-cyan-50{background-color:#e0f7fa}.bg-cyan-100{background-color:#b2ebf2}.bg-cyan-200{background-color:#80deea}.bg-cyan-300{background-color:#4dd0e1}.bg-cyan-400{background-color:#26c6da}.bg-cyan-500{background-color:#00bcd4}.bg-cyan-600{background-color:#00acc1}.bg-cyan-700{background-color:#0097a7}.bg-cyan-800{background-color:#00838f}.bg-cyan-900{background-color:#006064}.bg-cyan-a100{background-color:#84ffff}.bg-cyan-a200{background-color:#18ffff}.bg-cyan-a400{background-color:#00e5ff}.bg-cyan-a700{background-color:#00b8d4}.bg-teal{background-color:#009688}.bg-teal-50{background-color:#e0f2f1}.bg-teal-100{background-color:#b2dfdb}.bg-teal-200{background-color:#80cbc4}.bg-teal-300{background-color:#4db6ac}.bg-teal-400{background-color:#26a69a}.bg-teal-500{background-color:#009688}.bg-teal-600{background-color:#00897b}.bg-teal-700{background-color:#00796b}.bg-teal-800{background-color:#00695c}.bg-teal-900{background-color:#004d40}.bg-teal-a100{background-color:#a7ffeb}.bg-teal-a200{background-color:#64ffda}.bg-teal-a400{background-color:#1de9b6}.bg-teal-a700{background-color:#00bfa5}.bg-green{background-color:#4caf50}.bg-green-50{background-color:#e8f5e9}.bg-green-100{background-color:#c8e6c9}.bg-green-200{background-color:#a5d6a7}.bg-green-300{background-color:#81c784}.bg-green-400{background-color:#66bb6a}.bg-green-500{background-color:#4caf50}.bg-green-600{background-color:#43a047}.bg-green-700{background-color:#388e3c}.bg-green-800{background-color:#2e7d32}.bg-green-900{background-color:#1b5e20}.bg-green-a100{background-color:#b9f6ca}.bg-green-a200{background-color:#69f0ae}.bg-green-a400{background-color:#00e676}.bg-green-a700{background-color:#00c853}.bg-light-green{background-color:#8bc34a}.bg-light-green-50{background-color:#f1f8e9}.bg-light-green-100{background-color:#dcedc8}.bg-light-green-200{background-color:#c5e1a5}.bg-light-green-300{background-color:#aed581}.bg-light-green-400{background-color:#9ccc65}.bg-light-green-500{background-color:#8bc34a}.bg-light-green-600{background-color:#7cb342}.bg-light-green-700{background-color:#689f38}.bg-light-green-800{background-color:#558b2f}.bg-light-green-900{background-color:#33691e}.bg-light-green-a100{background-color:#ccff90}.bg-light-green-a200{background-color:#b2ff59}.bg-light-green-a400{background-color:#76ff03}.bg-light-green-a700{background-color:#64dd17}.bg-lime{background-color:#cddc39}.bg-lime-50{background-color:#f9fbe7}.bg-lime-100{background-color:#f0f4c3}.bg-lime-200{background-color:#e6ee9c}.bg-lime-300{background-color:#dce775}.bg-lime-400{background-color:#d4e157}.bg-lime-500{background-color:#cddc39}.bg-lime-600{background-color:#c0ca33}.bg-lime-700{background-color:#afb42b}.bg-lime-800{background-color:#9e9d24}.bg-lime-900{background-color:#827717}.bg-lime-a100{background-color:#f4ff81}.bg-lime-a200{background-color:#eeff41}.bg-lime-a400{background-color:#c6ff00}.bg-lime-a700{background-color:#aeea00}.bg-yellow{background-color:#ffeb3b}.bg-yellow-50{background-color:#fffde7}.bg-yellow-100{background-color:#fff9c4}.bg-yellow-200{background-color:#fff59d}.bg-yellow-300{background-color:#fff176}.bg-yellow-400{background-color:#ffee58}.bg-yellow-500{background-color:#ffeb3b}.bg-yellow-600{background-color:#fdd835}.bg-yellow-700{background-color:#fbc02d}.bg-yellow-800{background-color:#f9a825}.bg-yellow-900{background-color:#f57f17}.bg-yellow-a100{background-color:#ffff8d}.bg-yellow-a200{background-color:#ff0}.bg-yellow-a400{background-color:#ffea00}.bg-yellow-a700{background-color:#ffd600}.bg-amber{background-color:#ffc107}.bg-amber-50{background-color:#fff8e1}.bg-amber-100{background-color:#ffecb3}.bg-amber-200{background-color:#ffe082}.bg-amber-300{background-color:#ffd54f}.bg-amber-400{background-color:#ffca28}.bg-amber-500{background-color:#ffc107}.bg-amber-600{background-color:#ffb300}.bg-amber-700{background-color:#ffa000}.bg-amber-800{background-color:#ff8f00}.bg-amber-900{background-color:#ff6f00}.bg-amber-a100{background-color:#ffe57f}.bg-amber-a200{background-color:#ffd740}.bg-amber-a400{background-color:#ffc400}.bg-amber-a700{background-color:#ffab00}.bg-orange{background-color:#ff9800}.bg-orange-50{background-color:#fff3e0}.bg-orange-100{background-color:#ffe0b2}.bg-orange-200{background-color:#ffcc80}.bg-orange-300{background-color:#ffb74d}.bg-orange-400{background-color:#ffa726}.bg-orange-500{background-color:#ff9800}.bg-orange-600{background-color:#fb8c00}.bg-orange-700{background-color:#f57c00}.bg-orange-800{background-color:#ef6c00}.bg-orange-900{background-color:#e65100}.bg-orange-a100{background-color:#ffd180}.bg-orange-a200{background-color:#ffab40}.bg-orange-a400{background-color:#ff9100}.bg-orange-a700{background-color:#ff6d00}.bg-deep-orange{background-color:#ff5722}.bg-deep-orange-50{background-color:#fbe9e7}.bg-deep-orange-100{background-color:#ffccbc}.bg-deep-orange-200{background-color:#ffab91}.bg-deep-orange-300{background-color:#ff8a65}.bg-deep-orange-400{background-color:#ff7043}.bg-deep-orange-500{background-color:#ff5722}.bg-deep-orange-600{background-color:#f4511e}.bg-deep-orange-700{background-color:#e64a19}.bg-deep-orange-800{background-color:#d84315}.bg-deep-orange-900{background-color:#bf360c !important}.bg-deep-orange-a100{background-color:#ff9e80}.bg-deep-orange-a200{background-color:#ff6e40}.bg-deep-orange-a400{background-color:#ff3d00}.bg-deep-orange-a700{background-color:#dd2c00}.bg-brown{background-color:#795548}.bg-brown-50{background-color:#efebe9}.bg-brown-100{background-color:#d7ccc8}.bg-brown-200{background-color:#bcaaa4}.bg-brown-300{background-color:#a1887f}.bg-brown-400{background-color:#8d6e63}.bg-brown-500{background-color:#795548}.bg-brown-600{background-color:#6d4c41}.bg-brown-700{background-color:#5d4037}.bg-brown-800{background-color:#4e342e}.bg-brown-900{background-color:#3e2723}.bg-grey{background-color:#9e9e9e}.bg-grey-50{background-color:#fafafa}.bg-grey-100{background-color:#f5f5f5}.bg-grey-200{background-color:#eee}.bg-grey-300{background-color:#e0e0e0}.bg-grey-400{background-color:#bdbdbd}.bg-grey-500{background-color:#9e9e9e}.bg-grey-600{background-color:#757575}.bg-grey-700{background-color:#616161}.bg-grey-800{background-color:#424242}.bg-grey-900{background-color:#212121}.bg-blue-grey{background-color:#607d8b}.bg-blue-grey-50{background-color:#eceff1}.bg-blue-grey-100{background-color:#cfd8dc}.bg-blue-grey-200{background-color:#b0bec5}.bg-blue-grey-300{background-color:#90a4ae}.bg-blue-grey-400{background-color:#78909c}.bg-blue-grey-500{background-color:#607d8b}.bg-blue-grey-600{background-color:#546e7a}.bg-blue-grey-700{background-color:#455a64}.bg-blue-grey-800{background-color:#37474f}.bg-blue-grey-900{background-color:#263238}.bg-black{background-color:#000}.bg-white{background-color:#fff}.fg-red{color:#f44336}.fg-red-50{color:#ffebee}.fg-red-100{color:#ffcdd2}.fg-red-200{color:#ef9a9a}.fg-red-300{color:#e57373}.fg-red-400{color:#ef5350}.fg-red-500{color:#f44336}.fg-red-600{color:#e53935}.fg-red-700{color:#d32f2f}.fg-red-800{color:#c62828}.fg-red-900{color:#b71c1c}.fg-red-a100{color:#ff8a80}.fg-red-a200{color:#ff5252}.fg-red-a400{color:#ff1744}.fg-red-a700{color:#d50000}.fg-pink{color:#e91e63}.fg-pink-50{color:#fce4ec}.fg-pink-100{color:#f8bbd0}.fg-pink-200{color:#f48fb1}.fg-pink-300{color:#f06292}.fg-pink-400{color:#ec407a}.fg-pink-500{color:#e91e63}.fg-pink-600{color:#d81b60}.fg-pink-700{color:#c2185b}.fg-pink-800{color:#ad1457}.fg-pink-900{color:#880e4f}.fg-pink-a100{color:#ff80ab}.fg-pink-a200{color:#ff4081}.fg-pink-a400{color:#f50057}.fg-pink-a700{color:#c51162}.fg-purple{color:#9c27b0}.fg-purple-50{color:#f3e5f5}.fg-purple-100{color:#e1bee7}.fg-purple-200{color:#ce93d8}.fg-purple-300{color:#ba68c8}.fg-purple-400{color:#ab47bc}.fg-purple-500{color:#9c27b0}.fg-purple-600{color:#8e24aa}.fg-purple-700{color:#7b1fa2}.fg-purple-800{color:#6a1b9a}.fg-purple-900{color:#4a148c}.fg-purple-a100{color:#ea80fc}.fg-purple-a200{color:#e040fb}.fg-purple-a400{color:#d500f9}.fg-purple-a700{color:#a0f}.fg-deep-purple{color:#673ab7}.fg-deep-purple-50{color:#ede7f6}.fg-deep-purple-100{color:#d1c4e9}.fg-deep-purple-200{color:#b39ddb}.fg-deep-purple-300{color:#9575cd}.fg-deep-purple-400{color:#7e57c2}.fg-deep-purple-500{color:#673ab7}.fg-deep-purple-600{color:#5e35b1}.fg-deep-purple-700{color:#512da8}.fg-deep-purple-800{color:#4527a0}.fg-deep-purple-900{color:#311b92}.fg-deep-purple-a100{color:#b388ff}.fg-deep-purple-a200{color:#7c4dff}.fg-deep-purple-a400{color:#651fff}.fg-deep-purple-a700{color:#6200ea}.fg-indigo{color:#3f51b5}.fg-indigo-50{color:#e8eaf6}.fg-indigo-100{color:#c5cae9}.fg-indigo-200{color:#9fa8da}.fg-indigo-300{color:#7986cb}.fg-indigo-400{color:#5c6bc0}.fg-indigo-500{color:#3f51b5}.fg-indigo-600{color:#3949ab}.fg-indigo-700{color:#303f9f}.fg-indigo-800{color:#283593}.fg-indigo-900{color:#1a237e}.fg-indigo-a100{color:#8c9eff}.fg-indigo-a200{color:#536dfe}.fg-indigo-a400{color:#3d5afe}.fg-indigo-a700{color:#304ffe}.fg-blue{color:#2196f3}.fg-blue-50{color:#e3f2fd}.fg-blue-100{color:#bbdefb}.fg-blue-200{color:#90caf9}.fg-blue-300{color:#64b5f6}.fg-blue-400{color:#42a5f5}.fg-blue-500{color:#2196f3}.fg-blue-600{color:#1e88e5}.fg-blue-700{color:#1976d2}.fg-blue-800{color:#1565c0}.fg-blue-900{color:#0d47a1}.fg-blue-a100{color:#82b1ff}.fg-blue-a200{color:#448aff}.fg-blue-a400{color:#2979ff}.fg-blue-a700{color:#2962ff}.fg-light-blue{color:#03a9f4}.fg-light-blue-50{color:#e1f5fe}.fg-light-blue-100{color:#b3e5fc}.fg-light-blue-200{color:#81d4fa}.fg-light-blue-300{color:#4fc3f7}.fg-light-blue-400{color:#29b6f6}.fg-light-blue-500{color:#03a9f4}.fg-light-blue-600{color:#039be5}.fg-light-blue-700{color:#0288d1}.fg-light-blue-800{color:#0277bd}.fg-light-blue-900{color:#01579b}.fg-light-blue-a100{color:#80d8ff}.fg-light-blue-a200{color:#40c4ff}.fg-light-blue-a400{color:#00b0ff}.fg-light-blue-a700{color:#0091ea}.fg-cyan{color:#00bcd4}.fg-cyan-50{color:#e0f7fa}.fg-cyan-100{color:#b2ebf2}.fg-cyan-200{color:#80deea}.fg-cyan-300{color:#4dd0e1}.fg-cyan-400{color:#26c6da}.fg-cyan-500{color:#00bcd4}.fg-cyan-600{color:#00acc1}.fg-cyan-700{color:#0097a7}.fg-cyan-800{color:#00838f}.fg-cyan-900{color:#006064}.fg-cyan-a100{color:#84ffff}.fg-cyan-a200{color:#18ffff}.fg-cyan-a400{color:#00e5ff}.fg-cyan-a700{color:#00b8d4}.fg-teal{color:#009688}.fg-teal-50{color:#e0f2f1}.fg-teal-100{color:#b2dfdb}.fg-teal-200{color:#80cbc4}.fg-teal-300{color:#4db6ac}.fg-teal-400{color:#26a69a}.fg-teal-500{color:#009688}.fg-teal-600{color:#00897b}.fg-teal-700{color:#00796b}.fg-teal-800{color:#00695c}.fg-teal-900{color:#004d40}.fg-teal-a100{color:#a7ffeb}.fg-teal-a200{color:#64ffda}.fg-teal-a400{color:#1de9b6}.fg-teal-a700{color:#00bfa5}.fg-green{color:#4caf50}.fg-green-50{color:#e8f5e9}.fg-green-100{color:#c8e6c9}.fg-green-200{color:#a5d6a7}.fg-green-300{color:#81c784}.fg-green-400{color:#66bb6a}.fg-green-500{color:#4caf50}.fg-green-600{color:#43a047}.fg-green-700{color:#388e3c}.fg-green-800{color:#2e7d32}.fg-green-900{color:#1b5e20}.fg-green-a100{color:#b9f6ca}.fg-green-a200{color:#69f0ae}.fg-green-a400{color:#00e676}.fg-green-a700{color:#00c853}.fg-light-green{color:#8bc34a}.fg-light-green-50{color:#f1f8e9}.fg-light-green-100{color:#dcedc8}.fg-light-green-200{color:#c5e1a5}.fg-light-green-300{color:#aed581}.fg-light-green-400{color:#9ccc65}.fg-light-green-500{color:#8bc34a}.fg-light-green-600{color:#7cb342}.fg-light-green-700{color:#689f38}.fg-light-green-800{color:#558b2f}.fg-light-green-900{color:#33691e}.fg-light-green-a100{color:#ccff90}.fg-light-green-a200{color:#b2ff59}.fg-light-green-a400{color:#76ff03}.fg-light-green-a700{color:#64dd17}.fg-lime{color:#cddc39}.fg-lime-50{color:#f9fbe7}.fg-lime-100{color:#f0f4c3}.fg-lime-200{color:#e6ee9c}.fg-lime-300{color:#dce775}.fg-lime-400{color:#d4e157}.fg-lime-500{color:#cddc39}.fg-lime-600{color:#c0ca33}.fg-lime-700{color:#afb42b}.fg-lime-800{color:#9e9d24}.fg-lime-900{color:#827717}.fg-lime-a100{color:#f4ff81}.fg-lime-a200{color:#eeff41}.fg-lime-a400{color:#c6ff00}.fg-lime-a700{color:#aeea00}.fg-yellow{color:#ffeb3b}.fg-yellow-50{color:#fffde7}.fg-yellow-100{color:#fff9c4}.fg-yellow-200{color:#fff59d}.fg-yellow-300{color:#fff176}.fg-yellow-400{color:#ffee58}.fg-yellow-500{color:#ffeb3b}.fg-yellow-600{color:#fdd835}.fg-yellow-700{color:#fbc02d}.fg-yellow-800{color:#f9a825}.fg-yellow-900{color:#f57f17}.fg-yellow-a100{color:#ffff8d}.fg-yellow-a200{color:#ff0}.fg-yellow-a400{color:#ffea00}.fg-yellow-a700{color:#ffd600}.fg-amber{color:#ffc107}.fg-amber-50{color:#fff8e1}.fg-amber-100{color:#ffecb3}.fg-amber-200{color:#ffe082}.fg-amber-300{color:#ffd54f}.fg-amber-400{color:#ffca28}.fg-amber-500{color:#ffc107}.fg-amber-600{color:#ffb300}.fg-amber-700{color:#ffa000}.fg-amber-800{color:#ff8f00}.fg-amber-900{color:#ff6f00}.fg-amber-a100{color:#ffe57f}.fg-amber-a200{color:#ffd740}.fg-amber-a400{color:#ffc400}.fg-amber-a700{color:#ffab00}.fg-orange{color:#ff9800}.fg-orange-50{color:#fff3e0}.fg-orange-100{color:#ffe0b2}.fg-orange-200{color:#ffcc80}.fg-orange-300{color:#ffb74d}.fg-orange-400{color:#ffa726}.fg-orange-500{color:#ff9800}.fg-orange-600{color:#fb8c00}.fg-orange-700{color:#f57c00}.fg-orange-800{color:#ef6c00}.fg-orange-900{color:#e65100}.fg-orange-a100{color:#ffd180}.fg-orange-a200{color:#ffab40}.fg-orange-a400{color:#ff9100}.fg-orange-a700{color:#ff6d00}.fg-deep-orange{color:#ff5722}.fg-deep-orange-50{color:#fbe9e7}.fg-deep-orange-100{color:#ffccbc}.fg-deep-orange-200{color:#ffab91}.fg-deep-orange-300{color:#ff8a65}.fg-deep-orange-400{color:#ff7043}.fg-deep-orange-500{color:#ff5722}.fg-deep-orange-600{color:#f4511e}.fg-deep-orange-700{color:#e64a19}.fg-deep-orange-800{color:#d84315}.fg-deep-orange-900{color:#bf360c}.fg-deep-orange-a100{color:#ff9e80}.fg-deep-orange-a200{color:#ff6e40}.fg-deep-orange-a400{color:#ff3d00}.fg-deep-orange-a700{color:#dd2c00}.fg-brown{color:#795548}.fg-brown-50{color:#efebe9}.fg-brown-100{color:#d7ccc8}.fg-brown-200{color:#bcaaa4}.fg-brown-300{color:#a1887f}.fg-brown-400{color:#8d6e63}.fg-brown-500{color:#795548}.fg-brown-600{color:#6d4c41}.fg-brown-700{color:#5d4037}.fg-brown-800{color:#4e342e}.fg-brown-900{color:#3e2723}.fg-grey{color:#9e9e9e}.fg-grey-50{color:#fafafa}.fg-grey-100{color:#f5f5f5}.fg-grey-200{color:#eee}.fg-grey-300{color:#e0e0e0}.fg-grey-400{color:#bdbdbd}.fg-grey-500{color:#9e9e9e}.fg-grey-600{color:#757575}.fg-grey-700{color:#616161}.fg-grey-800{color:#424242}.fg-grey-900{color:#212121}.fg-blue-grey{color:#607d8b}.fg-blue-grey-50{color:#eceff1}.fg-blue-grey-100{color:#cfd8dc}.fg-blue-grey-200{color:#b0bec5}.fg-blue-grey-300{color:#90a4ae}.fg-blue-grey-400{color:#78909c}.fg-blue-grey-500{color:#607d8b}.fg-blue-grey-600{color:#546e7a}.fg-blue-grey-700{color:#455a64}.fg-blue-grey-800{color:#37474f}.fg-blue-grey-900{color:#263238}.fg-black{color:#000}.fg-white{color:#fff !important}.border-red{border-color:#f44336}.border-red-50{border-color:#ffebee}.border-red-100{border-color:#ffcdd2}.border-red-200{border-color:#ef9a9a}.border-red-300{border-color:#e57373}.border-red-400{border-color:#ef5350}.border-red-500{border-color:#f44336}.border-red-600{border-color:#e53935}.border-red-700{border-color:#d32f2f}.border-red-800{border-color:#c62828}.border-red-900{border-color:#b71c1c}.border-red-a100{border-color:#ff8a80}.border-red-a200{border-color:#ff5252}.border-red-a400{border-color:#ff1744}.border-red-a700{border-color:#d50000}.border-pink{border-color:#e91e63}.border-pink-50{border-color:#fce4ec}.border-pink-100{border-color:#f8bbd0}.border-pink-200{border-color:#f48fb1}.border-pink-300{border-color:#f06292}.border-pink-400{border-color:#ec407a}.border-pink-500{border-color:#e91e63}.border-pink-600{border-color:#d81b60}.border-pink-700{border-color:#c2185b}.border-pink-800{border-color:#ad1457}.border-pink-900{border-color:#880e4f}.border-pink-a100{border-color:#ff80ab}.border-pink-a200{border-color:#ff4081}.border-pink-a400{border-color:#f50057}.border-pink-a700{border-color:#c51162}.border-purple{border-color:#9c27b0}.border-purple-50{border-color:#f3e5f5}.border-purple-100{border-color:#e1bee7}.border-purple-200{border-color:#ce93d8}.border-purple-300{border-color:#ba68c8}.border-purple-400{border-color:#ab47bc}.border-purple-500{border-color:#9c27b0}.border-purple-600{border-color:#8e24aa}.border-purple-700{border-color:#7b1fa2}.border-purple-800{border-color:#6a1b9a}.border-purple-900{border-color:#4a148c}.border-purple-a100{border-color:#ea80fc}.border-purple-a200{border-color:#e040fb}.border-purple-a400{border-color:#d500f9}.border-purple-a700{border-color:#a0f}.border-deep-purple{border-color:#673ab7}.border-deep-purple-50{border-color:#ede7f6}.border-deep-purple-100{border-color:#d1c4e9}.border-deep-purple-200{border-color:#b39ddb}.border-deep-purple-300{border-color:#9575cd}.border-deep-purple-400{border-color:#7e57c2}.border-deep-purple-500{border-color:#673ab7}.border-deep-purple-600{border-color:#5e35b1}.border-deep-purple-700{border-color:#512da8}.border-deep-purple-800{border-color:#4527a0}.border-deep-purple-900{border-color:#311b92}.border-deep-purple-a100{border-color:#b388ff}.border-deep-purple-a200{border-color:#7c4dff}.border-deep-purple-a400{border-color:#651fff}.border-deep-purple-a700{border-color:#6200ea}.border-indigo{border-color:#3f51b5}.border-indigo-50{border-color:#e8eaf6}.border-indigo-100{border-color:#c5cae9}.border-indigo-200{border-color:#9fa8da}.border-indigo-300{border-color:#7986cb}.border-indigo-400{border-color:#5c6bc0}.border-indigo-500{border-color:#3f51b5}.border-indigo-600{border-color:#3949ab}.border-indigo-700{border-color:#303f9f}.border-indigo-800{border-color:#283593}.border-indigo-900{border-color:#1a237e}.border-indigo-a100{border-color:#8c9eff}.border-indigo-a200{border-color:#536dfe}.border-indigo-a400{border-color:#3d5afe}.border-indigo-a700{border-color:#304ffe}.border-blue{border-color:#2196f3}.border-blue-50{border-color:#e3f2fd}.border-blue-100{border-color:#bbdefb}.border-blue-200{border-color:#90caf9}.border-blue-300{border-color:#64b5f6}.border-blue-400{border-color:#42a5f5}.border-blue-500{border-color:#2196f3}.border-blue-600{border-color:#1e88e5}.border-blue-700{border-color:#1976d2}.border-blue-800{border-color:#1565c0}.border-blue-900{border-color:#0d47a1}.border-blue-a100{border-color:#82b1ff}.border-blue-a200{border-color:#448aff}.border-blue-a400{border-color:#2979ff}.border-blue-a700{border-color:#2962ff}.border-light-blue{border-color:#03a9f4}.border-light-blue-50{border-color:#e1f5fe}.border-light-blue-100{border-color:#b3e5fc}.border-light-blue-200{border-color:#81d4fa}.border-light-blue-300{border-color:#4fc3f7}.border-light-blue-400{border-color:#29b6f6}.border-light-blue-500{border-color:#03a9f4}.border-light-blue-600{border-color:#039be5}.border-light-blue-700{border-color:#0288d1}.border-light-blue-800{border-color:#0277bd}.border-light-blue-900{border-color:#01579b}.border-light-blue-a100{border-color:#80d8ff}.border-light-blue-a200{border-color:#40c4ff}.border-light-blue-a400{border-color:#00b0ff}.border-light-blue-a700{border-color:#0091ea}.border-cyan{border-color:#00bcd4}.border-cyan-50{border-color:#e0f7fa}.border-cyan-100{border-color:#b2ebf2}.border-cyan-200{border-color:#80deea}.border-cyan-300{border-color:#4dd0e1}.border-cyan-400{border-color:#26c6da}.border-cyan-500{border-color:#00bcd4}.border-cyan-600{border-color:#00acc1}.border-cyan-700{border-color:#0097a7}.border-cyan-800{border-color:#00838f}.border-cyan-900{border-color:#006064}.border-cyan-a100{border-color:#84ffff}.border-cyan-a200{border-color:#18ffff}.border-cyan-a400{border-color:#00e5ff}.border-cyan-a700{border-color:#00b8d4}.border-teal{border-color:#009688}.border-teal-50{border-color:#e0f2f1}.border-teal-100{border-color:#b2dfdb}.border-teal-200{border-color:#80cbc4}.border-teal-300{border-color:#4db6ac}.border-teal-400{border-color:#26a69a}.border-teal-500{border-color:#009688}.border-teal-600{border-color:#00897b}.border-teal-700{border-color:#00796b}.border-teal-800{border-color:#00695c}.border-teal-900{border-color:#004d40}.border-teal-a100{border-color:#a7ffeb}.border-teal-a200{border-color:#64ffda}.border-teal-a400{border-color:#1de9b6}.border-teal-a700{border-color:#00bfa5}.border-green{border-color:#4caf50}.border-green-50{border-color:#e8f5e9}.border-green-100{border-color:#c8e6c9}.border-green-200{border-color:#a5d6a7}.border-green-300{border-color:#81c784}.border-green-400{border-color:#66bb6a}.border-green-500{border-color:#4caf50}.border-green-600{border-color:#43a047}.border-green-700{border-color:#388e3c}.border-green-800{border-color:#2e7d32}.border-green-900{border-color:#1b5e20}.border-green-a100{border-color:#b9f6ca}.border-green-a200{border-color:#69f0ae}.border-green-a400{border-color:#00e676}.border-green-a700{border-color:#00c853}.border-light-green{border-color:#8bc34a}.border-light-green-50{border-color:#f1f8e9}.border-light-green-100{border-color:#dcedc8}.border-light-green-200{border-color:#c5e1a5}.border-light-green-300{border-color:#aed581}.border-light-green-400{border-color:#9ccc65}.border-light-green-500{border-color:#8bc34a}.border-light-green-600{border-color:#7cb342}.border-light-green-700{border-color:#689f38}.border-light-green-800{border-color:#558b2f}.border-light-green-900{border-color:#33691e}.border-light-green-a100{border-color:#ccff90}.border-light-green-a200{border-color:#b2ff59}.border-light-green-a400{border-color:#76ff03}.border-light-green-a700{border-color:#64dd17}.border-lime{border-color:#cddc39}.border-lime-50{border-color:#f9fbe7}.border-lime-100{border-color:#f0f4c3}.border-lime-200{border-color:#e6ee9c}.border-lime-300{border-color:#dce775}.border-lime-400{border-color:#d4e157}.border-lime-500{border-color:#cddc39}.border-lime-600{border-color:#c0ca33}.border-lime-700{border-color:#afb42b}.border-lime-800{border-color:#9e9d24}.border-lime-900{border-color:#827717}.border-lime-a100{border-color:#f4ff81}.border-lime-a200{border-color:#eeff41}.border-lime-a400{border-color:#c6ff00}.border-lime-a700{border-color:#aeea00}.border-yellow{border-color:#ffeb3b}.border-yellow-50{border-color:#fffde7}.border-yellow-100{border-color:#fff9c4}.border-yellow-200{border-color:#fff59d}.border-yellow-300{border-color:#fff176}.border-yellow-400{border-color:#ffee58}.border-yellow-500{border-color:#ffeb3b}.border-yellow-600{border-color:#fdd835}.border-yellow-700{border-color:#fbc02d}.border-yellow-800{border-color:#f9a825}.border-yellow-900{border-color:#f57f17}.border-yellow-a100{border-color:#ffff8d}.border-yellow-a200{border-color:#ff0}.border-yellow-a400{border-color:#ffea00}.border-yellow-a700{border-color:#ffd600}.border-amber{border-color:#ffc107}.border-amber-50{border-color:#fff8e1}.border-amber-100{border-color:#ffecb3}.border-amber-200{border-color:#ffe082}.border-amber-300{border-color:#ffd54f}.border-amber-400{border-color:#ffca28}.border-amber-500{border-color:#ffc107}.border-amber-600{border-color:#ffb300}.border-amber-700{border-color:#ffa000}.border-amber-800{border-color:#ff8f00}.border-amber-900{border-color:#ff6f00}.border-amber-a100{border-color:#ffe57f}.border-amber-a200{border-color:#ffd740}.border-amber-a400{border-color:#ffc400}.border-amber-a700{border-color:#ffab00}.border-orange{border-color:#ff9800}.border-orange-50{border-color:#fff3e0}.border-orange-100{border-color:#ffe0b2}.border-orange-200{border-color:#ffcc80}.border-orange-300{border-color:#ffb74d}.border-orange-400{border-color:#ffa726}.border-orange-500{border-color:#ff9800}.border-orange-600{border-color:#fb8c00}.border-orange-700{border-color:#f57c00}.border-orange-800{border-color:#ef6c00}.border-orange-900{border-color:#e65100}.border-orange-a100{border-color:#ffd180}.border-orange-a200{border-color:#ffab40}.border-orange-a400{border-color:#ff9100}.border-orange-a700{border-color:#ff6d00}.border-deep-orange{border-color:#ff5722}.border-deep-orange-50{border-color:#fbe9e7}.border-deep-orange-100{border-color:#ffccbc}.border-deep-orange-200{border-color:#ffab91}.border-deep-orange-300{border-color:#ff8a65}.border-deep-orange-400{border-color:#ff7043}.border-deep-orange-500{border-color:#ff5722}.border-deep-orange-600{border-color:#f4511e}.border-deep-orange-700{border-color:#e64a19}.border-deep-orange-800{border-color:#d84315}.border-deep-orange-900{border-color:#bf360c}.border-deep-orange-a100{border-color:#ff9e80}.border-deep-orange-a200{border-color:#ff6e40}.border-deep-orange-a400{border-color:#ff3d00}.border-deep-orange-a700{border-color:#dd2c00}.border-brown{border-color:#795548}.border-brown-50{border-color:#efebe9}.border-brown-100{border-color:#d7ccc8}.border-brown-200{border-color:#bcaaa4}.border-brown-300{border-color:#a1887f}.border-brown-400{border-color:#8d6e63}.border-brown-500{border-color:#795548}.border-brown-600{border-color:#6d4c41}.border-brown-700{border-color:#5d4037}.border-brown-800{border-color:#4e342e}.border-brown-900{border-color:#3e2723}.border-grey{border-color:#9e9e9e}.border-grey-50{border-color:#fafafa}.border-grey-100{border-color:#f5f5f5}.border-grey-200{border-color:#eee}.border-grey-300{border-color:#e0e0e0}.border-grey-400{border-color:#bdbdbd}.border-grey-500{border-color:#9e9e9e}.border-grey-600{border-color:#757575}.border-grey-700{border-color:#616161}.border-grey-800{border-color:#424242}.border-grey-900{border-color:#212121}.border-blue-grey{border-color:#607d8b}.border-blue-grey-50{border-color:#eceff1}.border-blue-grey-100{border-color:#cfd8dc}.border-blue-grey-200{border-color:#b0bec5}.border-blue-grey-300{border-color:#90a4ae}.border-blue-grey-400{border-color:#78909c}.border-blue-grey-500{border-color:#607d8b}.border-blue-grey-600{border-color:#546e7a}.border-blue-grey-700{border-color:#455a64}.border-blue-grey-800{border-color:#37474f}.border-blue-grey-900{border-color:#263238}.border-black{border-color:#000}.border-white{border-color:#fff}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}body{height:100%;overflow-x:hidden;font-family:'Roboto Condensed', sans-serif;font-size:12px;line-height:1.6}a{color:#5e81ac;text-decoration:none}a:hover{color:#666}a.active{color:#b48ead}ul{list-style:none}img{width:100%}.container{max-width:1100px;margin:auto;overflow-y:scroll;padding:0 2rem}hr{margin-top:2.2rem;margin-bottom:2rem;border-width:0;border-top:1px solid #2e3440}.flex{display:flex}.pad{padding:0.5rem}.pad--1{padding:1rem}.pad--2{padding:2rem}.pad--3{padding:3rem}.pady{padding:0.5rem 0}.pady--top{padding-top:0.5rem}.pady--bottom{padding-bottom:0.5rem}.pady--1{padding:1rem 0}.pady--2{padding:2rem 0}.pady--3{padding:3rem 0}.padx{padding:0 0.5rem}.padx--right{padding-right:0.5rem}.padx--left{padding-left:0.5rem}.padx--1{padding:0 1rem}.padx--2{padding:0 2rem}.padx--3{padding:0 3rem}.grid{display:flex;display:-ms-flexbox;flex-wrap:wrap}.grid--1{display:grid;grid-template-columns:repeat(1, 1fr);grid-gap:1rem}.grid--2{display:grid;grid-template-columns:repeat(2, 1fr);grid-gap:1rem}.grid--3{display:grid;grid-template-columns:repeat(3, 1fr);grid-gap:1px}.grid--4{display:grid;grid-template-columns:repeat(4, 1fr);grid-gap:1rem}.row{margin-left:3px;margin-right:3px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.col-1{width:8.33333%}.col-2{width:16.66667%}.col-3{width:25%}.col-4{width:33.33333%}.col-5{width:41.66667%}.col-6{width:50%}.col-7{width:58.33333%}.col-8{width:66.66667%}.col-9{width:75%}.col-10{width:83.33333%}.col-11{width:91.66667%}.col-12{width:100%;margin-left:0}.col-1-3rd{width:32.666667%}.col-2-3rd{width:65.3333333333%}.col-half{width:48%}.offset-1-col{margin-left:8.66666666667%}.offset-2-col{margin-left:17.3333333333%}.offset-3-col{margin-left:26%}.offset-4-col{margin-left:34.6666666667%}.offset-5-col{margin-left:43.3333333333%}.offset-6-col{margin-left:52%}.offset-7-col{margin-left:60.6666666667%}.offset-8-col{margin-left:69.3333333333%}.offset-9-col{margin-left:78.0%}.offset-10-col{margin-left:86.6666666667%}.offset-11-col{margin-left:95.3333333333%}.offset-1-3rd-col{margin-left:34.6666666667%}.offset-2-3rd-col{margin-left:69.3333333333%}.offset-half-col{margin-left:52%}.x-large{font-size:4rem;line-height:1.2;margin-bottom:1rem}.large{font-size:3rem;line-height:1.2;margin-bottom:1rem}.lead{font-size:1.5rem;margin-bottom:1rem}.text-primary{color:#5e81ac}.text-dark{color:#2e3440}.text-light{color:#2e3440}.text-success{color:#a3be8c}.text-danger{color:#bf616a}.text-highlight{color:#b48ead}.text-highlight2{color:#ebcb8b}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-display1,h1{font-weight:400;font-size:34px;line-height:40px}.text-title,h3{font-weight:400;font-size:20px;line-height:28px}.text-subhead,h4{font-weight:400;font-size:16px;line-height:24px}.text-body2,h5{font-weight:500;font-size:14px;line-height:24px}.text-body1{font-weight:400;font-size:14px;line-height:20px}.text-caption{font-weight:400;font-size:12px;line-height:16px}.align-middle{vertical-align:middle !important}.all-center{display:flex;flex-direction:column;width:100%;margin:auto;justify-content:center;align-items:center;text-align:center}.text-justify{text-align:justify !important}.text-nowrap{white-space:nowrap !important}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-bottom{vertical-align:bottom !important}.btn,.btn--slim{display:inline-block;background:#e5e9f0;color:#333;padding:0.4rem 1.3rem;font-size:1rem;border:none;cursor:pointer;margin-right:0.5rem;transition:opacity 0.2s ease-in;outline:none}.btn:disabled,.btn--slim:disabled{cursor:not-allowed;pointer-events:none;opacity:0.60;box-shadow:none}.btn:enabled:hover,.btn--slim:enabled:hover{opacity:0.8}.btn--slim{padding:0.4rem}.btn-link{background:none;padding:0;margin:0}.btn-block{display:block;width:100%}.btn-sm,.btn-sm--slim{font-size:0.8rem;padding:0.3rem 1rem;margin-right:0.2rem}.btn-sm--slim{padding:0.3rem}.badge{display:inline-block;font-size:0.6rem;padding:0.1rem 0.4rem;text-align:center;margin:0.3rem;background:#e5e9f0;color:#333;border-radius:3px}.alert{padding:0.7rem;margin:1rem 0;opacity:0.9;background:#e5e9f0;color:#333}.btn-primary,.bg-primary,.badge-primary,.alert-primary{background:#5e81ac;color:#fff}.btn-light,.bg-light,.badge-light,.alert-light{background:#e5e9f0;color:#333}.btn-dark,.bg-dark,.badge-dark,.alert-dark{background:#2e3440;color:#fff}.btn-danger,.bg-danger,.badge-danger,.alert-danger{background:#bf616a;color:#fff}.btn-success,.bg-success,.badge-success,.alert-success{background:#a3be8c;color:#fff}.btn-white,.bg-white,.badge-white,.alert-white{background:#fff;color:#333;border:#ccc solid 1px}.bg-light,.badge-light{border:#ccc solid 1px}.table-responsive{display:block;overflow-x:auto;width:100%}table{max-width:100%;width:100%;border:0;margin-bottom:1rem;border-collapse:collapse}tr{border-top:1px solid #ccc}tbody tr:nth-of-type(odd){background-color:rgba(0, 0, 0, 0.04)}tbody td{border-top:1px solid #e1e1e1}.navbar{position:fixed;display:flex;justify-content:space-between;align-items:center;z-index:2;width:100%;opacity:0.9;margin-bottom:1rem;min-height:76px}.navbar ul{display:flex}.navbar a{color:#fff;padding:0.45rem;margin:0 0.25rem}.navbar a:hover{color:#e5e9f0}.navbar .welcome span{margin-right:0.6rem}.navbar .navbar-section{align-items:center;display:flex;display:-ms-flexbox;flex:1 0 0;-ms-flex-align:center}.navbar .navbar-section:not(:first-child):last-child{justify-content:flex-end}.navbar .navbar-brand{font-size:200%;font-weight:bold}header+div.container{position:relative;top:76px;overflow:auto;height:calc(100vh - 76px);max-height:calc(100vh - 76px)}.m{margin:0.5rem}.m--1{margin:1rem}.m--2{margin:2rem}.m--3{margin:3rem}.mb{margin-bottom:.1rem !important}.mb--1{margin-bottom:.2rem !important}.mb--2{margin-bottom:.4rem !important}.ml{margin-left:.1rem !important}.ml--1{margin-left:.2rem !important}.ml--2{margin-left:.4rem !important}.mr{margin-right:.1rem !important}.mr--1{margin-right:.2rem !important}.mr .mr-2{margin-right:.4rem !important}.mt{margin-top:.1rem !important}.mt--0{margin-top:0 !important}.mt--07rem{margin-top:-0.7rem !important}.mt--1{margin-top:.2rem !important}.mt--2{margin-top:.4rem !important}.mx{margin-left:0.5rem !important;margin-right:0.5rem !important}.mx--1{margin-left:1rem !important;margin-right:1rem !important}.mx--2{margin-left:2rem !important;margin-right:2rem !important}.mx--reset{margin-left:0 !important;margin-right:0 !important}.my{margin:0.5rem 0}.my--1{margin:1rem 0}.my--2{margin:2rem 0}.my--3{margin:3rem 0}.card,.card--slim,.card--alert{padding:1rem;border:#ccc 1px dotted;margin:0.7rem 0}.card--slim{padding:5px}.card--alert{border-color:#bf360c;margin-bottom:0}.cardTitle{border-bottom-color:#eee;border-bottom-width:1px;border-bottom-style:solid;margin-bottom:15px}.cardV2{border-radius:4px;background-color:#fff;box-shadow:0 0 4px 0 rgba(0, 0, 0, 0.14), 0 3px 4px 0 rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);min-width:0}.seemore{font-size:14px;font-weight:500}.cardLink{color:#2196F3;margin-top:10px}.dropdown{display:inline-block;position:relative}[data-toggle="dropdown"]{outline:0}.dropdown__menu{box-shadow:0 1px 3px rgba(21, 21, 21, 0.12), 0 1px 2px rgba(21, 21, 21, 0.24);position:absolute;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:18px;text-align:left;background-color:#f6f7f9;border-radius:5px;z-index:100;background-clip:padding-box}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.dropdown__menu{border-top:1px solid rgba(21, 21, 21, 0.12);border-left:1px solid rgba(21, 21, 21, 0.12)}}@supports (-ms-ime-align: auto){.dropdown__menu{border-top:1px solid rgba(21, 21, 21, 0.12);border-left:1px solid rgba(21, 21, 21, 0.12)}}.dropdown__menu.-is-open{display:block}.dropdown__menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#5e81ac;text-decoration:none;white-space:nowrap}.dropdown__menu>li>a:hover,.dropdown__menu>li>a:focus,.dropdown__menu>li>a .selected{text-decoration:none;color:#d08770;background-color:#e5e9f0}.dropdown__menu>.-is-disabled>a,.dropdown__menu>.-is-disabled>a:hover,.dropdown__menu>.-is-disabled>a:focus{color:#4c566a}.dropdown__menu>.-is-disabled>a:hover,.dropdown__menu>.-is-disabled>a:focus,.dropdown__menu>.-is-disabled>a .selected{text-decoration:none;background-color:transparent;background-image:none;cursor:not-allowed}.dropdown__menu--right{left:auto;right:0}.dropdown--up>.dropdown__menu{margin:0 0 2px}.dropdown--right>.dropdown__menu{margin:0 0 0 2px}.dropdown--left>.dropdown__menu{margin:0 2px 0 0}input{margin:.2rem 0}.form-text{display:block;margin-top:0.3rem;color:#888}input[type='text'],input[type='email'],input[type='password'],input[type='date'],select,textarea{display:block;width:100%;padding:0.1rem;border:1px solid #ccc}input[type='submit'],button{font:inherit}label,legend{display:block;margin-bottom:.1rem;font-weight:600}input[type="checkbox"],input[type="radio"]{display:inline}label>.label-body{display:inline-block;margin-left:.5rem;font-weight:normal;background-color:#dcc894}table th,table td{padding:1rem;text-align:left}table th{background:var(--light-color)}.list{margin:0.5rem 0}.list li{padding-bottom:0.3rem}.dataRow{cursor:pointer}.modalWindow{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0, 0, 0, 0.2);z-index:99999;opacity:0;pointer-events:none;text-align:center}.modalWindow:target{opacity:1;pointer-events:auto}.modalWindow>div{width:500px;position:relative;margin:10% auto;background:#fff}.alias{cursor:alias}.all-scroll{cursor:all-scroll}.auto{cursor:auto}.cell{cursor:cell}.context-menu{cursor:context-menu}.col-resize{cursor:col-resize}.copy{cursor:copy}.crosshair{cursor:crosshair}.default{cursor:default}.e-resize{cursor:e-resize}.ew-resize{cursor:ew-resize}.grab{cursor:grab}.grabbing{cursor:grabbing}.help{cursor:help}.move{cursor:move}.n-resize{cursor:n-resize}.ne-resize{cursor:ne-resize}.nesw-resize{cursor:nesw-resize}.ns-resize{cursor:ns-resize}.nw-resize{cursor:nw-resize}.nwse-resize{cursor:nwse-resize}.no-drop{cursor:no-drop}.none{cursor:none}.not-allowed{cursor:not-allowed}.pointer{cursor:pointer}.progress{cursor:progress}.row-resize{cursor:row-resize}.s-resize{cursor:s-resize}.se-resize{cursor:se-resize}.sw-resize{cursor:sw-resize}.text{cursor:text}.url{cursor:pointer}.w-resize{cursor:w-resize}.wait{cursor:wait}.zoom-in{cursor:zoom-in}.zoom-out{cursor:zoom-out}.panel{padding:15px;margin-bottom:20px;border-radius:0;background-color:#FFF;box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.16), 0 0px 2px 0 rgba(0, 0, 0, 0.12)}.panel:before,.panel:after{content:" ";display:table}.panel:after{clear:both}.glassy{background-color:rgba(31, 28, 23, 0.6);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(2px)}@media(min-width: 320px){body{font-size:16px !important}}@media(max-width: 480px){.container{max-width:98vw;padding:0 0;overflow-y:scroll}}@media(max-height: 480px){.navbar{min-height:36px}header+div.container{position:relative;top:36px;max-height:calc(100vh - 36px)}.navbar .navbar-brand{font-size:125%;font-weight:bold}}.nrccAlert a{color:#00ffa2}.nrccAlert a{color:#00ffa2}.betterInput{padding-bottom:6px !important;padding-top:6px !important}.up,.ontime,.trendUp{color:#4CAF50 !important}.down,.delayed,.trendDown{color:#F44336 !important} +.mui-dropdown.svelte-dn6ym0.svelte-dn6ym0.svelte-dn6ym0{display:inline-block;position:relative}.mui-dropdown__menu.svelte-dn6ym0.svelte-dn6ym0.svelte-dn6ym0{box-shadow:0 1px 3px rgba(21, 21, 21, 0.12), 0 1px 2px rgba(21, 21, 21, 0.24);position:absolute;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:1rem;text-align:left;background-color:#fff;border-radius:0.1;z-index:100;background-clip:padding-box}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.mui-dropdown__menu.svelte-dn6ym0.svelte-dn6ym0.svelte-dn6ym0{border-top:1px solid rgba(21, 21, 21, 0.12);border-left:1px solid rgba(21, 21, 21, 0.12)}}@supports (-ms-ime-align: auto){.mui-dropdown__menu.svelte-dn6ym0.svelte-dn6ym0.svelte-dn6ym0{border-top:1px solid rgba(21, 21, 21, 0.12);border-left:1px solid rgba(21, 21, 21, 0.12)}}.mui-dropdown__menu.mui--is-open.svelte-dn6ym0.svelte-dn6ym0.svelte-dn6ym0{display:block}.mui-dropdown__menu.svelte-dn6ym0>li.svelte-dn6ym0>a.svelte-dn6ym0{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.6;color:#294c5d;text-decoration:none;white-space:nowrap}.mui-dropdown__menu.svelte-dn6ym0>li.svelte-dn6ym0>a.svelte-dn6ym0:hover,.mui-dropdown__menu.svelte-dn6ym0>li.svelte-dn6ym0>a.svelte-dn6ym0:focus{text-decoration:none;color:#294c5d;background-color:#dcc894}.mui-dropdown--right.svelte-dn6ym0.svelte-dn6ym0>.mui-dropdown__menu.svelte-dn6ym0.svelte-dn6ym0{margin:0 0 0 2px}input.svelte-dn6ym0.svelte-dn6ym0.svelte-dn6ym0{padding-bottom:6px !important;padding-top:6px !important} +.grid-4.svelte-1jlsivf{display:grid;grid-template-columns:repeat(4, 1fr);grid-gap:1rem} .TRcard.svelte-10t8pfm.svelte-10t8pfm{display:flex;justify-content:space-between;align-items:center;padding:0.7rem 0rem;z-index:1;width:98%;opacity:0.9;margin-bottom:0.4rem;border-bottom-color:#666666;box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12)}.TRcard.svelte-10t8pfm .entry.svelte-10t8pfm{align-items:left;display:flex;display:-ms-flexbox;-ms-flex-align:center;flex-direction:column}.TRcard.svelte-10t8pfm .entry.svelte-10t8pfm:not(:first-child):last-child{justify-content:flex-end;align-items:right}.entryOld.svelte-10t8pfm.svelte-10t8pfm{height:36px;margin:6px 0;vertical-align:middle}.TRcardOld.svelte-10t8pfm.svelte-10t8pfm{position:relative;background-color:#fff;min-height:48px;margin:0.5rem 8px;border-bottom-color:#666666;box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);vertical-align:middle;padding:0.5rem 0;border-radius:0.1rem} diff --git a/pb_public/build/bundle.css.map b/pb_public/build/bundle.css.map new file mode 100644 index 0000000..b65e776 --- /dev/null +++ b/pb_public/build/bundle.css.map @@ -0,0 +1,26 @@ +{ + "version": 3, + "file": "bundle.css", + "sources": [ + "../../App.svelte", + "../../SettingsInput.svelte", + "../../SettingsListItem.svelte", + "../../TrainRoute.svelte", + "../../Twitter.svelte", + "../../TwitterSettings.svelte", + "../../Favourites.svelte", + "../../NotFound.svelte" + ], + "sourcesContent": [ + "\n\n\n\n\n\n\n
\n\n", + "\n\n\n\n\n \n \n {#if searchResults.length > 0}\n \n {/if}\n\n", + "\n\n\n\n
\n
\n
{item.startStation.name}
\n
\n
{item.destStation.name}
\n
\n\n\n
\n\n {#if buttonsVisible}\n
\n \n \n \n \n\n
\n {/if}\n
\n", + "\n\n\n\n
\n
\n
{startStationName}
\n
{destStationName}
\n
\n
\n {displayTime}\n
\n
\n", + "\n\n\n\n{#if tweet}\n
\n\n
\n
\n \"@{tweet.user.screen_name}\"/\n
\n
{tweet.user.name}
\n
@{tweet.user.screen_name}
\n
\n
\n
\n {#if inReply}\n
\n Replying to @{tweet.in_reply_to_screen_name}\n
\n {/if}\n
\n {tweetBody}\n
\n
\n {tweet.created_at}\n
\n\n
\n{/if}\n", + "\n\n\n\n
\n
Twitter
\n {#if mounted}\n\n
\n {#each tweeters as item }\n
\n \n
\n\n {/each}\n
\n {/if}\n\n
\n", + "\n\n\n\n
\n

Favourites

\n\n
\n
a
\n
b
\n
c
\n
d
\n
\n\n
\n\n\n\n", + "\n\n\n\n

NotFound

\n\n

Oops, this route doesn't exist!

\n" + ], + "names": [], + "mappings": "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" +} \ No newline at end of file diff --git a/pb_public/build/bundle.js b/pb_public/build/bundle.js index 7bf47fc..3b4042a 100644 --- a/pb_public/build/bundle.js +++ b/pb_public/build/bundle.js @@ -1,8 +1,8 @@ -var app=function(){"use strict";function e(){}const t=e=>e;function n(e){return e()}function r(){return Object.create(null)}function o(e){e.forEach(n)}function a(e){return"function"==typeof e}function i(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}function l(t,...n){if(null==t)return e;const r=t.subscribe(...n);return r.unsubscribe?()=>r.unsubscribe():r}function s(e){let t;return l(e,e=>t=e)(),t}const c="undefined"!=typeof window;let u=c?()=>window.performance.now():()=>Date.now(),d=c?e=>requestAnimationFrame(e):e;const h=new Set;function f(e){h.forEach(t=>{t.c(e)||(h.delete(t),t.f())}),0!==h.size&&d(f)}function S(e){let t;return 0===h.size&&d(f),{promise:new Promise(n=>{h.add(t={c:e,f:n})}),abort(){h.delete(t)}}}function m(e,t){e.appendChild(t)}function g(e,t,n){e.insertBefore(t,n||null)}function y(e){e.parentNode.removeChild(e)}function B(e,t){for(let n=0;ne.removeEventListener(t,n,r)}function H(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function W(e,t){t=""+t,e.wholeText!==t&&(e.data=t)}function v(e,t){e.value=null==t?"":t}function T(e,t){const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,!1,!1,t),n}const N=new Set;let R,M=0;function P(e,t,n,r,o,a,i,l=0){const s=16.666/r;let c="{\n";for(let e=0;e<=1;e+=s){const r=t+(n-t)*a(e);c+=100*e+`%{${i(r,1-r)}}\n`}const u=c+`100% {${i(n,1-n)}}\n}`,d=`__svelte_${function(e){let t=5381,n=e.length;for(;n--;)t=(t<<5)-t^e.charCodeAt(n);return t>>>0}(u)}_${l}`,h=e.ownerDocument;N.add(h);const f=h.__svelte_stylesheet||(h.__svelte_stylesheet=h.head.appendChild(p("style")).sheet),S=h.__svelte_rules||(h.__svelte_rules={});S[d]||(S[d]=!0,f.insertRule(`@keyframes ${d} ${u}`,f.cssRules.length));const m=e.style.animation||"";return e.style.animation=`${m?m+", ":""}${d} ${r}ms linear ${o}ms 1 both`,M+=1,d}function A(e,t){const n=(e.style.animation||"").split(", "),r=n.filter(t?e=>e.indexOf(t)<0:e=>-1===e.indexOf("__svelte")),o=n.length-r.length;o&&(e.style.animation=r.join(", "),M-=o,M||d(()=>{M||(N.forEach(e=>{const t=e.__svelte_stylesheet;let n=t.cssRules.length;for(;n--;)t.deleteRule(n);e.__svelte_rules={}}),N.clear())}))}function D(e){R=e}function E(){if(!R)throw new Error("Function called outside component initialization");return R}function k(e){E().$$.on_mount.push(e)}function G(e){E().$$.on_destroy.push(e)}function F(e,t){const n=e.$$.callbacks[t.type];n&&n.slice().forEach(e=>e(t))}const I=[],O=[],K=[],x=[],$=Promise.resolve();let Y=!1;function _(){Y||(Y=!0,$.then(Q))}function U(){return _(),$}function V(e){K.push(e)}function J(e){x.push(e)}let j=!1;const X=new Set;function Q(){if(!j){j=!0;do{for(let e=0;e{Z=null})),Z}function ee(e,t,n){e.dispatchEvent(T(`${t?"intro":"outro"}${n}`))}const te=new Set;let ne;function re(){ne={r:0,c:[],p:ne}}function oe(){ne.r||o(ne.c),ne=ne.p}function ae(e,t){e&&e.i&&(te.delete(e),e.i(t))}function ie(e,t,n,r){if(e&&e.o){if(te.has(e))return;te.add(e),ne.c.push(()=>{te.delete(e),r&&(n&&e.d(1),r())}),e.o(t)}}const le={duration:0};function se(n,r,i,l){let s=r(n,i),c=l?0:1,d=null,h=null,f=null;function m(){f&&A(n,f)}function g(e,t){const n=e.b-c;return t*=Math.abs(n),{a:c,b:e.b,d:n,duration:t,start:e.start,end:e.start+t,group:e.group}}function y(r){const{delay:a=0,duration:i=300,easing:l=t,tick:y=e,css:B}=s||le,p={start:u()+a,b:r};r||(p.group=ne,ne.r+=1),d?h=p:(B&&(m(),f=P(n,c,r,i,a,l,B)),r&&y(0,1),d=g(p,i),V(()=>ee(n,r,"start")),S(e=>{if(h&&e>h.start&&(d=g(h,i),h=null,ee(n,d.b,"start"),B&&(m(),f=P(n,c,d.b,d.duration,0,l,s.css))),d)if(e>=d.end)y(c=d.b,1-c),ee(n,d.b,"end"),h||(d.b?m():--d.group.r||o(d.group.c)),d=null;else if(e>=d.start){const t=e-d.start;c=d.a+d.d*l(t/d.duration),y(c,1-c)}return!(!d&&!h)}))}return{run(e){a(s)?q().then(()=>{s=s(),y(e)}):y(e)},end(){m(),d=h=null}}}function ce(e,t){ie(e,1,1,()=>{t.delete(e.key)})}function ue(e,t,n,r,o,a,i,l,s,c,u,d){let h=e.length,f=a.length,S=h;const m={};for(;S--;)m[e[S].key]=S;const g=[],y=new Map,B=new Map;for(S=f;S--;){const e=d(o,a,S),l=n(e);let s=i.get(l);s?r&&s.p(e,t):(s=c(l,e),s.c()),y.set(l,g[S]=s),l in m&&B.set(l,Math.abs(S-m[l]))}const p=new Set,C=new Set;function L(e){ae(e,1),e.m(l,u),i.set(e.key,e),u=e.first,f--}for(;h&&f;){const t=g[f-1],n=e[h-1],r=t.key,o=n.key;t===n?(u=t.first,h--,f--):y.has(o)?!i.has(r)||p.has(r)?L(t):C.has(o)?h--:B.get(r)>B.get(o)?(C.add(r),L(t)):(p.add(o),h--):(s(n,i),h--)}for(;h--;){const t=e[h];y.has(t.key)||s(t,i)}for(;f;)L(g[f-1]);return g}function de(e,t,n){const r=e.$$.props[t];void 0!==r&&(e.$$.bound[r]=n,n(e.$$.ctx[r]))}function he(e){e&&e.c()}function fe(e,t,r){const{fragment:i,on_mount:l,on_destroy:s,after_update:c}=e.$$;i&&i.m(t,r),V(()=>{const t=l.map(n).filter(a);s?s.push(...t):o(t),e.$$.on_mount=[]}),c.forEach(V)}function Se(e,t){const n=e.$$;null!==n.fragment&&(o(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function me(t,n,a,i,l,s,c=[-1]){const u=R;D(t);const d=n.props||{},h=t.$$={fragment:null,ctx:null,props:s,update:e,not_equal:l,bound:r(),on_mount:[],on_destroy:[],before_update:[],after_update:[],context:new Map(u?u.$$.context:[]),callbacks:r(),dirty:c,skip_bound:!1};let f=!1;if(h.ctx=a?a(t,d,(e,n,...r)=>{const o=r.length?r[0]:n;return h.ctx&&l(h.ctx[e],h.ctx[e]=o)&&(!h.skip_bound&&h.bound[e]&&h.bound[e](o),f&&function(e,t){-1===e.$$.dirty[0]&&(I.push(e),_(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){var t;this.$$set&&(t=e,0!==Object.keys(t).length)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const ye=[];function Be(e,t){return{subscribe:pe(e,t).subscribe}}function pe(t,n=e){let r;const o=[];function a(e){if(i(t,e)&&(t=e,r)){const e=!ye.length;for(let e=0;e{const e=o.indexOf(s);-1!==e&&o.splice(e,1),0===o.length&&(r(),r=null)}}}}function Ce(t,n,r){const i=!Array.isArray(t),s=i?[t]:t,c=n.length<2;return Be(r,t=>{let r=!1;const u=[];let d=0,h=e;const f=()=>{if(d)return;h();const r=n(i?u[0]:u,t);c?t(r):h=a(r)?r:e},S=s.map((e,t)=>l(e,e=>{u[t]=e,d&=~(1<{d|=1<{Se(e,1)}),oe()}o?(t=new o({}),t.$on("routeEvent",e[5]),he(t.$$.fragment),ae(t.$$.fragment,1),fe(t,n.parentNode,n)):t=null}},i(e){r||(t&&ae(t.$$.fragment,e),r=!0)},o(e){t&&ie(t.$$.fragment,e),r=!1},d(e){e&&y(n),t&&Se(t,e)}}}function we(e){let t,n,r;var o=e[0];function a(e){return{props:{params:e[1]}}}return o&&(t=new o(a(e)),t.$on("routeEvent",e[4])),{c(){t&&he(t.$$.fragment),n=w()},m(e,o){t&&fe(t,e,o),g(e,n,o),r=!0},p(e,r){const i={};if(2&r&&(i.params=e[1]),o!==(o=e[0])){if(t){re();const e=t;ie(e.$$.fragment,1,0,()=>{Se(e,1)}),oe()}o?(t=new o(a(e)),t.$on("routeEvent",e[4]),he(t.$$.fragment),ae(t.$$.fragment,1),fe(t,n.parentNode,n)):t=null}else o&&t.$set(i)},i(e){r||(t&&ae(t.$$.fragment,e),r=!0)},o(e){t&&ie(t.$$.fragment,e),r=!1},d(e){e&&y(n),t&&Se(t,e)}}}function be(e){let t,n,r,o;const a=[we,Le],i=[];function l(e,t){return e[1]?0:1}return t=l(e),n=i[t]=a[t](e),{c(){n.c(),r=w()},m(e,n){i[t].m(e,n),g(e,r,n),o=!0},p(e,[o]){let s=t;t=l(e),t===s?i[t].p(e,o):(re(),ie(i[s],1,1,()=>{i[s]=null}),oe(),n=i[t],n||(n=i[t]=a[t](e),n.c()),ae(n,1),n.m(r.parentNode,r))},i(e){o||(ae(n),o=!0)},o(e){ie(n),o=!1},d(e){i[t].d(e),e&&y(r)}}}function He(){const e=window.location.href.indexOf("#/");let t=e>-1?window.location.href.substr(e+1):"/";const n=t.indexOf("?");let r="";return n>-1&&(r=t.substr(n+1),t=t.substr(0,n)),{location:t,querystring:r}}const We=Be(null,(function(e){e(He());const t=()=>{e(He())};return window.addEventListener("hashchange",t,!1),function(){window.removeEventListener("hashchange",t,!1)}}));Ce(We,e=>e.location),Ce(We,e=>e.querystring);function ve(e){if(!e||e.length<1||"/"!=e.charAt(0)&&0!==e.indexOf("#/"))throw Error("Invalid parameter location");return U().then(()=>{window.location.hash=("#"==e.charAt(0)?"":"#")+e})}function Te(t,n,r){let o,a=e;!function(e,t,n){e.$$.on_destroy.push(l(t,n))}(t,We,e=>r(6,o=e)),t.$$.on_destroy.push(()=>a());let{routes:i={}}=n,{prefix:s=""}=n;class c{constructor(e,t){if(!t||"function"!=typeof t&&("object"!=typeof t||!0!==t._sveltesparouter))throw Error("Invalid component object");if(!e||"string"==typeof e&&(e.length<1||"/"!=e.charAt(0)&&"*"!=e.charAt(0))||"object"==typeof e&&!(e instanceof RegExp))throw Error('Invalid value for "path" argument');const{pattern:n,keys:r}=function(e,t){if(e instanceof RegExp)return{keys:!1,pattern:e};var n,r,o,a,i=[],l="",s=e.split("/");for(s[0]||s.shift();o=s.shift();)"*"===(n=o[0])?(i.push("wild"),l+="/(.*)"):":"===n?(r=o.indexOf("?",1),a=o.indexOf(".",1),i.push(o.substring(1,~r?r:~a?a:o.length)),l+=~r&&!~a?"(?:/([^/]+?))?":"/([^/]+?)",~a&&(l+=(~r?"?":"")+"\\"+o.substring(a))):l+="/"+o;return{keys:i,pattern:new RegExp("^"+l+(t?"(?=$|/)":"/?$"),"i")}}(e);this.path=e,"object"==typeof t&&!0===t._sveltesparouter?(this.component=t.route,this.conditions=t.conditions||[],this.userData=t.userData):(this.component=t,this.conditions=[],this.userData=void 0),this._pattern=n,this._keys=r}match(e){s&&e.startsWith(s)&&(e=e.substr(s.length)||"/");const t=this._pattern.exec(e);if(null===t)return null;if(!1===this._keys)return t;const n={};let r=0;for(;r{u.push(new c(t,e))}):Object.keys(i).forEach(e=>{u.push(new c(e,i[e]))});let d=null,h=null;const f=function(){const e=E();return(t,n)=>{const r=e.$$.callbacks[t];if(r){const o=T(t,n);r.slice().forEach(t=>{t.call(e,o)})}}}(),S=(e,t)=>{U().then(()=>{f(e,t)})};return t.$$set=e=>{"routes"in e&&r(2,i=e.routes),"prefix"in e&&r(3,s=e.prefix)},t.$$.update=()=>{if(65&t.$$.dirty){r(0,d=null);let e=0;for(;!d&&e{t&&(e.node.classList.remove(t),e.pattern.test(Me)&&e.node.classList.add(t))})}function Ae(e){const t=e-1;return t*t*t+1}function De(e,{delay:n=0,duration:r=400,easing:o=t}){const a=+getComputedStyle(e).opacity;return{delay:n,duration:r,easing:o,css:e=>"opacity: "+e*a}}function Ee(e,{delay:t=0,duration:n=400,easing:r=Ae}){const o=getComputedStyle(e),a=+o.opacity,i=parseFloat(o.height),l=parseFloat(o.paddingTop),s=parseFloat(o.paddingBottom),c=parseFloat(o.marginTop),u=parseFloat(o.marginBottom),d=parseFloat(o.borderTopWidth),h=parseFloat(o.borderBottomWidth);return{delay:t,duration:n,easing:r,css:e=>`overflow: hidden;opacity: ${Math.min(20*e,1)*a};height: ${e*i}px;padding-top: ${e*l}px;padding-bottom: ${e*s}px;margin-top: ${e*c}px;margin-bottom: ${e*u}px;border-top-width: ${e*d}px;border-bottom-width: ${e*h}px;`}}We.subscribe(e=>{Me=e.location+(e.querystring?"?"+e.querystring:""),Re.map(Pe)});const ke=new Map([["ZNJ","Northampton North Junction"],["ZPS","Plaistow L.T."],["MSC","Marseille St Charles"],["ZAE","Aldgate East"],["ZEP","East Putney"],["GBG","Gorebridge"],["ZHR","Holloway Road"],["ZPN","Paddington (Bakerloo Line)"],["NMC","New Mills Central"],["HBB","Hubberts Bridge"],["ADC","Adlington (Cheshire)"],["WHI","Whitstable"],["FEG","Fellgate (T & W Metro)"],["HRH","Horsham"],["LNW","Llanwrtyd"],["RYP","Ryde Pier Head"],["PRU","Prudhoe"],["TLH","Tilehurst"],["SBM","South Bermondsey"],["TAM","Tamworth"],["CFD","Castleford"],["NMN","New Mills Newtown"],["HFS","Hatfield & Stainforth"],["WFN","Watford North"],["GWN","Gowerton"],["WMW","Walthamstow Queens Road"],["INP","Inverkip"],["WRW","Warwick"],["WHG","Westhoughton"],["WIM","Wimbledon"],["CLM","Collingham"],["DRF","Driffield"],["NWT","Newtown (Powys)"],["SOE","Southend East"],["PNF","Penyffordd"],["WYE","Wye"],["BAR","Bare Lane"],["YRM","Yarm"],["NTH","Neath"],["ERH","Erith"],["CFO","Chalfont & Latimer"],["FGW","Fishguard & Goodwick"],["BAY","Bayford"],["BER","Bearley"],["SIT","Sittingbourne"],["WHL","White Hart Lane"],["DRN","Duirinish"],["SWK","Southwick"],["MTM","Martin Mill"],["NWR","Newtonmore"],["ADW","Addiewell"],["ALV","Alvechurch"],["SQE","Surrey Quays"],["HIG","Highbridge & Burnham"],["RMC","Rotherham Central"],["NTN","Newton"],["CBN","Camborne"],["RIA","Rhoose Cardiff Intl Airport"],["BXW","Boxhill & Westhumble"],["TNN","Thorne North"],["FTN","Fratton"],["RUA","Ruabon"],["LAY","Layton"],["LLV","Llandovery"],["MAS","Manors"],["CLG","Claygate"],["CTT","Church Stretton"],["GGV","Gargrave"],["TNS","Thorne South"],["CRE","Crewe"],["WXC","Wrexham Central"],["CAD","Cadoxton"],["HYB","Honeybourne"],["WGT","Wigton"],["WRX","Wrexham General"],["RHO","Rhosneigr"],["KWL","Kidwelly"],["RYD","Ryde Esplanade"],["PTL","Priesthill & Darnley"],["NWN","Newton for Hyde"],["SBP","Stonebridge Park"],["PEV","Pevensey & Westham"],["ACL","Acle"],["GDH","Gordon Hill"],["LSY","Lower Sydenham"],["SEB","Seaburn (T & W Metro)"],["AYW","Aberystwyth"],["LNZ","Lenzie"],["MDS","Morden South"],["ADD","Adderley Park"],["EFL","East Farleigh"],["SPU","Staplehurst"],["UHL","Upper Holloway"],["WLP","Welshpool"],["CAS","Castleton"],["HAM","Hamworthy"],["BGN","Bridgend"],["BRN","Bearsden"],["APG","Aspley Guise"],["DEW","Dewsbury"],["BPS","Blackpool South"],["KSL","Kearsley"],["PYJ","Paisley St James"],["NBA","New Barnet"],["WHR","West Horndon"],["HLD","Hellifield"],["RDR","Radyr"],["VAL","Valley"],["BSD","Bearsted"],["FIT","Filton Abbey Wood"],["NAY","Newton Aycliffe"],["BWK","Berwick-upon-Tweed"],["BIF","Barrow-in-Furness"],["DMY","Drumry"],["CKH","Corkerhill"],["LBK","Long Buckby"],["BEA","Bridge of Allan"],["PEB","Pevensey Bay"],["CRL","Chorley"],["ECS","Eccles Road"],["FSG","Fishersgate"],["YSR","Ystrad Rhondda"],["UNV","University (T & W Metro)"],["WCL","West Calder"],["GNW","Greenwich"],["SAB","Smallbrook Junction"],["BDA","Brundall"],["LNG","Longcross"],["PSW","Polesworth"],["SPP","Shippea Hill"],["FIL","Filey"],["HRR","Harrington"],["MGM","Metheringham"],["RAV","Ravenglass for Eskdale"],["OLT","Olton"],["CRD","Chester Road"],["SAH","Salhouse"],["GIL","Gillingham (Dorset)"],["GNT","Gunton"],["FEN","Fenny Stratford"],["CBB","Carbis Bay"],["BLW","Bulwell"],["FMR","Falmer"],["WNY","White Notley"],["SFD","Salford Central"],["BGI","Bargeddie"],["WLY","Woodley"],["BYC","Betws-y-Coed"],["WYT","Wythall"],["KID","Kidderminster"],["SMO","South Merton"],["ULC","Ulceby"],["AWK","Adwick"],["CRR","Corrour"],["OVR","Overton"],["RET","Retford"],["STQ","Southampton Town Quay (Bus)"],["BBS","Bordesley"],["GOS","Grange-over-Sands"],["MAY","Maybole"],["YET","Yetminster"],["LIH","Leigh (Kent)"],["SMC","Sampford Courtenay"],["SLO","Slough"],["LHE","Loch Eil Outward Bound"],["WBP","West Brompton"],["NBT","Norbiton"],["KVP","Kiveton Park"],["PNL","Pannal"],["MEO","Meols"],["SRG","Seer Green"],["CTO","Carlton"],["GLY","Glynde"],["MSW","Mansfield Woodhouse"],["IBM","IBM"],["BRL","Barrhill"],["TRD","Troed-y-rhiw"],["MEC","Meols Cop"],["POL","Polsloe Bridge"],["TPN","Ton Pentre"],["BCK","Buckley"],["CHC","Charing Cross (Glasgow)"],["SRA","Stratford (London)"],["WWO","West Worthing"],["RSH","Rose Hill Marple"],["SMT","St Margarets (Hertfordshire)"],["WIH","Winchmore Hill"],["CRS","Carstairs"],["KGX","London Kings Cross"],["LHS","Limehouse"],["THB","Thornliebank"],["DRT","Darton"],["LLD","Llandudno"],["NRN","Nairn"],["KGE","Kingsknowe"],["TNA","Thornton Abbey"],["LRD","London Road (Guildford)"],["BAL","Balham"],["FRH","Calais Frethun"],["WAC","Warrington Central"],["GMV","Great Malvern"],["MNC","Markinch"],["WRT","Worstead"],["EBB","Ebbw Vale Town"],["MEL","Meldreth"],["BYB","Blythe Bridge"],["LOT","Lostock"],["CNM","Cheltenham Spa"],["FZH","Frizinghall"],["LLJ","Llandudno Junction"],["UPM","Upminster"],["DBC","Dumbarton Central"],["STT","Stewarton"],["DBE","Dumbarton East"],["TYS","Tyseley"],["DNS","Dinas Powys"],["DEE","Dundee"],["LDY","Ladybank"],["PBY","Pembrey & Burry Port"],["GMD","Grimsby Docks"],["KEI","Keighley"],["BIP","Bishopstone"],["SFO","Stanford-le-Hope"],["BYF","Broughty Ferry"],["MYH","Maryhill"],["DRM","Drem"],["NBE","Newbridge"],["WSF","Winsford"],["THD","Thames Ditton"],["HMM","Hammerton"],["HOR","Horley"],["BLY","Bletchley"],["ARU","Arundel"],["FNB","Farnborough (Main)"],["CGW","Caergwrle"],["MAO","Martins Heron"],["OXT","Oxted"],["PAT","Patricroft"],["GMB","Grimsby Town"],["TUR","Turkey Street"],["TAF","Taffs Well"],["LTN","Luton Airport Parkway"],["CHM","Chelmsford"],["FLW","Fulwell"],["HTW","Hartwood"],["PNZ","Penzance"],["WDE","Wood End"],["GCW","Glan Conwy"],["HOV","Hove"],["TRH","Trehafod"],["WTE","Whitlocks End"],["DLJ","Dalston Junction"],["VIR","Virginia Water"],["ASP","Aspatria"],["LPT","Longport"],["LWS","Lewes"],["EWD","Earlswood (West Midlands)"],["WAN","Wanborough"],["BTO","Betchworth"],["FLN","Flint"],["BUK","Bucknell"],["LLM","Llangammarch"],["CNG","Congleton"],["WMN","Warminster"],["MTL","Mortlake"],["BWT","Bridgwater"],["BRT","Barlaston"],["MNP","Manor Park"],["ESL","Eastleigh"],["SHO","Sholing"],["EGT","Egton"],["HDH","Hampstead Heath"],["WCP","Worcester Park"],["ISP","Islip"],["TPB","Thorpe Bay"],["CRH","Crouch Hill"],["TBW","Tunbridge Wells"],["GLE","Gleneagles"],["KSW","Kirkby Stephen"],["ALW","Allens West"],["DMG","Dinas Rhondda"],["BSR","Broadstairs"],["WEM","Wem"],["CSN","Chessington North"],["HRD","Harling Road"],["AUI","Ardlui"],["ERI","Eridge"],["APD","Appledore (Kent)"],["DHN","Deighton"],["GLG","Glengarnock"],["MLH","Mill Hill (Lancashire)"],["WRP","Warwick Parkway"],["GOF","Golf Street"],["CHY","Chertsey"],["WOK","Woking"],["LLE","Llanelli"],["MYB","London Marylebone"],["WIL","Willington"],["WIJ","Willesden Junction"],["BME","Broome"],["CAM","Camberley"],["SRT","Shortlands"],["SOP","Southport"],["TYB","Tan-y-Bwlch (Bus)"],["ENC","Enfield Chase"],["RYP","Ryde Pier Head"],["BEB","Bebington"],["LGW","Langwathby"],["WSE","Winchelsea"],["BFR","London Blackfriars"],["SCT","Scotscalder"],["RUG","Rugby"],["SRS","Selhurst"],["MLF","Milford (Surrey)"],["PNA","Penally"],["STU","Sturry"],["TWB","Tweedbank"],["YSM","Ystrad Mynach"],["JEQ","Jewellery Quarter"],["PTW","Prestwick Town"],["EBK","Eastbrook"],["PER","Penrhiwceiber"],["CWM","Cwmbran"],["ING","Invergowrie"],["RBS","British Steel Redcar"],["HLG","Hall Green"],["LSN","Livingston North"],["RML","Romiley"],["BUU","Burnham-on-Crouch"],["ZBC","Barons Court Underground"],["CPN","Chapleton"],["ROG","Rogart"],["LVG","Livingston South"],["HTC","Heaton Chapel"],["KGN","Kings Nympton"],["LCC","Lochluichart"],["DCG","Duncraig"],["TOD","Todmorden"],["WEA","West Ealing"],["SOK","South Kenton"],["SLA","Slateford"],["HLC","Helensburgh Central"],["LGJ","Loughborough Junction"],["HED","Halewood"],["ATH","Atherstone"],["EYN","Eynsford"],["SOT","Stoke-on-Trent"],["CAC","Caldercruix"],["SRC","Streatham Common"],["MSO","Moston"],["BEU","Beaulieu Road"],["ZBK","Barking Underground"],["BNR","Brockley Whins (T & W Metro)"],["LOH","Lostock Hall"],["MIL","Mill Hill Broadway"],["OHL","Old Hill"],["BDW","Bedwyn"],["PMA","Portsmouth Arms"],["WHC","Walthamstow Central"],["KDY","Kirkcaldy"],["FAZ","Fazakerley"],["GLC","Glasgow Central"],["HLU","Helensburgh Upper"],["LTG","Lostock Gralam"],["DLK","Dalston Kingsland"],["MTN","Moreton (Dorset)"],["EBL","East Boldon (T & W Metro)"],["CYN","Cynghordy"],["CHT","Chathill"],["HPT","Hopton Heath"],["ALO","Alloa"],["PMS","Portsmouth & Southsea"],["CON","Connel Ferry"],["WNC","Windsor & Eton Central"],["BET","Bethnal Green"],["SST","Stansted Mountfitchet"],["ESH","Esher"],["WSE","Winchelsea"],["CSS","Chessington South"],["CSL","Codsall"],["CPA","Corpach"],["HGF","Hag Fold"],["SRD","Stapleton Road"],["UPM","Upminster"],["BSJ","Bedford St Johns"],["RYB","Roy Bridge"],["DMP","Dumpton Park"],["LYT","Lymington Town"],["WHE","Whalley"],["HKC","Hackney Central"],["HYC","Hyde Central"],["PEW","Pewsey"],["AHN","Ashton-under-Lyne"],["PRW","Perranwell"],["CKL","Corkickle"],["DOD","Dodworth"],["WTA","Wester Hailes"],["PAW","Pelaw (T & W Metro)"],["AYP","Albany Park"],["NEW","Newcraighall"],["ORE","Ore"],["HAS","Halesworth"],["KWG","Kew Gardens"],["EXG","Exhibition Centre"],["HIL","Hillside"],["MPL","Marple"],["SDA","Snodland"],["BKA","Bookham"],["BNT","Brinnington"],["HKW","Hackney Wick"],["ACR","Accrington"],["QRP","Queens Road Peckham"],["MDG","Midgham"],["BAW","Blackwater"],["MEX","Mexborough"],["ADK","Ardwick"],["DNY","Danby"],["HIN","Hindley"],["PYG","Paisley Gilmour Street"],["PRA","Prestwick Intl Airport"],["DDP","Dudley Port"],["NMK","Newmarket"],["KGL","Kings Langley"],["MLN","Milngavie"],["FML","Frimley"],["NTR","Northallerton"],["SDW","Sandwich"],["BBW","Berry Brow"],["DID","Didcot Parkway"],["SOG","Stonegate"],["HAI","Halling"],["PWL","Pwllheli"],["WCF","Westcliff"],["HGG","Haggerston"],["CMR","Cromer"],["ALX","Alexandria"],["COO","Cookham"],["MRS","Monks Risborough"],["YRT","Yorton"],["BEN","Bentham"],["GOB","Gobowen"],["HAL","Hale"],["CAY","Carntyne"],["BUI","Burnside"],["SEL","Sellafield"],["WIM","Wimbledon"],["YRD","Yardley Wood"],["CHN","Cheshunt"],["HFX","Halifax"],["ELD","Earlswood (Surrey)"],["TOK","Three Oaks"],["PBN","Paris Nord"],["TED","Teddington"],["HKM","Hykeham"],["GRS","Garscadden"],["DSL","Disley"],["HDE","Hedge End"],["BNP","Barnstaple"],["KNS","Kennishead"],["LAK","Lakenheath"],["TUH","Tulse Hill"],["BSY","Brondesbury"],["FOX","Foxfield"],["SHR","Shrewsbury"],["WMG","Welham Green"],["HLF","Hillfoot"],["PMR","Peckham Rye"],["SGR","Slade Green"],["FRE","Freshfield"],["SDG","Sandling"],["DMR","Dalmuir"],["TRF","Trefforest"],["LZB","Lazonby & Kirkoswald"],["KCK","Knockholt"],["LLW","Llwyngwril"],["DCT","Danescourt"],["HRM","Harrietsham"],["WCM","Wickham Market"],["FEA","Featherstone"],["HNH","Herne Hill"],["MCO","Manchester Oxford Road"],["LER","Leytonstone High Road"],["RAU","Rauceby"],["HMW","Hampton Wick"],["SJS","St James Street"],["TEA","Tees-side Airport"],["LNR","Llanwrda"],["BEE","Beeston"],["MTV","Mount Vernon"],["BSV","Buckshaw Parkway"],["DAL","Dalmally"],["KTN","Kentish Town"],["TRA","Trafford Park"],["AMB","Ambergate"],["GOX","Goxhill"],["PLT","Pontlottyn"],["ATT","Attadale"],["POK","Pokesdown"],["STI","Stadium of Light (T & W Metro)"],["HOO","Hooton"],["KGS","Kings Sutton"],["KTW","Kentish Town West"],["ZPC","Piccadilly Circus Underground"],["UTT","Uttoxeter"],["BLH","Bellshill"],["BGA","Brundall Gardens"],["PRT","Prestatyn"],["CPT","Clapton"],["LET","Letchworth Garden City"],["PSN","Parson Street"],["PNE","Penge East"],["NFD","Northfield"],["LTV","Lichfield Trent Valley"],["CBG","Cambridge"],["NPD","New Pudsey"],["ETL","East Tilbury"],["LTV","Lichfield Trent Valley"],["SNI","Snaith"],["AVN","Avonmouth"],["TEN","Tenby"],["PTG","Port Glasgow"],["SPF","Springfield"],["TBD","Three Bridges"],["SLD","Salford Crescent"],["GOE","Goldthorpe"],["SMY","St Mary Cray"],["DBY","Derby"],["HXX","Heathrow Airport T123"],["THO","Thornford"],["PRE","Preston"],["KWN","Kilwinning"],["PRE","Preston"],["HWH","Haltwhistle"],["CNN","Canonbury"],["BOH","Bosham"],["OPK","Orrell Park"],["BDB","Broadbottom"],["LCK","Lockwood"],["NFL","Northfleet"],["TNP","Tonypandy"],["FOC","Falls of Cruachan"],["HYM","Haymarket"],["HIT","Hitchin"],["CLE","Cleethorpes"],["PAL","Palmers Green"],["ARD","Ardgay"],["BUS","Busby"],["LGE","Long Eaton"],["TUL","Tulloch"],["ABD","Aberdeen"],["BRO","Bridge of Orchy"],["GCT","Great Coates"],["INE","Ince & Elton"],["WTT","Witton"],["TRS","Thurston"],["FNC","Farncombe"],["EBD","Ebbsfleet International"],["DUR","Durrington-on-Sea"],["CSA","Cosham"],["PEG","Pegswood"],["CEA","Cleland"],["GCR","Gloucester"],["TAC","Tackley"],["MFH","Milford Haven"],["PRY","Perry Barr"],["RHL","Rhyl"],["THW","The Hawthorns"],["WTH","Whitehaven"],["KNG","Kingston"],["MIK","Micklefield"],["LRG","Lairg"],["EPS","Epsom"],["WBQ","Warrington Bank Quay"],["CUW","Clunderwen"],["DTG","Dinting"],["ACT","Ascot"],["BID","Bidston"],["BWG","Bowling"],["BMP","Brampton (Cumbria)"],["CLT","Clacton-on-Sea"],["BCH","Birchington-on-Sea"],["BEF","Benfleet"],["HMS","Helmsdale"],["KEY","Keyham"],["MOS","Moss Side"],["PTK","Partick"],["SGN","South Greenford"],["SOR","Sole Street"],["DBD","Denby Dale"],["BSP","Brondesbury Park"],["SEE","Southease"],["CNR","Crianlarich"],["CRT","Chartham"],["SUG","Sugar Loaf"],["HGM","Higham"],["WNG","Waun-gron Park"],["DUM","Dumbreck"],["PMR","Peckham Rye"],["CRB","Corbridge"],["NFA","North Fambridge"],["AGV","Abergavenny"],["HAG","Hagley"],["CEL","Chelford"],["HGD","Hungerford"],["BWN","Bloxwich North"],["KVD","Kelvindale"],["RUS","Ruswarp"],["CLV","Claverdon"],["RNH","Rainhill"],["EWW","Ewell West"],["HHY","Highbury & Islington"],["APP","Appleby"],["HKN","Hucknall"],["MSN","Marsden"],["TPC","Thorpe Culvert"],["EWE","Ewell East"],["GTN","Grangetown"],["LEO","Leominster"],["DOL","Dolau"],["CUH","Curriehill"],["KBK","Kents Bank"],["DPS","Dublin Port (Stena)"],["PAI","Pallion (T & W Metro)"],["MCB","Moulsecoomb"],["NMT","Needham Market"],["WFI","Westerfield"],["SCG","Stone Crossing"],["STR","Stranraer"],["ZWA","Waterloo Underground"],["PIL","Pilning"],["SWD","Swinderby"],["MSK","Marske"],["TRN","Troon"],["WID","Widnes"],["KMS","Kemsing"],["STZ","St Peters (T & W Metro)"],["ANF","Ashurst New Forest"],["WTN","Whitton"],["ANL","Anniesland"],["SCS","Starcross"],["FRB","Fairbourne"],["STK","Stockton"],["BEV","Beverley"],["KKM","Kirkham & Wesham"],["PDW","Paddock Wood"],["CAN","Carnoustie"],["STC","Strathcarron"],["CUF","Cuffley"],["MTP","Montpelier"],["SWM","Swanscombe"],["CBE","Canterbury East"],["DMF","Dumfries"],["HNT","Huntly"],["LLT","Llanbister Road"],["WAT","London Waterloo"],["MEW","Maesteg (Ewenny Road)"],["SUT","Sutton Coldfield"],["LDS","Leeds"],["BNM","Burnham"],["BEL","Beauly"],["HXM","Hoveton & Wroxham"],["HDL","Headstone Lane"],["LEY","Leyland"],["PRE","Preston"],["SNY","Sunnymeads"],["RNF","Rainford"],["EGN","Eastrington"],["KGH","Kinghorn"],["MAT","Matlock"],["NCK","New Cumnock"],["NWP","Newport (South Wales)"],["QPW","Queens Park (London)"],["MSD","Moorside"],["WLM","Williamwood"],["DWD","Dolwyddelan"],["WTL","Whitland"],["MPK","Mosspark"],["MAU","Mauldeth Road"],["HEX","Hexham"],["CLI","Clifton"],["SYD","Sydenham"],["LAD","Ladywell"],["CTM","Chatham"],["SWY","Sway"],["TRU","Truro"],["DLY","Dalry"],["PRP","Preston Park"],["BPB","Blackpool Pleasure Beach"],["LHO","Langho"],["SPS","Stepps"],["TOP","Topsham"],["BIA","Bishop Auckland"],["HTH","Handforth"],["MRT","Moreton (Merseyside)"],["MCH","March"],["TDU","Tondu"],["BCS","Bicester North"],["NMP","Northampton"],["ALP","Althorpe"],["BSE","Bury St Edmunds"],["PTR","Petersfield"],["BUC","Buckenham"],["KLY","Kenley"],["ELW","Eltham"],["WHA","Westenhanger"],["WWL","Whitwell"],["EDW","East Dulwich"],["NRD","North Road"],["BTE","Bitterne"],["IMW","Imperial Wharf"],["ANN","Annan"],["BDN","Brading"],["CES","Cressing"],["KBW","Knebworth"],["DAR","Darlington"],["HWD","Hawarden"],["TAD","Tadworth"],["BAG","Bagshot"],["ZHS","Kensington High St Underground"],["SMD","Stamford"],["BUD","Burneside"],["DOT","Dunston"],["ELS","Elstree & Borehamwood"],["CHF","Church Fenton"],["HAZ","Hazel Grove"],["KMH","Kempston Hardwick"],["SOF","South Woodham Ferrers"],["NRW","Norwich"],["AHS","Ashurst"],["FZW","Fitzwilliam"],["MIN","Milliken Park"],["RUN","Runcorn"],["WSL","Walsall"],["OKM","Oakham"],["WAT","London Waterloo"],["AYP","Albany Park"],["MST","Maesteg"],["KNU","Knucklas"],["LEI","Leicester"],["WAT","London Waterloo"],["WCR","Whitecraigs"],["MRP","Moorthorpe"],["SNH","St Helens Central"],["CAO","Cannock"],["RAI","Rainham (Kent)"],["RKT","Ruskington"],["YOK","Yoker"],["BDT","Bridlington"],["LDN","Llandanwg"],["SHJ","St Helens Junction"],["CHH","Christs Hospital"],["CMF","Cromford"],["HYR","Haydons Road"],["LGN","Longton"],["BXH","Bexleyheath"],["CPM","Chippenham"],["DFR","Drumfrochar"],["NCO","Newcourt"],["WET","Weeton"],["EMD","East Midlands Parkway"],["POP","Poppleton"],["AYH","Aylesham"],["ZUM","Upminster Underground"],["CHD","Chesterfield"],["HEZ","Heworth (T & W Metro)"],["PRB","Prestbury"],["GTR","Goostrey"],["ACK","Acklington"],["KNL","Kensal Green"],["SAN","Sandown"],["THL","Tile Hill"],["SIP","Shipton"],["SFA","Stratford International"],["UPW","Upwey"],["GIP","Gipsy Hill"],["RUT","Rutherglen"],["SES","South Elmsall"],["TGM","Teignmouth"],["ADS","Ardrossan Harbour"],["BCG","Birchgrove"],["RFD","Rochford"],["PES","Pensarn"],["BAI","Blairhill"],["TLB","Talybont"],["SVG","Stevenage"],["WPE","Wapping"],["BDG","Bridgeton"],["THH","Thatto Heath"],["ATB","Attenborough"],["MTH","Motherwell"],["WKM","Wokingham"],["GMT","Grosmont"],["ARL","Arlesey"],["BGD","Bargoed"],["REE","Reedham (Norfolk)"],["HPA","Honor Oak Park"],["NUN","Nuneaton"],["TRM","Trimley"],["WTY","Witley"],["SWO","Snowdown"],["MDB","Maidstone Barracks"],["ENL","Enfield Lock"],["MIJ","Mitcham Junction"],["MDE","Maidstone East"],["GOD","Godalming"],["HGR","Hither Green"],["SPO","Spondon"],["WNT","Wandsworth Town"],["ECR","East Croydon"],["CLS","Chester-le-Street"],["QYD","Quakers Yard"],["WBC","Waterbeach"],["NES","Neston"],["PCN","Paisley Canal"],["WSA","West Allerton"],["SFI","Shawfair"],["SLH","Sleights"],["HTN","Hatton"],["KIV","Kiveton Bridge"],["RIS","Rishton"],["DMS","Dormans"],["LCN","Lincoln Central"],["AYP","Albany Park"],["ERI","Eridge"],["WLC","Waltham Cross"],["MPT","Morpeth"],["MDW","Maidstone West"],["WEL","Wellingborough"],["HRY","Harringay Green Lanes"],["MOB","Mobberley"],["SWL","Swale"],["ECC","Eccles"],["HEW","Heworth"],["LLH","Llangennech"],["BKO","Brookwood"],["GSY","Guiseley"],["SBY","Selby"],["WSB","Westbury"],["ETC","Etchingham"],["BLT","Blantyre"],["SSD","Stansted Airport"],["DOR","Dore"],["NVR","Navigation Road"],["CFF","Croftfoot"],["CKN","Crewkerne"],["GLT","Glenrothes with Thornton"],["WTG","Watlington"],["BAN","Banbury"],["HYS","Hayes (Kent)"],["BHR","Builth Road"],["KND","Kingswood"],["KNN","Kings Norton"],["WOL","Wolverton"],["WTO","Water Orton"],["ADR","Airdrie"],["LLC","Llandecwyn"],["PKS","Parkstone (Dorset)"],["GOM","Gomshall"],["TYL","Tyndrum Lower"],["BOP","Bowes Park"],["HRY","Harringay Green Lanes"],["HER","Hersham"],["WRH","Worthing"],["BON","Bolton"],["BOA","Bradford-on-Avon"],["CFH","Chafford Hundred"],["UTY","Upper Tyndrum"],["NAR","Narberth"],["BDL","Birkdale"],["HMT","Ham Street"],["MKM","Melksham"],["AUW","Ascott-under-Wychwood"],["EAL","Ealing Broadway"],["EAL","Ealing Broadway"],["WTB","Whitby"],["CST","London Cannon Street"],["DWN","Darwen"],["BLE","Bramley (West Yorkshire)"],["AAP","Alexandra Palace"],["NUF","Nutfield"],["STG","Stirling"],["HON","Honiton"],["BPW","Bristol Parkway"],["KIT","Kintbury"],["RAD","Radley"],["MCE","Metro Centre"],["SNT","Stanlow & Thornton"],["BYD","Barry Docks"],["DAM","Dalmeny"],["FIN","Finstock"],["BMT","Bedminster"],["HSL","Haslemere"],["CET","Colchester Town"],["HDG","Heald Green"],["PNR","Penrith"],["MHM","Merstham"],["HSC","Hoscar"],["SNO","St Neots"],["BGM","Bellingham"],["NTL","Netley"],["HYH","Hythe"],["RDC","Redditch"],["LTK","Little Kimble"],["FOD","Ford"],["CLJ","Clapham Junction"],["HON","Honiton"],["CLJ","Clapham Junction"],["PNW","Penge West"],["WFJ","Watford Junction"],["HCH","Holmes Chapel"],["LVN","Littlehaven"],["BTL","Batley"],["ZET","Earl's Court Underground"],["WDL","Woodhall"],["BLX","Bloxwich"],["HLS","Hilsea"],["MKT","Marks Tey"],["OKE","Okehampton"],["HWY","High Wycombe"],["SYT","Somerleyton"],["MRY","Maryport"],["SDY","Sandy"],["CLJ","Clapham Junction"],["CEF","Chapel-en-le-Frith"],["LTP","Littleport"],["KPT","Kilpatrick"],["WDD","Widdrington"],["WHM","Whimple"],["CIT","Chislehurst"],["PFR","Pontefract Baghill"],["BKC","Birkenhead Central"],["HOY","Honley"],["INC","Ince"],["CLJ","Clapham Junction"],["GRC","Great Chesterford"],["IPS","Ipswich"],["WCB","Westcombe Park"],["CLJ","Clapham Junction"],["LYP","Lymington Pier"],["CTF","Catford"],["CTE","Chatelherault"],["FWY","Five Ways"],["NDL","North Dulwich"],["BWO","Bricket Wood"],["BKN","Birkenhead North"],["SOW","Sowerby Bridge"],["BTY","Bentley (Hampshire)"],["KLD","Kildale"],["NQY","Newquay"],["SCA","Scarborough"],["BEG","Beltring"],["BKP","Birkenhead Park"],["CLJ","Clapham Junction"],["GLO","Glossop"],["GRH","Gartcosh"],["TUT","Tutbury & Hatton"],["BCE","Bracknell"],["NNT","Nunthorpe"],["ZNP","Newbury Park Underground"],["SND","Sandhurst"],["FSB","Fishbourne (West Sussex)"],["SLW","Salwick"],["DIG","Digby & Sowton"],["EDG","Edge Hill"],["INH","Invershin"],["BTB","Barnetby"],["SJN","St James (T & W Metro)"],["SUY","Sudbury"],["AIG","Aigburth"],["ELR","Elsecar"],["SGB","Smethwick Galton Bridge"],["HYL","Hayle"],["KEM","Kemble"],["WIM","Wimbledon"],["SAS","St Annes-on-the-Sea"],["SHM","Sheringham"],["WRL","Wetheral"],["SUP","Sundridge Park"],["AWM","Ashwell & Morden"],["BUY","Burley Park"],["ABA","Aberdare"],["CRO","Croy"],["DAT","Datchet"],["LGS","Langside"],["WDM","Windermere"],["GMY","Goodmayes"],["BDQ","Bradford Forster Square"],["SOH","South Hampstead"],["GPK","Grange Park"],["EDP","Edinburgh Park"],["NWB","North Wembley"],["NWE","Newport (Essex)"],["CYT","Cherry Tree"],["HUY","Huyton"],["SFN","Shifnal"],["TOM","Tottenham Hale"],["CDI","Crediton"],["HUT","Hutton Cranswick"],["ABW","Abbey Wood"],["GDL","Godley"],["RHD","Ribblehead"],["TYP","Tynemouth (T & W Metro)"],["CSO","Croston"],["PHR","Penshurst"],["LAC","Lancing"],["SWS","South Wigston"],["BUX","Buxton"],["MLD","Mouldsworth"],["FLE","Fleet"],["MKR","Market Rasen"],["LEG","Lea Green"],["CMH","Cwmbach"],["TMC","Templecombe"],["TWI","Twickenham"],["WEE","Weeley"],["HID","Hall I' Th' Wood"],["TTF","Thetford"],["DLH","Doleham"],["BTF","Bottesford"],["JOR","Jordanhill"],["TIL","Tilbury Town"],["BMR","Bromborough Rake"],["DPD","Dorking Deepdene"],["BUT","Burton-on-Trent"],["LEO","Leominster"],["FRN","Fearn"],["SPK","Sutton Parkway"],["STL","Southall"],["VXH","Vauxhall"],["ALM","Alnmouth"],["HMN","Homerton"],["PNS","Penistone"],["DFP","Dublin Ferryport"],["SED","Shelford"],["MLB","Millbrook (Bedfordshire)"],["WWR","Wandsworth Road"],["WBR","Whaley Bridge"],["CNS","Conisbrough"],["JHN","Johnstone"],["LND","Longniddry"],["STF","Stromeferry"],["BCN","Branchton"],["PET","Petts Wood"],["RSG","Rose Grove"],["SAM","Saltmarshe"],["BNS","Barnes"],["PKG","Penkridge"],["SGB","Smethwick Galton Bridge"],["MUF","Manchester United FC"],["RHY","Rhymney"],["AMR","Amersham"],["KDB","Kidbrooke"],["PLC","Pluckley"],["CSM","Castleton Moor"],["HWF","Heathrow Airport T4 (Bus)"],["TAD","Tadworth"],["GTY","Gatley"],["HWX","Heathrow Airport T5 (Bus)"],["BLK","Blackrod"],["SLK","Silkstone Common"],["BSB","Bleasby"],["AGS","Argyle Street"],["MUI","Muirend"],["SMG","St Margarets (London)"],["MAN","Manchester Piccadilly"],["SEG","Selling"],["PLN","Portlethen"],["BSM","Branksome"],["NLN","New Lane"],["HTO","Hightown"],["BYI","Barry Island"],["HOL","Holton Heath"],["SFL","Seaforth & Litherland"],["SBR","Spean Bridge"],["KGS","Kings Sutton"],["LRB","London Road (Brighton)"],["GSC","Gilshochill"],["MCM","Morecambe"],["STP","London St Pancras (Intl)"],["FGT","Faygate"],["ALD","Alderley Edge"],["COH","Crowborough"],["ANF","Ashurst New Forest"],["OCK","Ockendon"],["ASN","Addlestone"],["CLL","Collington"],["MOT","Motspur Park"],["SDL","Sandhills"],["KKB","Kirkby in Ashfield"],["PAD","London Paddington"],["WOB","Woburn Sands"],["BNI","Barnes Bridge"],["QPW","Queens Park (London)"],["BNY","Barnsley"],["BPN","Blackpool North"],["KWD","Kirkwood"],["SCH","Scotstounhill"],["KNT","Kenton"],["LHD","Leatherhead"],["DRO","Dronfield"],["MRD","Morchard Road"],["CHU","Cheadle Hulme"],["LIC","Lichfield City"],["DSM","Darsham"],["ENF","Enfield Town"],["SSE","Shoreham-by-Sea"],["LGF","Longfield"],["LIP","Liphook"],["ACC","Acton Central"],["NHE","New Hythe"],["GCH","Garelochhead"],["GSN","Garston (Hertfordshire)"],["WRY","Wraysbury"],["RID","Ridgmont"],["KNF","Knutsford"],["STN","Stonehaven"],["WHP","West Hampstead Thameslink"],["DIS","Diss"],["MLG","Mallaig"],["REI","Reigate"],["DNG","Dunton Green"],["LUX","Luxulyan"],["GFD","Greenford"],["GNR","Green Road"],["STH","Shepreth"],["BXW","Boxhill & Westhumble"],["DUD","Duddeston"],["FER","Fernhill"],["CHI","Chingford"],["BKQ","Hamilton Square"],["MUB","Musselburgh"],["ULL","Ulleskelf"],["CLP","Clapham High Street"],["COW","Cowdenbeath"],["GLH","Glasshoughton"],["ATL","Attleborough"],["BIN","Bingham"],["LGO","Llangynllo"],["LRB","London Road (Brighton)"],["WKD","Walkden"],["HRW","Harrow & Wealdstone"],["URM","Urmston"],["CUA","Culrain"],["NBW","North Berwick"],["DMC","Drumchapel"],["EMP","Emerson Park"],["HLE","Hillington East"],["MGN","Marston Green"],["UWL","Upper Warlingham"],["LWM","Llantwit Major"],["ZDE","Dagenham East Underground"],["HIB","High Brooms"],["TQY","Torquay"],["LEU","Leuchars"],["LST","London Liverpool Street"],["ZTG","Turnham Green Underground"],["CDY","Cartsdyke"],["MTC","Mitcham Eastfields"],["HVF","Haverfordwest"],["CSW","Chestfield & Swalecliffe"],["TIR","Tir-phil"],["ERL","Earlestown"],["BGL","Bugle"],["HWM","Harlow Mill"],["SYB","Stalybridge"],["NOA","Newton-on-Ayr"],["FRT","Frant"],["GUI","Guide Bridge"],["HLW","Hillington West"],["MYT","Mytholmroyd"],["BKM","Berkhamsted"],["NEL","Nelson"],["NLT","Northolt Park"],["BES","Bescar Lane"],["BNA","Burnage"],["SRY","Shoeburyness"],["MSR","Minster"],["BNH","Barnehurst"],["DUN","Dunbar"],["LLG","Llangadog"],["PIN","Pinhoe"],["POR","Porth"],["CTR","Chester"],["MCK","Marne La Vallee"],["BUO","Bursledon"],["MDL","Middlewood"],["RHM","Reedham (Surrey)"],["WHD","West Hampstead"],["BDH","Bedhampton"],["ROB","Roby"],["KBF","Kirkby-in-Furness"],["RTR","Rochester"],["STV","Stevenston"],["TIP","Tipton"],["ASB","Ardrossan South Beach"],["DBR","Derby Road"],["LMS","Leamington Spa"],["FSK","Fiskerton"],["HWI","Horwich Parkway"],["WLI","Welling"],["WGC","Welwyn Garden City"],["SOU","Southampton Central"],["RUE","Runcorn East"],["FNH","Farnham"],["SRI","Spring Road"],["TAU","Taunton"],["ALT","Altrincham"],["WDS","Woodlesford"],["LEL","Lelant"],["MNR","Manor Road"],["PPL","Pontypool & New Inn"],["RDG","Reading"],["WNR","Windsor & Eton Riverside"],["SWT","Slaithwaite"],["RCD","Rochdale"],["CYP","Crystal Palace"],["DDG","Dorridge"],["KBX","Kirby Cross"],["SBJ","Stourbridge Junction"],["CRI","Cricklewood"],["WDU","West Dulwich"],["SNN","Swinton (Manchester)"],["BRP","Brampton (Suffolk)"],["COV","Coventry"],["DGL","Dingle Road"],["PYC","Pontyclun"],["LNY","Langley"],["GRP","Grove Park"],["HOU","Hounslow"],["SAE","Saltaire"],["BEH","Bedworth"],["SCY","South Croydon"],["BCY","Brockley"],["AVI","Avignon"],["VIC","London Victoria"],["BWD","Birchwood"],["HWN","Harlow Town"],["VIC","London Victoria"],["FRO","Frome"],["VIC","London Victoria"],["AWT","Armathwaite"],["CAT","Caterham"],["COB","Cooden Beach"],["WVH","Wolverhampton"],["HME","Hamble"],["AUG","Aughton Park"],["BEX","Bexhill"],["ACY","Abercynon"],["CML","Carmyle"],["PBR","Potters Bar"],["TOL","Tolworth"],["APN","Newcastle Airport"],["ADN","Ardrossan Town"],["GDP","Gidea Park"],["SBJ","Stourbridge Junction"],["WIJ","Willesden Junction"],["SDM","Shieldmuir"],["SEV","Sevenoaks"],["FRM","Fareham"],["HNA","Hinton Admiral"],["MRN","Marden"],["MIA","Manchester Airport"],["SBT","Stourbridge Town"],["MAI","Maidenhead"],["BKH","Blackheath"],["BYS","Braystones"],["HGT","Harrogate"],["BIL","Billingham"],["STM","St Michaels"],["BVD","Belvedere"],["LTS","Lelant Saltings"],["LHA","Loch Awe"],["BAD","Banstead"],["INT","Ingatestone"],["MKC","Milton Keynes Central"],["EDR","Edmonton Green"],["BNV","Banavie"],["BTP","Braintree Freeport"],["ROC","Roche"],["CHP","Chipstead"],["FNW","Farnworth"],["TAI","Tain"],["GAL","Galashiels"],["CHG","Charing"],["RMD","Richmond"],["MTN","Moreton (Dorset)"],["COR","Corby"],["SOI","Stow"],["BLG","Bellgrove"],["CNF","Carnforth"],["PST","Prestonpans"],["PKT","Park Street"],["SKS","Stocksfield"],["NRC","Newbury Racecourse"],["PNY","Pen-y-bont"],["EKL","East Kilbride"],["SRU","South Ruislip"],["CDU","Cam & Dursley"],["BRV","Bournville"],["WMS","Wemyss Bay"],["UDD","Uddingston"],["BHD","Brithdir"],["MOR","Mortimer"],["CUM","Culham"],["SDH","Sudbury Hill Harrow"],["STA","Stafford"],["PRL","Prittlewell"],["RDT","Radlett"],["SHP","Shepperton"],["CNP","Conway Park"],["TLK","The Lakes"],["BRX","Brixton"],["MTB","Matlock Bath"],["CLN","Chapeltown"],["KYN","Keynsham"],["NWA","North Walsham"],["BYA","Berney Arms"],["REC","Rectory Road"],["RRB","Ryder Brow"],["SUD","Sudbury & Harrow Road"],["SMN","Southminster"],["YAT","Yatton"],["KSN","Kearsney"],["PTF","Pantyffynnon"],["SWN","Swinton (South Yorkshire)"],["SRN","Strines"],["SWA","Swansea"],["TRR","Torre"],["SSC","Seascale"],["HOT","Henley-on-Thames"],["MVL","Malvern Link"],["ARR","Arram"],["SLT","Saltcoats"],["ANZ","Anerley"],["FPK","Finsbury Park"],["LAN","Lancaster"],["THA","Thatcham"],["BSC","Bescot Stadium"],["MTO","Marton"],["EGG","Eggesford"],["KEH","Keith"],["WCY","West Croydon"],["BOD","Bodmin Parkway"],["HOP","Hope (Derbyshire)"],["HRW","Harrow & Wealdstone"],["WTC","Whitchurch (Shropshire)"],["CHX","London Charing Cross"],["KIR","Kirkby"],["WGA","Westgate-on-Sea"],["WSM","Weston-super-Mare"],["BKS","Bekesbourne"],["AHT","Aldershot"],["DFI","Duffield"],["GIR","Girvan"],["ZBB","Barbican Underground"],["HPE","Hope (Flintshire)"],["CLW","Chorleywood"],["HHL","Heath High Level"],["KKS","Kirk Sandall"],["RDD","Riddlesdown"],["RFY","Rock Ferry"],["ABE","Aber"],["HSK","Hassocks"],["SHT","Shotton"],["LVC","Liverpool Central"],["AIN","Aintree"],["HNG","Hengoed"],["LIS","Liss"],["ARM","Armadale"],["FFA","Ffairfach"],["HCB","Hackbridge"],["LVC","Liverpool Central"],["ELP","Ellesmere Port"],["DYF","Dyffryn Ardudwy"],["TYW","Tywyn"],["CWN","Cowden"],["EGH","Egham"],["RET","Retford"],["HAY","Hayes & Harlington"],["SAT","South Acton"],["PMT","Polmont"],["HPQ","Harwich International"],["WED","Wedgwood"],["BIO","Baillieston"],["WCH","Whitchurch (Hampshire)"],["MNE","Manea"],["SNF","Shenfield"],["ROM","Romsey"],["CHL","Chilworth"],["CDN","Coulsdon Town"],["TLS","Thorpe-le-Soken"],["WRS","Wressle"],["BDY","Bredbury"],["THI","Thirsk"],["WES","Westerton"],["CPU","Capenhurst"],["LRH","Larkhall"],["OLD","Old Street"],["DGT","Deansgate"],["SEM","Seamer"],["SVB","Severn Beach"],["BMC","Bromley Cross"],["SEC","Seaton Carew"],["ZLW","Whitechapel"],["SEE","Southease"],["SOA","Southampton Airpt Parkway"],["WDO","Waddon"],["WTS","Whatstandwell"],["LPY","Liverpool South Parkway"],["HFN","Hertford North"],["KGM","Kingham"],["WFL","Wainfleet"],["SKN","St Keyne Wishing Well Halt"],["DPT","Devonport"],["SOW","Sowerby Bridge"],["WDU","West Dulwich"],["BCB","Burscough Bridge"],["HST","High Street"],["LEM","Leyton Midland Road"],["PYL","Pyle"],["WRU","West Ruislip"],["WYB","Weybridge"],["TAB","Tame Bridge Parkway"],["TRE","Trefforest Estate"],["WYB","Weybridge"],["HND","Hanborough"],["WLW","Welwyn North"],["BMO","Birmingham Moor Street"],["BCJ","Burscough Junction"],["DCW","Dorchester West"],["LVJ","James Street"],["RDF","Radcliffe (Nottinghamshire)"],["CPY","Clapham (North Yorkshire)"],["RMF","Romford"],["SAV","Stratford-upon-Avon"],["LHW","Lochwinnoch"],["NOT","Nottingham"],["CUD","Cuddington"],["LLA","Llanaber"],["SNE","Stone"],["SHL","Shawlands"],["FFD","Freshford"],["SHF","Sheffield"],["YRK","York"],["CSD","Cobham & Stoke d'Abernon"],["ENT","Entwistle"],["PRN","Parton"],["ROL","Rolleston"],["BRH","Borth"],["BCV","Bruce Grove"],["SMR","Smethwick Rolfe Street"],["ACN","Achnasheen"],["KWB","Kew Bridge"],["SAR","St Andrews Road"],["ASF","Ashfield"],["FLM","Flimby"],["LBT","Larbert"],["WOR","Worle"],["CWL","Colwall"],["EXC","Exeter Central"],["NTB","Norton Bridge"],["TWY","Twyford"],["ROR","Rogerstone"],["BDI","Bradford Interchange"],["WNL","Whinhill"],["BLA","Blair Atholl"],["KML","Kemsley"],["SDR","Saunderton"],["GRK","Gourock"],["VXH","Vauxhall"],["FTW","Fort William"],["LIT","Littlehampton"],["SIV","St Ives"],["BLD","Baildon"],["GLM","Gillingham (Kent)"],["SHS","Shotts"],["UCK","Uckfield"],["BTG","Barnt Green"],["BOM","Bromborough"],["ACH","Achnashellach"],["UHA","Uphall"],["VXH","Vauxhall"],["DIN","Dingwall"],["HDW","Hadley Wood"],["SOB","Southbourne"],["LEE","Lee"],["QBR","Queenborough"],["LOC","Lockerbie"],["SMA","Small Heath"],["WDB","Woodbridge"],["HIR","Horton-in-Ribblesdale"],["PON","Ponders End"],["FRI","Frinton-on-Sea"],["SAL","Salisbury"],["SRH","Streatham Hill"],["CRK","Chirk"],["EXR","Essex Road"],["HOK","Hook"],["SML","Sea Mills"],["HLY","Holytown"],["NWD","Norwood Junction"],["ASY","Ashley"],["ESW","Elmswell"],["HOH","Harrow-on-the-Hill"],["AGR","Angel Road"],["NSD","Newstead"],["HUL","Hull"],["HLL","Heath Low Level"],["PBL","Parbold"],["JOH","Johnston"],["SMB","Smithy Bridge"],["NSH","North Sheen"],["UPL","Upholland"],["BGE","Broad Green"],["CBY","Charlbury"],["WME","Woodmansterne"],["LAR","Largs"],["MMO","Melton Mowbray"],["LIN","Linlithgow"],["WDT","West Drayton"],["HFE","Hertford East"],["KET","Kettering"],["PUL","Pulborough"],["QRB","Queenstown Road Battersea"],["WMB","Wembley Central"],["BRG","Borough Green & Wrotham"],["GEA","Gretna Green"],["KPA","Kensington Olympia"],["CIM","Cilmeri"],["SWR","Stewartby"],["CMO","Camelon"],["GLQ","Glasgow Queen Street"],["BSU","Brunstane"],["IFI","Ifield"],["ARN","Arnside"],["FRW","Fairwater"],["LKE","Lake"],["CTL","Cattal"],["DMH","Dilton Marsh"],["WWD","Woolwich Dockyard"],["BTS","Burntisland"],["HSW","Heswall"],["KEL","Kelvedon"],["DBL","Dunblane"],["NLR","North Llanrwst"],["HUB","Hunmanby"],["SAF","Salfords"],["WNE","Wilnecote"],["QPK","Queens Park (Glasgow)"],["WTM","Witham"],["AVP","Aylesbury Vale Parkway"],["PTD","Pontarddulais"],["RDG","Reading"],["EXM","Exmouth"],["SNW","Swanwick"],["FCN","Falconwood"],["GOO","Goole"],["LBO","Loughborough"],["HSB","Helsby"],["SHD","Shildon"],["TAY","Taynuilt"],["SNS","Staines"],["CBW","Canterbury West"],["EGF","East Garforth"],["AUR","Aberdour"],["DKG","Dorking"],["GAR","Garrowhill"],["HUN","Huntingdon"],["LLY","Llwynypia"],["SAY","Swanley"],["TTH","Thornton Heath"],["LSK","Liskeard"],["LSW","Leasowe"],["PMP","Plumpton"],["WKK","Wakefield Kirkgate"],["RFY","Rock Ferry"],["DDK","Dagenham Dock"],["HPN","Hapton"],["LNB","Llanbradach"],["BAD","Banstead"],["BIT","Bicester Village"],["MBR","Middlesbrough"],["AAT","Achanalt"],["HIP","Highams Park"],["SIN","Singer"],["TYG","Tygwyn"],["CUP","Cupar"],["FKC","Folkestone Central"],["SIL","Sileby"],["ESM","Elsenham"],["EPD","Epsom Downs"],["HBP","Hornbeam Park"],["HOZ","Howwood"],["RFY","Rock Ferry"],["MEP","Meopham"],["SWG","Swaythling"],["AVM","Aviemore"],["BHK","Bush Hill Park"],["PEA","Peartree"],["WNN","Wennington"],["AYL","Aylesford"],["PIT","Pitlochry"],["OVE","Overpool"],["ZCO","Croxley Underground"],["GYM","Great Yarmouth"],["CPK","Carpenders Park"],["GLC","Glasgow Central"],["LAS","Llansamlet"],["SPN","Spooner Row"],["FKW","Folkestone West"],["KBC","Kinbrace"],["AND","Anderston"],["ZCW","Canada Water"],["DON","Doncaster"],["EAR","Earley"],["CTN","Charlton"],["ZFD","Farringdon Underground"],["SBF","St Budeaux Ferry Road"],["PCD","Pencoed"],["LBG","London Bridge"],["MZH","Maze Hill"],["WTI","Winnersh Triangle"],["HPD","Harpenden"],["SHT","Shotton"],["LBG","London Bridge"],["NRT","Nethertown"],["LBG","London Bridge"],["HMY","Hairmyres"],["HHB","Heysham Port"],["PSH","Pershore"],["PAN","Pangbourne"],["CLU","Carluke"],["SOC","Southend Central"],["MFF","Minffordd"],["BRF","Brierfield"],["COT","Cottingley"],["PTB","Pentre-bach"],["SKG","Skegness"],["INS","Insch"],["EXN","Exton"],["LOO","Looe"],["WWA","Woolwich Arsenal"],["CLK","Clock House"],["BPT","Bishopton"],["BAS","Bere Alston"],["LCS","Locheilside"],["MEV","Merthyr Vale"],["BDH","Bedhampton"],["SDE","Shadwell"],["STP","London St Pancras (Intl)"],["WEH","West Ham"],["HUP","Humphrey Park"],["BTO","Betchworth"],["EVE","Evesham"],["SEF","Seaford"],["ALR","Alresford"],["HNL","Henley-in-Arden"],["SRL","Shirley"],["BFF","Blaenau Ffestiniog"],["FNN","Farnborough North"],["NLW","Newton-le-Willows"],["YAL","Yalding"],["BMH","Bournemouth"],["LHM","Lealholm"],["TVP","Tiverton Parkway"],["BIW","Biggleswade"],["WLS","Woolston"],["BIP","Bishopstone"],["EBV","Ebbw Vale Parkway"],["NNG","Newark North Gate"],["PHG","Penhelig"],["MNG","Manningtree"],["TAT","Tattenham Corner"],["MEN","Menheniot"],["FSB","Fishbourne (West Sussex)"],["CNN","Canonbury"],["HRO","Harold Wood"],["BKJ","Beckenham Junction"],["NFN","Nafferton"],["BNO","Benton (T & W Metro)"],["GRV","Gravesend"],["NBY","Newbury"],["SDC","Shoreditch High Street"],["AXP","Alexandra Parade"],["FXN","Foxton"],["MTS","Montrose"],["BTN","Brighton"],["RDG","Reading"],["CIR","Caledonian Rd & Barnsbury"],["TAL","Talsarnau"],["CWN","Cowden"],["NLS","Nailsea & Backwell"],["WNH","Warnham"],["HWB","Hawarden Bridge"],["LLN","Llandaf"],["NRB","Norbury"],["CSY","Coseley"],["LLL","Llandeilo"],["RIC","Rickmansworth"],["WMB","Wembley Central"],["ADV","Andover"],["PFL","Purfleet"],["SWE","Swineshead"],["SHB","Shirebrook"],["DFD","Dartford"],["HAN","Hanwell"],["NUT","Nutbourne"],["MLW","Marlow"],["WBL","Warblington"],["RHI","Rhiwbina"],["DEP","Deptford"],["CUB","Cumbernauld"],["HCN","Headcorn"],["LAW","Landywood"],["THC","Thurnscoe"],["CNO","Chetnole"],["COI","Crosshill"],["SHW","Shawford"],["BAJ","Baglan"],["SUR","Surbiton"],["AUK","Auchinleck"],["KTL","Kirton Lindsey"],["LID","Lidlington"],["CDR","Cardross"],["SYL","Syon Lane"],["HYT","Hyde North"],["LAI","Laindon"],["HOX","Hoxton"],["LEW","Lewisham"],["BSK","Basingstoke"],["CRW","Crawley"],["GBS","Goring-by-Sea"],["WHS","Whyteleafe South"],["MHR","Market Harborough"],["ERD","Erdington"],["GST","Gathurst"],["LGG","Langley Green"],["OVR","Overton"],["NEH","New Eltham"],["SDN","St Denys"],["MTG","Mottingham"],["WTR","Wateringbury"],["CDB","Cardiff Bay"],["FNT","Feniton"],["BLP","Belper"],["HSG","Hathersage"],["HVH","Hoek Van Holland"],["DVN","Davenport"],["LWH","Lawrence Hill"],["WCK","Wick"],["BMB","Bamber Bridge"],["DRI","Drigg"],["TWN","Town Green"],["CHE","Cheam"],["SAX","Saxmundham"],["MAG","Maghull"],["SBE","Starbeck"],["MCN","Machynlleth"],["CBC","Coatbridge Central"],["BYL","Barry Links"],["BEM","Bempton"],["SFR","Shalford"],["BIC","Billericay"],["BTR","Braintree"],["ISL","Isleworth"],["HLN","Harlington"],["SSM","Stocksmoor"],["GMN","Great Missenden"],["KNE","Kennett"],["POO","Poole"],["RNR","Roughton Road"],["ILK","Ilkley"],["PMH","Portsmouth Harbour"],["RDA","Redland"],["FRS","Forsinard"],["HRN","Hornsey"],["SLY","Selly Oak"],["OXT","Oxted"],["CBS","Coatbridge Sunnyside"],["WMD","Wymondham"],["TEY","Teynham"],["BAV","Barrow Haven"],["BYE","Bynea"],["WKB","West Kilbride"],["BCU","Brockenhurst"],["AMT","Aldermaston"],["LGB","Langbank"],["MRF","Moorfields"],["PMH","Portsmouth Harbour"],["ROO","Roose"],["KIL","Kildonan"],["BHC","Balloch"],["WIV","Wivenhoe"],["BTT","Battersby"],["CCT","Cathcart"],["HRL","Harlech"],["RGW","Ramsgreave & Wilpshire"],["WVF","Wivelsfield"],["SAJ","St Johns"],["WDH","Woodhouse"],["FOG","Forest Gate"],["HTF","Hartford"],["WNW","West Norwood"],["CSG","Cressington"],["SHU","Stonehouse"],["WDN","Walsden"],["SAC","St Albans"],["WFF","Whifflet"],["HOW","Howden"],["MLY","Morley"],["ASG","Alsager"],["LOB","Longbridge"],["WOM","Wombwell"],["MSH","Mossley Hill"],["ECP","Energlyn & Churchill Park"],["EPH","Elephant & Castle"],["RDW","Reading West"],["EKB","Eskbank"],["BRU","Bruton"],["CME","Combe"],["MIH","Mills Hill"],["PPD","Pontypridd"],["SAD","Sandwell & Dudley"],["KGT","Kilgetty"],["BRI","Bristol Temple Meads"],["HOC","Hockley"],["LBR","Llanbedr"],["NSG","New Southgate"],["DGC","Denham Golf Club"],["PNM","Penmere"],["MHS","Meadowhall"],["PSL","Port Sunlight"],["DWW","Dawlish Warren"],["RTN","Renton"],["BUJ","Burton Joyce"],["HUR","Hurst Green"],["BDK","Baldock"],["LNY","Langley"],["BSH","Bushey"],["DOW","Downham Market"],["KIN","Kingussie"],["BLO","Blaydon"],["DVY","Dovey Junction"],["BWS","Barrow Upon Soar"],["SGL","South Gyle"],["WHT","Whitchurch (Glamorgan)"],["ACB","Acton Bridge"],["ZHA","Hammersmith Underground"],["WRB","Wrabness"],["NQU","North Queensferry"],["TYC","Ty Croes"],["ANC","Ancaster"],["NBN","New Brighton"],["HEC","Heckington"],["QUI","Quintrell Downs"],["WCX","Wembley Stadium"],["LWT","Lowestoft"],["RAN","Rannoch"],["THU","Thurgarton"],["CSK","Calstock"],["MER","Merthyr Tydfil"],["NEI","Neilston"],["CBD","Conon Bridge"],["DNO","Dunrobin Castle"],["HUD","Huddersfield"],["SKW","Stoke Newington"],["ARG","Arisaig"],["CNW","Conwy"],["MNN","Menston"],["PLE","Pollokshields East"],["LLO","Llandrindod"],["LAU","Laurencekirk"],["MSL","Mossley"],["SIE","Sherburn-in-Elmet"],["CBH","Cambridge Heath"],["KBN","Kilburn High Road"],["SID","Sidcup"],["FEL","Feltham"],["CCC","Criccieth"],["STO","South Tottenham"],["WOO","Wool"],["GRK","Gourock"],["LLI","Llandybie"],["AXM","Axminster"],["WGV","Wargrave"],["HSD","Hamstead"],["PLW","Pollokshields West"],["BRK","Berwick (Sussex)"],["CTW","Church & Oswaldtwistle"],["XIB","Bourg St Maurice"],["SKI","Skipton"],["BDM","Bedford"],["PLM","Plumley"],["YVJ","Yeovil Junction"],["DEN","Dean"],["DAM","Dalmeny"],["WGN","Wigan North Western"],["WRE","Wrenbury"],["RYN","Roydon"],["YVJ","Yeovil Junction"],["ABH","Abererch"],["UNI","University"],["AMY","Amberley"],["CSB","Carshalton Beeches"],["EFF","Effingham Junction"],["SVK","Seven Kings"],["DEA","Deal"],["WNP","Wanstead Park"],["ALK","Aslockton"],["ULV","Ulverston"],["LIV","Liverpool Lime Street"],["ABC","Altnabreac"],["LAP","Lapford"],["NIT","Nitshill"],["RAM","Ramsgate"],["KNO","Knottingley"],["LIV","Liverpool Lime Street"],["CSH","Carshalton"],["BFE","Bere Ferrers"],["AVY","Aberdovey"],["CBK","Cranbrook (Devon)"],["WLN","Wellington (Shropshire)"],["CGN","Cogan"],["ASC","Ashchurch for Tewkesbury"],["AVF","Avoncliff"],["CBP","Castle Bar Park"],["GSL","Gunnislake"],["HMC","Hampton Court"],["PLY","Plymouth"],["CLA","Clandon"],["CNE","Colne"],["NXG","New Cross Gate"],["CIL","Chilham"],["FLI","Flixton"],["NWX","New Cross"],["BMY","Bramley (Hampshire)"],["CWS","Caersws"],["BHO","Blackhorse Road"],["CFT","Crofton Park"],["GLS","Glaisdale"],["WMI","Wildmill"],["AST","Aston"],["CDT","Caldicot"],["ESD","Elmstead Woods"],["KLN","Kings Lynn"],["SLQ","St Leonards Warrior Square"],["PNC","Penychain"],["BUB","Burnley Barracks"],["BNC","Burnley Central"],["AXM","Axminster"],["AXM","Axminster"],["BGS","Bogston"],["BAC","Bache"],["HWW","How Wood"],["BNG","Bangor (Gwynedd)"],["BRM","Barmouth"],["DNL","Dunlop"],["EML","East Malling"],["CMO","Camelon"],["EDY","East Didsbury"],["SPR","Springburn"],["ELE","Elmers End"],["WKI","West Kirby"],["LBZ","Leighton Buzzard"],["WES","Westerton"],["LYD","Lydney"],["PYT","Poynton"],["RCC","Redcar Central"],["CWE","Crowle"],["KNA","Knaresborough"],["RCE","Redcar East"],["BUH","Brough"],["DAN","Darnall"],["WNF","Winchfield"],["WKF","Wakefield Westgate"],["PWY","Patchway"],["DZY","Danzey"],["FLD","Fauldhouse"],["WPL","Worplesdon"],["BSL","Beasdale"],["KKD","Kirkdale"],["EAG","Eaglescliffe"],["CRM","Cramlington"],["SIH","St Helier"],["HBY","Hartlebury"],["COA","Coatdyke"],["CHW","Chalkwell"],["RYS","Royston"],["DVH","Dove Holes"],["HEV","Hever"],["SPA","Spalding"],["BOG","Bognor Regis"],["EUS","London Euston"],["FRL","Fairlie"],["EDB","Edinburgh"],["MRR","Morar"],["WSH","Wishaw"],["CPW","Chepstow"],["SUU","Sunbury"],["HAP","Hatfield Peverel"],["OUN","Oulton Broad North"],["MIC","Micheldever"],["WOF","Worcester Foregate Street"],["WRX","Wrexham General"],["OUS","Oulton Broad South"],["CAK","Cark"],["FRY","Ferriby"],["FOH","Forest Hill"],["STY","Stratford Parkway"],["OLF","Oldfield Park"],["WAL","Walton-on-Thames"],["PTT","Patterton"],["GLQ","Glasgow Queen Street"],["EBA","Euxton Balshaw Lane"],["HLM","Holmwood"],["FAV","Faversham"],["GOL","Golspie"],["KKH","Kirkhill"],["WSR","Woodsmoor"],["CNL","Canley"],["SPT","Stockport"],["WBD","Whitley Bridge"],["HIA","Hampton-in-Arden"],["BLV","Belle Vue"],["DMK","Denmark Hill"],["DWL","Dawlish"],["FLF","Flowery Field"],["DGY","Deganwy"],["SYS","Syston"],["KKN","Kirknewton"],["WBO","Wimbledon Chase"],["ALB","Albrighton"],["BEP","Bermuda Park (Nuneaton)"],["BFN","Byfleet & New Haw"],["SKM","Stoke Mandeville"],["NEM","New Malden"],["SER","St Erth"],["GNL","Green Lane"],["HEI","Heighington"],["OMS","Ormskirk"],["HBN","Hollingbourne"],["COL","Colchester"],["MES","Melton"],["AHV","Ash Vale"],["KRK","Kirkconnel"],["BYN","Bryn"],["CWC","Chappel & Wakes Colne"],["BIK","Birkbeck"],["SWM","Swanscombe"],["AUD","Audley End"],["BRE","Brentwood"],["YOK","Yoker"],["AHS","Ashurst"],["GSW","Garswood"],["SHU","Stonehouse"],["SNR","Sanderstead"],["BRC","Breich"],["HDM","Haddenham & Thame Parkway"],["BAH","Bank Hall"],["PRR","Princes Risborough"],["SYA","Styal"],["GPO","Gospel Oak"],["SLV","Silver Street"],["FZP","Furze Platt"],["MFA","Morfa Mawddach"],["DLG","Dolgarrog"],["CWB","Colwyn Bay"],["HVN","Havenhouse"],["LUT","Luton"],["GIG","Giggleswick"],["KGP","Kings Park"],["RYH","Rye House"],["GOR","Goring & Streatley"],["HFD","Hereford"],["BIG","Billingshurst"],["STJ","Severn Tunnel Junction"],["SAU","St Austell"],["WHS","Whyteleafe South"],["WST","Wood Street"],["LED","Ledbury"],["MRF","Moorfields"],["OLF","Oldfield Park"],["ATN","Atherton"],["BRS","Berrylands"],["WSB","Westbury"],["CYS","Cathays"],["CWD","Creswell"],["LOS","Lostwithiel"],["BHS","Brockholes"],["THT","Thorntonhall"],["DRG","Drayton Green"],["ANS","Ainsdale"],["DYP","Drayton Park"],["KLY","Kenley"],["LEH","Lea Hall"],["LPR","Long Preston"],["SVS","Seven Sisters"],["WWW","Wootton Wawen"],["SHI","Shiplake"],["WML","Wilmslow"],["EDL","Edale"],["FLX","Felixstowe"],["NBR","Narborough"],["PFY","Poulton-le-Fylde"],["PRP","Preston Park"],["COE","Coombe Junction Halt"],["SST","Stansted Mountfitchet"],["WLD","West St Leonards"],["PMW","Penmaenmawr"],["YEO","Yeoford"],["YVP","Yeovil Pen Mill"],["GRF","Garforth"],["MON","Monifieth"],["NOR","Normanton"],["COM","Commondale"],["ZFD","Farringdon Underground"],["ORR","Orrell"],["LOW","Lowdham"],["YVP","Yeovil Pen Mill"],["HWF","Heathrow Airport T4 (Bus)"],["LPG","Llanfairpwll"],["LWR","Llanrwst"],["CRN","Crowthorne"],["JCH","James Cook"],["LLS","Llanishen"],["NCE","New Clee"],["RAY","Raynes Park"],["SAW","Sawbridgeworth"],["WLO","Waterloo (Merseyside)"],["ROE","Rotherhithe"],["HNB","Herne Bay"],["SHY","Shipley"],["MTA","Mountain Ash"],["SJP","St James' Park"],["LYC","Lympstone Commando"],["NWM","New Milton"],["WIJ","Willesden Junction"],["FLT","Flitwick"],["BRA","Brora"],["HYN","Hyndland"],["RUF","Rufford"],["PTA","Port Talbot Parkway"],["SMH","Stamford Hill"],["GVE","Garve"],["HTE","Hatch End"],["WSE","Winchelsea"],["DLT","Dalton"],["SPY","Shepley"],["CFL","Crossflatts"],["LIH","Leigh (Kent)"],["LYM","Lympstone Village"],["SOL","Solihull"],["CTH","Chadwell Heath"],["FOK","Four Oaks"],["TRI","Tring"],["BLB","Battlesbridge"],["FAL","Falmouth Docks"],["HPL","Hartlepool"],["OXN","Oxenholme Lake District"],["OTF","Otford"],["OUT","Outwood"],["WLE","Whittlesea"],["SBV","St Budeaux Victoria Road"],["HHY","Highbury & Islington"],["CKS","Clarkston"],["EDN","Eden Park"],["SDP","Sandplace"],["AFK","Ashford International"],["DLM","Delamere"],["HHY","Highbury & Islington"],["INK","Inverkeithing"],["SAA","St Albans Abbey"],["HLB","Hildenborough"],["KTH","Kent House"],["BUL","Butlers Lane"],["AML","Acton Main Line"],["FMT","Falmouth Town"],["BAM","Bamford"],["FFD","Freshford"],["WAT","London Waterloo"],["SHN","Shanklin"],["CKT","Crookston"],["BKL","Bickley"],["DND","Dinsdale"],["NCL","Newcastle"],["WLV","Wallasey Village"],["THS","Thurso"],["ZBS","Baker Street Underground"],["WAE","London Waterloo East"],["TIS","Tisbury"],["BXS","Brussels Midi"],["LEA","Leagrave"],["BAB","Balcombe"],["NCZ","Newcastle Central Metro"],["ASH","Ash"],["RDB","Redbridge"],["BBK","Bilbrook"],["BUW","Burley-in-Wharfedale"],["GBD","Gilberdyke"],["NSB","Normans Bay"],["RGT","Rugeley Town"],["SEH","Shoreham (Kent)"],["BSH","Bushey"],["ELG","Elgin"],["FTN","Fratton"],["EBN","Eastbourne"],["FTM","Fort Matilda"],["MBK","Millbrook (Hampshire)"],["POT","Pontefract Tanshelf"],["WGW","Wigan Wallgate"],["SUO","Sutton (Surrey)"],["AYS","Aylesbury"],["LVM","Levenshulme"],["WAD","Wadhurst"],["PGN","Paignton"],["BOC","Bootle"],["BUG","Burgess Hill"],["AHD","Ashtead"],["OKL","Oakleigh Park"],["LTT","Little Sutton"],["BAU","Barton-on-Humber"],["GWE","Gwersyllt"],["PMH","Portsmouth Harbour"],["SBU","Southbury"],["CDF","Cardiff Central"],["DTW","Droitwich Spa"],["FST","London Fenchurch Street"],["CEY","Cononley"],["HML","Hemel Hempstead"],["OKN","Oakengates"],["CGD","Craigendoran"],["PEM","Pemberton"],["NHL","New Holland"],["SNP","Stanhope"],["EST","Easterhouse"],["GRA","Grantham"],["TAP","Taplow"],["SUC","Sutton Common"],["GNH","Greenhithe for Bluewater"],["NCT","Newark Castle"],["BTD","Bolton-on-Dearne"],["HNC","Hamilton Central"],["ECL","Eccleston Park"],["OLY","Ockley"],["PLD","Portslade"],["BBG","Bishopbriggs"],["COP","Copplestone"],["SDB","Sandbach"],["COV","Coventry"],["EXD","Exeter St Davids"],["LTH","Llanhilleth"],["SQH","Sanquhar"],["ERA","Eastham Rake"],["BSK","Basingstoke"],["MIR","Mirfield"],["PFM","Pontefract Monkhill"],["GUN","Gunnersbury"],["WLG","Wallasey Grove Road"],["PBO","Peterborough"],["PLU","Plumstead"],["CDQ","Cardiff Queen Street"],["BXB","Broxbourne"],["HNW","Hamilton West"],["EXT","Exeter St Thomas"],["WLT","Wallington"],["HNX","Hunts Cross"],["HMP","Hampton"],["ALF","Alfreton"],["BAA","Barnham"],["SEA","Seaham"],["WBY","West Byfleet"],["BGL","Bugle"],["WRK","Worksop"],["WWI","West Wickham"],["FGT","Faygate"],["STW","Strawberry Hill"],["NFL","Northfleet"],["BUE","Bures"],["NMP","Northampton"],["CBL","Cambuslang"],["GFN","Giffnock"],["INV","Inverness"],["WGR","Woodgrange Park"],["STS","Saltash"],["STP","London St Pancras (Intl)"],["SUN","Sunderland"],["SDF","Saundersfoot"],["FNV","Furness Vale"],["YAE","Yate"],["MCV","Manchester Victoria"],["RED","Redruth"],["SNG","Sunningdale"],["PDG","Padgate"],["HTR","Heathrow Central Bus Stn"],["BHI","Birmingham International"],["CWH","Crews Hill"],["NTA","Newton Abbot"],["SFA","Stratford International"],["WOH","Woldingham"],["SXY","Saxilby"],["GKC","Greenock Central"],["PTC","Portchester"],["GLD","Guildford"],["BNF","Briton Ferry"],["DAG","Dalgety Bay"],["SOO","Strood"],["DLS","Dalston"],["LFD","Lingfield"],["BBN","Blackburn"],["CGM","Cottingham"],["RVB","Ravensbourne"],["AIR","Airbles"],["BRR","Barrhead"],["CLH","Clitheroe"],["MRM","Manors (T & W Metro)"],["GMT","Grosmont"],["DHM","Durham"],["PAR","Par"],["IVY","Ivybridge"],["LVN","Littlehaven"],["GKW","Greenock West"],["HNK","Hinckley"],["KMK","Kilmarnock"],["RMD","Richmond"],["SIC","Silecroft"],["HAD","Haddiscoe"],["DNM","Denham"],["OXS","Oxshott"],["SLB","Saltburn"],["DNT","Dent"],["WHY","Whyteleafe"],["CRG","Cross Gates"],["LCG","Lochgelly"],["BHG","Bathgate"],["TNF","Tonfanau"],["MAL","Malden Manor"],["NUT","Nutbourne"],["NWX","New Cross"],["TON","Tonbridge"],["TRO","Trowbridge"],["WKG","Workington"],["BSI","Balmossie"],["SMK","Stowmarket"],["LGD","Lingwood"],["FBY","Formby"],["NNP","Ninian Park"],["ADM","Adisham"],["GRL","Greenfaulds"],["RLN","Rowlands Castle"],["AMF","Ammanford"],["KMP","Kempton Park"],["SNL","Stoneleigh"],["BWB","Bow Brickhill"],["ABY","Ashburys"],["BRY","Barry"],["MYL","Maryland"],["BBL","Bat & Ball"],["PUT","Putney"],["CAA","Coventry Arena"],["HMD","Hampden Park"],["GYP","Gypsy Lane"],["CMY","Crossmyloof"],["DUL","Dullingham"],["WNM","Weston Milton"],["AFV","Ansdell & Fairhaven"],["SYH","Sydenham Hill"],["GTW","Gatwick Airport"],["HYK","Hoylake"],["MIS","Mistley"],["PPK","Possilpark & Parkhouse"],["WYM","Wylam"],["MLM","Millom"],["WAV","Wavertree Tech Park"],["LAM","Lamphey"],["CCH","Chichester"],["MLT","Malton"],["SGM","St Germans"],["WND","Wendover"],["HAF","Heathrow Airport T4"],["THE","Theale"],["ADL","Adlington (Lancashire)"],["HWV","Heathrow Airport T5"],["PLK","Plockton"],["HWC","Harwich Town"],["CWU","Crowhurst"],["CHK","Chiswick"],["HEN","Hendon"],["DRU","Drumgelloch"],["HAB","Habrough"],["LVT","Lisvane & Thornhill"],["TOK","Three Oaks"],["SVR","Silverdale"],["HEL","Hensall"],["SON","Steeton & Silsden"],["WIC","Wickford"],["NAN","Nantwich"],["LUD","Ludlow"],["AFS","Ashford (Surrey)"],["SGH","South Gosforth (T & W Metro)"],["WYL","Wylde Green"],["RDH","Redhill"],["RNM","Rainham (Essex)"],["MIF","Millfield (T & W Metro)"],["WIN","Winchester"],["LLR","Llanharan"],["NET","Netherfield"],["BSN","Boston"],["GRN","Grindleford"],["APB","Appley Bridge"],["PYN","Penryn"],["SRR","Sarn"],["BND","Brandon"],["DLW","Dalwhinnie"],["BIB","Bishops Lydeard"],["CUX","Cuxton"],["PRS","Prees"],["CLC","Castle Cary"],["SCF","Stechford"],["CLD","Chelsfield"],["RIL","Rice Lane"],["TBY","Thornaby"],["LPY","Liverpool South Parkway"],["CRV","Craven Arms"],["WMA","West Malling"],["DTN","Denton"],["DOC","Dockyard"],["DCH","Dorchester South"],["NXG","New Cross Gate"],["CDS","Coulsdon South"],["LLF","Llanfairfechan"],["SLL","Stallingborough"],["CDO","Cardonald"],["HAT","Hatfield"],["RDN","Reddish North"],["WOS","Worcester Shrub Hill"],["HAV","Havant"],["SNA","Sandal & Agbrigg"],["MIM","Moreton-in-Marsh"],["ART","Arrochar & Tarbet"],["OBN","Oban"],["RDS","Reddish South"],["TOO","Tooting"],["WMC","Wilmcote"],["SIA","Southend Airport"],["EBT","Edenbridge Town"],["PLG","Polegate"],["BSW","Birmingham Snow Hill"],["GRB","Great Bentley"],["HHB","Heysham Port"],["SNK","Sankey for Penketh"],["BXD","Buxted"],["ASK","Askam"],["CFB","Catford Bridge"],["GMG","Garth (Mid Glamorgan)"],["NCM","North Camp"],["APF","Appleford"],["EWR","East Worthing"],["WON","Walton-on-the-Naze"],["ROW","Rowley Regis"],["WSU","West Sutton"],["BGG","Brigg"],["EBD","Ebbsfleet International"],["ZEL","Elephant & Castle Underground"],["PHR","Penshurst"],["MRB","Manorbier"],["SPH","Shepherds Well"],["STD","Stroud"],["TGS","Ty Glas"],["BCF","Beaconsfield"],["HDF","Hadfield"],["CDD","Cardenden"],["LTL","Littleborough"],["CHR","Christchurch"],["MFT","Mansfield"],["PWE","Pollokshaws East"],["LPW","Lapworth"],["BNE","Bourne End"],["CRA","Cradley Heath"],["CHO","Cholsey"],["WRM","Wareham"],["CSR","Chassen Road"],["SEN","Shenstone"],["BOE","Botley"],["ANG","Angmering"],["DVC","Dovercourt"],["PMG","Porthmadog Harbour (Bus)"],["ORN","Old Roan"],["NGT","Newington"],["KNI","Knighton"],["GVH","Gravelly Hill"],["OXF","Oxford"],["CKY","Crosskeys"],["BLL","Bardon Mill"],["FGH","Fishguard Harbour"],["LYE","Lye"],["CLR","Clarbeston Road"],["HBD","Hebden Bridge"],["IGD","Invergordon"],["YNW","Ynyswen"],["PWW","Pollokshaws West"],["RMB","Roman Bridge"],["GRT","Grateley"],["AGT","Aldrington"],["CED","Cheddington"],["RVN","Ravensthorpe"],["KEN","Kendal"],["MAR","Margate"],["PSE","Pitsea"],["CTK","City Thameslink"],["BAT","Battle"],["HEV","Hever"],["WAS","Watton-at-Stone"],["CLY","Chinley"],["HES","Hessle"],["UPH","Upper Halliford"],["WNS","Winnersh"],["AON","Alton"],["LGK","Longbeck"],["SHC","Streethouse"],["EMS","Emsworth"],["SYH","Sydenham Hill"],["BAK","Battersea Park"],["GLQ","Glasgow Queen Street"],["BKJ","Beckenham Junction"],["UMB","Umberleigh"],["CMN","Carmarthen"],["SHH","Shirehampton"],["MAX","Maxwell Park"],["HGY","Harringay"],["AVF","Avoncliff"],["BYK","Bentley (South Yorkshire)"],["GER","Gerrards Cross"],["HLR","Hall Road"],["HNF","Hednesford"],["FRD","Frodsham"],["KNR","Kensal Rise"],["BCC","Beccles"],["HGN","Hough Green"],["BKW","Berkswell"],["EBR","Edenbridge"],["BKT","Blake Street"],["CEH","Coleshill Parkway"],["LEN","Lenham"],["BEC","Beckenham Hill"],["FNY","Finchley Road & Frognal"],["LTM","Lytham"],["BKJ","Beckenham Junction"],["KDG","Kidsgrove"],["IGD","Invergordon"],["CPH","Caerphilly"],["APS","Apsley"],["HTY","Hattersley"],["SAL","Salisbury"],["BNW","Bootle New Strand"],["SOB","Southbourne"],["BTH","Bath Spa"],["DFE","Dunfermline Town"],["SLS","Shettleston"],["ELY","Ely"],["BMF","Broomfleet"],["NVH","Newhaven Harbour"],["LCL","Lochailort"],["PMD","Pembroke Dock"],["WAR","Ware"],["BFD","Brentford"],["GLZ","Glazebrook"],["HSY","Horsley"],["SPI","Spital"],["SHZ","South Hylton (T & W Metro)"],["MOO","Muir of Ord"],["NHD","Nunhead"],["BKR","Blackridge"],["IRL","Irlam"],["NVN","Newhaven Town"],["WRN","West Runton"],["HDB","Haydon Bridge"],["EAD","Earlsfield"],["RDM","Riding Mill"],["WMR","Widney Manor"],["BPK","Brookmans Park"],["WLF","Whittlesford Parkway"],["GDN","Godstone"],["TFC","Telford Central"],["SHE","Sherborne"],["GNB","Gainsborough Central"],["BOT","Bootle Oriel Road"],["EGR","East Grinstead"],["LNK","Lanark"],["NEG","Newtongrange"],["SAL","Salisbury"],["CFR","Chandlers Ford"],["LGM","Langley Mill"],["GSD","Garsdale"],["LAG","Langwith-Whaley Thorns"],["BNL","Barnhill"],["IVR","Iver"],["CNY","Cantley"],["HGS","Hastings"],["BEY","Ben Rhydding"],["BMD","Brimsdown"],["ARB","Arbroath"],["BLN","Blundellsands & Crosby"],["MSS","Moses Gate"],["DST","Duke Street"],["HYW","Hinchley Wood"],["AYR","Ayr"],["SRO","Shireoaks"],["CAR","Carlisle"],["DSY","Daisy Hill"],["RGL","Rugeley Trent Valley"],["GFF","Gilfach Fargoed"],["WAF","Wallyford"],["INR","Inverurie"],["SBK","South Bank"],["ELO","Elton & Orston"],["SPB","Shepherds Bush"],["STE","Streatham"],["CYB","Cefn-y-Bedd"],["HDY","Headingley"],["HCT","Huncoat"],["DYC","Dyce"],["HYD","Heyford"],["PRH","Penrhyndeudraeth"],["SET","Settle"],["WFH","Watford High Street"],["DLR","Dalreoch"],["BKD","Blakedown"],["PTM","Porthmadog"],["ORP","Orpington"],["GBL","Gainsborough Lea Road"],["SCU","Scunthorpe"],["PTH","Perth"],["TAM","Tamworth"],["TRB","Treherbert"],["BXY","Bexley"],["TRY","Treorchy"],["HRS","Horsforth"],["SHV","Southsea Hoverport (Bus)"],["SUM","Summerston"],["WFJ","Watford Junction"],["FYS","Ferryside"],["NUM","Northumberland Park"],["SVL","Staveley"],["CYK","Clydebank"],["HDN","Harlesden"],["PLS","Pleasington"],["TLC","Tal-y-Cafn"],["WAM","Walmer"],["BMG","Barming"],["IFD","Ilford"],["GTA","Great Ayton"],["NBC","New Beckenham"],["LUD","Ludlow"],["FNR","Farningham Road"],["CFN","Clifton Down"],["HAC","Hackney Downs"],["PGM","Pengam"],["RLG","Rayleigh"],["BKG","Barking"],["BLM","Belmont"],["NTC","Newton St Cyres"],["RYE","Rye"],["DBG","Mottisfont & Dunbridge"],["NWI","Northwich"],["PSC","Prescot"],["DKD","Dunkeld & Birnam"],["AGL","Abergele & Pensarn"],["CRF","Carfin"],["SOM","South Milford"],["CRY","Crayford"],["LIU","Lille Europe"],["GLF","Glenfinnan"],["SWI","Swindon"],["SCR","St Columb Road"],["TEO","Theobalds Grove"],["BHM","Birmingham New Street"],["BML","Bramhall"],["WIJ","Willesden Junction"],["COS","Cosford"],["ACG","Acocks Green"],["DVP","Dover Priory"],["MOG","Moorgate"],["ROS","Rosyth"],["WAO","Walton (Merseyside)"],["GNH","Greenhithe for Bluewater"],["RWC","Rawcliffe"],["LES","Leigh-on-Sea"],["HLI","Healing"],["WEY","Weymouth"],["AFK","Ashford International"],["HON","Honiton"],["RCA","Risca & Pontymister"],["BIY","Bingley"],["FOR","Forres"],["KLM","Kilmaurs"],["BOR","Bodorgan"],["BSS","Barassie"],["PUR","Purley"],["MAC","Macclesfield"],["RBR","Robertsbridge"],["HHE","Haywards Heath"],["ALN","Althorne"],["GBK","Greenbank"],["BMV","Bromsgrove"],["GTO","Gorton"],["PMB","Pembroke"],["SKE","Skewen"],["CAU","Causeland"],["PEN","Penarth"],["UPT","Upton"],["BMN","Bromley North"],["ZTH","Tower Hill Underground"],["KYL","Kyle of Lochalsh"],["TTN","Totton"],["HWF","Heathrow Airport T4 (Bus)"],["BMS","Bromley South"],["ASS","Alness"],["SSS","Sheerness-on-Sea"],["CAG","Carrbridge"],["GTH","Garth (Powys)"],["LOF","London Fields"],["BIS","Bishops Stortford"],["BRW","Brunswick"],["CHH","Christs Hospital"],["HHD","Holyhead"],["MFL","Mount Florida"],["DAK","Dalmarnock"],["WSW","Wandsworth Common"],["MDN","Maiden Newton"],["DFL","Dunfermline Queen Margaret"],["IRV","Irvine"],["WHN","Whiston"],["SBS","St Bees"],["PKG","Penkridge"],["SOU","Southampton Central"],["COY","Coryton"],["GGJ","Georgemas Junction"],["SLR","Sleaford"],["DKT","Dorking West"],["SQU","Squires Gate"],["CMD","Camden Road"],["BSO","Basildon"],["CBR","Cooksbridge"],["BYM","Burnley Manchester Road"],["MLF","Milford (Surrey)"],["RYR","Ryde St Johns Road"],["TEY","Teynham"],["TOT","Totnes"],["FRF","Fairfield"],["PUO","Purley Oaks"],["GNF","Greenfield"],["GRY","Grays"],["BGH","Brighouse"],["FKG","Falkirk Grahamston"],["HKH","Hawkhead"],["PYP","Pont-y-Pant"],["FKK","Falkirk High"],["SOV","Southend Victoria"],["MEY","Merryton"]]);var Ge={findStation:function(e){const t=e.toUpperCase(),n=ke.get(t);return console.log(n),n},searchStation:function(e){const t=[],n=e.length<=3,r=e.length>=3,o=new RegExp(`(${e})`,"gi");return ke.forEach((e,a)=>{let i;n&&o.test(a)&&(i=[a,e]),void 0===i&&r&&o.test(e)&&(i=[a,e]),"object"==typeof i&&t.push(i)}),t.slice(0,5)}};let Fe={};Fe=function(){try{return!!localStorage}catch(e){return!1}}()?{save:function(e,t){localStorage[e]=t},load:function(e){return localStorage[e]},exists:function(e){return!(void 0===localStorage[e])}}:{save:function(e,t){document.cookie=`${e}=${encodeURIComponent(t)}`},load:function(e){var t=`; ${document.cookie};`,n=t.indexOf(`; ${e}=`);if(n<0)return"";n=n+e.length+3;var r=t.indexOf(";",n+1);return decodeURIComponent(t.substring(n,r))}};var Ie={partOfDay:function(e,t){console.log(new Date),null==e&&(e=(new Date).getHours().toString()),void 0===t&&(t=!1);const n=e.substring(0,2);let r="";return console.log("Hours",n),r=n>=0&&n<4?"Late Night":n>=4&&n<7?"Early Morning":n>=7&&n<12?"Morning":n>=12&&n<17?"Afternoon":n<21?"Evening":"Night",t&&(r="night"===r?"tonight":"this "+r),console.log("partOfDay",r),r},toHour:function(e=0){return 36e5-(new Date).getTime()%36e5+e},hourFloor:function(){const e=new Date;return parseInt(36e5*~~(e.getTime()/36e5),10).toString(32)},distance:function(e,t,n,r){const o=.017453292519943295,a=Math.cos,i=.5-a((n-e)*o)/2+a(e*o)*a(n*o)*(1-a((r-t)*o))/2;return 12742*Math.asin(Math.sqrt(i))},maybePluralize:(e,t,n="s")=>`${e} ${t}${1!==e?n:""}`,minuteFloor:function(){const e=new Date;return parseInt(6e4*~~(e.getTime()/6e4),10).toString(32)},debounce:function(e,t){let n;return function(...r){clearTimeout(n),n=setTimeout(()=>e.apply(this,r),t)}},throttle:function(e,t){var n=!1;return function(){n||(e.apply(null,arguments),n=!0,setTimeout((function(){n=!1}),t))}},once:function(e){var t,n=!1;return function(){return n||(t=e.apply(this,arguments),n=!0),t}},isEmpty:function(e){for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},LocalStorage:Fe},Oe=function e(t){function n(e,t,r){var o,a={};if(Array.isArray(e))return e.concat(t);for(o in e)a[r?o.toLowerCase():o]=e[o];for(o in t){var i=r?o.toLowerCase():o,l=t[o];a[i]=i in a&&"object"==typeof l?n(a[i],l,"headers"===i):l}return a}function r(e,r,o,a){"string"!=typeof e&&(e=(r=e).url);var i={config:r},l=n(t,r),s={},c=a||l.data;(l.transformRequest||[]).map((function(e){c=e(c,l.headers)||c})),c&&"object"==typeof c&&"function"!=typeof c.append&&(c=JSON.stringify(c),s["content-type"]="application/json");var u=document.cookie.match(RegExp("(^|; )"+l.xsrfCookieName+"=([^;]*)"));if(u&&(s[l.xsrfHeaderName]=u[2]),l.auth&&(s.authorization=l.auth),l.baseURL&&(e=new URL(e,l.baseURL)+""),l.params){var d=~e.indexOf("?")?"&":"?";e+=d+(l.paramsSerializer?l.paramsSerializer(l.params):new URLSearchParams(l.params))}return(l.fetch||fetch)(e,{method:o||l.method,body:c,headers:n(l.headers,s,!0),credentials:l.withCredentials?"include":void 0}).then((function(e){for(var t in e)"function"!=typeof e[t]&&(i[t]=e[t]);return(l.validateStatus?l.validateStatus(e.status):e.ok)?"stream"==l.responseType?(i.data=e.body,i):e[l.responseType||"text"]().then((function(e){i.data=e,i.data=JSON.parse(e)})).catch(Object).then((function(){return i})):Promise.reject(i)}))}return t=t||{},r.request=r,r.get=function(e,t){return r(e,t,"get")},r.delete=function(e,t){return r(e,t,"delete")},r.options=function(e,t){return r(e,t,"options")},r.post=function(e,t,n){return r(e,n,"post",t)},r.put=function(e,t,n){return r(e,n,"put",t)},r.patch=function(e,t,n){return r(e,n,"patch",t)},r.all=Promise.all,r.spread=function(e){return function(t){return e.apply(this,t)}},r.CancelToken="function"==typeof AbortController?AbortController:Object,r.defaults=t,r.create=e,r}(),Ke="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function xe(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var $e,Ye,_e=(function(e,t){ +var app=function(){"use strict";function e(){}const t=e=>e;function n(e){return e()}function r(){return Object.create(null)}function o(e){e.forEach(n)}function a(e){return"function"==typeof e}function i(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}function l(t,...n){if(null==t)return e;const r=t.subscribe(...n);return r.unsubscribe?()=>r.unsubscribe():r}function s(e){let t;return l(e,e=>t=e)(),t}const c="undefined"!=typeof window;let u=c?()=>window.performance.now():()=>Date.now(),d=c?e=>requestAnimationFrame(e):e;const h=new Set;function f(e){h.forEach(t=>{t.c(e)||(h.delete(t),t.f())}),0!==h.size&&d(f)}function S(e){let t;return 0===h.size&&d(f),{promise:new Promise(n=>{h.add(t={c:e,f:n})}),abort(){h.delete(t)}}}function m(e,t){e.appendChild(t)}function g(e,t,n){e.insertBefore(t,n||null)}function y(e){e.parentNode.removeChild(e)}function B(e,t){for(let n=0;ne.removeEventListener(t,n,r)}function b(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function W(e,t){t=""+t,e.wholeText!==t&&(e.data=t)}function v(e,t){e.value=null==t?"":t}function N(e,t){const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,!1,!1,t),n}const T=new Set;let R,M=0;function P(e,t,n,r,o,a,i,l=0){const s=16.666/r;let c="{\n";for(let e=0;e<=1;e+=s){const r=t+(n-t)*a(e);c+=100*e+`%{${i(r,1-r)}}\n`}const u=c+`100% {${i(n,1-n)}}\n}`,d=`__svelte_${function(e){let t=5381,n=e.length;for(;n--;)t=(t<<5)-t^e.charCodeAt(n);return t>>>0}(u)}_${l}`,h=e.ownerDocument;T.add(h);const f=h.__svelte_stylesheet||(h.__svelte_stylesheet=h.head.appendChild(p("style")).sheet),S=h.__svelte_rules||(h.__svelte_rules={});S[d]||(S[d]=!0,f.insertRule(`@keyframes ${d} ${u}`,f.cssRules.length));const m=e.style.animation||"";return e.style.animation=`${m?m+", ":""}${d} ${r}ms linear ${o}ms 1 both`,M+=1,d}function A(e,t){const n=(e.style.animation||"").split(", "),r=n.filter(t?e=>e.indexOf(t)<0:e=>-1===e.indexOf("__svelte")),o=n.length-r.length;o&&(e.style.animation=r.join(", "),M-=o,M||d(()=>{M||(T.forEach(e=>{const t=e.__svelte_stylesheet;let n=t.cssRules.length;for(;n--;)t.deleteRule(n);e.__svelte_rules={}}),T.clear())}))}function D(e){R=e}function E(){if(!R)throw new Error("Function called outside component initialization");return R}function k(e){E().$$.on_mount.push(e)}function G(e){E().$$.on_destroy.push(e)}function F(e,t){const n=e.$$.callbacks[t.type];n&&n.slice().forEach(e=>e(t))}const I=[],O=[],K=[],x=[],Y=Promise.resolve();let $=!1;function _(){$||($=!0,Y.then(Q))}function U(){return _(),Y}function V(e){K.push(e)}function J(e){x.push(e)}let j=!1;const X=new Set;function Q(){if(!j){j=!0;do{for(let e=0;e{Z=null})),Z}function ee(e,t,n){e.dispatchEvent(N(`${t?"intro":"outro"}${n}`))}const te=new Set;let ne;function re(){ne={r:0,c:[],p:ne}}function oe(){ne.r||o(ne.c),ne=ne.p}function ae(e,t){e&&e.i&&(te.delete(e),e.i(t))}function ie(e,t,n,r){if(e&&e.o){if(te.has(e))return;te.add(e),ne.c.push(()=>{te.delete(e),r&&(n&&e.d(1),r())}),e.o(t)}}const le={duration:0};function se(n,r,i,l){let s=r(n,i),c=l?0:1,d=null,h=null,f=null;function m(){f&&A(n,f)}function g(e,t){const n=e.b-c;return t*=Math.abs(n),{a:c,b:e.b,d:n,duration:t,start:e.start,end:e.start+t,group:e.group}}function y(r){const{delay:a=0,duration:i=300,easing:l=t,tick:y=e,css:B}=s||le,p={start:u()+a,b:r};r||(p.group=ne,ne.r+=1),d?h=p:(B&&(m(),f=P(n,c,r,i,a,l,B)),r&&y(0,1),d=g(p,i),V(()=>ee(n,r,"start")),S(e=>{if(h&&e>h.start&&(d=g(h,i),h=null,ee(n,d.b,"start"),B&&(m(),f=P(n,c,d.b,d.duration,0,l,s.css))),d)if(e>=d.end)y(c=d.b,1-c),ee(n,d.b,"end"),h||(d.b?m():--d.group.r||o(d.group.c)),d=null;else if(e>=d.start){const t=e-d.start;c=d.a+d.d*l(t/d.duration),y(c,1-c)}return!(!d&&!h)}))}return{run(e){a(s)?q().then(()=>{s=s(),y(e)}):y(e)},end(){m(),d=h=null}}}function ce(e,t){ie(e,1,1,()=>{t.delete(e.key)})}function ue(e,t,n,r,o,a,i,l,s,c,u,d){let h=e.length,f=a.length,S=h;const m={};for(;S--;)m[e[S].key]=S;const g=[],y=new Map,B=new Map;for(S=f;S--;){const e=d(o,a,S),l=n(e);let s=i.get(l);s?r&&s.p(e,t):(s=c(l,e),s.c()),y.set(l,g[S]=s),l in m&&B.set(l,Math.abs(S-m[l]))}const p=new Set,C=new Set;function L(e){ae(e,1),e.m(l,u),i.set(e.key,e),u=e.first,f--}for(;h&&f;){const t=g[f-1],n=e[h-1],r=t.key,o=n.key;t===n?(u=t.first,h--,f--):y.has(o)?!i.has(r)||p.has(r)?L(t):C.has(o)?h--:B.get(r)>B.get(o)?(C.add(r),L(t)):(p.add(o),h--):(s(n,i),h--)}for(;h--;){const t=e[h];y.has(t.key)||s(t,i)}for(;f;)L(g[f-1]);return g}function de(e,t,n){const r=e.$$.props[t];void 0!==r&&(e.$$.bound[r]=n,n(e.$$.ctx[r]))}function he(e){e&&e.c()}function fe(e,t,r){const{fragment:i,on_mount:l,on_destroy:s,after_update:c}=e.$$;i&&i.m(t,r),V(()=>{const t=l.map(n).filter(a);s?s.push(...t):o(t),e.$$.on_mount=[]}),c.forEach(V)}function Se(e,t){const n=e.$$;null!==n.fragment&&(o(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function me(t,n,a,i,l,s,c=[-1]){const u=R;D(t);const d=n.props||{},h=t.$$={fragment:null,ctx:null,props:s,update:e,not_equal:l,bound:r(),on_mount:[],on_destroy:[],before_update:[],after_update:[],context:new Map(u?u.$$.context:[]),callbacks:r(),dirty:c,skip_bound:!1};let f=!1;if(h.ctx=a?a(t,d,(e,n,...r)=>{const o=r.length?r[0]:n;return h.ctx&&l(h.ctx[e],h.ctx[e]=o)&&(!h.skip_bound&&h.bound[e]&&h.bound[e](o),f&&function(e,t){-1===e.$$.dirty[0]&&(I.push(e),_(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){var t;this.$$set&&(t=e,0!==Object.keys(t).length)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const ye=[];function Be(e,t){return{subscribe:pe(e,t).subscribe}}function pe(t,n=e){let r;const o=[];function a(e){if(i(t,e)&&(t=e,r)){const e=!ye.length;for(let e=0;e{const e=o.indexOf(s);-1!==e&&o.splice(e,1),0===o.length&&(r(),r=null)}}}}function Ce(t,n,r){const i=!Array.isArray(t),s=i?[t]:t,c=n.length<2;return Be(r,t=>{let r=!1;const u=[];let d=0,h=e;const f=()=>{if(d)return;h();const r=n(i?u[0]:u,t);c?t(r):h=a(r)?r:e},S=s.map((e,t)=>l(e,e=>{u[t]=e,d&=~(1<{d|=1<{Se(e,1)}),oe()}o?(t=new o({}),t.$on("routeEvent",e[5]),he(t.$$.fragment),ae(t.$$.fragment,1),fe(t,n.parentNode,n)):t=null}},i(e){r||(t&&ae(t.$$.fragment,e),r=!0)},o(e){t&&ie(t.$$.fragment,e),r=!1},d(e){e&&y(n),t&&Se(t,e)}}}function we(e){let t,n,r;var o=e[0];function a(e){return{props:{params:e[1]}}}return o&&(t=new o(a(e)),t.$on("routeEvent",e[4])),{c(){t&&he(t.$$.fragment),n=w()},m(e,o){t&&fe(t,e,o),g(e,n,o),r=!0},p(e,r){const i={};if(2&r&&(i.params=e[1]),o!==(o=e[0])){if(t){re();const e=t;ie(e.$$.fragment,1,0,()=>{Se(e,1)}),oe()}o?(t=new o(a(e)),t.$on("routeEvent",e[4]),he(t.$$.fragment),ae(t.$$.fragment,1),fe(t,n.parentNode,n)):t=null}else o&&t.$set(i)},i(e){r||(t&&ae(t.$$.fragment,e),r=!0)},o(e){t&&ie(t.$$.fragment,e),r=!1},d(e){e&&y(n),t&&Se(t,e)}}}function He(e){let t,n,r,o;const a=[we,Le],i=[];function l(e,t){return e[1]?0:1}return t=l(e),n=i[t]=a[t](e),{c(){n.c(),r=w()},m(e,n){i[t].m(e,n),g(e,r,n),o=!0},p(e,[o]){let s=t;t=l(e),t===s?i[t].p(e,o):(re(),ie(i[s],1,1,()=>{i[s]=null}),oe(),n=i[t],n||(n=i[t]=a[t](e),n.c()),ae(n,1),n.m(r.parentNode,r))},i(e){o||(ae(n),o=!0)},o(e){ie(n),o=!1},d(e){i[t].d(e),e&&y(r)}}}function be(){const e=window.location.href.indexOf("#/");let t=e>-1?window.location.href.substr(e+1):"/";const n=t.indexOf("?");let r="";return n>-1&&(r=t.substr(n+1),t=t.substr(0,n)),{location:t,querystring:r}}const We=Be(null,(function(e){e(be());const t=()=>{e(be())};return window.addEventListener("hashchange",t,!1),function(){window.removeEventListener("hashchange",t,!1)}})),ve=Ce(We,e=>e.location);Ce(We,e=>e.querystring);function Ne(e){if(!e||e.length<1||"/"!=e.charAt(0)&&0!==e.indexOf("#/"))throw Error("Invalid parameter location");return U().then(()=>{window.location.hash=("#"==e.charAt(0)?"":"#")+e})}function Te(t,n,r){let o,a=e;!function(e,t,n){e.$$.on_destroy.push(l(t,n))}(t,We,e=>r(6,o=e)),t.$$.on_destroy.push(()=>a());let{routes:i={}}=n,{prefix:s=""}=n;class c{constructor(e,t){if(!t||"function"!=typeof t&&("object"!=typeof t||!0!==t._sveltesparouter))throw Error("Invalid component object");if(!e||"string"==typeof e&&(e.length<1||"/"!=e.charAt(0)&&"*"!=e.charAt(0))||"object"==typeof e&&!(e instanceof RegExp))throw Error('Invalid value for "path" argument');const{pattern:n,keys:r}=function(e,t){if(e instanceof RegExp)return{keys:!1,pattern:e};var n,r,o,a,i=[],l="",s=e.split("/");for(s[0]||s.shift();o=s.shift();)"*"===(n=o[0])?(i.push("wild"),l+="/(.*)"):":"===n?(r=o.indexOf("?",1),a=o.indexOf(".",1),i.push(o.substring(1,~r?r:~a?a:o.length)),l+=~r&&!~a?"(?:/([^/]+?))?":"/([^/]+?)",~a&&(l+=(~r?"?":"")+"\\"+o.substring(a))):l+="/"+o;return{keys:i,pattern:new RegExp("^"+l+(t?"(?=$|/)":"/?$"),"i")}}(e);this.path=e,"object"==typeof t&&!0===t._sveltesparouter?(this.component=t.route,this.conditions=t.conditions||[],this.userData=t.userData):(this.component=t,this.conditions=[],this.userData=void 0),this._pattern=n,this._keys=r}match(e){s&&e.startsWith(s)&&(e=e.substr(s.length)||"/");const t=this._pattern.exec(e);if(null===t)return null;if(!1===this._keys)return t;const n={};let r=0;for(;r{u.push(new c(t,e))}):Object.keys(i).forEach(e=>{u.push(new c(e,i[e]))});let d=null,h=null;const f=function(){const e=E();return(t,n)=>{const r=e.$$.callbacks[t];if(r){const o=N(t,n);r.slice().forEach(t=>{t.call(e,o)})}}}(),S=(e,t)=>{U().then(()=>{f(e,t)})};return t.$$set=e=>{"routes"in e&&r(2,i=e.routes),"prefix"in e&&r(3,s=e.prefix)},t.$$.update=()=>{if(65&t.$$.dirty){r(0,d=null);let e=0;for(;!d&&e{t&&(e.node.classList.remove(t),e.pattern.test(Pe)&&e.node.classList.add(t))})}function De(e){const t=e-1;return t*t*t+1}function Ee(e,{delay:n=0,duration:r=400,easing:o=t}){const a=+getComputedStyle(e).opacity;return{delay:n,duration:r,easing:o,css:e=>"opacity: "+e*a}}function ke(e,{delay:t=0,duration:n=400,easing:r=De}){const o=getComputedStyle(e),a=+o.opacity,i=parseFloat(o.height),l=parseFloat(o.paddingTop),s=parseFloat(o.paddingBottom),c=parseFloat(o.marginTop),u=parseFloat(o.marginBottom),d=parseFloat(o.borderTopWidth),h=parseFloat(o.borderBottomWidth);return{delay:t,duration:n,easing:r,css:e=>`overflow: hidden;opacity: ${Math.min(20*e,1)*a};height: ${e*i}px;padding-top: ${e*l}px;padding-bottom: ${e*s}px;margin-top: ${e*c}px;margin-bottom: ${e*u}px;border-top-width: ${e*d}px;border-bottom-width: ${e*h}px;`}}We.subscribe(e=>{Pe=e.location+(e.querystring?"?"+e.querystring:""),Me.map(Ae)});const Ge=new Map([["ZNJ","Northampton North Junction"],["ZPS","Plaistow L.T."],["MSC","Marseille St Charles"],["ZAE","Aldgate East"],["ZEP","East Putney"],["GBG","Gorebridge"],["ZHR","Holloway Road"],["ZPN","Paddington (Bakerloo Line)"],["NMC","New Mills Central"],["HBB","Hubberts Bridge"],["ADC","Adlington (Cheshire)"],["WHI","Whitstable"],["FEG","Fellgate (T & W Metro)"],["HRH","Horsham"],["LNW","Llanwrtyd"],["RYP","Ryde Pier Head"],["PRU","Prudhoe"],["TLH","Tilehurst"],["SBM","South Bermondsey"],["TAM","Tamworth"],["CFD","Castleford"],["NMN","New Mills Newtown"],["HFS","Hatfield & Stainforth"],["WFN","Watford North"],["GWN","Gowerton"],["WMW","Walthamstow Queens Road"],["INP","Inverkip"],["WRW","Warwick"],["WHG","Westhoughton"],["WIM","Wimbledon"],["CLM","Collingham"],["DRF","Driffield"],["NWT","Newtown (Powys)"],["SOE","Southend East"],["PNF","Penyffordd"],["WYE","Wye"],["BAR","Bare Lane"],["YRM","Yarm"],["NTH","Neath"],["ERH","Erith"],["CFO","Chalfont & Latimer"],["FGW","Fishguard & Goodwick"],["BAY","Bayford"],["BER","Bearley"],["SIT","Sittingbourne"],["WHL","White Hart Lane"],["DRN","Duirinish"],["SWK","Southwick"],["MTM","Martin Mill"],["NWR","Newtonmore"],["ADW","Addiewell"],["ALV","Alvechurch"],["SQE","Surrey Quays"],["HIG","Highbridge & Burnham"],["RMC","Rotherham Central"],["NTN","Newton"],["CBN","Camborne"],["RIA","Rhoose Cardiff Intl Airport"],["BXW","Boxhill & Westhumble"],["TNN","Thorne North"],["FTN","Fratton"],["RUA","Ruabon"],["LAY","Layton"],["LLV","Llandovery"],["MAS","Manors"],["CLG","Claygate"],["CTT","Church Stretton"],["GGV","Gargrave"],["TNS","Thorne South"],["CRE","Crewe"],["WXC","Wrexham Central"],["CAD","Cadoxton"],["HYB","Honeybourne"],["WGT","Wigton"],["WRX","Wrexham General"],["RHO","Rhosneigr"],["KWL","Kidwelly"],["RYD","Ryde Esplanade"],["PTL","Priesthill & Darnley"],["NWN","Newton for Hyde"],["SBP","Stonebridge Park"],["PEV","Pevensey & Westham"],["ACL","Acle"],["GDH","Gordon Hill"],["LSY","Lower Sydenham"],["SEB","Seaburn (T & W Metro)"],["AYW","Aberystwyth"],["LNZ","Lenzie"],["MDS","Morden South"],["ADD","Adderley Park"],["EFL","East Farleigh"],["SPU","Staplehurst"],["UHL","Upper Holloway"],["WLP","Welshpool"],["CAS","Castleton"],["HAM","Hamworthy"],["BGN","Bridgend"],["BRN","Bearsden"],["APG","Aspley Guise"],["DEW","Dewsbury"],["BPS","Blackpool South"],["KSL","Kearsley"],["PYJ","Paisley St James"],["NBA","New Barnet"],["WHR","West Horndon"],["HLD","Hellifield"],["RDR","Radyr"],["VAL","Valley"],["BSD","Bearsted"],["FIT","Filton Abbey Wood"],["NAY","Newton Aycliffe"],["BWK","Berwick-upon-Tweed"],["BIF","Barrow-in-Furness"],["DMY","Drumry"],["CKH","Corkerhill"],["LBK","Long Buckby"],["BEA","Bridge of Allan"],["PEB","Pevensey Bay"],["CRL","Chorley"],["ECS","Eccles Road"],["FSG","Fishersgate"],["YSR","Ystrad Rhondda"],["UNV","University (T & W Metro)"],["WCL","West Calder"],["GNW","Greenwich"],["SAB","Smallbrook Junction"],["BDA","Brundall"],["LNG","Longcross"],["PSW","Polesworth"],["SPP","Shippea Hill"],["FIL","Filey"],["HRR","Harrington"],["MGM","Metheringham"],["RAV","Ravenglass for Eskdale"],["OLT","Olton"],["CRD","Chester Road"],["SAH","Salhouse"],["GIL","Gillingham (Dorset)"],["GNT","Gunton"],["FEN","Fenny Stratford"],["CBB","Carbis Bay"],["BLW","Bulwell"],["FMR","Falmer"],["WNY","White Notley"],["SFD","Salford Central"],["BGI","Bargeddie"],["WLY","Woodley"],["BYC","Betws-y-Coed"],["WYT","Wythall"],["KID","Kidderminster"],["SMO","South Merton"],["ULC","Ulceby"],["AWK","Adwick"],["CRR","Corrour"],["OVR","Overton"],["RET","Retford"],["STQ","Southampton Town Quay (Bus)"],["BBS","Bordesley"],["GOS","Grange-over-Sands"],["MAY","Maybole"],["YET","Yetminster"],["LIH","Leigh (Kent)"],["SMC","Sampford Courtenay"],["SLO","Slough"],["LHE","Loch Eil Outward Bound"],["WBP","West Brompton"],["NBT","Norbiton"],["KVP","Kiveton Park"],["PNL","Pannal"],["MEO","Meols"],["SRG","Seer Green"],["CTO","Carlton"],["GLY","Glynde"],["MSW","Mansfield Woodhouse"],["IBM","IBM"],["BRL","Barrhill"],["TRD","Troed-y-rhiw"],["MEC","Meols Cop"],["POL","Polsloe Bridge"],["TPN","Ton Pentre"],["BCK","Buckley"],["CHC","Charing Cross (Glasgow)"],["SRA","Stratford (London)"],["WWO","West Worthing"],["RSH","Rose Hill Marple"],["SMT","St Margarets (Hertfordshire)"],["WIH","Winchmore Hill"],["CRS","Carstairs"],["KGX","London Kings Cross"],["LHS","Limehouse"],["THB","Thornliebank"],["DRT","Darton"],["LLD","Llandudno"],["NRN","Nairn"],["KGE","Kingsknowe"],["TNA","Thornton Abbey"],["LRD","London Road (Guildford)"],["BAL","Balham"],["FRH","Calais Frethun"],["WAC","Warrington Central"],["GMV","Great Malvern"],["MNC","Markinch"],["WRT","Worstead"],["EBB","Ebbw Vale Town"],["MEL","Meldreth"],["BYB","Blythe Bridge"],["LOT","Lostock"],["CNM","Cheltenham Spa"],["FZH","Frizinghall"],["LLJ","Llandudno Junction"],["UPM","Upminster"],["DBC","Dumbarton Central"],["STT","Stewarton"],["DBE","Dumbarton East"],["TYS","Tyseley"],["DNS","Dinas Powys"],["DEE","Dundee"],["LDY","Ladybank"],["PBY","Pembrey & Burry Port"],["GMD","Grimsby Docks"],["KEI","Keighley"],["BIP","Bishopstone"],["SFO","Stanford-le-Hope"],["BYF","Broughty Ferry"],["MYH","Maryhill"],["DRM","Drem"],["NBE","Newbridge"],["WSF","Winsford"],["THD","Thames Ditton"],["HMM","Hammerton"],["HOR","Horley"],["BLY","Bletchley"],["ARU","Arundel"],["FNB","Farnborough (Main)"],["CGW","Caergwrle"],["MAO","Martins Heron"],["OXT","Oxted"],["PAT","Patricroft"],["GMB","Grimsby Town"],["TUR","Turkey Street"],["TAF","Taffs Well"],["LTN","Luton Airport Parkway"],["CHM","Chelmsford"],["FLW","Fulwell"],["HTW","Hartwood"],["PNZ","Penzance"],["WDE","Wood End"],["GCW","Glan Conwy"],["HOV","Hove"],["TRH","Trehafod"],["WTE","Whitlocks End"],["DLJ","Dalston Junction"],["VIR","Virginia Water"],["ASP","Aspatria"],["LPT","Longport"],["LWS","Lewes"],["EWD","Earlswood (West Midlands)"],["WAN","Wanborough"],["BTO","Betchworth"],["FLN","Flint"],["BUK","Bucknell"],["LLM","Llangammarch"],["CNG","Congleton"],["WMN","Warminster"],["MTL","Mortlake"],["BWT","Bridgwater"],["BRT","Barlaston"],["MNP","Manor Park"],["ESL","Eastleigh"],["SHO","Sholing"],["EGT","Egton"],["HDH","Hampstead Heath"],["WCP","Worcester Park"],["ISP","Islip"],["TPB","Thorpe Bay"],["CRH","Crouch Hill"],["TBW","Tunbridge Wells"],["GLE","Gleneagles"],["KSW","Kirkby Stephen"],["ALW","Allens West"],["DMG","Dinas Rhondda"],["BSR","Broadstairs"],["WEM","Wem"],["CSN","Chessington North"],["HRD","Harling Road"],["AUI","Ardlui"],["ERI","Eridge"],["APD","Appledore (Kent)"],["DHN","Deighton"],["GLG","Glengarnock"],["MLH","Mill Hill (Lancashire)"],["WRP","Warwick Parkway"],["GOF","Golf Street"],["CHY","Chertsey"],["WOK","Woking"],["LLE","Llanelli"],["MYB","London Marylebone"],["WIL","Willington"],["WIJ","Willesden Junction"],["BME","Broome"],["CAM","Camberley"],["SRT","Shortlands"],["SOP","Southport"],["TYB","Tan-y-Bwlch (Bus)"],["ENC","Enfield Chase"],["RYP","Ryde Pier Head"],["BEB","Bebington"],["LGW","Langwathby"],["WSE","Winchelsea"],["BFR","London Blackfriars"],["SCT","Scotscalder"],["RUG","Rugby"],["SRS","Selhurst"],["MLF","Milford (Surrey)"],["PNA","Penally"],["STU","Sturry"],["TWB","Tweedbank"],["YSM","Ystrad Mynach"],["JEQ","Jewellery Quarter"],["PTW","Prestwick Town"],["EBK","Eastbrook"],["PER","Penrhiwceiber"],["CWM","Cwmbran"],["ING","Invergowrie"],["RBS","British Steel Redcar"],["HLG","Hall Green"],["LSN","Livingston North"],["RML","Romiley"],["BUU","Burnham-on-Crouch"],["ZBC","Barons Court Underground"],["CPN","Chapleton"],["ROG","Rogart"],["LVG","Livingston South"],["HTC","Heaton Chapel"],["KGN","Kings Nympton"],["LCC","Lochluichart"],["DCG","Duncraig"],["TOD","Todmorden"],["WEA","West Ealing"],["SOK","South Kenton"],["SLA","Slateford"],["HLC","Helensburgh Central"],["LGJ","Loughborough Junction"],["HED","Halewood"],["ATH","Atherstone"],["EYN","Eynsford"],["SOT","Stoke-on-Trent"],["CAC","Caldercruix"],["SRC","Streatham Common"],["MSO","Moston"],["BEU","Beaulieu Road"],["ZBK","Barking Underground"],["BNR","Brockley Whins (T & W Metro)"],["LOH","Lostock Hall"],["MIL","Mill Hill Broadway"],["OHL","Old Hill"],["BDW","Bedwyn"],["PMA","Portsmouth Arms"],["WHC","Walthamstow Central"],["KDY","Kirkcaldy"],["FAZ","Fazakerley"],["GLC","Glasgow Central"],["HLU","Helensburgh Upper"],["LTG","Lostock Gralam"],["DLK","Dalston Kingsland"],["MTN","Moreton (Dorset)"],["EBL","East Boldon (T & W Metro)"],["CYN","Cynghordy"],["CHT","Chathill"],["HPT","Hopton Heath"],["ALO","Alloa"],["PMS","Portsmouth & Southsea"],["CON","Connel Ferry"],["WNC","Windsor & Eton Central"],["BET","Bethnal Green"],["SST","Stansted Mountfitchet"],["ESH","Esher"],["WSE","Winchelsea"],["CSS","Chessington South"],["CSL","Codsall"],["CPA","Corpach"],["HGF","Hag Fold"],["SRD","Stapleton Road"],["UPM","Upminster"],["BSJ","Bedford St Johns"],["RYB","Roy Bridge"],["DMP","Dumpton Park"],["LYT","Lymington Town"],["WHE","Whalley"],["HKC","Hackney Central"],["HYC","Hyde Central"],["PEW","Pewsey"],["AHN","Ashton-under-Lyne"],["PRW","Perranwell"],["CKL","Corkickle"],["DOD","Dodworth"],["WTA","Wester Hailes"],["PAW","Pelaw (T & W Metro)"],["AYP","Albany Park"],["NEW","Newcraighall"],["ORE","Ore"],["HAS","Halesworth"],["KWG","Kew Gardens"],["EXG","Exhibition Centre"],["HIL","Hillside"],["MPL","Marple"],["SDA","Snodland"],["BKA","Bookham"],["BNT","Brinnington"],["HKW","Hackney Wick"],["ACR","Accrington"],["QRP","Queens Road Peckham"],["MDG","Midgham"],["BAW","Blackwater"],["MEX","Mexborough"],["ADK","Ardwick"],["DNY","Danby"],["HIN","Hindley"],["PYG","Paisley Gilmour Street"],["PRA","Prestwick Intl Airport"],["DDP","Dudley Port"],["NMK","Newmarket"],["KGL","Kings Langley"],["MLN","Milngavie"],["FML","Frimley"],["NTR","Northallerton"],["SDW","Sandwich"],["BBW","Berry Brow"],["DID","Didcot Parkway"],["SOG","Stonegate"],["HAI","Halling"],["PWL","Pwllheli"],["WCF","Westcliff"],["HGG","Haggerston"],["CMR","Cromer"],["ALX","Alexandria"],["COO","Cookham"],["MRS","Monks Risborough"],["YRT","Yorton"],["BEN","Bentham"],["GOB","Gobowen"],["HAL","Hale"],["CAY","Carntyne"],["BUI","Burnside"],["SEL","Sellafield"],["WIM","Wimbledon"],["YRD","Yardley Wood"],["CHN","Cheshunt"],["HFX","Halifax"],["ELD","Earlswood (Surrey)"],["TOK","Three Oaks"],["PBN","Paris Nord"],["TED","Teddington"],["HKM","Hykeham"],["GRS","Garscadden"],["DSL","Disley"],["HDE","Hedge End"],["BNP","Barnstaple"],["KNS","Kennishead"],["LAK","Lakenheath"],["TUH","Tulse Hill"],["BSY","Brondesbury"],["FOX","Foxfield"],["SHR","Shrewsbury"],["WMG","Welham Green"],["HLF","Hillfoot"],["PMR","Peckham Rye"],["SGR","Slade Green"],["FRE","Freshfield"],["SDG","Sandling"],["DMR","Dalmuir"],["TRF","Trefforest"],["LZB","Lazonby & Kirkoswald"],["KCK","Knockholt"],["LLW","Llwyngwril"],["DCT","Danescourt"],["HRM","Harrietsham"],["WCM","Wickham Market"],["FEA","Featherstone"],["HNH","Herne Hill"],["MCO","Manchester Oxford Road"],["LER","Leytonstone High Road"],["RAU","Rauceby"],["HMW","Hampton Wick"],["SJS","St James Street"],["TEA","Tees-side Airport"],["LNR","Llanwrda"],["BEE","Beeston"],["MTV","Mount Vernon"],["BSV","Buckshaw Parkway"],["DAL","Dalmally"],["KTN","Kentish Town"],["TRA","Trafford Park"],["AMB","Ambergate"],["GOX","Goxhill"],["PLT","Pontlottyn"],["ATT","Attadale"],["POK","Pokesdown"],["STI","Stadium of Light (T & W Metro)"],["HOO","Hooton"],["KGS","Kings Sutton"],["KTW","Kentish Town West"],["ZPC","Piccadilly Circus Underground"],["UTT","Uttoxeter"],["BLH","Bellshill"],["BGA","Brundall Gardens"],["PRT","Prestatyn"],["CPT","Clapton"],["LET","Letchworth Garden City"],["PSN","Parson Street"],["PNE","Penge East"],["NFD","Northfield"],["LTV","Lichfield Trent Valley"],["CBG","Cambridge"],["NPD","New Pudsey"],["ETL","East Tilbury"],["LTV","Lichfield Trent Valley"],["SNI","Snaith"],["AVN","Avonmouth"],["TEN","Tenby"],["PTG","Port Glasgow"],["SPF","Springfield"],["TBD","Three Bridges"],["SLD","Salford Crescent"],["GOE","Goldthorpe"],["SMY","St Mary Cray"],["DBY","Derby"],["HXX","Heathrow Airport T123"],["THO","Thornford"],["PRE","Preston"],["KWN","Kilwinning"],["PRE","Preston"],["HWH","Haltwhistle"],["CNN","Canonbury"],["BOH","Bosham"],["OPK","Orrell Park"],["BDB","Broadbottom"],["LCK","Lockwood"],["NFL","Northfleet"],["TNP","Tonypandy"],["FOC","Falls of Cruachan"],["HYM","Haymarket"],["HIT","Hitchin"],["CLE","Cleethorpes"],["PAL","Palmers Green"],["ARD","Ardgay"],["BUS","Busby"],["LGE","Long Eaton"],["TUL","Tulloch"],["ABD","Aberdeen"],["BRO","Bridge of Orchy"],["GCT","Great Coates"],["INE","Ince & Elton"],["WTT","Witton"],["TRS","Thurston"],["FNC","Farncombe"],["EBD","Ebbsfleet International"],["DUR","Durrington-on-Sea"],["CSA","Cosham"],["PEG","Pegswood"],["CEA","Cleland"],["GCR","Gloucester"],["TAC","Tackley"],["MFH","Milford Haven"],["PRY","Perry Barr"],["RHL","Rhyl"],["THW","The Hawthorns"],["WTH","Whitehaven"],["KNG","Kingston"],["MIK","Micklefield"],["LRG","Lairg"],["EPS","Epsom"],["WBQ","Warrington Bank Quay"],["CUW","Clunderwen"],["DTG","Dinting"],["ACT","Ascot"],["BID","Bidston"],["BWG","Bowling"],["BMP","Brampton (Cumbria)"],["CLT","Clacton-on-Sea"],["BCH","Birchington-on-Sea"],["BEF","Benfleet"],["HMS","Helmsdale"],["KEY","Keyham"],["MOS","Moss Side"],["PTK","Partick"],["SGN","South Greenford"],["SOR","Sole Street"],["DBD","Denby Dale"],["BSP","Brondesbury Park"],["SEE","Southease"],["CNR","Crianlarich"],["CRT","Chartham"],["SUG","Sugar Loaf"],["HGM","Higham"],["WNG","Waun-gron Park"],["DUM","Dumbreck"],["PMR","Peckham Rye"],["CRB","Corbridge"],["NFA","North Fambridge"],["AGV","Abergavenny"],["HAG","Hagley"],["CEL","Chelford"],["HGD","Hungerford"],["BWN","Bloxwich North"],["KVD","Kelvindale"],["RUS","Ruswarp"],["CLV","Claverdon"],["RNH","Rainhill"],["EWW","Ewell West"],["HHY","Highbury & Islington"],["APP","Appleby"],["HKN","Hucknall"],["MSN","Marsden"],["TPC","Thorpe Culvert"],["EWE","Ewell East"],["GTN","Grangetown"],["LEO","Leominster"],["DOL","Dolau"],["CUH","Curriehill"],["KBK","Kents Bank"],["DPS","Dublin Port (Stena)"],["PAI","Pallion (T & W Metro)"],["MCB","Moulsecoomb"],["NMT","Needham Market"],["WFI","Westerfield"],["SCG","Stone Crossing"],["STR","Stranraer"],["ZWA","Waterloo Underground"],["PIL","Pilning"],["SWD","Swinderby"],["MSK","Marske"],["TRN","Troon"],["WID","Widnes"],["KMS","Kemsing"],["STZ","St Peters (T & W Metro)"],["ANF","Ashurst New Forest"],["WTN","Whitton"],["ANL","Anniesland"],["SCS","Starcross"],["FRB","Fairbourne"],["STK","Stockton"],["BEV","Beverley"],["KKM","Kirkham & Wesham"],["PDW","Paddock Wood"],["CAN","Carnoustie"],["STC","Strathcarron"],["CUF","Cuffley"],["MTP","Montpelier"],["SWM","Swanscombe"],["CBE","Canterbury East"],["DMF","Dumfries"],["HNT","Huntly"],["LLT","Llanbister Road"],["WAT","London Waterloo"],["MEW","Maesteg (Ewenny Road)"],["SUT","Sutton Coldfield"],["LDS","Leeds"],["BNM","Burnham"],["BEL","Beauly"],["HXM","Hoveton & Wroxham"],["HDL","Headstone Lane"],["LEY","Leyland"],["PRE","Preston"],["SNY","Sunnymeads"],["RNF","Rainford"],["EGN","Eastrington"],["KGH","Kinghorn"],["MAT","Matlock"],["NCK","New Cumnock"],["NWP","Newport (South Wales)"],["QPW","Queens Park (London)"],["MSD","Moorside"],["WLM","Williamwood"],["DWD","Dolwyddelan"],["WTL","Whitland"],["MPK","Mosspark"],["MAU","Mauldeth Road"],["HEX","Hexham"],["CLI","Clifton"],["SYD","Sydenham"],["LAD","Ladywell"],["CTM","Chatham"],["SWY","Sway"],["TRU","Truro"],["DLY","Dalry"],["PRP","Preston Park"],["BPB","Blackpool Pleasure Beach"],["LHO","Langho"],["SPS","Stepps"],["TOP","Topsham"],["BIA","Bishop Auckland"],["HTH","Handforth"],["MRT","Moreton (Merseyside)"],["MCH","March"],["TDU","Tondu"],["BCS","Bicester North"],["NMP","Northampton"],["ALP","Althorpe"],["BSE","Bury St Edmunds"],["PTR","Petersfield"],["BUC","Buckenham"],["KLY","Kenley"],["ELW","Eltham"],["WHA","Westenhanger"],["WWL","Whitwell"],["EDW","East Dulwich"],["NRD","North Road"],["BTE","Bitterne"],["IMW","Imperial Wharf"],["ANN","Annan"],["BDN","Brading"],["CES","Cressing"],["KBW","Knebworth"],["DAR","Darlington"],["HWD","Hawarden"],["TAD","Tadworth"],["BAG","Bagshot"],["ZHS","Kensington High St Underground"],["SMD","Stamford"],["BUD","Burneside"],["DOT","Dunston"],["ELS","Elstree & Borehamwood"],["CHF","Church Fenton"],["HAZ","Hazel Grove"],["KMH","Kempston Hardwick"],["SOF","South Woodham Ferrers"],["NRW","Norwich"],["AHS","Ashurst"],["FZW","Fitzwilliam"],["MIN","Milliken Park"],["RUN","Runcorn"],["WSL","Walsall"],["OKM","Oakham"],["WAT","London Waterloo"],["AYP","Albany Park"],["MST","Maesteg"],["KNU","Knucklas"],["LEI","Leicester"],["WAT","London Waterloo"],["WCR","Whitecraigs"],["MRP","Moorthorpe"],["SNH","St Helens Central"],["CAO","Cannock"],["RAI","Rainham (Kent)"],["RKT","Ruskington"],["YOK","Yoker"],["BDT","Bridlington"],["LDN","Llandanwg"],["SHJ","St Helens Junction"],["CHH","Christs Hospital"],["CMF","Cromford"],["HYR","Haydons Road"],["LGN","Longton"],["BXH","Bexleyheath"],["CPM","Chippenham"],["DFR","Drumfrochar"],["NCO","Newcourt"],["WET","Weeton"],["EMD","East Midlands Parkway"],["POP","Poppleton"],["AYH","Aylesham"],["ZUM","Upminster Underground"],["CHD","Chesterfield"],["HEZ","Heworth (T & W Metro)"],["PRB","Prestbury"],["GTR","Goostrey"],["ACK","Acklington"],["KNL","Kensal Green"],["SAN","Sandown"],["THL","Tile Hill"],["SIP","Shipton"],["SFA","Stratford International"],["UPW","Upwey"],["GIP","Gipsy Hill"],["RUT","Rutherglen"],["SES","South Elmsall"],["TGM","Teignmouth"],["ADS","Ardrossan Harbour"],["BCG","Birchgrove"],["RFD","Rochford"],["PES","Pensarn"],["BAI","Blairhill"],["TLB","Talybont"],["SVG","Stevenage"],["WPE","Wapping"],["BDG","Bridgeton"],["THH","Thatto Heath"],["ATB","Attenborough"],["MTH","Motherwell"],["WKM","Wokingham"],["GMT","Grosmont"],["ARL","Arlesey"],["BGD","Bargoed"],["REE","Reedham (Norfolk)"],["HPA","Honor Oak Park"],["NUN","Nuneaton"],["TRM","Trimley"],["WTY","Witley"],["SWO","Snowdown"],["MDB","Maidstone Barracks"],["ENL","Enfield Lock"],["MIJ","Mitcham Junction"],["MDE","Maidstone East"],["GOD","Godalming"],["HGR","Hither Green"],["SPO","Spondon"],["WNT","Wandsworth Town"],["ECR","East Croydon"],["CLS","Chester-le-Street"],["QYD","Quakers Yard"],["WBC","Waterbeach"],["NES","Neston"],["PCN","Paisley Canal"],["WSA","West Allerton"],["SFI","Shawfair"],["SLH","Sleights"],["HTN","Hatton"],["KIV","Kiveton Bridge"],["RIS","Rishton"],["DMS","Dormans"],["LCN","Lincoln Central"],["AYP","Albany Park"],["ERI","Eridge"],["WLC","Waltham Cross"],["MPT","Morpeth"],["MDW","Maidstone West"],["WEL","Wellingborough"],["HRY","Harringay Green Lanes"],["MOB","Mobberley"],["SWL","Swale"],["ECC","Eccles"],["HEW","Heworth"],["LLH","Llangennech"],["BKO","Brookwood"],["GSY","Guiseley"],["SBY","Selby"],["WSB","Westbury"],["ETC","Etchingham"],["BLT","Blantyre"],["SSD","Stansted Airport"],["DOR","Dore"],["NVR","Navigation Road"],["CFF","Croftfoot"],["CKN","Crewkerne"],["GLT","Glenrothes with Thornton"],["WTG","Watlington"],["BAN","Banbury"],["HYS","Hayes (Kent)"],["BHR","Builth Road"],["KND","Kingswood"],["KNN","Kings Norton"],["WOL","Wolverton"],["WTO","Water Orton"],["ADR","Airdrie"],["LLC","Llandecwyn"],["PKS","Parkstone (Dorset)"],["GOM","Gomshall"],["TYL","Tyndrum Lower"],["BOP","Bowes Park"],["HRY","Harringay Green Lanes"],["HER","Hersham"],["WRH","Worthing"],["BON","Bolton"],["BOA","Bradford-on-Avon"],["CFH","Chafford Hundred"],["UTY","Upper Tyndrum"],["NAR","Narberth"],["BDL","Birkdale"],["HMT","Ham Street"],["MKM","Melksham"],["AUW","Ascott-under-Wychwood"],["EAL","Ealing Broadway"],["EAL","Ealing Broadway"],["WTB","Whitby"],["CST","London Cannon Street"],["DWN","Darwen"],["BLE","Bramley (West Yorkshire)"],["AAP","Alexandra Palace"],["NUF","Nutfield"],["STG","Stirling"],["HON","Honiton"],["BPW","Bristol Parkway"],["KIT","Kintbury"],["RAD","Radley"],["MCE","Metro Centre"],["SNT","Stanlow & Thornton"],["BYD","Barry Docks"],["DAM","Dalmeny"],["FIN","Finstock"],["BMT","Bedminster"],["HSL","Haslemere"],["CET","Colchester Town"],["HDG","Heald Green"],["PNR","Penrith"],["MHM","Merstham"],["HSC","Hoscar"],["SNO","St Neots"],["BGM","Bellingham"],["NTL","Netley"],["HYH","Hythe"],["RDC","Redditch"],["LTK","Little Kimble"],["FOD","Ford"],["CLJ","Clapham Junction"],["HON","Honiton"],["CLJ","Clapham Junction"],["PNW","Penge West"],["WFJ","Watford Junction"],["HCH","Holmes Chapel"],["LVN","Littlehaven"],["BTL","Batley"],["ZET","Earl's Court Underground"],["WDL","Woodhall"],["BLX","Bloxwich"],["HLS","Hilsea"],["MKT","Marks Tey"],["OKE","Okehampton"],["HWY","High Wycombe"],["SYT","Somerleyton"],["MRY","Maryport"],["SDY","Sandy"],["CLJ","Clapham Junction"],["CEF","Chapel-en-le-Frith"],["LTP","Littleport"],["KPT","Kilpatrick"],["WDD","Widdrington"],["WHM","Whimple"],["CIT","Chislehurst"],["PFR","Pontefract Baghill"],["BKC","Birkenhead Central"],["HOY","Honley"],["INC","Ince"],["CLJ","Clapham Junction"],["GRC","Great Chesterford"],["IPS","Ipswich"],["WCB","Westcombe Park"],["CLJ","Clapham Junction"],["LYP","Lymington Pier"],["CTF","Catford"],["CTE","Chatelherault"],["FWY","Five Ways"],["NDL","North Dulwich"],["BWO","Bricket Wood"],["BKN","Birkenhead North"],["SOW","Sowerby Bridge"],["BTY","Bentley (Hampshire)"],["KLD","Kildale"],["NQY","Newquay"],["SCA","Scarborough"],["BEG","Beltring"],["BKP","Birkenhead Park"],["CLJ","Clapham Junction"],["GLO","Glossop"],["GRH","Gartcosh"],["TUT","Tutbury & Hatton"],["BCE","Bracknell"],["NNT","Nunthorpe"],["ZNP","Newbury Park Underground"],["SND","Sandhurst"],["FSB","Fishbourne (West Sussex)"],["SLW","Salwick"],["DIG","Digby & Sowton"],["EDG","Edge Hill"],["INH","Invershin"],["BTB","Barnetby"],["SJN","St James (T & W Metro)"],["SUY","Sudbury"],["AIG","Aigburth"],["ELR","Elsecar"],["SGB","Smethwick Galton Bridge"],["HYL","Hayle"],["KEM","Kemble"],["WIM","Wimbledon"],["SAS","St Annes-on-the-Sea"],["SHM","Sheringham"],["WRL","Wetheral"],["SUP","Sundridge Park"],["AWM","Ashwell & Morden"],["BUY","Burley Park"],["ABA","Aberdare"],["CRO","Croy"],["DAT","Datchet"],["LGS","Langside"],["WDM","Windermere"],["GMY","Goodmayes"],["BDQ","Bradford Forster Square"],["SOH","South Hampstead"],["GPK","Grange Park"],["EDP","Edinburgh Park"],["NWB","North Wembley"],["NWE","Newport (Essex)"],["CYT","Cherry Tree"],["HUY","Huyton"],["SFN","Shifnal"],["TOM","Tottenham Hale"],["CDI","Crediton"],["HUT","Hutton Cranswick"],["ABW","Abbey Wood"],["GDL","Godley"],["RHD","Ribblehead"],["TYP","Tynemouth (T & W Metro)"],["CSO","Croston"],["PHR","Penshurst"],["LAC","Lancing"],["SWS","South Wigston"],["BUX","Buxton"],["MLD","Mouldsworth"],["FLE","Fleet"],["MKR","Market Rasen"],["LEG","Lea Green"],["CMH","Cwmbach"],["TMC","Templecombe"],["TWI","Twickenham"],["WEE","Weeley"],["HID","Hall I' Th' Wood"],["TTF","Thetford"],["DLH","Doleham"],["BTF","Bottesford"],["JOR","Jordanhill"],["TIL","Tilbury Town"],["BMR","Bromborough Rake"],["DPD","Dorking Deepdene"],["BUT","Burton-on-Trent"],["LEO","Leominster"],["FRN","Fearn"],["SPK","Sutton Parkway"],["STL","Southall"],["VXH","Vauxhall"],["ALM","Alnmouth"],["HMN","Homerton"],["PNS","Penistone"],["DFP","Dublin Ferryport"],["SED","Shelford"],["MLB","Millbrook (Bedfordshire)"],["WWR","Wandsworth Road"],["WBR","Whaley Bridge"],["CNS","Conisbrough"],["JHN","Johnstone"],["LND","Longniddry"],["STF","Stromeferry"],["BCN","Branchton"],["PET","Petts Wood"],["RSG","Rose Grove"],["SAM","Saltmarshe"],["BNS","Barnes"],["PKG","Penkridge"],["SGB","Smethwick Galton Bridge"],["MUF","Manchester United FC"],["RHY","Rhymney"],["AMR","Amersham"],["KDB","Kidbrooke"],["PLC","Pluckley"],["CSM","Castleton Moor"],["HWF","Heathrow Airport T4 (Bus)"],["TAD","Tadworth"],["GTY","Gatley"],["HWX","Heathrow Airport T5 (Bus)"],["BLK","Blackrod"],["SLK","Silkstone Common"],["BSB","Bleasby"],["AGS","Argyle Street"],["MUI","Muirend"],["SMG","St Margarets (London)"],["MAN","Manchester Piccadilly"],["SEG","Selling"],["PLN","Portlethen"],["BSM","Branksome"],["NLN","New Lane"],["HTO","Hightown"],["BYI","Barry Island"],["HOL","Holton Heath"],["SFL","Seaforth & Litherland"],["SBR","Spean Bridge"],["KGS","Kings Sutton"],["LRB","London Road (Brighton)"],["GSC","Gilshochill"],["MCM","Morecambe"],["STP","London St Pancras (Intl)"],["FGT","Faygate"],["ALD","Alderley Edge"],["COH","Crowborough"],["ANF","Ashurst New Forest"],["OCK","Ockendon"],["ASN","Addlestone"],["CLL","Collington"],["MOT","Motspur Park"],["SDL","Sandhills"],["KKB","Kirkby in Ashfield"],["PAD","London Paddington"],["WOB","Woburn Sands"],["BNI","Barnes Bridge"],["QPW","Queens Park (London)"],["BNY","Barnsley"],["BPN","Blackpool North"],["KWD","Kirkwood"],["SCH","Scotstounhill"],["KNT","Kenton"],["LHD","Leatherhead"],["DRO","Dronfield"],["MRD","Morchard Road"],["CHU","Cheadle Hulme"],["LIC","Lichfield City"],["DSM","Darsham"],["ENF","Enfield Town"],["SSE","Shoreham-by-Sea"],["LGF","Longfield"],["LIP","Liphook"],["ACC","Acton Central"],["NHE","New Hythe"],["GCH","Garelochhead"],["GSN","Garston (Hertfordshire)"],["WRY","Wraysbury"],["RID","Ridgmont"],["KNF","Knutsford"],["STN","Stonehaven"],["WHP","West Hampstead Thameslink"],["DIS","Diss"],["MLG","Mallaig"],["REI","Reigate"],["DNG","Dunton Green"],["LUX","Luxulyan"],["GFD","Greenford"],["GNR","Green Road"],["STH","Shepreth"],["BXW","Boxhill & Westhumble"],["DUD","Duddeston"],["FER","Fernhill"],["CHI","Chingford"],["BKQ","Hamilton Square"],["MUB","Musselburgh"],["ULL","Ulleskelf"],["CLP","Clapham High Street"],["COW","Cowdenbeath"],["GLH","Glasshoughton"],["ATL","Attleborough"],["BIN","Bingham"],["LGO","Llangynllo"],["LRB","London Road (Brighton)"],["WKD","Walkden"],["HRW","Harrow & Wealdstone"],["URM","Urmston"],["CUA","Culrain"],["NBW","North Berwick"],["DMC","Drumchapel"],["EMP","Emerson Park"],["HLE","Hillington East"],["MGN","Marston Green"],["UWL","Upper Warlingham"],["LWM","Llantwit Major"],["ZDE","Dagenham East Underground"],["HIB","High Brooms"],["TQY","Torquay"],["LEU","Leuchars"],["LST","London Liverpool Street"],["ZTG","Turnham Green Underground"],["CDY","Cartsdyke"],["MTC","Mitcham Eastfields"],["HVF","Haverfordwest"],["CSW","Chestfield & Swalecliffe"],["TIR","Tir-phil"],["ERL","Earlestown"],["BGL","Bugle"],["HWM","Harlow Mill"],["SYB","Stalybridge"],["NOA","Newton-on-Ayr"],["FRT","Frant"],["GUI","Guide Bridge"],["HLW","Hillington West"],["MYT","Mytholmroyd"],["BKM","Berkhamsted"],["NEL","Nelson"],["NLT","Northolt Park"],["BES","Bescar Lane"],["BNA","Burnage"],["SRY","Shoeburyness"],["MSR","Minster"],["BNH","Barnehurst"],["DUN","Dunbar"],["LLG","Llangadog"],["PIN","Pinhoe"],["POR","Porth"],["CTR","Chester"],["MCK","Marne La Vallee"],["BUO","Bursledon"],["MDL","Middlewood"],["RHM","Reedham (Surrey)"],["WHD","West Hampstead"],["BDH","Bedhampton"],["ROB","Roby"],["KBF","Kirkby-in-Furness"],["RTR","Rochester"],["STV","Stevenston"],["TIP","Tipton"],["ASB","Ardrossan South Beach"],["DBR","Derby Road"],["LMS","Leamington Spa"],["FSK","Fiskerton"],["HWI","Horwich Parkway"],["WLI","Welling"],["WGC","Welwyn Garden City"],["SOU","Southampton Central"],["RUE","Runcorn East"],["FNH","Farnham"],["SRI","Spring Road"],["TAU","Taunton"],["ALT","Altrincham"],["WDS","Woodlesford"],["LEL","Lelant"],["MNR","Manor Road"],["PPL","Pontypool & New Inn"],["RDG","Reading"],["WNR","Windsor & Eton Riverside"],["SWT","Slaithwaite"],["RCD","Rochdale"],["CYP","Crystal Palace"],["DDG","Dorridge"],["KBX","Kirby Cross"],["SBJ","Stourbridge Junction"],["CRI","Cricklewood"],["WDU","West Dulwich"],["SNN","Swinton (Manchester)"],["BRP","Brampton (Suffolk)"],["COV","Coventry"],["DGL","Dingle Road"],["PYC","Pontyclun"],["LNY","Langley"],["GRP","Grove Park"],["HOU","Hounslow"],["SAE","Saltaire"],["BEH","Bedworth"],["SCY","South Croydon"],["BCY","Brockley"],["AVI","Avignon"],["VIC","London Victoria"],["BWD","Birchwood"],["HWN","Harlow Town"],["VIC","London Victoria"],["FRO","Frome"],["VIC","London Victoria"],["AWT","Armathwaite"],["CAT","Caterham"],["COB","Cooden Beach"],["WVH","Wolverhampton"],["HME","Hamble"],["AUG","Aughton Park"],["BEX","Bexhill"],["ACY","Abercynon"],["CML","Carmyle"],["PBR","Potters Bar"],["TOL","Tolworth"],["APN","Newcastle Airport"],["ADN","Ardrossan Town"],["GDP","Gidea Park"],["SBJ","Stourbridge Junction"],["WIJ","Willesden Junction"],["SDM","Shieldmuir"],["SEV","Sevenoaks"],["FRM","Fareham"],["HNA","Hinton Admiral"],["MRN","Marden"],["MIA","Manchester Airport"],["SBT","Stourbridge Town"],["MAI","Maidenhead"],["BKH","Blackheath"],["BYS","Braystones"],["HGT","Harrogate"],["BIL","Billingham"],["STM","St Michaels"],["BVD","Belvedere"],["LTS","Lelant Saltings"],["LHA","Loch Awe"],["BAD","Banstead"],["INT","Ingatestone"],["MKC","Milton Keynes Central"],["EDR","Edmonton Green"],["BNV","Banavie"],["BTP","Braintree Freeport"],["ROC","Roche"],["CHP","Chipstead"],["FNW","Farnworth"],["TAI","Tain"],["GAL","Galashiels"],["CHG","Charing"],["RMD","Richmond"],["MTN","Moreton (Dorset)"],["COR","Corby"],["SOI","Stow"],["BLG","Bellgrove"],["CNF","Carnforth"],["PST","Prestonpans"],["PKT","Park Street"],["SKS","Stocksfield"],["NRC","Newbury Racecourse"],["PNY","Pen-y-bont"],["EKL","East Kilbride"],["SRU","South Ruislip"],["CDU","Cam & Dursley"],["BRV","Bournville"],["WMS","Wemyss Bay"],["UDD","Uddingston"],["BHD","Brithdir"],["MOR","Mortimer"],["CUM","Culham"],["SDH","Sudbury Hill Harrow"],["STA","Stafford"],["PRL","Prittlewell"],["RDT","Radlett"],["SHP","Shepperton"],["CNP","Conway Park"],["TLK","The Lakes"],["BRX","Brixton"],["MTB","Matlock Bath"],["CLN","Chapeltown"],["KYN","Keynsham"],["NWA","North Walsham"],["BYA","Berney Arms"],["REC","Rectory Road"],["RRB","Ryder Brow"],["SUD","Sudbury & Harrow Road"],["SMN","Southminster"],["YAT","Yatton"],["KSN","Kearsney"],["PTF","Pantyffynnon"],["SWN","Swinton (South Yorkshire)"],["SRN","Strines"],["SWA","Swansea"],["TRR","Torre"],["SSC","Seascale"],["HOT","Henley-on-Thames"],["MVL","Malvern Link"],["ARR","Arram"],["SLT","Saltcoats"],["ANZ","Anerley"],["FPK","Finsbury Park"],["LAN","Lancaster"],["THA","Thatcham"],["BSC","Bescot Stadium"],["MTO","Marton"],["EGG","Eggesford"],["KEH","Keith"],["WCY","West Croydon"],["BOD","Bodmin Parkway"],["HOP","Hope (Derbyshire)"],["HRW","Harrow & Wealdstone"],["WTC","Whitchurch (Shropshire)"],["CHX","London Charing Cross"],["KIR","Kirkby"],["WGA","Westgate-on-Sea"],["WSM","Weston-super-Mare"],["BKS","Bekesbourne"],["AHT","Aldershot"],["DFI","Duffield"],["GIR","Girvan"],["ZBB","Barbican Underground"],["HPE","Hope (Flintshire)"],["CLW","Chorleywood"],["HHL","Heath High Level"],["KKS","Kirk Sandall"],["RDD","Riddlesdown"],["RFY","Rock Ferry"],["ABE","Aber"],["HSK","Hassocks"],["SHT","Shotton"],["LVC","Liverpool Central"],["AIN","Aintree"],["HNG","Hengoed"],["LIS","Liss"],["ARM","Armadale"],["FFA","Ffairfach"],["HCB","Hackbridge"],["LVC","Liverpool Central"],["ELP","Ellesmere Port"],["DYF","Dyffryn Ardudwy"],["TYW","Tywyn"],["CWN","Cowden"],["EGH","Egham"],["RET","Retford"],["HAY","Hayes & Harlington"],["SAT","South Acton"],["PMT","Polmont"],["HPQ","Harwich International"],["WED","Wedgwood"],["BIO","Baillieston"],["WCH","Whitchurch (Hampshire)"],["MNE","Manea"],["SNF","Shenfield"],["ROM","Romsey"],["CHL","Chilworth"],["CDN","Coulsdon Town"],["TLS","Thorpe-le-Soken"],["WRS","Wressle"],["BDY","Bredbury"],["THI","Thirsk"],["WES","Westerton"],["CPU","Capenhurst"],["LRH","Larkhall"],["OLD","Old Street"],["DGT","Deansgate"],["SEM","Seamer"],["SVB","Severn Beach"],["BMC","Bromley Cross"],["SEC","Seaton Carew"],["ZLW","Whitechapel"],["SEE","Southease"],["SOA","Southampton Airpt Parkway"],["WDO","Waddon"],["WTS","Whatstandwell"],["LPY","Liverpool South Parkway"],["HFN","Hertford North"],["KGM","Kingham"],["WFL","Wainfleet"],["SKN","St Keyne Wishing Well Halt"],["DPT","Devonport"],["SOW","Sowerby Bridge"],["WDU","West Dulwich"],["BCB","Burscough Bridge"],["HST","High Street"],["LEM","Leyton Midland Road"],["PYL","Pyle"],["WRU","West Ruislip"],["WYB","Weybridge"],["TAB","Tame Bridge Parkway"],["TRE","Trefforest Estate"],["WYB","Weybridge"],["HND","Hanborough"],["WLW","Welwyn North"],["BMO","Birmingham Moor Street"],["BCJ","Burscough Junction"],["DCW","Dorchester West"],["LVJ","James Street"],["RDF","Radcliffe (Nottinghamshire)"],["CPY","Clapham (North Yorkshire)"],["RMF","Romford"],["SAV","Stratford-upon-Avon"],["LHW","Lochwinnoch"],["NOT","Nottingham"],["CUD","Cuddington"],["LLA","Llanaber"],["SNE","Stone"],["SHL","Shawlands"],["FFD","Freshford"],["SHF","Sheffield"],["YRK","York"],["CSD","Cobham & Stoke d'Abernon"],["ENT","Entwistle"],["PRN","Parton"],["ROL","Rolleston"],["BRH","Borth"],["BCV","Bruce Grove"],["SMR","Smethwick Rolfe Street"],["ACN","Achnasheen"],["KWB","Kew Bridge"],["SAR","St Andrews Road"],["ASF","Ashfield"],["FLM","Flimby"],["LBT","Larbert"],["WOR","Worle"],["CWL","Colwall"],["EXC","Exeter Central"],["NTB","Norton Bridge"],["TWY","Twyford"],["ROR","Rogerstone"],["BDI","Bradford Interchange"],["WNL","Whinhill"],["BLA","Blair Atholl"],["KML","Kemsley"],["SDR","Saunderton"],["GRK","Gourock"],["VXH","Vauxhall"],["FTW","Fort William"],["LIT","Littlehampton"],["SIV","St Ives"],["BLD","Baildon"],["GLM","Gillingham (Kent)"],["SHS","Shotts"],["UCK","Uckfield"],["BTG","Barnt Green"],["BOM","Bromborough"],["ACH","Achnashellach"],["UHA","Uphall"],["VXH","Vauxhall"],["DIN","Dingwall"],["HDW","Hadley Wood"],["SOB","Southbourne"],["LEE","Lee"],["QBR","Queenborough"],["LOC","Lockerbie"],["SMA","Small Heath"],["WDB","Woodbridge"],["HIR","Horton-in-Ribblesdale"],["PON","Ponders End"],["FRI","Frinton-on-Sea"],["SAL","Salisbury"],["SRH","Streatham Hill"],["CRK","Chirk"],["EXR","Essex Road"],["HOK","Hook"],["SML","Sea Mills"],["HLY","Holytown"],["NWD","Norwood Junction"],["ASY","Ashley"],["ESW","Elmswell"],["HOH","Harrow-on-the-Hill"],["AGR","Angel Road"],["NSD","Newstead"],["HUL","Hull"],["HLL","Heath Low Level"],["PBL","Parbold"],["JOH","Johnston"],["SMB","Smithy Bridge"],["NSH","North Sheen"],["UPL","Upholland"],["BGE","Broad Green"],["CBY","Charlbury"],["WME","Woodmansterne"],["LAR","Largs"],["MMO","Melton Mowbray"],["LIN","Linlithgow"],["WDT","West Drayton"],["HFE","Hertford East"],["KET","Kettering"],["PUL","Pulborough"],["QRB","Queenstown Road Battersea"],["WMB","Wembley Central"],["BRG","Borough Green & Wrotham"],["GEA","Gretna Green"],["KPA","Kensington Olympia"],["CIM","Cilmeri"],["SWR","Stewartby"],["CMO","Camelon"],["GLQ","Glasgow Queen Street"],["BSU","Brunstane"],["IFI","Ifield"],["ARN","Arnside"],["FRW","Fairwater"],["LKE","Lake"],["CTL","Cattal"],["DMH","Dilton Marsh"],["WWD","Woolwich Dockyard"],["BTS","Burntisland"],["HSW","Heswall"],["KEL","Kelvedon"],["DBL","Dunblane"],["NLR","North Llanrwst"],["HUB","Hunmanby"],["SAF","Salfords"],["WNE","Wilnecote"],["QPK","Queens Park (Glasgow)"],["WTM","Witham"],["AVP","Aylesbury Vale Parkway"],["PTD","Pontarddulais"],["RDG","Reading"],["EXM","Exmouth"],["SNW","Swanwick"],["FCN","Falconwood"],["GOO","Goole"],["LBO","Loughborough"],["HSB","Helsby"],["SHD","Shildon"],["TAY","Taynuilt"],["SNS","Staines"],["CBW","Canterbury West"],["EGF","East Garforth"],["AUR","Aberdour"],["DKG","Dorking"],["GAR","Garrowhill"],["HUN","Huntingdon"],["LLY","Llwynypia"],["SAY","Swanley"],["TTH","Thornton Heath"],["LSK","Liskeard"],["LSW","Leasowe"],["PMP","Plumpton"],["WKK","Wakefield Kirkgate"],["RFY","Rock Ferry"],["DDK","Dagenham Dock"],["HPN","Hapton"],["LNB","Llanbradach"],["BAD","Banstead"],["BIT","Bicester Village"],["MBR","Middlesbrough"],["AAT","Achanalt"],["HIP","Highams Park"],["SIN","Singer"],["TYG","Tygwyn"],["CUP","Cupar"],["FKC","Folkestone Central"],["SIL","Sileby"],["ESM","Elsenham"],["EPD","Epsom Downs"],["HBP","Hornbeam Park"],["HOZ","Howwood"],["RFY","Rock Ferry"],["MEP","Meopham"],["SWG","Swaythling"],["AVM","Aviemore"],["BHK","Bush Hill Park"],["PEA","Peartree"],["WNN","Wennington"],["AYL","Aylesford"],["PIT","Pitlochry"],["OVE","Overpool"],["ZCO","Croxley Underground"],["GYM","Great Yarmouth"],["CPK","Carpenders Park"],["GLC","Glasgow Central"],["LAS","Llansamlet"],["SPN","Spooner Row"],["FKW","Folkestone West"],["KBC","Kinbrace"],["AND","Anderston"],["ZCW","Canada Water"],["DON","Doncaster"],["EAR","Earley"],["CTN","Charlton"],["ZFD","Farringdon Underground"],["SBF","St Budeaux Ferry Road"],["PCD","Pencoed"],["LBG","London Bridge"],["MZH","Maze Hill"],["WTI","Winnersh Triangle"],["HPD","Harpenden"],["SHT","Shotton"],["LBG","London Bridge"],["NRT","Nethertown"],["LBG","London Bridge"],["HMY","Hairmyres"],["HHB","Heysham Port"],["PSH","Pershore"],["PAN","Pangbourne"],["CLU","Carluke"],["SOC","Southend Central"],["MFF","Minffordd"],["BRF","Brierfield"],["COT","Cottingley"],["PTB","Pentre-bach"],["SKG","Skegness"],["INS","Insch"],["EXN","Exton"],["LOO","Looe"],["WWA","Woolwich Arsenal"],["CLK","Clock House"],["BPT","Bishopton"],["BAS","Bere Alston"],["LCS","Locheilside"],["MEV","Merthyr Vale"],["BDH","Bedhampton"],["SDE","Shadwell"],["STP","London St Pancras (Intl)"],["WEH","West Ham"],["HUP","Humphrey Park"],["BTO","Betchworth"],["EVE","Evesham"],["SEF","Seaford"],["ALR","Alresford"],["HNL","Henley-in-Arden"],["SRL","Shirley"],["BFF","Blaenau Ffestiniog"],["FNN","Farnborough North"],["NLW","Newton-le-Willows"],["YAL","Yalding"],["BMH","Bournemouth"],["LHM","Lealholm"],["TVP","Tiverton Parkway"],["BIW","Biggleswade"],["WLS","Woolston"],["BIP","Bishopstone"],["EBV","Ebbw Vale Parkway"],["NNG","Newark North Gate"],["PHG","Penhelig"],["MNG","Manningtree"],["TAT","Tattenham Corner"],["MEN","Menheniot"],["FSB","Fishbourne (West Sussex)"],["CNN","Canonbury"],["HRO","Harold Wood"],["BKJ","Beckenham Junction"],["NFN","Nafferton"],["BNO","Benton (T & W Metro)"],["GRV","Gravesend"],["NBY","Newbury"],["SDC","Shoreditch High Street"],["AXP","Alexandra Parade"],["FXN","Foxton"],["MTS","Montrose"],["BTN","Brighton"],["RDG","Reading"],["CIR","Caledonian Rd & Barnsbury"],["TAL","Talsarnau"],["CWN","Cowden"],["NLS","Nailsea & Backwell"],["WNH","Warnham"],["HWB","Hawarden Bridge"],["LLN","Llandaf"],["NRB","Norbury"],["CSY","Coseley"],["LLL","Llandeilo"],["RIC","Rickmansworth"],["WMB","Wembley Central"],["ADV","Andover"],["PFL","Purfleet"],["SWE","Swineshead"],["SHB","Shirebrook"],["DFD","Dartford"],["HAN","Hanwell"],["NUT","Nutbourne"],["MLW","Marlow"],["WBL","Warblington"],["RHI","Rhiwbina"],["DEP","Deptford"],["CUB","Cumbernauld"],["HCN","Headcorn"],["LAW","Landywood"],["THC","Thurnscoe"],["CNO","Chetnole"],["COI","Crosshill"],["SHW","Shawford"],["BAJ","Baglan"],["SUR","Surbiton"],["AUK","Auchinleck"],["KTL","Kirton Lindsey"],["LID","Lidlington"],["CDR","Cardross"],["SYL","Syon Lane"],["HYT","Hyde North"],["LAI","Laindon"],["HOX","Hoxton"],["LEW","Lewisham"],["BSK","Basingstoke"],["CRW","Crawley"],["GBS","Goring-by-Sea"],["WHS","Whyteleafe South"],["MHR","Market Harborough"],["ERD","Erdington"],["GST","Gathurst"],["LGG","Langley Green"],["OVR","Overton"],["NEH","New Eltham"],["SDN","St Denys"],["MTG","Mottingham"],["WTR","Wateringbury"],["CDB","Cardiff Bay"],["FNT","Feniton"],["BLP","Belper"],["HSG","Hathersage"],["HVH","Hoek Van Holland"],["DVN","Davenport"],["LWH","Lawrence Hill"],["WCK","Wick"],["BMB","Bamber Bridge"],["DRI","Drigg"],["TWN","Town Green"],["CHE","Cheam"],["SAX","Saxmundham"],["MAG","Maghull"],["SBE","Starbeck"],["MCN","Machynlleth"],["CBC","Coatbridge Central"],["BYL","Barry Links"],["BEM","Bempton"],["SFR","Shalford"],["BIC","Billericay"],["BTR","Braintree"],["ISL","Isleworth"],["HLN","Harlington"],["SSM","Stocksmoor"],["GMN","Great Missenden"],["KNE","Kennett"],["POO","Poole"],["RNR","Roughton Road"],["ILK","Ilkley"],["PMH","Portsmouth Harbour"],["RDA","Redland"],["FRS","Forsinard"],["HRN","Hornsey"],["SLY","Selly Oak"],["OXT","Oxted"],["CBS","Coatbridge Sunnyside"],["WMD","Wymondham"],["TEY","Teynham"],["BAV","Barrow Haven"],["BYE","Bynea"],["WKB","West Kilbride"],["BCU","Brockenhurst"],["AMT","Aldermaston"],["LGB","Langbank"],["MRF","Moorfields"],["PMH","Portsmouth Harbour"],["ROO","Roose"],["KIL","Kildonan"],["BHC","Balloch"],["WIV","Wivenhoe"],["BTT","Battersby"],["CCT","Cathcart"],["HRL","Harlech"],["RGW","Ramsgreave & Wilpshire"],["WVF","Wivelsfield"],["SAJ","St Johns"],["WDH","Woodhouse"],["FOG","Forest Gate"],["HTF","Hartford"],["WNW","West Norwood"],["CSG","Cressington"],["SHU","Stonehouse"],["WDN","Walsden"],["SAC","St Albans"],["WFF","Whifflet"],["HOW","Howden"],["MLY","Morley"],["ASG","Alsager"],["LOB","Longbridge"],["WOM","Wombwell"],["MSH","Mossley Hill"],["ECP","Energlyn & Churchill Park"],["EPH","Elephant & Castle"],["RDW","Reading West"],["EKB","Eskbank"],["BRU","Bruton"],["CME","Combe"],["MIH","Mills Hill"],["PPD","Pontypridd"],["SAD","Sandwell & Dudley"],["KGT","Kilgetty"],["BRI","Bristol Temple Meads"],["HOC","Hockley"],["LBR","Llanbedr"],["NSG","New Southgate"],["DGC","Denham Golf Club"],["PNM","Penmere"],["MHS","Meadowhall"],["PSL","Port Sunlight"],["DWW","Dawlish Warren"],["RTN","Renton"],["BUJ","Burton Joyce"],["HUR","Hurst Green"],["BDK","Baldock"],["LNY","Langley"],["BSH","Bushey"],["DOW","Downham Market"],["KIN","Kingussie"],["BLO","Blaydon"],["DVY","Dovey Junction"],["BWS","Barrow Upon Soar"],["SGL","South Gyle"],["WHT","Whitchurch (Glamorgan)"],["ACB","Acton Bridge"],["ZHA","Hammersmith Underground"],["WRB","Wrabness"],["NQU","North Queensferry"],["TYC","Ty Croes"],["ANC","Ancaster"],["NBN","New Brighton"],["HEC","Heckington"],["QUI","Quintrell Downs"],["WCX","Wembley Stadium"],["LWT","Lowestoft"],["RAN","Rannoch"],["THU","Thurgarton"],["CSK","Calstock"],["MER","Merthyr Tydfil"],["NEI","Neilston"],["CBD","Conon Bridge"],["DNO","Dunrobin Castle"],["HUD","Huddersfield"],["SKW","Stoke Newington"],["ARG","Arisaig"],["CNW","Conwy"],["MNN","Menston"],["PLE","Pollokshields East"],["LLO","Llandrindod"],["LAU","Laurencekirk"],["MSL","Mossley"],["SIE","Sherburn-in-Elmet"],["CBH","Cambridge Heath"],["KBN","Kilburn High Road"],["SID","Sidcup"],["FEL","Feltham"],["CCC","Criccieth"],["STO","South Tottenham"],["WOO","Wool"],["GRK","Gourock"],["LLI","Llandybie"],["AXM","Axminster"],["WGV","Wargrave"],["HSD","Hamstead"],["PLW","Pollokshields West"],["BRK","Berwick (Sussex)"],["CTW","Church & Oswaldtwistle"],["XIB","Bourg St Maurice"],["SKI","Skipton"],["BDM","Bedford"],["PLM","Plumley"],["YVJ","Yeovil Junction"],["DEN","Dean"],["DAM","Dalmeny"],["WGN","Wigan North Western"],["WRE","Wrenbury"],["RYN","Roydon"],["YVJ","Yeovil Junction"],["ABH","Abererch"],["UNI","University"],["AMY","Amberley"],["CSB","Carshalton Beeches"],["EFF","Effingham Junction"],["SVK","Seven Kings"],["DEA","Deal"],["WNP","Wanstead Park"],["ALK","Aslockton"],["ULV","Ulverston"],["LIV","Liverpool Lime Street"],["ABC","Altnabreac"],["LAP","Lapford"],["NIT","Nitshill"],["RAM","Ramsgate"],["KNO","Knottingley"],["LIV","Liverpool Lime Street"],["CSH","Carshalton"],["BFE","Bere Ferrers"],["AVY","Aberdovey"],["CBK","Cranbrook (Devon)"],["WLN","Wellington (Shropshire)"],["CGN","Cogan"],["ASC","Ashchurch for Tewkesbury"],["AVF","Avoncliff"],["CBP","Castle Bar Park"],["GSL","Gunnislake"],["HMC","Hampton Court"],["PLY","Plymouth"],["CLA","Clandon"],["CNE","Colne"],["NXG","New Cross Gate"],["CIL","Chilham"],["FLI","Flixton"],["NWX","New Cross"],["BMY","Bramley (Hampshire)"],["CWS","Caersws"],["BHO","Blackhorse Road"],["CFT","Crofton Park"],["GLS","Glaisdale"],["WMI","Wildmill"],["AST","Aston"],["CDT","Caldicot"],["ESD","Elmstead Woods"],["KLN","Kings Lynn"],["SLQ","St Leonards Warrior Square"],["PNC","Penychain"],["BUB","Burnley Barracks"],["BNC","Burnley Central"],["AXM","Axminster"],["AXM","Axminster"],["BGS","Bogston"],["BAC","Bache"],["HWW","How Wood"],["BNG","Bangor (Gwynedd)"],["BRM","Barmouth"],["DNL","Dunlop"],["EML","East Malling"],["CMO","Camelon"],["EDY","East Didsbury"],["SPR","Springburn"],["ELE","Elmers End"],["WKI","West Kirby"],["LBZ","Leighton Buzzard"],["WES","Westerton"],["LYD","Lydney"],["PYT","Poynton"],["RCC","Redcar Central"],["CWE","Crowle"],["KNA","Knaresborough"],["RCE","Redcar East"],["BUH","Brough"],["DAN","Darnall"],["WNF","Winchfield"],["WKF","Wakefield Westgate"],["PWY","Patchway"],["DZY","Danzey"],["FLD","Fauldhouse"],["WPL","Worplesdon"],["BSL","Beasdale"],["KKD","Kirkdale"],["EAG","Eaglescliffe"],["CRM","Cramlington"],["SIH","St Helier"],["HBY","Hartlebury"],["COA","Coatdyke"],["CHW","Chalkwell"],["RYS","Royston"],["DVH","Dove Holes"],["HEV","Hever"],["SPA","Spalding"],["BOG","Bognor Regis"],["EUS","London Euston"],["FRL","Fairlie"],["EDB","Edinburgh"],["MRR","Morar"],["WSH","Wishaw"],["CPW","Chepstow"],["SUU","Sunbury"],["HAP","Hatfield Peverel"],["OUN","Oulton Broad North"],["MIC","Micheldever"],["WOF","Worcester Foregate Street"],["WRX","Wrexham General"],["OUS","Oulton Broad South"],["CAK","Cark"],["FRY","Ferriby"],["FOH","Forest Hill"],["STY","Stratford Parkway"],["OLF","Oldfield Park"],["WAL","Walton-on-Thames"],["PTT","Patterton"],["GLQ","Glasgow Queen Street"],["EBA","Euxton Balshaw Lane"],["HLM","Holmwood"],["FAV","Faversham"],["GOL","Golspie"],["KKH","Kirkhill"],["WSR","Woodsmoor"],["CNL","Canley"],["SPT","Stockport"],["WBD","Whitley Bridge"],["HIA","Hampton-in-Arden"],["BLV","Belle Vue"],["DMK","Denmark Hill"],["DWL","Dawlish"],["FLF","Flowery Field"],["DGY","Deganwy"],["SYS","Syston"],["KKN","Kirknewton"],["WBO","Wimbledon Chase"],["ALB","Albrighton"],["BEP","Bermuda Park (Nuneaton)"],["BFN","Byfleet & New Haw"],["SKM","Stoke Mandeville"],["NEM","New Malden"],["SER","St Erth"],["GNL","Green Lane"],["HEI","Heighington"],["OMS","Ormskirk"],["HBN","Hollingbourne"],["COL","Colchester"],["MES","Melton"],["AHV","Ash Vale"],["KRK","Kirkconnel"],["BYN","Bryn"],["CWC","Chappel & Wakes Colne"],["BIK","Birkbeck"],["SWM","Swanscombe"],["AUD","Audley End"],["BRE","Brentwood"],["YOK","Yoker"],["AHS","Ashurst"],["GSW","Garswood"],["SHU","Stonehouse"],["SNR","Sanderstead"],["BRC","Breich"],["HDM","Haddenham & Thame Parkway"],["BAH","Bank Hall"],["PRR","Princes Risborough"],["SYA","Styal"],["GPO","Gospel Oak"],["SLV","Silver Street"],["FZP","Furze Platt"],["MFA","Morfa Mawddach"],["DLG","Dolgarrog"],["CWB","Colwyn Bay"],["HVN","Havenhouse"],["LUT","Luton"],["GIG","Giggleswick"],["KGP","Kings Park"],["RYH","Rye House"],["GOR","Goring & Streatley"],["HFD","Hereford"],["BIG","Billingshurst"],["STJ","Severn Tunnel Junction"],["SAU","St Austell"],["WHS","Whyteleafe South"],["WST","Wood Street"],["LED","Ledbury"],["MRF","Moorfields"],["OLF","Oldfield Park"],["ATN","Atherton"],["BRS","Berrylands"],["WSB","Westbury"],["CYS","Cathays"],["CWD","Creswell"],["LOS","Lostwithiel"],["BHS","Brockholes"],["THT","Thorntonhall"],["DRG","Drayton Green"],["ANS","Ainsdale"],["DYP","Drayton Park"],["KLY","Kenley"],["LEH","Lea Hall"],["LPR","Long Preston"],["SVS","Seven Sisters"],["WWW","Wootton Wawen"],["SHI","Shiplake"],["WML","Wilmslow"],["EDL","Edale"],["FLX","Felixstowe"],["NBR","Narborough"],["PFY","Poulton-le-Fylde"],["PRP","Preston Park"],["COE","Coombe Junction Halt"],["SST","Stansted Mountfitchet"],["WLD","West St Leonards"],["PMW","Penmaenmawr"],["YEO","Yeoford"],["YVP","Yeovil Pen Mill"],["GRF","Garforth"],["MON","Monifieth"],["NOR","Normanton"],["COM","Commondale"],["ZFD","Farringdon Underground"],["ORR","Orrell"],["LOW","Lowdham"],["YVP","Yeovil Pen Mill"],["HWF","Heathrow Airport T4 (Bus)"],["LPG","Llanfairpwll"],["LWR","Llanrwst"],["CRN","Crowthorne"],["JCH","James Cook"],["LLS","Llanishen"],["NCE","New Clee"],["RAY","Raynes Park"],["SAW","Sawbridgeworth"],["WLO","Waterloo (Merseyside)"],["ROE","Rotherhithe"],["HNB","Herne Bay"],["SHY","Shipley"],["MTA","Mountain Ash"],["SJP","St James' Park"],["LYC","Lympstone Commando"],["NWM","New Milton"],["WIJ","Willesden Junction"],["FLT","Flitwick"],["BRA","Brora"],["HYN","Hyndland"],["RUF","Rufford"],["PTA","Port Talbot Parkway"],["SMH","Stamford Hill"],["GVE","Garve"],["HTE","Hatch End"],["WSE","Winchelsea"],["DLT","Dalton"],["SPY","Shepley"],["CFL","Crossflatts"],["LIH","Leigh (Kent)"],["LYM","Lympstone Village"],["SOL","Solihull"],["CTH","Chadwell Heath"],["FOK","Four Oaks"],["TRI","Tring"],["BLB","Battlesbridge"],["FAL","Falmouth Docks"],["HPL","Hartlepool"],["OXN","Oxenholme Lake District"],["OTF","Otford"],["OUT","Outwood"],["WLE","Whittlesea"],["SBV","St Budeaux Victoria Road"],["HHY","Highbury & Islington"],["CKS","Clarkston"],["EDN","Eden Park"],["SDP","Sandplace"],["AFK","Ashford International"],["DLM","Delamere"],["HHY","Highbury & Islington"],["INK","Inverkeithing"],["SAA","St Albans Abbey"],["HLB","Hildenborough"],["KTH","Kent House"],["BUL","Butlers Lane"],["AML","Acton Main Line"],["FMT","Falmouth Town"],["BAM","Bamford"],["FFD","Freshford"],["WAT","London Waterloo"],["SHN","Shanklin"],["CKT","Crookston"],["BKL","Bickley"],["DND","Dinsdale"],["NCL","Newcastle"],["WLV","Wallasey Village"],["THS","Thurso"],["ZBS","Baker Street Underground"],["WAE","London Waterloo East"],["TIS","Tisbury"],["BXS","Brussels Midi"],["LEA","Leagrave"],["BAB","Balcombe"],["NCZ","Newcastle Central Metro"],["ASH","Ash"],["RDB","Redbridge"],["BBK","Bilbrook"],["BUW","Burley-in-Wharfedale"],["GBD","Gilberdyke"],["NSB","Normans Bay"],["RGT","Rugeley Town"],["SEH","Shoreham (Kent)"],["BSH","Bushey"],["ELG","Elgin"],["FTN","Fratton"],["EBN","Eastbourne"],["FTM","Fort Matilda"],["MBK","Millbrook (Hampshire)"],["POT","Pontefract Tanshelf"],["WGW","Wigan Wallgate"],["SUO","Sutton (Surrey)"],["AYS","Aylesbury"],["LVM","Levenshulme"],["WAD","Wadhurst"],["PGN","Paignton"],["BOC","Bootle"],["BUG","Burgess Hill"],["AHD","Ashtead"],["OKL","Oakleigh Park"],["LTT","Little Sutton"],["BAU","Barton-on-Humber"],["GWE","Gwersyllt"],["PMH","Portsmouth Harbour"],["SBU","Southbury"],["CDF","Cardiff Central"],["DTW","Droitwich Spa"],["FST","London Fenchurch Street"],["CEY","Cononley"],["HML","Hemel Hempstead"],["OKN","Oakengates"],["CGD","Craigendoran"],["PEM","Pemberton"],["NHL","New Holland"],["SNP","Stanhope"],["EST","Easterhouse"],["GRA","Grantham"],["TAP","Taplow"],["SUC","Sutton Common"],["GNH","Greenhithe for Bluewater"],["NCT","Newark Castle"],["BTD","Bolton-on-Dearne"],["HNC","Hamilton Central"],["ECL","Eccleston Park"],["OLY","Ockley"],["PLD","Portslade"],["BBG","Bishopbriggs"],["COP","Copplestone"],["SDB","Sandbach"],["COV","Coventry"],["EXD","Exeter St Davids"],["LTH","Llanhilleth"],["SQH","Sanquhar"],["ERA","Eastham Rake"],["BSK","Basingstoke"],["MIR","Mirfield"],["PFM","Pontefract Monkhill"],["GUN","Gunnersbury"],["WLG","Wallasey Grove Road"],["PBO","Peterborough"],["PLU","Plumstead"],["CDQ","Cardiff Queen Street"],["BXB","Broxbourne"],["HNW","Hamilton West"],["EXT","Exeter St Thomas"],["WLT","Wallington"],["HNX","Hunts Cross"],["HMP","Hampton"],["ALF","Alfreton"],["BAA","Barnham"],["SEA","Seaham"],["WBY","West Byfleet"],["BGL","Bugle"],["WRK","Worksop"],["WWI","West Wickham"],["FGT","Faygate"],["STW","Strawberry Hill"],["NFL","Northfleet"],["BUE","Bures"],["NMP","Northampton"],["CBL","Cambuslang"],["GFN","Giffnock"],["INV","Inverness"],["WGR","Woodgrange Park"],["STS","Saltash"],["STP","London St Pancras (Intl)"],["SUN","Sunderland"],["SDF","Saundersfoot"],["FNV","Furness Vale"],["YAE","Yate"],["MCV","Manchester Victoria"],["RED","Redruth"],["SNG","Sunningdale"],["PDG","Padgate"],["HTR","Heathrow Central Bus Stn"],["BHI","Birmingham International"],["CWH","Crews Hill"],["NTA","Newton Abbot"],["SFA","Stratford International"],["WOH","Woldingham"],["SXY","Saxilby"],["GKC","Greenock Central"],["PTC","Portchester"],["GLD","Guildford"],["BNF","Briton Ferry"],["DAG","Dalgety Bay"],["SOO","Strood"],["DLS","Dalston"],["LFD","Lingfield"],["BBN","Blackburn"],["CGM","Cottingham"],["RVB","Ravensbourne"],["AIR","Airbles"],["BRR","Barrhead"],["CLH","Clitheroe"],["MRM","Manors (T & W Metro)"],["GMT","Grosmont"],["DHM","Durham"],["PAR","Par"],["IVY","Ivybridge"],["LVN","Littlehaven"],["GKW","Greenock West"],["HNK","Hinckley"],["KMK","Kilmarnock"],["RMD","Richmond"],["SIC","Silecroft"],["HAD","Haddiscoe"],["DNM","Denham"],["OXS","Oxshott"],["SLB","Saltburn"],["DNT","Dent"],["WHY","Whyteleafe"],["CRG","Cross Gates"],["LCG","Lochgelly"],["BHG","Bathgate"],["TNF","Tonfanau"],["MAL","Malden Manor"],["NUT","Nutbourne"],["NWX","New Cross"],["TON","Tonbridge"],["TRO","Trowbridge"],["WKG","Workington"],["BSI","Balmossie"],["SMK","Stowmarket"],["LGD","Lingwood"],["FBY","Formby"],["NNP","Ninian Park"],["ADM","Adisham"],["GRL","Greenfaulds"],["RLN","Rowlands Castle"],["AMF","Ammanford"],["KMP","Kempton Park"],["SNL","Stoneleigh"],["BWB","Bow Brickhill"],["ABY","Ashburys"],["BRY","Barry"],["MYL","Maryland"],["BBL","Bat & Ball"],["PUT","Putney"],["CAA","Coventry Arena"],["HMD","Hampden Park"],["GYP","Gypsy Lane"],["CMY","Crossmyloof"],["DUL","Dullingham"],["WNM","Weston Milton"],["AFV","Ansdell & Fairhaven"],["SYH","Sydenham Hill"],["GTW","Gatwick Airport"],["HYK","Hoylake"],["MIS","Mistley"],["PPK","Possilpark & Parkhouse"],["WYM","Wylam"],["MLM","Millom"],["WAV","Wavertree Tech Park"],["LAM","Lamphey"],["CCH","Chichester"],["MLT","Malton"],["SGM","St Germans"],["WND","Wendover"],["HAF","Heathrow Airport T4"],["THE","Theale"],["ADL","Adlington (Lancashire)"],["HWV","Heathrow Airport T5"],["PLK","Plockton"],["HWC","Harwich Town"],["CWU","Crowhurst"],["CHK","Chiswick"],["HEN","Hendon"],["DRU","Drumgelloch"],["HAB","Habrough"],["LVT","Lisvane & Thornhill"],["TOK","Three Oaks"],["SVR","Silverdale"],["HEL","Hensall"],["SON","Steeton & Silsden"],["WIC","Wickford"],["NAN","Nantwich"],["LUD","Ludlow"],["AFS","Ashford (Surrey)"],["SGH","South Gosforth (T & W Metro)"],["WYL","Wylde Green"],["RDH","Redhill"],["RNM","Rainham (Essex)"],["MIF","Millfield (T & W Metro)"],["WIN","Winchester"],["LLR","Llanharan"],["NET","Netherfield"],["BSN","Boston"],["GRN","Grindleford"],["APB","Appley Bridge"],["PYN","Penryn"],["SRR","Sarn"],["BND","Brandon"],["DLW","Dalwhinnie"],["BIB","Bishops Lydeard"],["CUX","Cuxton"],["PRS","Prees"],["CLC","Castle Cary"],["SCF","Stechford"],["CLD","Chelsfield"],["RIL","Rice Lane"],["TBY","Thornaby"],["LPY","Liverpool South Parkway"],["CRV","Craven Arms"],["WMA","West Malling"],["DTN","Denton"],["DOC","Dockyard"],["DCH","Dorchester South"],["NXG","New Cross Gate"],["CDS","Coulsdon South"],["LLF","Llanfairfechan"],["SLL","Stallingborough"],["CDO","Cardonald"],["HAT","Hatfield"],["RDN","Reddish North"],["WOS","Worcester Shrub Hill"],["HAV","Havant"],["SNA","Sandal & Agbrigg"],["MIM","Moreton-in-Marsh"],["ART","Arrochar & Tarbet"],["OBN","Oban"],["RDS","Reddish South"],["TOO","Tooting"],["WMC","Wilmcote"],["SIA","Southend Airport"],["EBT","Edenbridge Town"],["PLG","Polegate"],["BSW","Birmingham Snow Hill"],["GRB","Great Bentley"],["HHB","Heysham Port"],["SNK","Sankey for Penketh"],["BXD","Buxted"],["ASK","Askam"],["CFB","Catford Bridge"],["GMG","Garth (Mid Glamorgan)"],["NCM","North Camp"],["APF","Appleford"],["EWR","East Worthing"],["WON","Walton-on-the-Naze"],["ROW","Rowley Regis"],["WSU","West Sutton"],["BGG","Brigg"],["EBD","Ebbsfleet International"],["ZEL","Elephant & Castle Underground"],["PHR","Penshurst"],["MRB","Manorbier"],["SPH","Shepherds Well"],["STD","Stroud"],["TGS","Ty Glas"],["BCF","Beaconsfield"],["HDF","Hadfield"],["CDD","Cardenden"],["LTL","Littleborough"],["CHR","Christchurch"],["MFT","Mansfield"],["PWE","Pollokshaws East"],["LPW","Lapworth"],["BNE","Bourne End"],["CRA","Cradley Heath"],["CHO","Cholsey"],["WRM","Wareham"],["CSR","Chassen Road"],["SEN","Shenstone"],["BOE","Botley"],["ANG","Angmering"],["DVC","Dovercourt"],["PMG","Porthmadog Harbour (Bus)"],["ORN","Old Roan"],["NGT","Newington"],["KNI","Knighton"],["GVH","Gravelly Hill"],["OXF","Oxford"],["CKY","Crosskeys"],["BLL","Bardon Mill"],["FGH","Fishguard Harbour"],["LYE","Lye"],["CLR","Clarbeston Road"],["HBD","Hebden Bridge"],["IGD","Invergordon"],["YNW","Ynyswen"],["PWW","Pollokshaws West"],["RMB","Roman Bridge"],["GRT","Grateley"],["AGT","Aldrington"],["CED","Cheddington"],["RVN","Ravensthorpe"],["KEN","Kendal"],["MAR","Margate"],["PSE","Pitsea"],["CTK","City Thameslink"],["BAT","Battle"],["HEV","Hever"],["WAS","Watton-at-Stone"],["CLY","Chinley"],["HES","Hessle"],["UPH","Upper Halliford"],["WNS","Winnersh"],["AON","Alton"],["LGK","Longbeck"],["SHC","Streethouse"],["EMS","Emsworth"],["SYH","Sydenham Hill"],["BAK","Battersea Park"],["GLQ","Glasgow Queen Street"],["BKJ","Beckenham Junction"],["UMB","Umberleigh"],["CMN","Carmarthen"],["SHH","Shirehampton"],["MAX","Maxwell Park"],["HGY","Harringay"],["AVF","Avoncliff"],["BYK","Bentley (South Yorkshire)"],["GER","Gerrards Cross"],["HLR","Hall Road"],["HNF","Hednesford"],["FRD","Frodsham"],["KNR","Kensal Rise"],["BCC","Beccles"],["HGN","Hough Green"],["BKW","Berkswell"],["EBR","Edenbridge"],["BKT","Blake Street"],["CEH","Coleshill Parkway"],["LEN","Lenham"],["BEC","Beckenham Hill"],["FNY","Finchley Road & Frognal"],["LTM","Lytham"],["BKJ","Beckenham Junction"],["KDG","Kidsgrove"],["IGD","Invergordon"],["CPH","Caerphilly"],["APS","Apsley"],["HTY","Hattersley"],["SAL","Salisbury"],["BNW","Bootle New Strand"],["SOB","Southbourne"],["BTH","Bath Spa"],["DFE","Dunfermline Town"],["SLS","Shettleston"],["ELY","Ely"],["BMF","Broomfleet"],["NVH","Newhaven Harbour"],["LCL","Lochailort"],["PMD","Pembroke Dock"],["WAR","Ware"],["BFD","Brentford"],["GLZ","Glazebrook"],["HSY","Horsley"],["SPI","Spital"],["SHZ","South Hylton (T & W Metro)"],["MOO","Muir of Ord"],["NHD","Nunhead"],["BKR","Blackridge"],["IRL","Irlam"],["NVN","Newhaven Town"],["WRN","West Runton"],["HDB","Haydon Bridge"],["EAD","Earlsfield"],["RDM","Riding Mill"],["WMR","Widney Manor"],["BPK","Brookmans Park"],["WLF","Whittlesford Parkway"],["GDN","Godstone"],["TFC","Telford Central"],["SHE","Sherborne"],["GNB","Gainsborough Central"],["BOT","Bootle Oriel Road"],["EGR","East Grinstead"],["LNK","Lanark"],["NEG","Newtongrange"],["SAL","Salisbury"],["CFR","Chandlers Ford"],["LGM","Langley Mill"],["GSD","Garsdale"],["LAG","Langwith-Whaley Thorns"],["BNL","Barnhill"],["IVR","Iver"],["CNY","Cantley"],["HGS","Hastings"],["BEY","Ben Rhydding"],["BMD","Brimsdown"],["ARB","Arbroath"],["BLN","Blundellsands & Crosby"],["MSS","Moses Gate"],["DST","Duke Street"],["HYW","Hinchley Wood"],["AYR","Ayr"],["SRO","Shireoaks"],["CAR","Carlisle"],["DSY","Daisy Hill"],["RGL","Rugeley Trent Valley"],["GFF","Gilfach Fargoed"],["WAF","Wallyford"],["INR","Inverurie"],["SBK","South Bank"],["ELO","Elton & Orston"],["SPB","Shepherds Bush"],["STE","Streatham"],["CYB","Cefn-y-Bedd"],["HDY","Headingley"],["HCT","Huncoat"],["DYC","Dyce"],["HYD","Heyford"],["PRH","Penrhyndeudraeth"],["SET","Settle"],["WFH","Watford High Street"],["DLR","Dalreoch"],["BKD","Blakedown"],["PTM","Porthmadog"],["ORP","Orpington"],["GBL","Gainsborough Lea Road"],["SCU","Scunthorpe"],["PTH","Perth"],["TAM","Tamworth"],["TRB","Treherbert"],["BXY","Bexley"],["TRY","Treorchy"],["HRS","Horsforth"],["SHV","Southsea Hoverport (Bus)"],["SUM","Summerston"],["WFJ","Watford Junction"],["FYS","Ferryside"],["NUM","Northumberland Park"],["SVL","Staveley"],["CYK","Clydebank"],["HDN","Harlesden"],["PLS","Pleasington"],["TLC","Tal-y-Cafn"],["WAM","Walmer"],["BMG","Barming"],["IFD","Ilford"],["GTA","Great Ayton"],["NBC","New Beckenham"],["LUD","Ludlow"],["FNR","Farningham Road"],["CFN","Clifton Down"],["HAC","Hackney Downs"],["PGM","Pengam"],["RLG","Rayleigh"],["BKG","Barking"],["BLM","Belmont"],["NTC","Newton St Cyres"],["RYE","Rye"],["DBG","Mottisfont & Dunbridge"],["NWI","Northwich"],["PSC","Prescot"],["DKD","Dunkeld & Birnam"],["AGL","Abergele & Pensarn"],["CRF","Carfin"],["SOM","South Milford"],["CRY","Crayford"],["LIU","Lille Europe"],["GLF","Glenfinnan"],["SWI","Swindon"],["SCR","St Columb Road"],["TEO","Theobalds Grove"],["BHM","Birmingham New Street"],["BML","Bramhall"],["WIJ","Willesden Junction"],["COS","Cosford"],["ACG","Acocks Green"],["DVP","Dover Priory"],["MOG","Moorgate"],["ROS","Rosyth"],["WAO","Walton (Merseyside)"],["GNH","Greenhithe for Bluewater"],["RWC","Rawcliffe"],["LES","Leigh-on-Sea"],["HLI","Healing"],["WEY","Weymouth"],["AFK","Ashford International"],["HON","Honiton"],["RCA","Risca & Pontymister"],["BIY","Bingley"],["FOR","Forres"],["KLM","Kilmaurs"],["BOR","Bodorgan"],["BSS","Barassie"],["PUR","Purley"],["MAC","Macclesfield"],["RBR","Robertsbridge"],["HHE","Haywards Heath"],["ALN","Althorne"],["GBK","Greenbank"],["BMV","Bromsgrove"],["GTO","Gorton"],["PMB","Pembroke"],["SKE","Skewen"],["CAU","Causeland"],["PEN","Penarth"],["UPT","Upton"],["BMN","Bromley North"],["ZTH","Tower Hill Underground"],["KYL","Kyle of Lochalsh"],["TTN","Totton"],["HWF","Heathrow Airport T4 (Bus)"],["BMS","Bromley South"],["ASS","Alness"],["SSS","Sheerness-on-Sea"],["CAG","Carrbridge"],["GTH","Garth (Powys)"],["LOF","London Fields"],["BIS","Bishops Stortford"],["BRW","Brunswick"],["CHH","Christs Hospital"],["HHD","Holyhead"],["MFL","Mount Florida"],["DAK","Dalmarnock"],["WSW","Wandsworth Common"],["MDN","Maiden Newton"],["DFL","Dunfermline Queen Margaret"],["IRV","Irvine"],["WHN","Whiston"],["SBS","St Bees"],["PKG","Penkridge"],["SOU","Southampton Central"],["COY","Coryton"],["GGJ","Georgemas Junction"],["SLR","Sleaford"],["DKT","Dorking West"],["SQU","Squires Gate"],["CMD","Camden Road"],["BSO","Basildon"],["CBR","Cooksbridge"],["BYM","Burnley Manchester Road"],["MLF","Milford (Surrey)"],["RYR","Ryde St Johns Road"],["TEY","Teynham"],["TOT","Totnes"],["FRF","Fairfield"],["PUO","Purley Oaks"],["GNF","Greenfield"],["GRY","Grays"],["BGH","Brighouse"],["FKG","Falkirk Grahamston"],["HKH","Hawkhead"],["PYP","Pont-y-Pant"],["FKK","Falkirk High"],["SOV","Southend Victoria"],["MEY","Merryton"]]);var Fe={findStation:function(e){const t=e.toUpperCase(),n=Ge.get(t);return console.log(n),n},searchStation:function(e){const t=[],n=e.length<=3,r=e.length>=3,o=new RegExp(`(${e})`,"gi");return Ge.forEach((e,a)=>{let i;n&&o.test(a)&&(i=[a,e]),void 0===i&&r&&o.test(e)&&(i=[a,e]),"object"==typeof i&&t.push(i)}),t.slice(0,5)}};let Ie={};Ie=function(){try{return!!localStorage}catch(e){return!1}}()?{save:function(e,t){localStorage[e]=t},load:function(e){return localStorage[e]},exists:function(e){return!(void 0===localStorage[e])}}:{save:function(e,t){document.cookie=`${e}=${encodeURIComponent(t)}`},load:function(e){var t=`; ${document.cookie};`,n=t.indexOf(`; ${e}=`);if(n<0)return"";n=n+e.length+3;var r=t.indexOf(";",n+1);return decodeURIComponent(t.substring(n,r))}};var Oe={partOfDay:function(e,t){console.log(new Date),null==e&&(e=(new Date).getHours().toString()),void 0===t&&(t=!1);const n=e.substring(0,2);let r="";return console.log("Hours",n),r=n>=0&&n<4?"Late Night":n>=4&&n<7?"Early Morning":n>=7&&n<12?"Morning":n>=12&&n<17?"Afternoon":n<21?"Evening":"Night",t&&(r="night"===r?"tonight":"this "+r),console.log("partOfDay",r),r},toHour:function(e=0){return 36e5-(new Date).getTime()%36e5+e},hourFloor:function(){const e=new Date;return parseInt(36e5*~~(e.getTime()/36e5),10).toString(32)},distance:function(e,t,n,r){const o=.017453292519943295,a=Math.cos,i=.5-a((n-e)*o)/2+a(e*o)*a(n*o)*(1-a((r-t)*o))/2;return 12742*Math.asin(Math.sqrt(i))},maybePluralize:(e,t,n="s")=>`${e} ${t}${1!==e?n:""}`,minuteFloor:function(){const e=new Date;return parseInt(6e4*~~(e.getTime()/6e4),10).toString(32)},debounce:function(e,t){let n;return function(...r){clearTimeout(n),n=setTimeout(()=>e.apply(this,r),t)}},throttle:function(e,t){var n=!1;return function(){n||(e.apply(null,arguments),n=!0,setTimeout((function(){n=!1}),t))}},once:function(e){var t,n=!1;return function(){return n||(t=e.apply(this,arguments),n=!0),t}},isEmpty:function(e){for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},LocalStorage:Ie},Ke=function e(t){function n(e,t,r){var o,a={};if(Array.isArray(e))return e.concat(t);for(o in e)a[r?o.toLowerCase():o]=e[o];for(o in t){var i=r?o.toLowerCase():o,l=t[o];a[i]=i in a&&"object"==typeof l?n(a[i],l,"headers"===i):l}return a}function r(e,r,o,a){"string"!=typeof e&&(e=(r=e).url);var i={config:r},l=n(t,r),s={},c=a||l.data;(l.transformRequest||[]).map((function(e){c=e(c,l.headers)||c})),c&&"object"==typeof c&&"function"!=typeof c.append&&(c=JSON.stringify(c),s["content-type"]="application/json");var u=document.cookie.match(RegExp("(^|; )"+l.xsrfCookieName+"=([^;]*)"));if(u&&(s[l.xsrfHeaderName]=u[2]),l.auth&&(s.authorization=l.auth),l.baseURL&&(e=new URL(e,l.baseURL)+""),l.params){var d=~e.indexOf("?")?"&":"?";e+=d+(l.paramsSerializer?l.paramsSerializer(l.params):new URLSearchParams(l.params))}return(l.fetch||fetch)(e,{method:o||l.method,body:c,headers:n(l.headers,s,!0),credentials:l.withCredentials?"include":void 0}).then((function(e){for(var t in e)"function"!=typeof e[t]&&(i[t]=e[t]);return(l.validateStatus?l.validateStatus(e.status):e.ok)?"stream"==l.responseType?(i.data=e.body,i):e[l.responseType||"text"]().then((function(e){i.data=e,i.data=JSON.parse(e)})).catch(Object).then((function(){return i})):Promise.reject(i)}))}return t=t||{},r.request=r,r.get=function(e,t){return r(e,t,"get")},r.delete=function(e,t){return r(e,t,"delete")},r.options=function(e,t){return r(e,t,"options")},r.post=function(e,t,n){return r(e,n,"post",t)},r.put=function(e,t,n){return r(e,n,"put",t)},r.patch=function(e,t,n){return r(e,n,"patch",t)},r.all=Promise.all,r.spread=function(e){return function(t){return e.apply(this,t)}},r.CancelToken="function"==typeof AbortController?AbortController:Object,r.defaults=t,r.create=e,r}(),xe="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Ye(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var $e,_e,Ue=(function(e,t){ /*! localForage -- Offline Storage, Improved Version 1.9.0 https://localforage.github.io/localForage (c) 2013-2017 Mozilla, Apache License 2.0 */ -e.exports=function e(t,n,r){function o(i,l){if(!n[i]){if(!t[i]){if(!l&&xe)return xe();if(a)return a(i,!0);var s=new Error("Cannot find module '"+i+"'");throw s.code="MODULE_NOT_FOUND",s}var c=n[i]={exports:{}};t[i][0].call(c.exports,(function(e){var n=t[i][1][e];return o(n||e)}),c,c.exports,e,t,n,r)}return n[i].exports}for(var a=xe,i=0;i=43)}})).catch((function(){return!1}))}function w(e){return"boolean"==typeof m?c.resolve(m):L(e).then((function(e){return m=e}))}function b(e){var t=g[e.name],n={};n.promise=new c((function(e,t){n.resolve=e,n.reject=t})),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then((function(){return n.promise})):t.dbReady=n.promise}function H(e){var t=g[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function W(e,t){var n=g[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function v(e,t){return new c((function(n,r){if(g[e.name]=g[e.name]||G(),e.db){if(!t)return n(e.db);b(e),e.db.close()}var o=[e.name];t&&o.push(e.version);var a=i.open.apply(i,o);t&&(a.onupgradeneeded=function(t){var n=a.result;try{n.createObjectStore(e.storeName),t.oldVersion<=1&&n.createObjectStore(S)}catch(n){if("ConstraintError"!==n.name)throw n;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){n(a.result),H(e)}}))}function T(e){return v(e,!1)}function N(e){return v(e,!0)}function R(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),r=e.versione.db.version;if(r&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||n){if(n){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function M(e){return new c((function(t,n){var r=new FileReader;r.onerror=n,r.onloadend=function(n){var r=btoa(n.target.result||"");t({__local_forage_encoded_blob:!0,data:r,type:e.type})},r.readAsBinaryString(e)}))}function P(e){return s([C(atob(e.data))],{type:e.type})}function A(e){return e&&e.__local_forage_encoded_blob}function D(e){var t=this,n=t._initReady().then((function(){var e=g[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return d(n,e,e),n}function E(e){b(e);for(var t=g[e.name],n=t.forages,r=0;r0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return c.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),N(e)})).then((function(){return E(e).then((function(){k(e,t,n,r-1)}))})).catch(n);n(o)}}function G(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function F(e){var t=this,n={db:null};if(e)for(var r in e)n[r]=e[r];var o=g[n.name];o||(o=G(),g[n.name]=o),o.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=D);var a=[];function i(){return c.resolve()}for(var l=0;l>4,u[s++]=(15&r)<<4|o>>2,u[s++]=(3&o)<<6|63&a;return c}function Se(e){var t,n=new Uint8Array(e),r="";for(t=0;t>2],r+=X[(3&n[t])<<4|n[t+1]>>4],r+=X[(15&n[t+1])<<2|n[t+2]>>6],r+=X[63&n[t+2]];return n.length%3==2?r=r.substring(0,r.length-1)+"=":n.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function me(e,t){var n="";if(e&&(n=he.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===he.call(e.buffer))){var r,o=Z;e instanceof ArrayBuffer?(r=e,o+=ee):(r=e.buffer,"[object Int8Array]"===n?o+=ne:"[object Uint8Array]"===n?o+=re:"[object Uint8ClampedArray]"===n?o+=oe:"[object Int16Array]"===n?o+=ae:"[object Uint16Array]"===n?o+=le:"[object Int32Array]"===n?o+=ie:"[object Uint32Array]"===n?o+=se:"[object Float32Array]"===n?o+=ce:"[object Float64Array]"===n?o+=ue:t(new Error("Failed to get type for BinaryArray"))),t(o+Se(r))}else if("[object Blob]"===n){var a=new FileReader;a.onload=function(){var n=Q+e.type+"~"+Se(this.result);t(Z+te+n)},a.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(n){console.error("Couldn't convert value into a JSON string: ",e),t(null,n)}}function ge(e){if(e.substring(0,q)!==Z)return JSON.parse(e);var t,n=e.substring(de),r=e.substring(q,de);if(r===te&&z.test(n)){var o=n.match(z);t=o[1],n=n.substring(o[0].length)}var a=fe(n);switch(r){case ee:return a;case te:return s([a],{type:t});case ne:return new Int8Array(a);case re:return new Uint8Array(a);case oe:return new Uint8ClampedArray(a);case ae:return new Int16Array(a);case le:return new Uint16Array(a);case ie:return new Int32Array(a);case se:return new Uint32Array(a);case ce:return new Float32Array(a);case ue:return new Float64Array(a);default:throw new Error("Unkown type: "+r)}}var ye={serialize:me,deserialize:ge,stringToBuffer:fe,bufferToString:Se};function Be(e,t,n,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function pe(e){var t=this,n={db:null};if(e)for(var r in e)n[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new c((function(e,r){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(e){return r(e)}n.db.transaction((function(o){Be(o,n,(function(){t._dbInfo=n,e()}),(function(e,t){r(t)}))}),r)}));return n.serializer=ye,o}function Ce(e,t,n,r,o,a){e.executeSql(n,r,o,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,l){l.rows.length?a(e,i):Be(e,t,(function(){e.executeSql(n,r,o,a)}),a)}),a):a(e,i)}),a)}function Le(e,t){var n=this;e=h(e);var r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,n){var r=n.rows.length?n.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return u(r,t),r}function we(e,t){var n=this,r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"SELECT * FROM "+o.storeName,[],(function(n,r){for(var a=r.rows,i=a.length,l=0;l0)return void a(be.apply(o,[e,l,n,r-1]));i(t)}}))}))})).catch(i)}));return u(a,n),a}function He(e,t,n){return be.apply(this,[e,t,n,1])}function We(e,t){var n=this;e=h(e);var r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){r(t)}))}))})).catch(r)}));return u(r,t),r}function ve(e){var t=this,n=new c((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Ce(t,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,t){n(t)}))}))})).catch(n)}));return u(n,e),n}function Te(e){var t=this,n=new c((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Ce(t,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(t,n){var r=n.rows.item(0).c;e(r)}),(function(e,t){n(t)}))}))})).catch(n)}));return u(n,e),n}function Ne(e,t){var n=this,r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,n){var r=n.rows.length?n.rows.item(0).key:null;t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return u(r,t),r}function Re(e){var t=this,n=new c((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Ce(t,r,"SELECT key FROM "+r.storeName,[],(function(t,n){for(var r=[],o=0;o '__WebKitDatabaseInfoTable__'",[],(function(n,r){for(var o=[],a=0;a0}function Fe(e){var t=this,n={};if(e)for(var r in e)n[r]=e[r];return n.keyPrefix=Ee(e,t._defaultConfig),Ge()?(t._dbInfo=n,n.serializer=ye,c.resolve()):c.reject()}function Ie(e){var t=this,n=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,n=localStorage.length-1;n>=0;n--){var r=localStorage.key(n);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return u(n,e),n}function Oe(e,t){var n=this;e=h(e);var r=n.ready().then((function(){var t=n._dbInfo,r=localStorage.getItem(t.keyPrefix+e);return r&&(r=t.serializer.deserialize(r)),r}));return u(r,t),r}function Ke(e,t){var n=this,r=n.ready().then((function(){for(var t=n._dbInfo,r=t.keyPrefix,o=r.length,a=localStorage.length,i=1,l=0;l=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}})):c.reject("Invalid arguments"),t),r}var Je={_driver:"localStorageWrapper",_initStorage:Fe,_support:De(),iterate:Ke,getItem:Oe,setItem:Ue,removeItem:_e,clear:Ie,length:Ye,key:xe,keys:$e,dropInstance:Ve},je=function(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)},Xe=function(e,t){for(var n=e.length,r=0;r> wsUrl",t),this.socket=null,this.timer=0,this.clock=null,this.connected=!1,this.connectBuffer=[],this.startWebSocket=function(){const e=""===n?t:`${t}:${n}`;console.log("Starting socket",e);const r=window.MozWebSocket?MozWebSocket:WebSocket;this.socket=new r(e,"stream"),this.socket.onopen=this.handleWebsocketOnOpen.bind(this),this.socket.onmessage=this.handleWebsocketMessage.bind(this),this.socket.onclose=this.handleWebsocketClose.bind(this),this.socket.onerror=function(e){console.error(e)}},this.subscribe=function(e){console.log("Subscribe::",e);const t={request:"SUBSCRIBE",message:"",channel:e};this.connected?this.socket.send(JSON.stringify(t)):this.connectBuffer.push(JSON.stringify(t))},this.send=function(e){console.log("Sending",e),this.socket.send(e)},this.handleData=function(t){e.trigger("message",t)},this.handleBuffer=function(){for(console.log("*** handleBuffer");this.connectBuffer.length>0;){const e=this.connectBuffer.shift();this.socket.send(e)}},this.handleWebsocketOnOpen=function(){this.retry=0,console.log("**** Websocket Connected ****"),this.clock=new Date,this.connected=!0,setTimeout(()=>{this.handleBuffer()},1500)},this.handleWebsocketMessage=function(e){let t;try{console.log("handleWebsocketMessage::raw",e),t=JSON.parse(e.data),console.log("handleWebsocketMessage::command",t)}catch(e){}t&&this.handleData.call(this,t)},this.handleWebsocketClose=function(){console.error("WebSocket Connection Closed.");console.log("Socket alive for",.001);const e=this;console.log("Waiting ",15e3),this.timer=setTimeout((function(){e.startWebSocket()}),15e3)},this.startWebSocket()},Ve=[{follow:!1,name:"nationalrailenq",id:33546465},{follow:!1,name:"networkrail",id:365344176},{follow:!1,name:"NetworkRailSCOT",id:402687948},{follow:!1,name:"AvantiWestCoast",id:0xfdebe737417a000},{follow:!1,name:"CalSleeper",id:2870293725},{follow:!1,name:"CrossCountryUK",id:153368708},{follow:!1,name:"Eurostar",id:98412169},{follow:!1,name:"EurostarUK",id:59742254},{follow:!1,name:"GatwickExpress",id:163816182},{follow:!1,name:"GlasgowSubway",id:224607925},{follow:!1,name:"GWRHelp",id:15589815},{follow:!1,name:"HeathrowExpress",id:20240678},{follow:!1,name:"LNER",id:313306238},{follow:!1,name:"LNRailway",id:0xca2b366c356b000},{follow:!1,name:"northernassist",id:194512268},{follow:!1,name:"ScotRail",id:61569136},{follow:!1,name:"Stansted_Exp",id:257511611},{follow:!1,name:"TfL",id:47319664},{follow:!1,name:"WestMidRailway",id:0xcb4b3f097575000},{follow:!1,name:"NetworkRailBHM",id:583910976},{follow:!1,name:"NetworkRailEDB",id:586614081},{follow:!1,name:"NetworkRailEUS",id:581807264},{follow:!1,name:"NetworkRailGLC",id:421061171},{follow:!1,name:"NetworkRailKGX",id:459192871},{follow:!1,name:"NetworkRailLST",id:581826097},{follow:!1,name:"NetworkRailMAN",id:583895871},{follow:!1,name:"NetworkRailVIC",id:587354752},{follow:!1,name:"BTP",id:266094415},{follow:!1,name:"BTPAvonSomerset",id:0xa40431bb2d69000},{follow:!1,name:"BTPBhm",id:952003488},{follow:!1,name:"BTPBlackCountry",id:0xaa76997f5562000},{follow:!1,name:"BTPCambs",id:2574726074},{follow:!1,name:"BTPCardiff_NWP",id:951714852},{follow:!1,name:"BTPEAnglia",id:4479942923},{follow:!1,name:"BTPEssex",id:2949032015},{follow:!1,name:"BTPGtrMcr",id:1670204977},{follow:!1,name:"BTPLeics",id:0xa9023573bd76000},{follow:!1,name:"BTPLiverpoolSt",id:951912242},{follow:!1,name:"BTPLondon",id:957226980},{follow:!1,name:"BTPLondonBridge",id:3346645594},{follow:!1,name:"BTPMersey",id:951748434},{follow:!1,name:"BTPNorthScot",id:2238888007},{follow:!1,name:"BTPNorthWales",id:951487338},{follow:!1,name:"BTPOxon",id:0xa495f93bb965000},{follow:!1,name:"BTPPontypridd",id:1672678292},{follow:!1,name:"BTPScotland",id:957256160},{follow:!1,name:"BTPSouthYorks",id:3384315676},{follow:!1,name:"BTPTeesValley",id:0xb21ed0d43964000},{follow:!1,name:"BTPUnderground",id:0xdafd09816950000},{follow:!1,name:"BTPWales",id:1430734374},{follow:!1,name:"BTPWaterloo",id:951997044},{follow:!1,name:"BTPWestScot",id:951757261}];let Je=location.port?":"+location.port:"",je=`${location.protocol}//${location.hostname}${Je}`,Xe=!1;const Qe={},ze={newTweets:pe([]),twitterFollowing:pe({}),twitterFollowingList:pe([]),tweetList:pe([]),tweets:pe([]),favourites:pe([]),routes:pe([]),routeIndex:pe(0),incrementRouteIndex(){this.routeIndex.update(e=>e+1)},async saveRoute(e){const t={...e};t.id=s(this.routeIndex),this.routes.update(e=>[...e,t]),this.incrementRouteIndex()},deleteRoute(e){const t=s(this.routes).slice(0,e),n=s(this.routes).slice(e+1);this.routes.set([...t,...n])},async getTweets(){const e=s(ze.twitterFollowingList).map(e=>e[1].id),t=je.concat("/twitter");Oe({method:"post",url:t,data:{list:e}}).then(e=>{const t=e.data;this.newTweets.set(t)}).catch(e=>{console.error("Store:getTweets",e)})},getTweetByID(e){return s(this.tweets).get(e)},getTwitterFollowing(){return s(this.twitterFollowing)},saveTwitterFollowing(e){this.twitterFollowing.set(e)},getBaseUrl:()=>je,updateTweetList(e){this.tweetList.update(t=>[e,...t])},updateTwitter(e){this.tweets.update(t=>t.set(e.id,e))},updateNewTweets(e){this.newTweets.update(t=>{let n=[...t];return n.unshift(e),n=n.slice(0,49),n})},trigger(e,t){if(console.log("trigger",t),t.hasOwnProperty("message")){const e=t.message;this.updateNewTweets(e)}}},Ze=new Ue(ze);function qe(t){let n,r,o,a,i,l,s,c,u,d,h,f,S,B;return{c(){n=p("div"),r=p("div"),o=p("div"),a=C(t[0]),i=L(),l=p("div"),s=C(t[1]),c=L(),u=p("div"),d=p("span"),h=C(t[2]),H(r,"class","entry col-8 ml--1 svelte-10t8pfm"),H(d,"class",f="btn "+t[3]+" svelte-10t8pfm"),H(u,"class","entry col-4 text-center svelte-10t8pfm"),H(n,"class","row TRcard svelte-10t8pfm")},m(e,f){g(e,n,f),m(n,r),m(r,o),m(o,a),m(r,i),m(r,l),m(l,s),m(n,c),m(n,u),m(u,d),m(d,h),S||(B=b(d,"click",t[4]),S=!0)},p(e,[t]){1&t&&W(a,e[0]),2&t&&W(s,e[1]),4&t&&W(h,e[2]),8&t&&f!==(f="btn "+e[3]+" svelte-10t8pfm")&&H(d,"class",f)},i:e,o:e,d(e){e&&y(n),S=!1,B()}}}function et(e,t,n){let r,o,a,i,l,s,{destStation:c}=t,{startStation:u}=t,d=ze.getBaseUrl(),h={eta:"OFF",sta:"OFF"},f=0,S=0;async function m(){console.log(`Update: ${u} / ${c}`);const e=new Date,t=e.getHours()<6?36e5:95e3,r=t-e.getTime()%t;S=e.getTime()+r,await async function(){const e=Ie.minuteFloor(),t=a.concat("&mh="+e);Oe.get(t).then(e=>{n(8,h={...e.data}),console.dir(h)}).catch(e=>{console.error("TrainRoute:getTrain",e)})}(),clearTimeout(f),f=0,f=setTimeout(m,r+10)}return k(async()=>{if(Ie.LocalStorage.exists(`${u}${c}`)){const e=JSON.parse(Ie.LocalStorage.load(`${u}${c}`));n(8,h={...h,...e.trainData}),S=e.due,n(0,r=e.startStationName),n(1,o=e.destStationName),a=e.url}else n(0,r=Ge.findStation(u)),n(1,o=Ge.findStation(c)),a=`${d}/getnexttraintimes?from=${u}&to=${c}`;const e=(new Date).getTime();e>S?m():(f=0,f=setTimeout(m,S-e))}),G(async()=>{clearInterval(f);const e={due:S,trainData:h,startStationName:r,destStationName:o,url:a};Ie.LocalStorage.save(`${u}${c}`,JSON.stringify(e))}),e.$$set=e=>{"destStation"in e&&n(5,c=e.destStation),"startStation"in e&&n(6,u=e.startStation)},e.$$.update=()=>{352&e.$$.dirty&&(n(3,l="On time"===h.eta?"ontime":"delayed"),n(2,i="On time"===h.eta?h.sta:h.eta),s=`#/timetable/${u}/${c}`)},[r,o,i,l,function(){ve(s)},c,u]}_e.getItem("twitterFollowing").then(e=>{console.log("localForage::twitterFollowing",e),null!==e?ze.twitterFollowing.set(e):(Ve.forEach(e=>{Qe[e.name]={id:e.id,follow:!1}}),ze.twitterFollowing.set(Qe),_e.setItem("twitterFollowing",Qe).catch(e=>{console.error(e)}))}).catch(e=>{console.error(e)}),_e.getItem("favourites").then(e=>{null!==e&&ze.favourites.set(e)}).catch(e=>{console.error(e)}),_e.getItem("routes").then(e=>{null!==e&&ze.routes.set(e)}).catch(e=>{console.error(e)}),_e.getItem("routeIndex").then(e=>{null!==e&&ze.routeIndex.set(e)}).catch(e=>{console.error(e)}),ze.favourites.subscribe(e=>{console.log(">> Store.state.favourites",e)}),ze.routes.subscribe(e=>{Xe&&_e.setItem("routes",e).catch(e=>{console.error(e)})}),ze.routeIndex.subscribe(e=>{Xe&&_e.setItem("routeIndex",e).catch(e=>{console.error(e)})}),ze.twitterFollowing.subscribe(e=>{Xe&&_e.setItem("twitterFollowing",e).catch(e=>{console.error(e)});const t=Object.entries(s(ze.twitterFollowing)).filter(e=>{if(e[1].follow)return e});ze.twitterFollowingList.set(t)}),ze.twitterFollowingList.subscribe(e=>{0!==e.length&&(console.log("twitterFollowingList",e.length),e.forEach(e=>{const t=e[1].id;Ze.subscribe("t-"+t)}))}),ze.newTweets.subscribe(e=>{if(0===e.length)return;console.log(">> newTweets",e.length);const t=e.sort((e,t)=>t.ts-e.ts).map(e=>e.id),n=e.map(e=>[e.id,e]);ze.tweetList.set(t),ze.tweets.set(new Map(n))}),setTimeout(()=>{Xe=!0},250);class tt extends ge{constructor(e){super(),me(this,e,et,qe,i,{destStation:5,startStation:6})}}function nt(e,t,n){const r=e.slice();return r[1]=t[n],r}function rt(e){let t,n;return t=new tt({props:{destStation:e[1].destStation.id,startStation:e[1].startStation.id}}),{c(){he(t.$$.fragment)},m(e,r){fe(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.destStation=e[1].destStation.id),1&n&&(r.startStation=e[1].startStation.id),t.$set(r)},i(e){n||(ae(t.$$.fragment,e),n=!0)},o(e){ie(t.$$.fragment,e),n=!1},d(e){Se(t,e)}}}function ot(e){let t,n,r=e[0],o=[];for(let t=0;tie(o[e],1,1,()=>{o[e]=null});return{c(){t=p("div");for(let e=0;e{n(0,r=e)}),[r]}var it={reduceOtherDetails(e){const t=[];let n=0;const r=/<\s*[aA].*?href\s*=\s*(?:"|')(.*?)(?:"|')[^>]*>(.*?)<\s*?\/\s*?[aA]\s*?>/;if("object"==typeof e.nrccMessages&&null!==e.nrccMessages)for(const o of e.nrccMessages){const e={index:0,msg:"",link:null,linkText:""};let a=o.value.replace(' ">','">').replace("","").replace("/gi,"");const i=r.exec(o.value);a=a.replace(r,""),e.index=n,e.msg=a,null!==i&&(e.link=i[1],e.linkText=i[2]),t.push(e),n++}return{nrMessages:t,nrMessagesExist:t.length>0}},reduceTrainTimetable(e){const t=[];let n="";const r=["💠","🚉"];if("object"==typeof e&&null!==e){if(console.log(">> reduceTrainService"),"object"==typeof e.trainServices&&null!==e.trainServices)for(const o of e.trainServices){const e=o.destination[0],a=null!==e.via?e.via:"",i=null!==o.platform?o.platform:""+r[0],l=null!==o.sta?o.sta:"D "+o.std,s=null===o.sta,c=null!==o.eta?o.eta:o.etd,u=o.length,d=u>0?` (${u} 🚃) `:"",h="on time"===c.toLowerCase()?"ontime":"delayed",f=null!==o.delayReason?o.delayReason:"",S=null!==o.cancelReason?o.cancelReason:"No reason given 🤷",m=o.serviceIdUrlSafe;t.push({location:e.locationName,time:l,status:c,platform:i,cancel:S,type:"train",delay:f,carriageCount:d,via:a,statusMode:h,isCancelled:o.isCancelled,isDeparture:s,serviceIdUrlSafe:m}),n=o.isCancelled?`${n}${e.locationName} ${a}${l}\n ❌ ${S}`:`${n}${e.locationName}${d}${a}\n ${l}\n ${c}\n ${i}\n ${f}`}if("object"==typeof e.busServices&&null!==e.busServices)for(const n of e.busServices){const e=n.destination[0],r=null!==e.via?e.via:"",o=null!==n.platform?n.platform:"",a=null!==n.sta?n.sta:"D "+n.std,i=null!==n.eta?n.eta:n.etd;t.push({location:e.locationName,time:a,status:i,platform:o,cancel:n.cancelReason,type:"bus",via:r})}}return console.log(t),t},reduceTrainService(e){let t=[];const n=e.sta||e.std,r=e.eta||e.etd,o={locationName:e.locationName,crs:e.crs,st:e.sta,et:e.eta,at:e.ata,isCancelled:e.isCancelled,length:e.length,detachFront:e.detachFront,adhocAlerts:e.adhocAlerts};return null!==e.previousCallingPoints&&(t=t.concat(e.previousCallingPoints[0].callingPoint)),t.push(o),null!==e.subsequentCallingPoints&&(t=t.concat(e.subsequentCallingPoints[0].callingPoint)),t=t.map(e=>(e.et=null===e.et?"":e.et,e.at=null===e.at?"":e.at,e.etMode="on time"===e.et.toLowerCase()?"ontime":"delayed",e.atMode="on time"===e.at.toLowerCase()?"ontime":"delayed",e.delayReason=null!==e.delayReason?e.delayReason:"",e.cancelReason=null!==e.cancelReason?e.cancelReason:"No reason given 🤷",e.classCancel=e.isCancelled?"cancelledRow":"",null!==e.st||null!==e.et&&""!==e.et||(e.st="D "+n,e.et=r),e)),t}};function lt(e,t,n){const r=e.slice();return r[5]=t[n],r}function st(e){let t,n=e[0],r=[];for(let t=0;t0&&st(t);return{c(){n=p("section"),r=p("div"),r.innerHTML='
Station
\n
Due
\n
Estimated
\n
Arrived
',o=L(),a&&a.c(),H(r,"class","grid card text-subhead")},m(e,t){g(e,n,t),m(n,r),m(n,o),a&&a.m(n,null)},p(e,[t]){e[0].length>0?a?a.p(e,t):(a=st(e),a.c(),a.m(n,null)):a&&(a.d(1),a=null)},i:e,o:e,d(e){e&&y(n),a&&a.d()}}}function dt(e,t,n){let r,{serviceId:o}=t,a=[],i=ze.getBaseUrl();async function l(){{const e="/getservice?serviceid="+o,t=i.concat(e);await Oe.get(t).then(e=>{const t=JSON.parse(e.data);n(0,a=it.reduceTrainService(t))})}}return k(async()=>{await l(),r=setInterval(async()=>{console.log("Service update"),await l()},12e4)}),G(async()=>{clearInterval(r)}),e.$$set=e=>{"serviceId"in e&&n(1,o=e.serviceId)},[a,o]}class ht extends ge{constructor(e){super(),me(this,e,dt,ut,i,{serviceId:1})}}function ft(t){let n,r,o;return r=new ht({props:{serviceId:t[0]}}),{c(){n=p("div"),he(r.$$.fragment),H(n,"class","container")},m(e,t){g(e,n,t),fe(r,n,null),o=!0},p:e,i(e){o||(ae(r.$$.fragment,e),o=!0)},o(e){ie(r.$$.fragment,e),o=!1},d(e){e&&y(n),Se(r)}}}function St(e,t,n){let{params:r={}}=t,o=r.serviceId;return e.$$set=e=>{"params"in e&&n(1,r=e.params)},[o,r]}function mt(e,t,n){const r=e.slice();return r[8]=t[n],r[10]=n,r}function gt(e,t,n){const r=e.slice();return r[8]=t[n],r}function yt(e){let t,n,r=e[1].nrMessages,o=[];for(let t=0;te[8].serviceIdUrlSafe;for(let t=0;t{v||(v=se(n,De,{},!0)),v.run(1)}),T=!0)},o(e){e&&(v||(v=se(n,De,{},!1)),v.run(0)),T=!1},d(e){e&&y(n),D&&D.d(),G.d(),e&&v&&v.end(),N=!1,R()}}}function Wt(e){let t,n,r,o,a=!0===e[1].nrMessagesExist&&yt(e),i=e[0].length>0&&Ct(e);return{c(){t=p("div"),n=p("section"),a&&a.c(),r=L(),i&&i.c()},m(e,l){g(e,t,l),m(t,n),a&&a.m(n,null),m(n,r),i&&i.m(n,null),o=!0},p(e,[t]){!0===e[1].nrMessagesExist?a?a.p(e,t):(a=yt(e),a.c(),a.m(n,r)):a&&(a.d(1),a=null),e[0].length>0?i?(i.p(e,t),1&t&&ae(i,1)):(i=Ct(e),i.c(),ae(i,1),i.m(n,null)):i&&(re(),ie(i,1,1,()=>{i=null}),oe())},i(e){o||(ae(i),o=!0)},o(e){ie(i),o=!1},d(e){e&&y(t),a&&a.d(),i&&i.d()}}}function vt(e,t,n){let r,{fromStation:o}=t,{destStation:a}=t,i=[],l={},s=ze.getBaseUrl();async function c(){{const e=`/gettrains?from=${o}&to=${a}`,t=s.concat(e);await Oe.get(t).then(e=>{const t={...e.data};n(0,i=it.reduceTrainTimetable(t)),n(1,l=it.reduceOtherDetails(t))})}}return k(async()=>{await c(),r=setInterval(async()=>{console.log("Timetable update"),await c()},12e4)}),G(async()=>{clearInterval(r)}),e.$$set=e=>{"fromStation"in e&&n(3,o=e.fromStation),"destStation"in e&&n(4,a=e.destStation)},[i,l,function(e){ve("/service/"+e)},o,a]}class Tt extends ge{constructor(e){super(),me(this,e,vt,Wt,i,{fromStation:3,destStation:4})}}function Nt(e){let t,n,r,o,a,i,l,s,c;return s=new Tt({props:{fromStation:e[2],destStation:e[3]}}),{c(){t=p("div"),n=p("div"),r=p("div"),o=C(e[0]),a=C(" TO "),i=C(e[1]),l=L(),he(s.$$.fragment),H(r,"class","text-center text-dark text-subhead"),H(t,"class","container")},m(e,u){g(e,t,u),m(t,n),m(n,r),m(r,o),m(r,a),m(r,i),m(n,l),fe(s,n,null),c=!0},p(e,[t]){(!c||1&t)&&W(o,e[0]),(!c||2&t)&&W(i,e[1])},i(e){c||(ae(s.$$.fragment,e),c=!0)},o(e){ie(s.$$.fragment,e),c=!1},d(e){e&&y(t),Se(s)}}}function Rt(e,t,n){let r,o,{params:a={}}=t,i=a.fromStation,l=a.destStation;return k(async()=>{n(0,r=Ge.findStation(i)),n(1,o=Ge.findStation(l))}),e.$$set=e=>{"params"in e&&n(4,a=e.params)},[r,o,i,l,a]}function Mt(e,t,n){const r=e.slice();return r[9]=t[n],r[11]=n,r}function Pt(e){let t,n=e[4],r=[];for(let t=0;t0&&Pt(t);return{c(){n=p("span"),r=p("label"),i=C(t[1]),l=L(),s=p("input"),c=L(),h&&h.c(),H(r,"for",t[0]),H(s,"class","betterInput svelte-1up86vp"),H(s,"autocomplete","off"),H(s,"name",t[0]),H(n,"class","mui-dropdown mui-dropdown--right svelte-1up86vp")},m(e,o){g(e,n,o),m(n,r),m(r,i),m(n,l),m(n,s),v(s,t[2]),m(n,c),h&&h.m(n,null),u||(d=[b(s,"keyup",(function(){a(t[3])&&t[3].apply(this,arguments)})),b(s,"input",t[7])],u=!0)},p(e,[o]){t=e,2&o&&W(i,t[1]),1&o&&H(r,"for",t[0]),1&o&&H(s,"name",t[0]),4&o&&s.value!==t[2]&&v(s,t[2]),t[4].length>0?h?h.p(t,o):(h=Pt(t),h.c(),h.m(n,null)):h&&(h.d(1),h=null)},i:e,o:e,d(e){e&&y(n),h&&h.d(),u=!1,o(d)}}}function Et(e,t,n){let r,{returnValue:o=""}=t,a="",{name:i}=t,{label:l}=t,s=[];function c(){n(6,o=""),a.length>=2?n(4,s=Ge.searchStation(a)):n(4,s=[])}return k(async()=>{n(3,r=Ie.debounce(c,750))}),e.$$set=e=>{"returnValue"in e&&n(6,o=e.returnValue),"name"in e&&n(0,i=e.name),"label"in e&&n(1,l=e.label)},e.$$.update=()=>{64&e.$$.dirty&&""===o&&n(2,a="")},[i,l,a,r,s,function(e){let[t,r]=e.target.dataset.content.split(",");n(6,o={id:t,name:r}),n(2,a=r),n(4,s=[])},o,function(){a=this.value,n(2,a),n(6,o)}]}class kt extends ge{constructor(e){super(),me(this,e,Et,Dt,i,{returnValue:6,name:0,label:1})}}function Gt(t){let n,r,o,a;return{c(){n=p("div"),r=p("button"),r.textContent="Add a new route",H(r,"class","btn btn-primary"),H(r,"id","new"),H(r,"type","button")},m(e,i){g(e,n,i),m(n,r),o||(a=b(r,"click",t[6]),o=!0)},p:e,i:e,o:e,d(e){e&&y(n),o=!1,a()}}}function Ft(e){let t,n,r,a,i,l,s,c,u,d,h,f,S,B,w,W,v,T,N,R,M,P,A,D;function E(t){e[7].call(null,t)}let k={label:"Departure Station",name:"startStation"};function G(t){e[8].call(null,t)}void 0!==e[1]&&(k.returnValue=e[1]),s=new kt({props:k}),O.push(()=>de(s,"returnValue",E));let F={label:"Destination Station",name:"destStation"};return void 0!==e[2]&&(F.returnValue=e[2]),S=new kt({props:F}),O.push(()=>de(S,"returnValue",G)),{c(){t=p("div"),n=p("div"),r=p("div"),r.textContent="New Route",a=L(),i=p("div"),l=p("div"),he(s.$$.fragment),u=L(),d=p("div"),d.innerHTML='',h=L(),f=p("div"),he(S.$$.fragment),w=L(),W=p("div"),v=p("button"),v.textContent="Close",T=L(),N=p("button"),R=C("Save"),H(r,"class","text-subhead"),H(l,"class",""),H(d,"class","text-center"),H(f,"class",""),H(i,"class","grid-3"),H(v,"class","btn btn-sm"),H(v,"type","button"),H(N,"class","btn btn-primary btn-sm"),H(N,"id","save"),H(N,"type","button"),N.disabled=M=!e[3],H(W,"class","my text-right"),H(n,"class","mui-row card"),H(t,"class","container ")},m(o,c){g(o,t,c),m(t,n),m(n,r),m(n,a),m(n,i),m(i,l),fe(s,l,null),m(i,u),m(i,d),m(i,h),m(i,f),fe(S,f,null),m(n,w),m(n,W),m(W,v),m(W,T),m(W,N),m(N,R),P=!0,A||(D=[b(v,"click",e[4]),b(N,"click",e[5])],A=!0)},p(e,t){const n={};!c&&2&t&&(c=!0,n.returnValue=e[1],J(()=>c=!1)),s.$set(n);const r={};!B&&4&t&&(B=!0,r.returnValue=e[2],J(()=>B=!1)),S.$set(r),(!P||8&t&&M!==(M=!e[3]))&&(N.disabled=M)},i(e){P||(ae(s.$$.fragment,e),ae(S.$$.fragment,e),P=!0)},o(e){ie(s.$$.fragment,e),ie(S.$$.fragment,e),P=!1},d(e){e&&y(t),Se(s),Se(S),A=!1,o(D)}}}function It(e){let t,n,r,o;const a=[Ft,Gt],i=[];function l(e,t){return e[0]?0:1}return t=l(e),n=i[t]=a[t](e),{c(){n.c(),r=w()},m(e,n){i[t].m(e,n),g(e,r,n),o=!0},p(e,[o]){let s=t;t=l(e),t===s?i[t].p(e,o):(re(),ie(i[s],1,1,()=>{i[s]=null}),oe(),n=i[t],n||(n=i[t]=a[t](e),n.c()),ae(n,1),n.m(r.parentNode,r))},i(e){o||(ae(n),o=!0)},o(e){ie(n),o=!1},d(e){i[t].d(e),e&&y(r)}}}function Ot(e,t,n){let r,o,a,i=!1;function l(){n(1,r=""),n(2,o=""),n(0,i=!1)}return e.$$.update=()=>{6&e.$$.dirty&&(console.log("typeof startStation",typeof r),n(3,a="object"==typeof r&&"object"==typeof o))},[i,r,o,a,l,async function(){await ze.saveRoute({startStation:r,destStation:o}),l()},function(){n(0,i=!0)},function(e){r=e,n(1,r)},function(e){o=e,n(2,o)}]}class Kt extends ge{constructor(e){super(),me(this,e,Ot,It,i,{})}}function xt(t){let n,r,a,i,l,s,c,u,d,h;return{c(){n=p("div"),r=p("button"),r.textContent="Delete",a=L(),i=p("button"),i.textContent="Edit",l=L(),s=p("button"),s.textContent="Close",H(r,"class","btn btn-danger btn-sm"),H(r,"id","delete"),H(r,"type","button"),H(i,"class","btn btn-primary btn-sm"),H(i,"id","save"),H(i,"type","button"),H(s,"class","btn btn-sm"),H(s,"type","button"),H(n,"class","my grid-3 svelte-ojjucl")},m(e,o){g(e,n,o),m(n,r),m(n,a),m(n,i),m(n,l),m(n,s),u=!0,d||(h=[b(r,"click",t[2]),b(i,"click",Yt),b(s,"click",t[3])],d=!0)},p:e,i(e){u||(V(()=>{c||(c=se(n,Ee,{},!0)),c.run(1)}),u=!0)},o(e){c||(c=se(n,Ee,{},!1)),c.run(0),u=!1},d(e){e&&y(n),e&&c&&c.end(),d=!1,o(h)}}}function $t(n){let r,i,l,s,c,d,h,f,B,w,v,T,N,R,M,D,E,k=n[0].startStation.name+"",G=n[0].destStation.name+"",F=n[1]&&xt(n);return{c(){r=p("div"),i=p("div"),l=p("div"),s=C(k),c=L(),d=p("div"),d.innerHTML='',h=L(),f=p("div"),B=C(G),w=L(),v=p("div"),T=p("button"),T.innerHTML='',N=L(),F&&F.c(),H(l,"class","col-5"),H(d,"class","col-1"),H(f,"class","col-5"),H(T,"class","btn btn-sm--slim"),H(v,"class","col-1"),H(i,"class","grid card ")},m(e,t){g(e,r,t),m(r,i),m(i,l),m(l,s),m(i,c),m(i,d),m(i,h),m(i,f),m(f,B),m(i,w),m(i,v),m(v,T),m(r,N),F&&F.m(r,null),M=!0,D||(E=b(T,"click",n[5]),D=!0)},p(e,[t]){(!M||1&t)&&k!==(k=e[0].startStation.name+"")&&W(s,k),(!M||1&t)&&G!==(G=e[0].destStation.name+"")&&W(B,G),e[1]?F?(F.p(e,t),2&t&&ae(F,1)):(F=xt(e),F.c(),ae(F,1),F.m(r,null)):F&&(re(),ie(F,1,1,()=>{F=null}),oe())},i(e){M||(ae(F),R&&R.end(1),M=!0)},o(n){ie(F),n&&(R=function(n,r,i){let l,s=r(n,i),c=!0;const d=ne;function h(){const{delay:r=0,duration:a=300,easing:i=t,tick:h=e,css:f}=s||le;f&&(l=P(n,1,0,a,r,i,f));const m=u()+r,g=m+a;V(()=>ee(n,!1,"start")),S(e=>{if(c){if(e>=g)return h(0,1),ee(n,!1,"end"),--d.r||o(d.c),!1;if(e>=m){const t=i((e-m)/a);h(1-t,t)}}return c})}return d.r+=1,a(s)?q().then(()=>{s=s(),h()}):h(),{end(e){e&&s.tick&&s.tick(1,0),c&&(l&&A(n,l),c=!1)}}}(r,Ee,{})),M=!1},d(e){e&&y(r),F&&F.d(),e&&R&&R.end(),D=!1,E()}}}function Yt(){}function _t(e,t,n){let{item:r}=t,{id:o}=t,a=!1;return e.$$set=e=>{"item"in e&&n(0,r=e.item),"id"in e&&n(4,o=e.id)},[r,a,function(){console.log("delete: "+o),n(1,a=!1),ze.deleteRoute(o)},function(){n(1,a=!1)},o,()=>n(1,a=!a)]}class Ut extends ge{constructor(e){super(),me(this,e,_t,$t,i,{item:0,id:4})}}function Vt(e,t,n){const r=e.slice();return r[1]=t[n],r[3]=n,r}function Jt(e,t){let n,r,o;return r=new Ut({props:{item:t[1],id:t[3]}}),{key:e,first:null,c(){n=w(),he(r.$$.fragment),this.first=n},m(e,t){g(e,n,t),fe(r,e,t),o=!0},p(e,t){const n={};1&t&&(n.item=e[1]),1&t&&(n.id=e[3]),r.$set(n)},i(e){o||(ae(r.$$.fragment,e),o=!0)},o(e){ie(r.$$.fragment,e),o=!1},d(e){e&&y(n),Se(r,e)}}}function jt(e){let t,n,r=[],o=new Map,a=e[0];const i=e=>e[1].id;for(let t=0;t{n(0,r=e)}),[r]}class Qt extends ge{constructor(e){super(),me(this,e,Xt,jt,i,{})}}function zt(e,t,n){const r=e.slice();return r[4]=t[n],r[5]=t,r[6]=n,r}function Zt(e){let t,n=Ve,r=[];for(let t=0;t{n(0,r=ze.getTwitterFollowing()),n(1,o=Object.keys(r).length>0)});const a=ze.twitterFollowing.subscribe(async e=>{n(0,r=e),n(1,o=Object.keys(r).length>0),console.log("_following",r)});return G(async()=>{ze.saveTwitterFollowing(r),a()}),[r,o,function(e){r[e.name].follow=this.checked,n(0,r)}]}class nn extends ge{constructor(e){super(),me(this,e,tn,en,i,{})}}function rn(t){let n,r,o,a,i,l,s,c,u,d,h;return a=new Kt({}),l=new Qt({}),d=new nn({}),{c(){n=p("div"),r=p("div"),r.textContent="Settings",o=L(),he(a.$$.fragment),i=L(),he(l.$$.fragment),s=L(),c=p("hr"),u=L(),he(d.$$.fragment),H(r,"class","text-dark text-subhead"),H(n,"class","container")},m(e,t){g(e,n,t),m(n,r),m(n,o),fe(a,n,null),m(n,i),fe(l,n,null),m(n,s),m(n,c),m(n,u),fe(d,n,null),h=!0},p:e,i(e){h||(ae(a.$$.fragment,e),ae(l.$$.fragment,e),ae(d.$$.fragment,e),h=!0)},o(e){ie(a.$$.fragment,e),ie(l.$$.fragment,e),ie(d.$$.fragment,e),h=!1},d(e){e&&y(n),Se(a),Se(l),Se(d)}}}function on(t){let n;return{c(){n=p("div"),n.innerHTML='

Favourites

\n\n
a
\n
b
\n
c
\n
d
',H(n,"class","container svelte-apetsu")},m(e,t){g(e,n,t)},p:e,i:e,o:e,d(e){e&&y(n)}}}function an(e){let t,n,r,o,a,i,l,s,c,u,d,h,f,S,B,w,b,v,T,N,R,M,P=e[0].user.name+"",A=e[0].user.screen_name+"",D=e[0].created_at+"",E=e[1]&&ln(e);return{c(){t=p("div"),n=p("div"),r=p("div"),o=p("img"),l=L(),s=p("div"),c=p("div"),u=C(P),d=L(),h=p("div"),f=C("@"),S=C(A),B=L(),E&&E.c(),w=L(),b=p("div"),v=C(e[2]),T=L(),N=p("div"),R=p("small"),M=C(D),H(o,"class","avatar col-2 svelte-1y2z4hv"),o.src!==(a=cn(e[0].user.profile_image_url_https))&&H(o,"src",a),H(o,"alt",i="@"+e[0].user.screen_name),H(c,"class","text-subhead text-dark"),H(h,"class","badge"),H(s,"class","col-10 ml-2"),H(r,"class","grid"),H(n,"class","tweet-header"),H(b,"class","tweetBody"),H(R,"class","text-highlight2"),H(t,"class","card--slim")},m(e,a){g(e,t,a),m(t,n),m(n,r),m(r,o),m(r,l),m(r,s),m(s,c),m(c,u),m(s,d),m(s,h),m(h,f),m(h,S),m(t,B),E&&E.m(t,null),m(t,w),m(t,b),m(b,v),m(t,T),m(t,N),m(N,R),m(R,M)},p(e,n){1&n&&o.src!==(a=cn(e[0].user.profile_image_url_https))&&H(o,"src",a),1&n&&i!==(i="@"+e[0].user.screen_name)&&H(o,"alt",i),1&n&&P!==(P=e[0].user.name+"")&&W(u,P),1&n&&A!==(A=e[0].user.screen_name+"")&&W(S,A),e[1]?E?E.p(e,n):(E=ln(e),E.c(),E.m(t,w)):E&&(E.d(1),E=null),4&n&&W(v,e[2]),1&n&&D!==(D=e[0].created_at+"")&&W(M,D)},d(e){e&&y(t),E&&E.d()}}}function ln(e){let t,n,r,o=e[0].in_reply_to_screen_name+"";return{c(){t=p("div"),n=C("Replying to @"),r=C(o),H(t,"class","text-primary")},m(e,o){g(e,t,o),m(t,n),m(t,r)},p(e,t){1&t&&o!==(o=e[0].in_reply_to_screen_name+"")&&W(r,o)},d(e){e&&y(t)}}}function sn(t){let n,r=t[0]&&an(t);return{c(){r&&r.c(),n=w()},m(e,t){r&&r.m(e,t),g(e,n,t)},p(e,[t]){e[0]?r?r.p(e,t):(r=an(e),r.c(),r.m(n.parentNode,n)):r&&(r.d(1),r=null)},i:e,o:e,d(e){r&&r.d(e),e&&y(n)}}}function cn(e){return"https://image.silvrtree.co.uk/48,fit,q80/"+e}function un(e,t,n){let r,o,{id:a}=t,i=!1,l="";return k(async()=>{r=ze.getTweetByID(a),n(0,o=JSON.parse(r.tweet))}),e.$$set=e=>{"id"in e&&n(3,a=e.id)},e.$$.update=()=>{1&e.$$.dirty&&o&&(n(1,i=o&&null!==o.in_reply_to_status_id),n(2,l=o&&o.truncated?o.extended_tweet.full_text:o.text))},[o,i,l,a]}class dn extends ge{constructor(e){super(),me(this,e,un,sn,i,{id:3})}}function hn(e,t,n){const r=e.slice();return r[3]=t[n],r[5]=n,r}function fn(e,t){let n,r,o;return r=new dn({props:{id:t[3]}}),{key:e,first:null,c(){n=w(),he(r.$$.fragment),this.first=n},m(e,t){g(e,n,t),fe(r,e,t),o=!0},p(e,t){const n={};1&t&&(n.id=e[3]),r.$set(n)},i(e){o||(ae(r.$$.fragment,e),o=!0)},o(e){ie(r.$$.fragment,e),o=!1},d(e){e&&y(n),Se(r,e)}}}function Sn(e){let t,n,r,o,a=[],i=new Map,l=e[0];const s=e=>e[3];for(let t=0;t{await ze.getTweets()});const o=ze.tweetList.subscribe(async e=>{n(0,r=e)});return G(async()=>{o(),clearInterval(undefined)}),[r]}function gn(t){let n,r,o;return{c(){n=p("h2"),n.textContent="NotFound",r=L(),o=p("p"),o.textContent="Oops, this route doesn't exist!",H(n,"class","routetitle svelte-apetsu"),H(o,"class","svelte-apetsu")},m(e,t){g(e,n,t),g(e,r,t),g(e,o,t)},p:e,i:e,o:e,d(e){e&&y(n),e&&y(r),e&&y(o)}}}const yn=new Map;function Bn(t){let n,r,o;return{c(){n=p("span"),n.innerHTML='',H(n,"class","")},m(e,a){g(e,n,a),r||(o=b(n,"click",t[1]),r=!0)},p:e,d(e){e&&y(n),r=!1,o()}}}function pn(t){let n,r,o,a,i,l,s,c,u,d,h=1===t[0]&&Bn(t);return{c(){n=p("header"),r=p("section"),h&&h.c(),o=L(),a=p("span"),a.textContent=""+Cn,i=L(),l=p("section"),s=p("a"),s.innerHTML='',c=L(),u=p("a"),u.innerHTML='',d=L(),H(a,"class","text-bold navbar-brand mx-1 text-uppercase"),H(r,"class","navbar-section"),H(s,"title","Tweets"),H(s,"href","/#/tweets"),H(s,"class","btn--slim bg-primary"),H(u,"title","Settings"),H(u,"href","/#/settings"),H(u,"class","btn bg-primary "),H(l,"class","navbar-section text-right"),H(n,"class","navbar bg-primary")},m(e,t){g(e,n,t),m(n,r),h&&h.m(r,null),m(r,o),m(r,a),m(n,i),m(n,l),m(l,s),m(l,c),m(l,u),m(l,d)},p(e,[t]){1===e[0]?h?h.p(e,t):(h=Bn(e),h.c(),h.m(r,o)):h&&(h.d(1),h=null)},i:e,o:e,d(e){e&&y(n),h&&h.d()}}}yn.set("/",class extends ge{constructor(e){super(),me(this,e,at,ot,i,{})}}),yn.set("/timetable/:fromStation/:destStation",class extends ge{constructor(e){super(),me(this,e,Rt,Nt,i,{params:4})}}),yn.set("/service/:serviceId",class extends ge{constructor(e){super(),me(this,e,St,ft,i,{params:1})}}),yn.set("/settings",class extends ge{constructor(e){super(),me(this,e,null,rn,i,{})}}),yn.set("/favourites",class extends ge{constructor(e){super(),me(this,e,null,on,i,{})}}),yn.set("/tweets",class extends ge{constructor(e){super(),me(this,e,mn,Sn,i,{})}}),yn.set("*",class extends ge{constructor(e){super(),me(this,e,null,gn,i,{})}});let Cn="Traintimes";function Ln(e,t,n){let r,{page:o}=t;return e.$$set=e=>{"page"in e&&n(2,o=e.page)},e.$$.update=()=>{4&e.$$.dirty&&n(0,r="Home"===o?0:1)},[r,function(){U().then(()=>{window.history.back()})},o]}class wn extends ge{constructor(e){super(),me(this,e,Ln,pn,i,{page:2})}}function bn(e){let t,n,r,o;return t=new wn({props:{page:e[0]}}),r=new Ne({props:{routes:yn}}),r.$on("conditionsFailed",Hn),r.$on("routeLoaded",e[1]),r.$on("routeEvent",Wn),{c(){he(t.$$.fragment),n=L(),he(r.$$.fragment)},m(e,a){fe(t,e,a),g(e,n,a),fe(r,e,a),o=!0},p(e,[n]){const r={};1&n&&(r.page=e[0]),t.$set(r)},i(e){o||(ae(t.$$.fragment,e),ae(r.$$.fragment,e),o=!0)},o(e){ie(t.$$.fragment,e),ie(r.$$.fragment,e),o=!1},d(e){Se(t,e),e&&y(n),Se(r,e)}}}function Hn(e){console.error("Caught event conditionsFailed",e.detail)}function Wn(e){console.info("Caught event routeEvent",e.detail)}function vn(e,t,n){let r;return[r,function(e){console.info("Caught event routeLoaded",e.detail),n(0,r=e.detail.name),console.log("currentPage",r)}]}const Tn=new class extends ge{constructor(e){super(),me(this,e,vn,bn,i,{})}}({target:document.body,props:{}});return"serviceWorker"in navigator&&(navigator.serviceWorker.ready.then((function(e){console.warn("Ready??",e)})),window.addEventListener("load",(function(){navigator.serviceWorker.register("./service-worker.js").then(e=>{console.warn("Service Worker Registered",e.scope)}).catch(e=>{console.error("Registration failed with "+e)})}))),Tn}(); +e.exports=function e(t,n,r){function o(i,l){if(!n[i]){if(!t[i]){if(!l&&Ye)return Ye();if(a)return a(i,!0);var s=new Error("Cannot find module '"+i+"'");throw s.code="MODULE_NOT_FOUND",s}var c=n[i]={exports:{}};t[i][0].call(c.exports,(function(e){var n=t[i][1][e];return o(n||e)}),c,c.exports,e,t,n,r)}return n[i].exports}for(var a=Ye,i=0;i=43)}})).catch((function(){return!1}))}function w(e){return"boolean"==typeof m?c.resolve(m):L(e).then((function(e){return m=e}))}function H(e){var t=g[e.name],n={};n.promise=new c((function(e,t){n.resolve=e,n.reject=t})),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then((function(){return n.promise})):t.dbReady=n.promise}function b(e){var t=g[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function W(e,t){var n=g[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function v(e,t){return new c((function(n,r){if(g[e.name]=g[e.name]||G(),e.db){if(!t)return n(e.db);H(e),e.db.close()}var o=[e.name];t&&o.push(e.version);var a=i.open.apply(i,o);t&&(a.onupgradeneeded=function(t){var n=a.result;try{n.createObjectStore(e.storeName),t.oldVersion<=1&&n.createObjectStore(S)}catch(n){if("ConstraintError"!==n.name)throw n;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){n(a.result),b(e)}}))}function N(e){return v(e,!1)}function T(e){return v(e,!0)}function R(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),r=e.versione.db.version;if(r&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||n){if(n){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function M(e){return new c((function(t,n){var r=new FileReader;r.onerror=n,r.onloadend=function(n){var r=btoa(n.target.result||"");t({__local_forage_encoded_blob:!0,data:r,type:e.type})},r.readAsBinaryString(e)}))}function P(e){return s([C(atob(e.data))],{type:e.type})}function A(e){return e&&e.__local_forage_encoded_blob}function D(e){var t=this,n=t._initReady().then((function(){var e=g[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return d(n,e,e),n}function E(e){H(e);for(var t=g[e.name],n=t.forages,r=0;r0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return c.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),T(e)})).then((function(){return E(e).then((function(){k(e,t,n,r-1)}))})).catch(n);n(o)}}function G(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function F(e){var t=this,n={db:null};if(e)for(var r in e)n[r]=e[r];var o=g[n.name];o||(o=G(),g[n.name]=o),o.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=D);var a=[];function i(){return c.resolve()}for(var l=0;l>4,u[s++]=(15&r)<<4|o>>2,u[s++]=(3&o)<<6|63&a;return c}function Se(e){var t,n=new Uint8Array(e),r="";for(t=0;t>2],r+=X[(3&n[t])<<4|n[t+1]>>4],r+=X[(15&n[t+1])<<2|n[t+2]>>6],r+=X[63&n[t+2]];return n.length%3==2?r=r.substring(0,r.length-1)+"=":n.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function me(e,t){var n="";if(e&&(n=he.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===he.call(e.buffer))){var r,o=Z;e instanceof ArrayBuffer?(r=e,o+=ee):(r=e.buffer,"[object Int8Array]"===n?o+=ne:"[object Uint8Array]"===n?o+=re:"[object Uint8ClampedArray]"===n?o+=oe:"[object Int16Array]"===n?o+=ae:"[object Uint16Array]"===n?o+=le:"[object Int32Array]"===n?o+=ie:"[object Uint32Array]"===n?o+=se:"[object Float32Array]"===n?o+=ce:"[object Float64Array]"===n?o+=ue:t(new Error("Failed to get type for BinaryArray"))),t(o+Se(r))}else if("[object Blob]"===n){var a=new FileReader;a.onload=function(){var n=Q+e.type+"~"+Se(this.result);t(Z+te+n)},a.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(n){console.error("Couldn't convert value into a JSON string: ",e),t(null,n)}}function ge(e){if(e.substring(0,q)!==Z)return JSON.parse(e);var t,n=e.substring(de),r=e.substring(q,de);if(r===te&&z.test(n)){var o=n.match(z);t=o[1],n=n.substring(o[0].length)}var a=fe(n);switch(r){case ee:return a;case te:return s([a],{type:t});case ne:return new Int8Array(a);case re:return new Uint8Array(a);case oe:return new Uint8ClampedArray(a);case ae:return new Int16Array(a);case le:return new Uint16Array(a);case ie:return new Int32Array(a);case se:return new Uint32Array(a);case ce:return new Float32Array(a);case ue:return new Float64Array(a);default:throw new Error("Unkown type: "+r)}}var ye={serialize:me,deserialize:ge,stringToBuffer:fe,bufferToString:Se};function Be(e,t,n,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function pe(e){var t=this,n={db:null};if(e)for(var r in e)n[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new c((function(e,r){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(e){return r(e)}n.db.transaction((function(o){Be(o,n,(function(){t._dbInfo=n,e()}),(function(e,t){r(t)}))}),r)}));return n.serializer=ye,o}function Ce(e,t,n,r,o,a){e.executeSql(n,r,o,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,l){l.rows.length?a(e,i):Be(e,t,(function(){e.executeSql(n,r,o,a)}),a)}),a):a(e,i)}),a)}function Le(e,t){var n=this;e=h(e);var r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,n){var r=n.rows.length?n.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return u(r,t),r}function we(e,t){var n=this,r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"SELECT * FROM "+o.storeName,[],(function(n,r){for(var a=r.rows,i=a.length,l=0;l0)return void a(He.apply(o,[e,l,n,r-1]));i(t)}}))}))})).catch(i)}));return u(a,n),a}function be(e,t,n){return He.apply(this,[e,t,n,1])}function We(e,t){var n=this;e=h(e);var r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){r(t)}))}))})).catch(r)}));return u(r,t),r}function ve(e){var t=this,n=new c((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Ce(t,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,t){n(t)}))}))})).catch(n)}));return u(n,e),n}function Ne(e){var t=this,n=new c((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Ce(t,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(t,n){var r=n.rows.item(0).c;e(r)}),(function(e,t){n(t)}))}))})).catch(n)}));return u(n,e),n}function Te(e,t){var n=this,r=new c((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){Ce(n,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,n){var r=n.rows.length?n.rows.item(0).key:null;t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return u(r,t),r}function Re(e){var t=this,n=new c((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Ce(t,r,"SELECT key FROM "+r.storeName,[],(function(t,n){for(var r=[],o=0;o '__WebKitDatabaseInfoTable__'",[],(function(n,r){for(var o=[],a=0;a0}function Fe(e){var t=this,n={};if(e)for(var r in e)n[r]=e[r];return n.keyPrefix=Ee(e,t._defaultConfig),Ge()?(t._dbInfo=n,n.serializer=ye,c.resolve()):c.reject()}function Ie(e){var t=this,n=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,n=localStorage.length-1;n>=0;n--){var r=localStorage.key(n);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return u(n,e),n}function Oe(e,t){var n=this;e=h(e);var r=n.ready().then((function(){var t=n._dbInfo,r=localStorage.getItem(t.keyPrefix+e);return r&&(r=t.serializer.deserialize(r)),r}));return u(r,t),r}function Ke(e,t){var n=this,r=n.ready().then((function(){for(var t=n._dbInfo,r=t.keyPrefix,o=r.length,a=localStorage.length,i=1,l=0;l=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}})):c.reject("Invalid arguments"),t),r}var Je={_driver:"localStorageWrapper",_initStorage:Fe,_support:De(),iterate:Ke,getItem:Oe,setItem:Ue,removeItem:_e,clear:Ie,length:$e,key:xe,keys:Ye,dropInstance:Ve},je=function(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)},Xe=function(e,t){for(var n=e.length,r=0;re+1)},async saveRoute(e){const t={...e};t.id=s(this.routeIndex),this.routes.update(e=>[...e,t]),this.incrementRouteIndex()},deleteRoute(e){const t=s(this.routes).slice(0,e),n=s(this.routes).slice(e+1);this.routes.set([...t,...n])},flipRoute(e){console.log("State:flipRoute:",e),console.log("Route",s(this.routes)[e]);let t={...s(this.routes)[e]};console.log("Origroute",t);let n={id:t.id,destStation:{...t.startStation},startStation:{...t.destStation}};console.log({...t.startStation});let r=s(this.routes);console.log("flipped route:",n),r[e]={...n},this.routes.set(r)},async getTweets(){const e=s(ze.twitterFollowingList).map(e=>e[1].id),t=je.concat("/twitter");Ke({method:"post",url:t,data:{list:e}}).then(e=>{const t=e.data;this.newTweets.set(t)}).catch(e=>{console.error("Store:getTweets",e)})},getTweetByID(e){return s(this.tweets).get(e)},getTwitterFollowing(){return s(this.twitterFollowing)},saveTwitterFollowing(e){this.twitterFollowing.set(e)},getBaseUrl:()=>je,updateTweetList(e){this.tweetList.update(t=>[e,...t])},updateTwitter(e){this.tweets.update(t=>t.set(e.id,e))},updateNewTweets(e){this.newTweets.update(t=>{let n=[...t];return n.unshift(e),n=n.slice(0,49),n})},trigger(e,t){if(console.log("trigger",t),t.hasOwnProperty("message")){const e=t.message;this.updateNewTweets(e)}}};function Ze(t){let n,r,o,a,i,l,s,c,u,d,h,f,S,B;return{c(){n=p("div"),r=p("div"),o=p("div"),a=C(t[0]),i=L(),l=p("div"),s=C(t[1]),c=L(),u=p("div"),d=p("span"),h=C(t[2]),b(r,"class","entry col-8 ml--1 svelte-10t8pfm"),b(d,"class",f="btn "+t[3]+" svelte-10t8pfm"),b(u,"class","entry col-4 text-center svelte-10t8pfm"),b(n,"class","row TRcard svelte-10t8pfm")},m(e,f){g(e,n,f),m(n,r),m(r,o),m(o,a),m(r,i),m(r,l),m(l,s),m(n,c),m(n,u),m(u,d),m(d,h),S||(B=H(d,"click",t[4]),S=!0)},p(e,[t]){1&t&&W(a,e[0]),2&t&&W(s,e[1]),4&t&&W(h,e[2]),8&t&&f!==(f="btn "+e[3]+" svelte-10t8pfm")&&b(d,"class",f)},i:e,o:e,d(e){e&&y(n),S=!1,B()}}}function qe(e,t,n){let r,o,a,i,l,s,{destStation:c}=t,{startStation:u}=t,d=ze.getBaseUrl(),h={eta:"OFF",sta:"OFF"},f=0,S=0;async function m(){console.log(`Update: ${u} / ${c}`);const e=new Date,t=e.getHours()<6?36e5:95e3,r=t-e.getTime()%t;S=e.getTime()+r,await async function(){const e=Oe.minuteFloor(),t=a.concat("&mh="+e);Ke.get(t).then(e=>{n(8,h={...e.data}),console.dir(h)}).catch(e=>{console.error("TrainRoute:getTrain",e)})}(),clearTimeout(f),f=0,f=setTimeout(m,r+10)}return k(async()=>{if(Oe.LocalStorage.exists(`${u}${c}`)){const e=JSON.parse(Oe.LocalStorage.load(`${u}${c}`));n(8,h={...h,...e.trainData}),S=e.due,n(0,r=e.startStationName),n(1,o=e.destStationName),a=e.url}else n(0,r=Fe.findStation(u)),n(1,o=Fe.findStation(c)),a=`${d}/getnexttraintimes?from=${u}&to=${c}`;const e=(new Date).getTime();e>S?m():(f=0,f=setTimeout(m,S-e))}),G(async()=>{clearInterval(f);const e={due:S,trainData:h,startStationName:r,destStationName:o,url:a};Oe.LocalStorage.save(`${u}${c}`,JSON.stringify(e))}),e.$$set=e=>{"destStation"in e&&n(5,c=e.destStation),"startStation"in e&&n(6,u=e.startStation)},e.$$.update=()=>{352&e.$$.dirty&&(n(3,l="On time"===h.eta?"ontime":"delayed"),n(2,i="On time"===h.eta?h.sta:h.eta),s=`#/timetable/${u}/${c}`)},[r,o,i,l,function(){Ne(s)},c,u]}Ue.getItem("twitterFollowing").then(e=>{console.log("localForage::twitterFollowing",e),null!==e?ze.twitterFollowing.set(e):(Ve.forEach(e=>{Qe[e.name]={id:e.id,follow:!1}}),ze.twitterFollowing.set(Qe),Ue.setItem("twitterFollowing",Qe).catch(e=>{console.error(e)}))}).catch(e=>{console.error(e)}),Ue.getItem("favourites").then(e=>{null!==e&&ze.favourites.set(e)}).catch(e=>{console.error(e)}),Ue.getItem("routes").then(e=>{null!==e&&ze.routes.set(e)}).catch(e=>{console.error(e)}),Ue.getItem("routeIndex").then(e=>{null!==e&&ze.routeIndex.set(e)}).catch(e=>{console.error(e)}),ze.favourites.subscribe(e=>{console.log(">> Store.state.favourites",e)}),ze.routes.subscribe(e=>{Xe&&Ue.setItem("routes",e).catch(e=>{console.error(e)})}),ze.routeIndex.subscribe(e=>{Xe&&Ue.setItem("routeIndex",e).catch(e=>{console.error(e)})}),ze.twitterFollowing.subscribe(e=>{Xe&&Ue.setItem("twitterFollowing",e).catch(e=>{console.error(e)});const t=Object.entries(s(ze.twitterFollowing)).filter(e=>{if(e[1].follow)return e});ze.twitterFollowingList.set(t)}),ze.newTweets.subscribe(e=>{if(0===e.length)return;console.log(">> newTweets",e.length);const t=e.sort((e,t)=>t.ts-e.ts).map(e=>e.id),n=e.map(e=>[e.id,e]);ze.tweetList.set(t),ze.tweets.set(new Map(n))}),setTimeout(()=>{Xe=!0},250);class et extends ge{constructor(e){super(),me(this,e,qe,Ze,i,{destStation:5,startStation:6})}}function tt(e,t,n){const r=e.slice();return r[1]=t[n],r}function nt(e){let t,n;return t=new et({props:{destStation:e[1].destStation.id,startStation:e[1].startStation.id}}),{c(){he(t.$$.fragment)},m(e,r){fe(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.destStation=e[1].destStation.id),1&n&&(r.startStation=e[1].startStation.id),t.$set(r)},i(e){n||(ae(t.$$.fragment,e),n=!0)},o(e){ie(t.$$.fragment,e),n=!1},d(e){Se(t,e)}}}function rt(e){let t,n,r=e[0],o=[];for(let t=0;tie(o[e],1,1,()=>{o[e]=null});return{c(){t=p("div");for(let e=0;e{n(0,r=e)}),[r]}var at={reduceOtherDetails(e){const t=[];let n=0;const r=/<\s*[aA].*?href\s*=\s*(?:"|')(.*?)(?:"|')[^>]*>(.*?)<\s*?\/\s*?[aA]\s*?>/;if("object"==typeof e.nrccMessages&&null!==e.nrccMessages)for(const o of e.nrccMessages){const e={index:0,msg:"",link:null,linkText:""};let a=o.value.replace(' ">','">').replace("
","").replace("/gi,"");const i=r.exec(o.value);a=a.replace(r,""),e.index=n,e.msg=a,null!==i&&(e.link=i[1],e.linkText=i[2]),t.push(e),n++}return{nrMessages:t,nrMessagesExist:t.length>0}},reduceTrainTimetable(e){const t=[];let n="";const r=["💠","🚉"];if("object"==typeof e&&null!==e){if(console.log(">> reduceTrainService"),"object"==typeof e.trainServices&&null!==e.trainServices)for(const o of e.trainServices){const e=o.destination[0],a=null!==e.via?e.via:"",i=null!==o.platform?o.platform:""+r[0],l=null!==o.sta?o.sta:"D "+o.std,s=null===o.sta,c=null!==o.eta?o.eta:o.etd,u=o.length,d=u>0?` (${u} 🚃) `:"",h="on time"===c.toLowerCase()?"ontime":"delayed",f=null!==o.delayReason?o.delayReason:"",S=null!==o.cancelReason?o.cancelReason:"No reason given 🤷",m=o.serviceIdUrlSafe;t.push({location:e.locationName,time:l,status:c,platform:i,cancel:S,type:"train",delay:f,carriageCount:d,via:a,statusMode:h,isCancelled:o.isCancelled,isDeparture:s,serviceIdUrlSafe:m}),n=o.isCancelled?`${n}${e.locationName} ${a}${l}\n ❌ ${S}`:`${n}${e.locationName}${d}${a}\n ${l}\n ${c}\n ${i}\n ${f}`}if("object"==typeof e.busServices&&null!==e.busServices)for(const n of e.busServices){const e=n.destination[0],r=null!==e.via?e.via:"",o=null!==n.platform?n.platform:"",a=null!==n.sta?n.sta:"D "+n.std,i=null!==n.eta?n.eta:n.etd;t.push({location:e.locationName,time:a,status:i,platform:o,cancel:n.cancelReason,type:"bus",via:r})}}return console.log(t),t},reduceTrainService(e){let t=[];const n=e.sta||e.std,r=e.eta||e.etd,o={locationName:e.locationName,crs:e.crs,st:e.sta,et:e.eta,at:e.ata,isCancelled:e.isCancelled,length:e.length,detachFront:e.detachFront,adhocAlerts:e.adhocAlerts};return null!==e.previousCallingPoints&&(t=t.concat(e.previousCallingPoints[0].callingPoint)),t.push(o),null!==e.subsequentCallingPoints&&(t=t.concat(e.subsequentCallingPoints[0].callingPoint)),t=t.map(e=>(e.et=null===e.et?"":e.et,e.at=null===e.at?"":e.at,e.etMode="on time"===e.et.toLowerCase()?"ontime":"delayed",e.atMode="on time"===e.at.toLowerCase()?"ontime":"delayed",e.delayReason=null!==e.delayReason?e.delayReason:"",e.cancelReason=null!==e.cancelReason?e.cancelReason:"No reason given 🤷",e.classCancel=e.isCancelled?"cancelledRow":"",null!==e.st||null!==e.et&&""!==e.et||(e.st="D "+n,e.et=r),e)),t}};function it(e,t,n){const r=e.slice();return r[5]=t[n],r}function lt(e){let t,n=e[0],r=[];for(let t=0;t0&<(t);return{c(){n=p("section"),r=p("div"),r.innerHTML='
Station
\n
Due
\n
Estimated
\n
Arrived
',o=L(),a&&a.c(),b(r,"class","grid card text-subhead")},m(e,t){g(e,n,t),m(n,r),m(n,o),a&&a.m(n,null)},p(e,[t]){e[0].length>0?a?a.p(e,t):(a=lt(e),a.c(),a.m(n,null)):a&&(a.d(1),a=null)},i:e,o:e,d(e){e&&y(n),a&&a.d()}}}function ut(e,t,n){let r,{serviceId:o}=t,a=[],i=ze.getBaseUrl();async function l(){{const e="/getservice?serviceid="+o,t=i.concat(e);await Ke.get(t).then(e=>{const t=JSON.parse(e.data);n(0,a=at.reduceTrainService(t))})}}return k(async()=>{await l(),r=setInterval(async()=>{console.log("Service update"),await l()},12e4)}),G(async()=>{clearInterval(r)}),e.$$set=e=>{"serviceId"in e&&n(1,o=e.serviceId)},[a,o]}class dt extends ge{constructor(e){super(),me(this,e,ut,ct,i,{serviceId:1})}}function ht(t){let n,r,o;return r=new dt({props:{serviceId:t[0]}}),{c(){n=p("div"),he(r.$$.fragment),b(n,"class","container")},m(e,t){g(e,n,t),fe(r,n,null),o=!0},p:e,i(e){o||(ae(r.$$.fragment,e),o=!0)},o(e){ie(r.$$.fragment,e),o=!1},d(e){e&&y(n),Se(r)}}}function ft(e,t,n){let{params:r={}}=t,o=r.serviceId;return e.$$set=e=>{"params"in e&&n(1,r=e.params)},[o,r]}function St(e,t,n){const r=e.slice();return r[8]=t[n],r[10]=n,r}function mt(e,t,n){const r=e.slice();return r[8]=t[n],r}function gt(e){let t,n,r=e[1].nrMessages,o=[];for(let t=0;te[8].serviceIdUrlSafe;for(let t=0;tCancelled',b(n,"class","col-5 text-center align-middle delayed")},m(e,t){g(e,n,t)},p:e,d(e){e&&y(n)}}}function Ht(e){let t,n,r,o,a=e[8].cancel+"";return{c(){t=p("div"),n=p("i"),r=L(),o=C(a),b(n,"class","fa fa-info align-middle"),b(t,"class","row mx--reset padx bg-deep-orange-900 fg-white")},m(e,a){g(e,t,a),m(t,n),m(t,r),m(t,o)},p(e,t){1&t&&a!==(a=e[8].cancel+"")&&W(o,a)},d(e){e&&y(t)}}}function bt(e,t){let n,r,o,i,l,s,c,u,d,h,f,S,B,v,N,T,R,M,P,A,D=t[8].location+"",E=t[8].carriageCount+"",k=t[8].time+"",G=t[8].via&&Ct(t);function F(e,t){return e[8].isCancelled?wt:Lt}let I=F(t),O=I(t),K=t[8].isCancelled&&Ht(t);return{key:e,first:null,c(){n=p("div"),r=p("div"),o=p("span"),i=C(D),l=L(),s=p("span"),c=C(E),u=L(),d=p("div"),G&&G.c(),h=L(),f=p("div"),S=C(k),B=L(),O.c(),T=L(),K&&K.c(),R=w(),b(s,"class","text-accent"),b(r,"class","col-5 align-middle"),b(f,"class","col-2 text-center align-middle time"),b(n,"class",v="row "+(t[8].isCancelled?"card--alert":"card")+" flex align-bottom "),this.first=n},m(e,y){g(e,n,y),m(n,r),m(r,o),m(o,i),m(r,l),m(r,s),m(s,c),m(r,u),m(r,d),G&&G.m(d,null),m(n,h),m(n,f),m(f,S),m(n,B),O.m(n,null),g(e,T,y),K&&K.m(e,y),g(e,R,y),M=!0,P||(A=H(o,"click",(function(){a(t[2](t[8].serviceIdUrlSafe))&&t[2](t[8].serviceIdUrlSafe).apply(this,arguments)})),P=!0)},p(e,r){t=e,(!M||1&r)&&D!==(D=t[8].location+"")&&W(i,D),(!M||1&r)&&E!==(E=t[8].carriageCount+"")&&W(c,E),t[8].via?G?G.p(t,r):(G=Ct(t),G.c(),G.m(d,null)):G&&(G.d(1),G=null),(!M||1&r)&&k!==(k=t[8].time+"")&&W(S,k),I===(I=F(t))&&O?O.p(t,r):(O.d(1),O=I(t),O&&(O.c(),O.m(n,null))),(!M||1&r&&v!==(v="row "+(t[8].isCancelled?"card--alert":"card")+" flex align-bottom "))&&b(n,"class",v),t[8].isCancelled?K?K.p(t,r):(K=Ht(t),K.c(),K.m(R.parentNode,R)):K&&(K.d(1),K=null)},i(e){M||(e&&V(()=>{N||(N=se(n,Ee,{},!0)),N.run(1)}),M=!0)},o(e){e&&(N||(N=se(n,Ee,{},!1)),N.run(0)),M=!1},d(e){e&&y(n),G&&G.d(),O.d(),e&&N&&N.end(),e&&y(T),K&&K.d(e),e&&y(R),P=!1,A()}}}function Wt(e){let t,n,r,o,a=!0===e[1].nrMessagesExist&>(e),i=e[0].length>0&&pt(e);return{c(){t=p("div"),n=p("section"),a&&a.c(),r=L(),i&&i.c()},m(e,l){g(e,t,l),m(t,n),a&&a.m(n,null),m(n,r),i&&i.m(n,null),o=!0},p(e,[t]){!0===e[1].nrMessagesExist?a?a.p(e,t):(a=gt(e),a.c(),a.m(n,r)):a&&(a.d(1),a=null),e[0].length>0?i?(i.p(e,t),1&t&&ae(i,1)):(i=pt(e),i.c(),ae(i,1),i.m(n,null)):i&&(re(),ie(i,1,1,()=>{i=null}),oe())},i(e){o||(ae(i),o=!0)},o(e){ie(i),o=!1},d(e){e&&y(t),a&&a.d(),i&&i.d()}}}function vt(e,t,n){let r,{fromStation:o}=t,{destStation:a}=t,i=[],l={},s=ze.getBaseUrl();async function c(){{const e=`/gettrains?from=${o}&to=${a}`,t=s.concat(e);await Ke.get(t).then(e=>{const t={...e.data};n(0,i=at.reduceTrainTimetable(t)),n(1,l=at.reduceOtherDetails(t))})}}return k(async()=>{await c(),r=setInterval(async()=>{console.log("Timetable update"),await c()},12e4)}),G(async()=>{clearInterval(r)}),e.$$set=e=>{"fromStation"in e&&n(3,o=e.fromStation),"destStation"in e&&n(4,a=e.destStation)},[i,l,function(e){Ne("/service/"+e)},o,a]}class Nt extends ge{constructor(e){super(),me(this,e,vt,Wt,i,{fromStation:3,destStation:4})}}function Tt(e){let t,n,r,o,a,i,l,s,c;return s=new Nt({props:{fromStation:e[2],destStation:e[3]}}),{c(){t=p("div"),n=p("div"),r=p("div"),o=C(e[0]),a=C(" TO "),i=C(e[1]),l=L(),he(s.$$.fragment),b(r,"class","text-center text-dark text-subhead"),b(t,"class","container")},m(e,u){g(e,t,u),m(t,n),m(n,r),m(r,o),m(r,a),m(r,i),m(n,l),fe(s,n,null),c=!0},p(e,[t]){(!c||1&t)&&W(o,e[0]),(!c||2&t)&&W(i,e[1])},i(e){c||(ae(s.$$.fragment,e),c=!0)},o(e){ie(s.$$.fragment,e),c=!1},d(e){e&&y(t),Se(s)}}}function Rt(e,t,n){let r,o,{params:a={}}=t,i=a.fromStation,l=a.destStation;return k(async()=>{n(0,r=Fe.findStation(i)),n(1,o=Fe.findStation(l))}),e.$$set=e=>{"params"in e&&n(4,a=e.params)},[r,o,i,l,a]}function Mt(e,t,n){const r=e.slice();return r[9]=t[n],r[11]=n,r}function Pt(e){let t,n=e[4],r=[];for(let t=0;t0&&Pt(t);return{c(){n=p("span"),r=p("label"),i=C(t[1]),l=L(),s=p("input"),c=L(),h&&h.c(),b(r,"for",t[0]),b(s,"class","betterInput svelte-dn6ym0"),b(s,"autocomplete","off"),b(s,"name",t[0]),b(n,"class","mui-dropdown mui-dropdown--right svelte-dn6ym0")},m(e,o){g(e,n,o),m(n,r),m(r,i),m(n,l),m(n,s),v(s,t[2]),m(n,c),h&&h.m(n,null),u||(d=[H(s,"keyup",(function(){a(t[3])&&t[3].apply(this,arguments)})),H(s,"input",t[7])],u=!0)},p(e,[o]){t=e,2&o&&W(i,t[1]),1&o&&b(r,"for",t[0]),1&o&&b(s,"name",t[0]),4&o&&s.value!==t[2]&&v(s,t[2]),t[4].length>0?h?h.p(t,o):(h=Pt(t),h.c(),h.m(n,null)):h&&(h.d(1),h=null)},i:e,o:e,d(e){e&&y(n),h&&h.d(),u=!1,o(d)}}}function Et(e,t,n){let r,{returnValue:o=""}=t,a="",{name:i}=t,{label:l}=t,s=[];function c(){n(6,o=""),a.length>=2?n(4,s=Fe.searchStation(a)):n(4,s=[])}return k(async()=>{n(3,r=Oe.debounce(c,750))}),e.$$set=e=>{"returnValue"in e&&n(6,o=e.returnValue),"name"in e&&n(0,i=e.name),"label"in e&&n(1,l=e.label)},e.$$.update=()=>{64&e.$$.dirty&&""===o&&n(2,a="")},[i,l,a,r,s,function(e){let[t,r]=e.target.dataset.content.split(",");n(6,o={id:t,name:r}),n(2,a=r),n(4,s=[])},o,function(){a=this.value,n(2,a),n(6,o)}]}class kt extends ge{constructor(e){super(),me(this,e,Et,Dt,i,{returnValue:6,name:0,label:1})}}function Gt(t){let n,r,o,a;return{c(){n=p("div"),r=p("button"),r.textContent="Add a new route",b(r,"class","btn btn-primary"),b(r,"id","new"),b(r,"type","button")},m(e,i){g(e,n,i),m(n,r),o||(a=H(r,"click",t[6]),o=!0)},p:e,i:e,o:e,d(e){e&&y(n),o=!1,a()}}}function Ft(e){let t,n,r,a,i,l,s,c,u,d,h,f,S,B,w,W,v,N,T,R,M,P,A,D;function E(t){e[7].call(null,t)}let k={label:"Departure Station",name:"startStation"};function G(t){e[8].call(null,t)}void 0!==e[1]&&(k.returnValue=e[1]),s=new kt({props:k}),O.push(()=>de(s,"returnValue",E));let F={label:"Destination Station",name:"destStation"};return void 0!==e[2]&&(F.returnValue=e[2]),S=new kt({props:F}),O.push(()=>de(S,"returnValue",G)),{c(){t=p("div"),n=p("div"),r=p("div"),r.textContent="New Route",a=L(),i=p("div"),l=p("div"),he(s.$$.fragment),u=L(),d=p("div"),d.innerHTML='',h=L(),f=p("div"),he(S.$$.fragment),w=L(),W=p("div"),v=p("button"),v.textContent="Close",N=L(),T=p("button"),R=C("Save"),b(r,"class","text-subhead"),b(l,"class",""),b(d,"class","text-center"),b(f,"class",""),b(i,"class","grid-3"),b(v,"class","btn btn-sm"),b(v,"type","button"),b(T,"class","btn btn-primary btn-sm"),b(T,"id","save"),b(T,"type","button"),T.disabled=M=!e[3],b(W,"class","my text-right"),b(n,"class","mui-row card"),b(t,"class","container ")},m(o,c){g(o,t,c),m(t,n),m(n,r),m(n,a),m(n,i),m(i,l),fe(s,l,null),m(i,u),m(i,d),m(i,h),m(i,f),fe(S,f,null),m(n,w),m(n,W),m(W,v),m(W,N),m(W,T),m(T,R),P=!0,A||(D=[H(v,"click",e[4]),H(T,"click",e[5])],A=!0)},p(e,t){const n={};!c&&2&t&&(c=!0,n.returnValue=e[1],J(()=>c=!1)),s.$set(n);const r={};!B&&4&t&&(B=!0,r.returnValue=e[2],J(()=>B=!1)),S.$set(r),(!P||8&t&&M!==(M=!e[3]))&&(T.disabled=M)},i(e){P||(ae(s.$$.fragment,e),ae(S.$$.fragment,e),P=!0)},o(e){ie(s.$$.fragment,e),ie(S.$$.fragment,e),P=!1},d(e){e&&y(t),Se(s),Se(S),A=!1,o(D)}}}function It(e){let t,n,r,o;const a=[Ft,Gt],i=[];function l(e,t){return e[0]?0:1}return t=l(e),n=i[t]=a[t](e),{c(){n.c(),r=w()},m(e,n){i[t].m(e,n),g(e,r,n),o=!0},p(e,[o]){let s=t;t=l(e),t===s?i[t].p(e,o):(re(),ie(i[s],1,1,()=>{i[s]=null}),oe(),n=i[t],n||(n=i[t]=a[t](e),n.c()),ae(n,1),n.m(r.parentNode,r))},i(e){o||(ae(n),o=!0)},o(e){ie(n),o=!1},d(e){i[t].d(e),e&&y(r)}}}function Ot(e,t,n){let r,o,a,i=!1;function l(){n(1,r=""),n(2,o=""),n(0,i=!1)}return e.$$.update=()=>{6&e.$$.dirty&&(console.log("typeof startStation",typeof r),n(3,a="object"==typeof r&&"object"==typeof o))},[i,r,o,a,l,async function(){await ze.saveRoute({startStation:r,destStation:o}),l()},function(){n(0,i=!0)},function(e){r=e,n(1,r)},function(e){o=e,n(2,o)}]}class Kt extends ge{constructor(e){super(),me(this,e,Ot,It,i,{})}}function xt(t){let n,r,a,i,l,s,c,u,d,h,f,S;return{c(){n=p("div"),r=p("button"),r.textContent="Delete",a=L(),i=p("button"),i.textContent="Edit",l=L(),s=p("button"),s.textContent="Flip",c=L(),u=p("button"),u.textContent="Close",b(r,"class","btn btn-danger btn-sm"),b(r,"id","delete"),b(r,"type","button"),b(i,"class","btn btn-primary btn-sm"),b(i,"id","save"),b(i,"type","button"),b(s,"class","btn btn-primary btn-sm"),b(s,"id","flip"),b(s,"type","button"),b(u,"class","btn btn-sm"),b(u,"type","button"),b(n,"class","my grid-4 svelte-1jlsivf")},m(e,o){g(e,n,o),m(n,r),m(n,a),m(n,i),m(n,l),m(n,s),m(n,c),m(n,u),h=!0,f||(S=[H(r,"click",t[2]),H(i,"click",$t),H(s,"click",t[4]),H(u,"click",t[3])],f=!0)},p:e,i(e){h||(V(()=>{d||(d=se(n,ke,{},!0)),d.run(1)}),h=!0)},o(e){d||(d=se(n,ke,{},!1)),d.run(0),h=!1},d(e){e&&y(n),e&&d&&d.end(),f=!1,o(S)}}}function Yt(n){let r,i,l,s,c,d,h,f,B,w,v,N,T,R,M,D,E,k=n[0].startStation.name+"",G=n[0].destStation.name+"",F=n[1]&&xt(n);return{c(){r=p("div"),i=p("div"),l=p("div"),s=C(k),c=L(),d=p("div"),d.innerHTML='',h=L(),f=p("div"),B=C(G),w=L(),v=p("div"),N=p("button"),N.innerHTML='',T=L(),F&&F.c(),b(l,"class","col-5"),b(d,"class","col-1"),b(f,"class","col-5"),b(N,"class","btn btn-sm--slim"),b(v,"class","col-1"),b(i,"class","grid card ")},m(e,t){g(e,r,t),m(r,i),m(i,l),m(l,s),m(i,c),m(i,d),m(i,h),m(i,f),m(f,B),m(i,w),m(i,v),m(v,N),m(r,T),F&&F.m(r,null),M=!0,D||(E=H(N,"click",n[6]),D=!0)},p(e,[t]){(!M||1&t)&&k!==(k=e[0].startStation.name+"")&&W(s,k),(!M||1&t)&&G!==(G=e[0].destStation.name+"")&&W(B,G),e[1]?F?(F.p(e,t),2&t&&ae(F,1)):(F=xt(e),F.c(),ae(F,1),F.m(r,null)):F&&(re(),ie(F,1,1,()=>{F=null}),oe())},i(e){M||(ae(F),R&&R.end(1),M=!0)},o(n){ie(F),n&&(R=function(n,r,i){let l,s=r(n,i),c=!0;const d=ne;function h(){const{delay:r=0,duration:a=300,easing:i=t,tick:h=e,css:f}=s||le;f&&(l=P(n,1,0,a,r,i,f));const m=u()+r,g=m+a;V(()=>ee(n,!1,"start")),S(e=>{if(c){if(e>=g)return h(0,1),ee(n,!1,"end"),--d.r||o(d.c),!1;if(e>=m){const t=i((e-m)/a);h(1-t,t)}}return c})}return d.r+=1,a(s)?q().then(()=>{s=s(),h()}):h(),{end(e){e&&s.tick&&s.tick(1,0),c&&(l&&A(n,l),c=!1)}}}(r,ke,{})),M=!1},d(e){e&&y(r),F&&F.d(),e&&R&&R.end(),D=!1,E()}}}function $t(){}function _t(e,t,n){let{item:r}=t,{id:o}=t,a=!1;return e.$$set=e=>{"item"in e&&n(0,r=e.item),"id"in e&&n(5,o=e.id)},[r,a,function(){console.log("delete: "+o),n(1,a=!1),ze.deleteRoute(o)},function(){n(1,a=!1)},function(){console.log("flipItem: "+o),ze.flipRoute(o)},o,()=>n(1,a=!a)]}class Ut extends ge{constructor(e){super(),me(this,e,_t,Yt,i,{item:0,id:5})}}function Vt(e,t,n){const r=e.slice();return r[1]=t[n],r[3]=n,r}function Jt(e,t){let n,r,o;return r=new Ut({props:{item:t[1],id:t[3]}}),{key:e,first:null,c(){n=w(),he(r.$$.fragment),this.first=n},m(e,t){g(e,n,t),fe(r,e,t),o=!0},p(e,t){const n={};1&t&&(n.item=e[1]),1&t&&(n.id=e[3]),r.$set(n)},i(e){o||(ae(r.$$.fragment,e),o=!0)},o(e){ie(r.$$.fragment,e),o=!1},d(e){e&&y(n),Se(r,e)}}}function jt(e){let t,n,r=[],o=new Map,a=e[0];const i=e=>e[1].id;for(let t=0;t{n(0,r=e)}),[r]}class Qt extends ge{constructor(e){super(),me(this,e,Xt,jt,i,{})}}function zt(t){let n,r,o,a,i,l,s;return a=new Kt({}),l=new Qt({}),{c(){n=p("div"),r=p("div"),r.textContent="Settings",o=L(),he(a.$$.fragment),i=L(),he(l.$$.fragment),b(r,"class","text-dark text-subhead"),b(n,"class","container")},m(e,t){g(e,n,t),m(n,r),m(n,o),fe(a,n,null),m(n,i),fe(l,n,null),s=!0},p:e,i(e){s||(ae(a.$$.fragment,e),ae(l.$$.fragment,e),s=!0)},o(e){ie(a.$$.fragment,e),ie(l.$$.fragment,e),s=!1},d(e){e&&y(n),Se(a),Se(l)}}}function Zt(t){let n;return{c(){n=p("div"),n.innerHTML='

Favourites

\n\n
a
\n
b
\n
c
\n
d
',b(n,"class","container svelte-apetsu")},m(e,t){g(e,n,t)},p:e,i:e,o:e,d(e){e&&y(n)}}}function qt(e){let t,n,r,o,a,i,l,s,c,u,d,h,f,S,B,w,H,v,N,T,R,M,P=e[0].user.name+"",A=e[0].user.screen_name+"",D=e[0].created_at+"",E=e[1]&&en(e);return{c(){t=p("div"),n=p("div"),r=p("div"),o=p("img"),l=L(),s=p("div"),c=p("div"),u=C(P),d=L(),h=p("div"),f=C("@"),S=C(A),B=L(),E&&E.c(),w=L(),H=p("div"),v=C(e[2]),N=L(),T=p("div"),R=p("small"),M=C(D),b(o,"class","avatar col-2 svelte-1y2z4hv"),o.src!==(a=nn(e[0].user.profile_image_url_https))&&b(o,"src",a),b(o,"alt",i="@"+e[0].user.screen_name),b(c,"class","text-subhead text-dark"),b(h,"class","badge"),b(s,"class","col-10 ml-2"),b(r,"class","grid"),b(n,"class","tweet-header"),b(H,"class","tweetBody"),b(R,"class","text-highlight2"),b(t,"class","card--slim")},m(e,a){g(e,t,a),m(t,n),m(n,r),m(r,o),m(r,l),m(r,s),m(s,c),m(c,u),m(s,d),m(s,h),m(h,f),m(h,S),m(t,B),E&&E.m(t,null),m(t,w),m(t,H),m(H,v),m(t,N),m(t,T),m(T,R),m(R,M)},p(e,n){1&n&&o.src!==(a=nn(e[0].user.profile_image_url_https))&&b(o,"src",a),1&n&&i!==(i="@"+e[0].user.screen_name)&&b(o,"alt",i),1&n&&P!==(P=e[0].user.name+"")&&W(u,P),1&n&&A!==(A=e[0].user.screen_name+"")&&W(S,A),e[1]?E?E.p(e,n):(E=en(e),E.c(),E.m(t,w)):E&&(E.d(1),E=null),4&n&&W(v,e[2]),1&n&&D!==(D=e[0].created_at+"")&&W(M,D)},d(e){e&&y(t),E&&E.d()}}}function en(e){let t,n,r,o=e[0].in_reply_to_screen_name+"";return{c(){t=p("div"),n=C("Replying to @"),r=C(o),b(t,"class","text-primary")},m(e,o){g(e,t,o),m(t,n),m(t,r)},p(e,t){1&t&&o!==(o=e[0].in_reply_to_screen_name+"")&&W(r,o)},d(e){e&&y(t)}}}function tn(t){let n,r=t[0]&&qt(t);return{c(){r&&r.c(),n=w()},m(e,t){r&&r.m(e,t),g(e,n,t)},p(e,[t]){e[0]?r?r.p(e,t):(r=qt(e),r.c(),r.m(n.parentNode,n)):r&&(r.d(1),r=null)},i:e,o:e,d(e){r&&r.d(e),e&&y(n)}}}function nn(e){return"https://image.silvrtree.co.uk/48,fit,q80/"+e}function rn(e,t,n){let r,o,{id:a}=t,i=!1,l="";return k(async()=>{r=ze.getTweetByID(a),n(0,o=JSON.parse(r.tweet))}),e.$$set=e=>{"id"in e&&n(3,a=e.id)},e.$$.update=()=>{1&e.$$.dirty&&o&&(n(1,i=o&&null!==o.in_reply_to_status_id),n(2,l=o&&o.truncated?o.extended_tweet.full_text:o.text))},[o,i,l,a]}class on extends ge{constructor(e){super(),me(this,e,rn,tn,i,{id:3})}}function an(e,t,n){const r=e.slice();return r[3]=t[n],r[5]=n,r}function ln(e,t){let n,r,o;return r=new on({props:{id:t[3]}}),{key:e,first:null,c(){n=w(),he(r.$$.fragment),this.first=n},m(e,t){g(e,n,t),fe(r,e,t),o=!0},p(e,t){const n={};1&t&&(n.id=e[3]),r.$set(n)},i(e){o||(ae(r.$$.fragment,e),o=!0)},o(e){ie(r.$$.fragment,e),o=!1},d(e){e&&y(n),Se(r,e)}}}function sn(e){let t,n,r,o,a=[],i=new Map,l=e[0];const s=e=>e[3];for(let t=0;t{await ze.getTweets()});const o=ze.tweetList.subscribe(async e=>{n(0,r=e)});return G(async()=>{o(),clearInterval(undefined)}),[r]}function un(t){let n,r,o;return{c(){n=p("h2"),n.textContent="NotFound",r=L(),o=p("p"),o.textContent="Oops, this route doesn't exist!",b(n,"class","routetitle svelte-apetsu"),b(o,"class","svelte-apetsu")},m(e,t){g(e,n,t),g(e,r,t),g(e,o,t)},p:e,i:e,o:e,d(e){e&&y(n),e&&y(r),e&&y(o)}}}const dn=new Map;function hn(t){let n,r,o;return{c(){n=p("span"),n.innerHTML='',b(n,"class","")},m(e,a){g(e,n,a),r||(o=H(n,"click",t[2]),r=!0)},p:e,d(e){e&&y(n),r=!1,o()}}}function fn(t){let n,r,o,a,i,l,s,c,u,d=1===t[0]&&hn(t);return{c(){n=p("header"),r=p("section"),d&&d.c(),o=L(),a=p("span"),a.textContent=""+Sn,l=L(),s=p("section"),c=p("a"),c.innerHTML='',u=L(),b(a,"class","text-bold navbar-brand mx-1 text-uppercase"),b(r,"class",i="navbar-section "+t[1]),b(c,"title","Settings"),b(c,"href","/#/settings"),b(c,"class","btn bg-primary "),b(s,"class","navbar-section text-right"),b(n,"class","navbar bg-primary")},m(e,t){g(e,n,t),m(n,r),d&&d.m(r,null),m(r,o),m(r,a),m(n,l),m(n,s),m(s,c),m(s,u)},p(e,[t]){1===e[0]?d?d.p(e,t):(d=hn(e),d.c(),d.m(r,o)):d&&(d.d(1),d=null),2&t&&i!==(i="navbar-section "+e[1])&&b(r,"class",i)},i:e,o:e,d(e){e&&y(n),d&&d.d()}}}dn.set("/",class extends ge{constructor(e){super(),me(this,e,ot,rt,i,{})}}),dn.set("/timetable/:fromStation/:destStation",class extends ge{constructor(e){super(),me(this,e,Rt,Tt,i,{params:4})}}),dn.set("/service/:serviceId",class extends ge{constructor(e){super(),me(this,e,ft,ht,i,{params:1})}}),dn.set("/settings",class extends ge{constructor(e){super(),me(this,e,null,zt,i,{})}}),dn.set("/favourites",class extends ge{constructor(e){super(),me(this,e,null,Zt,i,{})}}),dn.set("/tweets",class extends ge{constructor(e){super(),me(this,e,cn,sn,i,{})}}),dn.set("*",class extends ge{constructor(e){super(),me(this,e,null,un,i,{})}});let Sn="Traintimes";function mn(e,t,n){let r,o,{page:a}=t;return ve.subscribe(e=>{n(3,a=e)}),e.$$set=e=>{"page"in e&&n(3,a=e.page)},e.$$.update=()=>{8&e.$$.dirty&&n(0,r=""===a||"/"===a?0:1),1&e.$$.dirty&&n(1,o=1===r?"":"padx--left")},[r,o,function(){U().then(()=>{window.history.back()})},a]}class gn extends ge{constructor(e){super(),me(this,e,mn,fn,i,{page:3})}}function yn(e){let t,n,r,o;return t=new gn({props:{page:e[0]}}),r=new Re({props:{routes:dn}}),r.$on("conditionsFailed",Bn),r.$on("routeLoaded",e[1]),r.$on("routeEvent",pn),{c(){he(t.$$.fragment),n=L(),he(r.$$.fragment)},m(e,a){fe(t,e,a),g(e,n,a),fe(r,e,a),o=!0},p(e,[n]){const r={};1&n&&(r.page=e[0]),t.$set(r)},i(e){o||(ae(t.$$.fragment,e),ae(r.$$.fragment,e),o=!0)},o(e){ie(t.$$.fragment,e),ie(r.$$.fragment,e),o=!1},d(e){Se(t,e),e&&y(n),Se(r,e)}}}function Bn(e){console.error("Caught event conditionsFailed",e.detail)}function pn(e){console.info("Caught event routeEvent",e.detail)}function Cn(e,t,n){let r;return[r,function(e){console.info("Caught event routeLoaded",e.detail),n(0,r=e.detail.name),console.log("currentPage",r)}]}const Ln=new class extends ge{constructor(e){super(),me(this,e,Cn,yn,i,{})}}({target:document.body,props:{}});return"serviceWorker"in navigator&&(navigator.serviceWorker.ready.then((function(e){console.warn("Ready??",e)})),window.addEventListener("load",(function(){navigator.serviceWorker.register("./service-worker.js").then(e=>{console.warn("Service Worker Registered",e.scope)}).catch(e=>{console.error("Registration failed with "+e)})}))),Ln}(); diff --git a/pb_public/build/fonts/GothamNarrSSm-Bold.otf b/pb_public/build/fonts/GothamNarrSSm-Bold.otf new file mode 100755 index 0000000..2be029a Binary files /dev/null and b/pb_public/build/fonts/GothamNarrSSm-Bold.otf differ diff --git a/pb_public/build/fonts/GothamNarrSSm-Book.otf b/pb_public/build/fonts/GothamNarrSSm-Book.otf new file mode 100755 index 0000000..acb140a Binary files /dev/null and b/pb_public/build/fonts/GothamNarrSSm-Book.otf differ diff --git a/pb_public/build/fonts/GothamNarrSSm-Light.otf b/pb_public/build/fonts/GothamNarrSSm-Light.otf new file mode 100755 index 0000000..ccbfa4b Binary files /dev/null and b/pb_public/build/fonts/GothamNarrSSm-Light.otf differ diff --git a/pb_public/build/fonts/GothamNarrSSm-Medium.otf b/pb_public/build/fonts/GothamNarrSSm-Medium.otf new file mode 100755 index 0000000..389e2ba Binary files /dev/null and b/pb_public/build/fonts/GothamNarrSSm-Medium.otf differ diff --git a/pb_public/build/fonts/Roboto-normal-400.woff b/pb_public/build/fonts/Roboto-normal-400.woff old mode 100644 new mode 100755 index 92dfacc..69c8825 Binary files a/pb_public/build/fonts/Roboto-normal-400.woff and b/pb_public/build/fonts/Roboto-normal-400.woff differ diff --git a/pb_public/build/fonts/Roboto_Condensed-normal-400.woff b/pb_public/build/fonts/Roboto_Condensed-normal-400.woff old mode 100644 new mode 100755 index 613f5de..90f54ea Binary files a/pb_public/build/fonts/Roboto_Condensed-normal-400.woff and b/pb_public/build/fonts/Roboto_Condensed-normal-400.woff differ diff --git a/pb_public/build/fonts/Roboto_Mono-normal-400.woff b/pb_public/build/fonts/Roboto_Mono-normal-400.woff old mode 100644 new mode 100755 diff --git a/pb_public/build/fonts/Roboto_Slab-normal-400.woff b/pb_public/build/fonts/Roboto_Slab-normal-400.woff old mode 100644 new mode 100755 index 3374dc1..7fa41d5 Binary files a/pb_public/build/fonts/Roboto_Slab-normal-400.woff and b/pb_public/build/fonts/Roboto_Slab-normal-400.woff differ diff --git a/pb_public/build/fonts/fujicons.css b/pb_public/build/fonts/fujicons.css index ff6f266..b83369f 100644 --- a/pb_public/build/fonts/fujicons.css +++ b/pb_public/build/fonts/fujicons.css @@ -1,9 +1,9 @@ @font-face { - font-family: 'Fujicons'; - font-style: normal; - font-weight: 400; - src: url(fujicons.ttf) format('truetype'); - unicode-range: U+0-10FFFF; + font-family: 'Fujicons'; + font-style: normal; + font-weight: 400; + src: url(./fujicons.woff) format('woff'); + unicode-range: U+0-10FFFF; } @@ -180,10 +180,6 @@ content: ""; } -.fa-back-chevron:before { - content: "\E91F" -} - .fa-forward:before { content: ""; } @@ -212,6 +208,7 @@ content: "\EA88" } + .fa-menu:before { content: "\EA68" } @@ -319,3 +316,8 @@ content: "\E903" } +.fa-back-chevron:before { + content: "\E91F" +} + + diff --git a/pb_public/build/fonts/roboto-condensed.css b/pb_public/build/fonts/roboto-condensed.css new file mode 100644 index 0000000..459c3c1 --- /dev/null +++ b/pb_public/build/fonts/roboto-condensed.css @@ -0,0 +1,7 @@ +@font-face { + font-family: 'Roboto Condensed'; + font-style: normal; + font-weight: 400; + src: url(./Roboto_Condensed-normal-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} diff --git a/pb_public/build/fonts/roboto.css b/pb_public/build/fonts/roboto.css new file mode 100755 index 0000000..8c53312 --- /dev/null +++ b/pb_public/build/fonts/roboto.css @@ -0,0 +1,32 @@ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(Roboto-normal-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Roboto Condensed'; + font-style: normal; + font-weight: 400; + src: url(Roboto_Condensed-normal-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + src: url(Roboto_Mono-normal-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Roboto Slab'; + font-style: normal; + font-weight: 400; + src: url(Roboto_Slab-normal-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + diff --git a/pb_public/build/hammer.css b/pb_public/build/hammer.css new file mode 100644 index 0000000..8a81719 --- /dev/null +++ b/pb_public/build/hammer.css @@ -0,0 +1,2 @@ +@import url("https://fonts.googleapis.com/css?family=Roboto+Condensed");.bg-red{background-color:#f44336}.bg-red-50{background-color:#ffebee}.bg-red-100{background-color:#ffcdd2}.bg-red-200{background-color:#ef9a9a}.bg-red-300{background-color:#e57373}.bg-red-400{background-color:#ef5350}.bg-red-500{background-color:#f44336}.bg-red-600{background-color:#e53935}.bg-red-700{background-color:#d32f2f}.bg-red-800{background-color:#c62828}.bg-red-900{background-color:#b71c1c}.bg-red-a100{background-color:#ff8a80}.bg-red-a200{background-color:#ff5252}.bg-red-a400{background-color:#ff1744}.bg-red-a700{background-color:#d50000}.bg-pink{background-color:#e91e63}.bg-pink-50{background-color:#fce4ec}.bg-pink-100{background-color:#f8bbd0}.bg-pink-200{background-color:#f48fb1}.bg-pink-300{background-color:#f06292}.bg-pink-400{background-color:#ec407a}.bg-pink-500{background-color:#e91e63}.bg-pink-600{background-color:#d81b60}.bg-pink-700{background-color:#c2185b}.bg-pink-800{background-color:#ad1457}.bg-pink-900{background-color:#880e4f}.bg-pink-a100{background-color:#ff80ab}.bg-pink-a200{background-color:#ff4081}.bg-pink-a400{background-color:#f50057}.bg-pink-a700{background-color:#c51162}.bg-purple{background-color:#9c27b0}.bg-purple-50{background-color:#f3e5f5}.bg-purple-100{background-color:#e1bee7}.bg-purple-200{background-color:#ce93d8}.bg-purple-300{background-color:#ba68c8}.bg-purple-400{background-color:#ab47bc}.bg-purple-500{background-color:#9c27b0}.bg-purple-600{background-color:#8e24aa}.bg-purple-700{background-color:#7b1fa2}.bg-purple-800{background-color:#6a1b9a}.bg-purple-900{background-color:#4a148c}.bg-purple-a100{background-color:#ea80fc}.bg-purple-a200{background-color:#e040fb}.bg-purple-a400{background-color:#d500f9}.bg-purple-a700{background-color:#a0f}.bg-deep-purple{background-color:#673ab7}.bg-deep-purple-50{background-color:#ede7f6}.bg-deep-purple-100{background-color:#d1c4e9}.bg-deep-purple-200{background-color:#b39ddb}.bg-deep-purple-300{background-color:#9575cd}.bg-deep-purple-400{background-color:#7e57c2}.bg-deep-purple-500{background-color:#673ab7}.bg-deep-purple-600{background-color:#5e35b1}.bg-deep-purple-700{background-color:#512da8}.bg-deep-purple-800{background-color:#4527a0}.bg-deep-purple-900{background-color:#311b92}.bg-deep-purple-a100{background-color:#b388ff}.bg-deep-purple-a200{background-color:#7c4dff}.bg-deep-purple-a400{background-color:#651fff}.bg-deep-purple-a700{background-color:#6200ea}.bg-indigo{background-color:#3f51b5}.bg-indigo-50{background-color:#e8eaf6}.bg-indigo-100{background-color:#c5cae9}.bg-indigo-200{background-color:#9fa8da}.bg-indigo-300{background-color:#7986cb}.bg-indigo-400{background-color:#5c6bc0}.bg-indigo-500{background-color:#3f51b5}.bg-indigo-600{background-color:#3949ab}.bg-indigo-700{background-color:#303f9f}.bg-indigo-800{background-color:#283593}.bg-indigo-900{background-color:#1a237e}.bg-indigo-a100{background-color:#8c9eff}.bg-indigo-a200{background-color:#536dfe}.bg-indigo-a400{background-color:#3d5afe}.bg-indigo-a700{background-color:#304ffe}.bg-blue{background-color:#2196f3}.bg-blue-50{background-color:#e3f2fd}.bg-blue-100{background-color:#bbdefb}.bg-blue-200{background-color:#90caf9}.bg-blue-300{background-color:#64b5f6}.bg-blue-400{background-color:#42a5f5}.bg-blue-500{background-color:#2196f3}.bg-blue-600{background-color:#1e88e5}.bg-blue-700{background-color:#1976d2}.bg-blue-800{background-color:#1565c0}.bg-blue-900{background-color:#0d47a1}.bg-blue-a100{background-color:#82b1ff}.bg-blue-a200{background-color:#448aff}.bg-blue-a400{background-color:#2979ff}.bg-blue-a700{background-color:#2962ff}.bg-light-blue{background-color:#03a9f4}.bg-light-blue-50{background-color:#e1f5fe}.bg-light-blue-100{background-color:#b3e5fc}.bg-light-blue-200{background-color:#81d4fa}.bg-light-blue-300{background-color:#4fc3f7}.bg-light-blue-400{background-color:#29b6f6}.bg-light-blue-500{background-color:#03a9f4}.bg-light-blue-600{background-color:#039be5}.bg-light-blue-700{background-color:#0288d1}.bg-light-blue-800{background-color:#0277bd}.bg-light-blue-900{background-color:#01579b}.bg-light-blue-a100{background-color:#80d8ff}.bg-light-blue-a200{background-color:#40c4ff}.bg-light-blue-a400{background-color:#00b0ff}.bg-light-blue-a700{background-color:#0091ea}.bg-cyan{background-color:#00bcd4}.bg-cyan-50{background-color:#e0f7fa}.bg-cyan-100{background-color:#b2ebf2}.bg-cyan-200{background-color:#80deea}.bg-cyan-300{background-color:#4dd0e1}.bg-cyan-400{background-color:#26c6da}.bg-cyan-500{background-color:#00bcd4}.bg-cyan-600{background-color:#00acc1}.bg-cyan-700{background-color:#0097a7}.bg-cyan-800{background-color:#00838f}.bg-cyan-900{background-color:#006064}.bg-cyan-a100{background-color:#84ffff}.bg-cyan-a200{background-color:#18ffff}.bg-cyan-a400{background-color:#00e5ff}.bg-cyan-a700{background-color:#00b8d4}.bg-teal{background-color:#009688}.bg-teal-50{background-color:#e0f2f1}.bg-teal-100{background-color:#b2dfdb}.bg-teal-200{background-color:#80cbc4}.bg-teal-300{background-color:#4db6ac}.bg-teal-400{background-color:#26a69a}.bg-teal-500{background-color:#009688}.bg-teal-600{background-color:#00897b}.bg-teal-700{background-color:#00796b}.bg-teal-800{background-color:#00695c}.bg-teal-900{background-color:#004d40}.bg-teal-a100{background-color:#a7ffeb}.bg-teal-a200{background-color:#64ffda}.bg-teal-a400{background-color:#1de9b6}.bg-teal-a700{background-color:#00bfa5}.bg-green{background-color:#4caf50}.bg-green-50{background-color:#e8f5e9}.bg-green-100{background-color:#c8e6c9}.bg-green-200{background-color:#a5d6a7}.bg-green-300{background-color:#81c784}.bg-green-400{background-color:#66bb6a}.bg-green-500{background-color:#4caf50}.bg-green-600{background-color:#43a047}.bg-green-700{background-color:#388e3c}.bg-green-800{background-color:#2e7d32}.bg-green-900{background-color:#1b5e20}.bg-green-a100{background-color:#b9f6ca}.bg-green-a200{background-color:#69f0ae}.bg-green-a400{background-color:#00e676}.bg-green-a700{background-color:#00c853}.bg-light-green{background-color:#8bc34a}.bg-light-green-50{background-color:#f1f8e9}.bg-light-green-100{background-color:#dcedc8}.bg-light-green-200{background-color:#c5e1a5}.bg-light-green-300{background-color:#aed581}.bg-light-green-400{background-color:#9ccc65}.bg-light-green-500{background-color:#8bc34a}.bg-light-green-600{background-color:#7cb342}.bg-light-green-700{background-color:#689f38}.bg-light-green-800{background-color:#558b2f}.bg-light-green-900{background-color:#33691e}.bg-light-green-a100{background-color:#ccff90}.bg-light-green-a200{background-color:#b2ff59}.bg-light-green-a400{background-color:#76ff03}.bg-light-green-a700{background-color:#64dd17}.bg-lime{background-color:#cddc39}.bg-lime-50{background-color:#f9fbe7}.bg-lime-100{background-color:#f0f4c3}.bg-lime-200{background-color:#e6ee9c}.bg-lime-300{background-color:#dce775}.bg-lime-400{background-color:#d4e157}.bg-lime-500{background-color:#cddc39}.bg-lime-600{background-color:#c0ca33}.bg-lime-700{background-color:#afb42b}.bg-lime-800{background-color:#9e9d24}.bg-lime-900{background-color:#827717}.bg-lime-a100{background-color:#f4ff81}.bg-lime-a200{background-color:#eeff41}.bg-lime-a400{background-color:#c6ff00}.bg-lime-a700{background-color:#aeea00}.bg-yellow{background-color:#ffeb3b}.bg-yellow-50{background-color:#fffde7}.bg-yellow-100{background-color:#fff9c4}.bg-yellow-200{background-color:#fff59d}.bg-yellow-300{background-color:#fff176}.bg-yellow-400{background-color:#ffee58}.bg-yellow-500{background-color:#ffeb3b}.bg-yellow-600{background-color:#fdd835}.bg-yellow-700{background-color:#fbc02d}.bg-yellow-800{background-color:#f9a825}.bg-yellow-900{background-color:#f57f17}.bg-yellow-a100{background-color:#ffff8d}.bg-yellow-a200{background-color:#ff0}.bg-yellow-a400{background-color:#ffea00}.bg-yellow-a700{background-color:#ffd600}.bg-amber{background-color:#ffc107}.bg-amber-50{background-color:#fff8e1}.bg-amber-100{background-color:#ffecb3}.bg-amber-200{background-color:#ffe082}.bg-amber-300{background-color:#ffd54f}.bg-amber-400{background-color:#ffca28}.bg-amber-500{background-color:#ffc107}.bg-amber-600{background-color:#ffb300}.bg-amber-700{background-color:#ffa000}.bg-amber-800{background-color:#ff8f00}.bg-amber-900{background-color:#ff6f00}.bg-amber-a100{background-color:#ffe57f}.bg-amber-a200{background-color:#ffd740}.bg-amber-a400{background-color:#ffc400}.bg-amber-a700{background-color:#ffab00}.bg-orange{background-color:#ff9800}.bg-orange-50{background-color:#fff3e0}.bg-orange-100{background-color:#ffe0b2}.bg-orange-200{background-color:#ffcc80}.bg-orange-300{background-color:#ffb74d}.bg-orange-400{background-color:#ffa726}.bg-orange-500{background-color:#ff9800}.bg-orange-600{background-color:#fb8c00}.bg-orange-700{background-color:#f57c00}.bg-orange-800{background-color:#ef6c00}.bg-orange-900{background-color:#e65100}.bg-orange-a100{background-color:#ffd180}.bg-orange-a200{background-color:#ffab40}.bg-orange-a400{background-color:#ff9100}.bg-orange-a700{background-color:#ff6d00}.bg-deep-orange{background-color:#ff5722}.bg-deep-orange-50{background-color:#fbe9e7}.bg-deep-orange-100{background-color:#ffccbc}.bg-deep-orange-200{background-color:#ffab91}.bg-deep-orange-300{background-color:#ff8a65}.bg-deep-orange-400{background-color:#ff7043}.bg-deep-orange-500{background-color:#ff5722}.bg-deep-orange-600{background-color:#f4511e}.bg-deep-orange-700{background-color:#e64a19}.bg-deep-orange-800{background-color:#d84315}.bg-deep-orange-900{background-color:#bf360c}.bg-deep-orange-a100{background-color:#ff9e80}.bg-deep-orange-a200{background-color:#ff6e40}.bg-deep-orange-a400{background-color:#ff3d00}.bg-deep-orange-a700{background-color:#dd2c00}.bg-brown{background-color:#795548}.bg-brown-50{background-color:#efebe9}.bg-brown-100{background-color:#d7ccc8}.bg-brown-200{background-color:#bcaaa4}.bg-brown-300{background-color:#a1887f}.bg-brown-400{background-color:#8d6e63}.bg-brown-500{background-color:#795548}.bg-brown-600{background-color:#6d4c41}.bg-brown-700{background-color:#5d4037}.bg-brown-800{background-color:#4e342e}.bg-brown-900{background-color:#3e2723}.bg-grey{background-color:#9e9e9e}.bg-grey-50{background-color:#fafafa}.bg-grey-100{background-color:#f5f5f5}.bg-grey-200{background-color:#eee}.bg-grey-300{background-color:#e0e0e0}.bg-grey-400{background-color:#bdbdbd}.bg-grey-500{background-color:#9e9e9e}.bg-grey-600{background-color:#757575}.bg-grey-700{background-color:#616161}.bg-grey-800{background-color:#424242}.bg-grey-900{background-color:#212121}.bg-blue-grey{background-color:#607d8b}.bg-blue-grey-50{background-color:#eceff1}.bg-blue-grey-100{background-color:#cfd8dc}.bg-blue-grey-200{background-color:#b0bec5}.bg-blue-grey-300{background-color:#90a4ae}.bg-blue-grey-400{background-color:#78909c}.bg-blue-grey-500{background-color:#607d8b}.bg-blue-grey-600{background-color:#546e7a}.bg-blue-grey-700{background-color:#455a64}.bg-blue-grey-800{background-color:#37474f}.bg-blue-grey-900{background-color:#263238}.bg-black{background-color:#000}.bg-white{background-color:#fff}.fg-red{color:#f44336}.fg-red-50{color:#ffebee}.fg-red-100{color:#ffcdd2}.fg-red-200{color:#ef9a9a}.fg-red-300{color:#e57373}.fg-red-400{color:#ef5350}.fg-red-500{color:#f44336}.fg-red-600{color:#e53935}.fg-red-700{color:#d32f2f}.fg-red-800{color:#c62828}.fg-red-900{color:#b71c1c}.fg-red-a100{color:#ff8a80}.fg-red-a200{color:#ff5252}.fg-red-a400{color:#ff1744}.fg-red-a700{color:#d50000}.fg-pink{color:#e91e63}.fg-pink-50{color:#fce4ec}.fg-pink-100{color:#f8bbd0}.fg-pink-200{color:#f48fb1}.fg-pink-300{color:#f06292}.fg-pink-400{color:#ec407a}.fg-pink-500{color:#e91e63}.fg-pink-600{color:#d81b60}.fg-pink-700{color:#c2185b}.fg-pink-800{color:#ad1457}.fg-pink-900{color:#880e4f}.fg-pink-a100{color:#ff80ab}.fg-pink-a200{color:#ff4081}.fg-pink-a400{color:#f50057}.fg-pink-a700{color:#c51162}.fg-purple{color:#9c27b0}.fg-purple-50{color:#f3e5f5}.fg-purple-100{color:#e1bee7}.fg-purple-200{color:#ce93d8}.fg-purple-300{color:#ba68c8}.fg-purple-400{color:#ab47bc}.fg-purple-500{color:#9c27b0}.fg-purple-600{color:#8e24aa}.fg-purple-700{color:#7b1fa2}.fg-purple-800{color:#6a1b9a}.fg-purple-900{color:#4a148c}.fg-purple-a100{color:#ea80fc}.fg-purple-a200{color:#e040fb}.fg-purple-a400{color:#d500f9}.fg-purple-a700{color:#a0f}.fg-deep-purple{color:#673ab7}.fg-deep-purple-50{color:#ede7f6}.fg-deep-purple-100{color:#d1c4e9}.fg-deep-purple-200{color:#b39ddb}.fg-deep-purple-300{color:#9575cd}.fg-deep-purple-400{color:#7e57c2}.fg-deep-purple-500{color:#673ab7}.fg-deep-purple-600{color:#5e35b1}.fg-deep-purple-700{color:#512da8}.fg-deep-purple-800{color:#4527a0}.fg-deep-purple-900{color:#311b92}.fg-deep-purple-a100{color:#b388ff}.fg-deep-purple-a200{color:#7c4dff}.fg-deep-purple-a400{color:#651fff}.fg-deep-purple-a700{color:#6200ea}.fg-indigo{color:#3f51b5}.fg-indigo-50{color:#e8eaf6}.fg-indigo-100{color:#c5cae9}.fg-indigo-200{color:#9fa8da}.fg-indigo-300{color:#7986cb}.fg-indigo-400{color:#5c6bc0}.fg-indigo-500{color:#3f51b5}.fg-indigo-600{color:#3949ab}.fg-indigo-700{color:#303f9f}.fg-indigo-800{color:#283593}.fg-indigo-900{color:#1a237e}.fg-indigo-a100{color:#8c9eff}.fg-indigo-a200{color:#536dfe}.fg-indigo-a400{color:#3d5afe}.fg-indigo-a700{color:#304ffe}.fg-blue{color:#2196f3}.fg-blue-50{color:#e3f2fd}.fg-blue-100{color:#bbdefb}.fg-blue-200{color:#90caf9}.fg-blue-300{color:#64b5f6}.fg-blue-400{color:#42a5f5}.fg-blue-500{color:#2196f3}.fg-blue-600{color:#1e88e5}.fg-blue-700{color:#1976d2}.fg-blue-800{color:#1565c0}.fg-blue-900{color:#0d47a1}.fg-blue-a100{color:#82b1ff}.fg-blue-a200{color:#448aff}.fg-blue-a400{color:#2979ff}.fg-blue-a700{color:#2962ff}.fg-light-blue{color:#03a9f4}.fg-light-blue-50{color:#e1f5fe}.fg-light-blue-100{color:#b3e5fc}.fg-light-blue-200{color:#81d4fa}.fg-light-blue-300{color:#4fc3f7}.fg-light-blue-400{color:#29b6f6}.fg-light-blue-500{color:#03a9f4}.fg-light-blue-600{color:#039be5}.fg-light-blue-700{color:#0288d1}.fg-light-blue-800{color:#0277bd}.fg-light-blue-900{color:#01579b}.fg-light-blue-a100{color:#80d8ff}.fg-light-blue-a200{color:#40c4ff}.fg-light-blue-a400{color:#00b0ff}.fg-light-blue-a700{color:#0091ea}.fg-cyan{color:#00bcd4}.fg-cyan-50{color:#e0f7fa}.fg-cyan-100{color:#b2ebf2}.fg-cyan-200{color:#80deea}.fg-cyan-300{color:#4dd0e1}.fg-cyan-400{color:#26c6da}.fg-cyan-500{color:#00bcd4}.fg-cyan-600{color:#00acc1}.fg-cyan-700{color:#0097a7}.fg-cyan-800{color:#00838f}.fg-cyan-900{color:#006064}.fg-cyan-a100{color:#84ffff}.fg-cyan-a200{color:#18ffff}.fg-cyan-a400{color:#00e5ff}.fg-cyan-a700{color:#00b8d4}.fg-teal{color:#009688}.fg-teal-50{color:#e0f2f1}.fg-teal-100{color:#b2dfdb}.fg-teal-200{color:#80cbc4}.fg-teal-300{color:#4db6ac}.fg-teal-400{color:#26a69a}.fg-teal-500{color:#009688}.fg-teal-600{color:#00897b}.fg-teal-700{color:#00796b}.fg-teal-800{color:#00695c}.fg-teal-900{color:#004d40}.fg-teal-a100{color:#a7ffeb}.fg-teal-a200{color:#64ffda}.fg-teal-a400{color:#1de9b6}.fg-teal-a700{color:#00bfa5}.fg-green{color:#4caf50}.fg-green-50{color:#e8f5e9}.fg-green-100{color:#c8e6c9}.fg-green-200{color:#a5d6a7}.fg-green-300{color:#81c784}.fg-green-400{color:#66bb6a}.fg-green-500{color:#4caf50}.fg-green-600{color:#43a047}.fg-green-700{color:#388e3c}.fg-green-800{color:#2e7d32}.fg-green-900{color:#1b5e20}.fg-green-a100{color:#b9f6ca}.fg-green-a200{color:#69f0ae}.fg-green-a400{color:#00e676}.fg-green-a700{color:#00c853}.fg-light-green{color:#8bc34a}.fg-light-green-50{color:#f1f8e9}.fg-light-green-100{color:#dcedc8}.fg-light-green-200{color:#c5e1a5}.fg-light-green-300{color:#aed581}.fg-light-green-400{color:#9ccc65}.fg-light-green-500{color:#8bc34a}.fg-light-green-600{color:#7cb342}.fg-light-green-700{color:#689f38}.fg-light-green-800{color:#558b2f}.fg-light-green-900{color:#33691e}.fg-light-green-a100{color:#ccff90}.fg-light-green-a200{color:#b2ff59}.fg-light-green-a400{color:#76ff03}.fg-light-green-a700{color:#64dd17}.fg-lime{color:#cddc39}.fg-lime-50{color:#f9fbe7}.fg-lime-100{color:#f0f4c3}.fg-lime-200{color:#e6ee9c}.fg-lime-300{color:#dce775}.fg-lime-400{color:#d4e157}.fg-lime-500{color:#cddc39}.fg-lime-600{color:#c0ca33}.fg-lime-700{color:#afb42b}.fg-lime-800{color:#9e9d24}.fg-lime-900{color:#827717}.fg-lime-a100{color:#f4ff81}.fg-lime-a200{color:#eeff41}.fg-lime-a400{color:#c6ff00}.fg-lime-a700{color:#aeea00}.fg-yellow{color:#ffeb3b}.fg-yellow-50{color:#fffde7}.fg-yellow-100{color:#fff9c4}.fg-yellow-200{color:#fff59d}.fg-yellow-300{color:#fff176}.fg-yellow-400{color:#ffee58}.fg-yellow-500{color:#ffeb3b}.fg-yellow-600{color:#fdd835}.fg-yellow-700{color:#fbc02d}.fg-yellow-800{color:#f9a825}.fg-yellow-900{color:#f57f17}.fg-yellow-a100{color:#ffff8d}.fg-yellow-a200{color:#ff0}.fg-yellow-a400{color:#ffea00}.fg-yellow-a700{color:#ffd600}.fg-amber{color:#ffc107}.fg-amber-50{color:#fff8e1}.fg-amber-100{color:#ffecb3}.fg-amber-200{color:#ffe082}.fg-amber-300{color:#ffd54f}.fg-amber-400{color:#ffca28}.fg-amber-500{color:#ffc107}.fg-amber-600{color:#ffb300}.fg-amber-700{color:#ffa000}.fg-amber-800{color:#ff8f00}.fg-amber-900{color:#ff6f00}.fg-amber-a100{color:#ffe57f}.fg-amber-a200{color:#ffd740}.fg-amber-a400{color:#ffc400}.fg-amber-a700{color:#ffab00}.fg-orange{color:#ff9800}.fg-orange-50{color:#fff3e0}.fg-orange-100{color:#ffe0b2}.fg-orange-200{color:#ffcc80}.fg-orange-300{color:#ffb74d}.fg-orange-400{color:#ffa726}.fg-orange-500{color:#ff9800}.fg-orange-600{color:#fb8c00}.fg-orange-700{color:#f57c00}.fg-orange-800{color:#ef6c00}.fg-orange-900{color:#e65100}.fg-orange-a100{color:#ffd180}.fg-orange-a200{color:#ffab40}.fg-orange-a400{color:#ff9100}.fg-orange-a700{color:#ff6d00}.fg-deep-orange{color:#ff5722}.fg-deep-orange-50{color:#fbe9e7}.fg-deep-orange-100{color:#ffccbc}.fg-deep-orange-200{color:#ffab91}.fg-deep-orange-300{color:#ff8a65}.fg-deep-orange-400{color:#ff7043}.fg-deep-orange-500{color:#ff5722}.fg-deep-orange-600{color:#f4511e}.fg-deep-orange-700{color:#e64a19}.fg-deep-orange-800{color:#d84315}.fg-deep-orange-900{color:#bf360c}.fg-deep-orange-a100{color:#ff9e80}.fg-deep-orange-a200{color:#ff6e40}.fg-deep-orange-a400{color:#ff3d00}.fg-deep-orange-a700{color:#dd2c00}.fg-brown{color:#795548}.fg-brown-50{color:#efebe9}.fg-brown-100{color:#d7ccc8}.fg-brown-200{color:#bcaaa4}.fg-brown-300{color:#a1887f}.fg-brown-400{color:#8d6e63}.fg-brown-500{color:#795548}.fg-brown-600{color:#6d4c41}.fg-brown-700{color:#5d4037}.fg-brown-800{color:#4e342e}.fg-brown-900{color:#3e2723}.fg-grey{color:#9e9e9e}.fg-grey-50{color:#fafafa}.fg-grey-100{color:#f5f5f5}.fg-grey-200{color:#eee}.fg-grey-300{color:#e0e0e0}.fg-grey-400{color:#bdbdbd}.fg-grey-500{color:#9e9e9e}.fg-grey-600{color:#757575}.fg-grey-700{color:#616161}.fg-grey-800{color:#424242}.fg-grey-900{color:#212121}.fg-blue-grey{color:#607d8b}.fg-blue-grey-50{color:#eceff1}.fg-blue-grey-100{color:#cfd8dc}.fg-blue-grey-200{color:#b0bec5}.fg-blue-grey-300{color:#90a4ae}.fg-blue-grey-400{color:#78909c}.fg-blue-grey-500{color:#607d8b}.fg-blue-grey-600{color:#546e7a}.fg-blue-grey-700{color:#455a64}.fg-blue-grey-800{color:#37474f}.fg-blue-grey-900{color:#263238}.fg-black{color:#000}.fg-white{color:#fff}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0}body{font-family:Roboto Condensed,sans-serif;font-size:12px;height:100%;line-height:1.6;overflow-x:hidden}a{color:#5e81ac;text-decoration:none}a:hover{color:#666}a.active{color:#b48ead}ul{list-style:none}img{width:100%}.container{margin:auto;max-width:1100px;overflow-y:scroll;padding:0 2rem}hr{border-width:0;border-top:1px solid #2e3440;margin-bottom:2rem;margin-top:2.2rem}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.pad{padding:.5rem}.pad--1{padding:1rem}.pad--2{padding:2rem}.pad--3{padding:3rem}.pady{padding:.5rem 0}.pady--top{padding-top:.5rem}.pady--bottom{padding-bottom:.5rem}.pady--1{padding:1rem 0}.pady--2{padding:2rem 0}.pady--3{padding:3rem 0}.padx{padding:0 .5rem}.padx--right{padding-right:.5rem}.padx--left{padding-left:.5rem}.padx--1{padding:0 1rem}.padx--2{padding:0 2rem}.padx--3{padding:0 3rem}.grid{display:-webkit-box;display:flex;display:-ms-flexbox;-ms-flex-wrap:wrap;flex-wrap:wrap}.grid--1{grid-gap:1rem;display:grid;grid-template-columns:repeat(1,1fr)}.grid--2{grid-gap:1rem;display:grid;grid-template-columns:repeat(2,1fr)}.grid--3{grid-gap:1px;display:grid;grid-template-columns:repeat(3,1fr)}.grid--4{grid-gap:1rem;display:grid;grid-template-columns:repeat(4,1fr)}.row{margin-left:3px;margin-right:3px}.row:after,.row:before{content:" ";display:table}.row:after{clear:both}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.col-1{width:8.33333%}.col-2{width:16.66667%}.col-3{width:25%}.col-4{width:33.33333%}.col-5{width:41.66667%}.col-6{width:50%}.col-7{width:58.33333%}.col-8{width:66.66667%}.col-9{width:75%}.col-10{width:83.33333%}.col-11{width:91.66667%}.col-12{margin-left:0;width:100%}.col-1-3rd{width:32.666667%}.col-2-3rd{width:65.3333333333%}.col-half{width:48%}.offset-1-col{margin-left:8.66666666667%}.offset-2-col{margin-left:17.3333333333%}.offset-3-col{margin-left:26%}.offset-4-col{margin-left:34.6666666667%}.offset-5-col{margin-left:43.3333333333%}.offset-6-col{margin-left:52%}.offset-7-col{margin-left:60.6666666667%}.offset-8-col{margin-left:69.3333333333%}.offset-9-col{margin-left:78%}.offset-10-col{margin-left:86.6666666667%}.offset-11-col{margin-left:95.3333333333%}.offset-1-3rd-col{margin-left:34.6666666667%}.offset-2-3rd-col{margin-left:69.3333333333%}.offset-half-col{margin-left:52%}.x-large{font-size:4rem}.large,.x-large{line-height:1.2;margin-bottom:1rem}.large{font-size:3rem}.lead{font-size:1.5rem;margin-bottom:1rem}.text-primary{color:#5e81ac}.text-dark,.text-light{color:#2e3440}.text-success{color:#a3be8c}.text-danger{color:#bf616a}.text-highlight{color:#b48ead}.text-highlight2{color:#ebcb8b}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-display1,h1{font-size:34px;font-weight:400;line-height:40px}.text-title,h3{font-size:20px;font-weight:400;line-height:28px}.text-subhead,h4{font-size:16px;font-weight:400;line-height:24px}.text-body2,h5{font-size:14px;font-weight:500;line-height:24px}.text-body1{font-size:14px;font-weight:400;line-height:20px}.text-caption{font-size:12px;font-weight:400;line-height:16px}.align-middle{vertical-align:middle!important}.all-center{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;justify-content:center;margin:auto;text-align:center;width:100%}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-bottom{vertical-align:bottom!important}.btn,.btn--slim{background:#e5e9f0;border:none;color:#333;cursor:pointer;display:inline-block;font-size:1rem;margin-right:.5rem;outline:none;padding:.4rem 1.3rem;-webkit-transition:opacity .2s ease-in;transition:opacity .2s ease-in}.btn--slim:disabled,.btn:disabled{-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:.6;pointer-events:none}.btn--slim:enabled:hover,.btn:enabled:hover{opacity:.8}.btn--slim{padding:.4rem}.btn-link{background:none;margin:0;padding:0}.btn-block{display:block;width:100%}.btn-sm,.btn-sm--slim{font-size:.8rem;margin-right:.2rem;padding:.3rem 1rem}.btn-sm--slim{padding:.3rem}.badge{border-radius:3px;display:inline-block;font-size:.6rem;margin:.3rem;padding:.1rem .4rem;text-align:center}.alert,.badge{background:#e5e9f0;color:#333}.alert{margin:1rem 0;opacity:.9;padding:.7rem}.alert-primary,.badge-primary,.bg-primary,.btn-primary{background:#5e81ac;color:#fff}.alert-light,.badge-light,.bg-light,.btn-light{background:#e5e9f0;color:#333}.alert-dark,.badge-dark,.bg-dark,.btn-dark{background:#2e3440;color:#fff}.alert-danger,.badge-danger,.bg-danger,.btn-danger{background:#bf616a;color:#fff}.alert-success,.badge-success,.bg-success,.btn-success{background:#a3be8c;color:#fff}.alert-white,.badge-white,.bg-white,.btn-white{background:#fff;border:1px solid #ccc;color:#333}.badge-light,.bg-light{border:1px solid #ccc}.table-responsive{display:block;overflow-x:auto;width:100%}table{border:0;border-collapse:collapse;margin-bottom:1rem;max-width:100%;width:100%}tr{border-top:1px solid #ccc}tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.04)}tbody td{border-top:1px solid #e1e1e1}.navbar{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-align:center;-ms-flex-align:center;align-items:center;justify-content:space-between;margin-bottom:1rem;min-height:56px;opacity:.9;position:fixed;width:100%;z-index:2}.navbar,.navbar ul{display:-webkit-box;display:-ms-flexbox;display:flex}.navbar a{color:#fff;margin:0 .25rem;padding:.45rem}.navbar a:hover{color:#e5e9f0}.navbar .welcome span{margin-right:.6rem}.navbar .navbar-section{-webkit-box-align:center;-webkit-box-flex:1;-ms-flex-align:center;align-items:center;display:-webkit-box;display:flex;display:-ms-flexbox;-ms-flex:1 0 0;flex:1 0 0}.navbar .navbar-section:not(:first-child):last-child{-ms-flex-pack:end;-webkit-box-pack:end;justify-content:flex-end}.navbar .navbar-brand{font-size:200%;font-weight:700}header+div.container{height:calc(100vh - 56px);max-height:calc(100vh - 56px);overflow:auto;position:relative;top:56px}.m{margin:.5rem}.m--1{margin:1rem}.m--2{margin:2rem}.m--3{margin:3rem}.mb{margin-bottom:.1rem!important}.mb--1{margin-bottom:.2rem!important}.mb--2{margin-bottom:.4rem!important}.ml{margin-left:.1rem!important}.ml--1{margin-left:.2rem!important}.ml--2{margin-left:.4rem!important}.mr{margin-right:.1rem!important}.mr--1{margin-right:.2rem!important}.mr .mr-2{margin-right:.4rem!important}.mt{margin-top:.1rem!important}.mt--1{margin-top:.2rem!important}.mt--2{margin-top:.4rem!important}.mx{margin-left:.5rem!important;margin-right:.5rem!important}.mx--1{margin-left:1rem!important;margin-right:1rem!important}.mx--2{margin-left:2rem!important;margin-right:2rem!important}.my{margin:.5rem 0}.my--1{margin:1rem 0}.my--2{margin:2rem 0}.my--3{margin:3rem 0}.card,.card--slim{border:1px dotted #ccc;margin:.7rem 0;padding:1rem}.card--slim{padding:5px}.cardTitle{border-bottom:1px solid #eee;margin-bottom:15px}.cardV2{background-color:#fff;border-radius:4px;-webkit-box-shadow:0 0 4px 0 rgba(0,0,0,.14),0 3px 4px 0 rgba(0,0,0,.12),0 1px 5px 0 rgba(0,0,0,.2);box-shadow:0 0 4px 0 rgba(0,0,0,.14),0 3px 4px 0 rgba(0,0,0,.12),0 1px 5px 0 rgba(0,0,0,.2);min-width:0}.seemore{font-size:14px;font-weight:500}.cardLink{color:#2196f3;margin-top:10px}.dropdown{display:inline-block;position:relative}[data-toggle=dropdown]{outline:0}.dropdown__menu{background-clip:padding-box;background-color:#f6f7f9;border-radius:5px;-webkit-box-shadow:0 1px 3px hsla(0,0%,8%,.12),0 1px 2px hsla(0,0%,8%,.24);box-shadow:0 1px 3px hsla(0,0%,8%,.12),0 1px 2px hsla(0,0%,8%,.24);display:none;font-size:18px;list-style:none;margin:2px 0 0;min-width:160px;padding:5px 0;position:absolute;text-align:left;z-index:100}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.dropdown__menu{border-left:1px solid hsla(0,0%,8%,.12);border-top:1px solid hsla(0,0%,8%,.12)}}@supports (-ms-ime-align:auto){.dropdown__menu{border-left:1px solid hsla(0,0%,8%,.12);border-top:1px solid hsla(0,0%,8%,.12)}}.dropdown__menu.-is-open{display:block}.dropdown__menu>li>a{clear:both;color:#5e81ac;display:block;font-weight:400;line-height:20px;padding:3px 20px;text-decoration:none;white-space:nowrap}.dropdown__menu>li>a .selected,.dropdown__menu>li>a:focus,.dropdown__menu>li>a:hover{background-color:#e5e9f0;color:#d08770;text-decoration:none}.dropdown__menu>.-is-disabled>a,.dropdown__menu>.-is-disabled>a:focus,.dropdown__menu>.-is-disabled>a:hover{color:#4c566a}.dropdown__menu>.-is-disabled>a .selected,.dropdown__menu>.-is-disabled>a:focus,.dropdown__menu>.-is-disabled>a:hover{background-color:transparent;background-image:none;cursor:not-allowed;text-decoration:none}.dropdown__menu--right{left:auto;right:0}.dropdown--up>.dropdown__menu{margin:0 0 2px}.dropdown--right>.dropdown__menu{margin:0 0 0 2px}.dropdown--left>.dropdown__menu{margin:0 2px 0 0}input{margin:.2rem 0}.form-text{color:#888;display:block;margin-top:.3rem}input[type=date],input[type=email],input[type=password],input[type=text],select,textarea{border:1px solid #ccc;display:block;padding:.1rem;width:100%}button,input[type=submit]{font:inherit}label,legend{display:block;font-weight:600;margin-bottom:.1rem}input[type=checkbox],input[type=radio]{display:inline}label>.label-body{background-color:#dcc894;display:inline-block;font-weight:400;margin-left:.5rem}table td,table th{padding:1rem;text-align:left}table th{background:var(--light-color)}.list{margin:.5rem 0}.list li{padding-bottom:.3rem}.dataRow{cursor:pointer}.modalWindow{background:rgba(0,0,0,.2);bottom:0;left:0;opacity:0;pointer-events:none;position:fixed;right:0;text-align:center;top:0;z-index:99999}.modalWindow:target{opacity:1;pointer-events:auto}.modalWindow>div{background:#fff;margin:10% auto;position:relative;width:500px}.alias{cursor:alias}.all-scroll{cursor:all-scroll}.auto{cursor:auto}.cell{cursor:cell}.context-menu{cursor:context-menu}.col-resize{cursor:col-resize}.copy{cursor:copy}.crosshair{cursor:crosshair}.default{cursor:default}.e-resize{cursor:e-resize}.ew-resize{cursor:ew-resize}.grab{cursor:-webkit-grab;cursor:grab}.grabbing{cursor:-webkit-grabbing;cursor:grabbing}.help{cursor:help}.move{cursor:move}.n-resize{cursor:n-resize}.ne-resize{cursor:ne-resize}.nesw-resize{cursor:nesw-resize}.ns-resize{cursor:ns-resize}.nw-resize{cursor:nw-resize}.nwse-resize{cursor:nwse-resize}.no-drop{cursor:no-drop}.none{cursor:none}.not-allowed{cursor:not-allowed}.pointer{cursor:pointer}.progress{cursor:progress}.row-resize{cursor:row-resize}.s-resize{cursor:s-resize}.se-resize{cursor:se-resize}.sw-resize{cursor:sw-resize}.text{cursor:text}.url{cursor:pointer}.w-resize{cursor:w-resize}.wait{cursor:wait}.zoom-in{cursor:-webkit-zoom-in;cursor:zoom-in}.zoom-out{cursor:-webkit-zoom-out;cursor:zoom-out}.panel{background-color:#fff;border-radius:0;-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,.16),0 0 2px 0 rgba(0,0,0,.12);box-shadow:0 2px 2px 0 rgba(0,0,0,.16),0 0 2px 0 rgba(0,0,0,.12);margin-bottom:20px;padding:15px}.panel:after,.panel:before{content:" ";display:table}.panel:after{clear:both}.glassy{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(2px);background-color:rgba(31,28,23,.6)}.nrccAlert a{color:#00ffa2} +/*# sourceMappingURL=hammer.css.map */ \ No newline at end of file diff --git a/pb_public/favicon.png b/pb_public/favicon.png old mode 100644 new mode 100755 diff --git a/pb_public/global.css b/pb_public/global.css old mode 100644 new mode 100755 diff --git a/pb_public/index.html b/pb_public/index.html old mode 100644 new mode 100755 diff --git a/pb_public/manifest.json b/pb_public/manifest.json old mode 100644 new mode 100755 diff --git a/pb_public/service-worker.js b/pb_public/service-worker.js old mode 100644 new mode 100755 index 31f8064..1dd1c34 --- a/pb_public/service-worker.js +++ b/pb_public/service-worker.js @@ -24,7 +24,7 @@ const filesToCache = [ '/build/bundle.css', '/build/bundle.js', '/build/fonts/fujicons.css', - '/build/fonts/fujicons.woff', + '/build/fonts/fujicons.ttf', '/img/Icon-36.png', '/img/Icon-48.png', '/img/Icon-72.png', @@ -36,6 +36,7 @@ const filesToCache = [ self.addEventListener('install', function(e) { console.log('[ServiceWorker] Install'); + return; e.waitUntil( caches.open(cacheName).then(function(cache) { console.log('[ServiceWorker] Caching app shell');