function puts(a,b){Console.puts(a,b)}function p(){Console.p.apply(this,arguments)}var BiwaScheme=BiwaScheme||{};BiwaScheme.Version="0.6.1",BiwaScheme.GitCommit="24fb8724db52c64abb502f7152a9f85700a99e99",function(a,b){function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function D(){return!1}function E(){return!0}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")return;a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(x,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function W(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(R.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function bg(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function bh(a,b){if(b.nodeType!==1||!f.hasData(a))return;var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}function bi(a,b){var c;if(b.nodeType!==1)return;b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bA(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bv:bw;if(d>0)return c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0}),d+"px";d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;return d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)}),d+"px"}function bW(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bN),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bX(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bR,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bX(a,c,d,e,l,g)));return(k||!l)&&!g["*"]&&(l=bX(a,c,d,e,"*",g)),l}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bC.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j)return j!==f[0]&&f.unshift(j),d[j]}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cp(){return setTimeout(cq,0),cn=f.now()}function cq(){cn=b}function cr(a,b){var c={};return f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a}),c}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(e.isReady)return;try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};return e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(a==="body"&&!d&&c.body)return this.context=c,this[0]=c.body,this.selector=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1])return d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes),e.merge(this,a);h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}return this.context=c,this.selector=a,this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}return e.isFunction(a)?f.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),e.makeArray(a,this))},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();return e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return e.each(this,a,b)},ready:function(a){return e.bindReady(),A.done(a),this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){return a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f),e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(A)return;A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){return a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b),c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":a.toString().replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(H)return H.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];return a.length=d,a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};return g.guid=a.guid=a.guid||g.guid||e.guid++,g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function d(c,d){return d&&d instanceof e&&!(d instanceof a)&&(d=a(d)),e.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())}),e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){return e.resolveWith(this,arguments),this},isResolved:function(){return!!c||!!b},cancel:function(){return d=1,a=[],this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;return f.extend(b,{then:function(a,c){return b.done(a).fail(c),this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b),b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;return o=l=g=h=m=j=a=i=null,k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?f.cache[a[f.expando]]:a[f.expando],!!a&&!l(a)},data:function(a,c,d,e){if(!f.acceptData(a))return;var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);return i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d),c==="events"&&!i[c]?i[g]&&i[g].events:h?i[f.camelCase(c)]||i[c]:i},removeData:function(b,c,d){if(!f.acceptData(b))return;var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");return j[1]=j[1]?"."+j[1]:"",c===b?(d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d)),d===b&&j[1]?this.data(j[0]):d):this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);return d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d)),e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){return typeof a!="string"&&(c=a,a="fx"),c===b?f.queue(this[0],a):this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){return a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);return m(),d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:|^on/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){return a=f.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return f.isFunction(a)?this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length)return e?(c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type],c&&"get"in c&&(d=c.get(e,"value"))!==b?d:(d=e.value,typeof d=="string"?d.replace(p,""):d==null?"":d)):b;var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType!==1)return;g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}return g&&!d.length&&e.length?f(e[c]).val():d},set:function(a,b){var c=f.makeArray(b);return f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if("getAttribute"in a){var h,i,j=g!==1||!f.isXMLDoc(a);return j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=w:v&&c!=="className"&&(f.nodeName(a,"form")||u.test(c))&&(i=v))),d!==b?d===null?(f.removeAttr(a,c),b):i&&"set"in i&&j&&(h=i.set(a,d,c))!==b?h:(a.setAttribute(c,""+d),d):i&&"get"in i&&j&&(h=i.get(a,c))!==null?h:(h=a.getAttribute(c),h===null?b:h)}return f.prop(a,c,d)},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}},value:{get:function(a,b){return v&&f.nodeName(a,"button")?v.get(a,b):b in a?a.value:null},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);return i&&(c=f.propFix[c]||c,h=f.propHooks[c]),d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return f.prop(a,c)?c.toLowerCase():b},set:function(a,b,c){var d;return b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase())),c}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.attrHooks.title=f.valHooks.button={get:function(a,c){var d;return d=a.getAttributeNode(c),d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d)return d.nodeValue=b,b}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c==="")return a.setAttribute(b,"auto"),c}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType===3||a.nodeType===8)return;if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f=="undefined"||!!a&&f.event.triggered===a.type?b:f.event.handle.apply(k.elem,arguments)}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null},global:{},remove:function(a,c,d,e){if(a.nodeType===3||a.nodeType===8)return;d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?"
)+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}return a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0),a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,N(a.origType,a.selector),f.extend({},a,{handler:M,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,N(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?E:D):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=E;var a=this.originalEvent;if(!a)return;a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=E;var a=this.originalEvent;if(!a)return;a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=E,this.stopPropagation()},isDefaultPrevented:D,isPropagationStopped:D,isImmediatePropagationStopped:D};var F=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},G=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?G:F,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?G:F)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&K("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&K("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var H,I=function(a){var b=a.type,c=a.value;return b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex),c},J=function(a){var c=a.target,d,e;if(!y.test(c.nodeName)||c.readOnly)return;d=f._data(c,"_change_data"),e=I(c),(a.type!=="focusout"||c.type!=="radio")&&f._data(c,"_change_data",e);if(d===b||e===d)return;if(d!=null||e)a.type="change",a.liveFired=b,f.event.trigger(a,arguments[1],c)};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){return f.event.remove(this,".specialChange"),y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){return f(this).unbind(a,g),e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;return f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault(),b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var L={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)===".")return n.unbind(g),this;if(d===!1||f.isFunction(d))e=d||D,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=x.exec(h),k="",j&&(k=j[0],h=h.replace(x,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,L[h]?(a.push(L[h]+k),h+=k):h=(L[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+N(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+N(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){return c==null&&(c=a,a=null),arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){return h=!1,0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length!==1||x[0]!=="~"&&x[0]!=="+"||!d.parentNode?d:d.parentNode,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);return o&&(k(o,h,f,g),k.uniqueSort(f)),f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}return d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]),{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);return a[0]=d++,a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");return!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" "),a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);return d||e.push.apply(e,g),!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){return a.unshift(!0),a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){return a=Array.prototype.slice.call(a,0),b?(b.push.apply(b,a),b):a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){return a===b?(g=!0,0):!a.compareDocumentPosition||!b.compareDocumentPosition?a.compareDocumentPosition?-1:1:a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b)return g=!0,0;if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(b.querySelectorAll&&b.querySelectorAll(".TEST").length===0)return;k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!a.getElementsByClassName||a.getElementsByClassName("e").length===0)return;a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var O=/Until$/,P=/^(?:parents|prevUntil|prevAll)/,Q=/,/,R=/^.[^:#\[\.,]*$/,S=Array.prototype.slice,T=f.expr.match.POS,U={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(W(this,a,!1),"not",a)},filter:function(a){return this.pushStack(W(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=T.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}return c=c.length>1?f.unique(c):c,this.pushStack(c,"closest",a)},index:function(a){return!a||typeof a=="string"?f.inArray(this[0],a?f(a):this.parent().children()):f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);return O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse()),this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/<tbody/i,ba=/<|&#?\w+;/,bb=/<(?:script|object|embed|option|style)/i,bc=/checked\s*(?:[^=]|=\s*.checked.)/i,bd=/\/(java|ecma)script/i,be=/^\s*<!(?:\[CDATA\[|\-\-)/,bf={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){return f.isFunction(a)?this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))}):typeof a!="object"&&a!==b?this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a)):f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return f.isFunction(a)?this.each(function(b){f(this).wrapInner(a.call(this,b))}):this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);return a.push.apply(a,this.toArray()),this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);return a.push.apply(a,f(arguments[0]).toArray()),a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){return this[0]&&this[0].parentNode?f.isFunction(a)?this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))}):(typeof a!="string"&&(a=f(a).detach()),this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})):this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bc.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bg(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bm)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;return b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bb.test(a[0])&&(f.support.checkClone||!bc.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1),{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1)return e[b](this[0]),this;for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[
h];++h)bh(e[h],g[h])}}return e=g=null,d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1></$2>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bl(k[i]);else bl(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bd.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bn=/alpha\([^)]*\)/i,bo=/opacity=([^)]*)/,bp=/([A-Z]|^ms)/g,bq=/^-?\d+(?:px)?$/i,br=/^-?\d/,bs=/^[+\-]=/,bt=/[^+\-\.\de]+/g,bu={position:"absolute",visibility:"hidden",display:"block"},bv=["Left","Right"],bw=["Top","Bottom"],bx,by,bz;f.fn.css=function(a,c){return arguments.length===2&&c===b?this:f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bx(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b)return k&&"get"in k&&(g=k.get(a,!1,e))!==b?g:j[c];h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bs.test(d)&&(d=+d.replace(bt,"")+parseFloat(f.css(a,c)),h="number"),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bx)return bx(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c)return a.offsetWidth!==0?bA(a,b,d):(f.swap(a,bu,function(){e=bA(a,b,d)}),e)},set:function(a,b){if(!bq.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;return f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight}),c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;return!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e)),d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;return f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}}),this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){return f.isFunction(d)&&(g=g||e,e=d,d=b),f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s===2)return;s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return s||(d.mimeType=a),this},abort:function(a){return a=a||"abort",p&&p.abort(a),w(0,a),this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(!d.beforeSend||d.beforeSend.call(e,v,d)!==!1&&s!==2){for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v}return v.abort(),!1},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";return b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){return g||f.error(h+" was not called"),g[0]},b.dataTypes[0]="json","script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return f.globalEval(a),a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cs(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cr("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";return f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cr("toggle",3),a,b,c),this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);return f.isEmptyObject(a)?this.each(e.complete,[!1]):(a=f.extend({},a),this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cs(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0}))},stop:function(a,b){return a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue(),this}}),f.each({slideDown:cr("show",1),slideUp:cr("hide",1),slideToggle:cr("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};return d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)},d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]==null||!!this.elem.style&&this.elem.style[this.prop]!=null){var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a}return this.elem[this.prop]},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cn||cp(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!cl&&(co?(cl=!0,g=function(){cl&&(co(g),e.tick())},co(g)):cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||cp(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}return e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update(),!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var ct=/^t(?:able|d|h)$/i,cu=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cv(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!ct.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;return f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft)),{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;return f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0),{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;return c===b?(e=this[0],e?(g=cv(e),g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]):null):this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f}(window),function(){var a=this,b=a._,c={},d=Array.prototype,e=Object.prototype,f=Function.prototype,g=d.slice,h=d.unshift,i=e.toString,j=e.hasOwnProperty,k=d.forEach,l=d.map,m=d.reduce,n=d.reduceRight,o=d.filter,p=d.every,q=d.some,r=d.indexOf,s=d.lastIndexOf,t=Array.isArray,u=Object.keys,v=f.bind,w=function(a){return new B(a)};typeof module!="undefined"&&module.exports?(module.exports=w,w._=w):a._=w,w.VERSION="1.1.7";var x=w.each=w.forEach=function(a,b,d){if(a==null)return;if(k&&a.forEach===k)a.forEach(b,d);else if(a.length===+a.length){for(var e=0,f=a.length;e<f;e++)if(e in a&&b.call(d,a[e],e,a)===c)return}else for(var g in a)if(j.call(a,g)&&b.call(d,a[g],g,a)===c)return};w.map=function(a,b,c){var d=[];return a==null?d:l&&a.map===l?a.map(b,c):(x(a,function(a,e,f){d[d.length]=b.call(c,a,e,f)}),d)},w.reduce=w.foldl=w.inject=function(a,b,c,d){var e=c!==void 0;a==null&&(a=[]);if(m&&a.reduce===m)return d&&(b=w.bind(b,d)),e?a.reduce(b,c):a.reduce(b);x(a,function(a,f,g){e?c=b.call(d,c,a,f,g):(c=a,e=!0)});if(!e)throw new TypeError("Reduce of empty array with no initial value");return c},w.reduceRight=w.foldr=function(a,b,c,d){a==null&&(a=[]);if(n&&a.reduceRight===n)return d&&(b=w.bind(b,d)),c!==void 0?a.reduceRight(b,c):a.reduceRight(b);var e=(w.isArray(a)?a.slice():w.toArray(a)).reverse();return w.reduce(e,b,c,d)},w.find=w.detect=function(a,b,c){var d;return y(a,function(a,e,f){if(b.call(c,a,e,f))return d=a,!0}),d},w.filter=w.select=function(a,b,c){var d=[];return a==null?d:o&&a.filter===o?a.filter(b,c):(x(a,function(a,e,f){b.call(c,a,e,f)&&(d[d.length]=a)}),d)},w.reject=function(a,b,c){var d=[];return a==null?d:(x(a,function(a,e,f){b.call(c,a,e,f)||(d[d.length]=a)}),d)},w.every=w.all=function(a,b,d){var e=!0;return a==null?e:p&&a.every===p?a.every(b,d):(x(a,function(a,f,g){if(!(e=e&&b.call(d,a,f,g)))return c}),e)};var y=w.some=w.any=function(a,b,d){b=b||w.identity;var e=!1;return a==null?e:q&&a.some===q?a.some(b,d):(x(a,function(a,f,g){if(e|=b.call(d,a,f,g))return c}),!!e)};w.include=w.contains=function(a,b){var c=!1;return a==null?c:r&&a.indexOf===r?a.indexOf(b)!=-1:(y(a,function(a){if(c=a===b)return!0}),c)},w.invoke=function(a,b){var c=g.call(arguments,2);return w.map(a,function(a){return(b.call?b||a:a[b]).apply(a,c)})},w.pluck=function(a,b){return w.map(a,function(a){return a[b]})},w.max=function(a,b,c){if(!b&&w.isArray(a))return Math.max.apply(Math,a);var d={computed:-Infinity};return x(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;g>=d.computed&&(d={value:a,computed:g})}),d.value},w.min=function(a,b,c){if(!b&&w.isArray(a))return Math.min.apply(Math,a);var d={computed:Infinity};return x(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;g<d.computed&&(d={value:a,computed:g})}),d.value},w.sortBy=function(a,b,c){return w.pluck(w.map(a,function(a,d,e){return{value:a,criteria:b.call(c,a,d,e)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")},w.groupBy=function(a,b){var c={};return x(a,function(a,d){var e=b(a,d);(c[e]||(c[e]=[])).push(a)}),c},w.sortedIndex=function(a,b,c){c||(c=w.identity);var d=0,e=a.length;while(d<e){var f=d+e>>1;c(a[f])<c(b)?d=f+1:e=f}return d},w.toArray=function(a){return a?a.toArray?a.toArray():w.isArray(a)?g.call(a):w.isArguments(a)?g.call(a):w.values(a):[]},w.size=function(a){return w.toArray(a).length},w.first=w.head=function(a,b,c){return b!=null&&!c?g.call(a,0,b):a[0]},w.rest=w.tail=function(a,b,c){return g.call(a,b==null||c?1:b)},w.last=function(a){return a[a.length-1]},w.compact=function(a){return w.filter(a,function(a){return!!a})},w.flatten=function(a){return w.reduce(a,function(a,b){return w.isArray(b)?a.concat(w.flatten(b)):(a[a.length]=b,a)},[])},w.without=function(a){return w.difference(a,g.call(arguments,1))},w.uniq=w.unique=function(a,b){return w.reduce(a,function(a,c,d){if(0==d||(b===!0?w.last(a)!=c:!w.include(a,c)))a[a.length]=c;return a},[])},w.union=function(){return w.uniq(w.flatten(arguments))},w.intersection=w.intersect=function(a){var b=g.call(arguments,1);return w.filter(w.uniq(a),function(a){return w.every(b,function(b){return w.indexOf(b,a)>=0})})},w.difference=function(a,b){return w.filter(a,function(a){return!w.include(b,a)})},w.zip=function(){var a=g.call(arguments),b=w.max(w.pluck(a,"length")),c=new Array(b);for(var d=0;d<b;d++)c[d]=w.pluck(a,""+d);return c},w.indexOf=function(a,b,c){if(a==null)return-1;var d,e;if(c)return d=w.sortedIndex(a,b),a[d]===b?d:-1;if(r&&a.indexOf===r)return a.indexOf(b);for(d=0,e=a.length;d<e;d++)if(a[d]===b)return d;return-1},w.lastIndexOf=function(a,b){if(a==null)return-1;if(s&&a.lastIndexOf===s)return a.lastIndexOf(b);var c=a.length;while(c--)if(a[c]===b)return c;return-1},w.range=function(a,b,c){arguments.length<=1&&(b=a||0,a=0),c=arguments[2]||1;var d=Math.max(Math.ceil((b-a)/c),0),e=0,f=new Array(d);while(e<d)f[e++]=a,a+=c;return f},w.bind=function(a,b){if(a.bind===v&&v)return v.apply(a,g.call(arguments,1));var c=g.call(arguments,2);return function(){return a.apply(b,c.concat(g.call(arguments)))}},w.bindAll=function(a){var b=g.call(arguments,1);return b.length==0&&(b=w.functions(a)),x(b,function(b){a[b]=w.bind(a[b],a)}),a},w.memoize=function(a,b){var c={};return b||(b=w.identity),function(){var d=b.apply(this,arguments);return j.call(c,d)?c[d]:c[d]=a.apply(this,arguments)}},w.delay=function(a,b){var c=g.call(arguments,2);return setTimeout(function(){return a.apply(a,c)},b)},w.defer=function(a){return w.delay.apply(w,[a,1].concat(g.call(arguments,1)))};var z=function(a,b,c){var d;return function(){var e=this,f=arguments,g=function(){d=null,a.apply(e,f)};c&&clearTimeout(d);if(c||!d)d=setTimeout(g,b)}};w.throttle=function(a,b){return z(a,b,!1)},w.debounce=function(a,b){return z(a,b,!0)},w.once=function(a){var b=!1,c;return function(){return b?c:(b=!0,c=a.apply(this,arguments))}},w.wrap=function(a,b){return function(){var c=[a].concat(g.call(arguments));return b.apply(this,c)}},w.compose=function(){var a=g.call(arguments);return function(){var b=g.call(arguments);for(var c=a.length-1;c>=0;c--)b=[a[c].apply(this,b)];return b[0]}},w.after=function(a,b){return function(){if(--a<1)return b.apply(this,arguments)}},w.keys=u||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[];for(var c in a)j.call(a,c)&&(b[b.length]=c);return b},w.values=function(a){return w.map(a,w.identity)},w.functions=w.methods=function(a){var b=[];for(var c in a)w.isFunction(a[c])&&b.push(c);return b.sort()},w.extend=function(a){return x(g.call(arguments,1),function(b){for(var c in b)b[c]!==void 0&&(a[c]=b[c])}),a},w.defaults=function(a){return x(g.call(arguments,1),function(b){for(var c in b)a[c]==null&&(a[c]=b[c])}),a},w.clone=function(a){return w.isArray(a)?a.slice():w.extend({},a)},w.tap=function(a,b){return b(a),a},w.isEqual=function(a,b){if(a===b)return!0;var c=typeof a,d=typeof b;if(c!=d)return!1;if(a==b)return!0;if(!a&&b||a&&!b)return!1;a._chain&&(a=a._wrapped),b._chain&&(b=b._wrapped);if(a.isEqual)return a.isEqual(b);if(b.isEqual)return b.isEqual(a);if(w.isDate(a)&&w.isDate(b))return a.getTime()===b.getTime();if(w.isNaN(a)&&w.isNaN(b))return!1;if(w.isRegExp(a)&&w.isRegExp(b))return a.source===
b.source&&a.global===b.global&&a.ignoreCase===b.ignoreCase&&a.multiline===b.multiline;if(c!=="object")return!1;if(a.length&&a.length!==b.length)return!1;var e=w.keys(a),f=w.keys(b);if(e.length!=f.length)return!1;for(var g in a)if(!(g in b)||!w.isEqual(a[g],b[g]))return!1;return!0},w.isEmpty=function(a){if(w.isArray(a)||w.isString(a))return a.length===0;for(var b in a)if(j.call(a,b))return!1;return!0},w.isElement=function(a){return!!a&&a.nodeType==1},w.isArray=t||function(a){return i.call(a)==="[object Array]"},w.isObject=function(a){return a===Object(a)},w.isArguments=function(a){return!!a&&!!j.call(a,"callee")},w.isFunction=function(a){return!!(a&&a.constructor&&a.call&&a.apply)},w.isString=function(a){return!!(a===""||a&&a.charCodeAt&&a.substr)},w.isNumber=function(a){return!!(a===0||a&&a.toExponential&&a.toFixed)},w.isNaN=function(a){return a!==a},w.isBoolean=function(a){return a===!0||a===!1},w.isDate=function(a){return!!(a&&a.getTimezoneOffset&&a.setUTCFullYear)},w.isRegExp=function(a){return!(!(a&&a.test&&a.exec)||!a.ignoreCase&&a.ignoreCase!==!1)},w.isNull=function(a){return a===null},w.isUndefined=function(a){return a===void 0},w.noConflict=function(){return a._=b,this},w.identity=function(a){return a},w.times=function(a,b,c){for(var d=0;d<a;d++)b.call(c,d)},w.mixin=function(a){x(w.functions(a),function(b){D(b,w[b]=a[b])})};var A=0;w.uniqueId=function(a){var b=A++;return a?a+b:b},w.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g},w.template=function(a,b){var c=w.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(c.interpolate,function(a,b){return"',"+b.replace(/\\'/g,"'")+",'"}).replace(c.evaluate||null,function(a,b){return"');"+b.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+"__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj",d);return b?e(b):e};var B=function(a){this._wrapped=a};w.prototype=B.prototype;var C=function(a,b){return b?w(a).chain():a},D=function(a,b){B.prototype[a]=function(){var a=g.call(arguments);return h.call(a,this._wrapped),C(b.apply(w,a),this._chain)}};w.mixin(w),x(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var b=d[a];B.prototype[a]=function(){return b.apply(this._wrapped,arguments),C(this._wrapped,this._chain)}}),x(["concat","join","slice"],function(a){var b=d[a];B.prototype[a]=function(){return C(b.apply(this._wrapped,arguments),this._chain)}}),B.prototype.chain=function(){return this._chain=!0,this},B.prototype.value=function(){return this._wrapped}}(),function(){function d(a,b){for(var c=[];b>0;c[--b]=a);return c.join("")}function e(a){return a?f.escapeRegExp(a):"\\s"}var a=this,b=String.prototype.trim,c=function(a){return a*1||0},f={isBlank:function(a){return!!a.match(/^\s*$/)},capitalize:function(a){return a.charAt(0).toUpperCase()+a.substring(1).toLowerCase()},chop:function(a,b){b=b||a.length;var c=[];for(var d=0;d<a.length;)c.push(a.slice(d,d+b)),d+=b;return c},clean:function(a){return f.strip(a.replace(/\s+/g," "))},count:function(a,b){var c=0,d;for(var e=0;e<a.length;)d=a.indexOf(b,e),d>=0&&c++,e=e+(d<0?0:d)+b.length;return c},chars:function(a){return a.split("")},escapeHTML:function(a){return String(a||"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")},unescapeHTML:function(a){return String(a||"").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&apos;/g,"'")},escapeRegExp:function(a){return String(a||"").replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},insert:function(a,b,c){var d=a.split("");return d.splice(b,0,c),d.join("")},includes:function(a,b){return a.indexOf(b)!==-1},join:function(a){a=String(a);var b="";for(var c=1;c<arguments.length;c+=1)b+=String(arguments[c]),c!==arguments.length-1&&(b+=a);return b},lines:function(a){return a.split("\n")},splice:function(a,b,c,d){var e=a.split("");return e.splice(b,c,d),e.join("")},startsWith:function(a,b){return a.length>=b.length&&a.substring(0,b.length)===b},endsWith:function(a,b){return a.length>=b.length&&a.substring(a.length-b.length)===b},succ:function(a){var b=a.split("");return b.splice(a.length-1,1,String.fromCharCode(a.charCodeAt(a.length-1)+1)),b.join("")},titleize:function(a){var b=a.split(" "),c;for(var d=0;d<b.length;d++)c=b[d].split(""),typeof c[0]!="undefined"&&(c[0]=c[0].toUpperCase()),d+1===b.length?b[d]=c.join(""):b[d]=c.join("")+" ";return b.join("")},camelize:function(a){return f.trim(a).replace(/(\-|_|\s)+(.)?/g,function(a,b,c){return c?c.toUpperCase():""})},underscored:function(a){return f.trim(a).replace(/([a-z\d])([A-Z]+)/g,"$1_$2").replace(/\-|\s+/g,"_").toLowerCase()},dasherize:function(a){return f.trim(a).replace(/([a-z\d])([A-Z]+)/g,"$1-$2").replace(/^([A-Z]+)/,"-$1").replace(/\_|\s+/g,"-").toLowerCase()},trim:function(a,c){return!c&&b?b.call(a):(c=e(c),a.replace(new RegExp("^["+c+"]+|["+c+"]+$","g"),""))},ltrim:function(a,b){return b=e(b),a.replace(new RegExp("^["+b+"]+","g"),"")},rtrim:function(a,b){return b=e(b),a.replace(new RegExp("["+b+"]+$","g"),"")},truncate:function(a,b,c){return c=c||"...",a.slice(0,b)+c},words:function(a,b){return b=b||" ",a.split(b)},pad:function(a,b,c,e){var f="",g=0;c?c.length>1&&(c=c[0]):c=" ";switch(e){case"right":g=b-a.length,f=d(c,g),a+=f;break;case"both":g=b-a.length,f={left:d(c,Math.ceil(g/2)),right:d(c,Math.floor(g/2))},a=f.left+a+f.right;break;default:g=b-a.length,f=d(c,g),a=f+a}return a},lpad:function(a,b,c){return f.pad(a,b,c)},rpad:function(a,b,c){return f.pad(a,b,c,"right")},lrpad:function(a,b,c){return f.pad(a,b,c,"both")},sprintf:function(){var a=0,b,c=arguments[a++],e=[],f,g,h,i,j="";while(c){if(f=/^[^\x25]+/.exec(c))e.push(f[0]);else if(f=/^\x25{2}/.exec(c))e.push("%");else{if(!(f=/^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(c)))throw"Huh ?!";if((b=arguments[f[1]||a++])==null||b==undefined)throw"Too few arguments.";if(/[^s]/.test(f[7])&&typeof b!="number")throw"Expecting number but found "+typeof b;switch(f[7]){case"b":b=b.toString(2);break;case"c":b=String.fromCharCode(b);break;case"d":b=parseInt(b);break;case"e":b=f[6]?b.toExponential(f[6]):b.toExponential();break;case"f":b=f[6]?parseFloat(b).toFixed(f[6]):parseFloat(b);break;case"o":b=b.toString(8);break;case"s":b=(b=String(b))&&f[6]?b.substring(0,f[6]):b;break;case"u":b=Math.abs(b);break;case"x":b=b.toString(16);break;case"X":b=b.toString(16).toUpperCase()}b=/[def]/.test(f[7])&&f[2]&&b>=0?"+"+b:b,h=f[3]?f[3]=="0"?"0":f[3].charAt(1):" ",i=f[5]-String(b).length-j.length,g=f[5]?d(h,i):"",e.push(j+(f[4]?b+g:g+b))}c=c.substring(f[0].length)}return e.join("")},toNumber:function(a,b){return c(c(a).toFixed(c(b)))},strRight:function(a,b){var c=b?a.indexOf(b):-1;return c!=-1?a.slice(c+b.length,a.length):a},strRightBack:function(a,b){var c=b?a.lastIndexOf(b):-1;return c!=-1?a.slice(c+b.length,a.length):a},strLeft:function(a,b){var c=b?a.indexOf(b):-1;return c!=-1?a.slice(0,c):a},strLeftBack:function(a,b){var c=a.lastIndexOf(b);return c!=-1?a.slice(0,c):a}};f.strip=f.trim,f.lstrip=f.ltrim,f.rstrip=f.rtrim,f.center=f.lrpad,f.ljust=f.lpad,f.rjust=f.rpad,typeof window=="undefined"&&typeof module!="undefined"?module.exports=f:typeof a._!="undefined"?a._.mixin(f):a._=f}(),BiwaScheme.Class={create:function(a){var b=function(){this.initialize.apply(this,arguments)};return _.extend(b.prototype,a),b},extend:function(a,b){var c=function(){this.initialize.apply(this,arguments)};return c.prototype=a,_.extend(c.prototype,b),c}},typeof Console!="undefined",BiwaScheme.TopEnv={},BiwaScheme.CoreEnv={},BiwaScheme.Error=BiwaScheme.Class.create({initialize:function(a){this.message="Error: "+a},toString:function(){return this.message}}),BiwaScheme.Bug=BiwaScheme.Class.extend(new BiwaScheme.Error,{initialize:function(a){this.message="[BUG] "+a}}),BiwaScheme.UserError=BiwaScheme.Class.extend(new BiwaScheme.Error,{initialize:function(a){this.message=a}}),BiwaScheme.Set=BiwaScheme.Class.create({initialize:function(){this.arr=[];var a;for(a=0;a<arguments.length;a++)this.arr[a]=arguments[a]},equals:function(a){if(this.arr.length!=a.arr.length)return!1;var b=_.clone(this.arr),c=_.clone(a.arr);b.sort(),c.sort();for(var d=0;d<this.arr.length;d++)if(b[d]!=c[d])return!1;return!0},set_cons:function(a){var b=new BiwaScheme.Set(a);return b.arr=_.clone(this.arr),b.arr.push(a),b},set_union:function(){var a=new BiwaScheme.Set;a.arr=_.clone(this.arr);for(var b=0;b<arguments.length;b++){var c=arguments[b];if(!(c instanceof BiwaScheme.Set))throw new BiwaScheme.Error("set_union: arguments must be a set");for(var d=0;d<c.arr.length;d++)a.add(c.arr[d])}return a},set_intersect:function(a){if(a instanceof BiwaScheme.Set){var b=new BiwaScheme.Set;for(var c=0;c<this.arr.length;c++)a.member(this.arr[c])&&b.add(this.arr[c]);return b}throw new BiwaScheme.Error("set_intersect: arguments must be a set")},set_minus:function(a){if(a instanceof BiwaScheme.Set){var b=new BiwaScheme.Set;for(var c=0;c<this.arr.length;c++)a.member(this.arr[c])||b.add(this.arr[c]);return b}throw new BiwaScheme.Error("set_minus: arguments must be a set")},add:function(a){this.member(a)||this.arr.push(a)},member:function(a){for(var b=0;b<this.arr.length;b++)if(this.arr[b]==a)return!0;return!1},rindex:function(a){for(var b=this.arr.length-1;b>=0;b--)if(this.arr[b]==a)return this.arr.length-1-b;return null},index:function(a){for(var b=0;b<this.arr.length;b++)if(this.arr[b]==a)return b;return null},inspect:function(){return"Set("+this.arr.join(", ")+")"},toString:function(){return this.inspect()},size:function(){return this.arr.length}}),BiwaScheme.to_write=function(a){if(a===undefined)return"undefined";if(a===null)return"null";if(_.isFunction(a))return"#<Function "+(a.fname?a.fname:a.toSource?_.truncate(a.toSource(),40):"")+">";if(_.isString(a))return'"'+a.replace(/\\|\"/g,function(a){return"\\"+a}).replace(/\x07/g,"\\a").replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\v/g,"\\v").replace(/\f/g,"\\f").replace(/\r/g,"\\r")+'"';if(_.isArray(a)&&a.closure_p)return"#<Closure>";if(_.isArray(a))return"#("+_.map(a,function(a){return BiwaScheme.to_write(a)}).join(" ")+")";if(typeof a.to_write=="function")return a.to_write();if(isNaN(a)&&typeof a=="number")return"+nan.0";switch(a){case!0:return"#t";case!1:return"#f";case Infinity:return"+inf.0";case-Infinity:return"-inf.0"}return BiwaScheme.inspect(a)},BiwaScheme.to_display=function(a){return typeof a.valueOf()=="string"?a:a instanceof BiwaScheme.Symbol?a.name:a instanceof Array?"#("+_.map(a,BiwaScheme.to_display).join(" ")+")":a instanceof BiwaScheme.Pair?a.inspect(BiwaScheme.to_display):a instanceof BiwaScheme.Char?a.value:BiwaScheme.to_write(a)},BiwaScheme.write_ss=function(a,b){var c=[a],d=[!1];BiwaScheme.find_cyclic(a,c,d);var e=BiwaScheme.reduce_cyclic_info(c,d),f=new Array(e.length);for(var g=e.length-1;g>=0;g--)f[g]=!1;return BiwaScheme.to_write_ss(a,e,f,b)},BiwaScheme.to_write_ss=function(a,b,c,d){var e="",f=b.indexOf(a);if(f>=0){if(c[f])return"#"+f+"#";c[f]=!0,e="#"+f+"="}if(a instanceof BiwaScheme.Pair){var g=[];g.push(BiwaScheme.to_write_ss(a.car,b,c,d));for(var h=a.cdr;h!=BiwaScheme.nil;h=h.cdr)if(h instanceof BiwaScheme.Pair&&b.indexOf(h)<0)g.push(BiwaScheme.to_write_ss(h.car,b,c,d));else{g.push("."),g.push(BiwaScheme.to_write_ss(h,b,c,d));break}e+="("+g.join(" ")+")"}else if(a instanceof Array){var g=_.map(a,function(a){return BiwaScheme.to_write_ss(a,b,c,d)});d?e+="["+g.join(", ")+"]":e+="#("+g.join(" ")+")"}else e+=BiwaScheme.to_write(a);return e},BiwaScheme.reduce_cyclic_info=function(a,b){var c=0;for(var d=0;d<b.length;d++)b[d]&&(a[c]=a[d],c++);return a.slice(0,c)},BiwaScheme.find_cyclic=function(a,b,c){var d=a instanceof BiwaScheme.Pair?[a.car,a.cdr]:a instanceof Array?a:null;if(!d)return;_.each(d,function(a){if(typeof a=="number"||typeof a=="string"||a===BiwaScheme.undef||a===!0||a===!1||a===BiwaScheme.nil||a instanceof BiwaScheme.Symbol)return;var d=b.indexOf(a);d<0?(b.push(a),c.push(!1),BiwaScheme.find_cyclic(a,b,c)):c[d]=!0})},BiwaScheme.inspect=function(a,b){try{return _.isUndefined(a)?"undefined":a===null?"null":a===!0?"#t":a===!1?"#f":a.inspect?a.inspect():_.isString(a)?"'"+a.replace(/'/g,"\\'")+"'":_.isArray(a)?"["+_.map(a,BiwaScheme.inspect).join(", ")+"]":b&&b.fallback?b.fallback:a.toString()}catch(c){if(c instanceof RangeError)return"...";throw c}},BiwaScheme.Pair=BiwaScheme.Class.create({initialize:function(a,b){this.car=a,this.cdr=b},caar:function(){return this.car.car},cadr:function(){return this.cdr.car},cdar:function(){return this.cdr.car},cddr:function(){return this.cdr.cdr},first:function(){return this.car},second:function(){return this.cdr.car},third:function(){return this.cdr.cdr.car},fourth:function(){return this.cdr.cdr.cdr.car},fifth:function(){return this.cdr.cdr.cdr.cdr.car},to_array:function(){var a=[];for(var b=this;b instanceof BiwaScheme.Pair;b=b.cdr)a.push(b.car);return a},to_set:function(){var a=new BiwaScheme.Set;for(var b=this;b instanceof BiwaScheme.Pair;b=b.cdr)a.add(b.car);return a},length:function(){var a=0;for(var b=this;b instanceof BiwaScheme.Pair;b=b.cdr)a++;return a},foreach:function(a){for(var b=this;b instanceof BiwaScheme.Pair;b=b.cdr)a(b.car);return b},map:function(a){var b=[];for(var c=this;BiwaScheme.isPair(c);c=c.cdr)b.push(a(c.car));return b},concat:function(a){var b=this;while(b instanceof BiwaScheme.Pair&&b.cdr!=BiwaScheme.nil)b=b.cdr;return b.cdr=a,this},inspect:function(a){a||(a=BiwaScheme.inspect);var b=[],c=this.foreach(function(c){b.push(a(c))});return c!=BiwaScheme.nil&&(b.push("."),b.push(a(c))),"("+b.join(" ")+")"},toString:function(){return this.inspect()},to_write:function(){return this.inspect(BiwaScheme.to_write)}});var array_to_list=function(a,b){var c=BiwaScheme.nil;for(var d=a.length-1;d>=0;d--){var e=a[d];b&&_.isArray(e)&&!e.is_vector&&(e=BiwaScheme.array_to_list(e)),c=new BiwaScheme.Pair(e,c)}return c};BiwaScheme.List=function(){var a=_.toArray(arguments);return array_to_list(a,!0)},BiwaScheme.array_to_list=function(a){return BiwaScheme.List.apply(null,a)},BiwaScheme.shallow_array_to_list=function(a){return array_to_list(a,!1)},BiwaScheme.Values=BiwaScheme.Class.create({initialize:function(a){this.content=a},to_write:function(){return"#<Values "+_.map(this.content,BiwaScheme.to_write).join(" ")+">"}}),BiwaScheme.nil={toString:function(){return"nil"},to_write:function(){return"()"},to_array:function(){return[]},length:function(){return 0}},BiwaScheme.undef=new Object,BiwaScheme.undef.toString=function(){return"#<undef>"},BiwaScheme.eof=new Object,BiwaScheme.Symbol=BiwaScheme.Class.create({initialize:function(a){this.name=a,BiwaScheme.Symbols[a]=this},inspect:function(){return"'"+this.name},toString:function(){return"'"+this.name},to_write:function(){return this.name}}),BiwaScheme.Symbols={},BiwaScheme.Sym=function(a,b){return BiwaScheme.Symbols[a]===undefined?new BiwaScheme.Symbol(a):BiwaScheme.Symbols[a]instanceof BiwaScheme.Symbol?BiwaScheme.Symbols[a]:new BiwaScheme.Symbol(a)},BiwaScheme.gensym=function(){return BiwaScheme.Sym(_.uniqueId("__gensym"))},BiwaScheme.Char=BiwaScheme.Class.create({initialize:function(a){BiwaScheme.Chars[this.value=a]=this},to_write:function(){switch(this.value){case"\n":return"#\\newline";case" ":return"#\\space";case"\t":return"#\\tab";default:return"#\\"+this.value}},inspect:function(){return this.to_write()}}),BiwaScheme.Chars={},BiwaScheme.Char.get=function(a){if(typeof a!="string")throw new BiwaScheme.Bug("Char.get: "+BiwaScheme.inspect(a)+" is not a string");return BiwaScheme.Chars[a]===undefined?new BiwaScheme.Char(a):BiwaScheme.Chars[a]},BiwaScheme.Complex=BiwaScheme.Class.create({initialize:function(a,b){this.real=a,this.imag=b},magnitude:function(){return Math.sqrt(this.real*this.real+this.imag*this.imag)},angle:function(){return Math.acos(this.real/this.magnitude())}}),BiwaScheme.Complex.from_polar=function(a,b){var c=a*Math.cos(b),d=a*Math.sin(b);return new BiwaScheme.Complex(c,d)},BiwaScheme.Complex.assure=function(a){return a instanceof BiwaScheme.Complex?a:new BiwaScheme.Complex(a,0)},BiwaScheme.Rational=BiwaScheme.Class.create({initialize:function(a,b){this.numerator=a,this.denominator=b}}),BiwaScheme.Port=BiwaScheme.Class.create({initialize:function(a,b){this.is_open=!0,this.is_binary=!1,this.is_input=a,this.is_output=b},close:function(){this.is_open=!1},inspect:function(){return"#<Port>"},to_write:function(){return"#<Port>"}}),BiwaScheme.Port.BrowserInput=BiwaScheme.Class.extend(new BiwaScheme.Port(!0,!1),{initialize:function(){},get_string:function(a){var b=$("<form/>");return b.html("<input id='webscheme-read-line' type='text'><input type='submit' value='ok'>"),$("#bs-console").append(b),new BiwaScheme.Pause(function(c){b.submit(function(){var d=$("#webscheme-read-line").val();return b.remove(),puts(d),c.resume(a(d)),!1})})}}),BiwaScheme.Port.DefaultOutput=BiwaScheme.Class.extend(new BiwaScheme.Port(!1,!0),{initialize:function(){},put_string:function(a){puts(a,!0)}}),BiwaScheme.Port.StringOutput=BiwaScheme.Class.extend(new BiwaScheme.Port(!1,!0),{initialize:function(){this.buffer=[]},put_string:function(a){this.buffer.push(a)},output_string:function(a){return this.buffer.join("")}}),BiwaScheme.Port.StringInput=BiwaScheme.Class.extend(new BiwaScheme.Port(!0,!1),{initialize:function(a){this.str=a},get_string:function(a){return a(this.str)}}),BiwaScheme.Port.current_input=new BiwaScheme.Port.BrowserInput,BiwaScheme.Port.current_output=new BiwaScheme.Port.DefaultOutput,BiwaScheme.Port.current_error=new BiwaScheme.Port.DefaultOutput,BiwaScheme.Record=BiwaScheme.Class.create({initialize:function(a,b){assert_record_td(a,"new Record"),this.rtd=a,this.fields=b},get:function(a){return this.fields[a]},set:function(a,b){this.fields[a]=b},toString:function(){var a=BiwaScheme.to_write(this.fields);return"#<Record "+this.rtd.name+" "+a+">"}}),BiwaScheme.isRecord=function(a){return a instanceof BiwaScheme.Record},BiwaScheme.Record._DefinedTypes={},BiwaScheme.Record.define_type=function(a,b,c){return BiwaScheme.Record._DefinedTypes[a]={rtd:b,cd:c}},BiwaScheme.Record.get_type=function(a){return BiwaScheme.Record._DefinedTypes[a]},BiwaScheme.Record.RTD=BiwaScheme.Class.create({initialize:function(a,b,c,d,e,f){this.name=a,this.parent_rtd=b,this.is_base_type=!b,c?(this.uid=c,this.generative=!1):(this.uid=this._generate_new_uid(),this.generative=!0),this.sealed=!!d,this.opaque=b.opaque||!!e,this.fields=_.map(f,function(a){return{name:a[0],mutable:!!a[1]}})},field_name:function(a){var b=this._field_names();for(par=this.parent_rtd;par;par=par.parent_rtd)b=par._field_names()+b;return b[a]},_field_names:function(){return _.map(this.fields,function(a){return a.name})},_generate_new_uid:function(){return BiwaScheme.Sym(_.uniqueId("__record_td_uid"))},toString:function(){return"#<RecordTD "+name+">"}}),BiwaScheme.Record.RTD.NongenerativeRecords={},BiwaScheme.isRecordTD=function(a){return a instanceof BiwaScheme.Record.RTD},BiwaScheme.Record.CD=BiwaScheme.Class.create({initialize:function(a,b,c){this._check(a,b,c),this.rtd=a,this.parent_cd=b,c?(this.has_custom_protocol=!0,this.protocol=c):(this.has_custom_protocol=!1,a.parent_rtd?this.protocol=this._default_protocol_for_derived_types():this.protocol=this._default_protocol_for_base_types())},_check:function(a,b,c){if(a.is_base_type&&b)throw new Error("Record.CD.new: cannot specify parent cd of a base type");if(b&&a.parent_rtd&&b.rtd!=a.parent_rtd)throw new Error("Record.CD.new: mismatched parents between rtd and parent_cd");if(a.parent_rtd&&!b&&c)throw new Error("Record.CD.new: protocol must be #f when parent_cd is not given");if(b&&b.has_custom_protocol&&!c)throw new Error("Record.CD.new: protocol must be specified when parent_cd has a custom protocol")},_default_protocol_for_base_types:function(){return function(a){var b=a[0];return assert_procedure(b,"_default_protocol/base"),b}},_default_protocol_for_derived_types:function(){var a=this.rtd;return function(b){var c=b[0];assert_procedure(c,"_default_protocol/n");var d=function(b){var d=a.fields.length,e=b.length-d,f=b.slice(0,e),g=b.slice(e);return new BiwaScheme.Call(c,f,function(a){var b=a[0];return assert_procedure(b,"_default_protocol/p"),new BiwaScheme.Call(b,g,function(a){var b=a[0];return assert_record(b,"_default_protocol/result"),b})})};return d}},toString:function(){return"#<RecordCD "+this.rtd.name+">"},record_constructor:function(){var a=this.parent_cd?this._make_n([],this.rtd):this._make_p();return a=_.bind(a,this),new BiwaScheme.Call(this.protocol,[a],function(a){var b=a[0];return assert_procedure(b,"record_constructor"),b})},_make_p:function(){return function(a){return new BiwaScheme.Record(this.rtd,a)}},_make_n:function(a,b){var c=this.parent_cd;if(c){var d=function(d){var e=function(e){var f=[].concat(e[0]).concat(a),g=c._make_n(f,b);return new BiwaScheme.Call(c.protocol,[g],function(a){var b=a[0];return assert_procedure(b,"_make_n"),new BiwaScheme.Call(b,d,function(a){var b=a[0];return assert_record(b),b})})};return e};return d}var d=function(c){var d=c.concat(a);return new BiwaScheme.Record(b,d)};return d}}),BiwaScheme.isRecordCD=function(a){return a instanceof BiwaScheme.Record.CD},BiwaScheme.Enumeration={},BiwaScheme.Enumeration.EnumType=BiwaScheme.Class.create({initialize:function(a){this.members=_.uniq(a)},universe:function(){return new BiwaScheme.Enumeration.EnumSet(this,this.members)},indexer:function(){return _.bind(function(a){assert_symbol(a[0],"(enum-set indexer)");var b=_.indexOf(this.members,a[0]);return b===-1?!1:b},this)},constructor:function(){return _.bind(function(a){assert_list(a[0],"(enum-set constructor)");var b=a[0].to_array();return _.each(b,function(a){assert_symbol(a,"(enum-set constructor)")}),new BiwaScheme.Enumeration.EnumSet(this,b)},this)}}),BiwaScheme.Enumeration.EnumSet=BiwaScheme.Class.create({initialize:function(a,b){this.enum_type=a,this.symbols=_.filter(a.members,function(a){return _.include(b,a)})},symbol_list:function(){return BiwaScheme.array_to_list(this.symbols)},is_member:function(a){return _.include(this.symbols,a)},is_subset:function(a){return _.any(this.symbols,function(b){return!_.include(a.symbols,b)})?!1:this.enum_type===a.enum_type?!0:_.all(this.enum_type.members,function(b){return _.include(a.enum_type.members,b)})},equal_to:function(a){return this.is_subset(a)&&a.is_subset(this)},union:function(a){var b=_.filter(this.enum_type.members,_.bind(function(b){return _.include(this.symbols,b)||_.include(a.symbols,b)},this));return new BiwaScheme.Enumeration.EnumSet(this.enum_type,b)},intersection:function(a){var b=_.filter(this.symbols,function(b){return _.include(a.symbols,b)});return new BiwaScheme.Enumeration.EnumSet(this.enum_type,b)},difference:function(a){var b=_.filter(this.symbols,function(b){return!_.include(a.symbols,b)});return new BiwaScheme.Enumeration.EnumSet(this.enum_type,b)},complement:function(){var a=_.filter(this.enum_type.members,_.bind(function(a){return!_.include(this.symbols,a)},this));return new BiwaScheme.Enumeration.EnumSet(this.enum_type,a)},projection:function(a){var b=_.filter(this.symbols,function(b){return _.include(a.enum_type.members,b)});return new BiwaScheme.Enumeration.EnumSet(a.enum_type,b)},toString:function(){return"#<EnumSet "+BiwaScheme.inspect(this.symbols)+">"}}),BiwaScheme.isEnumSet=function(a){return a instanceof BiwaScheme.Enumeration.EnumSet},BiwaScheme.Hashtable=BiwaScheme.Class.create({initialize:function(a,b,c){this.mutable=c===undefined?!0:c?!0:!1,this.hash_proc=a,this.equiv_proc=b,this.pairs_of={}},clear:function(){this.pairs_of={}},candidate_pairs:function(a){return this.pairs_of[a]},add_pair:function(a,b,c){var d=this.pairs_of[a];d?d.push([b,c]):this.pairs_of[a]=[[b,c]]},remove_pair:function(a,b){var c=this.pairs_of[a],d=c.indexOf(b);if(d==-1)throw new BiwaScheme.Bug("Hashtable#remove_pair: pair not found!");c.splice(d,1)},create_copy:function(a){var b=new BiwaScheme.Hashtable(this.hash_proc,this.equiv_proc,a);return _.each(_.keys(this.pairs_of),_.bind(function(a){var c=this.pairs_of[a],d=_.map(c,function(a){return _.clone(a)});b.pairs_of[a]=d},this)),b},size:function(){var a=0;return this._apply_pair(function(b){a++}),a},keys:function(){return this._apply_pair(function(a){return a[0]})},values:function(){return this._apply_pair(function(a){return a[1]})},_apply_pair:function(a){var b=[];return _.each(_.values(this.pairs_of),function(c){_.each(c,function(c){b.push(a(c))})}),b},to_write:function(){return"#<Hashtable size="+this.size()+">"}}),BiwaScheme.Hashtable.equal_hash=function(a){return BiwaScheme.to_write(a[0])},BiwaScheme.Hashtable.eq_hash=BiwaScheme.Hashtable.equal_hash,BiwaScheme.Hashtable.eqv_hash=BiwaScheme.Hashtable.equal_hash,BiwaScheme.Hashtable.string_hash=function(a){return a[0]},BiwaScheme.Hashtable.string_ci_hash=function(a){return _.isString(a[0])?a[0].toLowerCase():a[0]},BiwaScheme.Hashtable.symbol_hash=function(a){return a[0]instanceof BiwaScheme.Symbol?a[0].name:a[0]},BiwaScheme.Hashtable.eq_equiv=function(a){return BiwaScheme.eq(a[0],a[1])},BiwaScheme.Hashtable.eqv_equiv=function(a){return BiwaScheme.eqv(a[0],a[1])},BiwaScheme.Syntax=BiwaScheme.Class.create({initialize:function(a,b){this.sname=a,this.func=b},transform:function(a){if(!this.func)throw new BiwaScheme.Bug("sorry, syntax "+this.sname+" is a pseudo syntax now");return this.func(a)},inspect:function(){return"#<Syntax "+this.sname+">"}}),BiwaScheme.TopEnv.define=new BiwaScheme.Syntax("define"),BiwaScheme.TopEnv.begin=new BiwaScheme.Syntax("begin"),BiwaScheme.TopEnv.quote=new BiwaScheme.Syntax("quote"),BiwaScheme.TopEnv.lambda=new BiwaScheme.Syntax("lambda"),BiwaScheme.TopEnv["if"]=new BiwaScheme.Syntax("if"),BiwaScheme.TopEnv["set!"]=new BiwaScheme.Syntax("set!"),BiwaScheme.isNil=function(a){return a===BiwaScheme.nil},BiwaScheme.isUndef=function(a){return a===BiwaScheme.undef},BiwaScheme.isChar=function(a){return a instanceof BiwaScheme.Char},BiwaScheme.isSymbol=function(a){return a instanceof BiwaScheme.Symbol},BiwaScheme.isPort=function(a){return a instanceof BiwaScheme.Port},BiwaScheme.isPair=function(a){return a instanceof BiwaScheme.Pair},BiwaScheme.isList=function(a){return a===BiwaScheme.nil?!0:a instanceof BiwaScheme.Pair?BiwaScheme.isList(a.cdr):!1},BiwaScheme.isVector=function(a){return a instanceof Array&&a.closure_p!==!0},BiwaScheme.isHashtable=function(a){return a instanceof BiwaScheme.Hashtable},BiwaScheme.isMutableHashtable=function(a){return a instanceof BiwaScheme.Hashtable&&a.mutable},BiwaScheme.isClosure=function(a){return a instanceof Array&&a.closure_p===!0},BiwaScheme.isProcedure=function(a){return BiwaScheme.isClosure(a)||_.isFunction(a)},BiwaScheme.Parser=BiwaScheme.Class.create({initialize:function(a){this.tokens=this.tokenize(a),this.i=0},inspect:function(){return["#<Parser:",this.i,"/",this.tokens.length," ",BiwaScheme.inspect(this.tokens),">"].join("")},tokenize:function(a){var b=new Array,c=null,d=0;while(a!=""&&c!=a)c=a,a=a.replace(/^\s*(;[^\r\n]*(\r|\n|$)|#;|#\||#\\[^\w]|#?(\(|\[|{)|\)|\]|}|\'|`|,@|,|\+inf\.0|-inf\.0|\+nan\.0|\"(\\(.|$)|[^\"\\])*(\"|$)|[^\s()\[\]{}]+)/,function(a,c){var e=c;if(e=="#|")return d++,"";if(d>0){if(/(.*\|#)/.test(e)){d--;if(d<0)throw new BiwaScheme.Error("Found an extra comment terminator: `|#'");return e.substring(RegExp.$1.length,e.length)}return""}return e.charAt(0)!=";"&&(b[b.length]=e),""});return b},sexpCommentMarker:new Object,getObject:function(){var a=this.getObject0();if(a!=this.sexpCommentMarker)return a;a=this.getObject();if(a==BiwaScheme.Parser.EOS)throw new BiwaScheme.Error("Readable object not found after S exression comment");return a=this.getObject(),a},getList:function(a){var b=BiwaScheme.nil,c=b;while(this.i<this.tokens.length){this.eatObjectsInSexpComment("Input stream terminated unexpectedly(in list)");if(this.tokens[this.i]==")"||this.tokens[this.i]=="]"||this.tokens[this.i]=="}"){this.i++;break}if(this.tokens[this.i]=="."){this.i++;var d=this.getObject();d!=BiwaScheme.Parser.EOS&&b!=BiwaScheme.nil&&(c.cdr=d)}else{var e=new BiwaScheme.Pair(this.getObject(),BiwaScheme.nil);b==BiwaScheme.nil?b=e:c.cdr=e,c=e}}return b},getVector:function(a){var b=new Array;while(this.i<this.tokens.length){this.eatObjectsInSexpComment("Input stream terminated unexpectedly(in vector)");if(this.tokens[this.i]==")"||this.tokens[this.i]=="]"||this.tokens[this.i]=="}"){this.i++;break}b[b.length]=this.getObject()}return b},eatObjectsInSexpComment:function(a){while(this.tokens[this.i]=="#;"){this.i++;if(this.getObject()==BiwaScheme.Parser.EOS||this.i>=this.tokens.length)throw new BiwaScheme.Error(a)}},getObject0:function(){if(this.i<this.tokens.length){var a=this.tokens[this.i++];if(a=="#;")return this.sexpCommentMarker;var b=a=="'"?"quote":a=="`"?"quasiquote":a==","?"unquote":a==",@"?"unquote-splicing":!1;if(b||a=="("||a=="#("||a=="["||a=="#["||a=="{"||a=="#{")return b?new BiwaScheme.Pair(BiwaScheme.Sym(b),new BiwaScheme.Pair(this.getObject(),BiwaScheme.nil)):a=="("||a=="["||a=="{"?this.getList(a):this.getVector(a);switch(a){case"+inf.0":return Infinity;case"-inf.0":return-Infinity;case"+nan.0":return NaN}var c;return/^#x[0-9a-z]+$/i.test(a)?c=new Number("0x"+a.substring(2,a.length)):/^#d[0-9\.]+$/i.test(a)?c=new Number(a.substring(2,a.length)):c=new Number(a),isNaN(c)?a=="#f"||a=="#F"?!1:a=="#t"||a=="#T"?!0:a.toLowerCase()=="#\\newline"?BiwaScheme.Char.get("\n"):a.toLowerCase()=="#\\space"?BiwaScheme.Char.get(" "):a.toLowerCase()=="#\\tab"?BiwaScheme.Char.get("\t"):/^#\\.$/.test(a)?BiwaScheme.Char.get(a.charAt(2)):/^\"(\\(.|$)|[^\"\\])*\"?$/.test(a)?a.replace(/(\r?\n|\\n)/g,"\n").replace(/^\"|\\(.|$)|\"$/g,function(a,b){return b?b:""}):BiwaScheme.Sym(a):c.valueOf()}return BiwaScheme.Parser.EOS}}),BiwaScheme.Parser.EOS=new Object,BiwaScheme.Compiler=BiwaScheme.Class.create({initialize:function(){},is_tail:function(a){return a[0]=="return"},collect_free:function(a,b,c){var d=a,e=c,f=d.arr;for(var g=0;g<f.length;g++)e=this.compile_refer(f[g],b,["argument",e]);return e},compile_refer:function(a,b,c){return this.compile_lookup(a,b,function(a){return["refer-local",a,c]},function(a){return["refer-free",a,c]},function(a){return["refer-global",a,c]})},compile_lookup:function(a,b,c,d,e){var f=b[0],g=b[1];if((n=f.index(a))!=null)return c(n);if((n=g.index(a))!=null)return d(n);var h=a.name;return e(h)},make_boxes:function(a,b,c){var b=b,d=0,e=[];while(b instanceof BiwaScheme.Pair)a.member(b.car)&&e.push(d),d++,b=b.cdr;var f=c;for(var g=e.length-1;g>=0;g--)f=["box",e[g],f];return f},find_sets:function(a,b){var c=null;if(a instanceof BiwaScheme.Symbol)c=new BiwaScheme.Set;else if(a instanceof BiwaScheme.Pair)switch(a.first()){case BiwaScheme.Sym("define"):var d=a.third();c=this.find_sets(d,b);case BiwaScheme.Sym("begin"):c=this.find_sets(a.cdr,b);break;case BiwaScheme.Sym("quote"):c=new BiwaScheme.Set;break;case BiwaScheme.Sym("lambda"):var e=a.second(),f=a.cdr.cdr;e instanceof BiwaScheme.Pair?c=this.find_sets(f,b.set_minus(e.to_set())):c=this.find_sets(f,b.set_minus(new BiwaScheme.Set(e)));break;case BiwaScheme.Sym("if"):var g=a.second(),h=a.third(),i=a.fourth();c=this.find_sets(g,b).set_union(this.find_sets(h,b),this.find_sets(i,b));break;case BiwaScheme.Sym("set!"):var j=a.second(),k=a.third();b.member(j)?c=this.find_sets(k,b).set_cons(j):c=this.find_sets(k,b);break;case BiwaScheme.Sym("call/cc"):var d=a.second();c=this.find_sets(d,b);break;default:var l=new BiwaScheme.Set;for(var m=a;m instanceof BiwaScheme.Pair;m=m.cdr)l=l.set_union(this.find_sets(m.car,b));c=l}else c=new BiwaScheme.Set;if(c==null)throw new BiwaScheme.Bug("find_sets() exited in unusual way");return c},find_free:function(a,b,c){var d=null;if(a instanceof BiwaScheme.Symbol)c.member(a)?d=new BiwaScheme.Set(a):d=new BiwaScheme.Set;else if(a instanceof BiwaScheme.Pair)switch(a.first()){case BiwaScheme.Sym("define"):var e=a.third();d=this.find_free(e,b,c);break;case BiwaScheme.Sym("begin"):d=this.find_free(a.cdr,b,c);break;case BiwaScheme.Sym("quote"):d=new BiwaScheme.Set;break;case BiwaScheme.Sym("lambda"):var f=a.second(),g=a.cdr.cdr;f instanceof BiwaScheme.Pair?d=this.find_free(g,b.set_union(f.to_set()),c):d=this.find_free(g,b.set_cons(f),c);break;case BiwaScheme.Sym("if"):var h=a.second(),i=a.third(),j=a.fourth();d=this.find_free(h,b,c).set_union(this.find_free(i,b,c),this.find_free(j,b,c));break;case BiwaScheme.Sym("set!"):var k=a.second(),e=a.third();c.member(k)?d=this.find_free(e,b,c).set_cons(k):d=this.find_free(e,b,c);break;case BiwaScheme.Sym("call/cc"):var e=a.second();d=this.find_free(e,b,c);break;default:var l=new BiwaScheme.Set;for(var m=a;m instanceof BiwaScheme.Pair;m=m.cdr)l=l.set_union(this.find_free(m.car,b,c));d=l}else d=new BiwaScheme.Set;if(d==null
)throw new BiwaScheme.Bug("find_free() exited in unusual way");return d},find_dot_pos:function(a){var b=0;for(;a instanceof BiwaScheme.Pair;a=a.cdr,++b);return a!=BiwaScheme.nil?b:-1},last_pair:function(a){if(a instanceof BiwaScheme.Pair)for(;a.cdr instanceof BiwaScheme.Pair;a=a.cdr);return a},dotted2proper:function(a){var b=function(a){var b=BiwaScheme.nil;for(;a instanceof BiwaScheme.Pair;){var c=a.cdr;a.cdr=b,b=a,a=c}return b},c=function(a){var c=BiwaScheme.nil;for(;a instanceof BiwaScheme.Pair;a=a.cdr)c=new BiwaScheme.Pair(a.car,c);return b(c)};if(a instanceof BiwaScheme.Pair){var d=this.last_pair(a);if(d instanceof BiwaScheme.Pair&&d.cdr===BiwaScheme.nil)return a;var e=c(a);return this.last_pair(e).cdr=new BiwaScheme.Pair(d.cdr,BiwaScheme.nil),e}return new BiwaScheme.Pair(a,BiwaScheme.nil)},compile:function(a,b,c,d,e){var f=null;for(;;){if(a instanceof BiwaScheme.Symbol)return this.compile_refer(a,b,c.member(a)?["indirect",e]:e);if(!(a instanceof BiwaScheme.Pair))return["constant",a,e];switch(a.first()){case BiwaScheme.Sym("define"):if(a.length()==1)throw new BiwaScheme.Error("Invalid `define': "+a.to_write());var g=a.cdr.car,h=a.cdr.cdr;if(g instanceof BiwaScheme.Symbol){if(h===BiwaScheme.nil)a=BiwaScheme.undef;else{if(h.cdr!==BiwaScheme.nil)throw new BiwaScheme.Error("Invalid `define': "+a.to_write());a=h.car}BiwaScheme.TopEnv[g.name]=BiwaScheme.undef,e=["assign-global",g.name,e]}else{if(!(g instanceof BiwaScheme.Pair))throw new BiwaScheme.Error("compile: define needs a leftbol or pair: got "+g);var i=g.car,j=g.cdr,k=new BiwaScheme.Pair(BiwaScheme.Sym("lambda"),new BiwaScheme.Pair(j,h));a=k,BiwaScheme.TopEnv[i.name]=BiwaScheme.undef,e=["assign-global",i.name,e]}break;case BiwaScheme.Sym("begin"):var l=[];for(var m=a.cdr;m instanceof BiwaScheme.Pair;m=m.cdr)l.push(m.car);var n=e;for(var o=l.length-1;o>=0;o--)n=this.compile(l[o],b,c,d,n);return n;case BiwaScheme.Sym("quote"):if(a.length()<2)throw new BiwaScheme.Error("Invalid quote: "+a.to_write());var p=a.second();return["constant",p,e];case BiwaScheme.Sym("lambda"):if(a.length()<3)throw new BiwaScheme.Error("Invalid lambda: "+a.to_write());var q=a.cdr.car,r=new BiwaScheme.Pair(BiwaScheme.Sym("begin"),a.cdr.cdr),s=this.find_dot_pos(q),t=this.dotted2proper(q),u=this.find_free(r,t.to_set(),d),v=this.find_sets(r,t.to_set()),w=this.compile(r,[t.to_set(),u],v.set_union(c.set_intersect(u)),d.set_union(t.to_set()),["return"]),x=["close",u.size(),this.make_boxes(v,t,w),e,s];return this.collect_free(u,b,x);case BiwaScheme.Sym("if"):if(a.length()<3||a.length()>4)throw new BiwaScheme.Error("Invalid if: "+a.to_write());var y=a.second(),z=a.third(),A=a.fourth(),z=this.compile(z,b,c,d,e),A=this.compile(A,b,c,d,e);a=y,e=["test",z,A];break;case BiwaScheme.Sym("set!"):if(a.length()!=3)throw new BiwaScheme.Error("Invalid set!: "+a.to_write());var B=a.second(),a=a.third(),C=this.compile_lookup(B,b,function(a){return["assign-local",a,e]},function(a){return["assign-free",a,e]},function(a){return["assign-global",a,e]});e=C;break;case BiwaScheme.Sym("call/cc"):var a=a.second(),n=["conti",this.is_tail(e)?b[0].size()+1:0,["argument",["constant",1,["argument",this.compile(a,b,c,d,this.is_tail(e)?["shift",1,["apply"]]:["apply"])]]]];return this.is_tail(e)?n:["frame",n,e];default:var D=a.car,j=a.cdr,n=this.compile(D,b,c,d,this.is_tail(e)?["shift",j.length(),["apply"]]:["apply"]);n=this.compile(j.length(),b,c,d,["argument",n]);for(var m=j;m instanceof BiwaScheme.Pair;m=m.cdr)n=this.compile(m.car,b,c,d,["argument",n]);return this.is_tail(e)?n:["frame",n,e]}}},run:function(a){return this.compile(a,[new BiwaScheme.Set,new BiwaScheme.Set],new BiwaScheme.Set,new BiwaScheme.Set,["halt"])}}),BiwaScheme.Compiler.compile=function(a,b){return a=(new BiwaScheme.Interpreter).expand(a),(new BiwaScheme.Compiler).run(a,b)},BiwaScheme.Pause=BiwaScheme.Class.create({initialize:function(a){this.on_pause=a},set_state:function(a,b,c,d,e){this.interpreter=a,this.x=b,this.f=c,this.c=d,this.s=e},ready:function(){this.on_pause(this)},resume:function(a){return this.interpreter.resume(!0,a,this.x,this.f,this.c,this.s)}}),BiwaScheme.Call=BiwaScheme.Class.create({initialize:function(a,b,c){this.proc=a,this.args=b,this.after=c||function(a){return a[0]}},inspect:function(){return"#<Call args="+this.args.inspect()+">"},toString:function(){return"#<Call>"},to_write:function(){return"#<Call>"}}),BiwaScheme.Iterator={ForArray:BiwaScheme.Class.create({initialize:function(a){this.arr=a,this.i=0},has_next:function(){return this.i<this.arr.length},next:function(){return this.arr[this.i++]}}),ForString:BiwaScheme.Class.create({initialize:function(a){this.str=a,this.i=0},has_next:function(){return this.i<this.str.length},next:function(){return BiwaScheme.Char.get(this.str.charAt(this.i++))}}),ForList:BiwaScheme.Class.create({initialize:function(a){this.ls=a},has_next:function(){return this.ls instanceof BiwaScheme.Pair&&this.ls!=BiwaScheme.nil},next:function(){var a=this.ls;return this.ls=this.ls.cdr,a}}),ForMulti:BiwaScheme.Class.create({initialize:function(a){this.objs=a,this.size=a.length,this.iterators=_.map(a,function(a){return BiwaScheme.Iterator.of(a)})},has_next:function(){for(var a=0;a<this.size;a++)if(!this.iterators[a].has_next())return!1;return!0},next:function(){return _.map(this.iterators,function(a){return a.next()})}}),of:function(a){switch(!0){case a instanceof Array:return new this.ForArray(a);case typeof a=="string":return new this.ForString(a);case a instanceof BiwaScheme.Pair:case a===BiwaScheme.nil:return new this.ForList(a);default:throw new BiwaScheme.Bug("Iterator.of: unknown class: "+BiwaScheme.inspect(a))}}},BiwaScheme.Call.default_callbacks={call:function(a){return new BiwaScheme.Call(this.proc,[a])},result:function(){},finish:function(){}},BiwaScheme.Call.foreach=function(a,b,c){c||(c=!1),_.each(["call","result","finish"],function(a){b[a]||(b[a]=BiwaScheme.Call.default_callbacks[a])});var d=null,e=null,f=function(g){if(d){var h=b.result(g[0],e);if(h!==undefined)return h}else c?d=new BiwaScheme.Iterator.ForMulti(a):d=BiwaScheme.Iterator.of(a);if(!d.has_next())return b.finish();e=d.next();var i=b.call(e);return i.after=f,i};return f(null)},BiwaScheme.Call.multi_foreach=function(a,b){return BiwaScheme.Call.foreach(a,b,!0)},BiwaScheme.Interpreter=BiwaScheme.Class.create({initialize:function(a){this.stack=[],this.on_error=a||function(a){},this.after_evaluate=function(){}},inspect:function(){return["#<Interpreter: stack size=>",this.stack.length," ","after_evaluate=",BiwaScheme.inspect(this.after_evaluate),">"].join("")},push:function(a,b){return this.stack[b]=a,b+1},save_stack:function(a){var b=[];for(var c=0;c<a;c++)b[c]=this.stack[c];return b},restore_stack:function(a){var b=a.length;for(var c=0;c<b;c++)this.stack[c]=a[c];return b},continuation:function(a,b){var c=this.push(b,a);return this.closure(["refer-local",0,["nuate",this.save_stack(c),["return"]]],0,null,-1)},shift_args:function(a,b,c){for(var d=a-1;d>=-1;d--)this.index_set(c,d+b+1,this.index(c,d));return c-b-1},index:function(a,b){return this.stack[a-b-2]},index_set:function(a,b,c){this.stack[a-b-2]=c},closure:function(a,b,c,d){var e=[];e[0]=a;for(var f=0;f<b;f++)e[f+1]=this.index(c,f-1);return e[b+1]=d,e.closure_p=!0,e},execute:function(a,b,c,d,e){var f=null;try{f=this._execute(a,b,c,d,e)}catch(g){var h={a:a,x:b,f:c,c:d,s:e,stack:this.stack};return this.on_error(g,h)}return f},run_dump_hook:function(a,b,c,d,e){var f,g;if(this.dumper)f=this.dumper;else if(BiwaScheme.Interpreter.dumper)f=BiwaScheme.Interpreter.dumper;else return;f&&(g={a:a,f:c,c:d,s:e,x:b,stack:this.stack},f.dump(g))},_execute:function(a,b,c,d,e){var f=null;for(;;){this.run_dump_hook(a,b,c,d,e);switch(b[0]){case"halt":return a;case"refer-local":var g=b[1],b=b[2];a=this.index(c,g);break;case"refer-free":var g=b[1],b=b[2];a=d[g+1];break;case"refer-global":var h=b[1],b=b[2];if(BiwaScheme.TopEnv.hasOwnProperty(h))var i=BiwaScheme.TopEnv[h];else{if(!BiwaScheme.CoreEnv.hasOwnProperty(h))throw new BiwaScheme.Error("execute: unbound symbol: "+BiwaScheme.inspect(h));var i=BiwaScheme.CoreEnv[h]}a=i;break;case"indirect":var b=b[1];a=a[0];break;case"constant":var j=b[1],b=b[2];a=j;break;case"close":var k=b,g=k[1],l=k[2],b=k[3],m=k[4];a=this.closure(l,g,e,m),e-=g;break;case"box":var g=b[1],b=b[2];this.index_set(e,g,[this.index(e,g)]);break;case"test":var n=b[1],o=b[2];b=a!==!1?n:o;break;case"assign-global":var p=b[1],b=b[2];if(!BiwaScheme.TopEnv.hasOwnProperty(p)&&!BiwaScheme.CoreEnv.hasOwnProperty(p))throw new BiwaScheme.Error("global variable '"+p+"' is not defined");BiwaScheme.TopEnv[p]=a,a=BiwaScheme.undef;break;case"assign-local":var g=b[1],b=b[2],q=this.index(c,g);q[0]=a,a=BiwaScheme.undef;break;case"assign-free":var g=b[1],b=b[2],q=d[g+1];q[0]=a,a=BiwaScheme.undef;break;case"conti":var g=b[1],b=b[2];a=this.continuation(e,g);break;case"nuate":var r=b[1],b=b[2];e=this.restore_stack(r);break;case"frame":var f=b[2];b=b[1],e=this.push(f,this.push(c,this.push(d,e)));break;case"argument":var b=b[1];e=this.push(a,e);break;case"shift":var g=b[1],b=b[2],s=this.index(e,g);e=this.shift_args(g,s,e);break;case"apply":var t=a,s=this.index(e,-1);if(t instanceof Array){a=t,b=t[0];var m=t[t.length-1];if(m>=0){var u=BiwaScheme.nil;for(var v=s;--v>=m;)u=new BiwaScheme.Pair(this.index(e,v),u);if(m>=s){for(var v=-1;v<s;v++)this.index_set(e,v-1,this.index(e,v));e++,this.index_set(e,-1,this.index(e,-1)+1)}this.index_set(e,m,u)}c=e,d=a}else{if(!(t instanceof Function))throw new BiwaScheme.Error(BiwaScheme.inspect(t)+" is not a function");var w=[];for(var v=0;v<s;v++)w.push(this.index(e,v));var x=t(w,this);if(x instanceof BiwaScheme.Pause){var y=x;return y.set_state(this,["return"],c,d,e),y.ready(),y}if(x instanceof BiwaScheme.Call){var z=["frame",["argument",["constant",1,["argument",["constant",x.after,["apply"]]]]],["return"]],A=["constant",x.args.length,["argument",["constant",x.proc,["apply",x.args.length]]]],B=_.inject(x.args,function(a,b){return["constant",b,["argument",a]]},A);b=["frame",B,z]}else a=x,b=["return"]}break;case"return":var g=this.index(e,-1),C=e-g;b=this.index(C,0),c=this.index(C,1),d=this.index(C,2),e=C-3-1;break;default:throw new BiwaScheme.Bug("unknown opecode type: "+b[0])}}return a},expand:function(a,b){b||(b={});var c=null;if(a instanceof BiwaScheme.Pair)switch(a.car){case BiwaScheme.Sym("define"):var d=a.cdr.car,e=a.cdr.cdr;c=new BiwaScheme.Pair(BiwaScheme.Sym("define"),new BiwaScheme.Pair(d,this.expand(e,b)));break;case BiwaScheme.Sym("begin"):c=new BiwaScheme.Pair(BiwaScheme.Sym("begin"),this.expand(a.cdr,b));break;case BiwaScheme.Sym("quote"):c=a;break;case BiwaScheme.Sym("lambda"):var f=a.cdr.car,g=a.cdr.cdr;c=new BiwaScheme.Pair(BiwaScheme.Sym("lambda"),new BiwaScheme.Pair(f,this.expand(g,b)));break;case BiwaScheme.Sym("if"):var h=a.second(),i=a.third(),j=a.fourth();j==BiwaScheme.inner_of_nil&&(j=BiwaScheme.undef),c=BiwaScheme.List(BiwaScheme.Sym("if"),this.expand(h,b),this.expand(i,b),this.expand(j,b));break;case BiwaScheme.Sym("set!"):var k=a.second(),a=a.third();c=BiwaScheme.List(BiwaScheme.Sym("set!"),k,this.expand(a,b));break;case BiwaScheme.Sym("call-with-current-continuation"):case BiwaScheme.Sym("call/cc"):var a=a.second();c=BiwaScheme.List(BiwaScheme.Sym("call/cc"),this.expand(a,b));break;default:var l=null;BiwaScheme.isSymbol(a.car)&&(BiwaScheme.TopEnv[a.car.name]instanceof BiwaScheme.Syntax?l=BiwaScheme.TopEnv[a.car.name]:BiwaScheme.CoreEnv[a.car.name]instanceof BiwaScheme.Syntax&&(l=BiwaScheme.CoreEnv[a.car.name]));if(l){b.modified=!0,c=l.transform(a);var m;for(;;){c=this.expand(c,m={});if(!m.modified)break}}else{var n=this.expand(a.car,b),o=BiwaScheme.shallow_array_to_list(_.map(a.cdr.to_array(),_.bind(function(a){return this.expand(a,b)},this)));c=new BiwaScheme.Pair(n,o)}}else c=a;return c},evaluate:function(a,b){return this.parser=new BiwaScheme.Parser(a),this.compiler=new BiwaScheme.Compiler,b&&(this.after_evaluate=b),BiwaScheme.Debug&&puts("executing: "+a),this.is_top=!0,this.file_stack=[],this.resume(!1)},resume:function(a,b,c,d,e,f){var g=BiwaScheme.undef;for(;;){if(a)g=this.execute(b,c,d,e,f),a=!1;else{if(!this.parser)break;var h=this.parser.getObject();if(h===BiwaScheme.Parser.EOS)break;h=this.expand(h);var i=this.compiler.run(h);g=this.execute(h,i,0,[],0)}if(g instanceof BiwaScheme.Pause)return g}return this.after_evaluate(g),g},invoke_closure:function(a,b){b||(b=[]);var c=b.length,d=["constant",c,["argument",["constant",a,["apply"]]]];for(var e=0;e<c;e++)d=["constant",b[e],["argument",d]];return this.execute(a,["frame",d,["halt"]],0,a,0)},compile:function(a){var b=BiwaScheme.Interpreter.read(a),c=BiwaScheme.Compiler.compile(b);return c}}),BiwaScheme.Interpreter.read=function(a){var b=new BiwaScheme.Parser(a),c=b.getObject();return c==BiwaScheme.Parser.EOS?BiwaScheme.eof:c},BiwaScheme.NodeJS=function(){var a=Array.prototype.slice.call(arguments),b=a.shift();if(BiwaScheme.on_node){var c=BiwaScheme.NodeJS;return c[b].apply(c,a)}throw new BiwaScheme.Error("Node.JS required")},BiwaScheme.check_arity=function(a,b,c){var d=arguments.callee.caller?arguments.callee.caller.fname:"(?)";if(a<b)throw c&&c==b?new BiwaScheme.Error(d+": wrong number of arguments (expected: "+b+" got: "+a+")"):new BiwaScheme.Error(d+": too few arguments (at least: "+b+" got: "+a+")");if(c&&c<a)throw new BiwaScheme.Error(d+": too many arguments (at most: "+c+" got: "+a+")")},BiwaScheme.define_libfunc=function(a,b,c,d){var e=function(a,e){return BiwaScheme.check_arity(a.length,b,c),d(a,e)};d.fname=a,e.fname=a,e.inspect=function(){return this.fname},BiwaScheme.CoreEnv[a]=e},BiwaScheme.alias_libfunc=function(a,b){if(!BiwaScheme.CoreEnv[a])throw new BiwaScheme.Bug("library function `"+a+"'"+" does not exist, so can't alias it.");if(_.isArray(b))_.map(b,function(b){BiwaScheme.alias_libfunc(a,b)});else if(_.isString(b))BiwaScheme.CoreEnv[b]=BiwaScheme.CoreEnv[a];else throw new BiwaScheme.Bug("bad alias for library function `"+a+"': "+b.toString())},BiwaScheme.define_syntax=function(a,b){var c=new BiwaScheme.Syntax(a,b);BiwaScheme.CoreEnv[a]=c},BiwaScheme.define_scmfunc=function(a,b,c,d){(new Interpreter).evaluate("(define "+a+" "+d+"\n)")};var make_assert=function(a){return function(){var b=arguments.callee.caller?arguments.callee.caller.fname:"";a.apply(this,[b].concat(_.toArray(arguments)))}},make_simple_assert=function(a,b,c){return make_assert(function(d,e,f){c&&(d=c),option=f?"("+f+")":"";if(!b(e))throw new BiwaScheme.Error(d+option+": "+a+" required, but got "+BiwaScheme.to_write(e))})},assert_number=make_simple_assert("number",function(a){return typeof a=="number"||a instanceof BiwaScheme.Complex}),assert_integer=make_simple_assert("integer",function(a){return typeof a=="number"&&a%1==0}),assert_real=make_simple_assert("real number",function(a){return typeof a=="number"}),assert_between=make_assert(function(a,b,c,d){if(typeof b!="number"||b!=Math.round(b))throw new BiwaScheme.Error(a+": "+"number required, but got "+BiwaScheme.to_write(b));if(b<c||d<b)throw new BiwaScheme.Error(a+": "+"number must be between "+c+" and "+d+", but got "+BiwaScheme.to_write(b))}),assert_string=make_simple_assert("string",_.isString),assert_char=make_simple_assert("character",BiwaScheme.isChar),assert_symbol=make_simple_assert("symbol",BiwaScheme.isSymbol),assert_port=make_simple_assert("port",BiwaScheme.isPort),assert_pair=make_simple_assert("pair",BiwaScheme.isPair),assert_list=make_simple_assert("list",BiwaScheme.isList),assert_vector=make_simple_assert("vector",BiwaScheme.isVector),assert_hashtable=make_simple_assert("hashtable",BiwaScheme.isHashtable),assert_mutable_hashtable=make_simple_assert("mutable hashtable",BiwaScheme.isMutableHashtable),assert_record=make_simple_assert("record",BiwaScheme.isRecord),assert_record_td=make_simple_assert("record type descriptor",BiwaScheme.isRecordTD),assert_record_cd=make_simple_assert("record constructor descriptor",BiwaScheme.isRecordCD),assert_enum_set=make_simple_assert("enum_set",BiwaScheme.isEnumSet),assert_function=make_simple_assert("JavaScript function",_.isFunction),assert_closure=make_simple_assert("scheme function",BiwaScheme.isClosure),assert_procedure=make_simple_assert("scheme/js function",function(a){return BiwaScheme.isClosure(a)||_.isFunction(a)}),assert_date=make_simple_assert("date",function(a){return a instanceof Date}),assert=make_assert(function(a,b,c,d){if(!b)throw new BiwaScheme.Error((d||a)+": "+c)});typeof BiwaScheme!="object"&&(BiwaScheme={});with(BiwaScheme){define_syntax("cond",function(a){var b=a.cdr;if(b instanceof Pair&&b!==nil){var c=null;return _.each(b.to_array().reverse(),function(a){if(!(a instanceof Pair))throw new Error("bad clause in cond: "+to_write_ss(a));if(a.car===Sym("else")){if(c!==null)throw new Error("'else' clause of cond followed by more clauses: "+to_write_ss(b));a.cdr===nil?c=!1:a.cdr.cdr===nil?c=a.cdr.car:c=new Pair(Sym("begin"),a.cdr)}else{var d=a.car;if(a.cdr===nil)c=List(Sym("or"),d,c);else if(a.cdr.cdr===nil)c=List(Sym("if"),d,a.cdr.car,c);else if(a.cdr.car===Sym("=>")){var d=a.car,e=a.cdr.cdr.car,f=BiwaScheme.gensym();c=List(Sym("let"),List(List(f,d)),List(Sym("if"),d,List(e,f),c))}else c=List(Sym("if"),d,new Pair(Sym("begin"),a.cdr),c)}}),c}throw new Error("malformed cond: cond needs list but got "+to_write_ss(b))}),define_syntax("case",function(a){var b=BiwaScheme.gensym();if(a.cdr===nil)throw new Error("case: at least one clause is required");if(a.cdr instanceof Pair){var c=a.cdr.car,d=a.cdr.cdr,e=undefined;return _.each(d.to_array().reverse(),function(a){if(a.car===Sym("else"))if(e===undefined)e=new Pair(Sym("begin"),a.cdr);else throw new Error("case: 'else' clause followed by more clauses: "+to_write_ss(d));else e=List(Sym("if"),new Pair(Sym("or"),array_to_list(_.map(a.car.to_array(),function(a){return List(Sym("eqv?"),b,List(Sym("quote"),a))}))),new Pair(Sym("begin"),a.cdr),e)}),new Pair(Sym("let1"),new Pair(b,new Pair(c,new Pair(e,nil))))}throw new Error("case: proper list is required")}),define_syntax("and",function(a){if(a.cdr==nil)return!0;var b=a.cdr.to_array(),c=b.length-1,d=b[c];for(c-=1;c>=0;c--)d=List(Sym("if"),b[c],d,!1);return d}),define_syntax("or",function(a){var b=a.cdr.to_array(),c=!1;for(var d=b.length-1;d>=0;d--)c=List(Sym("if"),b[d],b[d],c);return c}),define_syntax("let",function(a){var b=null;a.cdr.car instanceof Symbol&&(b=a.cdr.car,a=a.cdr);var c=a.cdr.car,d=a.cdr.cdr;if(c instanceof Pair||c==BiwaScheme.nil){var e=nil,f=nil;for(var g=c;g instanceof Pair;g=g.cdr)e=new Pair(g.car.car,e),f=new Pair(g.car.cdr.car,f);var h=null;if(b){e=array_to_list(e.to_array().reverse()),f=array_to_list(f.to_array().reverse());var i=new Pair(Sym("lambda"),new Pair(e,d)),j=new Pair(b,f);h=List(Sym("letrec"),new Pair(List(b,i),nil),j)}else h=new Pair(new Pair(Sym("lambda"),new Pair(e,d)),f);return h}throw new Error("let: need a pair for bindings: got "+to_write(c))}),define_syntax("let*",function(a){var b=a.cdr.car,c=a.cdr.cdr;if(b instanceof Pair){var d=null;return _.each(b.to_array().reverse(),function(a){d=new Pair(Sym("let"),new Pair(new Pair(a,nil),d==null?c:new Pair(d,nil)))}),d}throw new Error("let*: need a pair for bindings: got "+to_write(b))});var expand_letrec_star=function(a){var b=a.cdr.car,c=a.cdr.cdr;if(b instanceof Pair){var d=c;_.each(b.to_array().reverse(),function(a){d=new Pair(new Pair(Sym("set!"),a),d)});var e=nil;return _.each(b.to_array().reverse(),function(a){e=new Pair(new Pair(a.car,new Pair(BiwaScheme.undef,nil)),e)}),new Pair(Sym("let"),new Pair(e,d))}throw new Error("letrec*: need a pair for bindings: got "+to_write(b))};define_syntax("letrec",expand_letrec_star),define_syntax("letrec*",expand_letrec_star),define_syntax("let-values",function(a){var b=a.cdr.car,c=a.cdr.cdr,d=null,e=nil,f=nil;_.each(b.to_array().reverse(),function(a){var b=a.cdr.car,c=BiwaScheme.gensym(),d=new Pair(c,new Pair(new Pair(Sym("lambda"),new Pair(nil,new Pair(b,nil))),nil));e=new Pair(d,e);var g=a.car;f=new Pair(new Pair(g,new Pair(new Pair(c,nil),nil)),f)});var g=new Pair(Sym("let*-values"),new Pair(f,c));return d=new Pair(Sym("let"),new Pair(e,new Pair(g,nil))),d}),define_syntax("let*-values",function(a){var b=a.cdr.car,c=a.cdr.cdr,d=null;return _.each(b.to_array().reverse(),function(a){var b=a.car,e=a.cdr.car;d=new Pair(Sym("call-with-values"),new Pair(new Pair(Sym("lambda"),new Pair(nil,new Pair(e,nil))),new Pair(new Pair(Sym("lambda"),new Pair(b,d==null?c:new Pair(d,nil))),nil)))}),d}),BiwaScheme.eq=function(a,b){return a===b},BiwaScheme.eqv=function(a,b){return a==b&&typeof a==typeof b},define_libfunc("eqv?",2,2,function(a){return BiwaScheme.eqv(a[0],a[1])}),define_libfunc("eq?",2,2,function(a){return BiwaScheme.eq(a[0],a[1])}),define_libfunc("equal?",2,2,function(a){return to_write(a[0])==to_write(a[1])}),define_libfunc("procedure?",1,1,function(a){return a[0]instanceof Array&&a[0].closure_p===!0||typeof a[0]=="function"}),define_libfunc("number?",1,1,function(a){return typeof a[0]=="number"||a[0]instanceof Complex||a[0]instanceof Rational}),define_libfunc("complex?",1,1,function(a){return a[0]instanceof Complex}),define_libfunc("real?",1,1,function(a){return typeof a[0]=="number"}),define_libfunc("rational?",1,1,function(a){return a[0]instanceof Rational}),define_libfunc("integer?",1,1,function(a){return typeof a[0]=="number"&&a[0]==Math.round(a[0])&&a[0]!=Infinity&&a[0]!=-Infinity}),define_libfunc("=",2,null,function(a){var b=a[0];assert_number(a[0]);for(var c=1;c<a.length;c++){assert_number(a[c]);if(a[c]!=b)return!1}return!0}),define_libfunc("<",2,null,function(a){assert_number(a[0]);for(var b=1;b<a.length;b++){assert_number(a[b]);if(a[b-1]>=a[b])return!1}return!0}),define_libfunc(">",2,null,function(a){assert_number(a[0]);for(var b=1;b<a.length;b++){assert_number(a[b]);if(a[b-1]<=a[b])return!1}return!0}),define_libfunc("<=",2,null,function(a){assert_number(a[0]);for(var b=1;b<a.length;b++){assert_number(a[b]);if(a[b-1]>a[b])return!1}return!0}),define_libfunc(">=",2,null,function(a){assert_number(a[0]);for(var b=1;b<a.length;b++){assert_number(a[b]);if(a[b-1]<a[b])return!1}return!0}),define_libfunc("zero?",1,1,function(a){return assert_number(a[0]),a[0]===0}),define_libfunc("positive?",1,1,function(a){return assert_number(a[0]),a[0]>0}),define_libfunc("negative?",1,1,function(a){return assert_number(a[0]),a[0]<0}),define_libfunc("odd?",1,1,function(a){return assert_number(a[0]),a[0]%2==1||a[0]%2==-1}),define_libfunc("even?",1,1,function(a){return assert_number(a[0]),a[0]%2==0}),define_libfunc("finite?",1,1,function(a){return assert_number(a[0]),a[0]!=Infinity&&a[0]!=-Infinity&&!isNaN(a[0])}),define_libfunc("infinite?",1,1,function(a){return assert_number(a[0]),a[0]==Infinity||a[0]==-Infinity}),define_libfunc("nan?",1,1,function(a){return assert_number(a[0]),isNaN(a[0])}),define_libfunc("max",2,null,function(a){for(var b=0;b<a.length;b++)assert_number(a[b]);return Math.max.apply(null,a)}),define_libfunc("min",2,null,function(a){for(var b=0;b<a.length;b++)assert_number(a[b]);return Math.min.apply(null,a)}),define_libfunc("+",0,null,function(a){var b=0;for(var c=0;c<a.length;c++)assert_number(a[c]),b+=a[c];return b}),define_libfunc("*",0,null,function(a){var b=1;for(var c=0;c<a.length;c++)assert_number(a[c]),b*=a[c];return b}),define_libfunc("-",1,null,function(a){var b=a.length;assert_number(a[0]);if(b==1)return-a[0];var c=a[0];for(var d=1;d<b;d++)assert_number(a[d]),c-=a[d];return c}),define_libfunc("/",1,null,function(a){var b=a.length;assert_number(a[0]);if(b==1)return 1/a[0];var c=a[0];for(var d=1;d<b;d++)assert_number(a[d]),c/=a[d];return c}),define_libfunc("abs",1,1,function(a){return assert_number(a[0]),Math.abs(a[0])});var div=function(a,b){return Math.floor(a/b)},mod=function(a,b){return a-Math.floor(a/b)*b},div0=function(a,b){return a>0?Math.floor(a/b):Math.ceil(a/b)},mod0=function(a,b){return a>0?a-Math.floor(a/b)*b:a-Math.ceil(a/b)*b};define_libfunc("div0-and-mod0",2,2,function(a){return assert_number(a[0]),assert_number(a[1]),new Values([div(a[0],a[1]),mod(a[0],a[1])])}),define_libfunc("div",2,2,function(a){return assert_number(a[0]),assert_number(a[1]),div(a[0],a[1])}),define_libfunc("mod",2,2,function(a){return assert_number(a[0]),assert_number(a[1]),mod(a[0],a[1])}),define_libfunc("div0-and-mod0",2,2,function(a){return assert_number(a[0]),assert_number(a[1]),new Values([div0(a[0],a[1]),mod0(a[0],a[1])])}),define_libfunc("div0",2,2,function(a){return assert_number(a[0]),assert_number(a[1]),div0(a[0],a[1])}),define_libfunc("mod0",2,2,function(a){return assert_number(a[0]),assert_number(a[1]),mod0(a[0],a[1])}),define_libfunc("numerator",1,1,function(a){assert_number(a[0]);if(a[0]instanceof Rational)return a[0].numerator;throw new Bug("todo")}),define_libfunc("denominator",1,1,function(a){assert_number(a[0]);if(a[0]instanceof Rational)return a[0].denominator;throw new Bug("todo")}),define_libfunc("floor",1,1,function(a){return assert_number(a[0]),Math.floor(a[0])}),define_libfunc("ceiling",1,1,function(a){return assert_number(a[0]),Math.ceil(a[0])}),define_libfunc("truncate",1,1,function(a){return assert_number(a[0]),a[0]<0?Math.ceil(a[0]):Math.floor(a[0])}),define_libfunc("round",1,1,function(a){return assert_number(a[0]),Math.round(a[0])}),define_libfunc("exp",1,1,function(a){return assert_number(a[0]),Math.exp(a[0])}),define_libfunc("log",1,2,function(a){var c=a[0],d=a[1];return assert_number(c),d?(assert_number(d),Math.log(c)/Math.log(b)):Math.log(c)}),define_libfunc("sin",1,1,function(a){return assert_number(a[0]),Math.sin(a[0])}),define_libfunc("cos",1,1,function(a){return assert_number(a[0]),Math.cos(a[0])}),define_libfunc("tan",1,1,function(a){return assert_number(a[0]),Math.tan(a[0])}),define_libfunc("asin",1,1,function(a){return assert_number(a[0]),Math.asin(a[0])}),define_libfunc("acos",1,1,function(a){return assert_number(a[0]),Math.acos(a[0])}),define_libfunc("atan",1,2,function(a){return assert_number(a[0]),a[1]?(assert_number(a[1]),Math.atan2(a[0],a[1])):Math.atan(a[0])}),define_libfunc("sqrt",1,1,function(a){return assert_number(a[0]),Math.sqrt(a[0])}),define_libfunc("exact-integer-sqrt",1,1,function(a){assert_number(a[0]);var b=Math.sqrt(a[0]),c=b-b%1,d=a[0]-c*c;return new Values([c,d])}),define_libfunc("expt",2,2,function(a){return assert_number(a[0]),assert_number(a[1]),Math.pow(a[0],a[1])}),define_libfunc("make-rectangular",2,2,function(a){return assert_number(a[0]),assert_number(a[1]),new Complex(a[0],a[1])}),define_libfunc("make-polar",2,2,function(a){return assert_number(a[0]),assert_number(a[1]),Complex.from_polar(a[0],a[1])}),define_libfunc("real-part",1,1,function(a){return assert_number(a[0]),Complex.assure(a[0]).real}),define_libfunc("imag-part",1,1,function(a){return assert_number(a[0]),Complex.assure(a[0]).imag}),define_libfunc("magnitude",1,1,function(a){return assert_number(a[0]),Complex.assure(a[0]).magnitude()}),define_libfunc("angle",1,1,function(a){return assert_number(a[0]),Complex.assure(a[0]).angle()}),define_libfunc("number->string",1,3,function(a){var b=a[0],c=a[1],d=a[2];if(d)throw new Bug("number->string: precision is not yet implemented");return c=c||10,b.toString(c)}),define_libfunc("string->number",1,3,function(a){var b=a[0],c=a[1]||10;switch(b){case"+inf.0":return Infinity;case"-inf.0":return-Infinity;case"+nan.0":return NaN;default:return b.match(/[eE.]/)?parseFloat(b):parseInt(b,c)}}),define_libfunc("not",1,1,function(a){return a[0]===!1?!0:!1}),define_libfunc("boolean?",1,1,function(a){return a[0]===!1||a[0]===!0?!0:!1}),define_libfunc("boolean=?",2,null,function(a){var b=a.length;for(var c=1;c<b;c++)if(a[c]!=a[0])return!1;return!0}),define_libfunc("pair?",1,1,function(a){return a[0]instanceof Pair?!0:!1}),define_libfunc("cons",2,2,function(a){return new Pair(a[0],a[1])}),define_libfunc("car",1,1,function(a){if(a[0]instanceof Pair)return a[0].car;throw new Error("Attempt to apply car on "+a[0])}),define_libfunc("cdr",1,1,function(a){if(a[0]instanceof Pair)return a[0].cdr;throw new Error("Attempt to apply cdr on "+a[0])}),define_libfunc("set-car!",2,2,function(a){if(a[0]instanceof Pair)return a[0].car=a[1],BiwaScheme.undef;throw new Error("Attempt to apply set-car! on "+a[0])}),define_libfunc("set-cdr!",2,2,function(a){if(a[0]instanceof Pair)return a[0].cdr=a[1],BiwaScheme.undef;throw new Error("Attempt to apply set-cdr! on "+a[0])}),function(){var a=function(a,b,c){var d=c;return _.each(b,function(b){if(d instanceof Pair)d=b?d.cdr:d.car;else throw new Error(a+": attempt to get "+(b?"cdr":"car")+" of "+d)}),d};define_libfunc("caar",1,1,function(b){return a("caar",[0,0],b[0])}),define_libfunc("cadr",1,1,function(b){return a("cadr",[1,0],b[0])}),define_libfunc("cdar",1,1,function(b){return a("cadr",[0,1],b[0])}),define_libfunc("cddr",1,1,function(b){return a("cadr",[1,1],b[0])}),define_libfunc("caaar",1,1,function(b){return a("caaar",[0,0,0],b[0])}),define_libfunc("caadr",1,1,function(b){return a("caadr",[1,0,0],b[0])}),define_libfunc("cadar",1,1,function(b){return a("cadar",[0,1,0],b[0])}),define_libfunc("caddr",1,1,function(b){return a("caddr",[1,1,0],b[0])}),define_libfunc("cdaar",1,1,function(b){return a("cdaar",[0,0,1],b[0])}),define_libfunc("cdadr",1,1,function(b){return a("cdadr",[1,0,1],b[0])}),define_libfunc("cddar",1,1,function(b){return a("cddar",[0,1,1],b[0])}),define_libfunc("cdddr",1,1,function(b){return a("cdddr",[1,1,1],b[0])}),define_libfunc("caaaar",1,1,function(b){return a("caaaar",[0,0,0,0],b[0])}),define_libfunc("caaadr",1,1,function(b){return a("caaadr",[1,0,0,0],b[0])}),define_libfunc("caadar",1,1,function(b){return a("caadar",[0,1,0,0],b[0])}),define_libfunc("caaddr",1,1,function(b){return a("caaddr",[1,1,0,0],b[0])}),define_libfunc("cadaar",1,1,function(b){return a("cadaar",[0,0,1,0],b[0])}),define_libfunc("cadadr",1,1,function(b){return a("cadadr",[1,0,1,0],b[0])}),define_libfunc("caddar",1,1,function(b){return a("caddar",[0,1,1,0],b[0])}),define_libfunc("cadddr",1,1,function(b){return a("cadddr",[1,1,1,0],b[0])}),define_libfunc("cdaaar",1,1,function(b){return a("cdaaar",[0,0,0,1],b[0])}),define_libfunc("cdaadr",1,1,function(b){return a("cdaadr",[1,0,0,1],b[0])}),define_libfunc("cdadar",1,1,function(b){return a("cdadar",[0,1,0,1],b[0])}),define_libfunc("cdaddr",1,1,function(b){return a("cdaddr",[1,1,0,1],b[0])}),define_libfunc("cddaar",1,1,function(b){return a("cddaar",[0,0,1,1],b[0])}),define_libfunc("cddadr",1,1,function(b){return a("cddadr",[1,0,1,1],b[0])}),define_libfunc("cdddar",1,1,function(b){return a("cdddar",[0,1,1,1],b[0])}),define_libfunc("cddddr",1,1,function(b){return a("cddddr",[1,1,1,1],b[0])})}(),define_libfunc("null?",1,1,function(a){return a[0]===nil}),define_libfunc("list?",1,1,function(a){var b=[];for(var c=a[0];c!=nil;c=c.cdr){if(c==nil)return!0;if(!(c instanceof Pair))return!1;if(_.detect(b,function(a){return a===c.car}))return!1;b.push(c.car)}return!0}),define_libfunc("list",0,null,function(a){var b=nil;for(var c=a.length-1;c>=0;c--)b=new Pair(a[c],b);return b}),define_libfunc("length",1,1,function(a){assert_list(a[0]);var b=0;for(var c=a[0];c!=nil;c=c.cdr)b++;return b}),define_libfunc("append",2,null,function(a){var b=a.length,c=a[--b];while(b--)_.each(a[b].to_array().reverse(),function(a){c=new Pair(a,c)});return c}),define_libfunc("reverse",1,1,function(a){assert_pair(a[0]);var b=nil;for(var c=a[0];c!=nil;c=c.cdr)b=new Pair(c.car,b);return b}),define_libfunc("list-tail",2,2,function(a){assert_pair(a[0]),assert_integer(a[1]);if(a[1]<0)throw new Error("list-tail: index out of range ("+a[1]+")");var b=a[0];for(var c=0;c<a[1];c++)if(b instanceof Pair)b=b.cdr;else throw new Error("list-tail: the list is shorter than "+a[1]);return b}),define_libfunc("list-ref",2,2,function(a){assert_pair(a[0]),assert_integer(a[1]);if(a[1]<0)throw new Error("list-tail: index out of range ("+a[1]+")");var b=a[0];for(var c=0;c<a[1];c++)if(b instanceof Pair)b=b.cdr;else throw new Error("list-ref: the list is shorter than "+a[1]);return b.car}),define_libfunc("map",2,null,function(a){var b=a.shift(),c=a;_.each(c,assert_list);var d=[];return Call.multi_foreach(c,{call:function(a){return new Call(b,_.map(a,function(a){return a.car}))},result:function(a){d.push(a)},finish:function(){return array_to_list(d)}})}),define_libfunc("for-each",2,null,function(a){var b=a.shift(),c=a;return _.each(c,assert_list),Call.multi_foreach(c,{call:function(a){return new Call(b,_.map(a,function(a){return a.car}))},finish:function(){return BiwaScheme.undef}})}),define_libfunc("symbol?",1,1,function(a){return a[0]instanceof Symbol?!0:!1}),define_libfunc("symbol->string",1,1,function(a){return assert_symbol(a[0]),a[0].name}),define_libfunc("symbol=?",2,null,function(a){assert_symbol(a[0]);for(var b=1;b<a.length;b++){assert_symbol(a[b]);if(a[b]!=a[0])return!1}return!0}),define_libfunc("string->symbol",1,1,function(a){return assert_string(a[0]),Sym
(a[0])}),define_libfunc("char?",1,1,function(a){return a[0]instanceof Char}),define_libfunc("char->integer",1,1,function(a){return assert_char(a[0]),a[0].value.charCodeAt(0)}),define_libfunc("integer->char",1,1,function(a){return assert_integer(a[0]),Char.get(String.fromCharCode(a[0]))});var make_char_compare_func=function(a){return function(b){assert_char(b[0]);for(var c=1;c<b.length;c++){assert_char(b[c]);if(!a(b[c-1].value,b[c].value))return!1}return!0}};define_libfunc("char=?",2,null,make_char_compare_func(function(a,b){return a==b})),define_libfunc("char<?",2,null,make_char_compare_func(function(a,b){return a<b})),define_libfunc("char>?",2,null,make_char_compare_func(function(a,b){return a>b})),define_libfunc("char<=?",2,null,make_char_compare_func(function(a,b){return a<=b})),define_libfunc("char>=?",2,null,make_char_compare_func(function(a,b){return a>=b})),define_libfunc("string?",1,1,function(a){return typeof a[0]=="string"}),define_libfunc("make-string",1,2,function(a){assert_integer(a[0]);var b=" ";a[1]&&(assert_char(a[1]),b=a[1].value);var c="";return _.times(a[0],function(){c+=b}),c}),define_libfunc("string",1,null,function(a){for(var b=0;b<a.length;b++)assert_char(a[b]);return _.map(a,function(a){return a.value}).join("")}),define_libfunc("string-length",1,1,function(a){return assert_string(a[0]),a[0].length}),define_libfunc("string-ref",2,2,function(a){return assert_string(a[0]),assert_between(a[1],0,a[0].length-1),Char.get(a[0].charAt([a[1]]))}),define_libfunc("string=?",2,null,function(a){assert_string(a[0]);for(var b=1;b<a.length;b++){assert_string(a[b]);if(a[0]!=a[b])return!1}return!0}),define_libfunc("string<?",2,null,function(a){assert_string(a[0]);for(var b=1;b<a.length;b++){assert_string(a[b]);if(a[b-1]>=a[b])return!1}return!0}),define_libfunc("string>?",2,null,function(a){assert_string(a[0]);for(var b=1;b<a.length;b++){assert_string(a[b]);if(a[b-1]<=a[b])return!1}return!0}),define_libfunc("string<=?",2,null,function(a){assert_string(a[0]);for(var b=1;b<a.length;b++){assert_string(a[b]);if(a[b-1]>a[b])return!1}return!0}),define_libfunc("string>=?",2,null,function(a){assert_string(a[0]);for(var b=1;b<a.length;b++){assert_string(a[b]);if(a[b-1]<a[b])return!1}return!0}),define_libfunc("substring",3,3,function(a){assert_string(a[0]),assert_integer(a[1]),assert_integer(a[2]);if(a[1]<0)throw new Error("substring: start too small: "+a[1]);if(a[2]<0)throw new Error("substring: end too small: "+a[2]);if(a[0].length+1>a[1]){if(a[0].length+1>a[2]){if(a[1]>a[2])throw new Error("substring: not start <= end: "+a[1]+", "+a[2]);return a[0].substring(a[1],a[2])}throw new Error("substring: end too big: "+a[2])}throw new Error("substring: start too big: "+a[1])}),define_libfunc("string-append",0,null,function(a){for(var b=0;b<a.length;b++)assert_string(a[b]);return a.join("")}),define_libfunc("string->list",1,1,function(a){return assert_string(a[0]),array_to_list(_.map(a[0].split(""),function(a){return Char.get(a[0])}))}),define_libfunc("list->string",1,1,function(a){return assert_list(a[0]),_.map(a[0].to_array(),function(a){return a.value}).join("")}),define_libfunc("string-for-each",2,null,function(a){var b=a.shift(),c=a;return _.each(c,assert_string),Call.multi_foreach(c,{call:function(a){return new Call(b,a)},finish:function(){return BiwaScheme.undef}})}),define_libfunc("string-copy",1,1,function(a){return assert_string(a[0]),a[0]}),define_libfunc("vector?",1,1,function(a){return a[0]instanceof Array&&a[0].closure_p!==!0}),define_libfunc("make-vector",1,2,function(a){assert_integer(a[0]);var b=new Array(a[0]);if(a.length==2)for(var c=0;c<a[0];c++)b[c]=a[1];return b}),define_libfunc("vector",1,null,function(a){return a}),define_libfunc("vector-length",1,1,function(a){return assert_vector(a[0]),a[0].length}),define_libfunc("vector-ref",2,2,function(a){return assert_vector(a[0]),assert_integer(a[1]),assert_between(a[1],0,a[0].length-1),a[0][a[1]]}),define_libfunc("vector-set!",3,3,function(a){return assert_vector(a[0]),assert_integer(a[1]),a[0][a[1]]=a[2],BiwaScheme.undef}),define_libfunc("vector->list",1,1,function(a){return assert_vector(a[0]),array_to_list(a[0])}),define_libfunc("list->vector",1,1,function(a){return assert_list(a[0]),a[0].to_array()}),define_libfunc("vector-fill!",2,2,function(a){assert_vector(a[0]);var b=a[0],c=a[1];for(var d=0;d<b.length;d++)b[d]=c;return b}),define_libfunc("vector-map",2,null,function(a){var b=a.shift(),c=a;_.each(c,assert_vector);var d=[];return Call.multi_foreach(c,{call:function(a){return new Call(b,a)},result:function(a){d.push(a)},finish:function(){return d}})}),define_libfunc("vector-for-each",2,null,function(a){var b=a.shift(),c=a;return _.each(c,assert_vector),Call.multi_foreach(c,{call:function(a){return new Call(b,a)},finish:function(){return BiwaScheme.undef}})}),define_libfunc("apply",2,null,function(a){var b=a.shift(),c=a.pop(),d=a;return d=d.concat(c.to_array()),new Call(b,d)}),define_syntax("call-with-current-continuation",function(a){return new Pair(Sym("call/cc"),a.cdr)}),define_libfunc("values",0,null,function(a){return new Values(a)}),define_libfunc("call-with-values",2,2,function(a){var b=a[0],c=a[1];return new Call(b,[],function(a){var b=a[0];if(b instanceof Values)return new Call(c,b.content);throw new Error("values expected, but got "+to_write(b))})});var expand_qq=function(a,b){if(a instanceof Symbol||a===nil)return List(Sym("quote"),a);if(a instanceof Pair){var c=a.car;if(c instanceof Pair&&c.car===Sym("unquote-splicing")){var b=b-1;return b==0?List(Sym("append"),a.car.cdr.car,expand_qq(a.cdr,b+1)):List(Sym("cons"),List(Sym("list"),Sym("unquote-splicing"),expand_qq(a.car.cdr.car,b)),expand_qq(a.cdr,b+1))}if(c===Sym("unquote")){var b=b-1;return b==0?a.cdr.car:List(Sym("list"),List(Sym("quote"),Sym("unquote")),expand_qq(a.cdr.car,b))}return c===Sym("quasiquote")?List(Sym("list"),Sym("quasiquote"),expand_qq(a.cdr.car,b+1)):List(Sym("cons"),expand_qq(a.car,b),expand_qq(a.cdr,b))}if(a instanceof Array)throw new Bug("vector quasiquotation is not implemented yet");return a};define_syntax("quasiquote",function(a){return expand_qq(a.cdr.car,1)}),define_syntax("unquote",function(a){throw new Error("unquote(,) must be inside quasiquote(`)")}),define_syntax("unquote-splicing",function(a){throw new Error("unquote-splicing(,@) must be inside quasiquote(`)")}),define_libfunc("string-upcase",1,1,function(a){return assert_string(a[0]),a[0].toUpperCase()}),define_libfunc("string-downcase",1,1,function(a){return assert_string(a[0]),a[0].toLowerCase()}),BiwaScheme.make_string_ci_function=function(a){return function(b){assert_string(b[0]);var c=b[0].toUpperCase();for(var d=1;d<b.length;d++){assert_string(b[d]);if(!a(c,b[d].toUpperCase()))return!1}return!0}},define_libfunc("string-ci=?",2,null,make_string_ci_function(function(a,b){return a==b})),define_libfunc("string-ci<?",2,null,make_string_ci_function(function(a,b){return a<b})),define_libfunc("string-ci>?",2,null,make_string_ci_function(function(a,b){return a>b})),define_libfunc("string-ci<=?",2,null,make_string_ci_function(function(a,b){return a<=b})),define_libfunc("string-ci>=?",2,null,make_string_ci_function(function(a,b){return a>=b})),define_libfunc("find",2,2,function(a){var b=a[0],c=a[1];return assert_list(c),Call.foreach(c,{call:function(a){return new Call(b,[a.car])},result:function(a,b){if(a)return b.car},finish:function(){return!1}})}),define_libfunc("for-all",2,null,function(a){var b=a.shift(),c=a;_.each(c,assert_list);var d=!0;return Call.multi_foreach(c,{call:function(a){return new Call(b,_.map(a,function(a){return a.car}))},result:function(a,b){if(a===!1)return!1;d=a},finish:function(){return d}})}),define_libfunc("exists",2,null,function(a){var b=a.shift(),c=a;return _.each(c,assert_list),Call.multi_foreach(c,{call:function(a){return new Call(b,_.map(a,function(a){return a.car}))},result:function(a,b){if(a!==!1)return a},finish:function(){return!1}})}),define_libfunc("filter",2,2,function(a){var b=a[0],c=a[1];assert_list(c);var d=[];return Call.foreach(c,{call:function(a){return new Call(b,[a.car])},result:function(a,b){a&&d.push(b.car)},finish:function(){return array_to_list(d)}})}),define_libfunc("partition",2,2,function(a){var b=a[0],c=a[1];assert_list(c);var d=[],e=[];return Call.foreach(c,{call:function(a){return new Call(b,[a.car])},result:function(a,b){a?d.push(b.car):e.push(b.car)},finish:function(){return new Values([array_to_list(d),array_to_list(e)])}})}),define_libfunc("fold-left",3,null,function(a){var b=a.shift(),c=a.shift(),d=a;return _.each(d,assert_list),Call.multi_foreach(d,{call:function(a){var d=_.map(a,function(a){return a.car});return d.unshift(c),new Call(b,d)},result:function(a,b){c=a},finish:function(){return c}})}),define_libfunc("fold-right",3,null,function(a){var b=a.shift(),c=a.shift(),d=_.map(a,function(a){return assert_list(a),array_to_list(a.to_array().reverse())});return Call.multi_foreach(d,{call:function(a){var d=_.map(a,function(a){return a.car});return d.push(c),new Call(b,d)},result:function(a,b){c=a},finish:function(){return c}})}),define_libfunc("remp",2,2,function(a){var b=a[0],c=a[1];assert_list(c);var d=[];return Call.foreach(c,{call:function(a){return new Call(b,[a.car])},result:function(a,b){a||d.push(b.car)},finish:function(){return array_to_list(d)}})});var make_remover=function(a){return function(b){var c=b[0],d=b[1];assert_list(d);var e=[];return Call.foreach(d,{call:function(b){return new Call(TopEnv[a]||CoreEnv[a],[c,b.car])},result:function(a,b){a||e.push(b.car)},finish:function(){return array_to_list(e)}})}};define_libfunc("remove",2,2,make_remover("equal?")),define_libfunc("remv",2,2,make_remover("eqv?")),define_libfunc("remq",2,2,make_remover("eq?")),define_libfunc("memp",2,2,function(a){var b=a[0],c=a[1];assert_list(c);var d=[];return Call.foreach(c,{call:function(a){return new Call(b,[a.car])},result:function(a,b){if(a)return b},finish:function(){return!1}})});var make_finder=function(a){return function(b){var c=b[0],d=b[1];assert_list(d);var e=[];return Call.foreach(d,{call:function(b){return new Call(TopEnv[a]||CoreEnv[a],[c,b.car])},result:function(a,b){if(a)return b},finish:function(){return!1}})}};define_libfunc("member",2,2,make_finder("equal?")),define_libfunc("memv",2,2,make_finder("eqv?")),define_libfunc("memq",2,2,make_finder("eq?")),define_libfunc("assp",2,2,function(a){var b=a[0],c=a[1];assert_list(c);var d=[];return Call.foreach(c,{call:function(a){if(a.car.car)return new Call(b,[a.car.car]);throw new Error("ass*: pair required but got "+to_write(a.car))},result:function(a,b){if(a)return b.car},finish:function(){return!1}})});var make_assoc=function(a,b){return function(c){var d=c[0],e=c[1];assert_list(e);var f=[];return Call.foreach(e,{call:function(c){if(!BiwaScheme.isPair(c.car))throw new Error(a+": pair required but got "+to_write(c.car));var e=TopEnv[b]||CoreEnv[b];return new Call(e,[d,c.car.car])},result:function(a,b){if(a)return b.car},finish:function(){return!1}})}};define_libfunc("assoc",2,2,make_assoc("assoc","equal?")),define_libfunc("assv",2,2,make_assoc("assv","eqv?")),define_libfunc("assq",2,2,make_assoc("assq","eq?")),define_libfunc("cons*",1,null,function(a){if(a.length==1)return a[0];var b=null;return _.each(a.reverse(),function(a){b?b=new Pair(a,b):b=a}),b}),define_libfunc("list-sort",1,2,function(a){if(a[1])throw new Bug("list-sort: cannot take compare proc now");return assert_list(a[0]),array_to_list(a[0].to_array().sort())}),define_libfunc("vector-sort",1,2,function(a){if(a[1])throw new Bug("vector-sort: cannot take compare proc now");return assert_vector(a[0]),_.clone(a[0]).sort()}),define_libfunc("vector-sort!",1,2,function(a){if(a[1])throw new Bug("vector-sort!: cannot take compare proc now");return assert_vector(a[0]),a[0].sort(),BiwaScheme.undef}),define_syntax("when",function(a){var b=a.cdr.car,c=a.cdr.cdr;return new Pair(Sym("if"),new Pair(b,new Pair(new Pair(Sym("begin"),c),new Pair(BiwaScheme.undef,nil))))}),define_syntax("unless",function(a){var b=a.cdr.car,c=a.cdr.cdr;return new Pair(Sym("if"),new Pair(new Pair(Sym("not"),new Pair(b,nil)),new Pair(new Pair(Sym("begin"),c),new Pair(BiwaScheme.undef,nil))))}),define_syntax("do",function(a){if(!BiwaScheme.isPair(a.cdr))throw new Error("do: no variables of do");var b=a.cdr.car;if(!BiwaScheme.isPair(b))throw new Error("do: variables must be given as a list");if(!BiwaScheme.isPair(a.cdr.cdr))throw new Error("do: no resulting form of do");var c=a.cdr.cdr.car,d=a.cdr.cdr.cdr,e=BiwaScheme.gensym(),f=array_to_list(b.map(function(a){var b=a.to_array();return List(b[0],b[1])})),g=c.car,h=new Pair(Sym("begin"),c.cdr),i=new Pair(e,array_to_list(b.map(function(a){var b=a.to_array();return b[2]||b[0]}))),j=(new Pair(Sym("begin"),d)).concat(List(i));return List(Sym("let"),e,f,List(Sym("if"),g,h,j))}),define_syntax("case-lambda",function(a){}),define_syntax("define-record-type",function(a){var b=a.cdr.car,c=a.cdr.cdr;if(BiwaScheme.isSymbol(b))var d=b,e=Sym("make-"+b.name),f=Sym(b.name+"?");else{assert_list(b);var d=b.car,e=b.cdr.car,f=b.cdr.cdr.car;assert_symbol(d),assert_symbol(e),assert_symbol(f)}var g=!1,h=!1,i=!1,j=!1,k,l=!1,m=!1,n=!1,o=[];_.each(c.to_array(),function(a){switch(a.car){case Sym("fields"):o=_.map(a.cdr.to_array(),function(a,b){if(BiwaScheme.isSymbol(a))return{name:a,idx:b,mutable:!1,accessor_name:null,mutator_name:null};assert_list(a),assert_symbol(a.car);switch(a.car){case Sym("immutable"):var c=a.cdr.car;return assert_symbol(c),BiwaScheme.isNil(a.cdr.cdr)?{name:c,idx:b,mutable:!1}:{name:c,idx:b,mutable:!1,accessor_name:a.cdr.cdr.car};case Sym("mutable"):var c=a.cdr.car;return assert_symbol(c),BiwaScheme.isNil(a.cdr.cdr)?{name:c,idx:b,mutable:!0}:{name:c,idx:b,mutable:!0,accessor_name:a.cdr.cdr.car,mutator_name:a.cdr.cdr.cdr.car};default:throw new Error("define-record-type: field definition must start with `immutable' or 'mutable'")}});break;case Sym("parent"):k=a.cdr.car,assert_symbol(k);break;case Sym("protocol"):n=a.cdr.car;break;case Sym("sealed"):g=!!a.cdr.car;break;case Sym("opaque"):h=!!a.cdr.car;break;case Sym("nongenerative"):i=!0,j=a.cdr.car;break;case Sym("parent-rtd"):l=a.cdr.car,m=a.cdr.cdr.car;break;default:throw new BiwaScheme.Error("define-record-type: unknown clause `"+BiwaScheme.to_write(a.car)+"'")}}),k&&(l=[Sym("record-type-descriptor"),k],m=[Sym("record-constructor-descriptor"),k]);var p=[Sym("record-type-descriptor"),d],q=[Sym("record-constructor-descriptor"),d],r=_.map(o,function(a){return List(Sym(a.mutable?"mutable":"immutable"),a.name)});r.is_vector=!0;var s=[Sym("make-record-type-descriptor"),[Sym("quote"),d],l,j,g,h,r],t=[Sym("make-record-constructor-descriptor"),Sym("__rtd"),m,n],u=[Sym("let*"),[[Sym("__rtd"),s],[Sym("__cd"),t]],[Sym("_define-record-type"),[Sym("quote"),d],Sym("__rtd"),Sym("__cd")]],v=_.map(o,function(a){var b=a.accessor_name||Sym(d.name+"-"+a.name.name);return[Sym("define"),b,[Sym("record-accessor"),p,a.idx]]}),w=_.filter(o,function(a){return a.mutable});return w=_.map(w,function(a){var b=a.mutator_name||Sym("set-"+d.name+"-"+a.name.name+"!");return[Sym("define"),b,[Sym("record-mutator"),p,a.idx]]}),List.apply(null,[Sym("begin"),u,[Sym("define"),e,[Sym("record-constructor"),q]],[Sym("define"),f,[Sym("record-predicate"),p]]].concat(v).concat(w))}),define_libfunc("_define-record-type",3,3,function(a){return assert_symbol(a[0]),assert_record_td(a[1]),assert_record_cd(a[2]),BiwaScheme.Record.define_type(a[0].name,a[1],a[2]),BiwaScheme.undef}),define_syntax("record-type-descriptor",function(a){return List(Sym("_record-type-descriptor"),[Sym("quote"),a.cdr.car])}),define_libfunc("_record-type-descriptor",1,1,function(a){assert_symbol(a[0]);var b=BiwaScheme.Record.get_type(a[0].name);if(b)return b.rtd;throw new Error("record-type-descriptor: unknown record type "+a[0].name)}),define_syntax("record-constructor-descriptor",function(a){return List(Sym("_record-constructor-descriptor"),[Sym("quote"),a.cdr.car])}),define_libfunc("_record-constructor-descriptor",1,1,function(a){assert_symbol(a[0]);var b=BiwaScheme.Record.get_type(a[0].name);if(b)return b.cd;throw new Error("record-constructor-descriptor: unknown record type "+a[0].name)}),define_libfunc("make-record-type-descriptor",6,6,function(a){var b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5];assert_symbol(b),c&&assert_record_td(c);if(d){assert_symbol(d);var h=BiwaScheme.Record.RTD.NongenerativeRecords[d.name];if(h)return h}e=!!e,f=!!f,assert_vector(g);for(var i=0;i<g.length;i++){var j=g[i];assert_symbol(j.car,"mutability"),assert_symbol(j.cdr.car,"field name"),g[i]=[j.cdr.car.name,j.car==Sym("mutable")]}var k=new BiwaScheme.Record.RTD(b,c,d,e,f,g);return d&&(BiwaScheme.Record.RTD.NongenerativeRecords[d.name]=k),k}),define_libfunc("record-type-descriptor?",1,1,function(a){return a[0]instanceof BiwaScheme.Record.RTD}),define_libfunc("make-record-constructor-descriptor",3,3,function(a){var b=a[0],c=a[1],d=a[2];return assert_record_td(b),c&&assert_record_cd(c),d&&assert_procedure(d),new BiwaScheme.Record.CD(b,c,d)}),define_libfunc("record-constructor",1,1,function(a){var b=a[0];return assert_record_cd(b),b.record_constructor()}),define_libfunc("record-predicate",1,1,function(a){var b=a[0];return assert_record_td(b),function(a){var c=a[0];return c instanceof BiwaScheme.Record&&c.rtd===b}}),define_libfunc("record-accessor",2,2,function(a){var b=a[0],c=a[1];assert_record_td(b),assert_integer(c);for(var d=b.parent_rtd;d;d=d.parent_rtd)c+=d.fields.length;return function(a){var d=a[0],e=b.name.name+"-"+b.field_name(c)+": "+BiwaScheme.to_write(d)+" is not a "+b.name.name;assert(BiwaScheme.isRecord(d),e);var f=!1;for(var g=d.rtd;g;g=g.parent_rtd)g==b&&(f=!0);return assert(f,e),d.get(c)}}),define_libfunc("record-mutator",2,2,function(a){var b=a[0],c=a[1];assert_record_td(b),assert_integer(c);for(var d=b.parent_rtd;d;d=d.parent_rtd)c+=d.fields.length;return function(a){var d=a[0],e=a[1],f=b.field_name(c);assert_record(d),assert(d.rtd===b,f+": "+BiwaScheme.to_write(d)+" is not a "+b.name.name),assert(!d.rtd.sealed,f+": "+b.name.name+" is sealed (can't mutate)"),d.set(c,e)}}),define_libfunc("record?",1,1,function(a){var b=a[0];return BiwaScheme.isRecord(b)?b.rtd.opaque?!1:!0:!1}),define_libfunc("record-rtd",1,1,function(a){return assert_record(a[0]),a[0].rtd}),define_libfunc("record-type-name",1,1,function(a){return assert_record_td(a[0]),a[0].name}),define_libfunc("record-type-parent",1,1,function(a){return assert_record_td(a[0]),a[0].parent_rtd}),define_libfunc("record-type-uid",1,1,function(a){return assert_record_td(a[0]),a[0].uid}),define_libfunc("record-type-generative?",1,1,function(a){return assert_record_td(a[0]),a[0].generative}),define_libfunc("record-type-sealed?",1,1,function(a){return assert_record_td(a[0]),a[0].sealed}),define_libfunc("record-type-opaque?",1,1,function(a){return assert_record_td(a[0]),a[0].opaque}),define_libfunc("record-type-field-names",1,1,function(a){return assert_record_td(a[0]),_.map(a[0].fields,function(a){return a.name})}),define_libfunc("record-field-mutable?",2,2,function(a){var b=a[0],c=a[1];assert_record_td(a[0]),assert_integer(c);for(var d=b.parent_rtd;d;d=d.parent_rtd)c+=d.fields.length;return a[0].fields[c].mutable}),define_libfunc("raise",1,1,function(a){throw new BiwaScheme.UserError(BiwaScheme.to_write(a[0]))}),define_libfunc("port?",1,1,function(a){return a[0]instanceof Port}),define_libfunc("textual-port?",1,1,function(a){return assert_port(a[0]),!a[0].is_binary}),define_libfunc("binary-port?",1,1,function(a){return assert_port(a[0]),a[0].is_binary}),define_libfunc("close-port",1,1,function(a){return assert_port(a[0]),a[0].close(),BiwaScheme.undef}),define_libfunc("call-with-port",2,2,function(a){var b=a[0],c=a[1];return assert_port(b),assert_closure(c),new Call(c,[b],function(a){return b.close(),a[0]})}),define_libfunc("call-with-string-output-port",1,1,function(a){var b=a[0];assert_procedure(b);var c=new BiwaScheme.Port.StringOutput;return new Call(b,[c],function(a){return c.close(),c.output_string()})}),define_libfunc("put-char",2,2,function(a){return assert_port(a[0]),assert_char(a[1]),a[0].put_string(a[1].value),BiwaScheme.undef}),define_libfunc("put-string",2,2,function(a){return assert_port(a[0]),assert_string(a[1]),a[0].put_string(a[1]),BiwaScheme.undef}),define_libfunc("put-datum",2,2,function(a){return assert_port(a[0]),a[0].put_string(to_write(a[1])),BiwaScheme.undef}),define_libfunc("eof-object",0,0,function(a){return eof}),define_libfunc("eof-object?",1,1,function(a){return a[0]===eof}),define_libfunc("input-port?",1,1,function(a){return assert_port(a[0]),a[0].is_input}),define_libfunc("output-port?",1,1,function(a){return assert_port(a[0]),a[0].is_output}),define_libfunc("current-input-port",0,0,function(a){return Port.current_input}),define_libfunc("current-output-port",0,0,function(a){return Port.current_output}),define_libfunc("current-error-port",0,0,function(a){return Port.current_error}),define_libfunc("close-input-port",1,1,function(a){assert_port(a[0]);if(!a[0].is_input)throw new Error("close-input-port: port is not input port");return a[0].close(),BiwaScheme.undef}),define_libfunc("close-output-port",1,1,function(a){assert_port(a[0]);if(!a[0].is_output)throw new Error("close-output-port: port is not output port");return a[0].close(),BiwaScheme.undef}),define_libfunc("read",0,1,function(a){var b=a[0]||Port.current_input;return assert_port(b),b.get_string(function(a){return Interpreter.read(a)})}),define_libfunc("write-char",1,2,function(a){var b=a[1]||Port.current_output;return assert_char(a[0]),b.put_string(a[0].value),BiwaScheme.undef}),define_libfunc("newline",0,1,function(a){var b=a[0]||Port.current_output;return b.put_string("\n"),BiwaScheme.undef}),define_libfunc("display",1,2,function(a){var b=a[1]||Port.current_output;return b.put_string(to_display(a[0])),BiwaScheme.undef}),define_libfunc("write",1,2,function(a){var b=a[1]||Port.current_output;return assert_port(b),b.put_string(to_write(a[0])),BiwaScheme.undef}),define_libfunc("file-exists?",1,1,function(a){return assert_string(a[0]),BiwaScheme.NodeJS("file_exists",a[0])}),define_libfunc("delete-file",1,1,function(a){return assert_string(a[0]),BiwaScheme.NodeJS("delete_file",a[0]),BiwaScheme.undef}),define_libfunc("command-line",0,0,function(a){return BiwaScheme.List.apply(null,BiwaScheme.NodeJS("command_line"))}),define_libfunc("exit",0,1,function(a){var b=a[0];BiwaScheme.NodeJS("exit",b)}),define_libfunc("make-eq-hashtable",0,1,function(a){return new Hashtable(Hashtable.eq_hash,Hashtable.eq_equiv)}),define_libfunc("make-eqv-hashtable",0,1,function(a){return new Hashtable(Hashtable.eqv_hash,Hashtable.eqv_equiv)}),define_libfunc("make-hashtable",2,3,function(a){return assert_procedure(a[0]),assert_procedure(a[1]),new Hashtable(a[0],a[1])}),define_libfunc("hashtable?",1,1,function(a){return a[0]instanceof Hashtable}),define_libfunc("hashtable-size",1,1,function(a){return assert_hashtable(a[0]),a[0].keys().length}),BiwaScheme.find_hash_pair=function(a,b,c){return new Call(a.hash_proc,[b],function(d){var e=d[0],f=a.candidate_pairs(e);return f?Call.foreach(f,{call:function(c){return new Call(a.equiv_proc,[b,c[0]])},result:function(a,b){if(a)return c.on_found(b,e)},finish:function(){return c.on_not_found(e)}}):c.on_not_found(e)})},define_libfunc("hashtable-ref",3,3,function(a){var b=a[0],c=a[1],d=a[2];return assert_hashtable(b),BiwaScheme.find_hash_pair(b,c,{on_found:function(a){return a[1]},on_not_found:function(a){return d}})}),define_libfunc("hashtable-set!",3,3,function(a){var b=a[0],c=a[1],d=a[2];return assert_hashtable(b),assert(b.mutable,"hashtable is not mutable"),BiwaScheme.find_hash_pair(b,c,{on_found:function(a){return a[1]=d,BiwaScheme.undef},on_not_found:function(a){return b.add_pair(a,c,d),BiwaScheme.undef}})}),define_libfunc("hashtable-delete!",2,2,function(a){var b=a[0],c=a[1];return assert_hashtable(b),assert(b.mutable,"hashtable is not mutable"),BiwaScheme.find_hash_pair(b,c,{on_found:function(a,c){return b.remove_pair(c,a),BiwaScheme.undef},on_not_found:function(a){return BiwaScheme.undef}})}),define_libfunc("hashtable-contains?",2,2,function(a){var b=a[0],c=a[1];return assert_hashtable(b),BiwaScheme.find_hash_pair(b,c,{on_found:function(a){return!0},on_not_found:function(a){return!1}})}),define_libfunc("hashtable-update!",4,4,function(a){var b=a[0],c=a[1],d=a[2],e=a[3];return assert_hashtable(b),assert(b.mutable,"hashtable is not mutable"),assert_procedure(d),BiwaScheme.find_hash_pair(b,c,{on_found:function(a,b){return new Call(d,[a[1]],function(b){return a[1]=b[0],BiwaScheme.undef})},on_not_found:function(a){return new Call(d,[e],function(d){return b.add_pair(a,c,d[0]),BiwaScheme.undef})}})}),define_libfunc("hashtable-copy",1,2,function(a){var b=a[1]===undefined?!1:!!a[1];return assert_hashtable(a[0]),a[0].create_copy(b)}),define_libfunc("hashtable-clear!",0,1,function(a){return assert_hashtable(a[0]),assert(a[0].mutable,"hashtable is not mutable"),a[0].clear(),BiwaScheme.undef}),define_libfunc("hashtable-keys",1,1,function(a){return assert_hashtable(a[0]),a[0].keys()}),define_libfunc("hashtable-entries",1,1,function(a){return assert_hashtable(a[0]),new Values([a[0].keys(),a[0].values()])}),define_libfunc("hashtable-equivalence-function",1,1,function(a){return assert_hashtable(a[0]),a[0].equiv_proc}),define_libfunc("hashtable-hash-function",1,1,function(a){return assert_hashtable(a[0]),a[0].hash_proc}),define_libfunc("hashtable-mutable?",1,1,function(a){return assert_hashtable(a[0]),a[0].mutable}),define_libfunc("equal-hash",0,0,function(a){return Hashtable.equal_hash}),define_libfunc("string-hash",0,0,function(a){return Hashtable.string_hash}),define_libfunc("string-ci-hash",0,0,function(a){return Hashtable.string_ci_hash}),define_libfunc("symbol-hash",0,0,function(a){return Hashtable.symbol_hash}),define_libfunc("make-enumeration",1,1,function(a){assert_list(a[0]);var b=a[0].to_array(),c=new BiwaScheme.Enumeration.EnumType(b);return c.universe()}),define_libfunc("enum-set-universe",1,1,function(a){return assert_enum_set(a[0]),a[0].enum_type.universe()}),define_libfunc("enum-set-indexer",1,1,function(a){return assert_enum_set(a[0]),a[0].enum_type.indexer()}),define_libfunc("enum-set-constructor",1,1,function(a){return assert_enum_set(a[0]),a[0].enum_type.constructor()}),define_libfunc("enum-set->list",1,1,function(a){return assert_enum_set(a[0]),a[0].symbol_list()}),define_libfunc("enum-set-member?",2,2,function(a){return assert_symbol(a[0]),assert_enum_set(a[1]),a[1].is_member(a[0])}),define_libfunc("enum-set-subset?",2,2,function(a){return assert_enum_set(a[0]),assert_enum_set(a[1]),a[0].is_subset(a[1])}),define_libfunc("enum-set=?",2,2,function(a){return assert_enum_set(a[0]),assert_enum_set(a[1]),a[0].equal_to(a[1])}),define_libfunc("enum-set-union",2,2,function(a){return assert_enum_set(a[0]),assert_enum_set(a[1]),assert(a[0].enum_type===a[1].enum_type,"two enum-sets must be the same enum-type","enum-set-union"),a[0].union(a[1])}),define_libfunc("enum-set-intersection",2,2,function(a){return assert_enum_set(a[0]),assert_enum_set(a[1]),a[0].intersection(a[1])}),define_libfunc("enum-set-difference",2,2,function(a){return assert_enum_set(a[0]),assert_enum_set(a[1]),a[0].difference(a[1])}),define_libfunc("enum-set-complement",1,1,function(a){return assert_enum_set(a[0]),a[0].complement()}),define_libfunc("enum-set-projection",2,2,function(a){return assert_enum_set(a[0]),assert_enum_set(a[1]),a[0].projection(a[1])}),define_syntax("define-enumeration",function(a){var b=a.cdr.car;assert(BiwaScheme.isSymbol(b),"expected symbol for type_name","define-enumeration"),b=b.name;var c=a.cdr.cdr.car;assert(BiwaScheme.isList(c),"expected list of symbol for members","define-enumeration"),c=c.to_array();var d=a.cdr.cdr.cdr.car;assert(BiwaScheme.isSymbol(d),"expected symbol for constructor_name","define-enumeration"),d=d.name;var e=new BiwaScheme.Enumeration.EnumType(c);define_syntax(b,function(a){assert(!BiwaScheme.isNil(a.cdr),"an argument is needed",b);var c=a.cdr.car;return assert_symbol(c,b),assert(_.include(e.members,c),c.name+" is not included in the universe: "+BiwaScheme.to_write(e.members),b),BiwaScheme.List(Sym("quote"),c)}),define_syntax(d,function(a){assert_list(a.cdr,d);var b=a.cdr.to_array();return _.each(b,function(a){assert_symbol(a,d),assert(_.include(e.members,a),a.name+" is not included in the universe: "+BiwaScheme.to_write(e.members),d)}),new BiwaScheme.Enumeration.EnumSet(e,b)})}),define_libfunc("eval",1,1,function(a,b){var c=a[0],b=new BiwaScheme.Interpreter(b.on_error);return b.evaluate(c.to_write())})}typeof BiwaScheme!="object"&&(BiwaScheme={});with(BiwaScheme){define_libfunc("js-eval",1,1,function(ar){return eval(ar[0])}),define_libfunc("js-ref",2,2,function(a){return _.isString(a[1])?a[0][a[1]]:(assert_symbol(a[1]),a[0][a[1].name])}),define_libfunc("js-set!",3,3,function(a){return assert_string(a[1]),a[0][a[1]]=a[2],BiwaScheme.undef}),define_libfunc("js-call",1,null,function(a){var b=a.shift();assert_function(b);var c=null;return b.apply(c,a)}),define_libfunc("js-invoke",2,null,function(a){var b=a.shift(),c=a.shift();_.isString(c)||(assert_symbol(c),c=c.name);if(b[c])return b[c].apply(b,a);throw new Error("js-invoke: function "+c+" is not defined")}),define_libfunc("js-invocation",2,null,function(ar,intp){var receiver=ar.shift();BiwaScheme.isSymbol(receiver)&&(receiver=eval(receiver.name));var v=receiver;return _.each(ar,function(a){if(BiwaScheme.isSymbol(a))v=v[a.name];else{if(!BiwaScheme.isList(a))throw new BiwaScheme.Error("js-invocation: expected list or symbol for callspec but got "+BiwaScheme.inspect(a));var b=a.to_array();assert_symbol(b[0]);var c=b.shift().name;b=_.map(b,function(a){if(BiwaScheme.isClosure(a))return BiwaScheme.js_closure(a,intp);if(BiwaScheme.isList(a)){var b={};return a.foreach(function(a){assert_symbol(a.car),b[a.car.name]=a.cdr}),b}return a});if(!_.isFunction(v[c]))throw new BiwaScheme.Error("js-invocation: the method `"+c+"' not found");v=v[c].apply(v,b)}}),v}),define_libfunc("js-new",1,null,function(ar,intp){var array_to_obj=function(a){if(a.length%2!=0)throw new Error("js-new: odd number of key-value pair");var b={};for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1];assert_symbol(d),e.closure_p===!0&&(e=BiwaScheme.js_closure(e,intp)),b[d.name]=e}return b},ctor=ar.shift();assert_string(ctor);if(ar.length==0)return eval("new "+ctor+"()");var args=[];for(var i=0;i<ar.length;i++){if(ar[i]instanceof Symbol){args.push(array_to_obj(ar.slice(i)));break}args.push(ar[i])}var args_str=_.map(ar,function(a,b){return"args['"+b+"']"}).join(",");return eval("new "+ctor+"("+args_str+")")}),define_libfunc("js-obj",0,null,function(a){if(a.length%2!=0)throw new Error("js-obj: number of arguments must be even");var b={};for(i=0;i<a.length/2;i++)assert_string(a[i*2]),b[a[i*2]]=a[i*2+1];return b}),BiwaScheme.js_closure=function(a,b){var c=b.on_error;return function(){var b=new Interpreter(c);return b.invoke_closure(a,_.toArray(arguments))}},define_libfunc("js-closure",1,1,function(a,b){return assert_closure(a[0]),BiwaScheme.js_closure(a[0],b)}),define_libfunc("js-null?",1,1,function(a){return a[0]===null}),define_libfunc("js-undefined?",1,1,function(a){return a[0]===undefined}),define_libfunc("js-function?",1,1,function(a){return _.isFunction(a[0])}),define_libfunc("js-array-to-list",1,1,function(a){return BiwaScheme.array_to_list(a[0])}),define_libfunc("list-to-js-array",1,1,function(a){return a[0].to_array()}),BiwaScheme.alist_to_js_obj=function(a){if(a===nil)return{};assert_list(a);var b={};return a.foreach(function(a){assert_string(a.car),b[a.car]=a.cdr}),b},define_libfunc("alist-to-js-obj",1,1,function(a){return BiwaScheme.alist_to_js_obj(a[0])}),BiwaScheme.js_obj_to_alist=function(a){if(a===undefined)return BiwaScheme.nil;var b=[];_.each(a,function(a,c){b.push(new Pair(c,a))});var c=BiwaScheme.array_to_list(b);return c},define_libfunc("js-obj-to-alist",1,1,function(a){return BiwaScheme.js_obj_to_alist(a[0])}),define_libfunc("timer",2,2,function(a,b){var c=a[0],d=a[1];return assert_closure(c),assert_real(d),setTimeout(function(){(new Interpreter(b.on_error)).invoke_closure(c)},d*1e3),BiwaScheme.undef}),define_libfunc("set-timer!",2,2,function(a,b){var c=a[0],d=a[1];return assert_closure(c),assert_real(d),setInterval(function(){(new Interpreter(b.on_error)).invoke_closure(c)},d*1e3)}),define_libfunc("clear-timer!",1,1,function(a){var b=a[0];return clearInterval(b),BiwaScheme.undef}),define_libfunc("sleep",1,1,function(a){var b=a[0];return assert_real(b),new BiwaScheme.Pause(function(a){setTimeout(function(){a.resume(nil)},b*1e3)})});var define_console_func=function(a){define_libfunc("console-"+a,1,null,function(b){var c=window.console;if(c){var d=_.map(b,function(a){return BiwaScheme.inspect(a,{fallback:a})});c[a].apply(c
,d)}return b[0]})};define_console_func("debug"),define_console_func("log"),define_console_func("info"),define_console_func("warn"),define_console_func("error")}typeof BiwaScheme!="object"&&(BiwaScheme={});with(BiwaScheme){define_libfunc("html-escape",1,1,function(a){return assert_string(a[0]),_.escapeHTML(a[0])}),BiwaScheme.inspect_objs=function(a){return _.map(a,BiwaScheme.inspect).join(", ")},define_libfunc("inspect",1,null,function(a){return BiwaScheme.inspect_objs(a)}),define_libfunc("inspect!",1,null,function(a){return puts(BiwaScheme.inspect_objs(a)),BiwaScheme.undef}),BiwaScheme.json2sexp=function(a){switch(!0){case _.isNumber(a)||_.isString(a)||a===!0||a===!1:return a;case _.isArray(a):return array_to_list(_.map(a,json2sexp));case typeof a=="object":var b=nil;for(key in a)b=new Pair(new Pair(key,json2sexp(a[key])),b);return b;default:throw new Error("json->sexp: detected invalid value for json: "+BiwaScheme.inspect(a))}throw new Bug("must not happen")},define_libfunc("json->sexp",1,1,function(a){return json2sexp(a[0])}),define_libfunc("identity",1,1,function(a){return a[0]}),define_syntax("inc!",function(a){var b=a.cdr.car;return List(Sym("set!"),b,[Sym("+"),b,1])}),define_syntax("dec!",function(a){var b=a.cdr.car;return List(Sym("set!"),b,[Sym("-"),b,1])}),define_libfunc("string-concat",1,1,function(a){return assert_list(a[0]),a[0].to_array().join("")}),define_libfunc("string-split",2,2,function(a){return assert_string(a[0]),assert_string(a[1]),array_to_list(a[0].split(a[1]))}),define_libfunc("string-join",1,2,function(a){assert_list(a[0]);var b="";return a[1]&&(assert_string(a[1]),b=a[1]),a[0].to_array().join(b)}),define_libfunc("intersperse",2,2,function(a){var b=a[0],c=a[1];assert_list(c);var d=[];return _.each(c.to_array().reverse(),function(a){d.push(a),d.push(b)}),d.pop(),array_to_list(d)}),define_libfunc("map-with-index",2,null,function(a){var b=a.shift(),c=a;_.each(c,assert_list);var d=[],e=0;return Call.multi_foreach(c,{call:function(a){var c=_.map(a,function(a){return a.car});return c.unshift(e),e++,new Call(b,c)},result:function(a){d.push(a)},finish:function(){return array_to_list(d)}})}),define_syntax("dotimes",function(a){var b=a.cdr.car,c=a.cdr.cdr,d=b.car,e=b.cdr.car,f=b.cdr.cdr.car,g=BiwaScheme.gensym(),h=List([g,e],[d,0,[Sym("+"),d,1]]),i=List([Sym(">="),d,g],f);return new Pair(Sym("do"),new Pair(h,new Pair(i,c)))});var sort_with_comp=function(a,b){return a.sort(function(a,c){var d=new BiwaScheme.Interpreter;return d.invoke_closure(b,[a,c])})};define_libfunc("list-sort/comp",1,2,function(a){return assert_procedure(a[0]),assert_list(a[1]),array_to_list(sort_with_comp(a[1].to_array(),a[0]))}),define_libfunc("vector-sort/comp",1,2,function(a){return assert_procedure(a[0]),assert_vector(a[1]),sort_with_comp(_.clone(a[1]),a[0])}),define_libfunc("vector-sort/comp!",1,2,function(a){return assert_procedure(a[0]),assert_vector(a[1]),sort_with_comp(a[1],a[0]),BiwaScheme.undef});var rearrange_args=function(a,b){var c=[],d=(new Compiler).find_dot_pos(a);if(d==-1)c=b;else{for(var e=0;e<d;e++)c[e]=b[e];c[e]=array_to_list(b.slice(e))}return c};define_syntax("define-macro",function(a){var b=a.cdr.car,c;if(b instanceof Pair){var d=b.car;c=b.cdr;var e=a.cdr.cdr,f=new Pair(Sym("lambda"),new Pair(c,e))}else{var d=b,f=a.cdr.cdr.car;c=f.cdr.car}var g=Compiler.compile(f);if(g[1]!=0)throw new Bug("you cannot use free variables in macro expander (or define-macro must be on toplevel)");var h=[g[2]];return TopEnv[d.name]=new Syntax(d.name,function(a){var b=a.to_array();b.shift();var d=new Interpreter,e=rearrange_args(c,b),f=d.invoke_closure(h,e);return f}),BiwaScheme.undef});var macroexpand_1=function(a){if(a instanceof Pair){if(!(a.car instanceof Symbol&&TopEnv[a.car.name]instanceof Syntax))throw new Error("macroexpand-1: `"+to_write_ss(a)+"' is not a macro");var b=TopEnv[a.car.name];a=b.transform(a)}return a};define_syntax("%macroexpand",function(a){var b=(new Interpreter).expand(a.cdr.car);return List(Sym("quote"),b)}),define_syntax("%macroexpand-1",function(a){var b=macroexpand_1(a.cdr.car);return List(Sym("quote"),b)}),define_libfunc("macroexpand",1,1,function(a){return(new Interpreter).expand(a[0])}),define_libfunc("macroexpand-1",1,1,function(a){return macroexpand_1(a[0])}),define_libfunc("gensym",0,0,function(a){return BiwaScheme.gensym()}),define_libfunc("print",1,null,function(a){return _.map(a,function(a){puts(to_display(a),!0)}),puts(""),BiwaScheme.undef}),define_libfunc("write-to-string",1,1,function(a){return to_write(a[0])}),define_libfunc("read-from-string",1,1,function(a){return assert_string(a[0]),Interpreter.read(a[0])}),define_libfunc("port-closed?",1,1,function(a){return assert_port(a[0]),!a[0].is_open}),define_libfunc("with-output-to-port",2,2,function(a){var b=a[0],c=a[1];assert_port(b),assert_procedure(c);var d=BiwaScheme.Port.current_output;return BiwaScheme.Port.current_output=b,new Call(c,[b],function(a){return b.close(),BiwaScheme.Port.current_output=d,a[0]})}),define_syntax("let1",function(a){var b=a.cdr.car,c=a.cdr.cdr.car,d=a.cdr.cdr.cdr;return new Pair(new Pair(Sym("lambda"),new Pair(new Pair(b,nil),d)),new Pair(c,nil))});var assert_regexp=function(a,b){if(!(a instanceof RegExp))throw new Error(b+": regexp required, but got "+to_write(a))};define_libfunc("string->regexp",1,1,function(a){return assert_string(a[0],"string->regexp"),new RegExp(a[0])}),define_libfunc("regexp?",1,1,function(a){return a[0]instanceof RegExp}),define_libfunc("regexp->string",1,1,function(a){return assert_regexp(a[0],"regexp->string"),a[0].toString().slice(1,-1)}),define_libfunc("regexp-exec",2,2,function(a){var b=a[0];_.isString(a[0])&&(b=new RegExp(a[0])),assert_regexp(b,"regexp-exec"),assert_string(a[1],"regexp-exec");var c=b.exec(a[1]);return c===null?!1:array_to_list(c)})}with(BiwaScheme){define_libfunc("iota",1,3,function(a){var b=a[0],c=a[1]||0,d=a[2]===undefined?1:a[2];assert_integer(b),assert_number(c),assert_number(d);var e=[],f=c;for(var g=0;g<b;g++)e.push(f),f+=d;return array_to_list(e)});var copy_pair=function(a){var b=BiwaScheme.isPair(a.car)?copy_pair(a.car):a.car,c=BiwaScheme.isPair(a.cdr)?copy_pair(a.cdr):a.cdr;return new Pair(b,c)};define_libfunc("list-copy",1,1,function(a){return BiwaScheme.isPair(a[0])?copy_pair(a[0]):BiwaScheme.nil}),define_libfunc("open-input-string",1,1,function(a){return assert_string(a[0]),new Port.StringInput(a[0])}),define_libfunc("open-output-string",0,0,function(a){return new Port.StringOutput}),define_libfunc("get-output-string",1,1,function(a){assert_port(a[0]);if(a[0]instanceof Port.StringOutput)return a[0].output_string();throw new Error("get-output-string: port must be made by 'open-output-string'")}),define_libfunc("current-date",0,1,function(a){return new Date}),define_libfunc("date?",1,1,function(a){return a[0]instanceof Date}),define_libfunc("date-nanosecond",1,1,function(a){return assert_date(a[0]),a[0].getMilliseconds()*1e6}),define_libfunc("date-millisecond",1,1,function(a){return assert_date(a[0]),a[0].getMilliseconds()}),define_libfunc("date-second",1,1,function(a){return assert_date(a[0]),a[0].getSeconds()}),define_libfunc("date-minute",1,1,function(a){return assert_date(a[0]),a[0].getMinutes()}),define_libfunc("date-hour",1,1,function(a){return assert_date(a[0]),a[0].getHours()}),define_libfunc("date-day",1,1,function(a){return assert_date(a[0]),a[0].getDate()}),define_libfunc("date-month",1,1,function(a){return assert_date(a[0]),a[0].getMonth()+1}),define_libfunc("date-year",1,1,function(a){return assert_date(a[0]),a[0].getFullYear()}),define_libfunc("date-week-day",1,1,function(a){return assert_date(a[0]),a[0].getDay()}),BiwaScheme.date_names={weekday:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],full_weekday:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],full_month:["January","February","March","April","May","June","July","August","September","Octorber","November","December"]},BiwaScheme.date2string=function(a,b){var c=function(a){return a<10?"0"+a:""+a},d=function(a){return a<10?" "+a:""+a},e={a:function(a){return date_names.weekday[a.getDay()]},A:function(a){return date_names.full_weekday[a.getDay()]},b:function(a){return date_names.month[a.getMonth()]},B:function(a){return date_names.full_month[a.getMonth()]},c:function(a){return a.toString()},d:function(a){return c(a.getDate())},D:function(a){return e.d(a)+e.m(a)+e.y(a)},e:function(a){return d(a.getDate())},f:function(a){return a.getSeconds()+a.getMilliseconds()/1e3},h:function(a){return date_names.month[a.getMonth()]},H:function(a){return c(a.getHours())},I:function(a){var b=a.getHours();return c(b<13?b:b-12)},j:function(a){throw new Bug("not implemented: day of year")},k:function(a){return d(a.getHours())},l:function(a){var b=a.getHours();return d(b<13?b:b-12)},m:function(a){return c(a.getMonth())},M:function(a){return c(a.getMinutes())},n:function(a){return"\n"},N:function(a){throw new Bug("not implemented: nanoseconds")},p:function(a){return a.getHours()<13?"AM":"PM"},r:function(a){return e.I(a)+":"+e.M(a)+":"+e.S(a)+" "+e.p(a)},s:function(a){return Math.floor(a.getTime()/1e3)},S:function(a){return c(a.getSeconds())},t:function(a){return"\t"},T:function(a){return e.H(a)+":"+e.M(a)+":"+e.S(a)},U:function(a){throw new Bug("not implemented: weeknum(0~, Sun)")},V:function(a){throw new Bug("not implemented: weeknum(1~, Sun?)")},w:function(a){return a.getDay()},W:function(a){throw new Bug("not implemented: weeknum(0~, Mon)")},x:function(a){throw new Bug("not implemented: weeknum(1~, Mon)")},X:function(a){return e.Y(a)+"/"+e.m(a)+"/"+e.d(a)},y:function(a){return a.getFullYear()%100},Y:function(a){return a.getFullYear()},z:function(a){throw new Bug("not implemented: time-zone")},Z:function(a){throw new Bug("not implemented: symbol time zone")},1:function(a){throw new Bug("not implemented: ISO-8601 year-month-day format")},2:function(a){throw new Bug("not implemented: ISO-8601 hour-minute-second-timezone format")},3:function(a){throw new Bug("not implemented: ISO-8601 hour-minute-second format")},4:function(a){throw new Bug("not implemented: ISO-8601 year-month-day-hour-minute-second-timezone format")},5:function(a){throw new Bug("not implemented: ISO-8601 year-month-day-hour-minute-second format")}};return b.replace(/~([\w1-5~])/g,function(b,c){var d=e[c];return d?d(a):c=="~"?"~":c})},define_libfunc("date->string",1,2,function(a){return assert_date(a[0]),a[1]?(assert_string(a[1]),date2string(a[0],a[1])):a[0].toString()}),define_libfunc("parse-date",1,1,function(a){return assert_string(a[0]),new Date(Date.parse(a[0]))}),define_libfunc("random-integer",1,1,function(a){var b=a[0];assert_integer(b);if(b<0)throw new Error("random-integer: the argument must be >= 0");return Math.floor(Math.random()*a[0])}),define_libfunc("random-real",0,0,function(a){return Math.random()}),define_libfunc("format",1,null,function(a){if(_.isString(a[0]))var b=null,c=a.shift();else if(a[0]===!1){a.shift();var b=null,c=a.shift()}else if(a[0]===!0){a.shift();var b=BiwaScheme.Port.current_output,c=a.shift()}else{var b=a.shift(),c=a.shift();assert_port(b)}var d=c.replace(/~[as]/g,function(b){return assert(a.length>0,"insufficient number of arguments","format"),b=="~a"?BiwaScheme.to_display(a.shift()):BiwaScheme.to_write(a.shift())}).replace(/~%/,"\n").replace(/~~/,"~");return b?(b.put_string(d),BiwaScheme.undef):d});var user_write_ss=function(a){return puts(write_ss(a[0]),!0),BiwaScheme.undef};define_libfunc("write/ss",1,2,user_write_ss),define_libfunc("write-with-shared-structure",1,2,user_write_ss),define_libfunc("write*",1,2,user_write_ss),define_libfunc("vector-append",2,null,function(a){var b=[];return b.concat.apply(b,a)}),define_libfunc("vector-copy",1,1,function(a){return assert_vector(a[0]),_.clone(a[0])})}typeof BiwaScheme!="object"&&(BiwaScheme={});with(BiwaScheme)define_libfunc("read-line",0,1,function(a){var b=a[0]||Port.current_input;return assert_port(b),b.get_string()}),define_libfunc("element-empty!",1,1,function(a){return $(a[0]).attr("value")?$(a[0]).val(""):$(a[0]).empty()}),alias_libfunc("element-empty!","element-clear!"),define_libfunc("element-visible?",1,1,function(a){return $(a[0]).is(":visible")}),define_libfunc("element-toggle!",1,1,function(a){return $(a[0]).toggle()}),define_libfunc("element-hide!",1,1,function(a){return $(a[0]).hide()}),define_libfunc("element-show!",1,1,function(a){return $(a[0]).show()}),define_libfunc("element-remove!",1,1,function(a){return $(a[0]).remove()}),define_libfunc("element-update!",2,2,function(a){return $(a[0]).html(a[1])}),define_libfunc("element-replace!",2,2,function(a){return $(a[0]).replaceWith(a[1])}),define_libfunc("element-insert!",2,2,function(a){return $(a[0]).append(a[1])}),define_libfunc("element-wrap!",3,3,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-ancestors",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-descendants",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-first-descendant",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-immediate-descendants",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-previous-sibling",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-next-sibling",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-siblings",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-match?",2,2,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-up",3,3,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-down",3,3,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-previous",3,3,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-next",3,3,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-select",0,0,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-adjacent",0,0,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-identify",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-read-attribute",2,2,function(a){return assert_string(a[1]),$(a[0]).attr(a[1])}),define_libfunc("element-write-attribute",3,3,function(a){return assert_string(a[1]),$(a[0]).attr(a[1],a[2])}),define_libfunc("element-height",1,1,function(a){return $(a[0]).height()}),define_libfunc("element-width",1,1,function(a){return $(a[0]).width()}),define_libfunc("element-class-names",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-has-class-name?",2,2,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-add-class-name",2,2,function(a){return assert_string(a[1]),$(a[0]).addClass(a[1],a[2])}),define_libfunc("element-remove-class-name",2,2,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-toggle-class-name",2,2,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-clean-whitespace!",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-empty?",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-descendant-of!",2,2,function(a){throw new Bug("not yet implemented")}),define_libfunc("scroll-to-element!",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-style",2,2,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-opacity",2,2,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-style-set!",2,2,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-opacity-set!",2,2,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-dimensions",1,1,function(a){return new Values($(a[0]).width(),$(a[0]).height())}),define_libfunc("element-make-positioned!",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-undo-positioned!",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-make-clipping!",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-undo-clipping!",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-cumulative-offset",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-positioned-offset",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-absolutize!",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-relativize!",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-cumulative-scroll-offset",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-offset-parent",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-viewport-offset",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-clone-position!",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-absolutize!",1,1,function(a){throw new Bug("not yet implemented")}),define_libfunc("element-focus!",1,1,function(a){return $(a[0]).focus()}),BiwaScheme.create_elements_by_string=function(a){a=a.to_array();var b=a.shift();b instanceof Symbol&&(b=b.name);var c=b.match(/(.*)\.(.*)/);c&&(b=c[1],a.unshift(Sym("class"),c[2])),c=b.match(/(.*)\#(.*)/),c&&(b=c[1],a.unshift(Sym("id"),c[2]));var d=[],e=["<"+b];for(var f=0;f<a.length;f++)a[f]instanceof Symbol?(e.push(" "+a[f].name+'="'+a[f+1]+'"'),f++):a[f]instanceof Pair?d.push(create_elements_by_string(a[f])):d.push(a[f]);return e.push(">"),e.push(d.join("")),e.push("</"+b+">"),e.join("")},BiwaScheme.tree_all=function(a,b){return a===nil?!0:b(a.car)===!1?!1:BiwaScheme.tree_all(a.cdr,b)},define_libfunc("element-new",1,1,function(a){var b=function(a){return _.isString(a)||a instanceof Symbol||a instanceof Pair};return BiwaScheme.tree_all(a[0],b)?$(create_elements_by_string(a[0]))[0]:nil}),BiwaScheme.element_content=function(a){return $(a).attr("value")?$(a).val():_.escapeHTML($(a).html())},define_libfunc("element-content",1,1,function(a){return BiwaScheme.element_content(a[0])}),define_libfunc("load",1,1,function(a,b){var c=a[0];return assert_string(c),new BiwaScheme.Pause(function(a){$.ajax(c,{success:function(c){var d=new Interpreter(b.on_error);d.evaluate(c,function(){return a.resume(BiwaScheme.undef)})},error:function(){throw new Error("load: network error: failed to load"+c)}})})}),_require=function(a,b,c){var d=$("<script/>",{src:a});$("body").append(d);var e=new Function("return !!("+b+")");e()?c():setTimeout(function(){e()?c():setTimeout(arguments.callee,10)},10)},define_libfunc("js-load",2,2,function(a){var b=a[0],c=a[1];return assert_string(b),assert_string(c),new BiwaScheme.Pause(function(a){_require(b,"window."+c,function(){a.resume(BiwaScheme.undef)})})}),BiwaScheme.getelem=function(a){var b=$(a[0]);return b.length>0?b:!1},define_libfunc("$",1,1,BiwaScheme.getelem),define_libfunc("getelem",1,1,BiwaScheme.getelem),define_libfunc("dom-element",1,1,function(a){return $(a[0])[0]}),define_libfunc("set-style!",3,3,function(a){return assert_string(a[1]),$(a[0]).css(a[1],a[2]),BiwaScheme.undef}),define_libfunc("get-style",2,2,function(a){return assert_string(a[1]),$(a[0]).css(a[1])}),define_libfunc("set-content!",2,2,function(a){assert_string(a[1]);var b=a[1].replace(/\n/g,"<br>").replace(/\t/g,"&nbsp;&nbsp;&nbsp;");return $(a[0]).html(b),BiwaScheme.undef}),define_libfunc("get-content",1,1,function(a){return BiwaScheme.element_content(a[0])}),define_libfunc("set-handler!",3,3,function(a,b){throw new Error("set-handler! is obsolete, please use add-handler! instead")}),define_libfunc("add-handler!",3,3,function(a,b){var c=a[0],d=a[1],e=a[2],f=b.on_error;return $(c).bind(d,function(a){var b=new Interpreter(f);return b.invoke_closure(e,[a])}),BiwaScheme.undef}),define_libfunc("wait-for",2,2,function(a){var b=a[0],c=a[1],d=$(b);d.biwascheme_wait_for=d.biwascheme_wait_for||{};var e=d.biwascheme_wait_for[c];return e&&d.unbind(c,e),new BiwaScheme.Pause(function(a){var b=function(e){return d.biwascheme_wait_for[c]=undefined,d.unbind(c,b),a.resume(BiwaScheme.undef)};d.biwascheme_wait_for[c]=b,d.bind(c,b)})}),define_libfunc("domelem",1,null,function(a){throw new Error("obsolete")}),define_libfunc("dom-remove-children!",1,1,function(a){return puts("warning: dom-remove-children! is obsolete. use element-empty! instead"),$(a[0]).empty(),BiwaScheme.undef}),define_libfunc("dom-create-element",1,1,function(a){throw new Error("obsolete")}),define_libfunc("element-append-child!",2,2,function(a){return $(a[0]).append(a[1])}),define_libfunc("dom-remove-child!",2,2,function(a){throw new Error("obsolete")}),define_libfunc("http-request",1,1,function(a){var b=a[0];return assert_string(b),new BiwaScheme.Pause(function(a){$.get(b,function(b){a.resume(b)},"text")})}),define_libfunc("http-post",2,2,function(a){var b=a[0];assert_string(b);var c=a[1];assert_list(c);var d=alist_to_js_obj(c);return new BiwaScheme.Pause(function(a){$.post(b,d,function(b){a.resume(b)},"text")})}),BiwaScheme.jsonp_receiver=[],define_libfunc("receive-jsonp",1,1,function(a){var b=a[0];assert_string(b);var c=BiwaScheme.jsonp_receiver;for(var d=0;d<c.length;d++)if(c[d]===null)break;var e=d;return b+="?callback=BiwaScheme.jsonp_receiver["+e+"]",new BiwaScheme.Pause(function(a){c[e]=function(b){a.resume(b),c[e]=null};var d=$("<script/>",{src:b});$("body").append(d)})}),define_libfunc("alert",1,1,function(a){return alert(a[0]),BiwaScheme.undef}),define_libfunc("confirm",1,1,function(a){return confirm(a[0])});with(BiwaScheme)BiwaScheme.Dumper=BiwaScheme.Class.create({initialize:function(a){this.dumparea=a||$("#dumparea")[0]||null,this.reset()},reset:function(){this.dumparea&&$(this.dumparea).empty(),this.n_folds=0,this.closures=[],this.n_dumps=0,this.cur=-1,this.is_folded=!0},is_opc:function(a){return a instanceof Array&&typeof a[0]=="string"},dump_pad:"&nbsp;&nbsp;&nbsp;",dump_opc:function(a,b){var c="",d="",e="",b=b||0;_.times(b,_.bind(function(){d+=this.dump_pad},this)),_.times(b+1,_.bind(function(){e+=this.dump_pad},this)),c+=d+'[<span class="dump_opecode">'+a[0]+"</span>";var f=1;while(!(a[f]instanceof Array)&&f<a.length)a[0]=="constant"?c+="&nbsp;<span class='dump_constant'>"+this.dump_obj(a[f])+"</span>":c+="&nbsp;"+this.dump_obj(a[f]),f++;f<a.length&&(c+="<br>\n");for(;f<a.length;f++)this.is_opc(a[f])?c+=this.dump_opc(a[f],f==a.length-1?b:b+1):(c+=f==a.length-1?d:e,c+=this.dump_obj(a[f])),f!=a.length-1&&(c+="<br>\n");return c+="]",b==0?this.add_fold(c):c},fold_limit:20,add_fold:function(a){var b=a.split(/<br>/gmi);if(b.length>this.fold_limit){var c=" <span style='text-decoration:underline; color:blue; cursor:pointer;'onclick='BiwaScheme.Dumper.toggle_fold("+this.n_folds+")'>more</span>",d="<div style='display:none' id='fold"+this.n_folds+"'>",e="</div>";return this.n_folds++,[b.slice(0,this.fold_limit).join("<br>"),c,d,b.slice(this.fold_limit+1).join("<br>"),e].join("")}return a},stack_max_len:80,dump_stack:function(a,b){if(a===null||a===undefined)return BiwaScheme.inspect(a);var c="<table>";if(a.length==0)c+="<tr><td class='dump_dead'>(stack is empty)</td></tr>";else if(b<a.length){var d=a.length-1;c+="<tr><td class='dump_dead'>["+d+"]</td>"+"<td class='dump_dead'>"+_.truncate(this.dump_obj(a[d]),this.stack_max_len)+"</td></tr>"}for(var e=b-1;e>=0;e--)c+="<tr><td class='dump_stknum'>["+e+"]</td>"+"<td>"+_.truncate(this.dump_obj(a[e]),this.stack_max_len)+"</td></tr>";return c+"</table>"},dump_object:function(a){var b=[];for(var c in a)b.push(c.toString());return"#<Object{"+b.join(",")+"}>"},dump_closure:function(a){if(a.length==0)return"[]";var b=null;for(var c=0;c<this.closures.length;c++)this.closures[c]==a&&(b=c);b==null&&(b=this.closures.length,this.closures.push(a));var d=_.clone(a),e=d.shift();return["c",b," <span class='dump_closure'>free vars :</span> ",this.dump_obj(d)," <span class='dump_closure'>body :</span> ",_.truncate(this.dump_obj(e),100)].join("")},dump_obj:function(a){if(a&&typeof a.to_html=="function")return a.to_html();var b=write_ss(a,!0);return b=="[object Object]"&&(b=this.dump_object(a)),_.escapeHTML(b)},dump:function(a){var b="";a instanceof Object?(b+="<table>",b+="<tr><td colspan='4'><a href='#' id='dump_"+this.n_dumps+"_header'>"+"#"+this.n_dumps+"</a></td></tr>",_.each(_.keys(a),_.bind(function(c){var d=a[c];c!="x"&&c!="stack"&&(d=c=="c"?this.dump_closure(d):this.dump_obj(d),b+="<tr><td>"+c+": </td>"+"<td colspan='3'>"+d+"</td></tr>")},this)),b+="<tr><td>x:</td><td>"+(this.is_opc(a.x)?this.dump_opc(a.x):this.dump_obj(a.x))+"</td>",b+="<td style='border-left: 1px solid black'>stack:</td><td>"+this.dump_stack(a.stack,a.s)+"</td></tr>",b+="</table>"):b=_.escapeHTML(BiwaScheme.inspect(a))+"<br>\n";var c=$("<div/>",{id:"dump"+this.n_dumps});c.html(b),$(this.dumparea).append(c),_.bind(function(a){$("#dump_"+this.n_dumps+"_header").click(_.bind(function(){this.dump_move_to(a),this.dump_fold()},this))},this)(this.n_dumps),c.hide(),this.n_dumps++},dump_move_to:function(a){0<=a&&a<=this.n_dumps&&($("#dump"+this.cur).hide(),this.cur=a,$("#dump"+this.cur).show())},dump_move:function(a){0<=this.cur&&this.cur<this.n_dumps&&$("#dump"+this.cur).hide(),0<=this.cur+a&&this.cur+a<this.n_dumps&&(this.cur+=a),$("#dump"+this.cur).show()},dump_fold:function(){for(var a=0;a<this.n_dumps;a++)a!=this.cur&&$("#dump"+a).hide();this.is_folded=!0},dump_unfold:function(){for(var a=0;a<this.n_dumps;a++)$("#dump"+a).show();this.is_folded=!1},dump_toggle_fold:function(){this.is_folded?this.dump_unfold():this.dump_fold()}});BiwaScheme.Dumper.toggle_fold=function(a){$("#fold"+a).toggle()},Console={},Console.puts=function(a,b){var c,d;c=$("#bs-console");if(c[0]){d=_.escapeHTML(a+(b?"":"\n"));var e=$("<span>");e.html(d.replace(/\n/g,"<br>").replace(/ /g,"&nbsp;")),c.append(e)}},Console.p=function(){Console.puts("p> "+_.map(_.toArray(arguments),BiwaScheme.inspect).join(" "))},BiwaScheme.on_node=!1,function(){var a=null;$("#biwascheme-debugger")[0]&&(a=new BiwaScheme.Dumper($("#biwascheme-debugger")[0]));var b=function(b,c){puts(b.message);if(a)a.dump(c),a.dump_move(1);else throw b},c=$("script[src$='biwascheme.js']").html()||$("script[src$='biwascheme-min.js']").html();if(c){var d=new BiwaScheme.Interpreter(b);try{d.evaluate(c,function(){})}catch(e){b(e)}}}()
