in the will and told you at her bedside that if you went out you could see four lights, and that those were the lights of the other country, and that they would guide you to the far shore. You sail out further now than you have ever gone. Behind you, the silt gathers on the harbour as if to lock you out. After what feels like an age, you look up to find the moon obfuscated by clouds. Behind you, the lighthouse and the steamer are too far away to make out. Your lamp extinguishes itself, and you realise now that your mother is <<revision cfive>><<revise cfive "gone" "gone" end>>. <<gains>><<display 'conclusion5'>><<endrevision>>
.\n\nIt's been hours now and the lamp has gone out. Behind you, the beam of the lighthouse is nowhere to be seen. You remember your mother, and how the silt built up in her lungs as she grew weaker until the doctors said there was enough to fill a shore. There is no shore, only the sea. The sea, and you, and the [[boat|Credits]].
//This Twine uses sound and is best played with headphones//\n\n[[Start|Passage]]
(function () {\n "use strict";\n version.extensions['soundMacros'] = {\n major: 1,\n minor: 1,\n revision: 2\n };\n var p = macros['playsound'] = {\n soundtracks: {},\n handler: function (a, b, c, d) {\n var loop = function (m) {\n if (m.loop == undefined) {\n m.loopfn = function () {\n this.play();\n };\n m.addEventListener('ended', m.loopfn, 0);\n } else m.loop = true;\n m.play();\n };\n var s = eval(d.fullArgs());\n if (s) {\n s = s.toString();\n var m = this.soundtracks[s.slice(0, s.lastIndexOf("."))];\n if (m) {\n if (b == "playsound") {\n m.play();\n } else if (b == "loopsound") {\n loop(m);\n } else if (b == "pausesound") {\n m.pause();\n } else if (b == "unloopsound") {\n if (m.loop != undefined) {\n m.loop = false;\n } else if (m.loopfn) {\n m.removeEventListener('ended', m.loopfn);\n delete m.loopfn;\n }\n } else if (b == "stopsound") {\n m.pause();\n m.currentTime = 0;\n } else if (b == "fadeoutsound" || b == "fadeinsound") {\n if (m.interval) clearInterval(m.interval);\n if (b == "fadeinsound") {\n if (m.currentTime>0) return;\n m.volume = 0;\n loop(m);\n } else {\n if (!m.currentTime) return;\n m.play();\n }\n var v = m.volume;\n m.interval = setInterval(function () {\n v = Math.min(1, Math.max(0, v + 0.005 * (b == "fadeinsound" ? 1 : -1)));\n m.volume = Math.easeInOut(v);\n if (v == 0 || v == 1) clearInterval(m.interval);\n if (v == 0) {\n m.pause();\n m.currentTime = 0;\n m.volume = 1;\n }\n }, 10);\n }\n }\n }\n }\n }\n macros['fadeinsound'] = p;\n macros['fadeoutsound'] = p;\n macros['unloopsound'] = p;\n macros['loopsound'] = p;\n macros['pausesound'] = p;\n macros['stopsound'] = p;\n macros['stopallsound'] = {\n handler: function () {\n var s = macros.playsound.soundtracks;\n for (var j in s) {\n\t\tif (s.hasOwnProperty(j)) {\n s[j].pause();\n if (s[j].currentTime) {\n\t\t s[j].currentTime = 0;\n\t\t }\n\t\t}\n }\n }\n }\n var div = document.getElementById("storeArea").firstChild;\n var fe = ["ogg", "mp3", "wav", "webm"];\n while (div) {\n var b = String.fromCharCode(92);\n var q = '"';\n var re = "['" + q + "]([^" + q + "']*?)" + b + ".(ogg|mp3|wav|webm)['" + q + "]";\n k(new RegExp(re, "gi"));\n div = div.nextSibling;\n }\n\n function k(c, e) {\n do {\n var d = c.exec(div.innerHTML);\n if (d) {\n var a = new Audio();\n if (a.canPlayType) {\n for (var i = -1; i < fe.length; i += 1) {\n if (i >= 0) d[2] = fe[i];\n if (a.canPlayType("audio/" + d[2])) break;\n }\n if (i < fe.length) {\n a.setAttribute("src", d[1] + "." + d[2]);\n a.interval = null;\n macros.playsound.soundtracks[d[1]] = a;\n } else console.log("Browser can't play '" + d[1] + "'");\n }\n }\n } while (d);\n }\n}());
--Let the player undo moves? (on / off)\n--In Sugarcane, this enables the browser's back button.\n--In Jonah, this lets the player click links in previous\n--passages.\n\nUndo: off\n\n--Let the player use bookmarks? (on / off)\n--This enables the Bookmark links in Jonah and Sugarcane\n--(If the player can't undo, bookmarks are always disabled.)\nBookmark: on\n\n--Obfuscate the story's HTML source to prevent possible\n--spoilers? (swap / off)\n\nObfuscate: off\n\n--String of letter pairs to use for swap-style obfuscation\n\nObfuscateKey: uwlgsbcjyaevmzrxftipohdnqk\n\n--Include the jQuery script library? (on / off)\n\njQuery: off\n\n--Include the Modernizr script library? (on / off)\n\nModernizr: off\n
.\n\nUnable to see a path ahead, you know that you will never make it any further than you are now. You resign yourself to sleeping on the dinghy at least, looking up at the moon as it crosses over your head and eventually falls down to the horizon where it always crosses [[over|Credits]].
Inspired by //A Seascape, Shipping By Moonlight// by Claude Monet.\nWritten by [[Alex D. Jones|https://twitter.com/AlexDJones]].\n[[//Effigy//|http://log.rvaises.com/post/81881199672/effigy-is-a-modest-styling-for-twine-v1-4-2-using]] theme by Ben Swinden.\n[[Twine audio script|http://www.glorioustrainwrecks.com/node/5061]] by L.\nWave audio effects from sounddogs.\nMusic [[//Landlord//|http://thejuliets.bandcamp.com/album/the-juliets]] by The Juliets.\n\n[[Back|Start]]
Looking up to tell the time by the [[moon|Moon]], you find only clouds, dark and ruinous like a spillage of ink, trimmings of light around their borders and the faint shafts of moonbeams that break through gaps in the oppressive veil. You guess that it is about midnight, but perhaps that's just wishful thinking, the romance of childhood tales of the Witching Hour seeping into your mind as if through cloth. The sea is calm here in the harbour, gently rippling, nudging your small dinghy playfully from side to side. To the west, you can see the [[lighthouse|Lighthouse]] standing monolithic on a great concrete platform that extends far into the water, its moonbeam burning, blinking like an eye as it scans the surface of the waves, light dancing, dancing farther away, [[farther away|Ships]].\n\nYou see a small steamer down by the edge of the harbour water, white froth of water on the black hull as it cuts through the waves. And there beside it is a sloop of a dozen or so men, treading the sea aimlessly. Its sails are slack with the low wind, but your little vessel keeps going and you do not know why, or rather how. You remember this part of the harbour from when you were a child. Your father took you to where they were measuring the depth of the water and he told you about the silting, how the coming and going of the tide had made the harbour shallower each year, how the boats were finding it harder and harder to get in. He had looked out to the channel then as you do now and saw as you see the mouth of the harbour opening out to the yawning expanse of water, the gilded edges on the shifting tumult of the [[waves|Channel]].\n\n<<revision man>>You see the ghost of a <<revise man "man" "man" end>>.<<gains>> Infront of him is a folding <<revise board "board">> with intersecting lines on it. <<revision board>>He is staring intently at it.<<becomes>> The board is empty.<<endrevision>><<endrevision>>\n\n---\n\n\n\n\n\n-<<revise three "three">> <<revision three>>(Three off)<<becomes>>(Three on)<<endrevision>>\n\n-<<revise four "four">> <<revision four>>(Four off)<<becomes>>(Four on)<<endrevision>>\n\n---\n\n<<set $one_on = "no">> <<revision test>><<revise test "switch is off" "switch is off" end>><<becomes>>[[switch is on|Begin]]<<set $one_on = "yes">><<endrevision>>\n\n<<revision testtwo>><<revise testtwo "End" "End" end>><<becomes>><<if $one_on eq "yes">>Switch is on!<<else>>Switch is off!<<endif>><<endrevision>>\n\n\nEnding 1 - Shadows\nEnding 2 - \nEnding 3 - Gallery\nEnding 4 - \nEnding 5 - Something to do with Dover
.\n\nThe sheer scale of the steamer overwhelms you and brings into sharp relief the pitiful size of your own vessel. You look from your dinghy to the steamer, and then out to the darkess beyond the harbour walls, and decide that it cannot be done, whatever it is that you were hoping to [[do|Credits]].
lighthouse standing sentry-like on a great concrete platform that extends far into the water like the arm of Saint Kevin holding a blackbird's nest through the window of his prison cell. The lighthouse itself watches over the dark, its moonbeam burning, blinking like an eye as it scans the surface of the waves, light dancing on the water, dancing farther away, farther away.\n\nJust ahead of you is a great <<revision three>><<revise three "steamer" "steamer" end>> billowing spindrift clouds into the sky to threaten the light of the moon. You remember this part of the harbour from when you were a child. One day your mother took you to where they were measuring the depth of the water and she told you about the silting, how the coming and going of the tide had made the harbour shallower each year, how the boats were finding it harder and harder to get in. She had looked out to the sea then as you do now and saw as you see the mouth of the harbour opening out to the yawning expanse of water, the gilded edges on the shifting tumult of the <<revision cthree>><<revise cthree "waves" "waves" end>><<gains>><<display 'conclusion3'>><<endrevision>><<becomes>><<display 'Testthree'>><<endrevision>>
.\n\nThe darkness here is total. When you look over the side of the boat you cannot even see your own reflection in the water. You feel as if the shadows are in the air itself, like a thick mist. You breathe it in and sigh it out deeply, deep like the harbour used to be, silt gathering in your throat as you empty your [[lungs|Credits]].\n\n
\n[img[http://i.imgur.com/Nb5coOz.png]]\n\n--------------------[[Start|Begin]]--------------------[[Credits|Credits]]--------------------<<stopallsound>>
\n// Font\nWebFontConfig = {\n google: { families: [ 'Prata::latin' ] }\n };\n (function() {\n var wf = document.createElement('script');\n wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +\n '://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';\n wf.type = 'text/javascript';\n wf.async = 'true';\n var s = document.getElementsByTagName('script')[0];\n s.parentNode.insertBefore(wf, s);\n })();\n\n\n// Allow HTML tags in twine markup\n(function () {\n\tvar bs = String.fromCharCode(92);\n\tWikifier.formatters.unshift({\n\t\tname: "htmltag",\n\t\tmatch: "<"+bs+"w+(?:(?:"+bs+"s+"+bs+"w+(?:"+bs+"s*="+bs+"s*(?:"+'"'+".*?"+'"'+"|'.*?'|[^'"+'"'+">"+bs+"s]+))?)+"+bs+"s*|"+bs+"s*)"+bs+"/?>",\n\t\ttagname: "<("+bs+"w+)",\n\t\tvoid: ["br", "hr", "area", "img", "input", "embed", "param", "source", "track"],\n\t\thandler: function (a) {\n\t\t\tvar re, tn, e;\n\t\t\tre = new RegExp(this.tagname).exec(a.matchText);\n\t\t\ttn = re && re[1];\n\t\t\tif(tn) {\n\t\t\t\te = document.createElement(a.output.tagName);\n\t\t\t\te.innerHTML = a.matchText;\n\t\t\t\te = e.firstChild;\n\t\t\t\tif(this.void.indexOf(tn.toLowerCase()) == -1) {\n\t\t\t\t\ta.subWikify(e, "<" + bs + "/" + bs + "s*" + tn + bs + "s*>");\n\t\t\t\t}\n\t\t\t\ta.output.appendChild(e);\n\t\t\t}\n\t\t}\n\t});\n}());\n\n\n// REPLACE / REVISION MACRO\n\n(function(){version.extensions.replaceMacrosCombined={major:1,minor:1,revision:0};\nvar nullobj={handler:function(){}};function showVer(n,notrans){n.innerHTML="";\nnew Wikifier(n,n.tweecode);n.setAttribute("data-enabled","true");\nn.style.display="inline";n.classList.remove("revision-span-out");\nif(!notrans){n.classList.add("revision-span-in");if(n.timeout){clearTimeout(n.timeout)\n}n.timeout=setTimeout(function(){n.classList.remove("revision-span-in");\nn=null},1)}}function hideVer(n,notrans){n.setAttribute("data-enabled","false");\nn.classList.remove("revision-span-in");if(n.timeout){clearTimeout(n.timeout)\n}if(!notrans){n.classList.add("revision-span-out");n.timeout=setTimeout(function(){if(n.getAttribute("data-enabled")=="false"){n.classList.remove("revision-span-out");\nn.style.display="none";n.innerHTML=""}n=null},1000)}else{n.style.display="none";\nn.innerHTML="";n=null}}function tagcontents(b,starttags,desttags,endtags,k){var l=0,c="",tg,a,i;\nfunction tagfound(i,e){for(var j=0;j<e.length;j++){if(a.indexOf("<<"+e[j],i)==i){return e[j]\n}}}a=b.source.slice(k);for(i=0;i<a.length;i++){if(tg=tagfound(i,starttags)){l++\n}else{if((tg=tagfound(i,desttags))&&l==0){b.nextMatch=k+i+tg.length+4;\nreturn[c,tg]}else{if(tg=tagfound(i,endtags)){l--;if(l<0){return null\n}}}}c+=a.charAt(i)}return null}var begintags=[];var endtags=[];\nfunction revisionSpanHandler(g,e,f,b){var k=b.source.indexOf(">>",b.matchStart)+2,vsns=[],vtype=e,flen=f.length,becomes,c,cn,m,h,vsn;\nfunction mkspan(vtype){h=insertElement(m,"span",null,"revision-span "+vtype);\nh.setAttribute("data-enabled",false);h.style.display="none";h.tweecode="";\nreturn h}if(this.shorthand&&flen){while(f.length>0){vsns.push([f.shift(),(this.flavour=="insert"?"gains":"becomes")])\n}}else{if(this.flavour=="insert"||(this.flavour=="continue"&&this.trigger=="time")){vsns.push(["","becomes"])\n}}if(this.flavour=="continue"&&flen){b.nextMatch=k+b.source.slice(k).length;\nvsns.push([b.source.slice(k),vtype])}else{becomes=["becomes","gains"];\nc=tagcontents(b,begintags,becomes.concat(endtags),endtags,k);\nif(c&&endtags.indexOf(c[1])==-1){while(c){vsns.push(c);c=tagcontents(b,begintags,becomes,endtags,b.nextMatch)\n}c=tagcontents(b,begintags,["end"+e],endtags,b.nextMatch)}if(!c){throwError(g,"can't find matching end"+e);\nreturn}vsns.push(c);if(this.flavour=="continue"){k=b.nextMatch;\nb.nextMatch=k+b.source.slice(k).length;vsns.push([b.source.slice(k),""])\n}}if(this.flavour=="remove"){vsns.push(["","becomes"])}cn=0;m=insertElement(g,"span",null,e);\nm.setAttribute("data-flavour",this.flavour);h=mkspan("initial");\nvsn=vsns.shift();h.tweecode=vsn[0];showVer(h,true);while(vsns.length>0){if(vsn){vtype=vsn[1]\n}vsn=vsns.shift();h=mkspan(vtype);h.tweecode=vsn[0]}if(typeof this.setup=="function"){this.setup(m,g,f)\n}}function quantity(m){return(m.children.length-1)+(m.getAttribute("data-flavour")=="remove")\n}function revisionSetup(m,g,f){m.className+=" "+f[0].replace(" ","_")\n}function keySetup(m,g,f){var fl=this.flavour,key=f[0];m.setEventListener("keydown",function l(e){var done=!revise("revise",m);\nif(done){m.removeEventListener("keydown",l)}})}function timeSetup(m,g,f){function cssTimeUnit(s){if(typeof s=="string"){if(s.slice(-2).toLowerCase()=="ms"){return Number(s.slice(0,-2))||0\n}else{if(s.slice(-1).toLowerCase()=="s"){return Number(s.slice(0,-1))*1000||0\n}}}throwError(g,s+" isn't a CSS time unit");return 0}var fl=this.flavour;\nvar tm=cssTimeUnit(f[0]);setTimeout(function timefn(){var done=!revise("revise",m);\nif(!done){setTimeout(timefn,tm)}},tm)}function hoverSetup(m){m.onmouseover=function(){revise("revise",this)\n};m.onmouseout=function(){revise("revert",this)};m=null}function mouseSetup(m){var fl=this.flavour,evt=(window.onmouseenter===null?"onmouseenter":"onmouseover");\nm[evt]=function(){var done=!revise("revise",this);if(done){this[evt]=null\n}};m=null}function linkSetup(m,g,f){var fl=this.flavour,l=Wikifier.createInternalLink(),p=m.parentNode;\nl.className="internalLink replaceLink";p.insertBefore(l,m);l.insertBefore(m,null);\nl.onclick=function(){var p,done=false;if(m&&m.parentNode==this){done=!revise("revise",m);\nscrollWindowTo(m)}if(done){this.parentNode.insertBefore(m,this);\nthis.parentNode.removeChild(this)}};l=null}function visitedSetup(m,g,f){var i,done,shv=state.history[0].variables,os="once seen",d=(m.firstChild&&(this.flavour=="insert"?m.firstChild.nextSibling:m.firstChild).tweecode);\nshv[os]=shv[os]||{};if(d&&!shv[os].hasOwnProperty(d)){shv[os][d]=1\n}else{for(i=shv[os][d];i>0&&!done;i--){done=!revise("revise",m,true)\n}if(shv[os].hasOwnProperty(d)){shv[os][d]+=1}}}[{name:"insert",flavour:"insert",trigger:"link",setup:linkSetup},{name:"timedinsert",flavour:"insert",trigger:"time",setup:timeSetup},{name:"insertion",flavour:"insert",trigger:"revisemacro",setup:revisionSetup},{name:"later",flavour:"insert",trigger:"visited",setup:visitedSetup},{name:"keyinsert",flavour:"insert",trigger:"key",setup:keySetup},{name:"replace",flavour:"replace",trigger:"link",setup:linkSetup},{name:"timedreplace",flavour:"replace",trigger:"time",setup:timeSetup},{name:"mousereplace",flavour:"replace",trigger:"mouse",setup:mouseSetup},{name:"hoverreplace",flavour:"replace",trigger:"hover",setup:hoverSetup},{name:"revision",flavour:"replace",trigger:"revisemacro",setup:revisionSetup},{name:"keyreplace",flavour:"replace",trigger:"key",setup:keySetup},{name:"timedremove",flavour:"remove",trigger:"time",setup:timeSetup},{name:"mouseremove",flavour:"remove",trigger:"mouse",setup:mouseSetup},{name:"hoverremove",flavour:"remove",trigger:"hover",setup:hoverSetup},{name:"removal",flavour:"remove",trigger:"revisemacro",setup:revisionSetup},{name:"once",flavour:"remove",trigger:"visited",setup:visitedSetup},{name:"keyremove",flavour:"remove",trigger:"key",setup:keySetup},{name:"continue",flavour:"continue",trigger:"link",setup:linkSetup},{name:"timedcontinue",flavour:"continue",trigger:"time",setup:timeSetup},{name:"mousecontinue",flavour:"continue",trigger:"mouse",setup:mouseSetup},{name:"keycontinue",flavour:"continue",trigger:"key",setup:keySetup},{name:"cycle",flavour:"cycle",trigger:"revisemacro",setup:revisionSetup},{name:"mousecycle",flavour:"cycle",trigger:"mouse",setup:mouseSetup},{name:"timedcycle",flavour:"cycle",trigger:"time",setup:timeSetup},{name:"keycycle",flavour:"replace",trigger:"key",setup:keySetup}].forEach(function(e){e.handler=revisionSpanHandler;\ne.shorthand=(["link","mouse","hover"].indexOf(e.trigger)>-1);\nmacros[e.name]=e;macros["end"+e.name]=nullobj;begintags.push(e.name);\nendtags.push("end"+e.name)});function insideDepartingSpan(elem){var r=elem.parentNode;\nwhile(!r.classList.contains("passage")){if(r.classList.contains("revision-span-out")){return true\n}r=r.parentNode}}function reviseAll(rt,rname){var rall=document.querySelectorAll(".passage ."+rname),ret=false;\nfor(var i=0;i<rall.length;i++){if(!insideDepartingSpan(rall[i])){ret=revise(rt,rall[i])||ret\n}}return ret}function revise(rt,r,notrans){var ind2,curr,next,ind=-1,rev=(rt=="revert"),rnd=(rt.indexOf("random")>-1),fl=r.getAttribute("data-flavour"),rc=r.childNodes,cyc=(fl=="cycle"),rcl=rc.length-1;\nfunction doToGainerSpans(n,fn){for(var k=n-1;k>=0;k--){if(rc[k+1].classList.contains("gains")){fn(rc[k],notrans)\n}else{break}}}for(var k=0;k<=rcl;k++){if(rc[k].getAttribute("data-enabled")=="true"){ind=k\n}}if(rev){ind-=1}curr=(ind>=0?rc[ind]:(cyc?rc[rcl]:null));ind2=ind;\nif(rnd){ind2=(ind+(Math.floor(Math.random()*rcl)))%rcl}next=((ind2<rcl)?rc[ind2+1]:(cyc?rc[0]:null));\nvar docurr=(rev?showVer:hideVer);var donext=(rev?hideVer:showVer);\nvar currfn=function(){if(!(next&&next.classList.contains("gains"))||rnd){docurr(curr,notrans);\ndoToGainerSpans(ind,docurr,notrans)}};var nextfn=function(){donext(next,notrans);\nif(rnd){doToGainerSpans(ind2+1,donext,notrans)}};if(!rev){currfn();\nnextfn()}else{nextfn();currfn()}return(cyc?true:(rev?(ind>0):(ind2<rcl-1)))\n}macros.revert=macros.revise=macros.randomise=macros.randomize={handler:function(a,b,c){var l,rev,rname;\nfunction disableLink(l){l.style.display="none"}function enableLink(l){l.style.display="inline"\n}function updateLink(l){if(l.className.indexOf("random")>-1){enableLink(l);\nreturn}var rall=document.querySelectorAll(".passage ."+rname),cannext,canprev,i,ind,r,fl;\nfor(i=0;i<rall.length;i++){r=rall[i],fl=r.getAttribute("data-flavour");\nif(insideDepartingSpan(r)){continue}if(fl=="cycle"){cannext=canprev=true\n}else{if(r.firstChild.getAttribute("data-enabled")==!1+""){canprev=true\n}if(r.lastChild.getAttribute("data-enabled")==!1+""){cannext=true\n}}}var can=(l.classList.contains("revert")?canprev:cannext);(can?enableLink:disableLink)(l)\n}function toggleText(w){w.classList.toggle(rl+"Enabled");w.classList.toggle(rl+"Disabled");\nw.style.display=((w.style.display=="none")?"inline":"none")}var rl="reviseLink";\nif(c.length<2){throwError(a,b+" macro needs 2 parameters");return\n}rname=c.shift().replace(" ","_");l=Wikifier.createInternalLink(a,null);\nl.className="internalLink "+rl+" "+rl+"_"+rname+" "+b;var v="";\nvar end=false;var out=false;if(c.length>1&&c[0][0]=="$"){v=c[0].slice(1);\nc.shift()}switch(c[c.length-1]){case"end":end=true;c.pop();break;\ncase"out":out=true;c.pop();break}var h=state.history[0].variables;\nfor(var i=0;i<c.length;i++){var on=(i==Math.max(c.indexOf(h[v]),0));\nvar d=insertElement(null,"span",null,rl+((on)?"En":"Dis")+"abled");\nif(on){h[v]=c[i];l.setAttribute("data-cycle",i)}else{d.style.display="none"\n}insertText(d,c[i]);l.appendChild(d)}l.onclick=function(){reviseAll(b,rname);\nvar t=this.childNodes,u=this.getAttribute("data-cycle")-0,m=t.length,n,lall,i;\nif((end||out)&&u==m-(end?2:1)){if(end){n=this.removeChild(t[u+1]);\nn.className=rl+"End";n.style.display="inline";this.parentNode.replaceChild(n,this)\n}else{this.parentNode.removeChild(this);return}}else{toggleText(t[u]);\nu=(u+1)%m;if(v){h[v]=c[u]}toggleText(t[u]);this.setAttribute("data-cycle",u)\n}lall=document.getElementsByClassName(rl+"_"+rname);for(i=0;i<lall.length;\ni++){updateLink(lall[i])}};disableLink(l);setTimeout(function(){updateLink(l);\nl=null},1)}};macros.mouserevise=macros.hoverrevise={handler:function(a,b,c,d){var endtags=["end"+b],evt=(window.onmouseenter===null?"onmouseenter":"onmouseover"),t=tagcontents(d,[b],endtags,endtags,d.source.indexOf(">>",d.matchStart)+2);\nif(t){var rname=c[0].replace(" ","_"),h=insertElement(a,"span",null,"hoverrevise hoverrevise_"+rname),f=function(){var done=!reviseAll("revise",rname);\nif(b!="hoverrevise"&&done){this[evt]=null}};new Wikifier(h,t[0]);\nif(b=="hoverrevise"){h.onmouseover=f;h.onmouseout=function(){reviseAll("revert",rname)\n}}else{h[evt]=f}h=null}}};macros.instantrevise={handler:function(a,b,c,d){reviseAll("revise",c[0].replace(" ","_"))\n}};macros.endmouserevise=nullobj;macros.endhoverrevise=nullobj\n}());\n\n\n\n// TIMED GOTO\n\nversion.extensions.timedgotoMacro={major:1,minor:2,revision:0};\nmacros["goto"]=macros.timedgoto={timer:null,handler:function(a,b,c,d){function cssTimeUnit(s){if(typeof s=="string"){if(s.slice(-2).toLowerCase()=="ms"){return +(s.slice(0,-2))||0\n}else{if(s.slice(-1).toLowerCase()=="s"){return +(s.slice(0,-1))*1000||0\n}}}throwError(a,s+" isn't a CSS time unit");return 0}var t,d,m,s;\nt=c[c.length-1];d=d.fullArgs();m=0;if(b!="goto"){d=d.slice(0,d.lastIndexOf(t));\nm=cssTimeUnit(t)}d=eval(Wikifier.parse(d));if(d+""&&state&&state.init){if(macros["goto"].timer){clearTimeout(macros["goto"].timer)\n}s=state.history[0].passage.title;macros["goto"].timer=setTimeout(function(){if(state.history[0].passage.title==s){state.display(d,a)\n}},m)}}};\n\n\n// TEXT INPUT\ntry {\n version.extensions['textinput'] = { \n major:1, minor:1, revision:1 \n };\n\tmacros['textinput'] = {\n\t\thandler: function(place, macroName, params, parser) {\n\t\t\t\tv = params[0].replace("$","");\n\t\t\t\tvar input= document.createElement('input');\n\t\t\t\tinput.type = "text";\n\t\t\t\td = v+"TextInput";\n\t\t\t\tinput.id = d;\n\t\t\t\tinput.name = v;\n\t\t\t\tinput.addEventListener('keyup', function()\n\t\t\t\t{\n\t\t\t\t\tstate.history[0].variables[this.name] = this.value;\n\t\t\t\t});\n\t\t\t\tplace.appendChild(input);\n\t\t},\t\n\t\tinit: function() { var v; var d;},\n\t};\n} catch(e) {\n throwError(place,"textinput Setup Error: "+e.message); \n}\n\n\n// TIMED LOOP\n\n(function () {\n version.extensions['timedloopMacro'] = {\n major: 1,\n minor: 1,\n revision: 0\n };\n macros['timedloop'] = {\n handler: function (g, e, f, b) {\n function cssTimeUnit(s) {\n if (typeof s == "string") {\n if (s.slice(-2).toLowerCase() == "ms") {\n return Number(s.slice(0, -2)) || 0;\n }\n else if (s.slice(-1).toLowerCase() == "s") {\n return Number(s.slice(0, -1)) * 1000 || 0;\n }\n }\n throwError(g, s + " isn't a CSS time unit");\n return 0;\n }\n\n function tagcontents(starttag, endtag, k) {\n var a = b.source.slice(k);\n var l = 0;\n var c = "";\n for (var i = 0; i < a.length; i++) {\n var w = endtag.length;\n if (a.substr(i, w) == endtag) {\n if (l == 0) {\n b.nextMatch = k + i + w;\n return c;\n }\n else {\n l--;\n c += a.charAt(i);\n }\n }\n else {\n if (a.substr(i, starttag.length) == starttag) {\n l++;\n }\n c += a.charAt(i);\n }\n }\n return "";\n }\n var tl = "<<" + e;\n var etl = "<<end" + e + ">>";\n var k = b.source.indexOf('>>', b.matchStart) + 2;\n var d = tagcontents(tl, etl, k);\n var tm;\n tm = cssTimeUnit(f[0]);\n var h;\n if (d) {\n var m = insertElement(g, "span", null, "timedloop", null);\n new Wikifier(m, d);\n setTimeout(function to() {\n if (m && elexists(m)) {\n var oldm = m;\n oldm.classList.add("replacement-out");\n setTimeout(function () {\n if (oldm) oldm.parentNode.removeChild(oldm);\n }, Math.min(tm, 1000));\n m = insertElement(null, "span", null, "timedloop replacement-in", null);\n new Wikifier(m, d);\n setTimeout(function () {\n if (m) m.classList.remove("replacement-in");\n }, 1);\n oldm.parentNode.insertBefore(m, oldm.nextSibling);\n scrollWindowTo(m);\n setTimeout(to, tm);\n }\n }, tm);\n }\n else {\n throwError(g, "can't find matching end" + e);\n return;\n }\n }\n }\n var elexists = function (e) {\n while (e = e.parentNode) {\n if (e === document) return true;\n }\n }\n macros['endtimedloop'] = {\n handler: function () {}\n }\n scrollWindowTo = function (E) {\n var D = window.scrollY;\n var G = J(E);\n if (!G) return;\n var C = Math.abs(D - G);\n var B = 0;\n var I = (D > G) ? -1 : 1;\n var F = window.setInterval(H, 25);\n\n function H() {\n B += 0.1;\n window.scrollTo(0, D + I * (C * Math.easeInOut(B)));\n if (B >= 1) {\n window.clearInterval(F)\n }\n }\n\n function J(N) {\n var O = A(N);\n var P = O + N.offsetHeight;\n var L = window.innerHeight;\n var M = D + L;\n if (O >= D && P > M) {\n return ((N.offsetHeight < L) ? O - (L - N.offsetHeight) + 20 : O)\n }\n }\n\n function A(K) {\n var L = 0;\n while (K.offsetParent) {\n L += K.offsetTop;\n K = K.offsetParent;\n }\n return L\n }\n }\n}());\n\n\n// CYCLING LINK\n\nversion.extensions.cyclinglinkMacro={major:3,minor:3,revision:0};\nmacros.cyclinglink={handler:function(a,b,c){var rl="cyclingLink";\nfunction toggleText(w){w.classList.remove("cyclingLinkInit");\nw.classList.toggle(rl+"Enabled");w.classList.toggle(rl+"Disabled");\nw.style.display=((w.style.display=="none")?"inline":"none")}switch(c[c.length-1]){case"end":var end=true;\nc.pop();break;case"out":var out=true;c.pop();break}var v="";if(c.length&&c[0][0]=="$"){v=c[0].slice(1);\nc.shift()}var h=state.history[0].variables;if(out&&h[v]===""){return\n}var l=Wikifier.createInternalLink(a,null);l.className="internalLink cyclingLink";\nl.setAttribute("data-cycle",0);for(var i=0;i<c.length;i++){var on=(i==Math.max(c.indexOf(h[v]),0));\nvar d=insertElement(null,"span",null,"cyclingLinkInit cyclingLink"+((on)?"En":"Dis")+"abled");\nif(on){h[v]=c[i];l.setAttribute("data-cycle",i)}else{d.style.display="none"\n}insertText(d,c[i]);if(on&&end&&i==c.length-1){l.parentNode.replaceChild(d,l)\n}else{l.appendChild(d)}}l.onclick=function(){var t=this.childNodes;\nvar u=this.getAttribute("data-cycle")-0;var m=t.length;toggleText(t[u]);\nu=(u+1);if(!(out&&u==m)){u%=m;if(v){h[v]=c[u]}}else{h[v]=""}if((end||out)&&u==m-(end?1:0)){if(end){var n=this.removeChild(t[u]);\nn.className=rl+"End";n.style.display="inline";this.parentNode.replaceChild(n,this)\n}else{this.parentNode.removeChild(this);return}return}toggleText(t[u]);\nthis.setAttribute("data-cycle",u)}}};\n
\n\nAhead of you, all you can see is four lights in the distance, and the waves, and the light on the waves, and the shore, the [[shore|Credits]].\n\n<<playsound "http://k007.kiwi6.com/hotlink/7j7mm385qp/LandlordQuiet.mp3">>
Looking up to tell the time by the <<revision moon>><<revise moon "moon" "moon" end>>, you find only clouds, dark and ruinous like a spillage of ink, trimmings of light around their borders and the faint shafts of moonbeams that break through gaps in the oppressive veil. You guess that it is about midnight, but perhaps that's just wishful thinking, the romance of childhood tales of the Witching Hour seeping into your mind as if through <<revision cone>><<revise cone "cloth" "cloth" end>><<gains>><<display 'conclusion1'>><<endrevision>><<becomes>><<display 'Testone'>><<endrevision>><<fadeinsound "https://www.sounddogs.com/previews/36/mp3/301147_SOUNDDOGS__wa.mp3">>
steamer and all of its decks ablaze as its passengers toast the moon and dance in the night. On one of the lower decks a woman in a yellow dress lights a cigarette and watches you sail by. You imagine she is here simply to visit, perhaps to travel to one of the chataeus inland where the air is drier and the wind is subdued. As she comes in, you travel out to meet the sea, following the lights from the steamer which impress a path on the surface of the water leading to the harbour entrance. She gives you a small wave before blowing small spindrift clouds of smoke into the sky.\n\nYou remember your mother taking you out in a small boat like this one, just you and her and an oil lamp to light the waters at night. You remember how she took you just beyond the harbour walls, took the lamp in one hand and defiantly held it over the waves. She told you about how there was another country beyond the darkness, how if you sailed for long enough you could find it, how if you had any need or desire to leave home then you could go there. She left you the <<revision four>><<revise four "lamp" "lamp" end>> in the will because she had nothing left to <<revision cfour>><<revise cfour "give" "give" end>><<gains>><<display 'conclusion4'>><<endrevision>><<becomes>><<display 'Testfour'>><<endrevision>>
body { background-color: #17272B !important; color: #0E0E0E !important; margin: auto !important; }\n\nimg { margin-top: -125px; }\n\nh1 { color: #c6c5c5; letter-spacing: 30px; text-align: center; font-family: Tahoma, Geneva, sans-serif; }\nh2 { text-align:center; }\n\ninput[type=text] { border: 2px solid white; padding: 7px; background: rgba(255,255,255,0.5); margin: 0 0 10px 0; }\ninput[type=text]:focus { outline-color:#44FF98; }\n\na { color: #E5E4E2 !important; font-size: 110% !important; }\na:hover { color: #E5E4E2 !important; text-decoration: none !important; text-shadow: #fff 0 0 0.09em; font-size: 110% !important; }\n\n#passages { font-size: 19px; font-family: "Palatino Linotype", "Book Antiqua", Palatino, serif; border-left: 0px !important; width: 100%; max-width: 800px; display: block; margin: auto !important; padding-left: 0 !important; }\n#passages .small { font-size: 15px; }\n#passages .smaller { font-size: 16px; }\n.passage{ background-color: #17272B !important; font-size: 100% !important; color: #E5E4E2 !important; padding: 0 50px 0 50px; margin-top: 25px; }\n\n.passagetitle { text-align: center; font-size: 45px; letter-spacing: 8px; }\n\n#sidebar #credits:hover { color: #333; visibility:hidden; }\n#sidebar #credits a { text-decoration: none; visibility: hidden; }\n#sidebar { visibility: hidden !important; }\n\n#footer{ display: none !important; }\n#toolbar{ display: none !important; }\n\n.revision-span-in { opacity: 0; }\n.revision-span { transition: 1s; -webkit-transition: 1s; }\n.revision-span-out { position:absolute; opacity: 0; }\n\n.timedloop.replacement-in { opacity: 0; }\n.timedloop { transition: 1s; -webkit-transition: 1s; }\n.timedloop.replacement-out { display:none; }\n\n.content { margin: 0; padding: 10% 0 0 0; width: 100%; }\n\n.location { text-align: right; padding-right: 40px; }\n\n.display { background-color: #f9f9f9; width: 100%; height: 30px; }\n\n.cyclingLinkEnabled { display: inline-block !important; animation: cyc-shudder-in 0.4s; -webkit-animation: cyc-shudder-in 0.4s; }\n.cyclingLinkInit, .cyclingLinkInit::before { animation-iteration-count: 0 !important; -webkit-animation-iteration-count: 0; important; }\n\n\n@keyframes cyc-shudder-in {\n 0%, 100% { transform: translateX(0em); }\n 5%, 25%, 45% { transform: translateX(-1em); }\n 15%, 35%, 55% { transform: translateX(1em); }\n 65% { transform: translateX(-0.6em); }\n 75% { transform: translateX(0.6em); }\n 85% { transform: translateX(-0.2em); }\n 95% { transform: translateX(0.2em); }\n}\n@-webkit-keyframes cyc-shudder-in {\n 0%, 100% { -webkit-transform: translateX(0em); }\n 5%, 25%, 45% { -webkit-transform: translateX(-1em); }\n 15%, 35%, 55% { -webkit-transform: translateX(1em); }\n 65% { -webkit-transform: translateX(-0.6em); }\n 75% { -webkit-transform: translateX(0.6em); }\n 85% { -webkit-transform: translateX(-0.2em); }\n 95% { -webkit-transform: translateX(0.2em); }\n}\n
moon, you see the clouds part like ripped cloth, and behind the sundered veil is the full, smooth circle of that marble sattelite. You have been told that its light is a reflection of the sun's, but even so you feel, especially tonight, that it has its own powers of luminscence, its own sense of being alive. It is about midnight, and you begin to approach the harbour's threshold.\n\nThe water is calm here, gently rippling, nudging your small dinghy playfully from side to side. To the west, you can see the <<revision two>><<revise two "lighthouse" "lighthouse" end>> standing monolithic on a great concrete platform that extends far into the water like a great arm reaching out, groping in the dark for something to hold on to, for another arm perhaps, for anything that isn't more sea. Its light has failed and the water beyond the harbour seems leaden, cold, and <<revision ctwo>><<revise ctwo "still" "still" end>><<gains>><<display 'conclusion2'>><<endrevision>><<becomes>><<display 'Testtwo'>><<endrevision>>