{"version":3,"sources":["webpack:///jtab.min.js","webpack:///webpack/bootstrap 5ceae7274958666ab7d7","webpack:///./javascripts/jtab.js","webpack:///./node_modules/underscore/underscore.js","webpack:///./node_modules/raphael/raphael.min.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","jtabChord","token","this","scale","jtab","WesternScale","baseNotes","BaseNotes","baseChords","Chords","chordArray","isValid","fullChordName","isCustom","match","isCaged","parts","split","chordName","cagedPos","rootExt","replace","rootNote","substr","length","baseNoteInfo","baseName","cagedBaseShape","cagedBaseFret","setCagedChordArray","setCustomChordArray","setChordArray","_","Raphael","Version","element_count","C","Cm","C6","Cm6","C69","C7","Cm7","Cmaj7","C7b5","C7#5","Cm7b5","C7b9","C9","Cm9","Cmaj9","Cadd9","C13","Csus2","Csus4","Cdim","Cdim7","Caug","C#","C#m","C#6","C#m6","C#69","C#7","C#m7","C#maj7","C#7b5","C#7#5","C#m7b5","C#7b9","C#9","C#m9","C#maj9","C#add9","C#13","C#sus2","C#sus4","C#dim","C#dim7","C#aug","D","Dm","D6","Dm6","D69","D7","Dm7","Dmaj7","D7b5","D7#5","Dm7b5","D7b9","D9","Dm9","Dmaj9","Dadd9","D13","Dsus2","Dsus4","Ddim","Ddim7","Daug","Eb","Ebm","Eb6","Ebm6","Eb69","Eb7","Ebm7","Ebmaj7","Eb7b5","Eb7#5","Ebm7b5","Eb7b9","Eb9","Ebm9","Ebmaj9","Ebadd9","Eb13","Ebsus2","Ebsus4","Ebdim","Ebdim7","Ebaug","E","Em","E6","Em6","E69","E7","Em7","Emaj7","E7b5","E7#5","Em7b5","E7b9","E9","Em9","Emaj9","Eadd9","E13","Esus2","Esus4","Edim","Edim7","Eaug","F","Fm","F6","Fm6","F69","F7","Fm7","Fmaj7","F7b5","F7#5","Fm7b5","F7b9","F9","Fm9","Fmaj9","Fadd9","F13","Fsus2","Fsus4","Fdim","Fdim7","Faug","F#","F#m","F#6","F#m6","F#69","F#7","F#m7","F#maj7","F#7b5","F#7#5","F#m7b5","F#7b9","F#9","F#m9","F#maj9","F#add9","F#13","F#sus2","F#sus4","F#dim","F#dim7","F#aug","G","Gm","G6","Gm6","G69","G7","Gm7","Gmaj7","G7b5","G7#5","Gm7b5","G7b9","G9","Gm9","Gmaj9","Gadd9","G13","Gsus2","Gsus4","Gdim","Gdim7","Gaug","G#","G#m","G#6","G#m6","G#69","G#7","G#m7","G#maj7","G#7b5","G#7#5","G#m7b5","G#7b9","G#9","G#m9","G#maj9","G#add9","G#13","G#sus2","G#sus4","G#dim","G#dim7","G#aug","A","Am","A6","Am6","A69","A7","Am7","Amaj7","A7b5","A7#5","Am7b5","A7b9","A9","Am9","Amaj9","Aadd9","A13","Asus2","Asus4","Adim","Adim7","Aaug","Bb","Bbm","Bb6","Bbm6","Bb69","Bb7","Bbm7","Bbmaj7","Bb7b5","Bb7#5","Bbm7b5","Bb7b9","Bb9","Bbm9","Bbmaj9","Bbadd9","Bb13","Bbsus2","Bbsus4","Bbdim","Bbdim7","Bbaug","B","Bm","B6","Bm6","B69","B7","Bm7","Bmaj7","B7b5","B7#5","Bm7b5","B7b9","B9","Bm9","Bmaj9","Badd9","B13","Bsus2","Bsus4","Bdim","Bdim7","Baug","Db","D#","Gb","Ab","A#","BaseIntervals","ChordList","list","key","push","AddChord","chord","Array","max_chars","max","len","parseCustomChordArrayFromToken","notes","pairs","array","pair","fingeredFrets","where","map","parseInt","min","Math","apply","console","log","unshift","undefined","modelRef","caged_index","indexOf","fret_widths","starting_fret","index","modelChord","charAt","shiftChordArray","atFret","initFret","use_caged_fingering","fret","finger","fn","tabtype","has_chord","has_tab","debug","margin_top","margin_bottom","margin_left","margin_right","current_offset","string_spacing","strings_drawn","fret_spacing","frets_drawn","note_radius","fret_width","fret_height","chord_width","chord_height","tab_current_string","tab_margin_top","tab_top","tab_spacing","tab_height","tab_char_width","total_height","color","fingering_text_color","tab_text_color","debug_grid","width","path","svg_params","attr","stroke","stroke-width","increment_offset","w","setSize","x","y","l1","l2","move_line_to","arguments","chord_fretboard","position","chord_name","fret_left","fret_labels","text","fill","font-size","stroke_width","pos","tab_extend","dx","dy","bar","bar_stroke","doublebar","path_1","path_2","left","chord_note","string_number","note","fret_number","fret_dy","circle","draw_tab_note","tab_start","left_offset","get_string_number","get_fullchord_notes","rc","tab_note","part","fullchord_notes","render_token","characterize","notation","gotCustomChord","gotNormalChord","gotTab","gotChord","getStyle","element","style","value","document","defaultView","getComputedStyle","getPropertyValue","currentStyle","setPalette","fgColor","bgColor","render","notation_text","textContent","rndID","canvas_holder","createElement","id","height","innerHTML","appendChild","canvas","tokens","className","render_token_one_chord","chord_fretboard_one_chord","chord_note_one_chord","renderOneChord","getAttribute","renderimplicit","within_element","each","getElementsByClassName","el","renderChord","init","window","oldonload","onload","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","createReduce","dir","iterator","obj","iteratee","memo","keys","currentKey","context","optimizeCb","isArrayLike","createPredicateIndexFinder","predicate","cb","getLength","createIndexFinder","predicateFind","sortedIndex","item","idx","slice","isNaN","collectNonEnumProps","nonEnumIdx","nonEnumerableProps","constructor","proto","isFunction","ObjProto","prop","has","contains","root","previousUnderscore","ArrayProto","FuncProto","Function","toString","nativeIsArray","isArray","nativeKeys","nativeBind","bind","nativeCreate","create","Ctor","_wrapped","VERSION","func","argCount","other","collection","accumulator","identity","isObject","matcher","Infinity","createAssigner","keysFunc","undefinedOnly","source","baseCreate","result","MAX_ARRAY_INDEX","pow","forEach","collect","results","reduce","foldl","inject","reduceRight","foldr","find","detect","findIndex","findKey","filter","select","reject","negate","every","all","some","any","includes","include","fromIndex","guard","values","invoke","method","args","isFunc","pluck","attrs","findWhere","computed","lastComputed","shuffle","rand","set","shuffled","random","sample","sortBy","criteria","sort","right","a","b","group","behavior","groupBy","indexBy","countBy","toArray","size","partition","pass","fail","first","head","take","initial","last","rest","tail","drop","compact","flatten","input","shallow","strict","startIndex","output","isArguments","j","without","difference","uniq","unique","isSorted","isBoolean","seen","union","intersection","argsLength","zip","unzip","findLastIndex","low","high","mid","floor","lastIndexOf","range","start","stop","step","ceil","executeBound","sourceFunc","boundFunc","callingContext","self","TypeError","bound","concat","partial","boundArgs","bindAll","Error","memoize","hasher","cache","address","delay","wait","setTimeout","defer","throttle","options","timeout","previous","later","leading","now","remaining","clearTimeout","trailing","debounce","immediate","timestamp","callNow","wrap","wrapper","compose","after","times","before","once","hasEnumBug","propertyIsEnumerable","allKeys","mapObject","invert","functions","methods","names","extend","extendOwn","assign","pick","oiteratee","omit","String","defaults","props","clone","tap","interceptor","isMatch","eq","aStack","bStack","areArrays","aCtor","bCtor","pop","isEqual","isEmpty","isString","isElement","nodeType","type","Int8Array","isFinite","parseFloat","isNumber","isNull","isUndefined","noConflict","constant","noop","propertyOf","matches","accum","Date","getTime","escapeMap","&","<",">","\"","'","`","unescapeMap","createEscaper","escaper","join","testRegexp","RegExp","replaceRegexp","string","test","escape","unescape","fallback","idCounter","uniqueId","prefix","templateSettings","evaluate","interpolate","noMatch","escapes","\\","\r","\n","
","
","escapeChar","template","settings","oldSettings","offset","variable","e","data","chain","instance","_chain","mixin","valueOf","toJSON","r","t","loaded","is","on","Q","_engine","z","splice","$","add","count","shift","hex","h","u","f","g","v","Y","sqrt","H","W","toFixed","bezierBBox","isBBoxIntersect","findDotsAtSegment","k","S","t1","t2","_path2curve","segment1","segment2","bez1","bez2","ms","ht","Bt","anim","top","percents","Ee","percent","totalOrigin","initstatus","pt","paper","customAttributes","ft","getRGB","T","Qt","M","N","L","le","from","to","real","matrix","R","transform","getBBox","se","I","q","P","V","easing","O","easing_formulas","st","St","del","status","diff","callback","prev","next","repeat","origin","Ne","Me","version","eve","rect","ellipse","image","doc","win","was","ca","DocumentTouch","mousedown","mousemove","mouseup","toLowerCase","abs","X","U","PI","Z","tt","nt","_ISURL","at","NaN","-Infinity","ot","round","ut","ct","toUpperCase","_availableAttrs","arrow-end","arrow-start","blur","clip-rect","cursor","cx","cy","fill-opacity","font","font-family","font-style","font-weight","gradient","href","letter-spacing","opacity","rx","ry","src","stroke-dasharray","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","target","text-anchor","title","class","_availableAnimAttrs","gt","vt","hs","rg","xt","yt","mt","bt","wt","_radial_gradient","At","_rectPath","Tt","Et","_getPath","_getBBox","Mt","mapPath","_g","SVGAngle","implementation","hasFeature","Lt","Nt","firstChild","adj","svg","vml","_Paper","_id","angle","atan2","rad","deg","snapTo","createUUID","setWindow","initWin","Pt","ActiveXObject","write","close","body","createPopup","createTextRange","queryCommandValue","display","Ft","Rt","jt","It","qt","rgb","hsb2rgb","hsl2rgb","rgb2hsl","rgb2hsb","_path2string","_preload","cssText","removeChild","onerror","error","substring","hsb","hsl","getColor","reset","parsePathString","Vt","arr","Yt","parseTransformString","ps","sleep","end","alpha","Zt","x2","y2","isPointInsideBBox","pathIntersection","pathIntersectionNumber","isPointInsidePath","pathBBox","_removedFactory","Ot","bbox","Wt","_pathToRelative","rel","Gt","_pathToAbsolute","Ht","Xt","Ut","cos","sin","asin","tan","$t","curve","bx","by","qx","qy","Kt","_parseDots","_tear","bottom","ne","_tofront","_toback","_insertafter","_insertbefore","toMatrix","transformPath","_extractTransform","translate","rotate","dirtyT","sx","sy","oe","_equaliseTransform","_getContainer","getElementById","tagName","container","pixelWidth","offsetWidth","pixelHeight","offsetHeight","pathToRelative","path2curve","fromCharCode","toFilter","scalex","shear","scaley","acos","isSimple","isSuperSimple","noRotation","toTransformString","he","returnValue","ue","originalEvent","preventDefault","ce","cancelBubble","fe","stopPropagation","pe","documentElement","scrollTop","scrollLeft","clientX","clientY","de","addEventListener","targetTouches","removeEventListener","attachEvent","event","detachEvent","ge","ve","touches","identifier","_drag","node","nextSibling","parentNode","opera","getElementByPoint","insertBefore","move_scope","xe","unmousemove","unmouseup","end_scope","start_scope","ye","me","events","unbind","shape","removeData","getData","hover","mouseover","mouseout","unhover","unmouseover","unmouseout","be","drag","onDragOver","undrag","unmousedown","__set__","format","ze","setStart","setFinish","getSize","setViewBox","raphael","_e","getBoundingClientRect","ownerDocument","clientTop","clientLeft","pageYOffset","pageXOffset","elementFromPoint","createSVGRect","getIntersectionList","getById","raphaelid","getElementsByBBox","getElementsByPoint","isPointInside","realPath","removed","dirty","bboxwt","glow","offsetx","offsety","ke","Be","Ce","Se","Ae","getTotalLength","getPointAtLength","getSubpath","getPath","Te","linear","<>","backIn","backOut","elastic","bounce","easeIn","easeOut","easeInOut","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","paused","Le","animateWith","animation","onAnimation","100","animate","setTime","pause","resume","items","Pe","Fe","clear","exclude","insertAfter","registerFont","face","fonts","glyphs","getFont","normal","bold","lighter","bolder","print","descent","fullfill","ninja","readyState","listeners","firstDefined","lastDefined","zIndex","_events","separator","nts","off","block","classic","diamond","open","oval","setAttributeNS","setAttribute","createElementNS","webkitTapHighlightColor","defs","fx","fy","x1","y1","gradientTransform","stop-color","stop-opacity","fillOpacity","documentMode","location","protocol","host","pathname","search","pattern","patternTransform","arrows","endPath","endMarker","startPath","startMarker","getElementsByTagName","markerHeight","markerWidth","orient","refX","refY","xlink:href","startdx","enddx","-",".","-.","-..",". ","- ","--","- .","--.","--..","square","butt","visibility","nodeValue","createTextNode","clip","clip-path","startString","endString","patternUnits","hide","show","remove","parentElement","clientWidth","clientHeight","def","toFront","toBack","stdDeviation","_blur","removeAttribute","preserveAspectRatio","_viewBox","xmlns","xmlns:xlink","_left","_top","renderfix","_vbSize","viewBox","getScreenCTM","createSVGMatrix","desc","fillpos","coordsize","rotation","flip","coordorigin","fillsize","clipRect","textpath","fontFamily","fontSize","fontWeight","fontStyle","weight","joinstyle","miterlimit","endcap","dashstyle","span","J","K","bbx","color2","colors","focus","focussize","focusposition","_oid","_viewBoxShift","skew","auxGetBBox","runtimeStyle","margin","Path","textpathok","styleSheets","createStyleSheet","addRule","namespaces","rvml"],"mappings":"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","file":"jtab.min.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * JTab - Javascript/CSS Guitar Chord and Tab Notation for the Web.\n * Version 1.3.1\n * Written by Paul Gallagher (http://tardate.com), 2009. (original version and maintainer)\n * Contributions:\n * Jason Ong (https://github.com/jasonong)\n * Bruno Bornsztein (https://github.com/bborn)\n * Binary Bit LAN (https://github.com/binarybitlan)\n * See:\n * http://jtab.tardate.com : more information on availability, configuration and use.\n * http://github.com/tardate/jtab/tree/master : source code repository, wiki, documentation\n *\n * This library also depends on the following two libraries that must be loaded for it to work:\n * jQuery - http://www.jquery.com/\n * Raphael - http://raphaeljs.com/\n *\n *\n * This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General\n * Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option)\n * any later version.\n *\n * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied\n * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to\n * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n */\n\nvar _ = __webpack_require__(1);\nvar Raphael = __webpack_require__(2);\n//\n// define the jtab class\n//\n\nvar jtab = {\n Version : '1.3.1',\n element_count:0, //TODO:\n Chords : {\n // chord data - currently explicit representation for 6 string guitar, standard tuning only, and\n // each chord is an array of alternate positions\n // 0 : 1st (open) position\n // 1 : 1st barre position, generally at 12/13/14th fret\n // - minimum, only required for CAGED chords where open strings are used in the 1st (open) position\n // since the main purpose of this is to provide barre fingering positions for CAGED-based chords\n // 2.. : alternative positions/fingerings\n // each position is an array comprising: 1. base fret (0==nut); 2. 6x note definitions (strings 6,5,4,3,2,1)\n // each note is an array: (fret position), (left hand fingering if applicable 1,2,3,4,T)\n // fret position: -1 = muted/not played; 0 = open; 1,2,3... = fret position\n C : [ [ 0, [-1 ], [3,3], [2,2], [0 ], [1,1], [0 ] ], [ 12, [-1,-1], [15,4], [14,3], [12,1], [13,2], [12,1 ] ] ],\n Cm : [ [ 0, [-1 ], [3,4], [1,2], [0 ], [1,1], [-1 ] ], [ 12, [-1,-1], [15,4], [13,3], [12,1], [13,2], [-1,-1] ] ],\n C6 : [ [ 0, [-1 ], [0 ], [2,2], [2,3], [1,1], [3,4] ], [ 12, [-1,-1], [12,1], [14,3], [14,3], [13,2], [15,4] ] ],\n Cm6 : [ [ 0, [-1 ], [-1 ], [1,1], [2,3], [1,2], [3,4] ], [ ] ],\n C69 : [ [ 0, [-1 ], [3,2], [2,1], [2,1], [3,3], [3,4] ], [ ] ],\n C7 : [ [ 0, [-1 ], [3,3], [2,2], [3,4], [1,1], [0 ] ], [ 12, [-1,-1], [15,3], [14,2], [15,4], [13,1], [12, ] ] ],\n Cm7 : [ [ 0, [-1 ], [-1 ], [1,1], [3,3], [1,1], [3,4] ], [ ] ],\n Cmaj7 : [ [ 0, [-1 ], [3,3], [2,2], [0 ], [0 ], [0 ] ], [ 12, [-1,-1], [15,4], [14,3], [12,1], [12,1], [12,1] ] ],\n C7b5 : [ [ 2, [-1 ], [3,1], [4,3], [3,2], [5,4], [-1 ] ], [ ] ],\n \"C7#5\" : [ [ 0, [-1 ], [-1 ], [2,2], [3,3], [1,1], [4,4] ], [ ] ],\n \"Cm7b5\" : [ [ 0, [-1 ], [3,1], [4,3], [3,2], [4,4], [-1 ] ], [ ] ],\n C7b9 : [ [ 0, [-1 ], [3,3], [2,1], [3,4], [2,2], [0 ] ], [ ] ],\n C9 : [ [ 0, [-1 ], [3,2], [2,1], [3,3], [3,4], [-1 ] ], [ ] ],\n Cm9 : [ [ 0, [-1 ], [3,2], [1,1], [3,3], [3,3], [3,3] ], [ ] ],\n Cmaj9 : [ [ 0, [-1 ], [3,3], [0 ], [0 ], [0 ], [0 ] ], [ 12, [-1 ], [15,3], [12,1], [12,1], [12,1], [12,1] ] ],\n Cadd9 : [ [ 0, [-1 ], [3,2], [2,1], [0 ], [3,3], [0 ] ], [ 12, [-1 ], [15,3], [14,2], [12,1], [15,4], [12,1] ] ],\n C13 : [ [ 2, [-1 ], [3,1], [5,2], [3,1], [5,3], [5,4] ], [ ] ],\n Csus2 : [ [ 2, [ -1], [3,1], [5,3], [5,4], [3,1], [3,1] ], [ ] ],\n Csus4 : [ [ 2, [ -1], [3,1], [5,2], [5,3], [6,4], [3,1] ], [ ] ],\n Cdim : [ [ 0, [-1 ], [3,3], [4,4], [2,2], [1,1], [-1 ] ], [ ] ],\n Cdim7 : [ [ 0, [-1 ], [-1 ], [1,1], [2,3], [1,2], [2,4] ], [ ] ],\n Caug : [ [ 0, [-1 ], [-1 ], [2,2], [1,1], [1,1], [4,4] ], [ ] ],\n\n \"C#\" : [ [ 0, [-1 ], [4,4], [3,4], [1,1], [2,2], [1,1] ], [ ] ],\n \"C#m\" : [ [ 0, [-1 ], [-1 ], [2,2], [1,1], [2,3], [0 ] ], [ ] ],\n \"C#6\" : [ [ 0, [-1 ], [-1 ], [3,2], [3,3], [2,1], [4,4] ], [ ] ],\n \"C#m6\" : [ [ 0, [-1 ], [4,3], [2,1], [3,2], [2,1], [4,4] ], [ ] ],\n \"C#69\" : [ [ 2, [-1 ], [4,2], [3,1], [3,1], [4,3], [4,4] ], [ ] ],\n \"C#7\" : [ [ 0, [-1 ], [-1 ], [3,2], [4,3], [2,1], [4,4] ], [ ] ],\n \"C#m7\" : [ [ 0, [-1 ], [-1 ], [2,1], [4,3], [2,1], [4,4] ], [ ] ],\n \"C#maj7\": [ [ 0, [-1 ], [4,4], [3,3], [1,1], [1,1], [1,1] ], [ ] ],\n \"C#7b5\" : [ [ 0, [3,2], [0 ], [3,3], [4,4], [2,1], [-1 ] ], [ ] ],\n \"C#7#5\" : [ [ 0, [-1 ], [4,3], [3,2], [2,1], [0 ], [-1 ] ], [ ] ],\n \"C#m7b5\": [ [ 0, [-1 ], [2,1], [2,2], [0 ], [2,3], [0 ] ], [ ] ],\n \"C#7b9\" : [ [ 0, [-1 ], [4,2], [3,1], [4,3], [3,1], [4,4] ], [ ] ],\n \"C#9\" : [ [ 3, [-1 ], [4,1], [6,2], [6,3], [4,1], [4,1] ], [ ] ],\n \"C#m9\" : [ [ 0, [0 ], [2,2], [1,1], [1,1], [2,3], [0 ] ], [ ] ],\n \"C#maj9\": [ [ 0, [-1 ], [4,4], [1,1], [1,1], [1,1], [1,1] ], [ ] ],\n \"C#add9\": [ [ 0, [1,1], [-1 ], [1,1], [1,1], [2,2], [1,1] ], [ ] ],\n \"C#13\" : [ [ 3, [-1 ], [4,1], [6,2], [4,1], [6,3], [6,4] ], [ ] ],\n \"C#sus2\": [ [ 0, [-1 ], [-1 ], [3,3], [3,4], [1,1], [1,1] ], [ ] ],\n \"C#sus4\": [ [ 0, [-1 ], [-1 ], [3,2], [3,3], [4,4], [1,1] ], [ ] ],\n \"C#dim\" : [ [ 0, [-1 ], [-1 ], [2,1], [3,3], [2,2], [3,4] ], [ ] ],\n \"C#dim7\": [ [ 0, [-1 ], [-1 ], [2,1], [3,3], [2,2], [3,4] ], [ ] ],\n \"C#aug\" : [ [ 0, [-1 ], [4,4], [3,3], [2,1], [2,2], [-1 ] ], [ ] ],\n\n\n D : [ [ 0, [-1 ], [0 ], [0 ], [2,1], [3,3], [2,2] ], [ 12, [-1,-1], [12,1], [12,1], [14,3], [15,4], [14,2] ] ],\n Dm : [ [ 0, [-1 ], [0 ], [0 ], [2,2], [3,3], [1,1] ], [ 12, [-1,-1], [12,1], [12,1], [14,3], [15,4], [13,2] ] ],\n D6 : [ [ 0, [-1 ], [0 ], [0 ], [2,2], [0 ], [2,3] ], [ 12, [-1,-1], [12,1], [12,1], [14,3], [12,1], [14,4] ] ],\n Dm6 : [ [ 0, [-1 ], [2,2], [0 ], [2,3], [0 ], [1,1] ], [ 12, [-1,-1], [14,3], [12,1], [14,4], [12,1], [1,2] ] ],\n D69 : [ [ 3, [-1 ], [5,2], [4,1], [4,1], [5,3], [5,4] ], [ ] ],\n D7 : [ [ 0, [-1 ], [0 ], [0 ], [2,2], [1,1], [2,3] ], [ 12, [-1,-1], [12,1], [12,1], [14,3], [13,2], [14,4] ] ],\n Dm7 : [ [ 0, [-1 ], [-1 ], [0 ], [2,2], [1,1], [1,1] ], [ 12, [-1,-1], [-1,-1], [12,1], [14,4], [13,2], [13,3] ] ],\n Dmaj7 : [ [ 0, [-1 ], [5,4], [4,3], [2,1], [2,1], [2,1] ], [ ] ],\n D7b5 : [ [ 4, [-1 ], [5,1], [6,3], [5,2], [7,4], [-1 ] ], [ ] ],\n \"D7#5\" : [ [ 0, [-1 ], [-1 ], [0 ], [4,3], [1,1], [2,2] ], [ 12, [-1,-1], [-1,-1], [12,1], [16,4], [13,2], [14,3] ] ],\n Dm7b5 : [ [ 0, [-1 ], [-1 ], [0 ], [1,1], [1,1], [1,1] ], [ 12, [-1,-1], [-1,-1], [12,1], [12,2], [12,3], [12,4] ] ],\n D7b9 : [ [ 3, [-1 ], [5,2], [4,1], [5,3], [4,1], [5,4] ], [ ] ],\n D9 : [ [ 0, [2,2], [-1 ], [0 ], [2,3], [1,1], [0 ] ], [ 12, [14,4 ], [-1,-1], [12,1], [14,3], [13,2], [12,1] ] ],\n Dm9 : [ [ 0, [-1 ], [-1 ], [3,3], [2,2], [1,1], [0 ] ], [ 12, [-1,-1], [-1,-1], [15,4], [14,3], [13,2], [12,1] ] ],\n Dmaj9 : [ [ 0, [-1 ], [5,4], [2,1], [2,1], [2,1], [2,1] ], [ ] ],\n Dadd9 : [ [ 0, [-1 ], [-1 ], [0 ], [2,1], [3,2], [0 ] ], [ 12, [-1,-1], [-1,-1], [12,1], [14,3], [15,4], [12,1] ] ],\n D13 : [ [ 4, [-1 ], [5,1], [7,2], [5,1], [7,3], [7,4] ], [ ] ],\n Dsus2 : [ [ 0, [-1 ], [-1 ], [0 ], [2,1], [3,3], [0 ] ], [ 12, [-1,-1], [-1,-1], [12,1], [14,3], [15,4], [12,1] ] ],\n Dsus4 : [ [ 0, [-1 ], [-1 ], [0 ], [2,1], [3,3], [3,4] ], [ 12, [-1,-1], [-1,-1], [12,1], [14,2], [15,3], [15,4] ] ],\n Ddim : [ [ 0, [-1 ], [-1 ], [0 ], [1,1], [0 ], [1,2] ], [ 12, [-1,-1], [-1,-1], [12,1], [13,2], [12,1], [13,3] ] ],\n Ddim7 : [ [ 0, [-1 ], [2,3], [0 ], [1,1], [0 ], [1,2] ], [ 12, [-1,-1], [14,4], [12,1], [13,2], [12,1], [13,3] ] ],\n Daug : [ [ 0, [-1 ], [-1 ], [0 ], [3,2], [3,3], [2,1] ], [ 12, [-1,-1], [-1,-1], [12,1], [15,3], [15,4], [14,2] ] ],\n\n \"Eb\" : [ [ 0, [-1 ], [-1 ], [5,4], [3,1], [4,3], [3,2] ], [ ] ],\n \"Ebm\" : [ [ 0, [-1 ], [-1 ], [4,3], [3,2], [4,4], [2,1] ], [ ] ],\n \"Eb6\" : [ [ 0, [-1 ], [3,1], [5,3], [3,1], [4,2], [3,1] ], [ ] ],\n \"Ebm6\" : [ [ 0, [-1 ], [-1 ], [1,1], [3,3], [1,1], [2,2] ], [ ] ],\n \"Eb69\" : [ [ 0, [-1 ], [-1 ], [1,1], [0 ], [1,2], [1,3] ], [ ] ],\n \"Eb7\" : [ [ 0, [-1 ], [-1 ], [1,1], [3,3], [2,2], [3,4] ], [ ] ],\n \"Ebm7\" : [ [ 0, [-1 ], [-1 ], [1,1], [3,4], [2,2], [2,3] ], [ ] ],\n \"Ebmaj7\": [ [ 0, [-1 ], [-1 ], [1,1], [3,2], [3,3], [3,4] ], [ ] ],\n \"Eb7b5\" : [ [ 0, [-1 ], [-1 ], [1,1], [2,2], [2,3], [4,4] ], [ ] ],\n \"Eb7#5\" : [ [ 0, [-1 ], [-1 ], [1,1], [4,4], [2,2], [3,3] ], [ ] ],\n \"Ebm7b5\": [ [ 0, [-1 ], [-1 ], [1,1], [2,2], [2,3], [2,4] ], [ ] ],\n \"Eb7b9\" : [ [ 0, [-1 ], [-1 ], [1,1], [0 ], [2,3], [0 ] ], [ ] ],\n \"Eb9\" : [ [ 0, [3,4], [1,1], [1,1], [0 ], [2,1], [1,1] ], [ ] ],\n \"Ebm9\" : [ [ 0, [2,2], [1,1], [1,1], [3,4], [2,3], [1,1] ], [ ] ],\n \"Ebmaj9\": [ [ 0, [-1 ], [-1 ], [1,1], [0 ], [3,4], [1,2] ], [ ] ],\n \"Ebadd9\": [ [ 0, [3,4], [2,2], [2,2], [0 ], [-1 ], [1,1] ], [ ] ],\n \"Eb13\" : [ [ 4, [-1 ], [6,2], [5,1], [6,3], [8,4], [8,4] ], [ ] ],\n \"Ebsus2\": [ [ 0, [1,1], [1,1], [1,1], [3,3], [-1 ], [1,1] ], [ ] ],\n \"Ebsus4\": [ [ 0, [-1 ], [-1 ], [1,1], [3,3], [4,4], [4,4] ], [ ] ],\n \"Ebdim\" : [ [ 0, [-1 ], [-1 ], [1,1], [2,3], [1,2], [2,4] ], [ ] ],\n \"Ebdim7\": [ [ 0, [-1 ], [-1 ], [1,1], [2,3], [1,2], [2,4] ], [ ] ],\n \"Ebaug\" : [ [ 0, [3,3], [2,2], [1,1], [0 ], [0 ], [3,4] ], [ ] ],\n\n E : [ [ 0, [ 0 ], [2,2], [2,3], [1,1], [0 ], [0 ] ], [ 12, [ 12,1], [14,3], [14,4], [13,2], [12,1], [12,1] ] ],\n Em : [ [ 0, [ 0 ], [2,2], [2,3], [0 ], [0 ], [0 ] ], [ 12, [ 12,1], [14,3], [14,4], [12,1], [12,1], [12,1] ] ],\n E6 : [ [ 0, [ 0 ], [2,2], [2,3], [1,1], [2,4], [0 ] ], [ 12, [ 12,1], [14,3], [14,3], [13,2], [14,4], [12,1] ] ],\n Em6 : [ [ 0, [ 0 ], [2,1], [2,2], [0 ], [2,3], [0 ] ], [ 12, [ 12,1], [14,2], [14,3], [12,1], [14,4], [12,1] ] ],\n E69 : [ [ 0, [-1 ], [2,2], [2,2], [1,1], [2,3], [2,3] ], [ ] ],\n E7 : [ [ 0, [ 0 ], [2,2], [0 ], [1,1], [0 ], [0 ] ], [ 12, [ 12,1], [14,3], [12,1], [13,2], [12,1], [12,1] ] ],\n Em7 : [ [ 0, [ 0 ], [2,2], [2,3], [0 ], [3,4], [0 ] ], [ 12, [ 12,1], [14,2], [14,3], [12,1], [15,4], [12,1] ] ],\n Emaj7 : [ [ 0, [ 0 ], [2,3], [1,1], [1,2], [0 ], [0 ] ], [ 12, [ 12,1], [14,4], [13,2], [13,3], [12,1], [12,1] ] ],\n E7b5 : [ [ 0, [-1 ], [1,1], [0 ], [1,2], [3,4], [0 ] ], [ 12, [-1,-1], [13,2], [12,1], [13,3], [15,4], [12,1] ] ],\n \"E7#5\" : [ [ 0, [0 ], [3,4], [0 ], [1,1], [1,2], [-1 ] ], [ 12, [ 12,1], [15,4], [12,1], [13,3], [13,2], [-1 ] ] ],\n Em7b5 : [ [ 0, [-1 ], [-1 ], [2,1], [3,2], [3,3], [3,4] ], [ ] ],\n E7b9 : [ [ 0, [0 ], [2,3], [0 ], [1,1], [0 ], [1,2] ], [ 12, [ 12,1], [14,4], [12,1], [13,3], [12,1], [13,2] ] ],\n E9 : [ [ 0, [0 ], [2,2], [0 ], [1,1], [0 ], [2,3] ], [ 12, [ 12,1], [14,3], [12,1], [13,2], [12,1], [14,4] ] ],\n Em9 : [ [ 0, [0 ], [2,1], [0 ], [0 ], [0 ], [2,2] ], [ 12, [ 12,1], [14,2], [12,1], [12,1], [12,1], [14,4] ] ],\n Emaj9 : [ [ 0, [0 ], [2,2], [1,1], [1,1], [0 ], [2,4] ], [ 12, [ 12,1], [14,3], [13,2], [13,2], [12,1], [14,4] ] ],\n Eadd9 : [ [ 0, [2,2], [2,3], [2,4], [1,1], [0 ], [0 ] ], [ 12, [ 14,3], [14,3], [14,4], [13,2], [12,1], [12,1] ] ],\n E13 : [ [ 0, [0 ], [2,2], [0 ], [1,1], [2,3], [0 ] ], [ 12, [ 12,1], [14,3], [12,1], [13,2], [14,4], [12,1] ] ],\n Esus2 : [ [ 0, [ -1], [2,1], [4,3], [4,4], [-1 ], [0 ] ], [ 12, [ -1,-1], [14,2], [16,3], [16,4], [-1 ], [12,1] ] ],\n Esus4 : [ [ 0, [ 0 ], [2,2], [2,3], [2,4], [0 ], [0 ] ], [ 12, [ 12,1], [14,2], [14,3], [14,4], [12,1], [12,1] ] ],\n Edim : [ [ 0, [-1 ], [1,1], [2,2], [3,4], [2,3], [-1 ] ], [ ] ],\n Edim7 : [ [ 0, [-1 ], [-1 ], [2,1], [3,3], [2,2], [3,4] ], [ ] ],\n Eaug : [ [ 0, [ 0 ], [3,4], [2,3], [1,1], [1,2], [0 ] ], [ 12, [ 12,1], [15,4], [14,3], [13,2], [13,2], [12,1] ] ],\n\n F : [ [ 0, [1,1], [3,3], [3,4], [2,2], [1,1], [1,1] ], [ ] ],\n Fm : [ [ 0, [1,1], [3,3], [3,4], [1,1], [1,1], [1,1] ], [ ] ],\n F6 : [ [ 0, [-1 ], [3,2], [3,3], [2,1], [3,4], [-1 ] ], [ ] ],\n Fm6 : [ [ 0, [-1 ], [-1 ], [0 ], [1,1], [1,1], [1,1] ], [ ] ],\n F69 : [ [ 0, [1,1], [0 ], [0 ], [0 ], [1,2], [1,3] ], [ ] ],\n F7 : [ [ 0, [1,1], [3,3], [1,1], [2,2], [1,1], [1,1] ], [ ] ],\n Fm7 : [ [ 0, [1,1], [3,3], [3,4], [1,1], [4,4], [1,1] ], [ ] ],\n Fmaj7 : [ [ 0, [1,1], [-1 ], [2,3], [2,4], [1,2], [-1 ] ], [ ] ],\n F7b5 : [ [ 0, [1,1], [-1 ], [1,2], [2,3], [0 ], [-1 ] ], [ ] ],\n \"F7#5\" : [ [ 0, [1,1], [-1 ], [1,2], [2,3], [2,4], [-1 ] ], [ ] ],\n Fm7b5 : [ [ 2, [-1 ], [-1 ], [3,1], [4,2], [4,3], [4,4] ], [ ] ],\n F7b9 : [ [ 0, [-1 ], [-1 ], [3,2], [2,1], [4,4], [2,1] ], [ ] ],\n F9 : [ [ 0, [3,3], [0 ], [3,4], [2,2], [1,1], [1,1] ], [ ] ],\n Fm9 : [ [ 0, [-1 ], [-1 ], [1,1], [1,1], [1,1], [3,4] ], [ ] ],\n Fmaj9 : [ [ 0, [0 ], [0 ], [3,3], [0 ], [1,1], [3,4] ], [ ] ],\n Fadd9 : [ [ 0, [-1 ], [-1 ], [3,3], [2,2], [1,1], [3,4] ], [ ] ],\n F13 : [ [ 0, [1,1], [0 ], [1,2], [3,4], [3,4], [3,4] ], [ ] ],\n Fsus2 : [ [ 0, [-1 ], [3,3], [3,4], [0 ], [1,1], [1,1] ], [ ] ],\n Fsus4 : [ [ 0, [1,1], [3,2], [3,3], [3,4], [1,1], [1,1] ], [ ] ],\n Fdim : [ [ 0, [-1 ], [-1 ], [0 ], [1,1], [0 ], [1,2] ], [ ] ],\n Fdim7 : [ [ 0, [-1 ], [2,3], [0 ], [1,1], [0 ], [1,2] ], [ ] ],\n Faug : [ [ 0, [1,1], [-1 ], [3,4], [2,2], [2,3], [1,1] ], [ ] ],\n\n \"F#\" : [ [ 0, [2,1], [4,3], [4,4], [3,2], [2,1], [2,1] ], [ ] ],\n \"F#m\" : [ [ 0, [2,1], [4,3], [4,4], [2,1], [2,1], [2,1] ], [ ] ],\n \"F#6\" : [ [ 0, [2,1], [4,3], [-1 ], [3,2], [4,4], [-1 ] ], [ ] ],\n \"F#m6\" : [ [ 0, [-1 ], [-1 ], [1,1], [2,2], [2,3], [2,4] ], [ ] ],\n \"F#69\" : [ [ 0, [2,2], [1,1], [1,1], [1,1], [2,3], [2,4] ], [ ] ],\n \"F#7\" : [ [ 0, [2,1], [4,3], [2,1], [3,2], [2,1], [2,1] ], [ ] ],\n \"F#m7\" : [ [ 0, [2,1], [4,3], [4,4], [2,1], [5,4], [2,1] ], [ ] ],\n \"F#maj7\": [ [ 0, [2,1], [-1 ], [3,3], [3,4], [2,2], [-1 ] ], [ ] ],\n \"F#7b5\" : [ [ 0, [2,2], [-1 ], [2,3], [3,4], [1,1], [-1 ] ], [ ] ],\n \"F#7#5\" : [ [ 0, [2,2], [-1 ], [2,3], [3,4], [3,4], [-1 ] ], [ ] ],\n \"F#m7b5\": [ [ 0, [-1 ], [-1 ], [2,2], [2,3], [1,1], [2,4] ], [ ] ],\n \"F#7b9\" : [ [ 0, [2,2], [1,1], [2,3], [0 ], [2,4], [0 ] ], [ ] ],\n \"F#9\" : [ [ 0, [2,1], [4,3], [2,1], [3,2], [2,1], [4,4] ], [ ] ],\n \"F#m9\" : [ [ 0, [3,3], [0 ], [3,4], [1,1], [2,3], [2,3] ], [ ] ],\n \"F#maj9\": [ [ 0, [2,1], [-1 ], [3,2], [3,3], [-1 ], [4,4] ], [ ] ],\n \"F#add9\": [ [ 0, [2,2], [1,1], [-1 ], [1,1], [2,3], [2,4] ], [ ] ],\n \"F#13\" : [ [ 0, [2,1], [4,3], [2,1], [3,2], [4,4], [2,1] ], [ ] ],\n \"F#sus2\": [ [ 0, [2,2], [-1 ], [-1 ], [1,1], [2,3], [2,4] ], [ ] ],\n \"F#sus4\": [ [ 0, [2,1], [4,2], [4,3], [4,4], [2,1], [2,1] ], [ ] ],\n \"F#dim\" : [ [ 0, [-1 ], [-1 ], [1,1], [2,3], [1,2], [2,4] ], [ ] ],\n \"F#dim7\": [ [ 0, [-1 ], [-1 ], [1,1], [2,3], [1,2], [2,4] ], [ ] ],\n \"F#aug\" : [ [ 0, [2,1], [-1 ], [4,4], [3,2], [3,3], [2,1] ], [ ] ],\n\n G : [ [ 0, [3,3], [2,2], [0 ], [0 ], [0 ], [3,4] ], [ 12, [15,3], [14,2], [12,1], [12,1], [12,1], [15,4] ] ],\n Gm : [ [ 0, [3,2], [1,1], [0 ], [0 ], [3,3], [3,4] ], [ 12, [15,3], [13,2], [12,1], [12,1], [15,4], [15,4] ] ],\n G6 : [ [ 0, [3,3], [2,2], [0 ], [0 ], [0 ], [0 ] ], [ 12, [15,4], [14,3], [12,1], [12,1], [12,1], [12,1] ] ],\n Gm6 : [ [ 0, [-1 ], [-1 ], [2,1], [3,3], [3,3], [3,3] ], [ ] ],\n G69 : [ [ 0, [3,3], [2,1], [0 ], [2,2], [0 ], [0 ] ], [ 12, [15,4], [14,3], [12,1], [14,2], [12,1], [12,1] ] ],\n G7 : [ [ 0, [3,3], [2,2], [0 ], [0 ], [0 ], [1,1] ], [ 12, [15,4], [14,3], [12,1], [12,1], [12,1], [13,2] ] ],\n Gm7 : [ [ 0, [-1 ], [1,1], [3,3], [0 ], [3,4], [-1 ] ], [ 12, [-1 ], [13,2], [15,3], [12,1], [15,4], [-1 ] ] ],\n Gmaj7 : [ [ 0, [3,3], [2,2], [0 ], [0 ], [0 ], [2,1] ], [ 12, [15,3], [14,2], [12,1], [12,1], [12,1], [14,4] ] ],\n \"G7b5\" : [ [ 0, [3,2], [-1 ], [3,3], [4,4], [2,1], [-1 ] ], [ ], [ 4, [-1 ], [-1 ], [5,1], [6,2], [6,3], [7,4] ] ],\n \"G7#5\" : [ [ 0, [3,1], [-1 ], [3,2], [4,3], [4,4], [-1 ] ], [ ] ],\n Gm7b5 : [ [ 2, [3,1], [4,2], [3,1], [3,1], [6,4], [3,1] ], [ ] ],\n G7b9 : [ [ 0, [3,4], [2,3], [0 ], [1,1], [0 ], [1,2] ], [ 12, [15,4], [14,3], [12,1], [13,2], [12,1], [13,] ] ],\n G9 : [ [ 0, [3,3], [-1 ], [0 ], [2,2], [0 ], [1,1] ], [ 12, [15,4], [-1 ], [12,1], [14,3], [12,1], [13,2] ] ],\n Gm9 : [ [ 2, [3,1], [5,3], [3,1], [3,1], [3,1], [5,4] ], [ ] ],\n Gmaj9 : [ [ 0, [3,3], [-1 ], [0 ], [2,1], [0 ], [2,2] ], [ 12, [15,4], [-1 ], [12,1], [14,3], [12,1], [14,2] ] ],\n Gadd9 : [ [ 0, [3,2], [0 ], [0 ], [0 ], [0 ], [3,3] ], [ 12, [15,3], [12,1], [12,1], [12,1], [12,1], [15,4] ] ],\n G13 : [ [ 0, [3,2], [2,1], [3,3], [0 ], [0 ], [0 ] ], [ 12, [15,3], [14,2], [15,3], [12,1], [12,1], [12,1] ] ],\n Gsus2 : [ [ 0, [3,1], [0 ], [0 ], [0 ], [3,3], [3,4] ], [ 12, [15,2], [12,1], [12,1], [12,1], [15,3], [15,4] ] ],\n Gsus4 : [ [ 2, [3,1], [5,2], [5,3], [5,4], [3,1], [3,1] ], [ ] ],\n Gdim : [ [ 2, [-1 ], [-1 ], [5,2], [6,4], [5,3], [3,1] ], [ ] ],\n Gdim7 : [ [ 0, [-1 ], [-1 ], [2,1], [3,3], [2,2], [3,4] ], [ ] ],\n Gaug : [ [ 0, [3,1], [-1 ], [5,4], [4,2], [4,3], [3,1] ], [ ] ],\n\n \"G#\" : [ [ 0, [4,4], [3,3], [1,1], [1,1], [1,1], [-1 ] ], [ ] ],\n \"G#m\" : [ [ 0, [-1 ], [2,2], [1,1], [1,1], [4,4], [4,4] ], [ ] ],\n \"G#6\" : [ [ 0, [-1 ], [-1 ], [1,1], [1,1], [1,1], [1,1] ], [ ] ],\n \"G#m6\" : [ [ 0, [-1 ], [-1 ], [1,1], [1,2], [0 ], [1,3] ], [ ] ],\n \"G#69\" : [ [ 0, [4,2], [3,1], [3,1], [3,1], [4,3], [4,4] ], [ ] ],\n \"G#7\" : [ [ 0, [-1 ], [-1 ], [1,1], [1,1], [1,1], [2,2] ], [ ] ],\n \"G#m7\" : [ [ 3, [4,1], [6,3], [4,1], [4,1], [7,4], [4,1] ], [ ] ],\n \"G#maj7\": [ [ 0, [-1 ], [-1 ], [1,1], [1,1], [1,1], [3,3] ], [ ] ],\n \"G#7b5\" : [ [ 2, [4,2], [-1 ], [4,3], [5,4], [3,2], [-1 ] ], [ ] ],\n \"G#7#5\" : [ [ 3, [4,1], [-1 ], [4,2], [5,3], [5,4], [-1 ] ], [ ] ],\n \"G#m7b5\": [ [ 0, [4,1], [5,2], [4,1], [4,1], [7,4], [4,1] ], [ ] ],\n \"G#7b9\" : [ [ 0, [4,3], [3,2], [4,4], [2,1], [-1 ], [-1 ] ], [ ] ],\n \"G#9\" : [ [ 0, [2,2], [1,1], [1,1], [1,1], [1,1], [2,4] ], [ ] ],\n \"G#m9\" : [ [ 0, [2,2], [1,1], [1,1], [1,1], [0 ], [2,4] ], [ ] ],\n \"G#maj9\": [ [ 2, [4,2], [3,1], [5,4], [3,1], [4,3], [-1 ] ], [ ] ],\n \"G#add9\": [ [ 0, [-1 ], [1,1], [1,1], [1,1], [1,1], [-1 ] ], [ ] ],\n \"G#13\" : [ [ 0, [4,3], [3,2], [4,4], [1,1], [1,1], [1,1] ], [ ] ],\n \"G#sus2\": [ [ 0, [-1 ], [1,1], [1,2], [1,3], [-1 ], [-1 ] ], [ ] ],\n \"G#sus4\": [ [ 0, [-1 ], [-1 ], [1,1], [1,1], [2,2], [4,4] ], [ ] ],\n \"G#dim\" : [ [ 0, [-1 ], [-1 ], [0 ], [1,1], [0 ], [1,2] ], [ ] ],\n \"G#dim7\": [ [ 0, [-1 ], [-1 ], [0 ], [1,1], [0 ], [1,2] ], [ ] ],\n \"G#aug\" : [ [ 0, [0,-1], [3,4], [2,3], [1,1], [1,2], [0,-1] ], [ ] ],\n\n A : [ [ 0, [-1], [0 ], [2,2], [2,1], [2,3], [0 ] ], [ 12, [-1,-1], [12,1], [14,2], [14,3], [14,4], [12,1] ] ],\n Am : [ [ 0, [-1], [0 ], [2,2], [2,3], [1,1], [0 ] ], [ 12, [-1,-1], [12,1], [14,3], [14,4], [13,2], [12,1] ] ],\n A6 : [ [ 0, [-1], [0 ], [2,1], [2,1], [2,1], [2,1] ], [ 12, [-1,-1], [12,1], [14,3], [14,3], [14,3], [14,3] ] ],\n Am6 : [ [ 0, [-1], [0 ], [2,2], [2,3], [1,1], [2,4] ], [ 12, [-1,-1], [12,1], [14,3], [14,3], [13,2], [14,4] ] ],\n A69 : [ [ 3, [5,2], [4,1], [4,1], [4,1], [5,3], [5,4] ], [ ] ],\n A7 : [ [ 0, [-1], [0 ], [2,2], [0 ], [2,3], [0 ] ], [ 12, [-1,-1], [12,1], [14,2], [12,1], [14,3], [12,1] ] ],\n Am7 : [ [ 0, [-1], [0 ], [2,2], [0 ], [1,1], [0 ] ], [ 12, [-1,-1], [12,1], [14,3], [12,1], [13,2], [12,1] ] ],\n Amaj7 : [ [ 0, [-1], [0 ], [2,2], [1,1], [2,3], [0 ] ], [ 12, [-1,-1], [12,1], [14,3], [13,2], [14,4], [12,1] ] ],\n A7b5 : [ [ 3, [5,2], [-1 ], [5,3], [6,4], [4,1], [-1 ] ], [ ] ],\n \"A7#5\" : [ [ 4, [5,1], [-1 ], [5,2], [6,3], [6,4], [-1 ] ], [ ] ],\n Am7b5 : [ [ 0, [-1], [-1 ], [1,1], [2,3], [1,2], [3,4] ], [ ] ],\n A7b9 : [ [ 0, [-1], [0 ], [2,1], [3,3], [2,2], [3,4] ], [ 12, [-1,-1], [12,''], [14,1], [15,3], [14,2], [15,4] ] ],\n A9 : [ [ 0, [-1], [0 ], [2,1], [4,4], [2,2], [3,3] ], [ 12, [-1], [12,], [14,1], [16,4], [14,2], [15,3] ] ],\n Am9 : [ [ 0, [-1], [0 ], [1,1], [1,1], [1,1], [3,4] ], [ 12, [-1], [12,1], [13,2], [13,2], [13,2], [15,4] ] ],\n Amaj9 : [ [ 0, [-1], [0 ], [2,1], [4,3], [2,1], [4,4] ], [ 12, [-1], [12, ], [14,1], [16,3], [14,1], [16,4] ] ],\n Aadd9 : [ [ 0, [-1], [0 ], [2,2], [2,3], [0 ], [0 ] ], [ 12, [-1], [12,1], [14,3], [14,4], [12,1], [12,1] ] ],\n A13 : [ [ 0, [-1], [0 ], [2,1], [0 ], [2,2], [3,3] ], [ 12, [-1], [12,1], [14,2], [12,1], [14,3], [15,4] ] ],\n Asus2 : [ [ 0, [-1], [0 ], [2,1], [2,2], [0 ], [0 ] ], [ 12, [-1], [12,1], [14,3], [14,4], [12,1], [12,1] ] ],\n Asus4 : [ [ 0, [-1], [0 ], [2,1], [2,2], [3,3], [0 ] ], [ 12, [-1], [12,1], [14,2], [14,3], [15,4], [12,1] ] ],\n Adim : [ [ 0, [-1], [0 ], [1,1], [2,3], [1,2], [-1 ] ], [ 12, [-1], [12,1], [13,2], [14,4], [13,3], [-1 ] ] ],\n Adim7 : [ [ 0, [-1], [-1 ], [1,1], [2,3], [1,2], [2,4] ], [ ] ],\n Aaug : [ [ 0, [-1], [0 ], [3,4], [2,2], [2,3], [1,1] ], [ 12, [-1], [12,], [15,4], [14,2], [14,3], [13,1] ] ],\n\n \"Bb\" : [ [ 0, [-1], [1,1], [3,3], [3,3], [3,3], [1,1] ], [ ] ],\n \"Bbm\" : [ [ 0, [-1], [1,1], [3,3], [3,4], [2,2], [1,1] ], [ ] ],\n \"Bb6\" : [ [ 0, [-1], [1,1], [3,3], [3,3], [3,3], [3,3] ], [ ] ],\n \"Bbm6\" : [ [ 0, [-1], [1,1], [3,3], [0 ], [2,2], [-1 ] ], [ ] ],\n \"Bb69\" : [ [ 0, [-1], [1,1], [0 ], [0 ], [1,2], [1,3] ], [ ] ],\n \"Bb7\" : [ [ 0, [-1], [1,1], [3,3], [1,1], [4,4], [1,1] ], [ ] ],\n \"Bbm7\" : [ [ 0, [-1], [1,1], [3,3], [1,1], [2,2], [1,1] ], [ ] ],\n \"Bbmaj7\": [ [ 0, [-1], [1,1], [3,3], [2,2], [3,4], [1,1] ], [ ] ],\n \"Bb7b5\" : [ [ 4, [6,2], [-1 ], [6,3], [7,4], [5,1], [-1 ] ], [ ] ],\n \"Bb7#5\" : [ [ 5, [6,1], [-1 ], [6,2], [7,3], [7,4], [-1 ] ], [ ] ],\n \"Bbm7b5\": [ [ 0, [-1], [1,1], [-1 ], [1,2], [2,3], [-1 ] ], [ ] ],\n \"Bb7b9\" : [ [ 6, [-1], [-1 ], [8,2], [7,1], [9,4], [7,1] ], [ ] ],\n \"Bb9\" : [ [ 0, [1,1], [1,2], [0 ], [1,3], [1,3], [1,3] ], [ ] ],\n \"Bbm9\" : [ [ 5, [-1], [-1 ], [-1 ], [6,1], [6,1], [8,4] ], [ ] ],\n \"Bbmaj9\": [ [ 0, [-1], [1,1], [0 ], [2,4], [1,2], [1,3] ], [ ] ],\n \"Bbadd9\": [ [ 0, [1,1], [1,1], [0 ], [3,4], [1,1], [1,1] ], [ ] ],\n \"Bb13\" : [ [ 0, [-1 ], [1,1], [0 ], [1,2], [3,4], [3,4] ], [ ] ],\n \"Bbsus2\": [ [ 0, [-1], [1,1], [3,3], [3,4], [1,1], [1,1] ], [ ] ],\n \"Bbsus4\": [ [ 0, [-1], [1,1], [3,2], [3,3], [4,4], [1,1] ], [ ] ],\n \"Bbdim\" : [ [ 0, [-1], [1,1], [2,2], [3,4], [2,3], [-1 ] ], [ ] ],\n \"Bbdim7\": [ [ 0, [-1], [-1 ], [2,1], [3,3], [2,2], [3,4] ], [ ] ],\n \"Bbaug\" : [ [ 0, [-1], [1,1], [4,4], [3,2], [3,3], [2,1] ], [ ] ],\n\n B : [ [ 0, [ -1], [2,1], [4,3], [4,3], [4,3], [2,1] ], [ ] ],\n Bm : [ [ 0, [ -1], [2,1], [4,3], [4,4], [3,2], [2,1] ], [ ] ],\n B6 : [ [ 0, [ -1], [2,1], [4,3], [4,3], [4,3], [4,3] ], [ ] ],\n Bm6 : [ [ 0, [ -1], [-1 ], [4,2], [4,3], [3,1], [4,4] ], [ ] ],\n B69 : [ [ 0, [ -1], [2,2], [1,1], [1,1], [2,3], [2,4] ], [ ] ],\n B7 : [ [ 0, [ -1], [2,2], [1,1], [2,3], [0 ], [2,4] ], [ ] ],\n Bm7 : [ [ 0, [ -1], [2,2], [0 ], [2,3], [0 ], [2,4] ], [ ] ],\n Bmaj7 : [ [ 0, [ -1], [2,1], [4,3], [3,2], [4,4], [2,1] ], [ ] ],\n B7b5 : [ [ 5, [7,2], [-1 ], [7,3], [8,4], [6,1], [-1 ] ], [ ] ],\n \"B7#5\" : [ [ 0, [ -1], [2,2], [1,1], [2,3], [0 ], [3,4] ], [ ] ],\n \"Bm7b5\" : [ [ 0, [-1 ], [2,2], [0 ], [2,3], [0 ], [1,1] ], [ ] ],\n B7b9 : [ [ 0, [ -1], [2,2], [1,1], [2,3], [1,1], [2,4] ], [ ] ],\n B9 : [ [ 6, [7,1], [9,3], [7,1], [8,2], [7,1], [9,4] ], [ ] ],\n Bm9 : [ [ 0, [ -1], [2,1], [0 ], [2,2], [2,3], [2,4] ], [ ] ],\n Bmaj9 : [ [ 0, [ -1], [2,2], [1,1], [3,4], [2,3], [2,3] ], [ ] ],\n Badd9 : [ [ 0, [ -1], [2,1], [4,3], [4,4], [2,1], [2,1] ], [ ] ],\n B13 : [ [ 0, [-1 ], [2,2], [1,1], [2,3], [0 ], [4,4] ], [ ] ],\n Bsus2 : [ [ 0, [ -1], [2,1], [4,3], [4,4], [2,1], [2,1] ], [ ] ],\n Bsus4 : [ [ 0, [ -1], [2,1], [4,2], [4,3], [5,4], [2,1] ], [ ] ],\n Bdim : [ [ 0, [-1], [2,1], [3,2], [4,4], [3,3], [-1 ] ], [ ] ],\n Bdim7 : [ [ 0, [-1], [-1 ], [0 ], [1,1], [0 ], [1,2] ], [ ] ],\n Baug : [ [ 0, [-1], [2,1], [5,4], [4,2], [4,3], [3,1] ], [ ] ]\n },\n WesternScale: {\n BaseNotes: { // for each: array[ translated western scale note, caged base, base fret ]\n 'C' : [ 'C' , 'C', 0 ],\n 'C#': [ 'C#', 'C', 1 ],\n 'Db': [ 'C#', 'C', 1 ],\n 'D' : [ 'D' , 'D', 0 ],\n 'D#': [ 'Eb', 'D', 1 ],\n 'Eb': [ 'Eb', 'D', 1 ],\n 'E' : [ 'E' , 'E', 0 ],\n 'F' : [ 'F' , 'E', 1 ],\n 'F#': [ 'F#', 'E', 2 ],\n 'Gb': [ 'F#', 'E', 2 ],\n 'G' : [ 'G' , 'G', 0 ],\n 'G#': [ 'G#', 'G', 1 ],\n 'Ab': [ 'G#', 'G', 1 ],\n 'A' : [ 'A' , 'A', 0 ],\n 'A#': [ 'Bb', 'A', 1 ],\n 'Bb': [ 'Bb', 'A', 1 ],\n 'B' : [ 'B' , 'A', 2 ]\n },\n BaseIntervals: ['C', 'C#', 'D', 'Eb', 'E', 'F', 'F#', 'G', 'G#', 'A', 'Bb', 'B']\n },\n ChordList : function() {\n var list = [];\n for (var key in jtab.Chords) {\n list.push( key );\n }\n return list;\n },\n /*\n * Usage: jtab.AddChord(\"ChordName\", Chord-Array)\n * Example of Add: jtab.AddChord(\"Dsus4l\", [ [ 0, [-1 ], [-1 ], [3,2], [2,1], [3,3], [3,4] ], [ 12, [-1,-1], [-1,-1], [12,1], [14,2], [15,3], [15,4] ] ]);\n * Example of Update: jtab.AddChord(\"A\", [ [ 0, [-1], [0 ], [2,3], [2,2], [2,1], [0 ] ], [ 12, [-1,-1], [12,1], [14,2], [14,3], [14,4], [12,1] ] ]);\n */\n AddChord : function(chordName, chord) {\n this.Chords[chordName] = chord;\n }\n};\n\n//\n// define Array utility functions\n//\n\nArray.prototype.max_chars = function() {\n var max = this[0].length;\n var len = this.length;\n for (var i = 1; i < len; i++) if (this[i].length > max) max = this[i].length;\n return max;\n}\n\n\n//\n// define jtabChord class\n// public members:\n// isValid = whether valid chord defined\n// isCaged = whether chord is CAGED type\n// isCustom = whether chord is a custom fingering\n// fullChordName = full chord name, including position e.g. D#m7:3\n// chordName = chord name, without position e.g. D#m7\n// baseName = translated chord name (B <-> #), without position e.g. Ebm7\n// rootNote = root note e.g. D#\n// rootExt = root note extension e.g. m7\n// cagedBaseShape = caged base shape e.g. D\n// cagedBaseFret = caged base fret e.g. 0\n// cagedPos = caged position e.g. 3\n//\n\nfunction jtabChord (token) {\n\n this.scale = jtab.WesternScale;\n this.baseNotes = this.scale.BaseNotes;\n this.baseChords = jtab.Chords;\n this.chordArray = null;\n this.isValid = false;\n\n this.fullChordName = token;\n this.isCustom = ( this.fullChordName.match( /\\%/ ) != null )\n this.isCaged = ( this.fullChordName.match( /\\:/ ) != null )\n\n\n if (this.isCaged) {\n var parts = this.fullChordName.split(':');\n this.chordName = parts[0];\n this.cagedPos = parts[1];\n } else if (this.isCustom){\n var parts = this.fullChordName.match( /\\[(.+?)\\]/ );\n if(parts){\n this.chordName = parts[1];\n } else {\n this.chordName = '';\n }\n } else {\n this.chordName = this.fullChordName;\n this.cagedPos = 1;\n }\n this.rootExt = this.chordName.replace(/^[A-G#b]{1,2}/,'');\n this.rootNote = this.chordName.substr(0, this.chordName.length - this.rootExt.length);\n var baseNoteInfo = this.baseNotes[this.rootNote];\n if (baseNoteInfo) {\n this.baseName = baseNoteInfo[0] + this.rootExt;\n this.cagedBaseShape = baseNoteInfo[1];\n this.cagedBaseFret = baseNoteInfo[2];\n } else {\n this.cagedBaseShape = '';\n this.cagedBaseFret = 0;\n }\n if ( ( this.isCaged ) && ( this.cagedPos > 1 ) ) {\n this.setCagedChordArray();\n } else if (this.isCustom){\n this.setCustomChordArray();\n } else {\n this.setChordArray(this.baseName);\n }\n}\n\njtabChord.prototype.setCustomChordArray = function(){\n this.chordArray = [];\n this.chordArray = this.parseCustomChordArrayFromToken();\n};\n\njtabChord.prototype.parseCustomChordArrayFromToken = function() {\n notes = this.fullChordName.replace(/(\\%|\\[.+\\])/g, '');\n pairs = notes.split('.');\n if (pairs.length < 6){\n this.isValid = false;\n return;\n }\n this.isValid = true;\n\n array = [];\n for (var i = 0; i < pairs.length; i++){\n pair = pairs[i].split('/')\n if (pair[0].match(/X/)){\n pair = [-1]\n }\n array.push(pair)\n }\n\n // fingeredFrets = array.reject(function(p){\n // return p.length === 1\n // }).collect(function(p){\n // return parseInt(p[0])\n // }).flatten().without(0,-1)\n\n // `array` is an array of string/fretnumber pairs like [0,1].\n\n fingeredFrets = _.where(array, function(pair) { return pair.length != 1});\n fingeredFrets = _.map(fingeredFrets, function (pair) {\n return parseInt(pair[0]);\n });\n\n fingeredFrets = _.map(fingeredFrets, function (pair) {\n if ((i != 0) || (i != -1)){\n return i;\n } else {\n return null;\n }\n });\n\n fingeredFrets = _.where(fingeredFrets, function(pair) { return pair;});\n\n //find all the fret positions which arent X or 0. I'm sure there's a better way to do this.\n\n min = Math.min.apply( Math, fingeredFrets );\n\n console.log(array);\n array.unshift(min-1);\n console.log(array);\n return array;\n};\n\njtabChord.prototype.setChordArray = function(chordName) { // clones chord array (position 0) from chord ref data into this object\n this.chordArray = new Array();\n if (this.baseChords[chordName] === undefined ) {\n this.isValid = false;\n return;\n }\n this.isValid = true;\n var modelRef = this.baseChords[chordName][0];\n this.chordArray[0] = modelRef[0]\n for (var i = 1; i < modelRef.length ; i++) {\n this.chordArray[i] = modelRef[i]; // TODO: this.chordArray[i] = modelRef[i].clone();\n }\n};\n\njtabChord.prototype.setCagedChordArray = function() {\n if ( ! this.cagedBaseShape.match( /[CAGED]/ ) ) return;\n var caged_index = \"CAGED\".indexOf(this.cagedBaseShape) + 1; // get 1-based index\n var fret_widths = [3,2,3,2,2];\n\n var starting_fret = this.cagedBaseFret;\n\n for (var i = 1; i < this.cagedPos ; i++) {\n var index = (caged_index - 1) % 5;\n caged_index = ( caged_index >= 5) ? 1 : caged_index + 1;\n starting_fret += fret_widths[index];\n }\n\n var modelChord = \"CAGED\".charAt( caged_index - 1 ) + this.rootExt;\n this.setChordArray(modelChord);\n this.shiftChordArray(starting_fret,modelChord);\n};\n\njtabChord.prototype.shiftChordArray = function(atFret,modelChord) { // shift chord to new fret position\n var initFret = this.chordArray[0];\n if (atFret != initFret) {\n var use_caged_fingering = ( (this.isCaged) && (this.cagedPos > 0) && ( ! ( this.baseChords[modelChord][1][0] === undefined ) ) );\n\n this.chordArray[0] = atFret - 1;\n for (var i = 1; i < this.chordArray.length ; i++) {\n var fret = (this.chordArray[i][0] >= 0 ) ? this.chordArray[i][0] + atFret - initFret : this.chordArray[i][0];\n var finger = (use_caged_fingering) ? this.baseChords[modelChord][1][i][1] : this.chordArray[i][1];\n this.chordArray[i] = [ fret , finger ];\n }\n }\n};\n\n\n\n//\n// define extensions to the Raphael class\n//\n\nRaphael.fn.tabtype = 0; // 0 = none, 1 = tab & chord, 2 = chord, 3 = tab\nRaphael.fn.has_chord = false;\nRaphael.fn.has_tab = false;\n\nRaphael.fn.debug = false;\nRaphael.fn.scale = 0.5;\nRaphael.fn.margin_top = 30;\nRaphael.fn.margin_bottom = 0;\nRaphael.fn.margin_left = 5;\nRaphael.fn.margin_right = 5;\n\nRaphael.fn.current_offset = Raphael.fn.margin_left;\n\n\nRaphael.fn.string_spacing = 8; // 弦间间隔\nRaphael.fn.strings_drawn = 6; // 显示的弦数量\nRaphael.fn.fret_spacing = 10; // 音柱间隔\nRaphael.fn.frets_drawn = 4; // 显示的音柱数量\nRaphael.fn.note_radius = 4; // 标注半径\n\n\nRaphael.fn.fret_width = Raphael.fn.string_spacing * ( Raphael.fn.strings_drawn - 1 );\nRaphael.fn.fret_height = Raphael.fn.fret_spacing * (Raphael.fn.frets_drawn + 0.5);\nRaphael.fn.chord_width = Raphael.fn.margin_left + Raphael.fn.fret_width + Raphael.fn.string_spacing + Raphael.fn.margin_right;\nRaphael.fn.chord_height = Raphael.fn.margin_top + Raphael.fn.fret_height + Raphael.fn.margin_bottom;\n\nRaphael.fn.tab_current_string = 0; // 1,2,3,4,5,6 or 0 = not set\nRaphael.fn.tab_margin_top = 10;\nRaphael.fn.tab_top = Raphael.fn.chord_height + Raphael.fn.tab_margin_top;\nRaphael.fn.tab_spacing = Raphael.fn.fret_spacing;\nRaphael.fn.tab_height = Raphael.fn.tab_spacing * 5;\nRaphael.fn.tab_char_width = 8;\n\nRaphael.fn.total_height = Raphael.fn.tab_top + Raphael.fn.tab_height + Raphael.fn.margin_bottom;\n\nRaphael.fn.color = \"#000\";\nRaphael.fn.fingering_text_color = \"#fff\";\nRaphael.fn.tab_text_color = \"#000\";\n\n\n// debug helper - puts grid marks on the rendered image\nRaphael.fn.debug_grid = function (width) {\n // h ticks\n this.path(this.svg_params(this.current_offset, 0,0,4)).attr({stroke: this.color, \"stroke-width\":0.2 })\n this.path(this.svg_params( this.current_offset + this.margin_left, 0,0,2)).attr({stroke: this.color, \"stroke-width\":0.2 })\n this.path(this.svg_params( this.current_offset + width - this.margin_right, 0,0,2)).attr({stroke: this.color, \"stroke-width\":0.2 })\n // v ticks\n if (this.tabtype == 3) {\n this.path(this.svg_params(this.current_offset, this.tab_margin_top,2,0)).attr({stroke: this.color, \"stroke-width\":0.2 })\n } else {\n this.path(this.svg_params(this.current_offset, this.margin_top,2, 0)).attr({stroke: this.color, \"stroke-width\":0.2 })\n }\n}\n\n\n// step the current position for drawing\nRaphael.fn.increment_offset = function (width) {\n w = ( width === undefined ) ? this.chord_width : width;\n if (this.debug) this.debug_grid(w);\n this.current_offset += w;\n this.setSize( this.current_offset, this.total_height );\n}\n\nRaphael.fn.svg_params = function(x,y,l1,l2) {\n // http://www.w3.org/TR/SVG/paths.html#PathData --helpful reading\n var move_line_to = \"m\"+x+\" \"+y+\"l\"+l1+\" \"+l2\n if(arguments.length == 4) return move_line_to\n}\n\n// draw the fretboard\nRaphael.fn.chord_fretboard = function ( position, chord_name ) {\n var fret_left = this.current_offset + this.margin_left;\n // conventional fret labels\n var fret_labels = [ '', '', '', 'III', '', 'V', '', 'VII', '', 'IX', '', '', 'XII', '', '', 'XV', '', 'XVII', '', 'XIX', '', 'XXI', '' ];\n // var fret_labels = [ '', '', '', '3', '', '5', '', '7', '', '9', '', '', '12', '', '', '15', '', '17', '', '19', '', '21', '' ];\n // alternative friendly fret labels. Currently disabled, maybe bring these back as a configurable option?\n // var fret_labels = [ '', '1fr', '2fr', '3fr', '4fr', '5fr', '6fr', '7fr', '8fr', '9fr', '10fr', '11fr', '12fr', '13fr', '14fr', '15fr', '16fr', '17fr', '18fr', '19fr', '20fr', '21fr', '' ];\n\n this.text( // chord name\n fret_left + 2.5 * this.string_spacing,\n this.margin_top - 20,\n chord_name).attr({fill: this.tab_text_color, \"font-size\":\"10px\"});\n\n var stroke_width = position == 0 ? 3 : 0 // nut\n var chord_fretboard_path = this.path(this.svg_params(fret_left,this.margin_top,this.string_spacing * (this.strings_drawn - 1),0))\n chord_fretboard_path.attr({stroke: this.color, \"stroke-width\":stroke_width })\n\n for (var i = 0; i <= this.frets_drawn; i++ ) { // frets\n\n this.path(this.svg_params(fret_left,this.margin_top + (i * this.fret_spacing),this.string_spacing * (this.strings_drawn - 1), 0))\n\n pos = ( fret_labels[ position + i ] === undefined ) ? '' : fret_labels[ position + i ];\n\n if ( pos.length > 0 ) { // draw fret position\n this.text(\n fret_left + this.fret_width + this.string_spacing * 1.0,\n this.margin_top + ( ( i - 0.5 ) * this.fret_spacing),\n pos).attr({stroke: this.tab_text_color, \"font-size\":\"10px\"});\n }\n }\n for (var i = 0; i < this.strings_drawn; i++ ) {\n this.path(this.svg_params(fret_left + (i * this.string_spacing),this.margin_top,0, this.fret_spacing * (this.frets_drawn + 0.5))) // strings\n }\n this.tab_extend(this.chord_width); // extend the tab if present\n}\n\n\n// draw a stroke (/)\nRaphael.fn.stroke = function () {\n\n if (this.has_tab) {\n var width = this.tab_char_width * 3;\n // extend tab\n this.tab_extend(width);\n // stroke\n var stroke_path = this.path(this.svg_params(this.current_offset + this.tab_char_width, this.tab_top + (3.5 * this.tab_spacing),this.tab_char_width, - 2 * this.tab_spacing))\n stroke_path.attr({stroke: this.tab_text_color, \"stroke-width\":4 })\n\n this.increment_offset(width);\n } else if (this.has_chord) {\n var dx = this.string_spacing;\n var dy = 2 * this.fret_spacing;\n this.path(this.svg_params(this.current_offset + this.margin_left,\n this.margin_top + this.fret_spacing + dy,dx,-dy)).attr({stroke: this.tab_text_color, \"stroke-width\":4 })\n\n this.increment_offset( this.margin_left + dx + this.margin_right );\n }\n}\n\n\n// draw a bar\nRaphael.fn.bar = function () {\n\n if (this.has_tab) {\n var width = this.tab_char_width * 2;\n // extend tab\n this.tab_extend(width);\n var bar_stroke=this.path(this.svg_params(this.current_offset + this.tab_char_width, this.tab_top,0, this.tab_height))\n this.increment_offset(width);\n\n } else if (this.has_chord) {\n var fret_left = this.current_offset + this.margin_left;\n var bar_stroke=this.path(this.svg_params(this.current_offset + this.margin_left, this.margin_top,0, 0, this.fret_height))\n this.increment_offset( this.margin_left + this.margin_right );\n }\n bar_stroke.attr({stroke: this.color, \"stroke-width\":1 })\n\n}\n\n\n// draw double bar\nRaphael.fn.doublebar = function () {\n if (this.has_tab) {\n var width = this.tab_char_width + 8;\n // extend tab\n this.tab_extend(width);\n // bar\n var path_1 = this.path(this.svg_params(this.current_offset + this.tab_char_width, this.tab_top,0, this.tab_height))\n var path_2 = this.path(this.svg_params(this.current_offset + this.tab_char_width + 6, this.tab_top,0, this.tab_height ))\n this.increment_offset(width);\n\n } else if (this.has_chord) {\n var left = this.current_offset + this.margin_left;\n\n var path_1 = this.path(this.svg_params(left, this.margin_top,0, this.fret_height))\n var path_2 = this.path(this.svg_params(left + 6, this.margin_top,0, this.fret_height))\n\n this.increment_offset( this.margin_left + 6 + this.margin_right );\n }\n path_1.attr({stroke: this.color, \"stroke-width\":1 })\n path_2.attr({stroke: this.color, \"stroke-width\":4 })\n}\n\n\n// draw a note in a chord\nRaphael.fn.chord_note = function (position, string_number, note) {\n // NB: internal string_number in chords counts from low to high\n var fret_number = note[0];\n var fret_left = this.current_offset + this.margin_left;\n\n if (fret_number < 0 ) {\n // muted/not played\n this.text(fret_left + (string_number - 1) * this.string_spacing, this.margin_top - 8, \"x\").attr({stroke: this.tab_text_color, \"font-size\":\"8px\"});\n } else if (fret_number == 0 ) {\n // open\n this.text(fret_left + (string_number - 1) * this.string_spacing, this.margin_top - 8, \"o\").attr({stroke: this.tab_text_color, \"font-size\":\"8px\"});\n } else {\n var fret_dy = (fret_number - position - 0.5) * this.fret_spacing;\n //var circle =\n this.circle(\n fret_left + (string_number - 1) * this.string_spacing,\n this.margin_top + fret_dy, this.note_radius).attr({stroke: this.color, fill: this.color});\n if ( ! (note[1] === undefined) ) {\n this.text( fret_left + (string_number - 1) * this.string_spacing,\n this.margin_top + fret_dy, note[1] ).attr({fill: this.fingering_text_color, \"font-size\":\"8px\"});\n }\n }\n\n if ( this.has_tab && fret_number >= 0 ) {\n this.draw_tab_note( (this.strings_drawn - string_number + 1), fret_number, this.margin_left + this.string_spacing * 2.5 );\n }\n}\n\n\n// extend the tab drawing area\nRaphael.fn.tab_extend = function (width) {\n if (this.has_tab == false) return;\n for (var i = 0; i < this.strings_drawn; i++ ) {\n this.path(this.svg_params(this.current_offset, this.tab_top + (i * this.tab_spacing),width, 0)).attr({stroke: this.color})\n }\n}\n\n\n// start the tab\nRaphael.fn.tab_start = function () {\n if (this.has_tab == false) return;\n var width = this.tab_char_width * 3;\n // start bar\n this.path(this.svg_params(this.current_offset, this.tab_top,0, this.tab_height)).attr({stroke: this.color, \"stroke-width\":1 })\n\n // extend tab\n this.tab_extend(width);\n\n //write TAB\n this.text(this.current_offset + this.tab_char_width, this.tab_top + this.tab_spacing * 1.5, \"T\").attr({stroke: this.color, \"font-size\":\"10px\"});\n this.text(this.current_offset + this.tab_char_width, this.tab_top + this.tab_spacing * 2.5, \"A\").attr({stroke: this.color, \"font-size\":\"10px\"});\n this.text(this.current_offset + this.tab_char_width, this.tab_top + this.tab_spacing * 3.5, \"B\").attr({stroke: this.color, \"font-size\":\"10px\"});\n this.increment_offset(width);\n\n}\n\n\n// draw an individual note in the tab\nRaphael.fn.draw_tab_note = function (string_number, token, left_offset) {\n // NB: internal string_number in tab counts from high to low\n this.text(this.current_offset + left_offset,\n this.tab_top + this.tab_spacing * (string_number - 1),\n token).attr({fill: this.color, \"font-size\":\"10px\"});\n}\n\n// gets string number from token $[1-6|EADGBe]\nRaphael.fn.get_string_number = function (token) {\n var string_number = null;\n if ( token.match( /^\\$[1-6]/ ) != null ) {\n string_number = token.substr(1,1);\n } else if ( token.match( /^\\$[EADGBe]/ ) != null ) {\n string_number = 6 - \"EADGBe\".indexOf(token.substr(1,1));\n }\n return string_number;\n}\n\n\n// identify if full chord of notes specified i.e. A:1 = X02220 or C:4 = 8.10.10.9.8.8\n// returns:\n// false = not a full chord representation\n// array = array of notes (low to high)\nRaphael.fn.get_fullchord_notes = function (token) {\n var rc = false;\n if ( token.match( /[^\\.xX0-9]/ ) != null ) {\n rc = false;\n } else {\n if ( token.match( /\\./ ) != null ) {\n rc = token.split('.');\n } else {\n rc = token.split('');\n }\n if (rc.length != 6) rc = false;\n }\n return rc;\n}\n\n\n// draw a token on the tab\nRaphael.fn.tab_note = function (token) {\n if (this.has_tab == false) return;\n\n if ( token.match( /\\$/ ) != null ) { // contains a string specifier\n if ( token.match( /\\./ ) != null ) { // is a multi-string specifier\n var parts = token.split(\".\");\n var width = 2;\n for (var i = 0; i < parts.length ; i++) { // get the max length of the multi-string specifiers\n if ( parts[i].length > width ) width = parts[i].length;\n }\n width *= this.tab_char_width + 1;\n this.tab_extend( width );\n for (var i = 0; i < parts.length ; i++) {\n var part = parts[i];\n var string_number = this.get_string_number(part);\n if (string_number != null) {\n this.tab_current_string = string_number;\n } else if ( this.tab_current_string > 0 ) {\n this.draw_tab_note( this.tab_current_string, part, width * 0.5 );\n }\n }\n this.increment_offset( width );\n\n } else { // just a string setting\n this.tab_current_string = this.get_string_number(token);\n }\n } else {\n var fullchord_notes = this.get_fullchord_notes(token);\n if ( fullchord_notes ) {\n var max_chars = fullchord_notes.max_chars();\n var width = this.tab_char_width * (max_chars + 2);\n this.tab_extend( width );\n for (var i = 0; i < fullchord_notes.length ; i++) {\n this.draw_tab_note( 6 - i, fullchord_notes[i], width * 0.5 );\n }\n this.increment_offset( width );\n } else if ( this.tab_current_string > 0 ) { // else draw literal, but only if a current string selected\n var width = this.tab_char_width * ( token.length + 2 );\n this.tab_extend( width );\n this.draw_tab_note( this.tab_current_string, token, width * 0.5 );\n this.increment_offset( width );\n }\n }\n}\n\n\n// main drawing routine entry point: to render a token - chord or tab\nRaphael.fn.render_token = function (token) {\n\n var c = new jtabChord(token);\n\n if ( c.isValid ) { // draw chord\n var chord = c.chordArray;\n this.chord_fretboard(chord[0], c.chordName );\n for (var i = 1; i < chord.length ; i++) {\n this.chord_note(chord[0], i, chord[i]);\n }\n this.increment_offset();\n\n } else {\n if (token == \"/\" ) {\n this.stroke();\n } else if (token == \"|\" ) {\n this.bar();\n } else if (token == \"||\" ) {\n this.doublebar();\n } else if ( this.has_tab ) {\n this.tab_note( token );\n }\n\n }\n}\n\n\n//\n// add jtab class methods\n//\n\n\n// determine nature of the token stream\n// returns:\n// 1 : chord and tab present\n// 2 : chord only\n// 3 : tab only\n// 0 : unknown\njtab.characterize = function (notation) {\n var tabtype = 0;\n\n if(notation == undefined){\n notation = '';\n }\n\n var gotCustomChord = ( notation.match( /[\\%]([0-4|T|X])?/ ) != undefined );\n var gotNormalChord = ( notation.match( /[^\\$][A-G]|^[A-G]/ ) != undefined );\n var gotTab = ( ( notation.match( /\\$/ ) != null ) || ( notation.match( /[^\\%][0-9|Xx|\\.]{6,}/ ) != null ) );\n var gotChord = gotNormalChord || gotCustomChord ;\n\n // set defaults - apply scaling here (TODO)\n Raphael.fn.current_offset = Raphael.fn.margin_left;\n if ( gotChord && gotTab ) { // chord and tab\n tabtype = 1;\n Raphael.fn.has_chord = true;\n Raphael.fn.has_tab = true;\n Raphael.fn.tab_top = Raphael.fn.chord_height + Raphael.fn.tab_margin_top;\n Raphael.fn.total_height = Raphael.fn.tab_top + Raphael.fn.tab_height + Raphael.fn.margin_bottom;\n } else if ( gotChord ) { // chord only\n tabtype = 2;\n Raphael.fn.has_chord = true;\n Raphael.fn.has_tab = false;\n Raphael.fn.tab_top = Raphael.fn.chord_height + Raphael.fn.tab_margin_top;\n Raphael.fn.total_height = Raphael.fn.chord_height;\n } else if ( gotTab ) { // tab only\n tabtype = 3;\n Raphael.fn.has_chord = false;\n Raphael.fn.has_tab = true;\n Raphael.fn.tab_top = Raphael.fn.tab_margin_top;\n Raphael.fn.total_height = Raphael.fn.tab_top + Raphael.fn.tab_height + Raphael.fn.margin_bottom;\n }\n Raphael.fn.tabtype = tabtype;\n return tabtype;\n}\n\n// utility function to get calculated style based on given element\njtab.getStyle = function (element, style) {\n var value = element.style[style];\n if(!value) {\n if(document.defaultView) {\n value = document.defaultView.getComputedStyle(element, \"\").getPropertyValue(style);\n } else if(element.currentStyle) {\n value = element.currentStyle[style];\n }\n }\n\n return value;\n}\n\n// set color pallette for the jtab rendering\njtab.setPalette = function (element) {\n var fgColor = jtab.getStyle( element, 'color' );\n if (!fgColor) {\n fgColor = '#000';\n }\n Raphael.fn.color = fgColor;\n Raphael.fn.tab_text_color = fgColor;\n\n bgColor = jtab.getStyle( element, 'background-color' );\n if (!bgColor || (bgColor == 'transparent') || (bgColor == 'rgba(0, 0, 0, 0)')) {\n bgColor = '#fff';\n }\n Raphael.fn.fingering_text_color = bgColor;\n}\n\n// Render the tab for a given +element+.\n// +element+ is a DOM node\n// +notation_text+ is the optional notation to render (if not specified, +element+ text content will be used)\n// After rendering, the +element+ will be given the additional \"rendered\" class.\njtab.render = function (element,notation_text) {\n\n var notation = notation_text || element.textContent || '';\n\n var tabtype = jtab.characterize( notation );\n if (tabtype == 0 ) return;\n\n var rndID=\"builder_\"+jtab.element_count++;\n\n // add the Raphael canvas in its own DIV. this gets around an IE6 issue with not removing previous renderings\n var canvas_holder = document.createElement('div');\n canvas_holder.id = rndID;\n canvas_holder.style.height = Raphael.fn.total_height;\n element.innerHTML = \"\";\n element.appendChild(canvas_holder);\n\n jtab.setPalette(element);\n canvas = Raphael(rndID, 80, Raphael.fn.total_height );\n canvas.tab_start();\n\n\n var tokens = notation.split(/\\s/);\n for(var i = 0; i < tokens.length; i++) {\n canvas.render_token(tokens[i]);\n }\n element.className += ' rendered';\n}\n\n\nRaphael.fn.render_token_one_chord = function (token) {\n\n var c = new jtabChord(token);\n\n if (c.isValid) { // draw chord\n var chord = c.chordArray;\n this.chord_fretboard_one_chord(chord[0], c.chordName);\n for (var i = 1; i < chord.length; i++) {\n this.chord_note_one_chord(chord[0], i, chord[i]);\n }\n this.increment_offset();\n\n }\n}\n\n\n// draw a note in a chord\nRaphael.fn.chord_note_one_chord = function (position, string_number, note) {\n // NB: internal string_number in chords counts from low to high\n var fret_number = note[0];\n var fret_left = this.current_offset + this.margin_left;\n\n if (fret_number < 0) {\n // muted/not played\n this.text(fret_left + (string_number - 1) * this.string_spacing, this.margin_top - 8, \"x\").attr({\n stroke: this.tab_text_color,\n \"font-size\": \"8px\"\n });\n } else if (fret_number == 0) {\n // open\n this.text(fret_left + (string_number - 1) * this.string_spacing, this.margin_top - 8, \"o\").attr({\n stroke: this.tab_text_color,\n \"font-size\": \"8px\"\n });\n } else {\n var fret_dy = (fret_number - position - 0.5) * this.fret_spacing;\n //var circle =\n this.circle(\n fret_left + (string_number - 1) * this.string_spacing,\n this.margin_top + fret_dy, this.note_radius).attr({\n stroke: this.color,\n fill: this.color\n });\n if (!(note[1] === undefined)) {\n this.text(fret_left + (string_number - 1) * this.string_spacing,\n this.margin_top + fret_dy, note[1]).attr({\n fill: this.fingering_text_color,\n \"font-size\": \"8px\"\n });\n }\n }\n\n if (this.has_tab && fret_number >= 0) {\n this.draw_tab_note((this.strings_drawn - string_number + 1), fret_number, this.margin_left + this.string_spacing * 2.5);\n }\n}\n// draw the fretboard\nRaphael.fn.chord_fretboard_one_chord = function (position, chord_name) {\n\n var string_spacing = 8; // 弦间间隔\n var strings_drawn = 6; // 显示的弦数量\n var fret_spacing = 10; // 音柱间隔\n var frets_drawn = 4; // 显示的音柱数量\n var note_radius = 4; // 标注半径\n var scale = 0.5;\n var margin_top = 30;\n var margin_bottom = 0;\n var margin_left = 5;\n var margin_right = 5;\n var color = \"#000\";\n var fingering_text_color = \"#fff\";\n var tab_text_color = \"#000\";\n\n var fret_left = this.current_offset + margin_left;\n\n var fret_width = string_spacing * (strings_drawn - 1);\n var fret_height = fret_spacing * (frets_drawn + 0.5);\n var chord_width = margin_left + fret_width + string_spacing + margin_right;\n var chord_height = margin_top + fret_height + margin_bottom;\n\n // conventional fret labels\n var fret_labels = ['', '', '', 'III', '', 'V', '', 'VII', '', 'IX', '', '', 'XII', '', '', 'XV', '', 'XVII', '', 'XIX', '', 'XXI', ''];\n //var fret_labels = [ '', '', '', '3', '', '5', '', '7', '', '9', '', '', '12', '', '', '15', '', '17', '', '19', '', '21', '' ];\n\n this.text( // chord name\n fret_left + 2.5 * string_spacing,\n margin_top - 20,\n chord_name).attr({\n fill: tab_text_color,\n \"font-size\": \"10px\"\n });\n\n var stroke_width = position == 0 ? 3 : 0 // nut\n var chord_fretboard_path = this.path(this.svg_params(fret_left, margin_top, string_spacing * (strings_drawn - 1), 0))\n chord_fretboard_path.attr({\n stroke: color,\n \"stroke-width\": stroke_width\n })\n\n for (var i = 0; i <= frets_drawn; i++) { // frets\n\n this.path(this.svg_params(fret_left, margin_top + (i * fret_spacing), string_spacing * (strings_drawn - 1), 0))\n\n pos = (fret_labels[position + i] === undefined) ? '' : fret_labels[position + i];\n\n if (pos.length > 0) { // draw fret position\n this.text(\n fret_left + fret_width + string_spacing * 1.0,\n margin_top + ((i - 0.5) * fret_spacing),\n pos).attr({\n stroke: tab_text_color,\n \"font-size\": \"9px\"\n });\n }\n }\n for (var i = 0; i < strings_drawn; i++) {\n this.path(this.svg_params(fret_left + (i * string_spacing), margin_top, 0, fret_spacing * (frets_drawn + 0.5))) // strings\n }\n\n}\n// Render the tab for a given +element+.\n// +element+ is a DOM node\n// +notation_text+ is the optional notation to render (if not specified, +element+ text content will be used)\n// After rendering, the +element+ will be given the additional \"rendered\" class.\njtab.renderOneChord = function (element, notation_text) {\n\n var rndID = \"builder_\" + jtab.element_count++;\n\n // add the Raphael canvas in its own DIV. this gets around an IE6 issue with not removing previous renderings\n canvas = Raphael(element, 48, 40); \n canvas.render_token_one_chord(element.getAttribute(\"chord\"));\n element.className += ' rendered';\n}\n \n// Render all nodes with class 'jtab'.\n// +within_scope+ is an optional selector that will restrict rendering to only those nodes contained within.\njtab.renderimplicit = function(within_element) {\n within_element = within_element ? within_element : document;\n _.each(within_element.getElementsByClassName(\"jtab\"), function (el) {\n if(el.className.indexOf(\"rendered\") > -1) return;\n jtab.render(el);\n });\n}\n\njtab.renderChord = function (within_element) {\n within_element = within_element ? within_element : document;\n _.each(within_element.getElementsByClassName(\"chord\"), function (el) {\n if(el.className.indexOf(\"rendered\") > -1) return;\n jtab.renderOneChord(el);\n }); \n}\n\n// initialize jtab library.\n// Sets up to run implicit rendering on window.onload\njtab.init = function() {\n if(!window) {\n return;\n }\n var oldonload = window.onload;\n window.onload = function() {\n if (typeof oldonload == 'function') oldonload();\n jtab.renderimplicit(null);\n _.each(document.getElementsByClassName(\"chord\"), function (el) {\n if(el.className.indexOf(\"rendered\") > -1) return;\n jtab.renderOneChord(el);\n }); \n }\n}\n\nif(typeof window != \"undefined\") {\n window.jtab = jtab;\n}\n\nmodule.exports = jtab;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Underscore.js 1.8.3\n// http://underscorejs.org\n// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n(function() {\n\n // Baseline setup\n // --------------\n\n // Establish the root object, `window` in the browser, or `exports` on the server.\n var root = this;\n\n // Save the previous value of the `_` variable.\n var previousUnderscore = root._;\n\n // Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;\n\n // Create quick reference variables for speed access to core prototypes.\n var\n push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n // All **ECMAScript 5** native function implementations that we hope to use\n // are declared here.\n var\n nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeBind = FuncProto.bind,\n nativeCreate = Object.create;\n\n // Naked function reference for surrogate-prototype-swapping.\n var Ctor = function(){};\n\n // Create a safe reference to the Underscore object for use below.\n var _ = function(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n };\n\n // Export the Underscore object for **Node.js**, with\n // backwards-compatibility for the old `require()` API. If we're in\n // the browser, add `_` as a global object.\n if (true) {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = _;\n }\n exports._ = _;\n } else {\n root._ = _;\n }\n\n // Current version.\n _.VERSION = '1.8.3';\n\n // Internal function that returns an efficient (for current engines) version\n // of the passed-in callback, to be repeatedly applied in other Underscore\n // functions.\n var optimizeCb = function(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n case 2: return function(value, other) {\n return func.call(context, value, other);\n };\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n };\n\n // A mostly-internal function to generate callbacks that can be applied\n // to each element in a collection, returning the desired result — either\n // identity, an arbitrary callback, a property matcher, or a property accessor.\n var cb = function(value, context, argCount) {\n if (value == null) return _.identity;\n if (_.isFunction(value)) return optimizeCb(value, context, argCount);\n if (_.isObject(value)) return _.matcher(value);\n return _.property(value);\n };\n _.iteratee = function(value, context) {\n return cb(value, context, Infinity);\n };\n\n // An internal function for creating assigner functions.\n var createAssigner = function(keysFunc, undefinedOnly) {\n return function(obj) {\n var length = arguments.length;\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n };\n\n // An internal function for creating a new object that inherits from another.\n var baseCreate = function(prototype) {\n if (!_.isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n };\n\n var property = function(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n };\n\n // Helper for collection methods to determine whether a collection\n // should be iterated as an array or as an object\n // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\n var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n var getLength = property('length');\n var isArrayLike = function(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n };\n\n // Collection Functions\n // --------------------\n\n // The cornerstone, an `each` implementation, aka `forEach`.\n // Handles raw objects in addition to array-likes. Treats all\n // sparse array-likes as if they were dense.\n _.each = _.forEach = function(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var keys = _.keys(obj);\n for (i = 0, length = keys.length; i < length; i++) {\n iteratee(obj[keys[i]], keys[i], obj);\n }\n }\n return obj;\n };\n\n // Return the results of applying the iteratee to each element.\n _.map = _.collect = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Create a reducing function iterating left or right.\n function createReduce(dir) {\n // Optimized iterator function as using arguments.length\n // in the main function will deoptimize the, see #1991.\n function iterator(obj, iteratee, memo, keys, index, length) {\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = keys ? keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n }\n\n return function(obj, iteratee, memo, context) {\n iteratee = optimizeCb(iteratee, context, 4);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n // Determine the initial value if none is provided.\n if (arguments.length < 3) {\n memo = obj[keys ? keys[index] : index];\n index += dir;\n }\n return iterator(obj, iteratee, memo, keys, index, length);\n };\n }\n\n // **Reduce** builds up a single result from a list of values, aka `inject`,\n // or `foldl`.\n _.reduce = _.foldl = _.inject = createReduce(1);\n\n // The right-associative version of reduce, also known as `foldr`.\n _.reduceRight = _.foldr = createReduce(-1);\n\n // Return the first value which passes a truth test. Aliased as `detect`.\n _.find = _.detect = function(obj, predicate, context) {\n var key;\n if (isArrayLike(obj)) {\n key = _.findIndex(obj, predicate, context);\n } else {\n key = _.findKey(obj, predicate, context);\n }\n if (key !== void 0 && key !== -1) return obj[key];\n };\n\n // Return all the elements that pass a truth test.\n // Aliased as `select`.\n _.filter = _.select = function(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n _.each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n };\n\n // Return all the elements for which a truth test fails.\n _.reject = function(obj, predicate, context) {\n return _.filter(obj, _.negate(cb(predicate)), context);\n };\n\n // Determine whether all of the elements match a truth test.\n // Aliased as `all`.\n _.every = _.all = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n };\n\n // Determine if at least one element in the object matches a truth test.\n // Aliased as `any`.\n _.some = _.any = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n };\n\n // Determine if the array or object contains a given item (using `===`).\n // Aliased as `includes` and `include`.\n _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return _.indexOf(obj, item, fromIndex) >= 0;\n };\n\n // Invoke a method (with arguments) on every item in a collection.\n _.invoke = function(obj, method) {\n var args = slice.call(arguments, 2);\n var isFunc = _.isFunction(method);\n return _.map(obj, function(value) {\n var func = isFunc ? method : value[method];\n return func == null ? func : func.apply(value, args);\n });\n };\n\n // Convenience version of a common use case of `map`: fetching a property.\n _.pluck = function(obj, key) {\n return _.map(obj, _.property(key));\n };\n\n // Convenience version of a common use case of `filter`: selecting only objects\n // containing specific `key:value` pairs.\n _.where = function(obj, attrs) {\n return _.filter(obj, _.matcher(attrs));\n };\n\n // Convenience version of a common use case of `find`: getting the first object\n // containing specific `key:value` pairs.\n _.findWhere = function(obj, attrs) {\n return _.find(obj, _.matcher(attrs));\n };\n\n // Return the maximum element (or element-based computation).\n _.max = function(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Return the minimum element (or element-based computation).\n _.min = function(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Shuffle a collection, using the modern version of the\n // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n _.shuffle = function(obj) {\n var set = isArrayLike(obj) ? obj : _.values(obj);\n var length = set.length;\n var shuffled = Array(length);\n for (var index = 0, rand; index < length; index++) {\n rand = _.random(0, index);\n if (rand !== index) shuffled[index] = shuffled[rand];\n shuffled[rand] = set[index];\n }\n return shuffled;\n };\n\n // Sample **n** random values from a collection.\n // If **n** is not specified, returns a single random element.\n // The internal `guard` argument allows it to work with `map`.\n _.sample = function(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n return obj[_.random(obj.length - 1)];\n }\n return _.shuffle(obj).slice(0, Math.max(0, n));\n };\n\n // Sort the object's values by a criterion produced by an iteratee.\n _.sortBy = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n return _.pluck(_.map(obj, function(value, index, list) {\n return {\n value: value,\n index: index,\n criteria: iteratee(value, index, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n };\n\n // An internal function used for aggregate \"group by\" operations.\n var group = function(behavior) {\n return function(obj, iteratee, context) {\n var result = {};\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n };\n\n // Groups the object's values by a criterion. Pass either a string attribute\n // to group by, or a function that returns the criterion.\n _.groupBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key].push(value); else result[key] = [value];\n });\n\n // Indexes the object's values by a criterion, similar to `groupBy`, but for\n // when you know that your index values will be unique.\n _.indexBy = group(function(result, value, key) {\n result[key] = value;\n });\n\n // Counts instances of an object that group by a certain criterion. Pass\n // either a string attribute to count by, or a function that returns the\n // criterion.\n _.countBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key]++; else result[key] = 1;\n });\n\n // Safely create a real, live array from anything iterable.\n _.toArray = function(obj) {\n if (!obj) return [];\n if (_.isArray(obj)) return slice.call(obj);\n if (isArrayLike(obj)) return _.map(obj, _.identity);\n return _.values(obj);\n };\n\n // Return the number of elements in an object.\n _.size = function(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : _.keys(obj).length;\n };\n\n // Split a collection into two arrays: one whose elements all satisfy the given\n // predicate, and one whose elements all do not satisfy the predicate.\n _.partition = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var pass = [], fail = [];\n _.each(obj, function(value, key, obj) {\n (predicate(value, key, obj) ? pass : fail).push(value);\n });\n return [pass, fail];\n };\n\n // Array Functions\n // ---------------\n\n // Get the first element of an array. Passing **n** will return the first N\n // values in the array. Aliased as `head` and `take`. The **guard** check\n // allows it to work with `_.map`.\n _.first = _.head = _.take = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[0];\n return _.initial(array, array.length - n);\n };\n\n // Returns everything but the last entry of the array. Especially useful on\n // the arguments object. Passing **n** will return all the values in\n // the array, excluding the last N.\n _.initial = function(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n };\n\n // Get the last element of an array. Passing **n** will return the last N\n // values in the array.\n _.last = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[array.length - 1];\n return _.rest(array, Math.max(0, array.length - n));\n };\n\n // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.\n // Especially useful on the arguments object. Passing an **n** will return\n // the rest N values in the array.\n _.rest = _.tail = _.drop = function(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n };\n\n // Trim out all falsy values from an array.\n _.compact = function(array) {\n return _.filter(array, _.identity);\n };\n\n // Internal implementation of a recursive `flatten` function.\n var flatten = function(input, shallow, strict, startIndex) {\n var output = [], idx = 0;\n for (var i = startIndex || 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {\n //flatten current level of array or arguments object\n if (!shallow) value = flatten(value, shallow, strict);\n var j = 0, len = value.length;\n output.length += len;\n while (j < len) {\n output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n };\n\n // Flatten out an array, either recursively (by default), or just one level.\n _.flatten = function(array, shallow) {\n return flatten(array, shallow, false);\n };\n\n // Return a version of the array that does not contain the specified value(s).\n _.without = function(array) {\n return _.difference(array, slice.call(arguments, 1));\n };\n\n // Produce a duplicate-free version of the array. If the array has already\n // been sorted, you have the option of using a faster algorithm.\n // Aliased as `unique`.\n _.uniq = _.unique = function(array, isSorted, iteratee, context) {\n if (!_.isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!_.contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!_.contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n };\n\n // Produce an array that contains the union: each distinct element from all of\n // the passed-in arrays.\n _.union = function() {\n return _.uniq(flatten(arguments, true, true));\n };\n\n // Produce an array that contains every item shared between all the\n // passed-in arrays.\n _.intersection = function(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (_.contains(result, item)) continue;\n for (var j = 1; j < argsLength; j++) {\n if (!_.contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n };\n\n // Take the difference between one array and a number of other arrays.\n // Only the elements present in just the first array will remain.\n _.difference = function(array) {\n var rest = flatten(arguments, true, true, 1);\n return _.filter(array, function(value){\n return !_.contains(rest, value);\n });\n };\n\n // Zip together multiple lists into a single array -- elements that share\n // an index go together.\n _.zip = function() {\n return _.unzip(arguments);\n };\n\n // Complement of _.zip. Unzip accepts an array of arrays and groups\n // each array's elements on shared indices\n _.unzip = function(array) {\n var length = array && _.max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = _.pluck(array, index);\n }\n return result;\n };\n\n // Converts lists into objects. Pass either a single array of `[key, value]`\n // pairs, or two parallel arrays of the same length -- one of keys, and one of\n // the corresponding values.\n _.object = function(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n };\n\n // Generator function to create the findIndex and findLastIndex functions\n function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n }\n\n // Returns the first index on an array-like that passes a predicate test\n _.findIndex = createPredicateIndexFinder(1);\n _.findLastIndex = createPredicateIndexFinder(-1);\n\n // Use a comparator function to figure out the smallest index at which\n // an object should be inserted so as to maintain order. Uses binary search.\n _.sortedIndex = function(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n };\n\n // Generator function to create the indexOf and lastIndexOf functions\n function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), _.isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n }\n\n // Return the position of the first occurrence of an item in an array,\n // or -1 if the item is not included in the array.\n // If the array is large and already in sort order, pass `true`\n // for **isSorted** to use binary search.\n _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);\n _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);\n\n // Generate an integer Array containing an arithmetic progression. A port of\n // the native Python `range()` function. See\n // [the Python documentation](http://docs.python.org/library/functions.html#range).\n _.range = function(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n step = step || 1;\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n };\n\n // Function (ahem) Functions\n // ------------------\n\n // Determines whether to execute a function as a constructor\n // or a normal function with the provided arguments\n var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (_.isObject(result)) return result;\n return self;\n };\n\n // Create a function bound to a given object (assigning `this`, and arguments,\n // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n // available.\n _.bind = function(func, context) {\n if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));\n if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');\n var args = slice.call(arguments, 2);\n var bound = function() {\n return executeBound(func, bound, context, this, args.concat(slice.call(arguments)));\n };\n return bound;\n };\n\n // Partially apply a function by creating a version that has had some of its\n // arguments pre-filled, without changing its dynamic `this` context. _ acts\n // as a placeholder, allowing any combination of arguments to be pre-filled.\n _.partial = function(func) {\n var boundArgs = slice.call(arguments, 1);\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n };\n\n // Bind a number of an object's methods to that object. Remaining arguments\n // are the method names to be bound. Useful for ensuring that all callbacks\n // defined on an object belong to it.\n _.bindAll = function(obj) {\n var i, length = arguments.length, key;\n if (length <= 1) throw new Error('bindAll must be passed function names');\n for (i = 1; i < length; i++) {\n key = arguments[i];\n obj[key] = _.bind(obj[key], obj);\n }\n return obj;\n };\n\n // Memoize an expensive function by storing its results.\n _.memoize = function(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!_.has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n };\n\n // Delays a function for the given number of milliseconds, and then calls\n // it with the arguments supplied.\n _.delay = function(func, wait) {\n var args = slice.call(arguments, 2);\n return setTimeout(function(){\n return func.apply(null, args);\n }, wait);\n };\n\n // Defers a function, scheduling it to run after the current call stack has\n // cleared.\n _.defer = _.partial(_.delay, _, 1);\n\n // Returns a function, that, when invoked, will only be triggered at most once\n // during a given window of time. Normally, the throttled function will run\n // as much as it can, without ever going more than once per `wait` duration;\n // but if you'd like to disable the execution on the leading edge, pass\n // `{leading: false}`. To disable execution on the trailing edge, ditto.\n _.throttle = function(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n var later = function() {\n previous = options.leading === false ? 0 : _.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function() {\n var now = _.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n };\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _.debounce = function(func, wait, immediate) {\n var timeout, args, context, timestamp, result;\n\n var later = function() {\n var last = _.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n }\n }\n };\n\n return function() {\n context = this;\n args = arguments;\n timestamp = _.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n };\n\n // Returns the first function passed as an argument to the second,\n // allowing you to adjust arguments, run code before and after, and\n // conditionally execute the original function.\n _.wrap = function(func, wrapper) {\n return _.partial(wrapper, func);\n };\n\n // Returns a negated version of the passed-in predicate.\n _.negate = function(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n };\n\n // Returns a function that is the composition of a list of functions, each\n // consuming the return value of the function that follows.\n _.compose = function() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n };\n\n // Returns a function that will only be executed on and after the Nth call.\n _.after = function(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n };\n\n // Returns a function that will only be executed up to (but not including) the Nth call.\n _.before = function(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n };\n\n // Returns a function that will be executed at most one time, no matter how\n // often you call it. Useful for lazy initialization.\n _.once = _.partial(_.before, 2);\n\n // Object Functions\n // ----------------\n\n // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\n var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\n var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n function collectNonEnumProps(obj, keys) {\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {\n keys.push(prop);\n }\n }\n }\n\n // Retrieve the names of an object's own properties.\n // Delegates to **ECMAScript 5**'s native `Object.keys`\n _.keys = function(obj) {\n if (!_.isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (_.has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve all the property names of an object.\n _.allKeys = function(obj) {\n if (!_.isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve the values of an object's properties.\n _.values = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[keys[i]];\n }\n return values;\n };\n\n // Returns the results of applying the iteratee to each element of the object\n // In contrast to _.map it returns an object\n _.mapObject = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = _.keys(obj),\n length = keys.length,\n results = {},\n currentKey;\n for (var index = 0; index < length; index++) {\n currentKey = keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Convert an object into a list of `[key, value]` pairs.\n _.pairs = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [keys[i], obj[keys[i]]];\n }\n return pairs;\n };\n\n // Invert the keys and values of an object. The values must be serializable.\n _.invert = function(obj) {\n var result = {};\n var keys = _.keys(obj);\n for (var i = 0, length = keys.length; i < length; i++) {\n result[obj[keys[i]]] = keys[i];\n }\n return result;\n };\n\n // Return a sorted list of the function names available on the object.\n // Aliased as `methods`\n _.functions = _.methods = function(obj) {\n var names = [];\n for (var key in obj) {\n if (_.isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n };\n\n // Extend a given object with all the properties in passed-in object(s).\n _.extend = createAssigner(_.allKeys);\n\n // Assigns a given object with all the own properties in the passed-in object(s)\n // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n _.extendOwn = _.assign = createAssigner(_.keys);\n\n // Returns the first key on an object that passes a predicate test\n _.findKey = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = _.keys(obj), key;\n for (var i = 0, length = keys.length; i < length; i++) {\n key = keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n };\n\n // Return a copy of the object only containing the whitelisted properties.\n _.pick = function(object, oiteratee, context) {\n var result = {}, obj = object, iteratee, keys;\n if (obj == null) return result;\n if (_.isFunction(oiteratee)) {\n keys = _.allKeys(obj);\n iteratee = optimizeCb(oiteratee, context);\n } else {\n keys = flatten(arguments, false, false, 1);\n iteratee = function(value, key, obj) { return key in obj; };\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n };\n\n // Return a copy of the object without the blacklisted properties.\n _.omit = function(obj, iteratee, context) {\n if (_.isFunction(iteratee)) {\n iteratee = _.negate(iteratee);\n } else {\n var keys = _.map(flatten(arguments, false, false, 1), String);\n iteratee = function(value, key) {\n return !_.contains(keys, key);\n };\n }\n return _.pick(obj, iteratee, context);\n };\n\n // Fill in a given object with default properties.\n _.defaults = createAssigner(_.allKeys, true);\n\n // Creates an object that inherits from the given prototype object.\n // If additional properties are provided then they will be added to the\n // created object.\n _.create = function(prototype, props) {\n var result = baseCreate(prototype);\n if (props) _.extendOwn(result, props);\n return result;\n };\n\n // Create a (shallow-cloned) duplicate of an object.\n _.clone = function(obj) {\n if (!_.isObject(obj)) return obj;\n return _.isArray(obj) ? obj.slice() : _.extend({}, obj);\n };\n\n // Invokes interceptor with the obj, and then returns obj.\n // The primary purpose of this method is to \"tap into\" a method chain, in\n // order to perform operations on intermediate results within the chain.\n _.tap = function(obj, interceptor) {\n interceptor(obj);\n return obj;\n };\n\n // Returns whether an object has a given set of `key:value` pairs.\n _.isMatch = function(object, attrs) {\n var keys = _.keys(attrs), length = keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n };\n\n\n // Internal recursive comparison function for `isEqual`.\n var eq = function(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // A strict comparison is necessary because `null == undefined`.\n if (a == null || b == null) return a === b;\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&\n _.isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var keys = _.keys(a), key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (_.keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n };\n\n // Perform a deep comparison to check if two objects are equal.\n _.isEqual = function(a, b) {\n return eq(a, b);\n };\n\n // Is a given array, string, or object empty?\n // An \"empty\" object has no enumerable own-properties.\n _.isEmpty = function(obj) {\n if (obj == null) return true;\n if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n return _.keys(obj).length === 0;\n };\n\n // Is a given value a DOM element?\n _.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n };\n\n // Is a given value an array?\n // Delegates to ECMA5's native Array.isArray\n _.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n };\n\n // Is a given variable an object?\n _.isObject = function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n };\n\n // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError.\n _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) {\n _['is' + name] = function(obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n });\n\n // Define a fallback version of the method in browsers (ahem, IE < 9), where\n // there isn't any inspectable \"Arguments\" type.\n if (!_.isArguments(arguments)) {\n _.isArguments = function(obj) {\n return _.has(obj, 'callee');\n };\n }\n\n // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n // IE 11 (#1621), and in Safari 8 (#1929).\n if (typeof /./ != 'function' && typeof Int8Array != 'object') {\n _.isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n }\n\n // Is a given object a finite number?\n _.isFinite = function(obj) {\n return isFinite(obj) && !isNaN(parseFloat(obj));\n };\n\n // Is the given value `NaN`? (NaN is the only number which does not equal itself).\n _.isNaN = function(obj) {\n return _.isNumber(obj) && obj !== +obj;\n };\n\n // Is a given value a boolean?\n _.isBoolean = function(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n };\n\n // Is a given value equal to null?\n _.isNull = function(obj) {\n return obj === null;\n };\n\n // Is a given variable undefined?\n _.isUndefined = function(obj) {\n return obj === void 0;\n };\n\n // Shortcut function for checking if an object has a given property directly\n // on itself (in other words, not on a prototype).\n _.has = function(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n };\n\n // Utility Functions\n // -----------------\n\n // Run Underscore.js in *noConflict* mode, returning the `_` variable to its\n // previous owner. Returns a reference to the Underscore object.\n _.noConflict = function() {\n root._ = previousUnderscore;\n return this;\n };\n\n // Keep the identity function around for default iteratees.\n _.identity = function(value) {\n return value;\n };\n\n // Predicate-generating functions. Often useful outside of Underscore.\n _.constant = function(value) {\n return function() {\n return value;\n };\n };\n\n _.noop = function(){};\n\n _.property = property;\n\n // Generates a function for a given object that returns a given property.\n _.propertyOf = function(obj) {\n return obj == null ? function(){} : function(key) {\n return obj[key];\n };\n };\n\n // Returns a predicate for checking whether an object has a given set of\n // `key:value` pairs.\n _.matcher = _.matches = function(attrs) {\n attrs = _.extendOwn({}, attrs);\n return function(obj) {\n return _.isMatch(obj, attrs);\n };\n };\n\n // Run a function **n** times.\n _.times = function(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n };\n\n // Return a random integer between min and max (inclusive).\n _.random = function(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n };\n\n // A (possibly faster) way to get the current timestamp as an integer.\n _.now = Date.now || function() {\n return new Date().getTime();\n };\n\n // List of HTML entities for escaping.\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n };\n var unescapeMap = _.invert(escapeMap);\n\n // Functions for escaping and unescaping strings to/from HTML interpolation.\n var createEscaper = function(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped\n var source = '(?:' + _.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n _.escape = createEscaper(escapeMap);\n _.unescape = createEscaper(unescapeMap);\n\n // If the value of the named `property` is a function then invoke it with the\n // `object` as context; otherwise, return it.\n _.result = function(object, property, fallback) {\n var value = object == null ? void 0 : object[property];\n if (value === void 0) {\n value = fallback;\n }\n return _.isFunction(value) ? value.call(object) : value;\n };\n\n // Generate a unique integer id (unique within the entire client session).\n // Useful for temporary DOM ids.\n var idCounter = 0;\n _.uniqueId = function(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n };\n\n // By default, Underscore uses ERB-style template delimiters, change the\n // following template settings to use alternative delimiters.\n _.templateSettings = {\n evaluate : /<%([\\s\\S]+?)%>/g,\n interpolate : /<%=([\\s\\S]+?)%>/g,\n escape : /<%-([\\s\\S]+?)%>/g\n };\n\n // When customizing `templateSettings`, if you don't want to define an\n // interpolation, evaluation or escaping regex, we need one that is\n // guaranteed not to match.\n var noMatch = /(.)^/;\n\n // Certain characters need to be escaped so that they can be put into a\n // string literal.\n var escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n var escaper = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\n var escapeChar = function(match) {\n return '\\\\' + escapes[match];\n };\n\n // JavaScript micro-templating, similar to John Resig's implementation.\n // Underscore templating handles arbitrary delimiters, preserves whitespace,\n // and correctly escapes quotes within interpolated code.\n // NB: `oldSettings` only exists for backwards compatibility.\n _.template = function(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = _.defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escaper, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offest.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n try {\n var render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n };\n\n // Add a \"chain\" function. Start chaining a wrapped Underscore object.\n _.chain = function(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n };\n\n // OOP\n // ---------------\n // If Underscore is called as a function, it returns a wrapped object that\n // can be used OO-style. This wrapper holds altered versions of all the\n // underscore functions. Wrapped objects may be chained.\n\n // Helper function to continue chaining intermediate results.\n var result = function(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n };\n\n // Add your own custom functions to the Underscore object.\n _.mixin = function(obj) {\n _.each(_.functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return result(this, func.apply(_, args));\n };\n });\n };\n\n // Add all of the Underscore functions to the wrapper object.\n _.mixin(_);\n\n // Add all mutator Array functions to the wrapper.\n _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return result(this, obj);\n };\n });\n\n // Add all accessor Array functions to the wrapper.\n _.each(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n return result(this, method.apply(this._wrapped, arguments));\n };\n });\n\n // Extracts the result from a wrapped and chained object.\n _.prototype.value = function() {\n return this._wrapped;\n };\n\n // Provide unwrapping proxy for some methods used in engine operations\n // such as arithmetic and JSON stringification.\n _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n _.prototype.toString = function() {\n return '' + this._wrapped;\n };\n\n // AMD registration happens at the end for compatibility with AMD loaders\n // that may not enforce next-turn semantics on modules. Even though general\n // practice for AMD registration is to be anonymous, underscore registers\n // as a named module because, like jQuery, it is a base library that is\n // popular enough to be bundled in a third party lib, but not be part of\n // an AMD load request. Those cases could generate an error when an\n // anonymous define() is called outside of a loader request.\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() {\n return _;\n }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n }\n}.call(this));\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n!function t(e,r){ true?module.exports=r():\"function\"==typeof define&&define.amd?define([],r):\"object\"==typeof exports?exports.Raphael=r():e.Raphael=r()}(this,function(){return function(t){function e(i){if(r[i])return r[i].exports;var n=r[i]={exports:{},id:i,loaded:!1};return t[i].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var r={};return e.m=t,e.c=r,e.p=\"\",e(0)}([function(t,e,r){var i,n;i=[r(1),r(3),r(4)],n=function(t){return t}.apply(e,i),!(void 0!==n&&(t.exports=n))},function(t,e,r){var i,n;i=[r(2)],n=function(t){function e(r){if(e.is(r,\"function\"))return w?r():t.on(\"raphael.DOMload\",r);if(e.is(r,Q))return e._engine.create[z](e,r.splice(0,3+e.is(r[0],$))).add(r);var i=Array.prototype.slice.call(arguments,0);if(e.is(i[i.length-1],\"function\")){var n=i.pop();return w?n.call(e._engine.create[z](e,i)):t.on(\"raphael.DOMload\",function(){n.call(e._engine.create[z](e,i))})}return e._engine.create[z](e,arguments)}function r(t){if(\"function\"==typeof t||Object(t)!==t)return t;var e=new t.constructor;for(var i in t)t[A](i)&&(e[i]=r(t[i]));return e}function i(t,e){for(var r=0,i=t.length;r=1e3&&delete o[l.shift()],l.push(s),o[s]=t[z](e,a),r?r(o[s]):o[s])}return n}function a(){return this.hex}function s(t,e){for(var r=[],i=0,n=t.length;n-2*!e>i;i+=2){var a=[{x:+t[i-2],y:+t[i-1]},{x:+t[i],y:+t[i+1]},{x:+t[i+2],y:+t[i+3]},{x:+t[i+4],y:+t[i+5]}];e?i?n-4==i?a[3]={x:+t[0],y:+t[1]}:n-2==i&&(a[2]={x:+t[0],y:+t[1]},a[3]={x:+t[2],y:+t[3]}):a[0]={x:+t[n-2],y:+t[n-1]}:n-4==i?a[3]=a[2]:i||(a[0]={x:+t[i],y:+t[i+1]}),r.push([\"C\",(-a[0].x+6*a[1].x+a[2].x)/6,(-a[0].y+6*a[1].y+a[2].y)/6,(a[1].x+6*a[2].x-a[3].x)/6,(a[1].y+6*a[2].y-a[3].y)/6,a[2].x,a[2].y])}return r}function o(t,e,r,i,n){var a=-3*e+9*r-9*i+3*n,s=t*a+6*e-12*r+6*i;return t*s-3*e+3*r}function l(t,e,r,i,n,a,s,l,h){null==h&&(h=1),h=h>1?1:h<0?0:h;for(var u=h/2,c=12,f=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],p=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],d=0,g=0;gd;)c/=2,f+=(pW(n,s)||W(e,i)W(a,o))){var l=(t*i-e*r)*(n-s)-(t-r)*(n*o-a*s),h=(t*i-e*r)*(a-o)-(e-i)*(n*o-a*s),u=(t-r)*(a-o)-(e-i)*(n-s);if(u){var c=l/u,f=h/u,p=+c.toFixed(2),d=+f.toFixed(2);if(!(p<+G(t,r).toFixed(2)||p>+W(t,r).toFixed(2)||p<+G(n,s).toFixed(2)||p>+W(n,s).toFixed(2)||d<+G(e,i).toFixed(2)||d>+W(e,i).toFixed(2)||d<+G(a,o).toFixed(2)||d>+W(a,o).toFixed(2)))return{x:c,y:f}}}}function c(t,e){return p(t,e)}function f(t,e){return p(t,e,1)}function p(t,r,i){var n=e.bezierBBox(t),a=e.bezierBBox(r);if(!e.isBBoxIntersect(n,a))return i?0:[];for(var s=l.apply(0,t),o=l.apply(0,r),h=W(~~(s/5),1),c=W(~~(o/5),1),f=[],p=[],d={},g=i?0:[],v=0;v=0&&S<=1.001&&A>=0&&A<=1.001&&(i?g++:g.push({x:C.x,y:C.y,t1:G(S,1),t2:G(A,1)}))}}return g}function d(t,r,i){t=e._path2curve(t),r=e._path2curve(r);for(var n,a,s,o,l,h,u,c,f,d,g=i?0:[],v=0,x=t.length;vi)return i;for(;ra?r=n:i=n,n=(i-r)/2+r}return n}var h=3*e,u=3*(i-e)-h,c=1-h-u,f=3*r,p=3*(n-r)-f,d=1-f-p;return o(t,1/(200*a))}function m(t,e){var r=[],i={};if(this.ms=e,this.times=1,t){for(var n in t)t[A](n)&&(i[ht(n)]=t[n],r.push(ht(n)));r.sort(Bt)}this.anim=i,this.top=r[r.length-1],this.percents=r}function b(r,i,n,a,s,o){n=ht(n);var l,h,u,c=[],f,p,d,v=r.ms,x={},m={},b={};if(a)for(w=0,B=Ee.length;wa*r.top){n=r.percents[w],p=r.percents[w-1]||0,v=v/r.top*(n-p),f=r.percents[w+1],l=r.anim[n];break}a&&i.attr(r.anim[r.percents[w]])}if(l){if(h)h.initstatus=a,h.start=new Date-h.ms*a;else{for(var C in l)if(l[A](C)&&(pt[A](C)||i.paper.customAttributes[A](C)))switch(x[C]=i.attr(C),null==x[C]&&(x[C]=ft[C]),m[C]=l[C],pt[C]){case $:b[C]=(m[C]-x[C])/v;break;case\"colour\":x[C]=e.getRGB(x[C]);var S=e.getRGB(m[C]);b[C]={r:(S.r-x[C].r)/v,g:(S.g-x[C].g)/v,b:(S.b-x[C].b)/v};break;case\"path\":var T=Qt(x[C],m[C]),E=T[1];for(x[C]=T[0],b[C]=[],w=0,B=x[C].length;w',Lt=Nt.firstChild,Lt.style.behavior=\"url(#default#VML)\",!Lt||\"object\"!=typeof Lt.adj)return e.type=R;Nt=null}e.svg=!(e.vml=\"VML\"==e.type),e._Paper=M,e.fn=N=M.prototype=e.prototype,e._id=0,e.is=function(t,e){return e=O.call(e),\"finite\"==e?!at[A](+t):\"array\"==e?t instanceof Array:\"null\"==e&&null===t||e==typeof t&&null!==t||\"object\"==e&&t===Object(t)||\"array\"==e&&Array.isArray&&Array.isArray(t)||tt.call(t).slice(8,-1).toLowerCase()==e},e.angle=function(t,r,i,n,a,s){if(null==a){var o=t-i,l=r-n;return o||l?(180+180*Y.atan2(-l,-o)/U+360)%360:0}return e.angle(t,r,a,s)-e.angle(i,n,a,s)},e.rad=function(t){return t%360*U/180},e.deg=function(t){return Math.round(180*t/U%360*1e3)/1e3},e.snapTo=function(t,r,i){if(i=e.is(i,\"finite\")?i:10,e.is(t,Q)){for(var n=t.length;n--;)if(H(t[n]-r)<=i)return t[n]}else{t=+t;var a=r%t;if(at-i)return r-a+t}return r};var zt=e.createUUID=function(t,e){return function(){return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(t,e).toUpperCase()}}(/[xy]/g,function(t){var e=16*Y.random()|0,r=\"x\"==t?e:3&e|8;return r.toString(16)});e.setWindow=function(r){t(\"raphael.setWindow\",e,T.win,r),T.win=r,T.doc=T.win.document,e._engine.initWin&&e._engine.initWin(T.win)};var Pt=function(t){if(e.vml){var r=/^\\s+|\\s+$/g,i;try{var a=new ActiveXObject(\"htmlfile\");a.write(\"\"),a.close(),i=a.body}catch(s){i=createPopup().document.body}var o=i.createTextRange();Pt=n(function(t){try{i.style.color=I(t).replace(r,R);var e=o.queryCommandValue(\"ForeColor\");return e=(255&e)<<16|65280&e|(16711680&e)>>>16,\"#\"+(\"000000\"+e.toString(16)).slice(-6)}catch(n){return\"none\"}})}else{var l=T.doc.createElement(\"i\");l.title=\"Raphaël Colour Picker\",l.style.display=\"none\",T.doc.body.appendChild(l),Pt=n(function(t){return l.style.color=t,T.doc.defaultView.getComputedStyle(l,R).getPropertyValue(\"color\")})}return Pt(t)},Ft=function(){return\"hsb(\"+[this.h,this.s,this.b]+\")\"},Rt=function(){return\"hsl(\"+[this.h,this.s,this.l]+\")\"},jt=function(){return this.hex},It=function(t,r,i){if(null==r&&e.is(t,\"object\")&&\"r\"in t&&\"g\"in t&&\"b\"in t&&(i=t.b,r=t.g,t=t.r),null==r&&e.is(t,Z)){var n=e.getRGB(t);t=n.r,r=n.g,i=n.b}return(t>1||r>1||i>1)&&(t/=255,r/=255,i/=255),[t,r,i]},qt=function(t,r,i,n){t*=255,r*=255,i*=255;var a={r:t,g:r,b:i,hex:e.rgb(t,r,i),toString:jt};return e.is(n,\"finite\")&&(a.opacity=n),a};e.color=function(t){var r;return e.is(t,\"object\")&&\"h\"in t&&\"s\"in t&&\"b\"in t?(r=e.hsb2rgb(t),t.r=r.r,t.g=r.g,t.b=r.b,t.hex=r.hex):e.is(t,\"object\")&&\"h\"in t&&\"s\"in t&&\"l\"in t?(r=e.hsl2rgb(t),t.r=r.r,t.g=r.g,t.b=r.b,t.hex=r.hex):(e.is(t,\"string\")&&(t=e.getRGB(t)),e.is(t,\"object\")&&\"r\"in t&&\"g\"in t&&\"b\"in t?(r=e.rgb2hsl(t),t.h=r.h,t.s=r.s,t.l=r.l,r=e.rgb2hsb(t),t.v=r.b):(t={hex:\"none\"},t.r=t.g=t.b=t.h=t.s=t.v=t.l=-1)),t.toString=jt,t},e.hsb2rgb=function(t,e,r,i){this.is(t,\"object\")&&\"h\"in t&&\"s\"in t&&\"b\"in t&&(r=t.b,e=t.s,i=t.o,t=t.h),t*=360;var n,a,s,o,l;return t=t%360/60,l=r*e,o=l*(1-H(t%2-1)),n=a=s=r-l,t=~~t,n+=[l,o,0,0,o,l][t],a+=[o,l,l,o,0,0][t],s+=[0,0,o,l,l,o][t],qt(n,a,s,i)},e.hsl2rgb=function(t,e,r,i){this.is(t,\"object\")&&\"h\"in t&&\"s\"in t&&\"l\"in t&&(r=t.l,e=t.s,t=t.h),(t>1||e>1||r>1)&&(t/=360,e/=100,r/=100),t*=360;var n,a,s,o,l;return t=t%360/60,l=2*e*(r<.5?r:1-r),o=l*(1-H(t%2-1)),n=a=s=r-l/2,t=~~t,n+=[l,o,0,0,o,l][t],a+=[o,l,l,o,0,0][t],s+=[0,0,o,l,l,o][t],qt(n,a,s,i)},e.rgb2hsb=function(t,e,r){r=It(t,e,r),t=r[0],e=r[1],r=r[2];var i,n,a,s;return a=W(t,e,r),s=a-G(t,e,r),i=0==s?null:a==t?(e-r)/s:a==e?(r-t)/s+2:(t-e)/s+4,i=(i+360)%6*60/360,n=0==s?0:s/a,{h:i,s:n,b:a,toString:Ft}},e.rgb2hsl=function(t,e,r){r=It(t,e,r),t=r[0],e=r[1],r=r[2];var i,n,a,s,o,l;return s=W(t,e,r),o=G(t,e,r),l=s-o,i=0==l?null:s==t?(e-r)/l:s==e?(r-t)/l+2:(t-e)/l+4,i=(i+360)%6*60/360,a=(s+o)/2,n=0==l?0:a<.5?l/(2*a):l/(2-2*a),{h:i,s:n,l:a,toString:Rt}},e._path2string=function(){return this.join(\",\").replace(xt,\"$1\")};var Dt=e._preload=function(t,e){var r=T.doc.createElement(\"img\");r.style.cssText=\"position:absolute;left:-9999em;top:-9999em\",r.onload=function(){e.call(this),this.onload=null,T.doc.body.removeChild(this)},r.onerror=function(){T.doc.body.removeChild(this)},T.doc.body.appendChild(r),r.src=t};e.getRGB=n(function(t){if(!t||(t=I(t)).indexOf(\"-\")+1)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:a};if(\"none\"==t)return{r:-1,g:-1,b:-1,hex:\"none\",toString:a};!(vt[A](t.toLowerCase().substring(0,2))||\"#\"==t.charAt())&&(t=Pt(t));var r,i,n,s,o,l,h,u=t.match(nt);return u?(u[2]&&(s=ut(u[2].substring(5),16),n=ut(u[2].substring(3,5),16),i=ut(u[2].substring(1,3),16)),u[3]&&(s=ut((l=u[3].charAt(3))+l,16),n=ut((l=u[3].charAt(2))+l,16),i=ut((l=u[3].charAt(1))+l,16)),u[4]&&(h=u[4][q](gt),i=ht(h[0]),\"%\"==h[0].slice(-1)&&(i*=2.55),n=ht(h[1]),\"%\"==h[1].slice(-1)&&(n*=2.55),s=ht(h[2]),\"%\"==h[2].slice(-1)&&(s*=2.55),\"rgba\"==u[1].toLowerCase().slice(0,4)&&(o=ht(h[3])),h[3]&&\"%\"==h[3].slice(-1)&&(o/=100)),u[5]?(h=u[5][q](gt),i=ht(h[0]),\"%\"==h[0].slice(-1)&&(i*=2.55),n=ht(h[1]),\"%\"==h[1].slice(-1)&&(n*=2.55),s=ht(h[2]),\"%\"==h[2].slice(-1)&&(s*=2.55),(\"deg\"==h[0].slice(-3)||\"°\"==h[0].slice(-1))&&(i/=360),\"hsba\"==u[1].toLowerCase().slice(0,4)&&(o=ht(h[3])),h[3]&&\"%\"==h[3].slice(-1)&&(o/=100),e.hsb2rgb(i,n,s,o)):u[6]?(h=u[6][q](gt),i=ht(h[0]),\"%\"==h[0].slice(-1)&&(i*=2.55),n=ht(h[1]),\"%\"==h[1].slice(-1)&&(n*=2.55),s=ht(h[2]),\"%\"==h[2].slice(-1)&&(s*=2.55),(\"deg\"==h[0].slice(-3)||\"°\"==h[0].slice(-1))&&(i/=360),\"hsla\"==u[1].toLowerCase().slice(0,4)&&(o=ht(h[3])),h[3]&&\"%\"==h[3].slice(-1)&&(o/=100),e.hsl2rgb(i,n,s,o)):(u={r:i,g:n,b:s,toString:a},u.hex=\"#\"+(16777216|s|n<<8|i<<16).toString(16).slice(1),e.is(o,\"finite\")&&(u.opacity=o),u)):{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:a}},e),e.hsb=n(function(t,r,i){return e.hsb2rgb(t,r,i).hex}),e.hsl=n(function(t,r,i){return e.hsl2rgb(t,r,i).hex}),e.rgb=n(function(t,e,r){function i(t){return t+.5|0}return\"#\"+(16777216|i(r)|i(e)<<8|i(t)<<16).toString(16).slice(1)}),e.getColor=function(t){var e=this.getColor.start=this.getColor.start||{h:0,s:1,b:t||.75},r=this.hsb2rgb(e.h,e.s,e.b);return e.h+=.075,e.h>1&&(e.h=0,e.s-=.2,e.s<=0&&(this.getColor.start={h:0,s:1,b:e.b})),r.hex},e.getColor.reset=function(){delete this.start},e.parsePathString=function(t){if(!t)return null;var r=Vt(t);if(r.arr)return Yt(r.arr);var i={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},n=[];return e.is(t,Q)&&e.is(t[0],Q)&&(n=Yt(t)),n.length||I(t).replace(yt,function(t,e,r){var a=[],s=e.toLowerCase();if(r.replace(bt,function(t,e){e&&a.push(+e)}),\"m\"==s&&a.length>2&&(n.push([e][P](a.splice(0,2))),s=\"l\",e=\"m\"==e?\"l\":\"L\"),\"r\"==s)n.push([e][P](a));else for(;a.length>=i[s]&&(n.push([e][P](a.splice(0,i[s]))),i[s]););}),n.toString=e._path2string,r.arr=Yt(n),n},e.parseTransformString=n(function(t){if(!t)return null;var r={r:3,s:4,t:2,m:6},i=[];return e.is(t,Q)&&e.is(t[0],Q)&&(i=Yt(t)),i.length||I(t).replace(mt,function(t,e,r){var n=[],a=O.call(e);r.replace(bt,function(t,e){e&&n.push(+e)}),i.push([e][P](n))}),i.toString=e._path2string,i});var Vt=function(t){var e=Vt.ps=Vt.ps||{};return e[t]?e[t].sleep=100:e[t]={sleep:100},setTimeout(function(){for(var r in e)e[A](r)&&r!=t&&(e[r].sleep--,!e[r].sleep&&delete e[r])}),e[t]};e.findDotsAtSegment=function(t,e,r,i,n,a,s,o,l){var h=1-l,u=X(h,3),c=X(h,2),f=l*l,p=f*l,d=u*t+3*c*l*r+3*h*l*l*n+p*s,g=u*e+3*c*l*i+3*h*l*l*a+p*o,v=t+2*l*(r-t)+f*(n-2*r+t),x=e+2*l*(i-e)+f*(a-2*i+e),y=r+2*l*(n-r)+f*(s-2*n+r),m=i+2*l*(a-i)+f*(o-2*a+i),b=h*t+l*r,_=h*e+l*i,w=h*n+l*s,k=h*a+l*o,B=90-180*Y.atan2(v-y,x-m)/U;return(v>y||x=t.x&&e<=t.x2&&r>=t.y&&r<=t.y2},e.isBBoxIntersect=function(t,r){var i=e.isPointInsideBBox;return i(r,t.x,t.y)||i(r,t.x2,t.y)||i(r,t.x,t.y2)||i(r,t.x2,t.y2)||i(t,r.x,r.y)||i(t,r.x2,r.y)||i(t,r.x,r.y2)||i(t,r.x2,r.y2)||(t.xr.x||r.xt.x)&&(t.yr.y||r.yt.y)},e.pathIntersection=function(t,e){return d(t,e)},e.pathIntersectionNumber=function(t,e){return d(t,e,1)},e.isPointInsidePath=function(t,r,i){var n=e.pathBBox(t);return e.isPointInsideBBox(n,r,i)&&d(t,[[\"M\",r,i],[\"H\",n.x2+10]],1)%2==1},e._removedFactory=function(e){return function(){t(\"raphael.log\",null,\"Raphaël: you are calling to method “\"+e+\"” of removed object\",e)}};var Ot=e.pathBBox=function(t){var e=Vt(t);if(e.bbox)return r(e.bbox);if(!t)return{x:0,y:0,width:0,height:0,x2:0,y2:0};t=Qt(t);for(var i=0,n=0,a=[],s=[],o,l=0,h=t.length;l1&&(b=Y.sqrt(b),r=b*r,i=b*i);var _=r*r,w=i*i,k=(s==o?-1:1)*Y.sqrt(H((_*w-_*m*m-w*y*y)/(_*m*m+w*y*y))),B=k*r*m/i+(t+l)/2,C=k*-i*y/r+(e+h)/2,S=Y.asin(((e-C)/i).toFixed(9)),A=Y.asin(((h-C)/i).toFixed(9));S=tA&&(S-=2*U),!o&&A>S&&(A-=2*U)}var T=A-S;if(H(T)>c){var E=A,M=l,N=h;A=S+c*(o&&A>S?1:-1),l=B+r*Y.cos(A),h=C+i*Y.sin(A),p=Ut(l,h,r,i,a,0,o,M,N,[A,E,B,C])}T=A-S;var L=Y.cos(S),z=Y.sin(S),F=Y.cos(A),R=Y.sin(A),j=Y.tan(T/4),I=4/3*r*j,D=4/3*i*j,V=[t,e],O=[t+I*z,e-D*L],W=[l+I*R,h-D*F],G=[l,h];if(O[0]=2*V[0]-O[0],O[1]=2*V[1]-O[1],u)return[O,W,G][P](p);p=[O,W,G][P](p).join()[q](\",\");for(var X=[],$=0,Z=p.length;$\"1e12\"&&(c=.5),H(f)>\"1e12\"&&(f=.5),c>0&&c<1&&(g=$t(t,e,r,i,n,a,s,o,c),d.push(g.x),p.push(g.y)),f>0&&f<1&&(g=$t(t,e,r,i,n,a,s,o,f),d.push(g.x),p.push(g.y)),l=a-2*i+e-(o-2*a+i),h=2*(i-e)-2*(a-i),u=e-i,c=(-h+Y.sqrt(h*h-4*l*u))/2/l,f=(-h-Y.sqrt(h*h-4*l*u))/2/l,H(c)>\"1e12\"&&(c=.5),H(f)>\"1e12\"&&(f=.5),c>0&&c<1&&(g=$t(t,e,r,i,n,a,s,o,c),d.push(g.x),p.push(g.y)),f>0&&f<1&&(g=$t(t,e,r,i,n,a,s,o,f),d.push(g.x),p.push(g.y)),{min:{x:G[z](0,d),y:G[z](0,p)},max:{x:W[z](0,d),y:W[z](0,p)}}}),Qt=e._path2curve=n(function(t,e){var r=!e&&Vt(t);if(!e&&r.curve)return Yt(r.curve);for(var i=Gt(t),n=e&&Gt(e),a={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},s={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},o=(function(t,e,r){var i,n,a={T:1,Q:1};if(!t)return[\"C\",e.x,e.y,e.x,e.y,e.x,e.y];switch(!(t[0]in a)&&(e.qx=e.qy=null),t[0]){case\"M\":e.X=t[1],e.Y=t[2];break;case\"A\":t=[\"C\"][P](Ut[z](0,[e.x,e.y][P](t.slice(1))));break;case\"S\":\"C\"==r||\"S\"==r?(i=2*e.x-e.bx,n=2*e.y-e.by):(i=e.x,n=e.y),t=[\"C\",i,n][P](t.slice(1));break;case\"T\":\"Q\"==r||\"T\"==r?(e.qx=2*e.x-e.qx,e.qy=2*e.y-e.qy):(e.qx=e.x,e.qy=e.y),t=[\"C\"][P](Xt(e.x,e.y,e.qx,e.qy,t[1],t[2]));break;case\"Q\":e.qx=t[1],e.qy=t[2],t=[\"C\"][P](Xt(e.x,e.y,t[1],t[2],t[3],t[4]));break;case\"L\":t=[\"C\"][P](Ht(e.x,e.y,t[1],t[2]));break;case\"H\":t=[\"C\"][P](Ht(e.x,e.y,t[1],e.y));break;case\"V\":t=[\"C\"][P](Ht(e.x,e.y,e.x,t[1]));break;case\"Z\":t=[\"C\"][P](Ht(e.x,e.y,e.X,e.Y))}return t}),l=function(t,e){if(t[e].length>7){t[e].shift();for(var r=t[e];r.length;)u[e]=\"A\",n&&(c[e]=\"A\"),t.splice(e++,0,[\"C\"][P](r.splice(0,6)));t.splice(e,1),g=W(i.length,n&&n.length||0)}},h=function(t,e,r,a,s){t&&e&&\"M\"==t[s][0]&&\"M\"!=e[s][0]&&(e.splice(s,0,[\"M\",a.x,a.y]),r.bx=0,r.by=0,r.x=t[s][1],r.y=t[s][2],g=W(i.length,n&&n.length||0))},u=[],c=[],f=\"\",p=\"\",d=0,g=W(i.length,n&&n.length||0);dn){if(r&&!c.start){if(f=ke(s,o,l[1],l[2],l[3],l[4],l[5],l[6],n-p),u+=[\"C\"+f.start.x,f.start.y,f.m.x,f.m.y,f.x,f.y],a)return u;c.start=u,u=[\"M\"+f.x,f.y+\"C\"+f.n.x,f.n.y,f.end.x,f.end.y,l[5],l[6]].join(),p+=h,s=+l[5],o=+l[6];continue}if(!t&&!r)return f=ke(s,o,l[1],l[2],l[3],l[4],l[5],l[6],n-p),{x:f.x,y:f.y,alpha:f.alpha}}p+=h,s=+l[5],o=+l[6]}u+=l.shift()+l}return c.end=u,f=t?p:r?c:e.findDotsAtSegment(s,o,l[0],l[1],l[2],l[3],l[4],l[5],1),f.alpha&&(f={x:f.x,y:f.y,alpha:f.alpha}),f}},Ce=Be(1),Se=Be(),Ae=Be(0,1);e.getTotalLength=Ce,e.getPointAtLength=Se,e.getSubpath=function(t,e,r){if(this.getTotalLength(t)-r<1e-6)return Ae(t,e).end;var i=Ae(t,r,1);return e?Ae(i,e).end:i},ye.getTotalLength=function(){var t=this.getPath();if(t)return this.node.getTotalLength?this.node.getTotalLength():Ce(t)},ye.getPointAtLength=function(t){var e=this.getPath();if(e)return Se(e,t)},ye.getPath=function(){var t,r=e._getPath[this.type];if(\"text\"!=this.type&&\"set\"!=this.type)return r&&(t=r(this)),t},ye.getSubpath=function(t,r){var i=this.getPath();if(i)return e.getSubpath(i,t,r)};var Te=e.easing_formulas={linear:function(t){return t},\"<\":function(t){return X(t,1.7)},\">\":function(t){return X(t,.48)},\"<>\":function(t){var e=.48-t/1.04,r=Y.sqrt(.1734+e*e),i=r-e,n=X(H(i),1/3)*(i<0?-1:1),a=-r-e,s=X(H(a),1/3)*(a<0?-1:1),o=n+s+.5;return 3*(1-o)*o*o+o*o*o},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){t-=1;var e=1.70158;return t*t*((e+1)*t+e)+1},elastic:function(t){return t==!!t?t:X(2,-10*t)*Y.sin((t-.075)*(2*U)/.3)+1},bounce:function(t){var e=7.5625,r=2.75,i;return t<1/r?i=e*t*t:t<2/r?(t-=1.5/r,i=e*t*t+.75):t<2.5/r?(t-=2.25/r,i=e*t*t+.9375):(t-=2.625/r,i=e*t*t+.984375),i}};Te.easeIn=Te[\"ease-in\"]=Te[\"<\"],Te.easeOut=Te[\"ease-out\"]=Te[\">\"],Te.easeInOut=Te[\"ease-in-out\"]=Te[\"<>\"],Te[\"back-in\"]=Te.backIn,Te[\"back-out\"]=Te.backOut;var Ee=[],Me=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){setTimeout(t,16)},Ne=function(){for(var r=+new Date,i=0;i1&&!n.next){for(v in u)u[A](v)&&(g[v]=n.totalOrigin[v]);n.el.attr(g),b(n.anim,n.el,n.anim.percents[0],null,n.totalOrigin,n.repeat-1)}n.next&&!n.stop&&b(n.anim,n.el,n.next,null,n.totalOrigin,n.repeat)}}}Ee.length&&Me(Ne)},Le=function(t){return t>255?255:t<0?0:t};ye.animateWith=function(t,r,i,n,a,s){var o=this;if(o.removed)return s&&s.call(o),o;var l=i instanceof m?i:e.animation(i,n,a,s),h,u;b(l,o,l.percents[0],null,o.attr());for(var c=0,f=Ee.length;cl&&(l=u)}l+=\"%\",!t[l].callback&&(t[l].callback=n)}return new m(t,r)},ye.animate=function(t,r,i,n){var a=this;if(a.removed)return n&&n.call(a),a;var s=t instanceof m?t:e.animation(t,r,i,n);return b(s,a,s.percents[0],null,a.attr()),a},ye.setTime=function(t,e){return t&&null!=e&&this.status(t,G(e,t.ms)/t.ms),this},ye.status=function(t,e){var r=[],i=0,n,a;if(null!=e)return b(t,this,-1,G(e,1)),this;for(n=Ee.length;i1)for(var i=0,n=r.length;i.5)-1;l(f-.5,2)+l(p-.5,2)>.25&&(p=a.sqrt(.25-l(f-.5,2))*n+.5)&&.5!=p&&(p=p.toFixed(5)-1e-5*n)}return c}),n=n.split(/\\s*\\-\\s*/),\"linear\"==h){var b=n.shift();if(b=-i(b),isNaN(b))return null;var _=[0,0,a.cos(t.rad(b)),a.sin(t.rad(b))],w=1/(s(o(_[2]),o(_[3]))||1);_[2]*=w,_[3]*=w,_[2]<0&&(_[0]=-_[2],_[2]=0),_[3]<0&&(_[1]=-_[3],_[3]=0)}var k=t._parseDots(n);if(!k)return null;if(u=u.replace(/[\\(\\)\\s,\\xb0#]/g,\"_\"),e.gradient&&u!=e.gradient.id&&(g.defs.removeChild(e.gradient),delete e.gradient),!e.gradient){y=v(h+\"Gradient\",{id:u}),e.gradient=y,v(y,\"radial\"==h?{fx:f,fy:p}:{x1:_[0],y1:_[1],x2:_[2],y2:_[3],gradientTransform:e.matrix.invert()}),g.defs.appendChild(y);for(var B=0,C=k.length;B1?z.opacity/100:z.opacity});case\"stroke\":z=t.getRGB(g),l.setAttribute(d,z.hex),\"stroke\"==d&&z[e](\"opacity\")&&v(l,{\"stroke-opacity\":z.opacity>1?z.opacity/100:z.opacity}),\"stroke\"==d&&i._.arrows&&(\"startString\"in i._.arrows&&_(i,i._.arrows.startString),\"endString\"in i._.arrows&&_(i,i._.arrows.endString,1));break;case\"gradient\":(\"circle\"==i.type||\"ellipse\"==i.type||\"r\"!=r(g).charAt())&&x(i,g);break;case\"opacity\":u.gradient&&!u[e](\"stroke-opacity\")&&v(l,{\"stroke-opacity\":g>1?g/100:g});case\"fill-opacity\":if(u.gradient){P=t._g.doc.getElementById(l.getAttribute(\"fill\").replace(/^url\\(#|\\)$/g,c)),P&&(F=P.getElementsByTagName(\"stop\"),v(F[F.length-1],{\"stop-opacity\":g}));break}default:\"font-size\"==d&&(g=n(g,10)+\"px\");var R=d.replace(/(\\-.)/g,function(t){return t.substring(1).toUpperCase()});l.style[R]=g,i._.dirty=1,l.setAttribute(d,g)}}S(i,a),l.style.visibility=f},C=1.2,S=function(i,a){if(\"text\"==i.type&&(a[e](\"text\")||a[e](\"font\")||a[e](\"font-size\")||a[e](\"x\")||a[e](\"y\"))){var s=i.attrs,o=i.node,l=o.firstChild?n(t._g.doc.defaultView.getComputedStyle(o.firstChild,c).getPropertyValue(\"font-size\"),10):10;if(a[e](\"text\")){for(s.text=a.text;o.firstChild;)o.removeChild(o.firstChild);for(var h=r(a.text).split(\"\\n\"),u=[],f,p=0,d=h.length;p\"));var Z=X.getBoundingClientRect();m.W=f.w=(Z.right-Z.left)/U,m.H=f.h=(Z.bottom-Z.top)/U,m.X=f.x,m.Y=f.y+m.H/2,(\"x\"in l||\"y\"in l)&&(m.path.v=t.format(\"m{0},{1}l{2},{1}\",a(f.x*b),a(f.y*b),a(f.x*b)+1));for(var Q=[\"x\",\"y\",\"text\",\"font\",\"font-family\",\"font-weight\",\"font-style\",\"font-size\"],J=0,K=Q.length;J.25&&(r=n.sqrt(.25-l(e-.5,2))*(2*(r>.5)-1)+.5),f=e+p+r),d}),a=a.split(/\\s*\\-\\s*/),\"linear\"==c){var g=a.shift();if(g=-i(g),isNaN(g))return null}var v=t._parseDots(a);if(!v)return null;if(e=e.shape||e.node,v.length){e.removeChild(s),s.on=!0,s.method=\"none\",s.color=v[0].color,s.color2=v[v.length-1].color;for(var x=[],y=0,m=v.length;y')}}catch(r){N=function(t){return e.createElement(\"<\"+t+' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"rvml\">')}}},t._engine.initWin(t._g.win),t._engine.create=function(){var e=t._getContainer.apply(0,arguments),r=e.container,i=e.height,n,a=e.width,s=e.x,o=e.y;if(!r)throw new Error(\"VML container not found.\");var l=new t._Paper,h=l.canvas=t._g.doc.createElement(\"div\"),u=h.style;return s=s||0,o=o||0,a=a||512,i=i||342,l.width=a,l.height=i,a==+a&&(a+=\"px\"),i==+i&&(i+=\"px\"),l.coordsize=1e3*b+p+1e3*b,l.coordorigin=\"0 0\",l.span=t._g.doc.createElement(\"span\"),l.span.style.cssText=\"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;\",h.appendChild(l.span),u.cssText=t.format(\"top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden\",a,i),1==r?(t._g.doc.body.appendChild(h),u.left=s+\"px\",u.top=o+\"px\",u.position=\"absolute\"):r.firstChild?r.insertBefore(h,r.firstChild):r.appendChild(h),l.renderfix=function(){},l},t.prototype.clear=function(){t.eve(\"raphael.clear\",this),this.canvas.innerHTML=d,this.span=t._g.doc.createElement(\"span\"),this.span.style.cssText=\"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;\",this.canvas.appendChild(this.span),this.bottom=this.top=null},t.prototype.remove=function(){t.eve(\"raphael.remove\",this),this.canvas.parentNode.removeChild(this.canvas);for(var e in this)this[e]=\"function\"==typeof this[e]?t._removedFactory(e):null;return!0};var L=t.st;for(var z in M)M[e](z)&&!L[e](z)&&(L[z]=function(t){return function(){var e=arguments;return this.forEach(function(r){r[t].apply(r,e)})}}(z))}}.apply(e,i),!(void 0!==n&&(t.exports=n))}])});\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// jtab.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 5ceae7274958666ab7d7","/**\n * JTab - Javascript/CSS Guitar Chord and Tab Notation for the Web.\n * Version 1.3.1\n * Written by Paul Gallagher (http://tardate.com), 2009. (original version and maintainer)\n * Contributions:\n * Jason Ong (https://github.com/jasonong)\n * Bruno Bornsztein (https://github.com/bborn)\n * Binary Bit LAN (https://github.com/binarybitlan)\n * See:\n * http://jtab.tardate.com : more information on availability, configuration and use.\n * http://github.com/tardate/jtab/tree/master : source code repository, wiki, documentation\n *\n * This library also depends on the following two libraries that must be loaded for it to work:\n * jQuery - http://www.jquery.com/\n * Raphael - http://raphaeljs.com/\n *\n *\n * This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General\n * Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option)\n * any later version.\n *\n * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied\n * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to\n * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n */\n\nvar _ = require('underscore');\nvar Raphael = require('raphael');\n//\n// define the jtab class\n//\n\nvar jtab = {\n Version : '1.3.1',\n element_count:0, //TODO:\n Chords : {\n // chord data - currently explicit representation for 6 string guitar, standard tuning only, and\n // each chord is an array of alternate positions\n // 0 : 1st (open) position\n // 1 : 1st barre position, generally at 12/13/14th fret\n // - minimum, only required for CAGED chords where open strings are used in the 1st (open) position\n // since the main purpose of this is to provide barre fingering positions for CAGED-based chords\n // 2.. : alternative positions/fingerings\n // each position is an array comprising: 1. base fret (0==nut); 2. 6x note definitions (strings 6,5,4,3,2,1)\n // each note is an array: (fret position), (left hand fingering if applicable 1,2,3,4,T)\n // fret position: -1 = muted/not played; 0 = open; 1,2,3... = fret position\n C : [ [ 0, [-1 ], [3,3], [2,2], [0 ], [1,1], [0 ] ], [ 12, [-1,-1], [15,4], [14,3], [12,1], [13,2], [12,1 ] ] ],\n Cm : [ [ 0, [-1 ], [3,4], [1,2], [0 ], [1,1], [-1 ] ], [ 12, [-1,-1], [15,4], [13,3], [12,1], [13,2], [-1,-1] ] ],\n C6 : [ [ 0, [-1 ], [0 ], [2,2], [2,3], [1,1], [3,4] ], [ 12, [-1,-1], [12,1], [14,3], [14,3], [13,2], [15,4] ] ],\n Cm6 : [ [ 0, [-1 ], [-1 ], [1,1], [2,3], [1,2], [3,4] ], [ ] ],\n C69 : [ [ 0, [-1 ], [3,2], [2,1], [2,1], [3,3], [3,4] ], [ ] ],\n C7 : [ [ 0, [-1 ], [3,3], [2,2], [3,4], [1,1], [0 ] ], [ 12, [-1,-1], [15,3], [14,2], [15,4], [13,1], [12, ] ] ],\n Cm7 : [ [ 0, [-1 ], [-1 ], [1,1], [3,3], [1,1], [3,4] ], [ ] ],\n Cmaj7 : [ [ 0, [-1 ], [3,3], [2,2], [0 ], [0 ], [0 ] ], [ 12, [-1,-1], [15,4], [14,3], [12,1], [12,1], [12,1] ] ],\n C7b5 : [ [ 2, [-1 ], [3,1], [4,3], [3,2], [5,4], [-1 ] ], [ ] ],\n \"C7#5\" : [ [ 0, [-1 ], [-1 ], [2,2], [3,3], [1,1], [4,4] ], [ ] ],\n \"Cm7b5\" : [ [ 0, [-1 ], [3,1], [4,3], [3,2], [4,4], [-1 ] ], [ ] ],\n C7b9 : [ [ 0, [-1 ], [3,3], [2,1], [3,4], [2,2], [0 ] ], [ ] ],\n C9 : [ [ 0, [-1 ], [3,2], [2,1], [3,3], [3,4], [-1 ] ], [ ] ],\n Cm9 : [ [ 0, [-1 ], [3,2], [1,1], [3,3], [3,3], [3,3] ], [ ] ],\n Cmaj9 : [ [ 0, [-1 ], [3,3], [0 ], [0 ], [0 ], [0 ] ], [ 12, [-1 ], [15,3], [12,1], [12,1], [12,1], [12,1] ] ],\n Cadd9 : [ [ 0, [-1 ], [3,2], [2,1], [0 ], [3,3], [0 ] ], [ 12, [-1 ], [15,3], [14,2], [12,1], [15,4], [12,1] ] ],\n C13 : [ [ 2, [-1 ], [3,1], [5,2], [3,1], [5,3], [5,4] ], [ ] ],\n Csus2 : [ [ 2, [ -1], [3,1], [5,3], [5,4], [3,1], [3,1] ], [ ] ],\n Csus4 : [ [ 2, [ -1], [3,1], [5,2], [5,3], [6,4], [3,1] ], [ ] ],\n Cdim : [ [ 0, [-1 ], [3,3], [4,4], [2,2], [1,1], [-1 ] ], [ ] ],\n Cdim7 : [ [ 0, [-1 ], [-1 ], [1,1], [2,3], [1,2], [2,4] ], [ ] ],\n Caug : [ [ 0, [-1 ], [-1 ], [2,2], [1,1], [1,1], [4,4] ], [ ] ],\n\n \"C#\" : [ [ 0, [-1 ], [4,4], [3,4], [1,1], [2,2], [1,1] ], [ ] ],\n \"C#m\" : [ [ 0, [-1 ], [-1 ], [2,2], [1,1], [2,3], [0 ] ], [ ] ],\n \"C#6\" : [ [ 0, [-1 ], [-1 ], [3,2], [3,3], [2,1], [4,4] ], [ ] ],\n \"C#m6\" : [ [ 0, [-1 ], [4,3], [2,1], [3,2], [2,1], [4,4] ], [ ] ],\n \"C#69\" : [ [ 2, [-1 ], [4,2], [3,1], [3,1], [4,3], [4,4] ], [ ] ],\n \"C#7\" : [ [ 0, [-1 ], [-1 ], [3,2], [4,3], [2,1], [4,4] ], [ ] ],\n \"C#m7\" : [ [ 0, [-1 ], [-1 ], [2,1], [4,3], [2,1], [4,4] ], [ ] ],\n \"C#maj7\": [ [ 0, [-1 ], [4,4], [3,3], [1,1], [1,1], [1,1] ], [ ] ],\n \"C#7b5\" : [ [ 0, [3,2], [0 ], [3,3], [4,4], [2,1], [-1 ] ], [ ] ],\n \"C#7#5\" : [ [ 0, [-1 ], [4,3], [3,2], [2,1], [0 ], [-1 ] ], [ ] ],\n \"C#m7b5\": [ [ 0, [-1 ], [2,1], [2,2], [0 ], [2,3], [0 ] ], [ ] ],\n \"C#7b9\" : [ [ 0, [-1 ], [4,2], [3,1], [4,3], [3,1], [4,4] ], [ ] ],\n \"C#9\" : [ [ 3, [-1 ], [4,1], [6,2], [6,3], [4,1], [4,1] ], [ ] ],\n \"C#m9\" : [ [ 0, [0 ], [2,2], [1,1], [1,1], [2,3], [0 ] ], [ ] ],\n \"C#maj9\": [ [ 0, [-1 ], [4,4], [1,1], [1,1], [1,1], [1,1] ], [ ] ],\n \"C#add9\": [ [ 0, [1,1], [-1 ], [1,1], [1,1], [2,2], [1,1] ], [ ] ],\n \"C#13\" : [ [ 3, [-1 ], [4,1], [6,2], [4,1], [6,3], [6,4] ], [ ] ],\n \"C#sus2\": [ [ 0, [-1 ], [-1 ], [3,3], [3,4], [1,1], [1,1] ], [ ] ],\n \"C#sus4\": [ [ 0, [-1 ], [-1 ], [3,2], [3,3], [4,4], [1,1] ], [ ] ],\n \"C#dim\" : [ [ 0, [-1 ], [-1 ], [2,1], [3,3], [2,2], [3,4] ], [ ] ],\n \"C#dim7\": [ [ 0, [-1 ], [-1 ], [2,1], [3,3], [2,2], [3,4] ], [ ] ],\n \"C#aug\" : [ [ 0, [-1 ], [4,4], [3,3], [2,1], [2,2], [-1 ] ], [ ] ],\n\n\n D : [ [ 0, [-1 ], [0 ], [0 ], [2,1], [3,3], [2,2] ], [ 12, [-1,-1], [12,1], [12,1], [14,3], [15,4], [14,2] ] ],\n Dm : [ [ 0, [-1 ], [0 ], [0 ], [2,2], [3,3], [1,1] ], [ 12, [-1,-1], [12,1], [12,1], [14,3], [15,4], [13,2] ] ],\n D6 : [ [ 0, [-1 ], [0 ], [0 ], [2,2], [0 ], [2,3] ], [ 12, [-1,-1], [12,1], [12,1], [14,3], [12,1], [14,4] ] ],\n Dm6 : [ [ 0, [-1 ], [2,2], [0 ], [2,3], [0 ], [1,1] ], [ 12, [-1,-1], [14,3], [12,1], [14,4], [12,1], [1,2] ] ],\n D69 : [ [ 3, [-1 ], [5,2], [4,1], [4,1], [5,3], [5,4] ], [ ] ],\n D7 : [ [ 0, [-1 ], [0 ], [0 ], [2,2], [1,1], [2,3] ], [ 12, [-1,-1], [12,1], [12,1], [14,3], [13,2], [14,4] ] ],\n Dm7 : [ [ 0, [-1 ], [-1 ], [0 ], [2,2], [1,1], [1,1] ], [ 12, [-1,-1], [-1,-1], [12,1], [14,4], [13,2], [13,3] ] ],\n Dmaj7 : [ [ 0, [-1 ], [5,4], [4,3], [2,1], [2,1], [2,1] ], [ ] ],\n D7b5 : [ [ 4, [-1 ], [5,1], [6,3], [5,2], [7,4], [-1 ] ], [ ] ],\n \"D7#5\" : [ [ 0, [-1 ], [-1 ], [0 ], [4,3], [1,1], [2,2] ], [ 12, [-1,-1], [-1,-1], [12,1], [16,4], [13,2], [14,3] ] ],\n Dm7b5 : [ [ 0, [-1 ], [-1 ], [0 ], [1,1], [1,1], [1,1] ], [ 12, [-1,-1], [-1,-1], [12,1], [12,2], [12,3], [12,4] ] ],\n D7b9 : [ [ 3, [-1 ], [5,2], [4,1], [5,3], [4,1], [5,4] ], [ ] ],\n D9 : [ [ 0, [2,2], [-1 ], [0 ], [2,3], [1,1], [0 ] ], [ 12, [14,4 ], [-1,-1], [12,1], [14,3], [13,2], [12,1] ] ],\n Dm9 : [ [ 0, [-1 ], [-1 ], [3,3], [2,2], [1,1], [0 ] ], [ 12, [-1,-1], [-1,-1], [15,4], [14,3], [13,2], [12,1] ] ],\n Dmaj9 : [ [ 0, [-1 ], [5,4], [2,1], [2,1], [2,1], [2,1] ], [ ] ],\n Dadd9 : [ [ 0, [-1 ], [-1 ], [0 ], [2,1], [3,2], [0 ] ], [ 12, [-1,-1], [-1,-1], [12,1], [14,3], [15,4], [12,1] ] ],\n D13 : [ [ 4, [-1 ], [5,1], [7,2], [5,1], [7,3], [7,4] ], [ ] ],\n Dsus2 : [ [ 0, [-1 ], [-1 ], [0 ], [2,1], [3,3], [0 ] ], [ 12, [-1,-1], [-1,-1], [12,1], [14,3], [15,4], [12,1] ] ],\n Dsus4 : [ [ 0, [-1 ], [-1 ], [0 ], [2,1], [3,3], [3,4] ], [ 12, [-1,-1], [-1,-1], [12,1], [14,2], [15,3], [15,4] ] ],\n Ddim : [ [ 0, [-1 ], [-1 ], [0 ], [1,1], [0 ], [1,2] ], [ 12, [-1,-1], [-1,-1], [12,1], [13,2], [12,1], [13,3] ] ],\n Ddim7 : [ [ 0, [-1 ], [2,3], [0 ], [1,1], [0 ], [1,2] ], [ 12, [-1,-1], [14,4], [12,1], [13,2], [12,1], [13,3] ] ],\n Daug : [ [ 0, [-1 ], [-1 ], [0 ], [3,2], [3,3], [2,1] ], [ 12, [-1,-1], [-1,-1], [12,1], [15,3], [15,4], [14,2] ] ],\n\n \"Eb\" : [ [ 0, [-1 ], [-1 ], [5,4], [3,1], [4,3], [3,2] ], [ ] ],\n \"Ebm\" : [ [ 0, [-1 ], [-1 ], [4,3], [3,2], [4,4], [2,1] ], [ ] ],\n \"Eb6\" : [ [ 0, [-1 ], [3,1], [5,3], [3,1], [4,2], [3,1] ], [ ] ],\n \"Ebm6\" : [ [ 0, [-1 ], [-1 ], [1,1], [3,3], [1,1], [2,2] ], [ ] ],\n \"Eb69\" : [ [ 0, [-1 ], [-1 ], [1,1], [0 ], [1,2], [1,3] ], [ ] ],\n \"Eb7\" : [ [ 0, [-1 ], [-1 ], [1,1], [3,3], [2,2], [3,4] ], [ ] ],\n \"Ebm7\" : [ [ 0, [-1 ], [-1 ], [1,1], [3,4], [2,2], [2,3] ], [ ] ],\n \"Ebmaj7\": [ [ 0, [-1 ], [-1 ], [1,1], [3,2], [3,3], [3,4] ], [ ] ],\n \"Eb7b5\" : [ [ 0, [-1 ], [-1 ], [1,1], [2,2], [2,3], [4,4] ], [ ] ],\n \"Eb7#5\" : [ [ 0, [-1 ], [-1 ], [1,1], [4,4], [2,2], [3,3] ], [ ] ],\n \"Ebm7b5\": [ [ 0, [-1 ], [-1 ], [1,1], [2,2], [2,3], [2,4] ], [ ] ],\n \"Eb7b9\" : [ [ 0, [-1 ], [-1 ], [1,1], [0 ], [2,3], [0 ] ], [ ] ],\n \"Eb9\" : [ [ 0, [3,4], [1,1], [1,1], [0 ], [2,1], [1,1] ], [ ] ],\n \"Ebm9\" : [ [ 0, [2,2], [1,1], [1,1], [3,4], [2,3], [1,1] ], [ ] ],\n \"Ebmaj9\": [ [ 0, [-1 ], [-1 ], [1,1], [0 ], [3,4], [1,2] ], [ ] ],\n \"Ebadd9\": [ [ 0, [3,4], [2,2], [2,2], [0 ], [-1 ], [1,1] ], [ ] ],\n \"Eb13\" : [ [ 4, [-1 ], [6,2], [5,1], [6,3], [8,4], [8,4] ], [ ] ],\n \"Ebsus2\": [ [ 0, [1,1], [1,1], [1,1], [3,3], [-1 ], [1,1] ], [ ] ],\n \"Ebsus4\": [ [ 0, [-1 ], [-1 ], [1,1], [3,3], [4,4], [4,4] ], [ ] ],\n \"Ebdim\" : [ [ 0, [-1 ], [-1 ], [1,1], [2,3], [1,2], [2,4] ], [ ] ],\n \"Ebdim7\": [ [ 0, [-1 ], [-1 ], [1,1], [2,3], [1,2], [2,4] ], [ ] ],\n \"Ebaug\" : [ [ 0, [3,3], [2,2], [1,1], [0 ], [0 ], [3,4] ], [ ] ],\n\n E : [ [ 0, [ 0 ], [2,2], [2,3], [1,1], [0 ], [0 ] ], [ 12, [ 12,1], [14,3], [14,4], [13,2], [12,1], [12,1] ] ],\n Em : [ [ 0, [ 0 ], [2,2], [2,3], [0 ], [0 ], [0 ] ], [ 12, [ 12,1], [14,3], [14,4], [12,1], [12,1], [12,1] ] ],\n E6 : [ [ 0, [ 0 ], [2,2], [2,3], [1,1], [2,4], [0 ] ], [ 12, [ 12,1], [14,3], [14,3], [13,2], [14,4], [12,1] ] ],\n Em6 : [ [ 0, [ 0 ], [2,1], [2,2], [0 ], [2,3], [0 ] ], [ 12, [ 12,1], [14,2], [14,3], [12,1], [14,4], [12,1] ] ],\n E69 : [ [ 0, [-1 ], [2,2], [2,2], [1,1], [2,3], [2,3] ], [ ] ],\n E7 : [ [ 0, [ 0 ], [2,2], [0 ], [1,1], [0 ], [0 ] ], [ 12, [ 12,1], [14,3], [12,1], [13,2], [12,1], [12,1] ] ],\n Em7 : [ [ 0, [ 0 ], [2,2], [2,3], [0 ], [3,4], [0 ] ], [ 12, [ 12,1], [14,2], [14,3], [12,1], [15,4], [12,1] ] ],\n Emaj7 : [ [ 0, [ 0 ], [2,3], [1,1], [1,2], [0 ], [0 ] ], [ 12, [ 12,1], [14,4], [13,2], [13,3], [12,1], [12,1] ] ],\n E7b5 : [ [ 0, [-1 ], [1,1], [0 ], [1,2], [3,4], [0 ] ], [ 12, [-1,-1], [13,2], [12,1], [13,3], [15,4], [12,1] ] ],\n \"E7#5\" : [ [ 0, [0 ], [3,4], [0 ], [1,1], [1,2], [-1 ] ], [ 12, [ 12,1], [15,4], [12,1], [13,3], [13,2], [-1 ] ] ],\n Em7b5 : [ [ 0, [-1 ], [-1 ], [2,1], [3,2], [3,3], [3,4] ], [ ] ],\n E7b9 : [ [ 0, [0 ], [2,3], [0 ], [1,1], [0 ], [1,2] ], [ 12, [ 12,1], [14,4], [12,1], [13,3], [12,1], [13,2] ] ],\n E9 : [ [ 0, [0 ], [2,2], [0 ], [1,1], [0 ], [2,3] ], [ 12, [ 12,1], [14,3], [12,1], [13,2], [12,1], [14,4] ] ],\n Em9 : [ [ 0, [0 ], [2,1], [0 ], [0 ], [0 ], [2,2] ], [ 12, [ 12,1], [14,2], [12,1], [12,1], [12,1], [14,4] ] ],\n Emaj9 : [ [ 0, [0 ], [2,2], [1,1], [1,1], [0 ], [2,4] ], [ 12, [ 12,1], [14,3], [13,2], [13,2], [12,1], [14,4] ] ],\n Eadd9 : [ [ 0, [2,2], [2,3], [2,4], [1,1], [0 ], [0 ] ], [ 12, [ 14,3], [14,3], [14,4], [13,2], [12,1], [12,1] ] ],\n E13 : [ [ 0, [0 ], [2,2], [0 ], [1,1], [2,3], [0 ] ], [ 12, [ 12,1], [14,3], [12,1], [13,2], [14,4], [12,1] ] ],\n Esus2 : [ [ 0, [ -1], [2,1], [4,3], [4,4], [-1 ], [0 ] ], [ 12, [ -1,-1], [14,2], [16,3], [16,4], [-1 ], [12,1] ] ],\n Esus4 : [ [ 0, [ 0 ], [2,2], [2,3], [2,4], [0 ], [0 ] ], [ 12, [ 12,1], [14,2], [14,3], [14,4], [12,1], [12,1] ] ],\n Edim : [ [ 0, [-1 ], [1,1], [2,2], [3,4], [2,3], [-1 ] ], [ ] ],\n Edim7 : [ [ 0, [-1 ], [-1 ], [2,1], [3,3], [2,2], [3,4] ], [ ] ],\n Eaug : [ [ 0, [ 0 ], [3,4], [2,3], [1,1], [1,2], [0 ] ], [ 12, [ 12,1], [15,4], [14,3], [13,2], [13,2], [12,1] ] ],\n\n F : [ [ 0, [1,1], [3,3], [3,4], [2,2], [1,1], [1,1] ], [ ] ],\n Fm : [ [ 0, [1,1], [3,3], [3,4], [1,1], [1,1], [1,1] ], [ ] ],\n F6 : [ [ 0, [-1 ], [3,2], [3,3], [2,1], [3,4], [-1 ] ], [ ] ],\n Fm6 : [ [ 0, [-1 ], [-1 ], [0 ], [1,1], [1,1], [1,1] ], [ ] ],\n F69 : [ [ 0, [1,1], [0 ], [0 ], [0 ], [1,2], [1,3] ], [ ] ],\n F7 : [ [ 0, [1,1], [3,3], [1,1], [2,2], [1,1], [1,1] ], [ ] ],\n Fm7 : [ [ 0, [1,1], [3,3], [3,4], [1,1], [4,4], [1,1] ], [ ] ],\n Fmaj7 : [ [ 0, [1,1], [-1 ], [2,3], [2,4], [1,2], [-1 ] ], [ ] ],\n F7b5 : [ [ 0, [1,1], [-1 ], [1,2], [2,3], [0 ], [-1 ] ], [ ] ],\n \"F7#5\" : [ [ 0, [1,1], [-1 ], [1,2], [2,3], [2,4], [-1 ] ], [ ] ],\n Fm7b5 : [ [ 2, [-1 ], [-1 ], [3,1], [4,2], [4,3], [4,4] ], [ ] ],\n F7b9 : [ [ 0, [-1 ], [-1 ], [3,2], [2,1], [4,4], [2,1] ], [ ] ],\n F9 : [ [ 0, [3,3], [0 ], [3,4], [2,2], [1,1], [1,1] ], [ ] ],\n Fm9 : [ [ 0, [-1 ], [-1 ], [1,1], [1,1], [1,1], [3,4] ], [ ] ],\n Fmaj9 : [ [ 0, [0 ], [0 ], [3,3], [0 ], [1,1], [3,4] ], [ ] ],\n Fadd9 : [ [ 0, [-1 ], [-1 ], [3,3], [2,2], [1,1], [3,4] ], [ ] ],\n F13 : [ [ 0, [1,1], [0 ], [1,2], [3,4], [3,4], [3,4] ], [ ] ],\n Fsus2 : [ [ 0, [-1 ], [3,3], [3,4], [0 ], [1,1], [1,1] ], [ ] ],\n Fsus4 : [ [ 0, [1,1], [3,2], [3,3], [3,4], [1,1], [1,1] ], [ ] ],\n Fdim : [ [ 0, [-1 ], [-1 ], [0 ], [1,1], [0 ], [1,2] ], [ ] ],\n Fdim7 : [ [ 0, [-1 ], [2,3], [0 ], [1,1], [0 ], [1,2] ], [ ] ],\n Faug : [ [ 0, [1,1], [-1 ], [3,4], [2,2], [2,3], [1,1] ], [ ] ],\n\n \"F#\" : [ [ 0, [2,1], [4,3], [4,4], [3,2], [2,1], [2,1] ], [ ] ],\n \"F#m\" : [ [ 0, [2,1], [4,3], [4,4], [2,1], [2,1], [2,1] ], [ ] ],\n \"F#6\" : [ [ 0, [2,1], [4,3], [-1 ], [3,2], [4,4], [-1 ] ], [ ] ],\n \"F#m6\" : [ [ 0, [-1 ], [-1 ], [1,1], [2,2], [2,3], [2,4] ], [ ] ],\n \"F#69\" : [ [ 0, [2,2], [1,1], [1,1], [1,1], [2,3], [2,4] ], [ ] ],\n \"F#7\" : [ [ 0, [2,1], [4,3], [2,1], [3,2], [2,1], [2,1] ], [ ] ],\n \"F#m7\" : [ [ 0, [2,1], [4,3], [4,4], [2,1], [5,4], [2,1] ], [ ] ],\n \"F#maj7\": [ [ 0, [2,1], [-1 ], [3,3], [3,4], [2,2], [-1 ] ], [ ] ],\n \"F#7b5\" : [ [ 0, [2,2], [-1 ], [2,3], [3,4], [1,1], [-1 ] ], [ ] ],\n \"F#7#5\" : [ [ 0, [2,2], [-1 ], [2,3], [3,4], [3,4], [-1 ] ], [ ] ],\n \"F#m7b5\": [ [ 0, [-1 ], [-1 ], [2,2], [2,3], [1,1], [2,4] ], [ ] ],\n \"F#7b9\" : [ [ 0, [2,2], [1,1], [2,3], [0 ], [2,4], [0 ] ], [ ] ],\n \"F#9\" : [ [ 0, [2,1], [4,3], [2,1], [3,2], [2,1], [4,4] ], [ ] ],\n \"F#m9\" : [ [ 0, [3,3], [0 ], [3,4], [1,1], [2,3], [2,3] ], [ ] ],\n \"F#maj9\": [ [ 0, [2,1], [-1 ], [3,2], [3,3], [-1 ], [4,4] ], [ ] ],\n \"F#add9\": [ [ 0, [2,2], [1,1], [-1 ], [1,1], [2,3], [2,4] ], [ ] ],\n \"F#13\" : [ [ 0, [2,1], [4,3], [2,1], [3,2], [4,4], [2,1] ], [ ] ],\n \"F#sus2\": [ [ 0, [2,2], [-1 ], [-1 ], [1,1], [2,3], [2,4] ], [ ] ],\n \"F#sus4\": [ [ 0, [2,1], [4,2], [4,3], [4,4], [2,1], [2,1] ], [ ] ],\n \"F#dim\" : [ [ 0, [-1 ], [-1 ], [1,1], [2,3], [1,2], [2,4] ], [ ] ],\n \"F#dim7\": [ [ 0, [-1 ], [-1 ], [1,1], [2,3], [1,2], [2,4] ], [ ] ],\n \"F#aug\" : [ [ 0, [2,1], [-1 ], [4,4], [3,2], [3,3], [2,1] ], [ ] ],\n\n G : [ [ 0, [3,3], [2,2], [0 ], [0 ], [0 ], [3,4] ], [ 12, [15,3], [14,2], [12,1], [12,1], [12,1], [15,4] ] ],\n Gm : [ [ 0, [3,2], [1,1], [0 ], [0 ], [3,3], [3,4] ], [ 12, [15,3], [13,2], [12,1], [12,1], [15,4], [15,4] ] ],\n G6 : [ [ 0, [3,3], [2,2], [0 ], [0 ], [0 ], [0 ] ], [ 12, [15,4], [14,3], [12,1], [12,1], [12,1], [12,1] ] ],\n Gm6 : [ [ 0, [-1 ], [-1 ], [2,1], [3,3], [3,3], [3,3] ], [ ] ],\n G69 : [ [ 0, [3,3], [2,1], [0 ], [2,2], [0 ], [0 ] ], [ 12, [15,4], [14,3], [12,1], [14,2], [12,1], [12,1] ] ],\n G7 : [ [ 0, [3,3], [2,2], [0 ], [0 ], [0 ], [1,1] ], [ 12, [15,4], [14,3], [12,1], [12,1], [12,1], [13,2] ] ],\n Gm7 : [ [ 0, [-1 ], [1,1], [3,3], [0 ], [3,4], [-1 ] ], [ 12, [-1 ], [13,2], [15,3], [12,1], [15,4], [-1 ] ] ],\n Gmaj7 : [ [ 0, [3,3], [2,2], [0 ], [0 ], [0 ], [2,1] ], [ 12, [15,3], [14,2], [12,1], [12,1], [12,1], [14,4] ] ],\n \"G7b5\" : [ [ 0, [3,2], [-1 ], [3,3], [4,4], [2,1], [-1 ] ], [ ], [ 4, [-1 ], [-1 ], [5,1], [6,2], [6,3], [7,4] ] ],\n \"G7#5\" : [ [ 0, [3,1], [-1 ], [3,2], [4,3], [4,4], [-1 ] ], [ ] ],\n Gm7b5 : [ [ 2, [3,1], [4,2], [3,1], [3,1], [6,4], [3,1] ], [ ] ],\n G7b9 : [ [ 0, [3,4], [2,3], [0 ], [1,1], [0 ], [1,2] ], [ 12, [15,4], [14,3], [12,1], [13,2], [12,1], [13,] ] ],\n G9 : [ [ 0, [3,3], [-1 ], [0 ], [2,2], [0 ], [1,1] ], [ 12, [15,4], [-1 ], [12,1], [14,3], [12,1], [13,2] ] ],\n Gm9 : [ [ 2, [3,1], [5,3], [3,1], [3,1], [3,1], [5,4] ], [ ] ],\n Gmaj9 : [ [ 0, [3,3], [-1 ], [0 ], [2,1], [0 ], [2,2] ], [ 12, [15,4], [-1 ], [12,1], [14,3], [12,1], [14,2] ] ],\n Gadd9 : [ [ 0, [3,2], [0 ], [0 ], [0 ], [0 ], [3,3] ], [ 12, [15,3], [12,1], [12,1], [12,1], [12,1], [15,4] ] ],\n G13 : [ [ 0, [3,2], [2,1], [3,3], [0 ], [0 ], [0 ] ], [ 12, [15,3], [14,2], [15,3], [12,1], [12,1], [12,1] ] ],\n Gsus2 : [ [ 0, [3,1], [0 ], [0 ], [0 ], [3,3], [3,4] ], [ 12, [15,2], [12,1], [12,1], [12,1], [15,3], [15,4] ] ],\n Gsus4 : [ [ 2, [3,1], [5,2], [5,3], [5,4], [3,1], [3,1] ], [ ] ],\n Gdim : [ [ 2, [-1 ], [-1 ], [5,2], [6,4], [5,3], [3,1] ], [ ] ],\n Gdim7 : [ [ 0, [-1 ], [-1 ], [2,1], [3,3], [2,2], [3,4] ], [ ] ],\n Gaug : [ [ 0, [3,1], [-1 ], [5,4], [4,2], [4,3], [3,1] ], [ ] ],\n\n \"G#\" : [ [ 0, [4,4], [3,3], [1,1], [1,1], [1,1], [-1 ] ], [ ] ],\n \"G#m\" : [ [ 0, [-1 ], [2,2], [1,1], [1,1], [4,4], [4,4] ], [ ] ],\n \"G#6\" : [ [ 0, [-1 ], [-1 ], [1,1], [1,1], [1,1], [1,1] ], [ ] ],\n \"G#m6\" : [ [ 0, [-1 ], [-1 ], [1,1], [1,2], [0 ], [1,3] ], [ ] ],\n \"G#69\" : [ [ 0, [4,2], [3,1], [3,1], [3,1], [4,3], [4,4] ], [ ] ],\n \"G#7\" : [ [ 0, [-1 ], [-1 ], [1,1], [1,1], [1,1], [2,2] ], [ ] ],\n \"G#m7\" : [ [ 3, [4,1], [6,3], [4,1], [4,1], [7,4], [4,1] ], [ ] ],\n \"G#maj7\": [ [ 0, [-1 ], [-1 ], [1,1], [1,1], [1,1], [3,3] ], [ ] ],\n \"G#7b5\" : [ [ 2, [4,2], [-1 ], [4,3], [5,4], [3,2], [-1 ] ], [ ] ],\n \"G#7#5\" : [ [ 3, [4,1], [-1 ], [4,2], [5,3], [5,4], [-1 ] ], [ ] ],\n \"G#m7b5\": [ [ 0, [4,1], [5,2], [4,1], [4,1], [7,4], [4,1] ], [ ] ],\n \"G#7b9\" : [ [ 0, [4,3], [3,2], [4,4], [2,1], [-1 ], [-1 ] ], [ ] ],\n \"G#9\" : [ [ 0, [2,2], [1,1], [1,1], [1,1], [1,1], [2,4] ], [ ] ],\n \"G#m9\" : [ [ 0, [2,2], [1,1], [1,1], [1,1], [0 ], [2,4] ], [ ] ],\n \"G#maj9\": [ [ 2, [4,2], [3,1], [5,4], [3,1], [4,3], [-1 ] ], [ ] ],\n \"G#add9\": [ [ 0, [-1 ], [1,1], [1,1], [1,1], [1,1], [-1 ] ], [ ] ],\n \"G#13\" : [ [ 0, [4,3], [3,2], [4,4], [1,1], [1,1], [1,1] ], [ ] ],\n \"G#sus2\": [ [ 0, [-1 ], [1,1], [1,2], [1,3], [-1 ], [-1 ] ], [ ] ],\n \"G#sus4\": [ [ 0, [-1 ], [-1 ], [1,1], [1,1], [2,2], [4,4] ], [ ] ],\n \"G#dim\" : [ [ 0, [-1 ], [-1 ], [0 ], [1,1], [0 ], [1,2] ], [ ] ],\n \"G#dim7\": [ [ 0, [-1 ], [-1 ], [0 ], [1,1], [0 ], [1,2] ], [ ] ],\n \"G#aug\" : [ [ 0, [0,-1], [3,4], [2,3], [1,1], [1,2], [0,-1] ], [ ] ],\n\n A : [ [ 0, [-1], [0 ], [2,2], [2,1], [2,3], [0 ] ], [ 12, [-1,-1], [12,1], [14,2], [14,3], [14,4], [12,1] ] ],\n Am : [ [ 0, [-1], [0 ], [2,2], [2,3], [1,1], [0 ] ], [ 12, [-1,-1], [12,1], [14,3], [14,4], [13,2], [12,1] ] ],\n A6 : [ [ 0, [-1], [0 ], [2,1], [2,1], [2,1], [2,1] ], [ 12, [-1,-1], [12,1], [14,3], [14,3], [14,3], [14,3] ] ],\n Am6 : [ [ 0, [-1], [0 ], [2,2], [2,3], [1,1], [2,4] ], [ 12, [-1,-1], [12,1], [14,3], [14,3], [13,2], [14,4] ] ],\n A69 : [ [ 3, [5,2], [4,1], [4,1], [4,1], [5,3], [5,4] ], [ ] ],\n A7 : [ [ 0, [-1], [0 ], [2,2], [0 ], [2,3], [0 ] ], [ 12, [-1,-1], [12,1], [14,2], [12,1], [14,3], [12,1] ] ],\n Am7 : [ [ 0, [-1], [0 ], [2,2], [0 ], [1,1], [0 ] ], [ 12, [-1,-1], [12,1], [14,3], [12,1], [13,2], [12,1] ] ],\n Amaj7 : [ [ 0, [-1], [0 ], [2,2], [1,1], [2,3], [0 ] ], [ 12, [-1,-1], [12,1], [14,3], [13,2], [14,4], [12,1] ] ],\n A7b5 : [ [ 3, [5,2], [-1 ], [5,3], [6,4], [4,1], [-1 ] ], [ ] ],\n \"A7#5\" : [ [ 4, [5,1], [-1 ], [5,2], [6,3], [6,4], [-1 ] ], [ ] ],\n Am7b5 : [ [ 0, [-1], [-1 ], [1,1], [2,3], [1,2], [3,4] ], [ ] ],\n A7b9 : [ [ 0, [-1], [0 ], [2,1], [3,3], [2,2], [3,4] ], [ 12, [-1,-1], [12,''], [14,1], [15,3], [14,2], [15,4] ] ],\n A9 : [ [ 0, [-1], [0 ], [2,1], [4,4], [2,2], [3,3] ], [ 12, [-1], [12,], [14,1], [16,4], [14,2], [15,3] ] ],\n Am9 : [ [ 0, [-1], [0 ], [1,1], [1,1], [1,1], [3,4] ], [ 12, [-1], [12,1], [13,2], [13,2], [13,2], [15,4] ] ],\n Amaj9 : [ [ 0, [-1], [0 ], [2,1], [4,3], [2,1], [4,4] ], [ 12, [-1], [12, ], [14,1], [16,3], [14,1], [16,4] ] ],\n Aadd9 : [ [ 0, [-1], [0 ], [2,2], [2,3], [0 ], [0 ] ], [ 12, [-1], [12,1], [14,3], [14,4], [12,1], [12,1] ] ],\n A13 : [ [ 0, [-1], [0 ], [2,1], [0 ], [2,2], [3,3] ], [ 12, [-1], [12,1], [14,2], [12,1], [14,3], [15,4] ] ],\n Asus2 : [ [ 0, [-1], [0 ], [2,1], [2,2], [0 ], [0 ] ], [ 12, [-1], [12,1], [14,3], [14,4], [12,1], [12,1] ] ],\n Asus4 : [ [ 0, [-1], [0 ], [2,1], [2,2], [3,3], [0 ] ], [ 12, [-1], [12,1], [14,2], [14,3], [15,4], [12,1] ] ],\n Adim : [ [ 0, [-1], [0 ], [1,1], [2,3], [1,2], [-1 ] ], [ 12, [-1], [12,1], [13,2], [14,4], [13,3], [-1 ] ] ],\n Adim7 : [ [ 0, [-1], [-1 ], [1,1], [2,3], [1,2], [2,4] ], [ ] ],\n Aaug : [ [ 0, [-1], [0 ], [3,4], [2,2], [2,3], [1,1] ], [ 12, [-1], [12,], [15,4], [14,2], [14,3], [13,1] ] ],\n\n \"Bb\" : [ [ 0, [-1], [1,1], [3,3], [3,3], [3,3], [1,1] ], [ ] ],\n \"Bbm\" : [ [ 0, [-1], [1,1], [3,3], [3,4], [2,2], [1,1] ], [ ] ],\n \"Bb6\" : [ [ 0, [-1], [1,1], [3,3], [3,3], [3,3], [3,3] ], [ ] ],\n \"Bbm6\" : [ [ 0, [-1], [1,1], [3,3], [0 ], [2,2], [-1 ] ], [ ] ],\n \"Bb69\" : [ [ 0, [-1], [1,1], [0 ], [0 ], [1,2], [1,3] ], [ ] ],\n \"Bb7\" : [ [ 0, [-1], [1,1], [3,3], [1,1], [4,4], [1,1] ], [ ] ],\n \"Bbm7\" : [ [ 0, [-1], [1,1], [3,3], [1,1], [2,2], [1,1] ], [ ] ],\n \"Bbmaj7\": [ [ 0, [-1], [1,1], [3,3], [2,2], [3,4], [1,1] ], [ ] ],\n \"Bb7b5\" : [ [ 4, [6,2], [-1 ], [6,3], [7,4], [5,1], [-1 ] ], [ ] ],\n \"Bb7#5\" : [ [ 5, [6,1], [-1 ], [6,2], [7,3], [7,4], [-1 ] ], [ ] ],\n \"Bbm7b5\": [ [ 0, [-1], [1,1], [-1 ], [1,2], [2,3], [-1 ] ], [ ] ],\n \"Bb7b9\" : [ [ 6, [-1], [-1 ], [8,2], [7,1], [9,4], [7,1] ], [ ] ],\n \"Bb9\" : [ [ 0, [1,1], [1,2], [0 ], [1,3], [1,3], [1,3] ], [ ] ],\n \"Bbm9\" : [ [ 5, [-1], [-1 ], [-1 ], [6,1], [6,1], [8,4] ], [ ] ],\n \"Bbmaj9\": [ [ 0, [-1], [1,1], [0 ], [2,4], [1,2], [1,3] ], [ ] ],\n \"Bbadd9\": [ [ 0, [1,1], [1,1], [0 ], [3,4], [1,1], [1,1] ], [ ] ],\n \"Bb13\" : [ [ 0, [-1 ], [1,1], [0 ], [1,2], [3,4], [3,4] ], [ ] ],\n \"Bbsus2\": [ [ 0, [-1], [1,1], [3,3], [3,4], [1,1], [1,1] ], [ ] ],\n \"Bbsus4\": [ [ 0, [-1], [1,1], [3,2], [3,3], [4,4], [1,1] ], [ ] ],\n \"Bbdim\" : [ [ 0, [-1], [1,1], [2,2], [3,4], [2,3], [-1 ] ], [ ] ],\n \"Bbdim7\": [ [ 0, [-1], [-1 ], [2,1], [3,3], [2,2], [3,4] ], [ ] ],\n \"Bbaug\" : [ [ 0, [-1], [1,1], [4,4], [3,2], [3,3], [2,1] ], [ ] ],\n\n B : [ [ 0, [ -1], [2,1], [4,3], [4,3], [4,3], [2,1] ], [ ] ],\n Bm : [ [ 0, [ -1], [2,1], [4,3], [4,4], [3,2], [2,1] ], [ ] ],\n B6 : [ [ 0, [ -1], [2,1], [4,3], [4,3], [4,3], [4,3] ], [ ] ],\n Bm6 : [ [ 0, [ -1], [-1 ], [4,2], [4,3], [3,1], [4,4] ], [ ] ],\n B69 : [ [ 0, [ -1], [2,2], [1,1], [1,1], [2,3], [2,4] ], [ ] ],\n B7 : [ [ 0, [ -1], [2,2], [1,1], [2,3], [0 ], [2,4] ], [ ] ],\n Bm7 : [ [ 0, [ -1], [2,2], [0 ], [2,3], [0 ], [2,4] ], [ ] ],\n Bmaj7 : [ [ 0, [ -1], [2,1], [4,3], [3,2], [4,4], [2,1] ], [ ] ],\n B7b5 : [ [ 5, [7,2], [-1 ], [7,3], [8,4], [6,1], [-1 ] ], [ ] ],\n \"B7#5\" : [ [ 0, [ -1], [2,2], [1,1], [2,3], [0 ], [3,4] ], [ ] ],\n \"Bm7b5\" : [ [ 0, [-1 ], [2,2], [0 ], [2,3], [0 ], [1,1] ], [ ] ],\n B7b9 : [ [ 0, [ -1], [2,2], [1,1], [2,3], [1,1], [2,4] ], [ ] ],\n B9 : [ [ 6, [7,1], [9,3], [7,1], [8,2], [7,1], [9,4] ], [ ] ],\n Bm9 : [ [ 0, [ -1], [2,1], [0 ], [2,2], [2,3], [2,4] ], [ ] ],\n Bmaj9 : [ [ 0, [ -1], [2,2], [1,1], [3,4], [2,3], [2,3] ], [ ] ],\n Badd9 : [ [ 0, [ -1], [2,1], [4,3], [4,4], [2,1], [2,1] ], [ ] ],\n B13 : [ [ 0, [-1 ], [2,2], [1,1], [2,3], [0 ], [4,4] ], [ ] ],\n Bsus2 : [ [ 0, [ -1], [2,1], [4,3], [4,4], [2,1], [2,1] ], [ ] ],\n Bsus4 : [ [ 0, [ -1], [2,1], [4,2], [4,3], [5,4], [2,1] ], [ ] ],\n Bdim : [ [ 0, [-1], [2,1], [3,2], [4,4], [3,3], [-1 ] ], [ ] ],\n Bdim7 : [ [ 0, [-1], [-1 ], [0 ], [1,1], [0 ], [1,2] ], [ ] ],\n Baug : [ [ 0, [-1], [2,1], [5,4], [4,2], [4,3], [3,1] ], [ ] ]\n },\n WesternScale: {\n BaseNotes: { // for each: array[ translated western scale note, caged base, base fret ]\n 'C' : [ 'C' , 'C', 0 ],\n 'C#': [ 'C#', 'C', 1 ],\n 'Db': [ 'C#', 'C', 1 ],\n 'D' : [ 'D' , 'D', 0 ],\n 'D#': [ 'Eb', 'D', 1 ],\n 'Eb': [ 'Eb', 'D', 1 ],\n 'E' : [ 'E' , 'E', 0 ],\n 'F' : [ 'F' , 'E', 1 ],\n 'F#': [ 'F#', 'E', 2 ],\n 'Gb': [ 'F#', 'E', 2 ],\n 'G' : [ 'G' , 'G', 0 ],\n 'G#': [ 'G#', 'G', 1 ],\n 'Ab': [ 'G#', 'G', 1 ],\n 'A' : [ 'A' , 'A', 0 ],\n 'A#': [ 'Bb', 'A', 1 ],\n 'Bb': [ 'Bb', 'A', 1 ],\n 'B' : [ 'B' , 'A', 2 ]\n },\n BaseIntervals: ['C', 'C#', 'D', 'Eb', 'E', 'F', 'F#', 'G', 'G#', 'A', 'Bb', 'B']\n },\n ChordList : function() {\n var list = [];\n for (var key in jtab.Chords) {\n list.push( key );\n }\n return list;\n },\n /*\n * Usage: jtab.AddChord(\"ChordName\", Chord-Array)\n * Example of Add: jtab.AddChord(\"Dsus4l\", [ [ 0, [-1 ], [-1 ], [3,2], [2,1], [3,3], [3,4] ], [ 12, [-1,-1], [-1,-1], [12,1], [14,2], [15,3], [15,4] ] ]);\n * Example of Update: jtab.AddChord(\"A\", [ [ 0, [-1], [0 ], [2,3], [2,2], [2,1], [0 ] ], [ 12, [-1,-1], [12,1], [14,2], [14,3], [14,4], [12,1] ] ]);\n */\n AddChord : function(chordName, chord) {\n this.Chords[chordName] = chord;\n }\n};\n\n//\n// define Array utility functions\n//\n\nArray.prototype.max_chars = function() {\n var max = this[0].length;\n var len = this.length;\n for (var i = 1; i < len; i++) if (this[i].length > max) max = this[i].length;\n return max;\n}\n\n\n//\n// define jtabChord class\n// public members:\n// isValid = whether valid chord defined\n// isCaged = whether chord is CAGED type\n// isCustom = whether chord is a custom fingering\n// fullChordName = full chord name, including position e.g. D#m7:3\n// chordName = chord name, without position e.g. D#m7\n// baseName = translated chord name (B <-> #), without position e.g. Ebm7\n// rootNote = root note e.g. D#\n// rootExt = root note extension e.g. m7\n// cagedBaseShape = caged base shape e.g. D\n// cagedBaseFret = caged base fret e.g. 0\n// cagedPos = caged position e.g. 3\n//\n\nfunction jtabChord (token) {\n\n this.scale = jtab.WesternScale;\n this.baseNotes = this.scale.BaseNotes;\n this.baseChords = jtab.Chords;\n this.chordArray = null;\n this.isValid = false;\n\n this.fullChordName = token;\n this.isCustom = ( this.fullChordName.match( /\\%/ ) != null )\n this.isCaged = ( this.fullChordName.match( /\\:/ ) != null )\n\n\n if (this.isCaged) {\n var parts = this.fullChordName.split(':');\n this.chordName = parts[0];\n this.cagedPos = parts[1];\n } else if (this.isCustom){\n var parts = this.fullChordName.match( /\\[(.+?)\\]/ );\n if(parts){\n this.chordName = parts[1];\n } else {\n this.chordName = '';\n }\n } else {\n this.chordName = this.fullChordName;\n this.cagedPos = 1;\n }\n this.rootExt = this.chordName.replace(/^[A-G#b]{1,2}/,'');\n this.rootNote = this.chordName.substr(0, this.chordName.length - this.rootExt.length);\n var baseNoteInfo = this.baseNotes[this.rootNote];\n if (baseNoteInfo) {\n this.baseName = baseNoteInfo[0] + this.rootExt;\n this.cagedBaseShape = baseNoteInfo[1];\n this.cagedBaseFret = baseNoteInfo[2];\n } else {\n this.cagedBaseShape = '';\n this.cagedBaseFret = 0;\n }\n if ( ( this.isCaged ) && ( this.cagedPos > 1 ) ) {\n this.setCagedChordArray();\n } else if (this.isCustom){\n this.setCustomChordArray();\n } else {\n this.setChordArray(this.baseName);\n }\n}\n\njtabChord.prototype.setCustomChordArray = function(){\n this.chordArray = [];\n this.chordArray = this.parseCustomChordArrayFromToken();\n};\n\njtabChord.prototype.parseCustomChordArrayFromToken = function() {\n notes = this.fullChordName.replace(/(\\%|\\[.+\\])/g, '');\n pairs = notes.split('.');\n if (pairs.length < 6){\n this.isValid = false;\n return;\n }\n this.isValid = true;\n\n array = [];\n for (var i = 0; i < pairs.length; i++){\n pair = pairs[i].split('/')\n if (pair[0].match(/X/)){\n pair = [-1]\n }\n array.push(pair)\n }\n\n // fingeredFrets = array.reject(function(p){\n // return p.length === 1\n // }).collect(function(p){\n // return parseInt(p[0])\n // }).flatten().without(0,-1)\n\n // `array` is an array of string/fretnumber pairs like [0,1].\n\n fingeredFrets = _.where(array, function(pair) { return pair.length != 1});\n fingeredFrets = _.map(fingeredFrets, function (pair) {\n return parseInt(pair[0]);\n });\n\n fingeredFrets = _.map(fingeredFrets, function (pair) {\n if ((i != 0) || (i != -1)){\n return i;\n } else {\n return null;\n }\n });\n\n fingeredFrets = _.where(fingeredFrets, function(pair) { return pair;});\n\n //find all the fret positions which arent X or 0. I'm sure there's a better way to do this.\n\n min = Math.min.apply( Math, fingeredFrets );\n\n console.log(array);\n array.unshift(min-1);\n console.log(array);\n return array;\n};\n\njtabChord.prototype.setChordArray = function(chordName) { // clones chord array (position 0) from chord ref data into this object\n this.chordArray = new Array();\n if (this.baseChords[chordName] === undefined ) {\n this.isValid = false;\n return;\n }\n this.isValid = true;\n var modelRef = this.baseChords[chordName][0];\n this.chordArray[0] = modelRef[0]\n for (var i = 1; i < modelRef.length ; i++) {\n this.chordArray[i] = modelRef[i]; // TODO: this.chordArray[i] = modelRef[i].clone();\n }\n};\n\njtabChord.prototype.setCagedChordArray = function() {\n if ( ! this.cagedBaseShape.match( /[CAGED]/ ) ) return;\n var caged_index = \"CAGED\".indexOf(this.cagedBaseShape) + 1; // get 1-based index\n var fret_widths = [3,2,3,2,2];\n\n var starting_fret = this.cagedBaseFret;\n\n for (var i = 1; i < this.cagedPos ; i++) {\n var index = (caged_index - 1) % 5;\n caged_index = ( caged_index >= 5) ? 1 : caged_index + 1;\n starting_fret += fret_widths[index];\n }\n\n var modelChord = \"CAGED\".charAt( caged_index - 1 ) + this.rootExt;\n this.setChordArray(modelChord);\n this.shiftChordArray(starting_fret,modelChord);\n};\n\njtabChord.prototype.shiftChordArray = function(atFret,modelChord) { // shift chord to new fret position\n var initFret = this.chordArray[0];\n if (atFret != initFret) {\n var use_caged_fingering = ( (this.isCaged) && (this.cagedPos > 0) && ( ! ( this.baseChords[modelChord][1][0] === undefined ) ) );\n\n this.chordArray[0] = atFret - 1;\n for (var i = 1; i < this.chordArray.length ; i++) {\n var fret = (this.chordArray[i][0] >= 0 ) ? this.chordArray[i][0] + atFret - initFret : this.chordArray[i][0];\n var finger = (use_caged_fingering) ? this.baseChords[modelChord][1][i][1] : this.chordArray[i][1];\n this.chordArray[i] = [ fret , finger ];\n }\n }\n};\n\n\n\n//\n// define extensions to the Raphael class\n//\n\nRaphael.fn.tabtype = 0; // 0 = none, 1 = tab & chord, 2 = chord, 3 = tab\nRaphael.fn.has_chord = false;\nRaphael.fn.has_tab = false;\n\nRaphael.fn.debug = false;\nRaphael.fn.scale = 0.5;\nRaphael.fn.margin_top = 30;\nRaphael.fn.margin_bottom = 0;\nRaphael.fn.margin_left = 5;\nRaphael.fn.margin_right = 5;\n\nRaphael.fn.current_offset = Raphael.fn.margin_left;\n\n\nRaphael.fn.string_spacing = 8; // 弦间间隔\nRaphael.fn.strings_drawn = 6; // 显示的弦数量\nRaphael.fn.fret_spacing = 10; // 音柱间隔\nRaphael.fn.frets_drawn = 4; // 显示的音柱数量\nRaphael.fn.note_radius = 4; // 标注半径\n\n\nRaphael.fn.fret_width = Raphael.fn.string_spacing * ( Raphael.fn.strings_drawn - 1 );\nRaphael.fn.fret_height = Raphael.fn.fret_spacing * (Raphael.fn.frets_drawn + 0.5);\nRaphael.fn.chord_width = Raphael.fn.margin_left + Raphael.fn.fret_width + Raphael.fn.string_spacing + Raphael.fn.margin_right;\nRaphael.fn.chord_height = Raphael.fn.margin_top + Raphael.fn.fret_height + Raphael.fn.margin_bottom;\n\nRaphael.fn.tab_current_string = 0; // 1,2,3,4,5,6 or 0 = not set\nRaphael.fn.tab_margin_top = 10;\nRaphael.fn.tab_top = Raphael.fn.chord_height + Raphael.fn.tab_margin_top;\nRaphael.fn.tab_spacing = Raphael.fn.fret_spacing;\nRaphael.fn.tab_height = Raphael.fn.tab_spacing * 5;\nRaphael.fn.tab_char_width = 8;\n\nRaphael.fn.total_height = Raphael.fn.tab_top + Raphael.fn.tab_height + Raphael.fn.margin_bottom;\n\nRaphael.fn.color = \"#000\";\nRaphael.fn.fingering_text_color = \"#fff\";\nRaphael.fn.tab_text_color = \"#000\";\n\n\n// debug helper - puts grid marks on the rendered image\nRaphael.fn.debug_grid = function (width) {\n // h ticks\n this.path(this.svg_params(this.current_offset, 0,0,4)).attr({stroke: this.color, \"stroke-width\":0.2 })\n this.path(this.svg_params( this.current_offset + this.margin_left, 0,0,2)).attr({stroke: this.color, \"stroke-width\":0.2 })\n this.path(this.svg_params( this.current_offset + width - this.margin_right, 0,0,2)).attr({stroke: this.color, \"stroke-width\":0.2 })\n // v ticks\n if (this.tabtype == 3) {\n this.path(this.svg_params(this.current_offset, this.tab_margin_top,2,0)).attr({stroke: this.color, \"stroke-width\":0.2 })\n } else {\n this.path(this.svg_params(this.current_offset, this.margin_top,2, 0)).attr({stroke: this.color, \"stroke-width\":0.2 })\n }\n}\n\n\n// step the current position for drawing\nRaphael.fn.increment_offset = function (width) {\n w = ( width === undefined ) ? this.chord_width : width;\n if (this.debug) this.debug_grid(w);\n this.current_offset += w;\n this.setSize( this.current_offset, this.total_height );\n}\n\nRaphael.fn.svg_params = function(x,y,l1,l2) {\n // http://www.w3.org/TR/SVG/paths.html#PathData --helpful reading\n var move_line_to = \"m\"+x+\" \"+y+\"l\"+l1+\" \"+l2\n if(arguments.length == 4) return move_line_to\n}\n\n// draw the fretboard\nRaphael.fn.chord_fretboard = function ( position, chord_name ) {\n var fret_left = this.current_offset + this.margin_left;\n // conventional fret labels\n var fret_labels = [ '', '', '', 'III', '', 'V', '', 'VII', '', 'IX', '', '', 'XII', '', '', 'XV', '', 'XVII', '', 'XIX', '', 'XXI', '' ];\n // var fret_labels = [ '', '', '', '3', '', '5', '', '7', '', '9', '', '', '12', '', '', '15', '', '17', '', '19', '', '21', '' ];\n // alternative friendly fret labels. Currently disabled, maybe bring these back as a configurable option?\n // var fret_labels = [ '', '1fr', '2fr', '3fr', '4fr', '5fr', '6fr', '7fr', '8fr', '9fr', '10fr', '11fr', '12fr', '13fr', '14fr', '15fr', '16fr', '17fr', '18fr', '19fr', '20fr', '21fr', '' ];\n\n this.text( // chord name\n fret_left + 2.5 * this.string_spacing,\n this.margin_top - 20,\n chord_name).attr({fill: this.tab_text_color, \"font-size\":\"10px\"});\n\n var stroke_width = position == 0 ? 3 : 0 // nut\n var chord_fretboard_path = this.path(this.svg_params(fret_left,this.margin_top,this.string_spacing * (this.strings_drawn - 1),0))\n chord_fretboard_path.attr({stroke: this.color, \"stroke-width\":stroke_width })\n\n for (var i = 0; i <= this.frets_drawn; i++ ) { // frets\n\n this.path(this.svg_params(fret_left,this.margin_top + (i * this.fret_spacing),this.string_spacing * (this.strings_drawn - 1), 0))\n\n pos = ( fret_labels[ position + i ] === undefined ) ? '' : fret_labels[ position + i ];\n\n if ( pos.length > 0 ) { // draw fret position\n this.text(\n fret_left + this.fret_width + this.string_spacing * 1.0,\n this.margin_top + ( ( i - 0.5 ) * this.fret_spacing),\n pos).attr({stroke: this.tab_text_color, \"font-size\":\"10px\"});\n }\n }\n for (var i = 0; i < this.strings_drawn; i++ ) {\n this.path(this.svg_params(fret_left + (i * this.string_spacing),this.margin_top,0, this.fret_spacing * (this.frets_drawn + 0.5))) // strings\n }\n this.tab_extend(this.chord_width); // extend the tab if present\n}\n\n\n// draw a stroke (/)\nRaphael.fn.stroke = function () {\n\n if (this.has_tab) {\n var width = this.tab_char_width * 3;\n // extend tab\n this.tab_extend(width);\n // stroke\n var stroke_path = this.path(this.svg_params(this.current_offset + this.tab_char_width, this.tab_top + (3.5 * this.tab_spacing),this.tab_char_width, - 2 * this.tab_spacing))\n stroke_path.attr({stroke: this.tab_text_color, \"stroke-width\":4 })\n\n this.increment_offset(width);\n } else if (this.has_chord) {\n var dx = this.string_spacing;\n var dy = 2 * this.fret_spacing;\n this.path(this.svg_params(this.current_offset + this.margin_left,\n this.margin_top + this.fret_spacing + dy,dx,-dy)).attr({stroke: this.tab_text_color, \"stroke-width\":4 })\n\n this.increment_offset( this.margin_left + dx + this.margin_right );\n }\n}\n\n\n// draw a bar\nRaphael.fn.bar = function () {\n\n if (this.has_tab) {\n var width = this.tab_char_width * 2;\n // extend tab\n this.tab_extend(width);\n var bar_stroke=this.path(this.svg_params(this.current_offset + this.tab_char_width, this.tab_top,0, this.tab_height))\n this.increment_offset(width);\n\n } else if (this.has_chord) {\n var fret_left = this.current_offset + this.margin_left;\n var bar_stroke=this.path(this.svg_params(this.current_offset + this.margin_left, this.margin_top,0, 0, this.fret_height))\n this.increment_offset( this.margin_left + this.margin_right );\n }\n bar_stroke.attr({stroke: this.color, \"stroke-width\":1 })\n\n}\n\n\n// draw double bar\nRaphael.fn.doublebar = function () {\n if (this.has_tab) {\n var width = this.tab_char_width + 8;\n // extend tab\n this.tab_extend(width);\n // bar\n var path_1 = this.path(this.svg_params(this.current_offset + this.tab_char_width, this.tab_top,0, this.tab_height))\n var path_2 = this.path(this.svg_params(this.current_offset + this.tab_char_width + 6, this.tab_top,0, this.tab_height ))\n this.increment_offset(width);\n\n } else if (this.has_chord) {\n var left = this.current_offset + this.margin_left;\n\n var path_1 = this.path(this.svg_params(left, this.margin_top,0, this.fret_height))\n var path_2 = this.path(this.svg_params(left + 6, this.margin_top,0, this.fret_height))\n\n this.increment_offset( this.margin_left + 6 + this.margin_right );\n }\n path_1.attr({stroke: this.color, \"stroke-width\":1 })\n path_2.attr({stroke: this.color, \"stroke-width\":4 })\n}\n\n\n// draw a note in a chord\nRaphael.fn.chord_note = function (position, string_number, note) {\n // NB: internal string_number in chords counts from low to high\n var fret_number = note[0];\n var fret_left = this.current_offset + this.margin_left;\n\n if (fret_number < 0 ) {\n // muted/not played\n this.text(fret_left + (string_number - 1) * this.string_spacing, this.margin_top - 8, \"x\").attr({stroke: this.tab_text_color, \"font-size\":\"8px\"});\n } else if (fret_number == 0 ) {\n // open\n this.text(fret_left + (string_number - 1) * this.string_spacing, this.margin_top - 8, \"o\").attr({stroke: this.tab_text_color, \"font-size\":\"8px\"});\n } else {\n var fret_dy = (fret_number - position - 0.5) * this.fret_spacing;\n //var circle =\n this.circle(\n fret_left + (string_number - 1) * this.string_spacing,\n this.margin_top + fret_dy, this.note_radius).attr({stroke: this.color, fill: this.color});\n if ( ! (note[1] === undefined) ) {\n this.text( fret_left + (string_number - 1) * this.string_spacing,\n this.margin_top + fret_dy, note[1] ).attr({fill: this.fingering_text_color, \"font-size\":\"8px\"});\n }\n }\n\n if ( this.has_tab && fret_number >= 0 ) {\n this.draw_tab_note( (this.strings_drawn - string_number + 1), fret_number, this.margin_left + this.string_spacing * 2.5 );\n }\n}\n\n\n// extend the tab drawing area\nRaphael.fn.tab_extend = function (width) {\n if (this.has_tab == false) return;\n for (var i = 0; i < this.strings_drawn; i++ ) {\n this.path(this.svg_params(this.current_offset, this.tab_top + (i * this.tab_spacing),width, 0)).attr({stroke: this.color})\n }\n}\n\n\n// start the tab\nRaphael.fn.tab_start = function () {\n if (this.has_tab == false) return;\n var width = this.tab_char_width * 3;\n // start bar\n this.path(this.svg_params(this.current_offset, this.tab_top,0, this.tab_height)).attr({stroke: this.color, \"stroke-width\":1 })\n\n // extend tab\n this.tab_extend(width);\n\n //write TAB\n this.text(this.current_offset + this.tab_char_width, this.tab_top + this.tab_spacing * 1.5, \"T\").attr({stroke: this.color, \"font-size\":\"10px\"});\n this.text(this.current_offset + this.tab_char_width, this.tab_top + this.tab_spacing * 2.5, \"A\").attr({stroke: this.color, \"font-size\":\"10px\"});\n this.text(this.current_offset + this.tab_char_width, this.tab_top + this.tab_spacing * 3.5, \"B\").attr({stroke: this.color, \"font-size\":\"10px\"});\n this.increment_offset(width);\n\n}\n\n\n// draw an individual note in the tab\nRaphael.fn.draw_tab_note = function (string_number, token, left_offset) {\n // NB: internal string_number in tab counts from high to low\n this.text(this.current_offset + left_offset,\n this.tab_top + this.tab_spacing * (string_number - 1),\n token).attr({fill: this.color, \"font-size\":\"10px\"});\n}\n\n// gets string number from token $[1-6|EADGBe]\nRaphael.fn.get_string_number = function (token) {\n var string_number = null;\n if ( token.match( /^\\$[1-6]/ ) != null ) {\n string_number = token.substr(1,1);\n } else if ( token.match( /^\\$[EADGBe]/ ) != null ) {\n string_number = 6 - \"EADGBe\".indexOf(token.substr(1,1));\n }\n return string_number;\n}\n\n\n// identify if full chord of notes specified i.e. A:1 = X02220 or C:4 = 8.10.10.9.8.8\n// returns:\n// false = not a full chord representation\n// array = array of notes (low to high)\nRaphael.fn.get_fullchord_notes = function (token) {\n var rc = false;\n if ( token.match( /[^\\.xX0-9]/ ) != null ) {\n rc = false;\n } else {\n if ( token.match( /\\./ ) != null ) {\n rc = token.split('.');\n } else {\n rc = token.split('');\n }\n if (rc.length != 6) rc = false;\n }\n return rc;\n}\n\n\n// draw a token on the tab\nRaphael.fn.tab_note = function (token) {\n if (this.has_tab == false) return;\n\n if ( token.match( /\\$/ ) != null ) { // contains a string specifier\n if ( token.match( /\\./ ) != null ) { // is a multi-string specifier\n var parts = token.split(\".\");\n var width = 2;\n for (var i = 0; i < parts.length ; i++) { // get the max length of the multi-string specifiers\n if ( parts[i].length > width ) width = parts[i].length;\n }\n width *= this.tab_char_width + 1;\n this.tab_extend( width );\n for (var i = 0; i < parts.length ; i++) {\n var part = parts[i];\n var string_number = this.get_string_number(part);\n if (string_number != null) {\n this.tab_current_string = string_number;\n } else if ( this.tab_current_string > 0 ) {\n this.draw_tab_note( this.tab_current_string, part, width * 0.5 );\n }\n }\n this.increment_offset( width );\n\n } else { // just a string setting\n this.tab_current_string = this.get_string_number(token);\n }\n } else {\n var fullchord_notes = this.get_fullchord_notes(token);\n if ( fullchord_notes ) {\n var max_chars = fullchord_notes.max_chars();\n var width = this.tab_char_width * (max_chars + 2);\n this.tab_extend( width );\n for (var i = 0; i < fullchord_notes.length ; i++) {\n this.draw_tab_note( 6 - i, fullchord_notes[i], width * 0.5 );\n }\n this.increment_offset( width );\n } else if ( this.tab_current_string > 0 ) { // else draw literal, but only if a current string selected\n var width = this.tab_char_width * ( token.length + 2 );\n this.tab_extend( width );\n this.draw_tab_note( this.tab_current_string, token, width * 0.5 );\n this.increment_offset( width );\n }\n }\n}\n\n\n// main drawing routine entry point: to render a token - chord or tab\nRaphael.fn.render_token = function (token) {\n\n var c = new jtabChord(token);\n\n if ( c.isValid ) { // draw chord\n var chord = c.chordArray;\n this.chord_fretboard(chord[0], c.chordName );\n for (var i = 1; i < chord.length ; i++) {\n this.chord_note(chord[0], i, chord[i]);\n }\n this.increment_offset();\n\n } else {\n if (token == \"/\" ) {\n this.stroke();\n } else if (token == \"|\" ) {\n this.bar();\n } else if (token == \"||\" ) {\n this.doublebar();\n } else if ( this.has_tab ) {\n this.tab_note( token );\n }\n\n }\n}\n\n\n//\n// add jtab class methods\n//\n\n\n// determine nature of the token stream\n// returns:\n// 1 : chord and tab present\n// 2 : chord only\n// 3 : tab only\n// 0 : unknown\njtab.characterize = function (notation) {\n var tabtype = 0;\n\n if(notation == undefined){\n notation = '';\n }\n\n var gotCustomChord = ( notation.match( /[\\%]([0-4|T|X])?/ ) != undefined );\n var gotNormalChord = ( notation.match( /[^\\$][A-G]|^[A-G]/ ) != undefined );\n var gotTab = ( ( notation.match( /\\$/ ) != null ) || ( notation.match( /[^\\%][0-9|Xx|\\.]{6,}/ ) != null ) );\n var gotChord = gotNormalChord || gotCustomChord ;\n\n // set defaults - apply scaling here (TODO)\n Raphael.fn.current_offset = Raphael.fn.margin_left;\n if ( gotChord && gotTab ) { // chord and tab\n tabtype = 1;\n Raphael.fn.has_chord = true;\n Raphael.fn.has_tab = true;\n Raphael.fn.tab_top = Raphael.fn.chord_height + Raphael.fn.tab_margin_top;\n Raphael.fn.total_height = Raphael.fn.tab_top + Raphael.fn.tab_height + Raphael.fn.margin_bottom;\n } else if ( gotChord ) { // chord only\n tabtype = 2;\n Raphael.fn.has_chord = true;\n Raphael.fn.has_tab = false;\n Raphael.fn.tab_top = Raphael.fn.chord_height + Raphael.fn.tab_margin_top;\n Raphael.fn.total_height = Raphael.fn.chord_height;\n } else if ( gotTab ) { // tab only\n tabtype = 3;\n Raphael.fn.has_chord = false;\n Raphael.fn.has_tab = true;\n Raphael.fn.tab_top = Raphael.fn.tab_margin_top;\n Raphael.fn.total_height = Raphael.fn.tab_top + Raphael.fn.tab_height + Raphael.fn.margin_bottom;\n }\n Raphael.fn.tabtype = tabtype;\n return tabtype;\n}\n\n// utility function to get calculated style based on given element\njtab.getStyle = function (element, style) {\n var value = element.style[style];\n if(!value) {\n if(document.defaultView) {\n value = document.defaultView.getComputedStyle(element, \"\").getPropertyValue(style);\n } else if(element.currentStyle) {\n value = element.currentStyle[style];\n }\n }\n\n return value;\n}\n\n// set color pallette for the jtab rendering\njtab.setPalette = function (element) {\n var fgColor = jtab.getStyle( element, 'color' );\n if (!fgColor) {\n fgColor = '#000';\n }\n Raphael.fn.color = fgColor;\n Raphael.fn.tab_text_color = fgColor;\n\n bgColor = jtab.getStyle( element, 'background-color' );\n if (!bgColor || (bgColor == 'transparent') || (bgColor == 'rgba(0, 0, 0, 0)')) {\n bgColor = '#fff';\n }\n Raphael.fn.fingering_text_color = bgColor;\n}\n\n// Render the tab for a given +element+.\n// +element+ is a DOM node\n// +notation_text+ is the optional notation to render (if not specified, +element+ text content will be used)\n// After rendering, the +element+ will be given the additional \"rendered\" class.\njtab.render = function (element,notation_text) {\n\n var notation = notation_text || element.textContent || '';\n\n var tabtype = jtab.characterize( notation );\n if (tabtype == 0 ) return;\n\n var rndID=\"builder_\"+jtab.element_count++;\n\n // add the Raphael canvas in its own DIV. this gets around an IE6 issue with not removing previous renderings\n var canvas_holder = document.createElement('div');\n canvas_holder.id = rndID;\n canvas_holder.style.height = Raphael.fn.total_height;\n element.innerHTML = \"\";\n element.appendChild(canvas_holder);\n\n jtab.setPalette(element);\n canvas = Raphael(rndID, 80, Raphael.fn.total_height );\n canvas.tab_start();\n\n\n var tokens = notation.split(/\\s/);\n for(var i = 0; i < tokens.length; i++) {\n canvas.render_token(tokens[i]);\n }\n element.className += ' rendered';\n}\n\n\nRaphael.fn.render_token_one_chord = function (token) {\n\n var c = new jtabChord(token);\n\n if (c.isValid) { // draw chord\n var chord = c.chordArray;\n this.chord_fretboard_one_chord(chord[0], c.chordName);\n for (var i = 1; i < chord.length; i++) {\n this.chord_note_one_chord(chord[0], i, chord[i]);\n }\n this.increment_offset();\n\n }\n}\n\n\n// draw a note in a chord\nRaphael.fn.chord_note_one_chord = function (position, string_number, note) {\n // NB: internal string_number in chords counts from low to high\n var fret_number = note[0];\n var fret_left = this.current_offset + this.margin_left;\n\n if (fret_number < 0) {\n // muted/not played\n this.text(fret_left + (string_number - 1) * this.string_spacing, this.margin_top - 8, \"x\").attr({\n stroke: this.tab_text_color,\n \"font-size\": \"8px\"\n });\n } else if (fret_number == 0) {\n // open\n this.text(fret_left + (string_number - 1) * this.string_spacing, this.margin_top - 8, \"o\").attr({\n stroke: this.tab_text_color,\n \"font-size\": \"8px\"\n });\n } else {\n var fret_dy = (fret_number - position - 0.5) * this.fret_spacing;\n //var circle =\n this.circle(\n fret_left + (string_number - 1) * this.string_spacing,\n this.margin_top + fret_dy, this.note_radius).attr({\n stroke: this.color,\n fill: this.color\n });\n if (!(note[1] === undefined)) {\n this.text(fret_left + (string_number - 1) * this.string_spacing,\n this.margin_top + fret_dy, note[1]).attr({\n fill: this.fingering_text_color,\n \"font-size\": \"8px\"\n });\n }\n }\n\n if (this.has_tab && fret_number >= 0) {\n this.draw_tab_note((this.strings_drawn - string_number + 1), fret_number, this.margin_left + this.string_spacing * 2.5);\n }\n}\n// draw the fretboard\nRaphael.fn.chord_fretboard_one_chord = function (position, chord_name) {\n\n var string_spacing = 8; // 弦间间隔\n var strings_drawn = 6; // 显示的弦数量\n var fret_spacing = 10; // 音柱间隔\n var frets_drawn = 4; // 显示的音柱数量\n var note_radius = 4; // 标注半径\n var scale = 0.5;\n var margin_top = 30;\n var margin_bottom = 0;\n var margin_left = 5;\n var margin_right = 5;\n var color = \"#000\";\n var fingering_text_color = \"#fff\";\n var tab_text_color = \"#000\";\n\n var fret_left = this.current_offset + margin_left;\n\n var fret_width = string_spacing * (strings_drawn - 1);\n var fret_height = fret_spacing * (frets_drawn + 0.5);\n var chord_width = margin_left + fret_width + string_spacing + margin_right;\n var chord_height = margin_top + fret_height + margin_bottom;\n\n // conventional fret labels\n var fret_labels = ['', '', '', 'III', '', 'V', '', 'VII', '', 'IX', '', '', 'XII', '', '', 'XV', '', 'XVII', '', 'XIX', '', 'XXI', ''];\n //var fret_labels = [ '', '', '', '3', '', '5', '', '7', '', '9', '', '', '12', '', '', '15', '', '17', '', '19', '', '21', '' ];\n\n this.text( // chord name\n fret_left + 2.5 * string_spacing,\n margin_top - 20,\n chord_name).attr({\n fill: tab_text_color,\n \"font-size\": \"10px\"\n });\n\n var stroke_width = position == 0 ? 3 : 0 // nut\n var chord_fretboard_path = this.path(this.svg_params(fret_left, margin_top, string_spacing * (strings_drawn - 1), 0))\n chord_fretboard_path.attr({\n stroke: color,\n \"stroke-width\": stroke_width\n })\n\n for (var i = 0; i <= frets_drawn; i++) { // frets\n\n this.path(this.svg_params(fret_left, margin_top + (i * fret_spacing), string_spacing * (strings_drawn - 1), 0))\n\n pos = (fret_labels[position + i] === undefined) ? '' : fret_labels[position + i];\n\n if (pos.length > 0) { // draw fret position\n this.text(\n fret_left + fret_width + string_spacing * 1.0,\n margin_top + ((i - 0.5) * fret_spacing),\n pos).attr({\n stroke: tab_text_color,\n \"font-size\": \"9px\"\n });\n }\n }\n for (var i = 0; i < strings_drawn; i++) {\n this.path(this.svg_params(fret_left + (i * string_spacing), margin_top, 0, fret_spacing * (frets_drawn + 0.5))) // strings\n }\n\n}\n// Render the tab for a given +element+.\n// +element+ is a DOM node\n// +notation_text+ is the optional notation to render (if not specified, +element+ text content will be used)\n// After rendering, the +element+ will be given the additional \"rendered\" class.\njtab.renderOneChord = function (element, notation_text) {\n\n var rndID = \"builder_\" + jtab.element_count++;\n\n // add the Raphael canvas in its own DIV. this gets around an IE6 issue with not removing previous renderings\n canvas = Raphael(element, 48, 40); \n canvas.render_token_one_chord(element.getAttribute(\"chord\"));\n element.className += ' rendered';\n}\n \n// Render all nodes with class 'jtab'.\n// +within_scope+ is an optional selector that will restrict rendering to only those nodes contained within.\njtab.renderimplicit = function(within_element) {\n within_element = within_element ? within_element : document;\n _.each(within_element.getElementsByClassName(\"jtab\"), function (el) {\n if(el.className.indexOf(\"rendered\") > -1) return;\n jtab.render(el);\n });\n}\n\njtab.renderChord = function (within_element) {\n within_element = within_element ? within_element : document;\n _.each(within_element.getElementsByClassName(\"chord\"), function (el) {\n if(el.className.indexOf(\"rendered\") > -1) return;\n jtab.renderOneChord(el);\n }); \n}\n\n// initialize jtab library.\n// Sets up to run implicit rendering on window.onload\njtab.init = function() {\n if(!window) {\n return;\n }\n var oldonload = window.onload;\n window.onload = function() {\n if (typeof oldonload == 'function') oldonload();\n jtab.renderimplicit(null);\n _.each(document.getElementsByClassName(\"chord\"), function (el) {\n if(el.className.indexOf(\"rendered\") > -1) return;\n jtab.renderOneChord(el);\n }); \n }\n}\n\nif(typeof window != \"undefined\") {\n window.jtab = jtab;\n}\n\nmodule.exports = jtab;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./javascripts/jtab.js\n// module id = 0\n// module chunks = 0","// Underscore.js 1.8.3\n// http://underscorejs.org\n// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n(function() {\n\n // Baseline setup\n // --------------\n\n // Establish the root object, `window` in the browser, or `exports` on the server.\n var root = this;\n\n // Save the previous value of the `_` variable.\n var previousUnderscore = root._;\n\n // Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;\n\n // Create quick reference variables for speed access to core prototypes.\n var\n push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n // All **ECMAScript 5** native function implementations that we hope to use\n // are declared here.\n var\n nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeBind = FuncProto.bind,\n nativeCreate = Object.create;\n\n // Naked function reference for surrogate-prototype-swapping.\n var Ctor = function(){};\n\n // Create a safe reference to the Underscore object for use below.\n var _ = function(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n };\n\n // Export the Underscore object for **Node.js**, with\n // backwards-compatibility for the old `require()` API. If we're in\n // the browser, add `_` as a global object.\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = _;\n }\n exports._ = _;\n } else {\n root._ = _;\n }\n\n // Current version.\n _.VERSION = '1.8.3';\n\n // Internal function that returns an efficient (for current engines) version\n // of the passed-in callback, to be repeatedly applied in other Underscore\n // functions.\n var optimizeCb = function(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n case 2: return function(value, other) {\n return func.call(context, value, other);\n };\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n };\n\n // A mostly-internal function to generate callbacks that can be applied\n // to each element in a collection, returning the desired result — either\n // identity, an arbitrary callback, a property matcher, or a property accessor.\n var cb = function(value, context, argCount) {\n if (value == null) return _.identity;\n if (_.isFunction(value)) return optimizeCb(value, context, argCount);\n if (_.isObject(value)) return _.matcher(value);\n return _.property(value);\n };\n _.iteratee = function(value, context) {\n return cb(value, context, Infinity);\n };\n\n // An internal function for creating assigner functions.\n var createAssigner = function(keysFunc, undefinedOnly) {\n return function(obj) {\n var length = arguments.length;\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n };\n\n // An internal function for creating a new object that inherits from another.\n var baseCreate = function(prototype) {\n if (!_.isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n };\n\n var property = function(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n };\n\n // Helper for collection methods to determine whether a collection\n // should be iterated as an array or as an object\n // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\n var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n var getLength = property('length');\n var isArrayLike = function(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n };\n\n // Collection Functions\n // --------------------\n\n // The cornerstone, an `each` implementation, aka `forEach`.\n // Handles raw objects in addition to array-likes. Treats all\n // sparse array-likes as if they were dense.\n _.each = _.forEach = function(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var keys = _.keys(obj);\n for (i = 0, length = keys.length; i < length; i++) {\n iteratee(obj[keys[i]], keys[i], obj);\n }\n }\n return obj;\n };\n\n // Return the results of applying the iteratee to each element.\n _.map = _.collect = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Create a reducing function iterating left or right.\n function createReduce(dir) {\n // Optimized iterator function as using arguments.length\n // in the main function will deoptimize the, see #1991.\n function iterator(obj, iteratee, memo, keys, index, length) {\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = keys ? keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n }\n\n return function(obj, iteratee, memo, context) {\n iteratee = optimizeCb(iteratee, context, 4);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n // Determine the initial value if none is provided.\n if (arguments.length < 3) {\n memo = obj[keys ? keys[index] : index];\n index += dir;\n }\n return iterator(obj, iteratee, memo, keys, index, length);\n };\n }\n\n // **Reduce** builds up a single result from a list of values, aka `inject`,\n // or `foldl`.\n _.reduce = _.foldl = _.inject = createReduce(1);\n\n // The right-associative version of reduce, also known as `foldr`.\n _.reduceRight = _.foldr = createReduce(-1);\n\n // Return the first value which passes a truth test. Aliased as `detect`.\n _.find = _.detect = function(obj, predicate, context) {\n var key;\n if (isArrayLike(obj)) {\n key = _.findIndex(obj, predicate, context);\n } else {\n key = _.findKey(obj, predicate, context);\n }\n if (key !== void 0 && key !== -1) return obj[key];\n };\n\n // Return all the elements that pass a truth test.\n // Aliased as `select`.\n _.filter = _.select = function(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n _.each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n };\n\n // Return all the elements for which a truth test fails.\n _.reject = function(obj, predicate, context) {\n return _.filter(obj, _.negate(cb(predicate)), context);\n };\n\n // Determine whether all of the elements match a truth test.\n // Aliased as `all`.\n _.every = _.all = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n };\n\n // Determine if at least one element in the object matches a truth test.\n // Aliased as `any`.\n _.some = _.any = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n };\n\n // Determine if the array or object contains a given item (using `===`).\n // Aliased as `includes` and `include`.\n _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return _.indexOf(obj, item, fromIndex) >= 0;\n };\n\n // Invoke a method (with arguments) on every item in a collection.\n _.invoke = function(obj, method) {\n var args = slice.call(arguments, 2);\n var isFunc = _.isFunction(method);\n return _.map(obj, function(value) {\n var func = isFunc ? method : value[method];\n return func == null ? func : func.apply(value, args);\n });\n };\n\n // Convenience version of a common use case of `map`: fetching a property.\n _.pluck = function(obj, key) {\n return _.map(obj, _.property(key));\n };\n\n // Convenience version of a common use case of `filter`: selecting only objects\n // containing specific `key:value` pairs.\n _.where = function(obj, attrs) {\n return _.filter(obj, _.matcher(attrs));\n };\n\n // Convenience version of a common use case of `find`: getting the first object\n // containing specific `key:value` pairs.\n _.findWhere = function(obj, attrs) {\n return _.find(obj, _.matcher(attrs));\n };\n\n // Return the maximum element (or element-based computation).\n _.max = function(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Return the minimum element (or element-based computation).\n _.min = function(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Shuffle a collection, using the modern version of the\n // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n _.shuffle = function(obj) {\n var set = isArrayLike(obj) ? obj : _.values(obj);\n var length = set.length;\n var shuffled = Array(length);\n for (var index = 0, rand; index < length; index++) {\n rand = _.random(0, index);\n if (rand !== index) shuffled[index] = shuffled[rand];\n shuffled[rand] = set[index];\n }\n return shuffled;\n };\n\n // Sample **n** random values from a collection.\n // If **n** is not specified, returns a single random element.\n // The internal `guard` argument allows it to work with `map`.\n _.sample = function(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n return obj[_.random(obj.length - 1)];\n }\n return _.shuffle(obj).slice(0, Math.max(0, n));\n };\n\n // Sort the object's values by a criterion produced by an iteratee.\n _.sortBy = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n return _.pluck(_.map(obj, function(value, index, list) {\n return {\n value: value,\n index: index,\n criteria: iteratee(value, index, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n };\n\n // An internal function used for aggregate \"group by\" operations.\n var group = function(behavior) {\n return function(obj, iteratee, context) {\n var result = {};\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n };\n\n // Groups the object's values by a criterion. Pass either a string attribute\n // to group by, or a function that returns the criterion.\n _.groupBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key].push(value); else result[key] = [value];\n });\n\n // Indexes the object's values by a criterion, similar to `groupBy`, but for\n // when you know that your index values will be unique.\n _.indexBy = group(function(result, value, key) {\n result[key] = value;\n });\n\n // Counts instances of an object that group by a certain criterion. Pass\n // either a string attribute to count by, or a function that returns the\n // criterion.\n _.countBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key]++; else result[key] = 1;\n });\n\n // Safely create a real, live array from anything iterable.\n _.toArray = function(obj) {\n if (!obj) return [];\n if (_.isArray(obj)) return slice.call(obj);\n if (isArrayLike(obj)) return _.map(obj, _.identity);\n return _.values(obj);\n };\n\n // Return the number of elements in an object.\n _.size = function(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : _.keys(obj).length;\n };\n\n // Split a collection into two arrays: one whose elements all satisfy the given\n // predicate, and one whose elements all do not satisfy the predicate.\n _.partition = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var pass = [], fail = [];\n _.each(obj, function(value, key, obj) {\n (predicate(value, key, obj) ? pass : fail).push(value);\n });\n return [pass, fail];\n };\n\n // Array Functions\n // ---------------\n\n // Get the first element of an array. Passing **n** will return the first N\n // values in the array. Aliased as `head` and `take`. The **guard** check\n // allows it to work with `_.map`.\n _.first = _.head = _.take = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[0];\n return _.initial(array, array.length - n);\n };\n\n // Returns everything but the last entry of the array. Especially useful on\n // the arguments object. Passing **n** will return all the values in\n // the array, excluding the last N.\n _.initial = function(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n };\n\n // Get the last element of an array. Passing **n** will return the last N\n // values in the array.\n _.last = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[array.length - 1];\n return _.rest(array, Math.max(0, array.length - n));\n };\n\n // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.\n // Especially useful on the arguments object. Passing an **n** will return\n // the rest N values in the array.\n _.rest = _.tail = _.drop = function(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n };\n\n // Trim out all falsy values from an array.\n _.compact = function(array) {\n return _.filter(array, _.identity);\n };\n\n // Internal implementation of a recursive `flatten` function.\n var flatten = function(input, shallow, strict, startIndex) {\n var output = [], idx = 0;\n for (var i = startIndex || 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {\n //flatten current level of array or arguments object\n if (!shallow) value = flatten(value, shallow, strict);\n var j = 0, len = value.length;\n output.length += len;\n while (j < len) {\n output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n };\n\n // Flatten out an array, either recursively (by default), or just one level.\n _.flatten = function(array, shallow) {\n return flatten(array, shallow, false);\n };\n\n // Return a version of the array that does not contain the specified value(s).\n _.without = function(array) {\n return _.difference(array, slice.call(arguments, 1));\n };\n\n // Produce a duplicate-free version of the array. If the array has already\n // been sorted, you have the option of using a faster algorithm.\n // Aliased as `unique`.\n _.uniq = _.unique = function(array, isSorted, iteratee, context) {\n if (!_.isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!_.contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!_.contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n };\n\n // Produce an array that contains the union: each distinct element from all of\n // the passed-in arrays.\n _.union = function() {\n return _.uniq(flatten(arguments, true, true));\n };\n\n // Produce an array that contains every item shared between all the\n // passed-in arrays.\n _.intersection = function(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (_.contains(result, item)) continue;\n for (var j = 1; j < argsLength; j++) {\n if (!_.contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n };\n\n // Take the difference between one array and a number of other arrays.\n // Only the elements present in just the first array will remain.\n _.difference = function(array) {\n var rest = flatten(arguments, true, true, 1);\n return _.filter(array, function(value){\n return !_.contains(rest, value);\n });\n };\n\n // Zip together multiple lists into a single array -- elements that share\n // an index go together.\n _.zip = function() {\n return _.unzip(arguments);\n };\n\n // Complement of _.zip. Unzip accepts an array of arrays and groups\n // each array's elements on shared indices\n _.unzip = function(array) {\n var length = array && _.max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = _.pluck(array, index);\n }\n return result;\n };\n\n // Converts lists into objects. Pass either a single array of `[key, value]`\n // pairs, or two parallel arrays of the same length -- one of keys, and one of\n // the corresponding values.\n _.object = function(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n };\n\n // Generator function to create the findIndex and findLastIndex functions\n function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n }\n\n // Returns the first index on an array-like that passes a predicate test\n _.findIndex = createPredicateIndexFinder(1);\n _.findLastIndex = createPredicateIndexFinder(-1);\n\n // Use a comparator function to figure out the smallest index at which\n // an object should be inserted so as to maintain order. Uses binary search.\n _.sortedIndex = function(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n };\n\n // Generator function to create the indexOf and lastIndexOf functions\n function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), _.isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n }\n\n // Return the position of the first occurrence of an item in an array,\n // or -1 if the item is not included in the array.\n // If the array is large and already in sort order, pass `true`\n // for **isSorted** to use binary search.\n _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);\n _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);\n\n // Generate an integer Array containing an arithmetic progression. A port of\n // the native Python `range()` function. See\n // [the Python documentation](http://docs.python.org/library/functions.html#range).\n _.range = function(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n step = step || 1;\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n };\n\n // Function (ahem) Functions\n // ------------------\n\n // Determines whether to execute a function as a constructor\n // or a normal function with the provided arguments\n var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (_.isObject(result)) return result;\n return self;\n };\n\n // Create a function bound to a given object (assigning `this`, and arguments,\n // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n // available.\n _.bind = function(func, context) {\n if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));\n if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');\n var args = slice.call(arguments, 2);\n var bound = function() {\n return executeBound(func, bound, context, this, args.concat(slice.call(arguments)));\n };\n return bound;\n };\n\n // Partially apply a function by creating a version that has had some of its\n // arguments pre-filled, without changing its dynamic `this` context. _ acts\n // as a placeholder, allowing any combination of arguments to be pre-filled.\n _.partial = function(func) {\n var boundArgs = slice.call(arguments, 1);\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n };\n\n // Bind a number of an object's methods to that object. Remaining arguments\n // are the method names to be bound. Useful for ensuring that all callbacks\n // defined on an object belong to it.\n _.bindAll = function(obj) {\n var i, length = arguments.length, key;\n if (length <= 1) throw new Error('bindAll must be passed function names');\n for (i = 1; i < length; i++) {\n key = arguments[i];\n obj[key] = _.bind(obj[key], obj);\n }\n return obj;\n };\n\n // Memoize an expensive function by storing its results.\n _.memoize = function(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!_.has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n };\n\n // Delays a function for the given number of milliseconds, and then calls\n // it with the arguments supplied.\n _.delay = function(func, wait) {\n var args = slice.call(arguments, 2);\n return setTimeout(function(){\n return func.apply(null, args);\n }, wait);\n };\n\n // Defers a function, scheduling it to run after the current call stack has\n // cleared.\n _.defer = _.partial(_.delay, _, 1);\n\n // Returns a function, that, when invoked, will only be triggered at most once\n // during a given window of time. Normally, the throttled function will run\n // as much as it can, without ever going more than once per `wait` duration;\n // but if you'd like to disable the execution on the leading edge, pass\n // `{leading: false}`. To disable execution on the trailing edge, ditto.\n _.throttle = function(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n var later = function() {\n previous = options.leading === false ? 0 : _.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function() {\n var now = _.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n };\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _.debounce = function(func, wait, immediate) {\n var timeout, args, context, timestamp, result;\n\n var later = function() {\n var last = _.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n }\n }\n };\n\n return function() {\n context = this;\n args = arguments;\n timestamp = _.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n };\n\n // Returns the first function passed as an argument to the second,\n // allowing you to adjust arguments, run code before and after, and\n // conditionally execute the original function.\n _.wrap = function(func, wrapper) {\n return _.partial(wrapper, func);\n };\n\n // Returns a negated version of the passed-in predicate.\n _.negate = function(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n };\n\n // Returns a function that is the composition of a list of functions, each\n // consuming the return value of the function that follows.\n _.compose = function() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n };\n\n // Returns a function that will only be executed on and after the Nth call.\n _.after = function(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n };\n\n // Returns a function that will only be executed up to (but not including) the Nth call.\n _.before = function(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n };\n\n // Returns a function that will be executed at most one time, no matter how\n // often you call it. Useful for lazy initialization.\n _.once = _.partial(_.before, 2);\n\n // Object Functions\n // ----------------\n\n // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\n var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\n var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n function collectNonEnumProps(obj, keys) {\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {\n keys.push(prop);\n }\n }\n }\n\n // Retrieve the names of an object's own properties.\n // Delegates to **ECMAScript 5**'s native `Object.keys`\n _.keys = function(obj) {\n if (!_.isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (_.has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve all the property names of an object.\n _.allKeys = function(obj) {\n if (!_.isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve the values of an object's properties.\n _.values = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[keys[i]];\n }\n return values;\n };\n\n // Returns the results of applying the iteratee to each element of the object\n // In contrast to _.map it returns an object\n _.mapObject = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = _.keys(obj),\n length = keys.length,\n results = {},\n currentKey;\n for (var index = 0; index < length; index++) {\n currentKey = keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Convert an object into a list of `[key, value]` pairs.\n _.pairs = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [keys[i], obj[keys[i]]];\n }\n return pairs;\n };\n\n // Invert the keys and values of an object. The values must be serializable.\n _.invert = function(obj) {\n var result = {};\n var keys = _.keys(obj);\n for (var i = 0, length = keys.length; i < length; i++) {\n result[obj[keys[i]]] = keys[i];\n }\n return result;\n };\n\n // Return a sorted list of the function names available on the object.\n // Aliased as `methods`\n _.functions = _.methods = function(obj) {\n var names = [];\n for (var key in obj) {\n if (_.isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n };\n\n // Extend a given object with all the properties in passed-in object(s).\n _.extend = createAssigner(_.allKeys);\n\n // Assigns a given object with all the own properties in the passed-in object(s)\n // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n _.extendOwn = _.assign = createAssigner(_.keys);\n\n // Returns the first key on an object that passes a predicate test\n _.findKey = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = _.keys(obj), key;\n for (var i = 0, length = keys.length; i < length; i++) {\n key = keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n };\n\n // Return a copy of the object only containing the whitelisted properties.\n _.pick = function(object, oiteratee, context) {\n var result = {}, obj = object, iteratee, keys;\n if (obj == null) return result;\n if (_.isFunction(oiteratee)) {\n keys = _.allKeys(obj);\n iteratee = optimizeCb(oiteratee, context);\n } else {\n keys = flatten(arguments, false, false, 1);\n iteratee = function(value, key, obj) { return key in obj; };\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n };\n\n // Return a copy of the object without the blacklisted properties.\n _.omit = function(obj, iteratee, context) {\n if (_.isFunction(iteratee)) {\n iteratee = _.negate(iteratee);\n } else {\n var keys = _.map(flatten(arguments, false, false, 1), String);\n iteratee = function(value, key) {\n return !_.contains(keys, key);\n };\n }\n return _.pick(obj, iteratee, context);\n };\n\n // Fill in a given object with default properties.\n _.defaults = createAssigner(_.allKeys, true);\n\n // Creates an object that inherits from the given prototype object.\n // If additional properties are provided then they will be added to the\n // created object.\n _.create = function(prototype, props) {\n var result = baseCreate(prototype);\n if (props) _.extendOwn(result, props);\n return result;\n };\n\n // Create a (shallow-cloned) duplicate of an object.\n _.clone = function(obj) {\n if (!_.isObject(obj)) return obj;\n return _.isArray(obj) ? obj.slice() : _.extend({}, obj);\n };\n\n // Invokes interceptor with the obj, and then returns obj.\n // The primary purpose of this method is to \"tap into\" a method chain, in\n // order to perform operations on intermediate results within the chain.\n _.tap = function(obj, interceptor) {\n interceptor(obj);\n return obj;\n };\n\n // Returns whether an object has a given set of `key:value` pairs.\n _.isMatch = function(object, attrs) {\n var keys = _.keys(attrs), length = keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n };\n\n\n // Internal recursive comparison function for `isEqual`.\n var eq = function(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // A strict comparison is necessary because `null == undefined`.\n if (a == null || b == null) return a === b;\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&\n _.isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var keys = _.keys(a), key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (_.keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n };\n\n // Perform a deep comparison to check if two objects are equal.\n _.isEqual = function(a, b) {\n return eq(a, b);\n };\n\n // Is a given array, string, or object empty?\n // An \"empty\" object has no enumerable own-properties.\n _.isEmpty = function(obj) {\n if (obj == null) return true;\n if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n return _.keys(obj).length === 0;\n };\n\n // Is a given value a DOM element?\n _.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n };\n\n // Is a given value an array?\n // Delegates to ECMA5's native Array.isArray\n _.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n };\n\n // Is a given variable an object?\n _.isObject = function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n };\n\n // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError.\n _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) {\n _['is' + name] = function(obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n });\n\n // Define a fallback version of the method in browsers (ahem, IE < 9), where\n // there isn't any inspectable \"Arguments\" type.\n if (!_.isArguments(arguments)) {\n _.isArguments = function(obj) {\n return _.has(obj, 'callee');\n };\n }\n\n // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n // IE 11 (#1621), and in Safari 8 (#1929).\n if (typeof /./ != 'function' && typeof Int8Array != 'object') {\n _.isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n }\n\n // Is a given object a finite number?\n _.isFinite = function(obj) {\n return isFinite(obj) && !isNaN(parseFloat(obj));\n };\n\n // Is the given value `NaN`? (NaN is the only number which does not equal itself).\n _.isNaN = function(obj) {\n return _.isNumber(obj) && obj !== +obj;\n };\n\n // Is a given value a boolean?\n _.isBoolean = function(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n };\n\n // Is a given value equal to null?\n _.isNull = function(obj) {\n return obj === null;\n };\n\n // Is a given variable undefined?\n _.isUndefined = function(obj) {\n return obj === void 0;\n };\n\n // Shortcut function for checking if an object has a given property directly\n // on itself (in other words, not on a prototype).\n _.has = function(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n };\n\n // Utility Functions\n // -----------------\n\n // Run Underscore.js in *noConflict* mode, returning the `_` variable to its\n // previous owner. Returns a reference to the Underscore object.\n _.noConflict = function() {\n root._ = previousUnderscore;\n return this;\n };\n\n // Keep the identity function around for default iteratees.\n _.identity = function(value) {\n return value;\n };\n\n // Predicate-generating functions. Often useful outside of Underscore.\n _.constant = function(value) {\n return function() {\n return value;\n };\n };\n\n _.noop = function(){};\n\n _.property = property;\n\n // Generates a function for a given object that returns a given property.\n _.propertyOf = function(obj) {\n return obj == null ? function(){} : function(key) {\n return obj[key];\n };\n };\n\n // Returns a predicate for checking whether an object has a given set of\n // `key:value` pairs.\n _.matcher = _.matches = function(attrs) {\n attrs = _.extendOwn({}, attrs);\n return function(obj) {\n return _.isMatch(obj, attrs);\n };\n };\n\n // Run a function **n** times.\n _.times = function(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n };\n\n // Return a random integer between min and max (inclusive).\n _.random = function(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n };\n\n // A (possibly faster) way to get the current timestamp as an integer.\n _.now = Date.now || function() {\n return new Date().getTime();\n };\n\n // List of HTML entities for escaping.\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n };\n var unescapeMap = _.invert(escapeMap);\n\n // Functions for escaping and unescaping strings to/from HTML interpolation.\n var createEscaper = function(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped\n var source = '(?:' + _.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n _.escape = createEscaper(escapeMap);\n _.unescape = createEscaper(unescapeMap);\n\n // If the value of the named `property` is a function then invoke it with the\n // `object` as context; otherwise, return it.\n _.result = function(object, property, fallback) {\n var value = object == null ? void 0 : object[property];\n if (value === void 0) {\n value = fallback;\n }\n return _.isFunction(value) ? value.call(object) : value;\n };\n\n // Generate a unique integer id (unique within the entire client session).\n // Useful for temporary DOM ids.\n var idCounter = 0;\n _.uniqueId = function(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n };\n\n // By default, Underscore uses ERB-style template delimiters, change the\n // following template settings to use alternative delimiters.\n _.templateSettings = {\n evaluate : /<%([\\s\\S]+?)%>/g,\n interpolate : /<%=([\\s\\S]+?)%>/g,\n escape : /<%-([\\s\\S]+?)%>/g\n };\n\n // When customizing `templateSettings`, if you don't want to define an\n // interpolation, evaluation or escaping regex, we need one that is\n // guaranteed not to match.\n var noMatch = /(.)^/;\n\n // Certain characters need to be escaped so that they can be put into a\n // string literal.\n var escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n var escaper = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\n var escapeChar = function(match) {\n return '\\\\' + escapes[match];\n };\n\n // JavaScript micro-templating, similar to John Resig's implementation.\n // Underscore templating handles arbitrary delimiters, preserves whitespace,\n // and correctly escapes quotes within interpolated code.\n // NB: `oldSettings` only exists for backwards compatibility.\n _.template = function(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = _.defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escaper, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offest.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n try {\n var render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n };\n\n // Add a \"chain\" function. Start chaining a wrapped Underscore object.\n _.chain = function(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n };\n\n // OOP\n // ---------------\n // If Underscore is called as a function, it returns a wrapped object that\n // can be used OO-style. This wrapper holds altered versions of all the\n // underscore functions. Wrapped objects may be chained.\n\n // Helper function to continue chaining intermediate results.\n var result = function(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n };\n\n // Add your own custom functions to the Underscore object.\n _.mixin = function(obj) {\n _.each(_.functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return result(this, func.apply(_, args));\n };\n });\n };\n\n // Add all of the Underscore functions to the wrapper object.\n _.mixin(_);\n\n // Add all mutator Array functions to the wrapper.\n _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return result(this, obj);\n };\n });\n\n // Add all accessor Array functions to the wrapper.\n _.each(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n return result(this, method.apply(this._wrapped, arguments));\n };\n });\n\n // Extracts the result from a wrapped and chained object.\n _.prototype.value = function() {\n return this._wrapped;\n };\n\n // Provide unwrapping proxy for some methods used in engine operations\n // such as arithmetic and JSON stringification.\n _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n _.prototype.toString = function() {\n return '' + this._wrapped;\n };\n\n // AMD registration happens at the end for compatibility with AMD loaders\n // that may not enforce next-turn semantics on modules. Even though general\n // practice for AMD registration is to be anonymous, underscore registers\n // as a named module because, like jQuery, it is a base library that is\n // popular enough to be bundled in a third party lib, but not be part of\n // an AMD load request. Those cases could generate an error when an\n // anonymous define() is called outside of a loader request.\n if (typeof define === 'function' && define.amd) {\n define('underscore', [], function() {\n return _;\n });\n }\n}.call(this));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/underscore.js\n// module id = 1\n// module chunks = 0","!function t(e,r){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define([],r):\"object\"==typeof exports?exports.Raphael=r():e.Raphael=r()}(this,function(){return function(t){function e(i){if(r[i])return r[i].exports;var n=r[i]={exports:{},id:i,loaded:!1};return t[i].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var r={};return e.m=t,e.c=r,e.p=\"\",e(0)}([function(t,e,r){var i,n;i=[r(1),r(3),r(4)],n=function(t){return t}.apply(e,i),!(void 0!==n&&(t.exports=n))},function(t,e,r){var i,n;i=[r(2)],n=function(t){function e(r){if(e.is(r,\"function\"))return w?r():t.on(\"raphael.DOMload\",r);if(e.is(r,Q))return e._engine.create[z](e,r.splice(0,3+e.is(r[0],$))).add(r);var i=Array.prototype.slice.call(arguments,0);if(e.is(i[i.length-1],\"function\")){var n=i.pop();return w?n.call(e._engine.create[z](e,i)):t.on(\"raphael.DOMload\",function(){n.call(e._engine.create[z](e,i))})}return e._engine.create[z](e,arguments)}function r(t){if(\"function\"==typeof t||Object(t)!==t)return t;var e=new t.constructor;for(var i in t)t[A](i)&&(e[i]=r(t[i]));return e}function i(t,e){for(var r=0,i=t.length;r=1e3&&delete o[l.shift()],l.push(s),o[s]=t[z](e,a),r?r(o[s]):o[s])}return n}function a(){return this.hex}function s(t,e){for(var r=[],i=0,n=t.length;n-2*!e>i;i+=2){var a=[{x:+t[i-2],y:+t[i-1]},{x:+t[i],y:+t[i+1]},{x:+t[i+2],y:+t[i+3]},{x:+t[i+4],y:+t[i+5]}];e?i?n-4==i?a[3]={x:+t[0],y:+t[1]}:n-2==i&&(a[2]={x:+t[0],y:+t[1]},a[3]={x:+t[2],y:+t[3]}):a[0]={x:+t[n-2],y:+t[n-1]}:n-4==i?a[3]=a[2]:i||(a[0]={x:+t[i],y:+t[i+1]}),r.push([\"C\",(-a[0].x+6*a[1].x+a[2].x)/6,(-a[0].y+6*a[1].y+a[2].y)/6,(a[1].x+6*a[2].x-a[3].x)/6,(a[1].y+6*a[2].y-a[3].y)/6,a[2].x,a[2].y])}return r}function o(t,e,r,i,n){var a=-3*e+9*r-9*i+3*n,s=t*a+6*e-12*r+6*i;return t*s-3*e+3*r}function l(t,e,r,i,n,a,s,l,h){null==h&&(h=1),h=h>1?1:h<0?0:h;for(var u=h/2,c=12,f=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],p=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],d=0,g=0;gd;)c/=2,f+=(pW(n,s)||W(e,i)W(a,o))){var l=(t*i-e*r)*(n-s)-(t-r)*(n*o-a*s),h=(t*i-e*r)*(a-o)-(e-i)*(n*o-a*s),u=(t-r)*(a-o)-(e-i)*(n-s);if(u){var c=l/u,f=h/u,p=+c.toFixed(2),d=+f.toFixed(2);if(!(p<+G(t,r).toFixed(2)||p>+W(t,r).toFixed(2)||p<+G(n,s).toFixed(2)||p>+W(n,s).toFixed(2)||d<+G(e,i).toFixed(2)||d>+W(e,i).toFixed(2)||d<+G(a,o).toFixed(2)||d>+W(a,o).toFixed(2)))return{x:c,y:f}}}}function c(t,e){return p(t,e)}function f(t,e){return p(t,e,1)}function p(t,r,i){var n=e.bezierBBox(t),a=e.bezierBBox(r);if(!e.isBBoxIntersect(n,a))return i?0:[];for(var s=l.apply(0,t),o=l.apply(0,r),h=W(~~(s/5),1),c=W(~~(o/5),1),f=[],p=[],d={},g=i?0:[],v=0;v=0&&S<=1.001&&A>=0&&A<=1.001&&(i?g++:g.push({x:C.x,y:C.y,t1:G(S,1),t2:G(A,1)}))}}return g}function d(t,r,i){t=e._path2curve(t),r=e._path2curve(r);for(var n,a,s,o,l,h,u,c,f,d,g=i?0:[],v=0,x=t.length;vi)return i;for(;ra?r=n:i=n,n=(i-r)/2+r}return n}var h=3*e,u=3*(i-e)-h,c=1-h-u,f=3*r,p=3*(n-r)-f,d=1-f-p;return o(t,1/(200*a))}function m(t,e){var r=[],i={};if(this.ms=e,this.times=1,t){for(var n in t)t[A](n)&&(i[ht(n)]=t[n],r.push(ht(n)));r.sort(Bt)}this.anim=i,this.top=r[r.length-1],this.percents=r}function b(r,i,n,a,s,o){n=ht(n);var l,h,u,c=[],f,p,d,v=r.ms,x={},m={},b={};if(a)for(w=0,B=Ee.length;wa*r.top){n=r.percents[w],p=r.percents[w-1]||0,v=v/r.top*(n-p),f=r.percents[w+1],l=r.anim[n];break}a&&i.attr(r.anim[r.percents[w]])}if(l){if(h)h.initstatus=a,h.start=new Date-h.ms*a;else{for(var C in l)if(l[A](C)&&(pt[A](C)||i.paper.customAttributes[A](C)))switch(x[C]=i.attr(C),null==x[C]&&(x[C]=ft[C]),m[C]=l[C],pt[C]){case $:b[C]=(m[C]-x[C])/v;break;case\"colour\":x[C]=e.getRGB(x[C]);var S=e.getRGB(m[C]);b[C]={r:(S.r-x[C].r)/v,g:(S.g-x[C].g)/v,b:(S.b-x[C].b)/v};break;case\"path\":var T=Qt(x[C],m[C]),E=T[1];for(x[C]=T[0],b[C]=[],w=0,B=x[C].length;w',Lt=Nt.firstChild,Lt.style.behavior=\"url(#default#VML)\",!Lt||\"object\"!=typeof Lt.adj)return e.type=R;Nt=null}e.svg=!(e.vml=\"VML\"==e.type),e._Paper=M,e.fn=N=M.prototype=e.prototype,e._id=0,e.is=function(t,e){return e=O.call(e),\"finite\"==e?!at[A](+t):\"array\"==e?t instanceof Array:\"null\"==e&&null===t||e==typeof t&&null!==t||\"object\"==e&&t===Object(t)||\"array\"==e&&Array.isArray&&Array.isArray(t)||tt.call(t).slice(8,-1).toLowerCase()==e},e.angle=function(t,r,i,n,a,s){if(null==a){var o=t-i,l=r-n;return o||l?(180+180*Y.atan2(-l,-o)/U+360)%360:0}return e.angle(t,r,a,s)-e.angle(i,n,a,s)},e.rad=function(t){return t%360*U/180},e.deg=function(t){return Math.round(180*t/U%360*1e3)/1e3},e.snapTo=function(t,r,i){if(i=e.is(i,\"finite\")?i:10,e.is(t,Q)){for(var n=t.length;n--;)if(H(t[n]-r)<=i)return t[n]}else{t=+t;var a=r%t;if(at-i)return r-a+t}return r};var zt=e.createUUID=function(t,e){return function(){return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(t,e).toUpperCase()}}(/[xy]/g,function(t){var e=16*Y.random()|0,r=\"x\"==t?e:3&e|8;return r.toString(16)});e.setWindow=function(r){t(\"raphael.setWindow\",e,T.win,r),T.win=r,T.doc=T.win.document,e._engine.initWin&&e._engine.initWin(T.win)};var Pt=function(t){if(e.vml){var r=/^\\s+|\\s+$/g,i;try{var a=new ActiveXObject(\"htmlfile\");a.write(\"\"),a.close(),i=a.body}catch(s){i=createPopup().document.body}var o=i.createTextRange();Pt=n(function(t){try{i.style.color=I(t).replace(r,R);var e=o.queryCommandValue(\"ForeColor\");return e=(255&e)<<16|65280&e|(16711680&e)>>>16,\"#\"+(\"000000\"+e.toString(16)).slice(-6)}catch(n){return\"none\"}})}else{var l=T.doc.createElement(\"i\");l.title=\"Raphaël Colour Picker\",l.style.display=\"none\",T.doc.body.appendChild(l),Pt=n(function(t){return l.style.color=t,T.doc.defaultView.getComputedStyle(l,R).getPropertyValue(\"color\")})}return Pt(t)},Ft=function(){return\"hsb(\"+[this.h,this.s,this.b]+\")\"},Rt=function(){return\"hsl(\"+[this.h,this.s,this.l]+\")\"},jt=function(){return this.hex},It=function(t,r,i){if(null==r&&e.is(t,\"object\")&&\"r\"in t&&\"g\"in t&&\"b\"in t&&(i=t.b,r=t.g,t=t.r),null==r&&e.is(t,Z)){var n=e.getRGB(t);t=n.r,r=n.g,i=n.b}return(t>1||r>1||i>1)&&(t/=255,r/=255,i/=255),[t,r,i]},qt=function(t,r,i,n){t*=255,r*=255,i*=255;var a={r:t,g:r,b:i,hex:e.rgb(t,r,i),toString:jt};return e.is(n,\"finite\")&&(a.opacity=n),a};e.color=function(t){var r;return e.is(t,\"object\")&&\"h\"in t&&\"s\"in t&&\"b\"in t?(r=e.hsb2rgb(t),t.r=r.r,t.g=r.g,t.b=r.b,t.hex=r.hex):e.is(t,\"object\")&&\"h\"in t&&\"s\"in t&&\"l\"in t?(r=e.hsl2rgb(t),t.r=r.r,t.g=r.g,t.b=r.b,t.hex=r.hex):(e.is(t,\"string\")&&(t=e.getRGB(t)),e.is(t,\"object\")&&\"r\"in t&&\"g\"in t&&\"b\"in t?(r=e.rgb2hsl(t),t.h=r.h,t.s=r.s,t.l=r.l,r=e.rgb2hsb(t),t.v=r.b):(t={hex:\"none\"},t.r=t.g=t.b=t.h=t.s=t.v=t.l=-1)),t.toString=jt,t},e.hsb2rgb=function(t,e,r,i){this.is(t,\"object\")&&\"h\"in t&&\"s\"in t&&\"b\"in t&&(r=t.b,e=t.s,i=t.o,t=t.h),t*=360;var n,a,s,o,l;return t=t%360/60,l=r*e,o=l*(1-H(t%2-1)),n=a=s=r-l,t=~~t,n+=[l,o,0,0,o,l][t],a+=[o,l,l,o,0,0][t],s+=[0,0,o,l,l,o][t],qt(n,a,s,i)},e.hsl2rgb=function(t,e,r,i){this.is(t,\"object\")&&\"h\"in t&&\"s\"in t&&\"l\"in t&&(r=t.l,e=t.s,t=t.h),(t>1||e>1||r>1)&&(t/=360,e/=100,r/=100),t*=360;var n,a,s,o,l;return t=t%360/60,l=2*e*(r<.5?r:1-r),o=l*(1-H(t%2-1)),n=a=s=r-l/2,t=~~t,n+=[l,o,0,0,o,l][t],a+=[o,l,l,o,0,0][t],s+=[0,0,o,l,l,o][t],qt(n,a,s,i)},e.rgb2hsb=function(t,e,r){r=It(t,e,r),t=r[0],e=r[1],r=r[2];var i,n,a,s;return a=W(t,e,r),s=a-G(t,e,r),i=0==s?null:a==t?(e-r)/s:a==e?(r-t)/s+2:(t-e)/s+4,i=(i+360)%6*60/360,n=0==s?0:s/a,{h:i,s:n,b:a,toString:Ft}},e.rgb2hsl=function(t,e,r){r=It(t,e,r),t=r[0],e=r[1],r=r[2];var i,n,a,s,o,l;return s=W(t,e,r),o=G(t,e,r),l=s-o,i=0==l?null:s==t?(e-r)/l:s==e?(r-t)/l+2:(t-e)/l+4,i=(i+360)%6*60/360,a=(s+o)/2,n=0==l?0:a<.5?l/(2*a):l/(2-2*a),{h:i,s:n,l:a,toString:Rt}},e._path2string=function(){return this.join(\",\").replace(xt,\"$1\")};var Dt=e._preload=function(t,e){var r=T.doc.createElement(\"img\");r.style.cssText=\"position:absolute;left:-9999em;top:-9999em\",r.onload=function(){e.call(this),this.onload=null,T.doc.body.removeChild(this)},r.onerror=function(){T.doc.body.removeChild(this)},T.doc.body.appendChild(r),r.src=t};e.getRGB=n(function(t){if(!t||(t=I(t)).indexOf(\"-\")+1)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:a};if(\"none\"==t)return{r:-1,g:-1,b:-1,hex:\"none\",toString:a};!(vt[A](t.toLowerCase().substring(0,2))||\"#\"==t.charAt())&&(t=Pt(t));var r,i,n,s,o,l,h,u=t.match(nt);return u?(u[2]&&(s=ut(u[2].substring(5),16),n=ut(u[2].substring(3,5),16),i=ut(u[2].substring(1,3),16)),u[3]&&(s=ut((l=u[3].charAt(3))+l,16),n=ut((l=u[3].charAt(2))+l,16),i=ut((l=u[3].charAt(1))+l,16)),u[4]&&(h=u[4][q](gt),i=ht(h[0]),\"%\"==h[0].slice(-1)&&(i*=2.55),n=ht(h[1]),\"%\"==h[1].slice(-1)&&(n*=2.55),s=ht(h[2]),\"%\"==h[2].slice(-1)&&(s*=2.55),\"rgba\"==u[1].toLowerCase().slice(0,4)&&(o=ht(h[3])),h[3]&&\"%\"==h[3].slice(-1)&&(o/=100)),u[5]?(h=u[5][q](gt),i=ht(h[0]),\"%\"==h[0].slice(-1)&&(i*=2.55),n=ht(h[1]),\"%\"==h[1].slice(-1)&&(n*=2.55),s=ht(h[2]),\"%\"==h[2].slice(-1)&&(s*=2.55),(\"deg\"==h[0].slice(-3)||\"°\"==h[0].slice(-1))&&(i/=360),\"hsba\"==u[1].toLowerCase().slice(0,4)&&(o=ht(h[3])),h[3]&&\"%\"==h[3].slice(-1)&&(o/=100),e.hsb2rgb(i,n,s,o)):u[6]?(h=u[6][q](gt),i=ht(h[0]),\"%\"==h[0].slice(-1)&&(i*=2.55),n=ht(h[1]),\"%\"==h[1].slice(-1)&&(n*=2.55),s=ht(h[2]),\"%\"==h[2].slice(-1)&&(s*=2.55),(\"deg\"==h[0].slice(-3)||\"°\"==h[0].slice(-1))&&(i/=360),\"hsla\"==u[1].toLowerCase().slice(0,4)&&(o=ht(h[3])),h[3]&&\"%\"==h[3].slice(-1)&&(o/=100),e.hsl2rgb(i,n,s,o)):(u={r:i,g:n,b:s,toString:a},u.hex=\"#\"+(16777216|s|n<<8|i<<16).toString(16).slice(1),e.is(o,\"finite\")&&(u.opacity=o),u)):{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:a}},e),e.hsb=n(function(t,r,i){return e.hsb2rgb(t,r,i).hex}),e.hsl=n(function(t,r,i){return e.hsl2rgb(t,r,i).hex}),e.rgb=n(function(t,e,r){function i(t){return t+.5|0}return\"#\"+(16777216|i(r)|i(e)<<8|i(t)<<16).toString(16).slice(1)}),e.getColor=function(t){var e=this.getColor.start=this.getColor.start||{h:0,s:1,b:t||.75},r=this.hsb2rgb(e.h,e.s,e.b);return e.h+=.075,e.h>1&&(e.h=0,e.s-=.2,e.s<=0&&(this.getColor.start={h:0,s:1,b:e.b})),r.hex},e.getColor.reset=function(){delete this.start},e.parsePathString=function(t){if(!t)return null;var r=Vt(t);if(r.arr)return Yt(r.arr);var i={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},n=[];return e.is(t,Q)&&e.is(t[0],Q)&&(n=Yt(t)),n.length||I(t).replace(yt,function(t,e,r){var a=[],s=e.toLowerCase();if(r.replace(bt,function(t,e){e&&a.push(+e)}),\"m\"==s&&a.length>2&&(n.push([e][P](a.splice(0,2))),s=\"l\",e=\"m\"==e?\"l\":\"L\"),\"r\"==s)n.push([e][P](a));else for(;a.length>=i[s]&&(n.push([e][P](a.splice(0,i[s]))),i[s]););}),n.toString=e._path2string,r.arr=Yt(n),n},e.parseTransformString=n(function(t){if(!t)return null;var r={r:3,s:4,t:2,m:6},i=[];return e.is(t,Q)&&e.is(t[0],Q)&&(i=Yt(t)),i.length||I(t).replace(mt,function(t,e,r){var n=[],a=O.call(e);r.replace(bt,function(t,e){e&&n.push(+e)}),i.push([e][P](n))}),i.toString=e._path2string,i});var Vt=function(t){var e=Vt.ps=Vt.ps||{};return e[t]?e[t].sleep=100:e[t]={sleep:100},setTimeout(function(){for(var r in e)e[A](r)&&r!=t&&(e[r].sleep--,!e[r].sleep&&delete e[r])}),e[t]};e.findDotsAtSegment=function(t,e,r,i,n,a,s,o,l){var h=1-l,u=X(h,3),c=X(h,2),f=l*l,p=f*l,d=u*t+3*c*l*r+3*h*l*l*n+p*s,g=u*e+3*c*l*i+3*h*l*l*a+p*o,v=t+2*l*(r-t)+f*(n-2*r+t),x=e+2*l*(i-e)+f*(a-2*i+e),y=r+2*l*(n-r)+f*(s-2*n+r),m=i+2*l*(a-i)+f*(o-2*a+i),b=h*t+l*r,_=h*e+l*i,w=h*n+l*s,k=h*a+l*o,B=90-180*Y.atan2(v-y,x-m)/U;return(v>y||x=t.x&&e<=t.x2&&r>=t.y&&r<=t.y2},e.isBBoxIntersect=function(t,r){var i=e.isPointInsideBBox;return i(r,t.x,t.y)||i(r,t.x2,t.y)||i(r,t.x,t.y2)||i(r,t.x2,t.y2)||i(t,r.x,r.y)||i(t,r.x2,r.y)||i(t,r.x,r.y2)||i(t,r.x2,r.y2)||(t.xr.x||r.xt.x)&&(t.yr.y||r.yt.y)},e.pathIntersection=function(t,e){return d(t,e)},e.pathIntersectionNumber=function(t,e){return d(t,e,1)},e.isPointInsidePath=function(t,r,i){var n=e.pathBBox(t);return e.isPointInsideBBox(n,r,i)&&d(t,[[\"M\",r,i],[\"H\",n.x2+10]],1)%2==1},e._removedFactory=function(e){return function(){t(\"raphael.log\",null,\"Raphaël: you are calling to method “\"+e+\"” of removed object\",e)}};var Ot=e.pathBBox=function(t){var e=Vt(t);if(e.bbox)return r(e.bbox);if(!t)return{x:0,y:0,width:0,height:0,x2:0,y2:0};t=Qt(t);for(var i=0,n=0,a=[],s=[],o,l=0,h=t.length;l1&&(b=Y.sqrt(b),r=b*r,i=b*i);var _=r*r,w=i*i,k=(s==o?-1:1)*Y.sqrt(H((_*w-_*m*m-w*y*y)/(_*m*m+w*y*y))),B=k*r*m/i+(t+l)/2,C=k*-i*y/r+(e+h)/2,S=Y.asin(((e-C)/i).toFixed(9)),A=Y.asin(((h-C)/i).toFixed(9));S=tA&&(S-=2*U),!o&&A>S&&(A-=2*U)}var T=A-S;if(H(T)>c){var E=A,M=l,N=h;A=S+c*(o&&A>S?1:-1),l=B+r*Y.cos(A),h=C+i*Y.sin(A),p=Ut(l,h,r,i,a,0,o,M,N,[A,E,B,C])}T=A-S;var L=Y.cos(S),z=Y.sin(S),F=Y.cos(A),R=Y.sin(A),j=Y.tan(T/4),I=4/3*r*j,D=4/3*i*j,V=[t,e],O=[t+I*z,e-D*L],W=[l+I*R,h-D*F],G=[l,h];if(O[0]=2*V[0]-O[0],O[1]=2*V[1]-O[1],u)return[O,W,G][P](p);p=[O,W,G][P](p).join()[q](\",\");for(var X=[],$=0,Z=p.length;$\"1e12\"&&(c=.5),H(f)>\"1e12\"&&(f=.5),c>0&&c<1&&(g=$t(t,e,r,i,n,a,s,o,c),d.push(g.x),p.push(g.y)),f>0&&f<1&&(g=$t(t,e,r,i,n,a,s,o,f),d.push(g.x),p.push(g.y)),l=a-2*i+e-(o-2*a+i),h=2*(i-e)-2*(a-i),u=e-i,c=(-h+Y.sqrt(h*h-4*l*u))/2/l,f=(-h-Y.sqrt(h*h-4*l*u))/2/l,H(c)>\"1e12\"&&(c=.5),H(f)>\"1e12\"&&(f=.5),c>0&&c<1&&(g=$t(t,e,r,i,n,a,s,o,c),d.push(g.x),p.push(g.y)),f>0&&f<1&&(g=$t(t,e,r,i,n,a,s,o,f),d.push(g.x),p.push(g.y)),{min:{x:G[z](0,d),y:G[z](0,p)},max:{x:W[z](0,d),y:W[z](0,p)}}}),Qt=e._path2curve=n(function(t,e){var r=!e&&Vt(t);if(!e&&r.curve)return Yt(r.curve);for(var i=Gt(t),n=e&&Gt(e),a={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},s={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},o=(function(t,e,r){var i,n,a={T:1,Q:1};if(!t)return[\"C\",e.x,e.y,e.x,e.y,e.x,e.y];switch(!(t[0]in a)&&(e.qx=e.qy=null),t[0]){case\"M\":e.X=t[1],e.Y=t[2];break;case\"A\":t=[\"C\"][P](Ut[z](0,[e.x,e.y][P](t.slice(1))));break;case\"S\":\"C\"==r||\"S\"==r?(i=2*e.x-e.bx,n=2*e.y-e.by):(i=e.x,n=e.y),t=[\"C\",i,n][P](t.slice(1));break;case\"T\":\"Q\"==r||\"T\"==r?(e.qx=2*e.x-e.qx,e.qy=2*e.y-e.qy):(e.qx=e.x,e.qy=e.y),t=[\"C\"][P](Xt(e.x,e.y,e.qx,e.qy,t[1],t[2]));break;case\"Q\":e.qx=t[1],e.qy=t[2],t=[\"C\"][P](Xt(e.x,e.y,t[1],t[2],t[3],t[4]));break;case\"L\":t=[\"C\"][P](Ht(e.x,e.y,t[1],t[2]));break;case\"H\":t=[\"C\"][P](Ht(e.x,e.y,t[1],e.y));break;case\"V\":t=[\"C\"][P](Ht(e.x,e.y,e.x,t[1]));break;case\"Z\":t=[\"C\"][P](Ht(e.x,e.y,e.X,e.Y))}return t}),l=function(t,e){if(t[e].length>7){t[e].shift();for(var r=t[e];r.length;)u[e]=\"A\",n&&(c[e]=\"A\"),t.splice(e++,0,[\"C\"][P](r.splice(0,6)));t.splice(e,1),g=W(i.length,n&&n.length||0)}},h=function(t,e,r,a,s){t&&e&&\"M\"==t[s][0]&&\"M\"!=e[s][0]&&(e.splice(s,0,[\"M\",a.x,a.y]),r.bx=0,r.by=0,r.x=t[s][1],r.y=t[s][2],g=W(i.length,n&&n.length||0))},u=[],c=[],f=\"\",p=\"\",d=0,g=W(i.length,n&&n.length||0);dn){if(r&&!c.start){if(f=ke(s,o,l[1],l[2],l[3],l[4],l[5],l[6],n-p),u+=[\"C\"+f.start.x,f.start.y,f.m.x,f.m.y,f.x,f.y],a)return u;c.start=u,u=[\"M\"+f.x,f.y+\"C\"+f.n.x,f.n.y,f.end.x,f.end.y,l[5],l[6]].join(),p+=h,s=+l[5],o=+l[6];continue}if(!t&&!r)return f=ke(s,o,l[1],l[2],l[3],l[4],l[5],l[6],n-p),{x:f.x,y:f.y,alpha:f.alpha}}p+=h,s=+l[5],o=+l[6]}u+=l.shift()+l}return c.end=u,f=t?p:r?c:e.findDotsAtSegment(s,o,l[0],l[1],l[2],l[3],l[4],l[5],1),f.alpha&&(f={x:f.x,y:f.y,alpha:f.alpha}),f}},Ce=Be(1),Se=Be(),Ae=Be(0,1);e.getTotalLength=Ce,e.getPointAtLength=Se,e.getSubpath=function(t,e,r){if(this.getTotalLength(t)-r<1e-6)return Ae(t,e).end;var i=Ae(t,r,1);return e?Ae(i,e).end:i},ye.getTotalLength=function(){var t=this.getPath();if(t)return this.node.getTotalLength?this.node.getTotalLength():Ce(t)},ye.getPointAtLength=function(t){var e=this.getPath();if(e)return Se(e,t)},ye.getPath=function(){var t,r=e._getPath[this.type];if(\"text\"!=this.type&&\"set\"!=this.type)return r&&(t=r(this)),t},ye.getSubpath=function(t,r){var i=this.getPath();if(i)return e.getSubpath(i,t,r)};var Te=e.easing_formulas={linear:function(t){return t},\"<\":function(t){return X(t,1.7)},\">\":function(t){return X(t,.48)},\"<>\":function(t){var e=.48-t/1.04,r=Y.sqrt(.1734+e*e),i=r-e,n=X(H(i),1/3)*(i<0?-1:1),a=-r-e,s=X(H(a),1/3)*(a<0?-1:1),o=n+s+.5;return 3*(1-o)*o*o+o*o*o},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){t-=1;var e=1.70158;return t*t*((e+1)*t+e)+1},elastic:function(t){return t==!!t?t:X(2,-10*t)*Y.sin((t-.075)*(2*U)/.3)+1},bounce:function(t){var e=7.5625,r=2.75,i;return t<1/r?i=e*t*t:t<2/r?(t-=1.5/r,i=e*t*t+.75):t<2.5/r?(t-=2.25/r,i=e*t*t+.9375):(t-=2.625/r,i=e*t*t+.984375),i}};Te.easeIn=Te[\"ease-in\"]=Te[\"<\"],Te.easeOut=Te[\"ease-out\"]=Te[\">\"],Te.easeInOut=Te[\"ease-in-out\"]=Te[\"<>\"],Te[\"back-in\"]=Te.backIn,Te[\"back-out\"]=Te.backOut;var Ee=[],Me=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){setTimeout(t,16)},Ne=function(){for(var r=+new Date,i=0;i1&&!n.next){for(v in u)u[A](v)&&(g[v]=n.totalOrigin[v]);n.el.attr(g),b(n.anim,n.el,n.anim.percents[0],null,n.totalOrigin,n.repeat-1)}n.next&&!n.stop&&b(n.anim,n.el,n.next,null,n.totalOrigin,n.repeat)}}}Ee.length&&Me(Ne)},Le=function(t){return t>255?255:t<0?0:t};ye.animateWith=function(t,r,i,n,a,s){var o=this;if(o.removed)return s&&s.call(o),o;var l=i instanceof m?i:e.animation(i,n,a,s),h,u;b(l,o,l.percents[0],null,o.attr());for(var c=0,f=Ee.length;cl&&(l=u)}l+=\"%\",!t[l].callback&&(t[l].callback=n)}return new m(t,r)},ye.animate=function(t,r,i,n){var a=this;if(a.removed)return n&&n.call(a),a;var s=t instanceof m?t:e.animation(t,r,i,n);return b(s,a,s.percents[0],null,a.attr()),a},ye.setTime=function(t,e){return t&&null!=e&&this.status(t,G(e,t.ms)/t.ms),this},ye.status=function(t,e){var r=[],i=0,n,a;if(null!=e)return b(t,this,-1,G(e,1)),this;for(n=Ee.length;i1)for(var i=0,n=r.length;i.5)-1;l(f-.5,2)+l(p-.5,2)>.25&&(p=a.sqrt(.25-l(f-.5,2))*n+.5)&&.5!=p&&(p=p.toFixed(5)-1e-5*n)}return c}),n=n.split(/\\s*\\-\\s*/),\"linear\"==h){var b=n.shift();if(b=-i(b),isNaN(b))return null;var _=[0,0,a.cos(t.rad(b)),a.sin(t.rad(b))],w=1/(s(o(_[2]),o(_[3]))||1);_[2]*=w,_[3]*=w,_[2]<0&&(_[0]=-_[2],_[2]=0),_[3]<0&&(_[1]=-_[3],_[3]=0)}var k=t._parseDots(n);if(!k)return null;if(u=u.replace(/[\\(\\)\\s,\\xb0#]/g,\"_\"),e.gradient&&u!=e.gradient.id&&(g.defs.removeChild(e.gradient),delete e.gradient),!e.gradient){y=v(h+\"Gradient\",{id:u}),e.gradient=y,v(y,\"radial\"==h?{fx:f,fy:p}:{x1:_[0],y1:_[1],x2:_[2],y2:_[3],gradientTransform:e.matrix.invert()}),g.defs.appendChild(y);for(var B=0,C=k.length;B1?z.opacity/100:z.opacity});case\"stroke\":z=t.getRGB(g),l.setAttribute(d,z.hex),\"stroke\"==d&&z[e](\"opacity\")&&v(l,{\"stroke-opacity\":z.opacity>1?z.opacity/100:z.opacity}),\"stroke\"==d&&i._.arrows&&(\"startString\"in i._.arrows&&_(i,i._.arrows.startString),\"endString\"in i._.arrows&&_(i,i._.arrows.endString,1));break;case\"gradient\":(\"circle\"==i.type||\"ellipse\"==i.type||\"r\"!=r(g).charAt())&&x(i,g);break;case\"opacity\":u.gradient&&!u[e](\"stroke-opacity\")&&v(l,{\"stroke-opacity\":g>1?g/100:g});case\"fill-opacity\":if(u.gradient){P=t._g.doc.getElementById(l.getAttribute(\"fill\").replace(/^url\\(#|\\)$/g,c)),P&&(F=P.getElementsByTagName(\"stop\"),v(F[F.length-1],{\"stop-opacity\":g}));break}default:\"font-size\"==d&&(g=n(g,10)+\"px\");var R=d.replace(/(\\-.)/g,function(t){return t.substring(1).toUpperCase()});l.style[R]=g,i._.dirty=1,l.setAttribute(d,g)}}S(i,a),l.style.visibility=f},C=1.2,S=function(i,a){if(\"text\"==i.type&&(a[e](\"text\")||a[e](\"font\")||a[e](\"font-size\")||a[e](\"x\")||a[e](\"y\"))){var s=i.attrs,o=i.node,l=o.firstChild?n(t._g.doc.defaultView.getComputedStyle(o.firstChild,c).getPropertyValue(\"font-size\"),10):10;if(a[e](\"text\")){for(s.text=a.text;o.firstChild;)o.removeChild(o.firstChild);for(var h=r(a.text).split(\"\\n\"),u=[],f,p=0,d=h.length;p\"));var Z=X.getBoundingClientRect();m.W=f.w=(Z.right-Z.left)/U,m.H=f.h=(Z.bottom-Z.top)/U,m.X=f.x,m.Y=f.y+m.H/2,(\"x\"in l||\"y\"in l)&&(m.path.v=t.format(\"m{0},{1}l{2},{1}\",a(f.x*b),a(f.y*b),a(f.x*b)+1));for(var Q=[\"x\",\"y\",\"text\",\"font\",\"font-family\",\"font-weight\",\"font-style\",\"font-size\"],J=0,K=Q.length;J.25&&(r=n.sqrt(.25-l(e-.5,2))*(2*(r>.5)-1)+.5),f=e+p+r),d}),a=a.split(/\\s*\\-\\s*/),\"linear\"==c){var g=a.shift();if(g=-i(g),isNaN(g))return null}var v=t._parseDots(a);if(!v)return null;if(e=e.shape||e.node,v.length){e.removeChild(s),s.on=!0,s.method=\"none\",s.color=v[0].color,s.color2=v[v.length-1].color;for(var x=[],y=0,m=v.length;y')}}catch(r){N=function(t){return e.createElement(\"<\"+t+' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"rvml\">')}}},t._engine.initWin(t._g.win),t._engine.create=function(){var e=t._getContainer.apply(0,arguments),r=e.container,i=e.height,n,a=e.width,s=e.x,o=e.y;if(!r)throw new Error(\"VML container not found.\");var l=new t._Paper,h=l.canvas=t._g.doc.createElement(\"div\"),u=h.style;return s=s||0,o=o||0,a=a||512,i=i||342,l.width=a,l.height=i,a==+a&&(a+=\"px\"),i==+i&&(i+=\"px\"),l.coordsize=1e3*b+p+1e3*b,l.coordorigin=\"0 0\",l.span=t._g.doc.createElement(\"span\"),l.span.style.cssText=\"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;\",h.appendChild(l.span),u.cssText=t.format(\"top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden\",a,i),1==r?(t._g.doc.body.appendChild(h),u.left=s+\"px\",u.top=o+\"px\",u.position=\"absolute\"):r.firstChild?r.insertBefore(h,r.firstChild):r.appendChild(h),l.renderfix=function(){},l},t.prototype.clear=function(){t.eve(\"raphael.clear\",this),this.canvas.innerHTML=d,this.span=t._g.doc.createElement(\"span\"),this.span.style.cssText=\"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;\",this.canvas.appendChild(this.span),this.bottom=this.top=null},t.prototype.remove=function(){t.eve(\"raphael.remove\",this),this.canvas.parentNode.removeChild(this.canvas);for(var e in this)this[e]=\"function\"==typeof this[e]?t._removedFactory(e):null;return!0};var L=t.st;for(var z in M)M[e](z)&&!L[e](z)&&(L[z]=function(t){return function(){var e=arguments;return this.forEach(function(r){r[t].apply(r,e)})}}(z))}}.apply(e,i),!(void 0!==n&&(t.exports=n))}])});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/raphael/raphael.min.js\n// module id = 2\n// module chunks = 0"],"sourceRoot":""}