UNPKG

gitbook-parsers

Version:

Includes GitBook parsers and normalize output

316 lines (271 loc) 1.67 MB
(function () { var define = undefined; !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var o;"undefined"!=typeof window?o=window:"undefined"!=typeof global?o=global:"undefined"!=typeof self&&(o=self),o.gitbookParsers=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ var _ = require("lodash"); // Normalize glossary function normalize(glossary) { return _.chain(glossary) .map(function(entry) { entry.id = entryId(entry.name); return entry; }) .sortBy(function(entry) { return entry.name.toLowerCase(); }) .value(); } // Normalizes a glossary entry's name to create an ID function entryId(name) { return name.toLowerCase() .replace(/[\/\\\?\%\*\:\;\|\"\'\\<\\>\#\$\(\)\!\.\@]/g, '') .replace(/ /g, '_') .trim(); } module.exports = { entryId: entryId, normalize: normalize }; },{"lodash":113}],2:[function(require,module,exports){ var Q = require("q"); var _ = require("lodash"); var path = require("path"); var summaryUtils = require("./summary"); var glossaryUtils = require("./glossary"); var langsUtils = require("./langs"); // This list is ordered by priority of parsers to use var PARSERS = _.chain([ { name: "markdown", extensions: [".md", ".markdown", ".mdown"], parser: require("gitbook-markdown") }, { name: "asciidoc", extensions: [".adoc", ".asciidoc"], parser: require("gitbook-asciidoc") }, { name: "restructuredtext", extensions: [".rst"], parser: require("gitbook-restructuredtext") } ]) .map(function(type) { if (!type.parser || !type.parser.summary || !type.parser.page || !type.parser.glossary || !type.parser.readme) { return null; } return composeType(type); }) .compact() .value(); // Wrap Q function wrapQ(func) { return _.wrap(func, function(_func) { var args = Array.prototype.slice.call(arguments, 1); return Q() .then(function() { return _func.apply(null, args) }) }); } // Prepare and compose a parser function composeType(type) { var parser = type.parser; var nparser = { name: type.name, extensions: type.extensions }; nparser.glossary = wrapQ(_.compose(glossaryUtils.normalize, parser.glossary)) nparser.glossary.toText = wrapQ(parser.glossary.toText); var oldSummaryParser = wrapQ(parser.summary); nparser.summary = function(src, options) { return oldSummaryParser(src) .then(function(summary) { return summaryUtils.normalize(summary, options); }); }; nparser.summary.toText = wrapQ(parser.summary.toText); nparser.langs = wrapQ(_.compose(langsUtils.normalize, parser.langs)); nparser.langs.toText = wrapQ(parser.langs.toText); nparser.readme = wrapQ(parser.readme); nparser.page = wrapQ(parser.page); nparser.page.prepare = wrapQ(parser.page.prepare || _.identity); return nparser; }; // Return a specific parser according to an extension function getParser(ext) { return _.find(PARSERS, function(input) { return input.name == ext || _.contains(input.extensions, ext); }); } // Return parser for a file function getParserForFile(filename) { return getParser(path.extname(filename)); }; module.exports = { all: PARSERS, extensions: _.flatten(_.pluck(PARSERS, "extensions")), get: getParser, getForFile: getParserForFile, glossary: { entryId: glossaryUtils.entryId } }; },{"./glossary":1,"./langs":3,"./summary":4,"gitbook-asciidoc":57,"gitbook-markdown":64,"gitbook-restructuredtext":11,"lodash":113,"path":118,"q":121}],3:[function(require,module,exports){ var _ = require("lodash"); var path = require("path"); // Normalize langs function normalize(entries) { return _.chain(entries) .filter(function(entry) { return Boolean(entry.path); }) .map(function(entry) { return { title: entry.title.trim(), path: entry.path, lang: path.basename(entry.path) }; }) .value(); } module.exports = { normalize: normalize }; },{"lodash":113,"path":118}],4:[function(require,module,exports){ var _ = require("lodash"); var url = require("url"); var path = require("path"); // Is the link an external link var isExternal = function(href) { try { return Boolean(url.parse(href).protocol); } catch(err) { } return false; }; function defaultChapterList(chapterList, options) { // Check if introduction node was specified in SUMMARY.md var hasIntro = _.find(chapterList, function(entry) { return normalizePath(entry.path) == normalizePath(options.entryPoint); }); if (hasIntro) return chapterList; // It wasn't specified, so add in default return [ { path: options.entryPoint, title: options.entryPointTitle } ].concat(chapterList); } // Normalize path // 1. Convert Window's "\" to "/" // 2. Remove leading "/" if exists function normalizePath(p) { if (!p) return p; return path.normalize(p).replace(/\\/g, '/').replace(/^\/+/, ''); } function normalizeChapters(chapterList, options, level, base, paths) { base = base || 0; paths = paths || {}; var i = base; return _.chain(chapterList) .map(function(chapter) { chapter.path = normalizePath(chapter.path); // Ignore multiple entries with same filename if (chapter.path){ if(paths[chapter.path]) return null; paths[chapter.path] = true; } chapter.level = (level? [level || "", i] : [i]).join("."); chapter.external = isExternal(chapter.path); chapter.exists = chapter.path? ( chapter.external || !options.files || !!_.find(options.files, function(f) { return normalizePath(f) == chapter.path; }) ) : false; i = i + 1; return { path: chapter.path, title: chapter.title.trim(), level: chapter.level, articles: normalizeChapters(chapter.articles || [], options, chapter.level, 1, paths), exists: chapter.exists, external: chapter.external, introduction: chapter.path == options.entryPoint }; }) .compact() .value(); }; function normalizeSummary(summary, options) { options = _.defaults(options || {}, { entryPoint: "README.md", entryPointTitle: "Introduction", files: null }) if (_.isArray(summary)) summary = { chapters: summary }; summary.chapters = defaultChapterList(summary.chapters, options); summary.chapters = normalizeChapters(summary.chapters, options); return summary; }; module.exports = { normalize: normalizeSummary }; },{"lodash":113,"path":118,"url":137}],5:[function(require,module,exports){ ;(function () { var object = typeof exports != 'undefined' ? exports : this; // #8: web workers var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; function InvalidCharacterError(message) { this.message = message; } InvalidCharacterError.prototype = new Error; InvalidCharacterError.prototype.name = 'InvalidCharacterError'; // encoder // [https://gist.github.com/999166] by [https://github.com/nignag] object.btoa || ( object.btoa = function (input) { for ( // initialize result and counter var block, charCode, idx = 0, map = chars, output = ''; // if the next input index does not exist: // change the mapping table to "=" // check if d has no fractional digits input.charAt(idx | 0) || (map = '=', idx % 1); // "8 - idx % 1 * 8" generates the sequence 2, 4, 6, 8 output += map.charAt(63 & block >> 8 - idx % 1 * 8) ) { charCode = input.charCodeAt(idx += 3/4); if (charCode > 0xFF) { throw new InvalidCharacterError("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range."); } block = block << 8 | charCode; } return output; }); // decoder // [https://gist.github.com/1020396] by [https://github.com/atk] object.atob || ( object.atob = function (input) { input = input.replace(/=+$/, ''); if (input.length % 4 == 1) { throw new InvalidCharacterError("'atob' failed: The string to be decoded is not correctly encoded."); } for ( // initialize result and counters var bc = 0, bs, buffer, idx = 0, output = ''; // get next character buffer = input.charAt(idx++); // character found in table? initialize bit storage and add its ascii value; ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer, // and if not first of each 4 characters, // convert the first 8 bits to one ascii character bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0 ) { // try to find character in table (0-63, not found => -1) buffer = chars.indexOf(buffer); } return output; }); }()); },{}],6:[function(require,module,exports){ module.exports=function(opalParam,xmlHttpRequestParam){var Opal=opalParam||require("opal-npm-wrapper").Opal;if(xmlHttpRequestParam!==!1){var XMLHttpRequest=xmlHttpRequestParam||require("xmlhttprequest").XMLHttpRequest;XMLHttpRequest.prototype.overrideMimeType=function(){}}return{Opal:Opal,Asciidoctor:function(loadExtensions){return function(a){var b=a.top,c=a.nil,d=(a.breaker,a.slice),e=a.klass,f=a.module;return function(b,f){function g(){}var h,i,j,k=g=e(b,f,"Set",g),l=k._proto,m=k._scope;return l.hash=c,k.$include(m.Enumerable),a.defs(k,"$[]",function(a){var b=this;return a=d.call(arguments,0),b.$new(a)}),l.$initialize=h=function(a){var b,d,e,f=this,g=h._p,i=g||c;return null==a&&(a=c),h._p=null,f.hash=m.Hash.$new(),(b=a["$nil?"]())===c||b._isBoolean&&1!=b?i!==!1&&i!==c?(b=(d=f).$do_with_enum,b._p=(e=function(a){var b=e._s||this;return null==a&&(a=c),b.$add(i["$[]"](a))},e._s=f,e),b).call(d,a):f.$merge(a):c},l["$=="]=function(a){var b,d,e,f=this;return(b=f["$equal?"](a))===c||b._isBoolean&&1!=b?(b=a["$instance_of?"](f.$class()))===c||b._isBoolean&&1!=b?(d=a["$is_a?"](m.Set),(b=d!==!1&&d!==c?f.$size()["$=="](a.$size()):d)===c||b._isBoolean&&1!=b?!1:(b=(d=a)["$all?"],b._p=(e=function(a){var b=e._s||this;return null==b.hash&&(b.hash=c),null==a&&(a=c),b.hash["$include?"](a)},e._s=f,e),b).call(d)):f.hash["$=="](a.$instance_variable_get("@hash")):!0},l.$add=function(a){var b=this;return b.hash["$[]="](a,!0),b},a.defn(k,"$<<",l.$add),l["$add?"]=function(a){var b,d=this;return(b=d["$include?"](a))===c||b._isBoolean&&1!=b?d.$add(a):c},l.$each=i=function(){var a,b,d=this,e=i._p,f=e||c;return i._p=null,f===c?d.$enum_for("each"):((a=(b=d.hash).$each_key,a._p=f.$to_proc(),a).call(b),d)},l["$empty?"]=function(){var a=this;return a.hash["$empty?"]()},l.$clear=function(){var a=this;return a.hash.$clear(),a},l["$include?"]=function(a){var b=this;return b.hash["$include?"](a)},a.defn(k,"$member?",l["$include?"]),l.$merge=function(a){var b,d,e,f=this;return(b=(d=f).$do_with_enum,b._p=(e=function(a){var b=e._s||this;return null==a&&(a=c),b.$add(a)},e._s=f,e),b).call(d,a),f},l.$do_with_enum=j=function(a){var b,d,e=j._p,f=e||c;return j._p=null,(b=(d=a).$each,b._p=f.$to_proc(),b).call(d)},l.$size=function(){var a=this;return a.hash.$size()},a.defn(k,"$length",l.$size),l.$to_a=function(){var a=this;return a.hash.$keys()},c&&"to_a"}(b,null),function(b){var e,g=f(b,"Enumerable"),h=g._proto,i=g._scope;h.$to_set=e=function(a,b){var f,g,h=this,j=e._p,k=j||c;return b=d.call(arguments,1),null==a&&(a=i.Set),e._p=null,(f=(g=a).$new,f._p=k.$to_proc(),f).apply(g,[h].concat(b))},a.donate(g,["$to_set"])}(b)}(Opal),function(a){var b=a.top,c=a.nil,d=(a.breaker,a.slice,a.module);return function(b){var e=d(b,"Comparable"),f=e._proto,g=e._scope;a.defs(e,"$normalize",function(a){var b;return(b=g.Integer["$==="](a))===c||b._isBoolean&&1!=b?a["$>"](0)?1:a["$<"](0)?-1:0:a}),f["$=="]=function(b){var d,e=this,f=c;try{return(d=e["$equal?"](b))===c||d._isBoolean&&1!=d?(d=f=e["$<=>"](b))===c||d._isBoolean&&1!=d?!1:g.Comparable.$normalize(f)["$=="](0):!0}catch(h){if(a.$rescue(h,[g.StandardError]))return!1;throw h}},f["$>"]=function(a){var b,d=this,e=c;return((b=e=d["$<=>"](a))===c||b._isBoolean&&1!=b)&&d.$raise(g.ArgumentError,"comparison of "+d.$class()+" with "+a.$class()+" failed"),g.Comparable.$normalize(e)["$>"](0)},f["$>="]=function(a){var b,d=this,e=c;return((b=e=d["$<=>"](a))===c||b._isBoolean&&1!=b)&&d.$raise(g.ArgumentError,"comparison of "+d.$class()+" with "+a.$class()+" failed"),g.Comparable.$normalize(e)["$>="](0)},f["$<"]=function(a){var b,d=this,e=c;return((b=e=d["$<=>"](a))===c||b._isBoolean&&1!=b)&&d.$raise(g.ArgumentError,"comparison of "+d.$class()+" with "+a.$class()+" failed"),g.Comparable.$normalize(e)["$<"](0)},f["$<="]=function(a){var b,d=this,e=c;return((b=e=d["$<=>"](a))===c||b._isBoolean&&1!=b)&&d.$raise(g.ArgumentError,"comparison of "+d.$class()+" with "+a.$class()+" failed"),g.Comparable.$normalize(e)["$<="](0)},f["$between?"]=function(a,b){var c=this;return c["$<"](a)?!1:c["$>"](b)?!1:!0},a.donate(e,["$==","$>","$>=","$<","$<=","$between?"])}(b)}(Opal),function($opal){var self=$opal.top,$scope=$opal,nil=$opal.nil,$breaker=$opal.breaker,$slice=$opal.slice,$klass=$opal.klass,$gvars=$opal.gvars;return function($base,$super){function $String(){}var self=$String=$klass($base,$super,"String",$String),def=self._proto,$scope=self._scope,TMP_1,TMP_2,TMP_3,TMP_4,TMP_5,TMP_6,TMP_7;return def.length=nil,self.$include($scope.Comparable),def._isString=!0,$opal.defs(self,"$try_convert",function(a){try{return a.$to_str()}catch(b){return nil}}),$opal.defs(self,"$new",function(a){return null==a&&(a=""),new String(a)}),def["$%"]=function(a){var b,c=this;return(b=$scope.Array["$==="](a))===nil||b._isBoolean&&1!=b?c.$format(c,a):(b=c).$format.apply(b,[c].concat(a))},def["$*"]=function(a){var b=this;if(1>a)return"";for(var c="",d=b;a>0;)1&a&&(c+=d),a>>=1,d+=d;return c},def["$+"]=function(a){var b=this;return a=$scope.Opal.$coerce_to(a,$scope.String,"to_str"),b+a.$to_s()},def["$<=>"]=function(a){var b,c=this;if((b=a["$respond_to?"]("to_str"))===nil||b._isBoolean&&1!=b){var d=a["$<=>"](c);return d===nil?nil:d>0?-1:0>d?1:0}return a=a.$to_str().$to_s(),c>a?1:a>c?-1:0},def["$=="]=function(a){var b,c=this;return(b=$scope.String["$==="](a))===nil||b._isBoolean&&1!=b?!1:c.$to_s()==a.$to_s()},$opal.defn(self,"$eql?",def["$=="]),$opal.defn(self,"$===",def["$=="]),def["$=~"]=function(a){var b=this;return a._isString&&b.$raise($scope.TypeError,"type mismatch: String given"),a["$=~"](b)},def["$[]"]=function(a,b){var c=this,d=c.length;if(a._isRange){var e=a.exclude,b=a.end,a=a.begin;return 0>a&&(a+=d),0>b&&(b+=d),e||(b+=1),a>d?nil:(b-=a,0>b&&(b=0),c.substr(a,b))}return 0>a&&(a+=c.length),null==b?a>=c.length||0>a?nil:c.substr(a,1):a>c.length||0>a?nil:c.substr(a,b)},def.$capitalize=function(){var a=this;return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()},def.$casecmp=function(a){var b=this;return a=$scope.Opal.$coerce_to(a,$scope.String,"to_str").$to_s(),b.toLowerCase()["$<=>"](a.toLowerCase())},def.$center=function(a,b){var c,d=this;if(null==b&&(b=" "),a=$scope.Opal.$coerce_to(a,$scope.Integer,"to_int"),b=$scope.Opal.$coerce_to(b,$scope.String,"to_str").$to_s(),(c=b["$empty?"]())===nil||c._isBoolean&&1!=c||d.$raise($scope.ArgumentError,"zero width padding"),(c=a<=d.length)!==nil&&(!c._isBoolean||1==c))return d;var e=d.$ljust(a["$+"](d.length)["$/"](2).$ceil(),b),f=d.$rjust(a["$+"](d.length)["$/"](2).$floor(),b);return f+e.slice(d.length)},def.$chars=TMP_1=function(){var a,b,c=this,d=TMP_1._p,e=d||nil;return TMP_1._p=null,e===!1||e===nil?c.$each_char().$to_a():(a=(b=c).$each_char,a._p=e.$to_proc(),a).call(b)},def.$chomp=function(a){var b,c=this;if(null==$gvars["/"]&&($gvars["/"]=nil),null==a&&(a=$gvars["/"]),(b=a===nil||0===c.length)!==nil&&(!b._isBoolean||1==b))return c;if(a=$scope.Opal["$coerce_to!"](a,$scope.String,"to_str").$to_s(),"\n"===a)return c.replace(/\r?\n?$/,"");if(""===a)return c.replace(/(\r?\n)+$/,"");if(c.length>a.length){var d=c.substr(c.length-a.length,a.length);if(d===a)return c.substr(0,c.length-a.length)}return c},def.$chop=function(){var a=this,b=a.length;return 1>=b?"":"\n"===a.charAt(b-1)&&"\r"===a.charAt(b-2)?a.substr(0,b-2):a.substr(0,b-1)},def.$chr=function(){var a=this;return a.charAt(0)},def.$clone=function(){var a=this,b=nil;return b=a.slice(),b.$initialize_clone(a),b},def.$dup=function(){var a=this,b=nil;return b=a.slice(),b.$initialize_dup(a),b},def.$count=function(a){var b=this;return(b.length-b.replace(new RegExp(a,"g"),"").length)/a.length},$opal.defn(self,"$dup",def.$clone),def.$downcase=function(){var a=this;return a.toLowerCase()},def.$each_char=TMP_2=function(){var a,b=this,c=TMP_2._p,d=c||nil;if(TMP_2._p=null,d===nil)return b.$enum_for("each_char");for(var e=0,f=b.length;f>e;e++)(a=$opal.$yield1(d,b.charAt(e)))===$breaker?$breaker.$v:a;return b},def.$each_line=TMP_3=function(a){var b,c=this,d=TMP_3._p,e=d||nil;if(null==$gvars["/"]&&($gvars["/"]=nil),null==a&&(a=$gvars["/"]),TMP_3._p=null,e===nil)return c.$split(a);for(var f=c.$chomp(),g=c.length!=f.length,h=f.split(a),i=0,j=h.length;j>i;i++)j-1>i||g?(b=$opal.$yield1(e,h[i]+a))===$breaker?$breaker.$v:b:(b=$opal.$yield1(e,h[i]))===$breaker?$breaker.$v:b;return c},def["$empty?"]=function(){var a=this;return 0===a.length},def["$end_with?"]=function(a){var b=this;a=$slice.call(arguments,0);for(var c=0,d=a.length;d>c;c++){var e=$scope.Opal.$coerce_to(a[c],$scope.String,"to_str").$to_s();if(b.length>=e.length&&b.substr(b.length-e.length,e.length)==e)return!0}return!1},$opal.defn(self,"$eql?",def["$=="]),$opal.defn(self,"$equal?",def["$==="]),def.$gsub=TMP_4=function(a,b){var c,d,e=this,f=TMP_4._p,g=f||nil;TMP_4._p=null,(c=(d=$scope.String["$==="](a))!==!1&&d!==nil?d:a["$respond_to?"]("to_str"))===nil||c._isBoolean&&1!=c||(a=new RegExp(""+$scope.Regexp.$escape(a.$to_str()))),((c=$scope.Regexp["$==="](a))===nil||c._isBoolean&&1!=c)&&e.$raise($scope.TypeError,"wrong argument type "+a.$class()+" (expected Regexp)");var a=a.toString(),h=a.substr(a.lastIndexOf("/")+1)+"g",i=a.substr(1,a.lastIndexOf("/")-1);return e.$sub._p=g,e.$sub(new RegExp(i,h),b)},def.$hash=function(){var a=this;return a.toString()},def.$hex=function(){var a=this;return a.$to_i(16)},def["$include?"]=function(a){var b,c=this;return a._isString?-1!==c.indexOf(a):(((b=a["$respond_to?"]("to_str"))===nil||b._isBoolean&&1!=b)&&c.$raise($scope.TypeError,"no implicit conversion of "+a.$class().$name()+" into String"),-1!==c.indexOf(a.$to_str()))},def.$index=function(a,b){var c,d=this,e=nil;if(null==b&&(b=nil),(c=$scope.String["$==="](a))===nil||c._isBoolean&&1!=c?(c=a["$respond_to?"]("to_str"))===nil||c._isBoolean&&1!=c?(c=$scope.Regexp["$==="](a)["$!"]())===nil||c._isBoolean&&1!=c||d.$raise($scope.TypeError,"type mismatch: "+a.$class()+" given"):a=a.$to_str().$to_s():a=a.$to_s(),e=-1,b!==!1&&b!==nil){b=$scope.Opal.$coerce_to(b,$scope.Integer,"to_int");var f=d.length;if(0>b&&(b+=f),b>f)return nil;e=(c=$scope.Regexp["$==="](a))===nil||c._isBoolean&&1!=c?d.substr(b).indexOf(a):(c=a["$=~"](d.substr(b)))!==!1&&c!==nil?c:-1,-1!==e&&(e+=b)}else e=(c=$scope.Regexp["$==="](a))===nil||c._isBoolean&&1!=c?d.indexOf(a):(c=a["$=~"](d))!==!1&&c!==nil?c:-1;return(c=-1===e)===nil||c._isBoolean&&1!=c?e:nil},def.$inspect=function(){var a=this,b=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,c={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};return b.lastIndex=0,b.test(a)?'"'+a.replace(b,function(a){var b=c[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'},def.$intern=function(){var a=this;return a},def.$lines=function(a){var b=this;return null==$gvars["/"]&&($gvars["/"]=nil),null==a&&(a=$gvars["/"]),b.$each_line(a).$to_a()},def.$length=function(){var a=this;return a.length},def.$ljust=function(a,b){var c,d=this;if(null==b&&(b=" "),a=$scope.Opal.$coerce_to(a,$scope.Integer,"to_int"),b=$scope.Opal.$coerce_to(b,$scope.String,"to_str").$to_s(),(c=b["$empty?"]())===nil||c._isBoolean&&1!=c||d.$raise($scope.ArgumentError,"zero width padding"),(c=a<=d.length)!==nil&&(!c._isBoolean||1==c))return d;var e=-1,f="";for(a-=d.length;++e<a;)f+=b;return d+f.slice(0,a)},def.$lstrip=function(){var a=this;return a.replace(/^\s*/,"")},def.$match=TMP_5=function(a,b){var c,d,e=this,f=TMP_5._p,g=f||nil;return TMP_5._p=null,(c=(d=$scope.String["$==="](a))!==!1&&d!==nil?d:a["$respond_to?"]("to_str"))===nil||c._isBoolean&&1!=c||(a=new RegExp(""+$scope.Regexp.$escape(a.$to_str()))),((c=$scope.Regexp["$==="](a))===nil||c._isBoolean&&1!=c)&&e.$raise($scope.TypeError,"wrong argument type "+a.$class()+" (expected Regexp)"),(c=(d=a).$match,c._p=g.$to_proc(),c).call(d,e,b)},def.$next=function(){var a=this;if(0===a.length)return"";var b=a.substr(0,a.length-1),c=String.fromCharCode(a.charCodeAt(a.length-1)+1);return b+c},def.$ord=function(){var a=this;return a.charCodeAt(0)},def.$partition=function(a){var b=this,c=b.split(a),d=c[0].length===b.length?"":a;return[c[0],d,c.slice(1).join(a.toString())]},def.$reverse=function(){var a=this;return a.split("").reverse().join("")},def.$rindex=function(a,b){var c=this,d=null==a?Opal.NilClass:a.constructor;if(d!=String&&d!=RegExp){var e="type mismatch: "+d+" given";c.$raise($scope.TypeError.$new(e))}if(0==c.length)return 0==a.length?0:nil;var f=-1;return null!=b?(0>b&&(b=c.length+b),d==String?f=c.lastIndexOf(a,b):(f=c.substr(0,b+1).$reverse().search(a),-1!==f&&(f=b-f))):d==String?f=c.lastIndexOf(a):(f=c.$reverse().search(a),-1!==f&&(f=c.length-1-f)),-1===f?nil:f},def.$rjust=function(a,b){var c,d=this;if(null==b&&(b=" "),a=$scope.Opal.$coerce_to(a,$scope.Integer,"to_int"),b=$scope.Opal.$coerce_to(b,$scope.String,"to_str").$to_s(),(c=b["$empty?"]())===nil||c._isBoolean&&1!=c||d.$raise($scope.ArgumentError,"zero width padding"),(c=a<=d.length)!==nil&&(!c._isBoolean||1==c))return d;var e=Math.floor(a-d.length),f=Math.floor(e/b.length),g=Array(f+1).join(b),h=e-g.length;return g+b.slice(0,h)+d},def.$rstrip=function(){var a=this;return a.replace(/\s*$/,"")},def.$scan=TMP_6=function(a){var b=this,c=TMP_6._p,d=c||nil;TMP_6._p=null,a.global?a.lastIndex=0:a=new RegExp(a.source,"g"+(a.multiline?"m":"")+(a.ignoreCase?"i":""));for(var e,f=[];null!=(e=a.exec(b));){{$scope.MatchData.$new(a,e)}d===nil?f.push(1==e.length?e[0]:e.slice(1)):1==e.length?d(e[0]):d.apply(b,e.slice(1))}return d!==nil?b:f},$opal.defn(self,"$size",def.$length),$opal.defn(self,"$slice",def["$[]"]),def.$split=function(pattern,limit){var self=this,$a;null==$gvars[";"]&&($gvars[";"]=nil),null==pattern&&(pattern=($a=$gvars[";"])!==!1&&$a!==nil?$a:" "),(pattern===nil||void 0===pattern)&&(pattern=$gvars[";"]);var result=[];if(void 0!==limit&&(limit=$scope.Opal["$coerce_to!"](limit,$scope.Integer,"to_int")),0===self.length)return[];if(1===limit)return[self];if(pattern&&pattern._isRegexp){var pattern_str=pattern.toString(),blank_pattern="/^/"==pattern_str.substr(0,3)||"/(?:)/"==pattern_str.substr(0,6);if(void 0===limit||0===limit)result=self.split(blank_pattern?/(?:)/:pattern);else{pattern.global||(pattern=eval(pattern_str+"g"));var match_data,prev_index=0;for(pattern.lastIndex=0;null!==(match_data=pattern.exec(self));){var segment=self.slice(prev_index,match_data.index);if(result.push(segment),prev_index=pattern.lastIndex,0===match_data[0].length){blank_pattern&&(pattern=/(?:)/),result=self.split(pattern),void 0!==limit&&0>limit&&blank_pattern&&result.push(""),prev_index=void 0;break}if(void 0!==limit&&limit>1&&result.length+1==limit)break}void 0!==prev_index&&result.push(self.slice(prev_index,self.length))}}else{var splitted=0,start=0,lim=0;pattern=pattern===nil||void 0===pattern?" ":$scope.Opal.$try_convert(pattern,$scope.String,"to_str").$to_s();for(var string=" "==pattern?self.replace(/[\r\n\t\v]\s+/g," "):self,cursor=-1;(cursor=string.indexOf(pattern,start))>-1&&cursor<string.length&&splitted+1!==limit;)" "!=pattern||cursor!=start?(result.push(string.substr(start,pattern.length?cursor-start:1)),splitted++,start=cursor+(pattern.length?pattern.length:1)):start=cursor+1;string.length>0&&(0>limit||string.length>start)&&result.push(string.length==start?"":string.substr(start,string.length))}if(void 0===limit||0===limit)for(;""===result[result.length-1];)result.length=result.length-1;if(limit>0){var tail=result.slice(limit-1).join("");result.splice(limit-1,result.length-1,tail)}return result},def.$squeeze=function(a){var b=this;if(a=$slice.call(arguments,0),0===a.length)return b.replace(/(.)\1+/g,"$1");for(var c=$scope.Opal.$coerce_to(a[0],$scope.String,"to_str").$chars(),d=1,e=a.length;e>d;d++)c=c["$&"]($scope.Opal.$coerce_to(a[d],$scope.String,"to_str").$chars());return 0===c.length?b:b.replace(new RegExp("(["+$scope.Regexp.$escape(c.$join())+"])\\1+","g"),"$1")},def["$start_with?"]=function(a){var b=this;a=$slice.call(arguments,0);for(var c=0,d=a.length;d>c;c++){var e=$scope.Opal.$coerce_to(a[c],$scope.String,"to_str").$to_s();if(0===b.indexOf(e))return!0}return!1},def.$strip=function(){var a=this;return a.replace(/^\s*/,"").replace(/\s*$/,"")},def.$sub=TMP_7=function(a,b){var c=this,d=TMP_7._p,e=d||nil;return TMP_7._p=null,"string"==typeof b?(b=b.replace(/\\([1-9])/g,"$$$1"),c.replace(a,b)):e!==nil?c.replace(a,function(){for(var a=[],b=0,c=arguments.length;c>b;b++){var d=arguments[b];a.push(void 0==d?nil:d)}a.pop(),a.pop(),a.length;return $gvars["&"]=a[0],$gvars["~"]=a,e(a[0])}):void 0!==b?b["$is_a?"]($scope.Hash)?c.replace(a,function(){var a=b["$[]"](c.$str());return null==a?nil:c.$value().$to_s()}):(b=$scope.String.$try_convert(b),null==b&&c.$raise($scope.TypeError,"can't convert "+b.$class()+" into String"),c.replace(a,b)):(b=b.toString().replace(/\\([1-9])/g,"$$$1"),c.replace(a,b))},$opal.defn(self,"$succ",def.$next),def.$sum=function(a){var b=this;null==a&&(a=16);for(var c=0,d=0,e=b.length;e>d;d++)c+=b.charCodeAt(d)%((1<<a)-1);return c},def.$swapcase=function(){var a=this,b=a.replace(/([a-z]+)|([A-Z]+)/g,function(a,b){return b?a.toUpperCase():a.toLowerCase()});return a.constructor===String?b:a.$class().$new(b)},def.$to_f=function(){var a=this;if("_"===a.charAt(0))return 0;var b=parseFloat(a.replace(/_/g,""));return isNaN(b)||1/0==b||b==-1/0?0:b},def.$to_i=function(a){var b=this;null==a&&(a=10);var c=parseInt(b,a);return isNaN(c)?0:c},def.$to_proc=function(){var a,b,c,d=this;return(a=(b=d).$proc,a._p=(c=function(a,b){var d,e=c._s||this;return null==a&&(a=nil),b=$slice.call(arguments,1),(d=a).$send.apply(d,[e].concat(b))},c._s=d,c),a).call(b)},def.$to_s=function(){var a=this;return a.toString()},$opal.defn(self,"$to_str",def.$to_s),$opal.defn(self,"$to_sym",def.$intern),def.$tr=function(a,b){var c=this;if(0==a.length||a===b)return c;var d={},e=a.split(""),f=e.length,g=b.split(""),h=g.length,i=!1,j=null;"^"===e[0]&&(i=!0,e.shift(),j=g[h-1],f-=1);for(var k=[],l=null,m=!1,n=0;f>n;n++){var o=e[n];if(null==l)l=o,k.push(o);else if("-"===o)"-"===l?(k.push("-"),k.push("-")):n==f-1?k.push("-"):m=!0;else if(m){for(var p=l.charCodeAt(0)+1,q=o.charCodeAt(0),r=p;q>r;r++)k.push(String.fromCharCode(r));k.push(o),m=null,l=null}else k.push(o)}if(e=k,f=e.length,i)for(var n=0;f>n;n++)d[e[n]]=!0;else{if(h>0){for(var s=[],t=null,m=!1,n=0;h>n;n++){var o=g[n];if(null==l)l=o,s.push(o);else if("-"===o)"-"===t?(s.push("-"),s.push("-")):n==h-1?s.push("-"):m=!0;else if(m){for(var p=l.charCodeAt(0)+1,q=o.charCodeAt(0),r=p;q>r;r++)s.push(String.fromCharCode(r));s.push(o),m=null,l=null}else s.push(o)}g=s,h=g.length}var u=f-h;if(u>0)for(var v=h>0?g[h-1]:"",n=0;u>n;n++)g.push(v);for(var n=0;f>n;n++)d[e[n]]=g[n]}for(var w="",n=0,x=c.length;x>n;n++){var o=c.charAt(n),y=d[o];w+=i?null==y?j:o:null!=y?y:o}return w},def.$tr_s=function(a,b){var c=this;if(0==a.length)return c;var d={},e=a.split(""),f=e.length,g=b.split(""),h=g.length,i=!1,j=null;"^"===e[0]&&(i=!0,e.shift(),j=g[h-1],f-=1);for(var k=[],l=null,m=!1,n=0;f>n;n++){var o=e[n];if(null==l)l=o,k.push(o);else if("-"===o)"-"===l?(k.push("-"),k.push("-")):n==f-1?k.push("-"):m=!0;else if(m){for(var p=l.charCodeAt(0)+1,q=o.charCodeAt(0),r=p;q>r;r++)k.push(String.fromCharCode(r));k.push(o),m=null,l=null}else k.push(o)}if(e=k,f=e.length,i)for(var n=0;f>n;n++)d[e[n]]=!0;else{if(h>0){for(var s=[],t=null,m=!1,n=0;h>n;n++){var o=g[n];if(null==l)l=o,s.push(o);else if("-"===o)"-"===t?(s.push("-"),s.push("-")):n==h-1?s.push("-"):m=!0;else if(m){for(var p=l.charCodeAt(0)+1,q=o.charCodeAt(0),r=p;q>r;r++)s.push(String.fromCharCode(r));s.push(o),m=null,l=null}else s.push(o)}g=s,h=g.length}var u=f-h;if(u>0)for(var v=h>0?g[h-1]:"",n=0;u>n;n++)g.push(v);for(var n=0;f>n;n++)d[e[n]]=g[n]}for(var w="",x=null,n=0,y=c.length;y>n;n++){var o=c.charAt(n),z=d[o];i?null==z?null==x&&(w+=j,x=!0):(w+=o,x=null):null!=z?(null==x||x!==z)&&(w+=z,x=z):(w+=o,x=null)}return w},def.$upcase=function(){var a=this;return a.toUpperCase()},def.$freeze=function(){var a=this;return a},def["$frozen?"]=function(){return!0},nil&&"frozen?"}(self,null),$opal.cdecl($scope,"Symbol",$scope.String)}(Opal),function(a){var b,c,d,e,f,g,h,i=a.top,j=a,k=a.nil,l=a.breaker,m=(a.slice,a.klass),n=a.hash2;return function(b,c){function d(){}var e,f=d=m(b,c,"Encoding",d),g=f._proto,h=f._scope;return g.ascii=g.dummy=g.name=k,a.defs(f,"$register",e=function(a,b){var c,d,f,g,i=this,j=e._p,l=j||k,m=k,o=k;return null==b&&(b=n([],{})),e._p=null,m=[a]["$+"]((c=b["$[]"]("aliases"))!==!1&&c!==k?c:[]),o=(c=(d=h.Class).$new,c._p=l.$to_proc(),c).call(d,i).$new(a,m,(c=b["$[]"]("ascii"))!==!1&&c!==k?c:!1,(c=b["$[]"]("dummy"))!==!1&&c!==k?c:!1),(c=(f=m).$each,c._p=(g=function(a){var b=g._s||this;return null==a&&(a=k),b.$const_set(a.$sub("-","_"),o)},g._s=i,g),c).call(f)}),a.defs(f,"$find",function(b){try{var c,d,e,f=this;return(c=f["$==="](b))===k||c._isBoolean&&1!=c?((c=(d=f.$constants()).$each,c._p=(e=function(c){var d,f,g=e._s||this,h=k;return null==c&&(c=k),h=g.$const_get(c),(d=(f=h.$name()["$=="](b))!==!1&&f!==k?f:h.$names()["$include?"](b))===k||d._isBoolean&&1!=d?k:void a.$return(h)},e._s=f,e),c).call(d),f.$raise(h.ArgumentError,"unknown encoding name - "+b)):b}catch(g){if(g===a.returner)return g.$v;throw g}}),function(a){a._scope,a._proto;return a.$attr_accessor("default_external")}(f.$singleton_class()),f.$attr_reader("name","names"),g.$initialize=function(a,b,c,d){var e=this;return e.name=a,e.names=b,e.ascii=c,e.dummy=d},g["$ascii_compatible?"]=function(){var a=this;return a.ascii},g["$dummy?"]=function(){var a=this;return a.dummy},g.$to_s=function(){var a=this;return a.name},g.$inspect=function(){var a,b=this;return"#<Encoding:"+b.name+function(){return(a=b.dummy)===k||a._isBoolean&&1!=a?k:" (dummy)"}()+">"},g.$each_byte=function(){var a=this;return a.$raise(h.NotImplementedError)},g.$getbyte=function(){var a=this;return a.$raise(h.NotImplementedError)},g.$bytesize=function(){var a=this;return a.$raise(h.NotImplementedError)},k&&"bytesize"}(i,null),(b=(c=j.Encoding).$register,b._p=(d=function(){var b,c=d._s||this;return a.defn(c,"$each_byte",b=function(c){var d,e=b._p,f=e||k;b._p=null;for(var g=0,h=c.length;h>g;g++){var i=c.charCodeAt(g);if(127>=i)(d=a.$yield1(f,i))===l?l.$v:d;else for(var j=encodeURIComponent(c.charAt(g)).substr(1).split("%"),m=0,n=j.length;n>m;m++)(d=a.$yield1(f,parseInt(j[m],16)))===l?l.$v:d}}),a.defn(c,"$bytesize",function(){var a=this;return a.$bytes().$length()}),k&&"bytesize"},d._s=i,d),b).call(c,"UTF-8",n(["aliases","ascii"],{aliases:["CP65001"],ascii:!0})),(b=(e=j.Encoding).$register,b._p=(f=function(){var b,c=f._s||this;return a.defn(c,"$each_byte",b=function(c){var d,e=b._p,f=e||k;b._p=null;for(var g=0,h=c.length;h>g;g++){var i=c.charCodeAt(g);(d=a.$yield1(f,255&i))===l?l.$v:d,(d=a.$yield1(f,i>>8))===l?l.$v:d}}),a.defn(c,"$bytesize",function(){var a=this;return a.$bytes().$length()}),k&&"bytesize"},f._s=i,f),b).call(e,"UTF-16LE"),(b=(g=j.Encoding).$register,b._p=(h=function(){var b,c=h._s||this;return a.defn(c,"$each_byte",b=function(c){var d,e=b._p,f=e||k;b._p=null;for(var g=0,h=c.length;h>g;g++)(d=a.$yield1(f,255&c.charCodeAt(g)))===l?l.$v:d}),a.defn(c,"$bytesize",function(){var a=this;return a.$bytes().$length()}),k&&"bytesize"},h._s=i,h),b).call(g,"ASCII-8BIT",n(["aliases","ascii"],{aliases:["BINARY"],ascii:!0})),function(a,b){function c(){}var d,e=c=m(a,b,"String",c),f=e._proto,g=e._scope;return f.encoding=k,f.encoding=g.Encoding._scope.UTF_16LE,f.$bytes=function(){var a=this;return a.$each_byte().$to_a()},f.$bytesize=function(){var a=this;return a.encoding.$bytesize(a)},f.$each_byte=d=function(){var a,b,c=this,e=d._p,f=e||k;return d._p=null,f===k?c.$enum_for("each_byte"):((a=(b=c.encoding).$each_byte,a._p=f.$to_proc(),a).call(b,c),c)},f.$encoding=function(){var a=this;return a.encoding},f.$force_encoding=function(a){var b=this;if(a=g.Encoding.$find(a),a["$=="](b.encoding))return b;var c=new String(b);return c.encoding=a,c},f.$getbyte=function(a){var b=this;return b.encoding.$getbyte(b,a)},k&&"getbyte"}(i,null)}(Opal),function(a){var b=a.top,c=a.nil,d=(a.breaker,a.slice,a.klass);return function(b,e){function f(){}{var g=f=d(b,e,"StringScanner",f),h=g._proto;g._scope}return h.pos=h.string=h.working=h.prev_pos=h.matched=h.match=c,g.$attr_reader("pos"),g.$attr_reader("matched"),h.$initialize=function(a){var b=this;return b.string=a,b.pos=0,b.matched=c,b.working=a,b.match=[]},h["$bol?"]=function(){var a=this;return 0===a.pos||"\n"===a.string.charAt(a.pos-1)},h.$scan=function(a){var b=this,a=new RegExp("^"+a.toString().substring(1,a.toString().length-1)),d=a.exec(b.working);return null==d?b.matched=c:"object"==typeof d?(b.prev_pos=b.pos,b.pos+=d[0].length,b.working=b.working.substring(d[0].length),b.matched=d[0],b.match=d,d[0]):"string"==typeof d?(b.pos+=d.length,b.working=b.working.substring(d.length),d):c},h["$[]"]=function(a){var b=this,d=b.match;return 0>a&&(a+=d.length),0>a||a>=d.length?c:d[a]},h.$check=function(a){var b=this,d=new RegExp("^"+a.toString().substring(1,a.toString().length-1)),e=d.exec(b.working);return b.matched=null==e?c:e[0]},h.$peek=function(a){var b=this;return b.working.substring(0,a)},h["$eos?"]=function(){var a=this;return 0===a.working.length},h.$skip=function(a){var b=this;a=new RegExp("^"+a.source);var d=a.exec(b.working);if(null==d)return b.matched=c;var e=d[0],f=e.length;return b.matched=e,b.prev_pos=b.pos,b.pos+=f,b.working=b.working.substring(f),f},h.$get_byte=function(){var a=this,b=c;return a.pos<a.string.length?(a.prev_pos=a.pos,a.pos+=1,b=a.matched=a.working.substring(0,1),a.working=a.working.substring(1)):a.matched=c,b},a.defn(g,"$getch",h.$get_byte),h["$pos="]=function(a){var b=this;return 0>a&&(a+=b.string.$length()),b.pos=a,b.working=b.string.slice(a)},h.$rest=function(){var a=this;return a.working},h.$terminate=function(){var a=this;return a.match=c,a["$pos="](a.string.$length())},h.$unscan=function(){var a=this;return a.pos=a.prev_pos,a.prev_pos=c,a.match=c,a},c&&"unscan"}(b,null)}(Opal),function(a){var b=a.top,c=a.nil,d=(a.breaker,a.slice,a.module);return function(b){var e=d(b,"Comparable"),f=e._proto,g=e._scope;f["$=="]=function(b){var d,e=this,f=c;try{return(d=e["$equal?"](b))===c||d._isBoolean&&1!=d?(d=f=e["$<=>"](b))===c||d._isBoolean&&1!=d?!1:0==f:!0}catch(h){if(a.$rescue(h,[g.StandardError]))return!1;throw h}},f["$>"]=function(a){var b,d=this,e=c;return((b=e=d["$<=>"](a))===c||b._isBoolean&&1!=b)&&d.$raise(g.ArgumentError,"comparison of "+d.$class()+" with "+a.$class()+" failed"),e>0},f["$>="]=function(a){var b,d=this,e=c;return((b=e=d["$<=>"](a))===c||b._isBoolean&&1!=b)&&d.$raise(g.ArgumentError,"comparison of "+d.$class()+" with "+a.$class()+" failed"),e>=0},f["$<"]=function(a){var b,d=this,e=c;return((b=e=d["$<=>"](a))===c||b._isBoolean&&1!=b)&&d.$raise(g.ArgumentError,"comparison of "+d.$class()+" with "+a.$class()+" failed"),0>e},f["$<="]=function(a){var b,d=this,e=c;return((b=e=d["$<=>"](a))===c||b._isBoolean&&1!=b)&&d.$raise(g.ArgumentError,"comparison of "+d.$class()+" with "+a.$class()+" failed"),0>=e},a.donate(e,["$==","$>","$>=","$<","$<="])}(b)}(Opal),function(a){var b=a.top,c=a.nil,d=(a.breaker,a.slice,a.klass);return function(b,e){function f(){}var g=f=d(b,e,"Dir",f),h=(g._proto,g._scope);return a.defs(g,"$pwd",function(){var a;return(a=h.ENV["$[]"]("PWD"))!==!1&&a!==c?a:"."}),a.defs(g,"$getwd",function(){var a;return(a=h.ENV["$[]"]("PWD"))!==!1&&a!==c?a:"."}),a.defs(g,"$home",function(){return h.ENV["$[]"]("HOME")}),c&&"home"}(b,null)}(Opal),function(a){var b=a.top,c=a,d=a.nil,e=(a.breaker,a.slice,a.klass);return function(a,b){function c(){}{var f=c=e(a,b,"SecurityError",c);f._proto,f._scope}return d}(b,c.Exception)}(Opal),function(a){var b=a.top,c=a.nil,d=a.breaker,e=a.slice,f=a.klass,g=a.gvars,h=a.range;return function(b,g){function h(){}var i,j=h=f(b,g,"Kernel",h),k=j._proto,l=j._scope;return k.$open=i=function(b,f){var g,h,j=i._p,k=j||c,m=c;return f=e.call(arguments,1),i._p=null,m=(g=l.File).$new.apply(g,[b].concat(f)),k!==c?(h=a.$yield1(k,m),h===d?h:h):m},c&&"open"}(b,null),function(b,i){function j(){}var k,l=j=f(b,i,"File",j),m=l._proto,n=l._scope;return m.eof=m.path=c,a.cdecl(n,"SEPARATOR","/"),a.cdecl(n,"ALT_SEPARATOR",c),l.$attr_reader("eof"),l.$attr_reader("lineno"),l.$attr_reader("path"),m.$initialize=function(a,b){var d=this;return null==b&&(b="r"),d.path=a,d.contents=c,d.eof=!1,d.lineno=0},m.$read=function(){var a,b=this,d=c;return(a=b.eof)===c||a._isBoolean&&1!=a?(d=n.File.$read(b.path),b.eof=!0,b.lineno=d.$size(),d):""},m.$each_line=k=function(b){var e,f=this,h=k._p,i=h||c,j=c;if(null==g["/"]&&(g["/"]=c),null==b&&(b=g["/"]),k._p=null,(e=f.eof)!==c&&(!e._isBoolean||1==e))return function(){return i!==c?f:[].$to_enum()}();if(i!==c){j=n.File.$read(f.path),f.eof=!1,f.lineno=0;for(var l=j.$chomp(),m=j.length!=l.length,o=l.split(b),p=0,q=o.length;q>p;p++)f.lineno+=1,q-1>p||m?(e=a.$yield1(i,o[p]+b))===d?d.$v:e:(e=a.$yield1(i,o[p]))===d?d.$v:e;return f.eof=!0,f}return f.$read().$each_line()},a.defs(l,"$expand_path",function(a){return a}),a.defs(l,"$join",function(a){return a=e.call(arguments,0),a["$*"](n.SEPARATOR)}),a.defs(l,"$basename",function(a){var b,d=c;return(b=d=a.$rindex(n.SEPARATOR))===c||b._isBoolean&&1!=b?a:a["$[]"](h(d["$+"](1),-1,!1))}),a.defs(l,"$dirname",function(a){var b,d=c;return(b=d=a.$rindex(n.SEPARATOR))===c||b._isBoolean&&1!=b?".":a["$[]"](h(0,d["$-"](1),!1))}),a.defs(l,"$extname",function(a){var b,d=c;return(b=a["$nil_or_empty?"]())===c||b._isBoolean&&1!=b?(d=a["$[]"](h(1,-1,!1)).$rindex("."),(b=d["$nil?"]())===c||b._isBoolean&&1!=b?a["$[]"](h(d["$+"](1),-1,!1)):""):""}),a.defs(l,"$file?",function(){return!0}),a.defs(l,"$read",function(a){var b=c;return function(){if(b=n.JAVASCRIPT_PLATFORM,"node"["$==="](b))return require("fs").readFileSync(a,"utf8");if("java-nashorn"["$==="](b)){var c=Java.type("java.nio.file.Paths"),d=Java.type("java.nio.file.Files"),e=d.readAllLines(c.get(a),Java.type("java.nio.charset.StandardCharsets").UTF_8),f=[];return e.forEach(function(a){f.push(a)}),f.join("\n")}if("browser"["$==="](b)){var f="",g=-1;try{var h=new XMLHttpRequest;h.open("GET",a,!1),h.addEventListener("load",function(){g=this.status,(0==g||200==g)&&(f=this.responseText)}),h.overrideMimeType("text/plain"),h.send()}catch(i){g=0}if(404==g||0==g&&""==f)throw n.IOError.$new("No such file or directory: "+a);return f}return"standalone"["$==="](b)?read(a):""}()}),c&&"read"}(b,null)}(Opal),function(a){{var b,c=(a.top,a);a.nil,a.breaker,a.slice}return b="undefined"!=typeof module&&module.exports?"node":"undefined"!=typeof XMLHttpRequest?"browser":"undefined"!=typeof Java&&Java.type?"java-nashorn":"undefined"!=typeof java?"java-rhino":"standalone",a.cdecl(c,"JAVASCRIPT_PLATFORM",b),!0}(Opal),function(a){var b=a.top,c=(a.nil,a.breaker,a.slice,a.module);return function(b){var d=c(b,"Asciidoctor"),e=(d._proto,d._scope);a.cdecl(e,"VERSION","1.5.2")}(b)}(Opal),function(a){var b=a.top,c=a.nil,d=(a.breaker,a.slice,a.module),e=a.klass,f=a.hash2,g=a.gvars;return function(b){{var h=d(b,"Asciidoctor");h._proto,h._scope}!function(b,d){function h(){}{var i=h=e(b,d,"Timings",h),j=i._proto;i._scope}return j.timers=j.log=c,j.$initialize=function(){var a=this;return a.log=f([],{}),a.timers=f([],{})},j.$start=function(b){var c,d=this;return d.timers["$[]="](b,(null==(c=a.Object._scope.Time)?a.cm("Time"):c).$now())},j.$record=function(b){var c,d=this;return d.log["$[]="](b,(null==(c=a.Object._scope.Time)?a.cm("Time"):c).$now()["$-"](d.timers.$delete(b)))},j.$read_parse=function(){var a,b=this,d=c;return(d=((a=b.log["$[]"]("read"))!==!1&&a!==c?a:0)["$+"]((a=b.log["$[]"]("parse"))!==!1&&a!==c?a:0))["$>"](0)?d:c},j.$convert=function(){var a,b=this;return(a=b.log["$[]"]("convert"))!==!1&&a!==c?a:0},j.$read_parse_convert=function(){var a,b=this,d=c;return(d=((a=b.log["$[]"]("read"))!==!1&&a!==c?a:0)["$+"]((a=b.log["$[]"]("parse"))!==!1&&a!==c?a:0)["$+"]((a=b.log["$[]"]("convert"))!==!1&&a!==c?a:0))["$>"](0)?d:c},j.$total=function(){var a,b=this,d=c;return(d=((a=b.log["$[]"]("read"))!==!1&&a!==c?a:0)["$+"]((a=b.log["$[]"]("parse"))!==!1&&a!==c?a:0)["$+"]((a=b.log["$[]"]("convert"))!==!1&&a!==c?a:0)["$+"]((a=b.log["$[]"]("write"))!==!1&&a!==c?a:0))["$>"](0)?d:c },j.$print_report=function(a,b){var d=this;return null==g.stdout&&(g.stdout=c),null==a&&(a=g.stdout),null==b&&(b=c),b!==!1&&b!==c&&a.$puts("Input file: "+b),a.$puts(" Time to read and parse source: "+"%05.5f"["$%"](d.$read_parse().$to_i())),a.$puts(" Time to convert document: "+"%05.5f"["$%"](d.$convert().$to_i())),a.$puts(" Total time (read, parse and convert): "+"%05.5f"["$%"](d.$read_parse_convert().$to_i()))},c&&"print_report"}(h,null)}(b)}(Opal),function(a){var b=a.top,c=a.nil,d=(a.breaker,a.slice,a.klass);return function(b,e){function f(){}{var g,h=f=d(b,e,"NilClass",f),i=h._proto;h._scope}return(g=h["$respond_to?"]("nil_or_empty?"))===c||g._isBoolean&&1!=g?a.defn(h,"$nil_or_empty?",i["$nil?"]):c}(b,null),function(b,e){function f(){}{var g,h=f=d(b,e,"String",f),i=h._proto;h._scope}return(g=h["$respond_to?"]("nil_or_empty?"))===c||g._isBoolean&&1!=g?a.defn(h,"$nil_or_empty?",i["$empty?"]):c}(b,null),function(b,e){function f(){}{var g,h=f=d(b,e,"Array",f),i=h._proto;h._scope}return(g=h["$respond_to?"]("nil_or_empty?"))===c||g._isBoolean&&1!=g?a.defn(h,"$nil_or_empty?",i["$empty?"]):c}(b,null),function(b,e){function f(){}{var g,h=f=d(b,e,"Hash",f),i=h._proto;h._scope}return(g=h["$respond_to?"]("nil_or_empty?"))===c||g._isBoolean&&1!=g?a.defn(h,"$nil_or_empty?",i["$empty?"]):c}(b,null),function(b,e){function f(){}{var g,h=f=d(b,e,"Numeric",f),i=h._proto;h._scope}return(g=h["$respond_to?"]("nil_or_empty?"))===c||g._isBoolean&&1!=g?a.defn(h,"$nil_or_empty?",i["$nil?"]):c}(b,null)}(Opal),function(a){{var b=(a.top,a),c=a.nil;a.breaker,a.slice}return b.RUBY_ENGINE["$=="]("opal")?c:void 0}(Opal),function(a){var b=a.top,c=a.nil,d=(a.breaker,a.slice,a.module),e=a.range,f=a.gvars;return function(b){{var g=d(b,"Asciidoctor");g._proto,g._scope}!function(b){var g=d(b,"Helpers"),h=(g._proto,g._scope);a.defs(g,"$require_library",function(b,d){var e,f=this,g=c;null==d&&(d=!0);try{return!0}catch(h){if(a.$rescue(h,[null==(e=a.Object._scope.LoadError)?a.cm("LoadError"):e]))return g=h,f.$fail(d!==!1&&d!==c?"asciidoctor: FAILED: required gem '"+function(){return d["$=="](!0)?b:d}()+"' is not installed. Processing aborted.":"asciidoctor: FAILED: "+g.$message().$chomp(".")+". Processing aborted.");throw h}}),a.defs(g,"$normalize_lines",function(b){var c,d=this;return b.$class()["$=="](null==(c=a.Object._scope.String)?a.cm("String"):c)?d.$normalize_lines_from_string(b):d.$normalize_lines_array(b)}),a.defs(g,"$normalize_lines_array",function(b){var d,f,g,i,j,k,l,m,n,o=this,p=c,q=c,r=c,s=c;return(d=b["$empty?"]())===c||d._isBoolean&&1!=d?(p=(q=b["$[]"](0))["$[]"](e(0,2,!1)).$bytes().$to_a(),(d=h.COERCE_ENCODING)===c||d._isBoolean&&1!=d?(p["$=="](h.BOM_BYTES_UTF_8)&&b["$[]="](0,q["$[]"](e(3,-1,!1))),(d=(m=b).$map,d._p=(n=function(a){n._s||this;return null==a&&(a=c),a.$rstrip()},n._s=o,n),d).call(m)):(r=(null==(d=a.Object._scope.Encoding)?a.cm("Encoding"):d)._scope.UTF_8,(s=p["$[]"](e(0,1,!1)))["$=="](h.BOM_BYTES_UTF_16LE)?(d=(f=b.$join().$force_encoding((null==(i=a.Object._scope.Encoding)?a.cm("Encoding"):i)._scope.UTF_16LE)["$[]"](e(1,-1,!1)).$encode(r).$lines()).$map,d._p=(g=function(a){g._s||this;return null==a&&(a=c),a.$rstrip()},g._s=o,g),d).call(f):s["$=="](h.BOM_BYTES_UTF_16BE)?(b["$[]="](0,q.$force_encoding((null==(d=a.Object._scope.Encoding)?a.cm("Encoding"):d)._scope.UTF_16BE)["$[]"](e(1,-1,!1))),(d=(i=b).$map,d._p=(j=function(b){{var d;j._s||this}return null==b&&(b=c),""+b.$force_encoding((null==(d=a.Object._scope.Encoding)?a.cm("Encoding"):d)._scope.UTF_16BE).$encode(r).$rstrip()},j._s=o,j),d).call(i)):(p["$[]"](e(0,2,!1))["$=="](h.BOM_BYTES_UTF_8)&&b["$[]="](0,q.$force_encoding(r)["$[]"](e(1,-1,!1))),(d=(k=b).$map,d._p=(l=function(a){l._s||this;return null==a&&(a=c),a.$encoding()["$=="](r)?a.$rstrip():a.$force_encoding(r).$rstrip()},l._s=o,l),d).call(k)))):[]}),a.defs(g,"$normalize_lines_from_string",function(b){var d,f,g,i=this,j=c,k=c,l=c;return(d=b["$nil_or_empty?"]())===c||d._isBoolean&&1!=d?((d=h.COERCE_ENCODING)===c||d._isBoolean&&1!=d?b["$[]"](e(0,2,!1)).$bytes().$to_a()["$=="](h.BOM_BYTES_UTF_8)&&(b=b["$[]"](e(3,-1,!1))):(j=(null==(d=a.Object._scope.Encoding)?a.cm("Encoding"):d)._scope.UTF_8,k=b["$[]"](e(0,2,!1)).$bytes().$to_a(),(l=k["$[]"](e(0,1,!1)))["$=="](h.BOM_BYTES_UTF_16LE)?b=b.$force_encoding((null==(d=a.Object._scope.Encoding)?a.cm("Encoding"):d)._scope.UTF_16LE)["$[]"](e(1,-1,!1)).$encode(j):l["$=="](h.BOM_BYTES_UTF_16BE)?b=b.$force_encoding((null==(d=a.Object._scope.Encoding)?a.cm("Encoding"):d)._scope.UTF_16BE)["$[]"](e(1,-1,!1)).$encode(j):k["$[]"](e(0,2,!1))["$=="](h.BOM_BYTES_UTF_8)?b=function(){return b.$encoding()["$=="](j)?b["$[]"](e(1,-1,!1)):b.$force_encoding(j)["$[]"](e(1,-1,!1))}():b.$encoding()["$=="](j)||(b=b.$force_encoding(j))),(d=(f=b.$each_line()).$map,d._p=(g=function(a){g._s||this;return null==a&&(a=c),a.$rstrip()},g._s=i,g),d).call(f)):[]}),a.cdecl(h,"REGEXP_ENCODE_URI_CHARS",/[^\w\-.!~*';:@=+$,()\[\]]/),a.defs(g,"$encode_uri",function(a){var b,d,e,g=this;return(b=(d=a).$gsub,b._p=(e=function(){var a,b,d,g=e._s||this;return null==f["&"]&&(f["&"]=c),(a=(b=f["&"].$each_byte()).$map,a._p=(d=function(a){var b=d._s||this;return null==a&&(a=c),b.$sprintf("%%%02X",a)},d._s=g,d),a).call(b).$join()},e._s=g,e),b).call(d,h.REGEXP_ENCODE_URI_CHARS)}),a.defs(g,"$rootname",function(b){var d,f,g=c;return(d=(g=(null==(f=a.Object._scope.File)?a.cm("File"):f).$extname(b))["$empty?"]())===c||d._isBoolean&&1!=d?b["$[]"](e(0,g.$length()["$-@"](),!0)):b}),a.defs(g,"$mkdir_p",function(b){var d,e,f,g=this,h=c;return(d=(null==(e=a.Object._scope.File)?a.cm("File"):e)["$directory?"](b))===c||d._isBoolean&&1!=d?(h=(null==(d=a.Object._scope.File)?a.cm("File"):d).$dirname(b),e=(null==(f=a.Object._scope.File)?a.cm("File"):f)["$directory?"](h=(null==(f=a.Object._scope.File)?a.cm("File"):f).$dirname(b))["$!"](),(d=e!==!1&&e!==c?h["$=="](".")["$!"]():e)===c||d._isBoolean&&1!=d||g.$mkdir_p(h),(null==(d=a.Object._scope.Dir)?a.cm("Dir"):d).$mkdir(b)):c})}(g)}(b)}(Opal),function(a){var b=a.top,c=a.nil,d=a.breaker,e=a.slice,f=a.module,g=a.hash2,h=a.gvars,i=a.range;return function(b){{var j=f(b,"Asciidoctor");j._proto,j._scope}!function(b){var j=f(b,"Substitutors"),k=j._proto,l=j._scope;a.cdecl(l,"SPECIAL_CHARS",g(["&","<",">"],{"&":"&amp;","<":"&lt;",">":"&gt;"})),a.cdecl(l,"SPECIAL_CHARS_PATTERN",new RegExp("["+l.SPECIAL_CHARS.$keys().$join()+"]")),a.cdecl(l,"SUBS",g(["basic","normal","verbatim","title","header","pass"],{basic:["specialcharacters"],normal:["specialcharacters","quotes","attributes","replacements","macros","post_replacements"],verbatim:["specialcharacters","callouts"],title:["specialcharacters","quotes","replacements","macros","attributes","post_replacements"],header:["specialcharacters","attributes"],pass:[]})),a.cdecl(l,"COMPOSITE_SUBS",g(["none","normal","verbatim","specialchars"],{none:[],normal:l.SUBS["$[]"]("normal"),verbatim:l.SUBS["$[]"]("verbatim"),specialchars:["specialcharacters"]})),a.cdecl(l,"SUB_SYMBOLS",g(["a","m","n","p","q","r","c","v"],{a:"attributes",m:"macros",n:"normal",p:"post_replacements",q:"quotes",r:"replacements",c:"specialcharacters",v:"verbatim"})),a.cdecl(l,"SUB_OPTIONS",g(["block","inline"],{block:l.COMPOSITE_SUBS.$keys()["$+"](l.SUBS["$[]"]("normal"))["$+"](["callouts"]),inline:l.COMPOSITE_SUBS.$keys()["$+"](l.SUBS["$[]"]("normal"))})),a.cdecl(l,"SUB_HIGHLIGHT",["coderay","pygments"]),a.cdecl(l,"PASS_START","–"),a.cdecl(l,"PASS_END","—"),a.cdecl(l,"PASS_MATCH",/\u0096(\d+)\u0097/),a.cdecl(l,"PASS_MATCH_HI",/<span[^>]*>\u0096<\/span>[^\d]*(\d+)[^\d]*<span[^>]*>\u0097<\/span>/),j.$attr_reader("passthroughs"),k.$apply_subs=function(b,d,e){var f,g,h,i,j,k=this,m=c,n=c,o=c,p=c;return null==k.passthroughs&&(k.passthroughs=c),null==d&&(d="normal"),null==e&&(e=!1),(f=d["$!"]())===c||f._isBoolean&&1!=f?(d["$=="]("normal")?d=l.SUBS["$[]"]("normal"):e!==!1&&e!==c&&((f=d["$is_a?"](nul