From 9e081bf9d49b2ae764673688920b262d915440a9 Mon Sep 17 00:00:00 2001 From: Arthur O'Dwyer Date: Wed, 25 Sep 2019 11:01:41 -0400 Subject: [PATCH 1/2] testing --- interpreter/parchment.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interpreter/parchment.css b/interpreter/parchment.css index 1dc1a66..5c19206 100644 --- a/interpreter/parchment.css +++ b/interpreter/parchment.css @@ -10,4 +10,4 @@ BSD licenced http://code.google.com/p/parchment */ -html{overflow-y:scroll;-webkit-text-size-adjust:none;}body{background:#FFF;color:#000;font-family:Georgia,Palatino,serif;font-size:16px;margin:0 0 8px;text-align:center;}#parchment{margin:0 auto;text-align:left;}#gameport{line-height:1.4;margin:0 auto;text-align:left;width:80%;}.dialog{background:#fff;border:3px solid #ddd;border-radius:10px;-webkit-box-shadow:5px 5px 10px #777;box-shadow:5px 5px 10px #777;left:30%;padding:0 20px;position:fixed;top:20%;width:40%;}.load{text-align:left;}.panel input{display:block;margin:0 auto;width:50%;}.error{background:red;color:white;padding:10px;margin:10px;}#parchment{white-space:pre-wrap;}.TextInput{background:none;border:0;color:inherit;display:inline;font:inherit;outline:0;padding:0;}.CharInput{left:-999em;position:absolute;}.TextGrid{position:fixed;z-index:2;}.box{position:absolute;z-index:1;}.main,.TextGrid{padding:0 1px;}tt{font-family:monospace;line-height:1;} \ No newline at end of file +html{overflow-y:scroll;-webkit-text-size-adjust:none;}body{background:#FFF;color:#000;font-family:Georgia,Palatino,serif;font-size:16px;margin:0 0 8px;text-align:center;}#parchment{margin:0 auto;text-align:left;}#gameport{line-height:1.4;margin:0 auto;text-align:left;width:80%;}.dialog{background:#fff;border:3px solid #ddd;border-radius:10px;-webkit-box-shadow:5px 5px 10px #777;box-shadow:5px 5px 10px #777;left:30%;padding:0 20px;position:fixed;top:20%;width:40%;}.load{text-align:left;}.panel input{display:block;margin:0 auto;width:50%;}.error{background:red;color:white;padding:10px;margin:10px;}#parchment{white-space:pre-wrap;}.TextInput{background:none;border:0;color:inherit;display:inline;font:inherit;outline:0;padding:0;}.lastinput{display:inline-block;}.CharInput{left:-999em;position:absolute;}.TextGrid{position:fixed;z-index:2;}.box{position:absolute;z-index:1;}.main,.TextGrid{padding:0 1px;}tt{font-family:monospace;line-height:1;} From eac37eb0bda02888f8b13521e2532ad20f338f91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Alexandre=20C=C3=B4t=C3=A9?= Date: Wed, 25 Sep 2019 13:21:55 -0400 Subject: [PATCH 2/2] Update parchment.min.js Applying https://github.com/curiousdannii/parchment/pull/61/files#diff-e4a4476dbe1d400e7155a903822b966eL456 --- interpreter/parchment.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interpreter/parchment.min.js b/interpreter/parchment.min.js index 9d21a4c..2d048f3 100644 --- a/interpreter/parchment.min.js +++ b/interpreter/parchment.min.js @@ -10,4 +10,4 @@ BSD licenced https://github.com/curiousdannii/parchment */ -(function(){"use strict";var t,e,r=0,n=/xyz/.test(function(){})?/\b_super\b/:/.*/;for(e in{toString:1})t=1;Object.subClass=function(e){var i,o,a,s=this.prototype,c=!/native code/.test(""+e.toString)&&e.toString,h=function(t,e){return function(){var r,n=this._super;return this._super=s[t],r=e.apply(this,arguments),this._super=n,r}};r=1,i=new this,r=0;for(o in e)i[o]="function"==typeof e[o]&&"function"==typeof s[o]&&n.test(e[o])?h(o,e[o]):e[o];return!t&&c&&(i.toString=n.test(c)?h("toString",c):c),a=i.init?function(){r||this.init.apply(this,arguments)}:function(){},a.prototype=i,a.constructor=a,a.subClass=Object.subClass,a},window.Class=Object})(),function(){function t(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}function e(t){return[255&t>>24,255&t>>16,255&t>>8,255&t]}function r(t,e){return String.fromCharCode(t[e],t[e+1],t[e+2],t[e+3])}function n(t){return[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]}var i=Object.subClass({init:function(e){if(this.type="",this.chunks=[],e){if("FORM"!=r(e,0))throw Error("Not an IFF file");this.type=r(e,8);for(var n=12,i=e.length;i>n;){var o=t(e,n+4);if(0>o||o+n>i)throw Error("IFF: Chunk out of range");this.chunks.push({type:r(e,n),offset:n,data:e.slice(n+8,n+8+o)}),n+=8+o,o%2&&n++}}},write:function(){for(var t=n(this.type),r=0,i=this.chunks.length;i>r;r++){var o=this.chunks[r],a=o.data,s=a.length;t=t.concat(n(o.type),e(s),a),s%2&&t.push(0)}return n("FORM").concat(e(t.length),t)}});i.num_from=t,i.num_to_word=e,i.text_from=r,i.text_to_word=n,window.IFF=i}();var extend=function(t,e){for(var r in e)t[r]=e[r];return t},rBadBackground=/inh|tra|(\d+, ?){3}0/,$window=$(window),$doc=$(document),$body,bodylineheight;$(function(){$body=$("body");var t=$(" ").appendTo($body);bodylineheight=t.height(),t.remove()}),extend($.cssHooks,{bgcolor:{get:function(t){var e=$(t),r=e.css("background-color");return rBadBackground.test(r)?e.parent().css("bgcolor"):r},set:function(t,e){var r=$(t),n=r.parent();r.css("background-color",e),rBadBackground.test(n.css("background-color"))&&n.css("bgcolor",e)}}});var scrollPages=window.scrollByPages||function(t){var e=document.documentElement.clientHeight,r=e-Math.min(e/10,2*bodylineheight);scrollBy(0,r*t)},selection=window.getSelection||function(){return document.selection?document.selection.createRange().text:""},TextInput=Object.subClass({init:function(t){var e=this,r=$("",{"class":"TextInput",autocapitalize:"off",keydown:function(t){var r,n=e.keyCode=t.which;if("line"==e.mode)return 38==n&&(e.prev_next(1),r=1),40==n&&(e.prev_next(-1),r=1),33==n&&(scrollPages(-1),r=1),34==n&&(scrollPages(1),r=1),13==n&&(e.submitLine(),r=1),t.stopPropagation(),r?!1:void 0},keypress:function(t){return"char"==e.mode?(e.charCode=t.which,e.submitChar(),!1):void 0},keyup:function(){"char"==e.mode&&e.submitChar()}});e.lastinput=$('').appendTo(t),$doc.on("click.TextInput keydown.TextInput",function(t){if("INPUT"!=t.target.nodeName&&""==selection())if($window.scrollTop()+$window.height()-r.offset().top>-60)window.scrollTo(0,9e9),t.target=r[0],r.focus().trigger(t),t.stopPropagation();else if("keydown"==t.type&&8==t.which)return!1}),e.history=[],e.input=r,e.container=t,e.statuswin=$("
"),e.scrollParent=/webkit/i.test(navigator.userAgent)?$body:$("html")},die:function(){$doc.off(".TextInput")},scroll:function(){this.scrollParent.scrollTop(this.lastinput.offset().top-this.statuswin.height()-bodylineheight)},getLine:function(t){var e,r=t.target.children().last(),n=this.input;$doc.trigger({type:"RequestingTextInput"}),this.order=t,this.mode="line",this.current=0,this.mutable_history=this.history.slice(),this.mutable_history.unshift(""),e=/^([\s\S]+
)(.+?)$/.exec(r.html()),e?(r.html(e[1]),e=r.clone().html(e[2]).appendTo(r)):e=r,n.width(20).val("").appendTo(e).width(t.target.offset().left+t.target.width()-n.offset().left),this.scroll()},submitLine:function(){var t=this.input.val();this.lastinput.appendTo(this.input.parent()),this.input.detach(),t!=this.history[0]&&/\S/.test(t)&&this.history.unshift(t),$doc.trigger({type:"TextInput",mode:"line",input:t}),this.mode=0,this.order.response=t,this.order.terminator=13,this.callback(this.order)},prev_next:function(t){var e=this.input,r=this.mutable_history,n=this.current,i=n+t;r.length>i&&i>=0&&(r[n]=e.val(),e.val(r[i]),this.current=i)},getChar:function(t){this.order=t,this.mode="char",$doc.trigger({type:"RequestingTextInput"}),this.keyCode=this.charCode=0,this.input.addClass("CharInput").appendTo(this.container),this.scroll()},submitChar:function(){var t=this.keyCode,e=this.charCode,r={keyCode:t,charCode:e};(t||e)&&(this.input.detach().removeClass("CharInput"),$doc.trigger({type:"TextInput",mode:"char",input:r}),this.mode=0,this.order.response=r,this.callback(this.order))}}),TextGrid=Object.subClass({init:function(t,e){var r=this;this.elem=t.addClass("TextGrid").on("stream",function(t){return r.stream(t.order.data),!1}).css("bgcolor","inherit"),this.lineheight=e.env.charheight,this.io=e,e.TextInput.statuswin=this.elem,this.lines=[],this.styles=[],this.cursor=[0,0],this.vmheight=0,this.seenheight=0,$doc.on("RequestingTextInput",function(){r.seenheight===r.lines.length&&(r.lines.length=r.vmheight,r.write()),r.seenheight=r.lines.length})},stream:function(t){function e(t){t===void 0&&h.vmheight++;var e=[],r=0;for(t=t||d.length;f>r++;)e.push(" ");d[t]=e,p[t]=Array(f)}var r,n,i,o,a,s,c,h=this,l=this.cursor[0],u=this.cursor[1],d=this.lines,p=this.styles,f=this.io.env.width;for(i=0;t.length>i;i++){if(r=t[i],n=r.code,"height"==n){if(0===r.lines&&(d.length=0,this.vmheight=0),d.length>r.lines){for(o=this.vmheight;r.lines>o;)e(o++);this.vmheight=r.lines}for(;r.lines>d.length;)e()}if("clear"==n){for(o=0;d.length>o;)e(o++);l=0,u=0}if("cursor"==n)for(l=r.to[0],u=r.to[1],0>l&&(l=0),0>u&&(u=0);l>=d.length;)e();if("get_cursor"==n&&(r.pos=[l,u],this.io.input(r)),"stream"==n){for(;l>=d.length;)e();for(c="",r.props&&(s=$("",r.props).appendTo(this.elem),a=s.attr("style"),a&&(c+=' style="'+a+'"'),a=s.attr("class"),a&&(c+=' class="'+a+'"')),""===c&&(c=void 0),a=r.text,o=0;a.length>o;)s=a.charAt(o++),"\r"!=s&&(d[l][u]=s,p[l][u++]=c),("\r"==s||u==f)&&(l++,u=0,l>=d.length&&a.length>o&&e())}if("eraseline"==n)for(o=u;f>o;o++)d[l][o]=" ",p[l][o]=void 0}this.cursor=[l,u],this.write()},write:function(){for(var t,e,r,n="",i=0,o=this.lines,a=this.styles;o.length>i;){for(e="",r=a[i][0],t=0;o[i].length>t;t++)a[i][t]==r?e+=o[i][t]:(n+=""+e+"",r=a[i][t],e=o[i][t]);n+=""+e+"",++i")}this.elem.html(n),$(".main").css("padding-top",this.elem.height())}}),basic_stream_handler=function(t){var e=t.order,r=t.io.structures[e.name]||{node:"span"},n=e.node||e.props&&e.props.node||r.node,i=$("<"+n+">",e.props||{}).appendTo(t.target);return e.name&&i.addClass(e.name),e.text&&i.text(e.text.replace(/\r/g,"\n")),r.func&&r.func(i,t.io),!1};StructIO=Object.subClass({init:function(t){t=extend({},t),this.env=t;var e=$(t.container),r=$("00000").appendTo(e),n=r.height(),i=r.width()/5,o=Math.min(Math.floor(e.width()/i),t.width||80);r.remove(),extend(t,{charheight:n,charwidth:i,width:o,fgcolour:e.css("color"),bgcolour:e.css("bgcolor")}),e.width(o*i+2),this.container=e,this.target=e,e.on("stream",basic_stream_handler),this.TextInput=new TextInput(e),this.structures={main:{node:"div"},status:{node:"div",func:function(t,e){new TextGrid(t,e)}}}},event:function(t){var e,r,n,i,o=this.target,a=this.TextInput;for(n=0;t.length>n;n++){if(e=t[n],r=e.code,"structures"==r&&(e.code=void 0,$.extend(this.structures,e)),"find"==r&&(this.target=o=$("."+e.name)),"stream"==r&&(e.to?$("."+e.to):o).trigger({type:"stream",io:this,order:e}),"clear"==r){var s,c=e.bg,i=e.name?$("."+e.name):o;i.empty(),c!==void 0&&("main"==e.name&&(i=$body),s=/zvm-bg-\d+/.exec(i.attr("class")),s&&i.removeClass(s[0]),isNaN(c)?i.css("background-color",c):i.addClass("zvm-bg-"+c))}"read"==r&&(e.target=o,a.getLine(e)),"char"==r&&a.getChar(e),"quit"==r&&a.scroll()}}}),function(t){t.StructIO=StructIO,StructIO.TextInput=TextInput}(window,jQuery);var Runner=Object.subClass({init:function(t,e){var r=this;e=window.engine=this.e=new window[e],this.io=new StructIO(t),this.toEngine=this.io.TextInput.callback=function(t){e.inputEvent(t)},e.outputEvent=function(t){r.fromEngine(t)}},fromParchment:function(t){var e=t.code;"load"==e&&(t.env=this.io.env),this.toEngine(t)},fromEngine:function(t){var e,r,n,i=(this.e,0);for(this.io.event(t);t.length>i;i++){if(e=t[i],r=e.code,"quit"==r)return;("save"==r||"restore"==r)&&this.toParchment(e),"restart"==r&&(this.io.target=this.io.container.empty(),n=1),"tick"==r&&(n=1)}n&&this.toEngine(e)}});(function(t,e){"use strict";jQuery.ajaxSetup({cache:1,converters:{"* binary":!0}}),jQuery.ajaxPrefilter("script",function(t){t.isLocal&&(t.crossDomain=1)}),t.parchment={options:{container:"#parchment",lib_path:"lib/",page_title:1,panels:["ifdb","url","about"],proxy_url:"https://zcode.appspot.com/proxy/"},lib:{}};var r=function(t){var e,r=0,n={};for(""==t[0]&&r++;t.length>r;)e=/([^=]+)(=(.*))?/.exec(t[r++]),n[e[1]]=e[3]?unescape(e[3]):!0;return n}(location.search.slice(1).split(/[&;]/g));(function(e){t.FatalError=function(t){this.message=t,this.traceback="",this.onError(this),e(".load").length>0&&e(".load").detach()},FatalError.prototype={onError:function(r){var n=r.message;e("#parchment").append('
An error occurred:
'+n+"\n\n"+r.traceback+"
"),t.console&&console.error(n)},_makeTraceback:function(t){for(var e="",r=0,n=100;null!=t&&n>r;){var i=""+t;if(i){var o=i.match(/function (\w*)/);e=o&&o[1]?"\n "+o[1]+e:"\n (anonymous function)"+e}else e="\n (anonymous function)"+e;try{t=t.caller}catch(a){t=null}r++}return r==n&&(e="..."+e),"Traceback (most recent call last):\n"+e}}})(jQuery),function(t,e){function r(t,r){e.ajax(t,{dataType:"binary"}).success(function(t,e,n){r(n.responseArray)})}t.execScript&&execScript("Function VBCStr(x)\nVBCStr=CStr(x)\nEnd Function\nFunction VBLastAsc(x)\nDim l\nl=LenB(x)\nIf l mod 2 Then\nVBLastAsc=AscB(MidB(x,l,1))\nElse\nVBLastAsc=-1\nEnd If\nEnd Function","VBScript");var n=/chrome\/(\d+)/i.exec(navigator.userAgent),i=n&&parseInt(n[1])>4,o=function(t){return t.replace(/\u20ac/g,"\u0080").replace(/\u201a/g,"\u0082").replace(/\u0192/g,"\u0083").replace(/\u201e/g,"\u0084").replace(/\u2026/g,"\u0085").replace(/\u2020/g,"\u0086").replace(/\u2021/g,"\u0087").replace(/\u02c6/g,"\u0088").replace(/\u2030/g,"\u0089").replace(/\u0160/g,"\u008a").replace(/\u2039/g,"\u008b").replace(/\u0152/g,"\u008c").replace(/\u017d/g,"\u008e").replace(/\u2018/g,"\u0091").replace(/\u2019/g,"\u0092").replace(/\u201c/g,"\u0093").replace(/\u201d/g,"\u0094").replace(/\u2022/g,"\u0095").replace(/\u2013/g,"\u0096").replace(/\u2014/g,"\u0097").replace(/\u02dc/g,"\u0098").replace(/\u2122/g,"\u0099").replace(/\u0161/g,"\u009a").replace(/\u203a/g,"\u009b").replace(/\u0153/g,"\u009c").replace(/\u017e/g,"\u009e").replace(/\u0178/g,"\u009f")},a=function(t,e){var r,e=e||[],n=0;for(r=t.length%8;r>n;++n)e.push(255&t.charCodeAt(n));for(r=t.length;r>n;)e.push(255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++));return e},s=function(t,e){return(e||"")+String.fromCharCode.apply(1,t)},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",h=function(){for(var t=[],e=0;c.length>e;e++)t[c.charAt(e)]=e;return t}(),l=function(e,r){if(t.atob)return a(atob(e),r);for(var n,i,o,s,c,l,u,r=r||[],d=0,p=e.length;p>d;)s=h[e.charAt(d++)],c=h[e.charAt(d++)],l=h[e.charAt(d++)],u=h[e.charAt(d++)],n=(s<<2)+(c>>4),i=((15&c)<<4)+(l>>2),o=((3&l)<<6)+u,r.push(n,i,o);return 64==u&&r.pop(),64==l&&r.pop(),r},u=function(e,r){if(t.btoa)return btoa(s(e,r));for(var n,i,o,a,h,l,u,r=r||"",d=0,p=e.length;p>d;)n=e[d++],i=e[d++],o=e[d++],a=n>>2,h=((3&n)<<4)+(i>>4),l=((15&i)<<2)+(o>>6),u=63&o,r+=c.charAt(a)+c.charAt(h)+c.charAt(l)+c.charAt(u);return isNaN(i)?r=r.slice(0,-2)+"==":isNaN(o)&&(r=r.slice(0,-1)+"="),r},d=function(t){for(var e,r=VBCStr(t),n=VBLastAsc(t),i=[],o=0,a=r.length%4;a>o;)i.push(255&(e=r.charCodeAt(o++)),e>>8);for(a=r.length;a>o;)i.push(255&(e=r.charCodeAt(o++)),e>>8,255&(e=r.charCodeAt(o++)),e>>8,255&(e=r.charCodeAt(o++)),e>>8,255&(e=r.charCodeAt(o++)),e>>8);return n>-1&&i.push(n),i},p=jQuery.ajaxSettings.xhr(),f={binary:p.overrideMimeType?"charset":"responseBody"in p?"responseBody":0},m=function(r,n,i){var s,c;r=e.trim(r),"base64"==i.mode?t.atob?(c=atob(r),s=a(c)):s=l(r):"charset"==i.mode?(c=o(r),s=a(c)):s=d(i.xhr.responseBody),i.responseArray=s,i.responseText=c};p=void 0,e.ajaxPrefilter("binary",function(t,r,n){var o=t.isLocal&&!t.crossDomain&&i?0:f.binary,a=t.xhr;return t.xhr=function(){return n.xhr=a.apply(t)},t.binary=o,n.done(m),t.jsonp=!1,t.jsonpCallback="processBase64Zcode",n.mode="base64",".js"==t.url.slice(-3).toLowerCase()?"jsonp":o&&!t.crossDomain?"text":t.legacy?(t.url=t.legacy,"jsonp"):(t.data="url="+t.url,t.url=parchment.options.proxy_url,o&&e.support.cors?"text":(t.data+="&encode=base64&callback=pproxy",t.jsonpCallback="pproxy","jsonp"))}),e.ajaxPrefilter("text",function(t,e,r){r.mode=t.binary,"charset"==r.mode&&(t.mimeType="text/plain; charset=windows-1252")}),t.file={text_to_array:a,array_to_text:s,base64_decode:l,base64_encode:u,support:f},t.file.download_to_array=r}(t,jQuery),function(t){'

Parchment is loading.

> _

')},stylesheet_add:function(){var e,r=arguments;for(e=0;r.length>e;e++)document.createStyleSheet?document.createStyleSheet(r[e]):t("",{rel:"stylesheet",href:r[e]}).appendTo("head")},load_panels:function(){var e=parchment.options.panels;-1!=t.inArray("ifdb",e)&&(this.panels.ifdb=t('

Find stories to play at the Interactive Fiction Database.')),-1!=t.inArray("url",e)&&(this.panels.url=t('

')),this.library.container.append(this.panels[e[0]]),this.panels.active=e[0]}})}(jQuery),function(t,e){var n=/([-\w\s_]+)(\.[\w]+(\.js)?)?$/,i=/\.js$/,o=function(){throw new FatalError("Parchment could not load the story. Check your connection, and that the URL is correct.")},a=function(r){e(".load").detach();var n=t.runner=new(t[r[2].vm.runner]||Runner)(parchment.options,r[2].vm.engine),i=location.hash;n.toParchment=function(t){r[2].library.fromRunner(n,t)},n.fromParchment({code:"load",data:new parchment.lib.Story(r[2].responseArray).data}),i&&"#"!=i?n.fromParchment({code:"restore",data:file.base64_decode(i.slice(1))}):n.fromParchment({code:"restart"})};parchment.lib.Story=IFF.subClass({init:function(t,r){if(this.title=r,9>t[0])this._super(),this.chunks.push({type:"ZCOD",data:t}),this.data=t;else if("Glul"==IFF.text_from(t,0))this._super(),this.chunks.push({type:"GLUL",data:t}),this.data=t;else if("FORM"==IFF.text_from(t,0)&&(this._super(t),"IFRS"==this.type))for(var n=0,i=this.chunks.length;i>n;n++){var o=this.chunks[n].type;if("ZCOD"!=o||this.zcode)if("GLUL"!=o||this.glulx){if("IFmd"==o){this.metadata=file.array_to_text(this.chunks[n].data);var a=e(this.metadata);a&&(e("title",a)&&(this.title=e("title",a).text()),e("ifid",a)&&(this.ifid=e("ifid",a).text()),e("release",a)&&(this.release=e("release",a).text()))}}else this.data=this.chunks[n].data;else this.data=this.chunks[n].data}}});var s=Object.subClass({add:function(t){this[t.ifid]=t,t.url&&(this.url[t.url]=t)},url:{}}),c=Object.subClass({init:function(){this.container=e(parchment.options.container),this.ui=new parchment.lib.UI(this)},load:function(){var i,o,a=this,s=parchment.options,c=r.story,h=r.vm,l=0;if(s.lock_story){if(c=s.default_story,!c)throw new FatalError("Story file not specified")}else{if(!s.default_story&&!c)return this.ui.load_panels();c=c||s.default_story}if(e("#about").remove(),e("body").append(a.ui.load_indicator),e.isArray(c)||(c=[c,0]),o=c[0],a.url=o,i=n.exec(o),i=i?i[1]+" - Parchment":"Parchment",s.page_title&&(t.document.title=i),h)h=parchment.vms[h];else for(;parchment.vms.length>l;l++)if(parchment.vms[l].match.test(o)){h=parchment.vms[l];break}if(!h)throw new FatalError("File type is not supported!");try{this.launch(h,c)}catch(u){throw new FatalError(u)}},launch:function(t,r){var n=this,s=[e.ajax(r[0],{dataType:"binary",legacy:r[1]}).done(function(e,r,i){i.library=n,i.vm=t}).fail(o)],c=[e.Deferred()],h=function(){if(0==t.files.length)return c[0].resolve(),void 0;var r=parchment.options.lib_path+t.files.shift();i.test(r)?e.getScript(r,h):(parchment.library.ui.stylesheet_add(r),h())};t.loaded||(t.loaded=1,h(),s[1]=e.when.apply(1,c)),e.when.apply(1,s).done(a)},fromRunner:function(t,e){var r=e.code,n=location.hash;"save"==r&&(location.hash=file.base64_encode(e.data)),"restore"==r&&n&&"#"!=n&&(e.data=file.base64_decode(n.slice(1))),t.fromParchment(e)},stories:new s,savefiles:{}});parchment.lib.Library=c,parchment.vms=[],parchment.add_vm=function(t){parchment.vms.push(t),parchment.vms[t.id]=t}}(t,jQuery),parchment.add_vm({id:"quixe",match:/(ulx|glb|(g|glulx.+)(blorb|blb))(.js)?$/i,files:["glkote.min.js","quixe.min.js","glkote.min.css"],runner:"QuixeRunner"}),parchment.add_vm({id:"zvm",match:/(z[58]|zlb|(z|zcode.+)(blorb|blb))(.js)?$/i,files:["zvm.min.js"],engine:"ZVM"}),parchment.add_vm({id:"gnusto",match:/(z[1-8]|zlb|(z|zcode.+)(blorb|blb))(.js)?$/i,files:["gnusto.min.js"],runner:"GnustoRunner"}),e(function(){var n;t.parchment_options&&e.extend(parchment.options,parchment_options),!parchment.options.lock_options&&r.options&&e.extend(parchment.options,e.parseJSON(r.options)),parchment.options.debug=r.debug,n=new parchment.lib.Library,parchment.library=n,n.load(),-1!=location.href.indexOf("iplayif.com")&&e.getScript("http://google-analytics.com/ga.js",function(){_gat._getTracker("UA-7949545-3")._trackPageview()})})})(this,jQuery);var QuixeRunner=Object.subClass({init:function(t){jQuery(t.container).html('
')},fromParchment:function(t){var e=t.code;"load"==e&&GiLoad.load_run({set_page_title:!0},t.data,"array")}}); \ No newline at end of file +(function(){"use strict";var t,e,r=0,n=/xyz/.test(function(){})?/\b_super\b/:/.*/;for(e in{toString:1})t=1;Object.subClass=function(e){var i,o,a,s=this.prototype,c=!/native code/.test(""+e.toString)&&e.toString,h=function(t,e){return function(){var r,n=this._super;return this._super=s[t],r=e.apply(this,arguments),this._super=n,r}};r=1,i=new this,r=0;for(o in e)i[o]="function"==typeof e[o]&&"function"==typeof s[o]&&n.test(e[o])?h(o,e[o]):e[o];return!t&&c&&(i.toString=n.test(c)?h("toString",c):c),a=i.init?function(){r||this.init.apply(this,arguments)}:function(){},a.prototype=i,a.constructor=a,a.subClass=Object.subClass,a},window.Class=Object})(),function(){function t(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}function e(t){return[255&t>>24,255&t>>16,255&t>>8,255&t]}function r(t,e){return String.fromCharCode(t[e],t[e+1],t[e+2],t[e+3])}function n(t){return[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]}var i=Object.subClass({init:function(e){if(this.type="",this.chunks=[],e){if("FORM"!=r(e,0))throw Error("Not an IFF file");this.type=r(e,8);for(var n=12,i=e.length;i>n;){var o=t(e,n+4);if(0>o||o+n>i)throw Error("IFF: Chunk out of range");this.chunks.push({type:r(e,n),offset:n,data:e.slice(n+8,n+8+o)}),n+=8+o,o%2&&n++}}},write:function(){for(var t=n(this.type),r=0,i=this.chunks.length;i>r;r++){var o=this.chunks[r],a=o.data,s=a.length;t=t.concat(n(o.type),e(s),a),s%2&&t.push(0)}return n("FORM").concat(e(t.length),t)}});i.num_from=t,i.num_to_word=e,i.text_from=r,i.text_to_word=n,window.IFF=i}();var extend=function(t,e){for(var r in e)t[r]=e[r];return t},rBadBackground=/inh|tra|(\d+, ?){3}0/,$window=$(window),$doc=$(document),$body,bodylineheight;$(function(){$body=$("body");var t=$(" ").appendTo($body);bodylineheight=t.height(),t.remove()}),extend($.cssHooks,{bgcolor:{get:function(t){var e=$(t),r=e.css("background-color");return rBadBackground.test(r)?e.parent().css("bgcolor"):r},set:function(t,e){var r=$(t),n=r.parent();r.css("background-color",e),rBadBackground.test(n.css("background-color"))&&n.css("bgcolor",e)}}});var scrollPages=window.scrollByPages||function(t){var e=document.documentElement.clientHeight,r=e-Math.min(e/10,2*bodylineheight);scrollBy(0,r*t)},selection=window.getSelection||function(){return document.selection?document.selection.createRange().text:""},TextInput=Object.subClass({init:function(t){var e=this,r=$("",{"class":"TextInput",autocapitalize:"off",keydown:function(t){var r,n=e.keyCode=t.which;if("line"==e.mode)return 38==n&&(e.prev_next(1),r=1),40==n&&(e.prev_next(-1),r=1),33==n&&(scrollPages(-1),r=1),34==n&&(scrollPages(1),r=1),13==n&&(e.submitLine(),r=1),t.stopPropagation(),r?!1:void 0},keypress:function(t){return"char"==e.mode?(e.charCode=t.which,e.submitChar(),!1):void 0},keyup:function(){"char"==e.mode&&e.submitChar()}});e.lastinput=$('').appendTo(t),$doc.on("click.TextInput keydown.TextInput",function(t){if("INPUT"!=t.target.nodeName&&""==selection())if($window.scrollTop()+$window.height()-r.offset().top>-60)window.scrollTo(0,9e9),t.target=r[0],r.focus().trigger(t),t.stopPropagation();else if("keydown"==t.type&&8==t.which)return!1}),e.history=[],e.input=r,e.container=t,e.statuswin=$("
"),e.scrollParent=$("html, body")},die:function(){$doc.off(".TextInput")},scroll:function(){this.scrollParent.scrollTop(this.lastinput.offset().top-this.statuswin.height()-bodylineheight)},getLine:function(t){var e,r=t.target.children().last(),n=this.input;$doc.trigger({type:"RequestingTextInput"}),this.order=t,this.mode="line",this.current=0,this.mutable_history=this.history.slice(),this.mutable_history.unshift(""),e=/^([\s\S]+
)(.+?)$/.exec(r.html()),e?(r.html(e[1]),e=r.clone().html(e[2]).appendTo(r)):e=r,n.width(20).val("").appendTo(e).width(t.target.offset().left+t.target.width()-n.offset().left),this.scroll()},submitLine:function(){var t=this.input.val();this.lastinput.appendTo(this.input.parent()),this.input.detach(),t!=this.history[0]&&/\S/.test(t)&&this.history.unshift(t),$doc.trigger({type:"TextInput",mode:"line",input:t}),this.mode=0,this.order.response=t,this.order.terminator=13,this.callback(this.order)},prev_next:function(t){var e=this.input,r=this.mutable_history,n=this.current,i=n+t;r.length>i&&i>=0&&(r[n]=e.val(),e.val(r[i]),this.current=i)},getChar:function(t){this.order=t,this.mode="char",$doc.trigger({type:"RequestingTextInput"}),this.keyCode=this.charCode=0,this.input.addClass("CharInput").appendTo(this.container),this.scroll()},submitChar:function(){var t=this.keyCode,e=this.charCode,r={keyCode:t,charCode:e};(t||e)&&(this.input.detach().removeClass("CharInput"),$doc.trigger({type:"TextInput",mode:"char",input:r}),this.mode=0,this.order.response=r,this.callback(this.order))}}),TextGrid=Object.subClass({init:function(t,e){var r=this;this.elem=t.addClass("TextGrid").on("stream",function(t){return r.stream(t.order.data),!1}).css("bgcolor","inherit"),this.lineheight=e.env.charheight,this.io=e,e.TextInput.statuswin=this.elem,this.lines=[],this.styles=[],this.cursor=[0,0],this.vmheight=0,this.seenheight=0,$doc.on("RequestingTextInput",function(){r.seenheight===r.lines.length&&(r.lines.length=r.vmheight,r.write()),r.seenheight=r.lines.length})},stream:function(t){function e(t){t===void 0&&h.vmheight++;var e=[],r=0;for(t=t||d.length;f>r++;)e.push(" ");d[t]=e,p[t]=Array(f)}var r,n,i,o,a,s,c,h=this,l=this.cursor[0],u=this.cursor[1],d=this.lines,p=this.styles,f=this.io.env.width;for(i=0;t.length>i;i++){if(r=t[i],n=r.code,"height"==n){if(0===r.lines&&(d.length=0,this.vmheight=0),d.length>r.lines){for(o=this.vmheight;r.lines>o;)e(o++);this.vmheight=r.lines}for(;r.lines>d.length;)e()}if("clear"==n){for(o=0;d.length>o;)e(o++);l=0,u=0}if("cursor"==n)for(l=r.to[0],u=r.to[1],0>l&&(l=0),0>u&&(u=0);l>=d.length;)e();if("get_cursor"==n&&(r.pos=[l,u],this.io.input(r)),"stream"==n){for(;l>=d.length;)e();for(c="",r.props&&(s=$("",r.props).appendTo(this.elem),a=s.attr("style"),a&&(c+=' style="'+a+'"'),a=s.attr("class"),a&&(c+=' class="'+a+'"')),""===c&&(c=void 0),a=r.text,o=0;a.length>o;)s=a.charAt(o++),"\r"!=s&&(d[l][u]=s,p[l][u++]=c),("\r"==s||u==f)&&(l++,u=0,l>=d.length&&a.length>o&&e())}if("eraseline"==n)for(o=u;f>o;o++)d[l][o]=" ",p[l][o]=void 0}this.cursor=[l,u],this.write()},write:function(){for(var t,e,r,n="",i=0,o=this.lines,a=this.styles;o.length>i;){for(e="",r=a[i][0],t=0;o[i].length>t;t++)a[i][t]==r?e+=o[i][t]:(n+=""+e+"",r=a[i][t],e=o[i][t]);n+=""+e+"",++i")}this.elem.html(n),$(".main").css("padding-top",this.elem.height())}}),basic_stream_handler=function(t){var e=t.order,r=t.io.structures[e.name]||{node:"span"},n=e.node||e.props&&e.props.node||r.node,i=$("<"+n+">",e.props||{}).appendTo(t.target);return e.name&&i.addClass(e.name),e.text&&i.text(e.text.replace(/\r/g,"\n")),r.func&&r.func(i,t.io),!1};StructIO=Object.subClass({init:function(t){t=extend({},t),this.env=t;var e=$(t.container),r=$("00000").appendTo(e),n=r.height(),i=r.width()/5,o=Math.min(Math.floor(e.width()/i),t.width||80);r.remove(),extend(t,{charheight:n,charwidth:i,width:o,fgcolour:e.css("color"),bgcolour:e.css("bgcolor")}),e.width(o*i+2),this.container=e,this.target=e,e.on("stream",basic_stream_handler),this.TextInput=new TextInput(e),this.structures={main:{node:"div"},status:{node:"div",func:function(t,e){new TextGrid(t,e)}}}},event:function(t){var e,r,n,i,o=this.target,a=this.TextInput;for(n=0;t.length>n;n++){if(e=t[n],r=e.code,"structures"==r&&(e.code=void 0,$.extend(this.structures,e)),"find"==r&&(this.target=o=$("."+e.name)),"stream"==r&&(e.to?$("."+e.to):o).trigger({type:"stream",io:this,order:e}),"clear"==r){var s,c=e.bg,i=e.name?$("."+e.name):o;i.empty(),c!==void 0&&("main"==e.name&&(i=$body),s=/zvm-bg-\d+/.exec(i.attr("class")),s&&i.removeClass(s[0]),isNaN(c)?i.css("background-color",c):i.addClass("zvm-bg-"+c))}"read"==r&&(e.target=o,a.getLine(e)),"char"==r&&a.getChar(e),"quit"==r&&a.scroll()}}}),function(t){t.StructIO=StructIO,StructIO.TextInput=TextInput}(window,jQuery);var Runner=Object.subClass({init:function(t,e){var r=this;e=window.engine=this.e=new window[e],this.io=new StructIO(t),this.toEngine=this.io.TextInput.callback=function(t){e.inputEvent(t)},e.outputEvent=function(t){r.fromEngine(t)}},fromParchment:function(t){var e=t.code;"load"==e&&(t.env=this.io.env),this.toEngine(t)},fromEngine:function(t){var e,r,n,i=(this.e,0);for(this.io.event(t);t.length>i;i++){if(e=t[i],r=e.code,"quit"==r)return;("save"==r||"restore"==r)&&this.toParchment(e),"restart"==r&&(this.io.target=this.io.container.empty(),n=1),"tick"==r&&(n=1)}n&&this.toEngine(e)}});(function(t,e){"use strict";jQuery.ajaxSetup({cache:1,converters:{"* binary":!0}}),jQuery.ajaxPrefilter("script",function(t){t.isLocal&&(t.crossDomain=1)}),t.parchment={options:{container:"#parchment",lib_path:"lib/",page_title:1,panels:["ifdb","url","about"],proxy_url:"https://zcode.appspot.com/proxy/"},lib:{}};var r=function(t){var e,r=0,n={};for(""==t[0]&&r++;t.length>r;)e=/([^=]+)(=(.*))?/.exec(t[r++]),n[e[1]]=e[3]?unescape(e[3]):!0;return n}(location.search.slice(1).split(/[&;]/g));(function(e){t.FatalError=function(t){this.message=t,this.traceback="",this.onError(this),e(".load").length>0&&e(".load").detach()},FatalError.prototype={onError:function(r){var n=r.message;e("#parchment").append('
An error occurred:
'+n+"\n\n"+r.traceback+"
"),t.console&&console.error(n)},_makeTraceback:function(t){for(var e="",r=0,n=100;null!=t&&n>r;){var i=""+t;if(i){var o=i.match(/function (\w*)/);e=o&&o[1]?"\n "+o[1]+e:"\n (anonymous function)"+e}else e="\n (anonymous function)"+e;try{t=t.caller}catch(a){t=null}r++}return r==n&&(e="..."+e),"Traceback (most recent call last):\n"+e}}})(jQuery),function(t,e){function r(t,r){e.ajax(t,{dataType:"binary"}).success(function(t,e,n){r(n.responseArray)})}t.execScript&&execScript("Function VBCStr(x)\nVBCStr=CStr(x)\nEnd Function\nFunction VBLastAsc(x)\nDim l\nl=LenB(x)\nIf l mod 2 Then\nVBLastAsc=AscB(MidB(x,l,1))\nElse\nVBLastAsc=-1\nEnd If\nEnd Function","VBScript");var n=/chrome\/(\d+)/i.exec(navigator.userAgent),i=n&&parseInt(n[1])>4,o=function(t){return t.replace(/\u20ac/g,"\u0080").replace(/\u201a/g,"\u0082").replace(/\u0192/g,"\u0083").replace(/\u201e/g,"\u0084").replace(/\u2026/g,"\u0085").replace(/\u2020/g,"\u0086").replace(/\u2021/g,"\u0087").replace(/\u02c6/g,"\u0088").replace(/\u2030/g,"\u0089").replace(/\u0160/g,"\u008a").replace(/\u2039/g,"\u008b").replace(/\u0152/g,"\u008c").replace(/\u017d/g,"\u008e").replace(/\u2018/g,"\u0091").replace(/\u2019/g,"\u0092").replace(/\u201c/g,"\u0093").replace(/\u201d/g,"\u0094").replace(/\u2022/g,"\u0095").replace(/\u2013/g,"\u0096").replace(/\u2014/g,"\u0097").replace(/\u02dc/g,"\u0098").replace(/\u2122/g,"\u0099").replace(/\u0161/g,"\u009a").replace(/\u203a/g,"\u009b").replace(/\u0153/g,"\u009c").replace(/\u017e/g,"\u009e").replace(/\u0178/g,"\u009f")},a=function(t,e){var r,e=e||[],n=0;for(r=t.length%8;r>n;++n)e.push(255&t.charCodeAt(n));for(r=t.length;r>n;)e.push(255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++));return e},s=function(t,e){return(e||"")+String.fromCharCode.apply(1,t)},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",h=function(){for(var t=[],e=0;c.length>e;e++)t[c.charAt(e)]=e;return t}(),l=function(e,r){if(t.atob)return a(atob(e),r);for(var n,i,o,s,c,l,u,r=r||[],d=0,p=e.length;p>d;)s=h[e.charAt(d++)],c=h[e.charAt(d++)],l=h[e.charAt(d++)],u=h[e.charAt(d++)],n=(s<<2)+(c>>4),i=((15&c)<<4)+(l>>2),o=((3&l)<<6)+u,r.push(n,i,o);return 64==u&&r.pop(),64==l&&r.pop(),r},u=function(e,r){if(t.btoa)return btoa(s(e,r));for(var n,i,o,a,h,l,u,r=r||"",d=0,p=e.length;p>d;)n=e[d++],i=e[d++],o=e[d++],a=n>>2,h=((3&n)<<4)+(i>>4),l=((15&i)<<2)+(o>>6),u=63&o,r+=c.charAt(a)+c.charAt(h)+c.charAt(l)+c.charAt(u);return isNaN(i)?r=r.slice(0,-2)+"==":isNaN(o)&&(r=r.slice(0,-1)+"="),r},d=function(t){for(var e,r=VBCStr(t),n=VBLastAsc(t),i=[],o=0,a=r.length%4;a>o;)i.push(255&(e=r.charCodeAt(o++)),e>>8);for(a=r.length;a>o;)i.push(255&(e=r.charCodeAt(o++)),e>>8,255&(e=r.charCodeAt(o++)),e>>8,255&(e=r.charCodeAt(o++)),e>>8,255&(e=r.charCodeAt(o++)),e>>8);return n>-1&&i.push(n),i},p=jQuery.ajaxSettings.xhr(),f={binary:p.overrideMimeType?"charset":"responseBody"in p?"responseBody":0},m=function(r,n,i){var s,c;r=e.trim(r),"base64"==i.mode?t.atob?(c=atob(r),s=a(c)):s=l(r):"charset"==i.mode?(c=o(r),s=a(c)):s=d(i.xhr.responseBody),i.responseArray=s,i.responseText=c};p=void 0,e.ajaxPrefilter("binary",function(t,r,n){var o=t.isLocal&&!t.crossDomain&&i?0:f.binary,a=t.xhr;return t.xhr=function(){return n.xhr=a.apply(t)},t.binary=o,n.done(m),t.jsonp=!1,t.jsonpCallback="processBase64Zcode",n.mode="base64",".js"==t.url.slice(-3).toLowerCase()?"jsonp":o&&!t.crossDomain?"text":t.legacy?(t.url=t.legacy,"jsonp"):(t.data="url="+t.url,t.url=parchment.options.proxy_url,o&&e.support.cors?"text":(t.data+="&encode=base64&callback=pproxy",t.jsonpCallback="pproxy","jsonp"))}),e.ajaxPrefilter("text",function(t,e,r){r.mode=t.binary,"charset"==r.mode&&(t.mimeType="text/plain; charset=windows-1252")}),t.file={text_to_array:a,array_to_text:s,base64_decode:l,base64_encode:u,support:f},t.file.download_to_array=r}(t,jQuery),function(t){'

Parchment is loading.

> _

')},stylesheet_add:function(){var e,r=arguments;for(e=0;r.length>e;e++)document.createStyleSheet?document.createStyleSheet(r[e]):t("",{rel:"stylesheet",href:r[e]}).appendTo("head")},load_panels:function(){var e=parchment.options.panels;-1!=t.inArray("ifdb",e)&&(this.panels.ifdb=t('

Find stories to play at the Interactive Fiction Database.')),-1!=t.inArray("url",e)&&(this.panels.url=t('

')),this.library.container.append(this.panels[e[0]]),this.panels.active=e[0]}})}(jQuery),function(t,e){var n=/([-\w\s_]+)(\.[\w]+(\.js)?)?$/,i=/\.js$/,o=function(){throw new FatalError("Parchment could not load the story. Check your connection, and that the URL is correct.")},a=function(r){e(".load").detach();var n=t.runner=new(t[r[2].vm.runner]||Runner)(parchment.options,r[2].vm.engine),i=location.hash;n.toParchment=function(t){r[2].library.fromRunner(n,t)},n.fromParchment({code:"load",data:new parchment.lib.Story(r[2].responseArray).data}),i&&"#"!=i?n.fromParchment({code:"restore",data:file.base64_decode(i.slice(1))}):n.fromParchment({code:"restart"})};parchment.lib.Story=IFF.subClass({init:function(t,r){if(this.title=r,9>t[0])this._super(),this.chunks.push({type:"ZCOD",data:t}),this.data=t;else if("Glul"==IFF.text_from(t,0))this._super(),this.chunks.push({type:"GLUL",data:t}),this.data=t;else if("FORM"==IFF.text_from(t,0)&&(this._super(t),"IFRS"==this.type))for(var n=0,i=this.chunks.length;i>n;n++){var o=this.chunks[n].type;if("ZCOD"!=o||this.zcode)if("GLUL"!=o||this.glulx){if("IFmd"==o){this.metadata=file.array_to_text(this.chunks[n].data);var a=e(this.metadata);a&&(e("title",a)&&(this.title=e("title",a).text()),e("ifid",a)&&(this.ifid=e("ifid",a).text()),e("release",a)&&(this.release=e("release",a).text()))}}else this.data=this.chunks[n].data;else this.data=this.chunks[n].data}}});var s=Object.subClass({add:function(t){this[t.ifid]=t,t.url&&(this.url[t.url]=t)},url:{}}),c=Object.subClass({init:function(){this.container=e(parchment.options.container),this.ui=new parchment.lib.UI(this)},load:function(){var i,o,a=this,s=parchment.options,c=r.story,h=r.vm,l=0;if(s.lock_story){if(c=s.default_story,!c)throw new FatalError("Story file not specified")}else{if(!s.default_story&&!c)return this.ui.load_panels();c=c||s.default_story}if(e("#about").remove(),e("body").append(a.ui.load_indicator),e.isArray(c)||(c=[c,0]),o=c[0],a.url=o,i=n.exec(o),i=i?i[1]+" - Parchment":"Parchment",s.page_title&&(t.document.title=i),h)h=parchment.vms[h];else for(;parchment.vms.length>l;l++)if(parchment.vms[l].match.test(o)){h=parchment.vms[l];break}if(!h)throw new FatalError("File type is not supported!");try{this.launch(h,c)}catch(u){throw new FatalError(u)}},launch:function(t,r){var n=this,s=[e.ajax(r[0],{dataType:"binary",legacy:r[1]}).done(function(e,r,i){i.library=n,i.vm=t}).fail(o)],c=[e.Deferred()],h=function(){if(0==t.files.length)return c[0].resolve(),void 0;var r=parchment.options.lib_path+t.files.shift();i.test(r)?e.getScript(r,h):(parchment.library.ui.stylesheet_add(r),h())};t.loaded||(t.loaded=1,h(),s[1]=e.when.apply(1,c)),e.when.apply(1,s).done(a)},fromRunner:function(t,e){var r=e.code,n=location.hash;"save"==r&&(location.hash=file.base64_encode(e.data)),"restore"==r&&n&&"#"!=n&&(e.data=file.base64_decode(n.slice(1))),t.fromParchment(e)},stories:new s,savefiles:{}});parchment.lib.Library=c,parchment.vms=[],parchment.add_vm=function(t){parchment.vms.push(t),parchment.vms[t.id]=t}}(t,jQuery),parchment.add_vm({id:"quixe",match:/(ulx|glb|(g|glulx.+)(blorb|blb))(.js)?$/i,files:["glkote.min.js","quixe.min.js","glkote.min.css"],runner:"QuixeRunner"}),parchment.add_vm({id:"zvm",match:/(z[58]|zlb|(z|zcode.+)(blorb|blb))(.js)?$/i,files:["zvm.min.js"],engine:"ZVM"}),parchment.add_vm({id:"gnusto",match:/(z[1-8]|zlb|(z|zcode.+)(blorb|blb))(.js)?$/i,files:["gnusto.min.js"],runner:"GnustoRunner"}),e(function(){var n;t.parchment_options&&e.extend(parchment.options,parchment_options),!parchment.options.lock_options&&r.options&&e.extend(parchment.options,e.parseJSON(r.options)),parchment.options.debug=r.debug,n=new parchment.lib.Library,parchment.library=n,n.load(),-1!=location.href.indexOf("iplayif.com")&&e.getScript("http://google-analytics.com/ga.js",function(){_gat._getTracker("UA-7949545-3")._trackPageview()})})})(this,jQuery);var QuixeRunner=Object.subClass({init:function(t){jQuery(t.container).html('
')},fromParchment:function(t){var e=t.code;"load"==e&&GiLoad.load_run({set_page_title:!0},t.data,"array")}});