{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6*****","webpack:///legend.min.js","webpack:///webpack/bootstrap 0a1eb6cfa29181d5999f?cc57*****","webpack:///./src/charts/legend.js","webpack:///./~/d3-array/build/d3-array.js?d8bc****","webpack:///./~/d3-ease/build/d3-ease.js?034c****","webpack:///./~/d3-color/build/d3-color.js?f7c1****","webpack:///./~/d3-dispatch/build/d3-dispatch.js?a489****","webpack:///./~/d3-format/build/d3-format.js?fb4a****","webpack:///./~/d3-scale/build/d3-scale.js?7e54***","webpack:///./~/d3-collection/build/d3-collection.js?6c84***","webpack:///./~/d3-interpolate/build/d3-interpolate.js?f797****","webpack:///./~/d3-time/build/d3-time.js?70a1****","webpack:///./~/d3-time-format/build/d3-time-format.js?bb40****","webpack:///./~/d3-selection/build/d3-selection.js?6638****","webpack:///./~/d3-transition/build/d3-transition.js?07b0****","webpack:///./~/d3-timer/build/d3-timer.js?2468****","webpack:///./src/charts/helpers/text.js?db9c*","webpack:///./src/charts/helpers/colors.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","__WEBPACK_AMD_DEFINE_RESULT__","require","d3Format","d3Scale","d3Selection","textHelper","colorHelper","_selection","each","_data","chartWidth","width","margin","left","right","chartHeight","height","top","bottom","data","buildColorScale","buildSVG","isHorizontal","drawHorizontalLegend","drawVerticalLegend","adjustLines","lineWidth","svg","select","node","getBoundingClientRect","lineWidthSpace","centerLegendOnSVG","splitInLines","buildContainerGroups","container","append","classed","attr","colorSchema","colorScale","scaleOrdinal","range","legendGroupSize","emptySpace","cleanFadedLines","selectAll","isFadedClassName","xOffset","markerSize","entries","enter","getId","_ref5","name","horizontalOffset","lineHeight","verticalOffset","labelWidth","getTextWidth","textSize","getLineElementMargin","merge","markerYOffset","style","getCircleFill","text","getName","textLetterSpacing","exit","transition","remove","d","i","length","getFormattedQuantity","valueReservedSpace","numberLetterSpacing","fadeLinesBut","exceptionItemId","classToFade","marginRatio","legendEntries","numberOfEntries","size","newLine","lastEntry","filter","numberFormat","colorSchemas","britecharts","_ref","_ref2","_ref3","quantity","format","_ref4","clearHighlight","_x","arguments","highlight","entryId","undefined","global","ascendingComparator","f","x","ascending","pair","a","b","tickIncrement","start","stop","count","step","Math","max","power","floor","log","LN10","error","pow","e10","e5","e2","tickStep","step0","abs","step1","NaN","bisector","compare","lo","hi","mid","ascendingBisect","bisectRight","bisectLeft","pairs","array","n","Array","cross","values0","values1","reduce","i0","i1","value0","n0","n1","values","descending","number","variance","valueof","value","delta","mean","sum","isNaN","deviation","v","sqrt","extent","min","prototype","slice","map","constant","identity","ceil","ticks","reverse","isFinite","sturges","LN2","histogram","xz","domain","x0","x1","tz","threshold","isArray","shift","pop","bin","bins","push","_","thresholds","quantile","value1","freedmanDiaconis","sort","scott","median","numbers","arrays","merged","j","permute","indexes","permutes","scan","xi","xj","shuffle","t","random","transpose","matrix","row","zip","bisect","thresholdFreedmanDiaconis","thresholdScott","thresholdSturges","Object","defineProperty","linear","quadIn","quadOut","quadInOut","cubicIn","cubicOut","cubicInOut","sinIn","cos","halfPi","sinOut","sin","sinInOut","pi","expIn","expOut","expInOut","circleIn","circleOut","circleInOut","bounceIn","bounceOut","b1","b0","b3","b2","b4","b6","b5","b7","b8","b9","bounceInOut","exponent","polyIn","custom","e","polyOut","polyInOut","PI","overshoot","backIn","s","backOut","backInOut","tau","amplitude","period","elasticIn","asin","elasticOut","elasticInOut","easeLinear","easeQuad","easeQuadIn","easeQuadOut","easeQuadInOut","easeCubic","easeCubicIn","easeCubicOut","easeCubicInOut","easePoly","easePolyIn","easePolyOut","easePolyInOut","easeSin","easeSinIn","easeSinOut","easeSinInOut","easeExp","easeExpIn","easeExpOut","easeExpInOut","easeCircle","easeCircleIn","easeCircleOut","easeCircleInOut","easeBounce","easeBounceIn","easeBounceOut","easeBounceInOut","easeBack","easeBackIn","easeBackOut","easeBackInOut","easeElastic","easeElasticIn","easeElasticOut","easeElasticInOut","extend","parent","definition","create","key","Color","color","trim","toLowerCase","reHex3","exec","parseInt","Rgb","reHex6","rgbn","reRgbInteger","reRgbPercent","reRgbaInteger","rgba","reRgbaPercent","reHslPercent","hsla","reHslaPercent","named","hasOwnProperty","r","g","rgbConvert","o","rgb","opacity","h","l","Hsl","hslConvert","hsl","hsl2rgb","m1","m2","labConvert","Lab","Hcl","deg2rad","rgb2xyz","xyz2lab","Xn","y","Yn","z","Zn","lab","t3","t2","t0","lab2xyz","t1","xyz2rgb","hclConvert","atan2","rad2deg","hcl","cubehelixConvert","Cubehelix","BC_DA","ED","EB","bl","k","E","C","D","cubehelix","constructor","darker","brighter","reI","reN","reP","RegExp","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","displayable","toString","round","Kn","A","B","cosh","sinh","dispatch","Error","Dispatch","parseTypenames","typenames","types","split","indexOf","type","get","set","callback","noop","concat","on","typename","T","copy","that","args","apply","formatSpecifier","specifier","FormatSpecifier","match","re","fill","align","sign","symbol","zero","comma","precision","formatTypes","defaultLocale","locale","formatLocale","formatPrefix","prefixExponent","formatDecimal","toExponential","coefficient","formatGroup","grouping","thousands","substring","join","formatNumerals","numerals","replace","formatDefault","toPrecision","out","formatPrefixAuto","formatRounded","","%","toFixed","X","toUpperCase","prefixes","newFormat","valuePrefix","prefix","valueSuffix","suffix","formatType","valueNegative","maybeSuffix","charCodeAt","decimal","group","Infinity","padding","currency","test","percent","precisionFixed","precisionPrefix","precisionRound","formatDefaultLocale","d3Array","d3Collection","d3Interpolate","d3Time","d3TimeFormat","d3Color","ordinal","range$$1","scale","index","unknown","implicit","has","band","rescale","paddingInner","paddingOuter","bandwidth","ordinalRange","rangeRound","pointish","point","deinterpolateLinear","deinterpolateClamp","deinterpolate","reinterpolateClamp","reinterpolate","bimap","d0","d1","r0","r1","polymap","source","target","interpolate","clamp","continuous","piecewise","output","input","interpolate$$1","unit","invert","map$1","interpolateRound","linearish","tickFormat","nice","interpolateNumber","pow10","powp","base","exp","logp","log10","log2","reflect","logs","pows","u","raise","quantile$1","invertExtent","quantiles","quantize","date","Date","number$1","calendar","year","month","week","day","hour","minute","second","millisecond","format$$1","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","formatYear","tickInterval","interval","tickIntervals","durationYear","every","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","ramp","sequential","interpolator","time","timeYear","timeMonth","timeWeek","timeDay","timeHour","timeMinute","timeSecond","timeMillisecond","timeFormat","utcTime","utcYear","utcMonth","utcWeek","utcDay","utcHour","utcMinute","utcSecond","utcMillisecond","utcFormat","UTC","colors","category10","category20b","category20c","category20","cubehelix$1","interpolateCubehelixLong","warm","cool","rainbow","rainbow$1","ts","viridis","magma","inferno","plasma","scaleBand","scalePoint","scaleIdentity","scaleLinear","scaleLog","scaleImplicit","scalePow","scaleSqrt","scaleQuantile","scaleQuantize","scaleThreshold","scaleTime","scaleUtc","schemeCategory10","schemeCategory20b","schemeCategory20c","schemeCategory20","interpolateCubehelixDefault","interpolateRainbow","interpolateWarm","interpolateCool","interpolateViridis","interpolateMagma","interpolateInferno","interpolatePlasma","scaleSequential","Map","object","createObject","setObject","createMap","setMap","map$$1","Set","add","property","clear","keys","empty","nest","depth","createResult","setResult","sortValues","rollup","keyValue","valuesByKey","result","sortKey","sortKeys","order","proto","basis","v0","v1","v2","v3","exponential","hue","gamma","nogamma","rgbSpline","spline","color$$1","one","parseCss","cssNode","document","createElement","cssRoot","documentElement","cssView","defaultView","transform","getComputedStyle","appendChild","getPropertyValue","removeChild","decompose","parseSvg","svgNode","createElementNS","setAttribute","baseVal","consolidate","interpolateTransform","parse","pxComma","pxParen","degParen","translate","xa","ya","xb","yb","q","rotate","skewX","translateX","translateY","scaleX","scaleY","tanh","hsl$1","hue$$1","end","lab$1","hcl$1","cubehelixGamma","cubehelix$$1","basis$1","basisClosed","rgb$1","rgbGamma","rgb$$1","rgbBasis","rgbBasisClosed","nb","na","setTime","reA","reB","string","am","bm","bs","bi","lastIndex","valueOf","degrees","atan","interpolateTransformCss","interpolateTransformSvg","rho","SQRT2","rho2","rho4","epsilon2","zoom","p0","p1","S","ux0","uy0","w0","ux1","uy1","w1","dx","dy","d2","coshr0","duration","hsl$2","hslLong","hcl$2","hclLong","cubehelix$2","cubehelixLong","samples","interpolateArray","interpolateBasis","interpolateBasisClosed","interpolateDate","interpolateObject","interpolateString","interpolateZoom","interpolateRgb","interpolateRgbBasis","interpolateRgbBasisClosed","interpolateHsl","interpolateHslLong","interpolateLab","interpolateHcl","interpolateHclLong","interpolateCubehelix","newInterval","floori","offseti","field","offset","weekday","setDate","getDate","getDay","setHours","getTimezoneOffset","utcWeekday","setUTCDate","getUTCDate","getUTCDay","setUTCHours","milliseconds","getUTCSeconds","seconds","getMinutes","minutes","getHours","hours","days","sunday","monday","tuesday","wednesday","thursday","friday","saturday","sundays","mondays","tuesdays","wednesdays","thursdays","fridays","saturdays","setMonth","getMonth","getFullYear","months","setFullYear","years","setUTCSeconds","getUTCMinutes","utcMinutes","setUTCMinutes","getUTCHours","utcHours","utcDays","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSundays","utcMondays","utcTuesdays","utcWednesdays","utcThursdays","utcFridays","utcSaturdays","setUTCMonth","getUTCMonth","getUTCFullYear","utcMonths","setUTCFullYear","utcYears","timeInterval","timeMilliseconds","utcMilliseconds","timeSeconds","utcSeconds","timeMinutes","timeHours","timeDays","timeWeeks","timeSunday","timeSundays","timeMonday","timeMondays","timeTuesday","timeTuesdays","timeWednesday","timeWednesdays","timeThursday","timeThursdays","timeFriday","timeFridays","timeSaturday","timeSaturdays","timeMonths","timeYears","utcWeeks","localDate","H","M","L","utcDate","newYear","formats","pad","pads","charAt","newParse","newDate","parseSpecifier","w","W","U","Z","parses","parsePeriod","periodRe","periodLookup","parseShortWeekday","shortWeekdayRe","shortWeekdayLookup","parseWeekday","weekdayRe","weekdayLookup","parseShortMonth","shortMonthRe","shortMonthLookup","parseMonth","monthRe","monthLookup","parseLocaleDateTime","locale_dateTime","parseLocaleDate","locale_date","parseLocaleTime","locale_time","formatShortWeekday","locale_shortWeekdays","formatWeekday","locale_weekdays","formatShortMonth","locale_shortMonths","locale_months","formatPeriod","locale_periods","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCPeriod","dateTime","periods","shortDays","shortMonths","formatRe","formatLookup","formatDayOfMonth","formatHour24","I","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekNumberSunday","formatWeekdayNumber","formatWeekNumberMonday","Y","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekNumberSunday","formatUTCWeekdayNumber","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parseDayOfMonth","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parseSeconds","parseWeekNumberSunday","parseWeekdayNumber","parseWeekNumberMonday","parseYear","parseFullYear","parseZone","parseLiteralPercent","utcParse","requote","requoteRe","names","numberRe","percentRe","getMilliseconds","getSeconds","getUTCMilliseconds","locale$1","timeParse","formatIsoNative","toISOString","parseIsoNative","-","0","isoSpecifier","formatIso","parseIso","timeFormatDefaultLocale","timeFormatLocale","isoFormat","isoParse","creatorInherit","ownerDocument","uri","namespaceURI","xhtml","creatorFixed","fullname","space","local","Local","nextId","filterContextListener","listener","contextListener","event","related","relatedTarget","compareDocumentPosition","event1","event0","__data__","onRemove","__on","removeEventListener","capture","onAdd","wrap","filterEvents","addEventListener","customEvent","sourceEvent","none","EnterNode","datum","_next","_parent","bindIndex","update","groupLength","dataLength","bindKey","nodeByKeyValue","keyValues","keyPrefix","attrRemove","removeAttribute","attrRemoveNS","removeAttributeNS","attrConstant","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","propertyRemove","propertyConstant","propertyFunction","classArray","classList","ClassList","_node","_names","getAttribute","classedAdd","list","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","nextSibling","parentNode","lower","previousSibling","insertBefore","firstChild","constantNull","dispatchEvent","params","window","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","Selection","groups","parents","_groups","_parents","selection","namespaces","xlink","xml","xmlns","namespace","creator","matcher","selector","matches","element","vendorMatches","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","oMatchesSelector","matcher$1","element$1","mouseenter","mouseleave","selection_on","current","ownerSVGElement","createSVGPoint","clientX","clientY","matrixTransform","getScreenCTM","inverse","rect","clientLeft","clientTop","mouse","changedTouches","querySelector","selection_select","subgroups","subnode","subgroup","selectorAll","querySelectorAll","selection_selectAll","selection_filter","sparse","selection_enter","_enter","child","next","selection_data","bind","enterGroup","updateGroup","exitGroup","previous","_exit","selection_exit","selection_merge","groups0","groups1","m0","merges","group0","group1","selection_order","selection_sort","compareNode","sortgroups","sortgroup","selection_call","selection_nodes","nodes","selection_node","selection_size","selection_empty","selection_each","selection_attr","getAttributeNS","selection_style","selection_property","splice","contains","selection_classed","selection_text","selection_html","selection_raise","selection_lower","selection_append","selection_insert","before","selection_remove","selection_datum","selection_dispatch","html","insert","touch","touches","identifier","points","d3Dispatch","d3Timer","d3Ease","init","schedule","__transition","state","CREATED","STARTING","self","elapsed","SCHEDULED","timer","restart","delay","schedules","STARTED","timeout","RUNNING","ENDED","tick","tween","ease","ENDING","tweenRemove","tween0","tween1","tweenFunction","tweenValue","_id","value00","interpolate0","value10","attrTweenNS","_value","attrTween","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","onFunction","on0","on1","sit","removeFunction","styleRemoveEnd","styleTween","Transition","_name","newId","inherit","timing","defaultTiming","now","emptyOn","emptyTween","interrupt","active","selection_interrupt","transition_tween","transition_attr","transition_attrTween","transition_delay","transition_duration","transition_ease","transition_filter","transition_merge","transition_on","transition_remove","transition_select","transition_selectAll","children","transition_selection","transition_style","transition_styleTween","transition_text","transition_transition","id0","id1","selection_prototype","selection_transition","clockNow","setFrame","clearNow","clock","clockSkew","Timer","_call","_time","timerFlush","frame","taskHead","wake","clockLast","nap","poke","pokeDelay","taskTail","sleep","clearTimeout","setTimeout","clearInterval","setInterval","performance","requestAnimationFrame","TypeError","timeout$1","interval$1","total","wrapConfig","smallTextOffset","smallTextLineHeightRatio","smallTextRatio","valueClassName","labelClassName","defaultTextSize","defaultFontFace","wrapText","fontSize","availableWidth","words","word","line","lineNumber","smallLineHeight","parseFloat","smallFontSize","tspan","getComputedTextLength","wrapTextWithEllipses","xpos","limit","fontFace","getContext","font","measureText","britechartGradients","greenBlue","orangePink","bluePurple","blueGreen","aloeGreen","colorSchemasHuman","singleColors","colorGradients","colorGradientsHuman"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,UAAAH,GACA,gBAAAC,SACAA,QAAA,OAAAD,KAEAD,EAAA,YAAAA,EAAA,gBAAiDA,EAAA,mBAAAC,MAChDK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAP,WACAS,GAAAF,EACAG,QAAA,EAUA,OANAL,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,QAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KAqCA,OATAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,GAGAR,EAAA,KDgBM,SAAUL,EAAQD,EAASM,GAEhC,GAAIS,EExDLA,GAAO,SAASC,GACZ,YAEA,IAAMC,GAAWX,EAAQ,GACnBY,EAAUZ,EAAQ,GAClBa,EAAcb,EAAQ,IAGtBc,GAFed,EAAQ,IAEVA,EAAQ,KACrBe,EAAcf,EAAQ,GAuD5B,OAAO,YA8CH,QAASN,GAAQsB,GACbA,EAAWC,KAAK,SAASC,GACrBC,EAAaC,EAAQC,EAAOC,KAAOD,EAAOE,MAC1CC,EAAcC,EAASJ,EAAOK,IAAML,EAAOM,OAC3CC,EAAOV,EAEPW,IACAC,EAAShC,MACLiC,EACAC,IAEAC,MAUZ,QAASC,KACL,GAAIC,GAAYC,EAAIC,OAAO,gBAAgBC,OAAOC,wBAAwBnB,MACtEoB,EAAiBrB,EAAagB,CAE9BK,GAAiB,EACjBC,IAEAC,IASR,QAASC,KACL,GAAIC,GAAYR,EACbS,OAAO,KACLC,QAAQ,0BAA0B,GAClCC,KAAK,YAHM,aAGoB1B,EAAOC,KAH3B,IAGmCD,EAAOK,IAH1C,IAKhBkB,GACGC,OAAO,KACLC,QAAQ,gBAAgB,GAOjC,QAASjB,KACDmB,IACAC,EAAarC,EAAQsC,eAAeC,MAAMH,IASlD,QAASlB,GAASc,GACTR,IACDA,EAAMvB,EAAYwB,OAAOO,GACtBC,OAAO,OACLC,QAAQ,gCAAgC,GAE7CH,KAGJP,EACKW,KAAK,QAAS3B,GACd2B,KAAK,SAAUtB,GAOxB,QAASgB,KACL,GAAIW,GAAkBhB,EAAIC,OAAO,4BAA4BC,OAAOC,wBAAwBnB,MACxFiC,EAAajC,EAAQgC,CAErBC,GAAa,GACbjB,EAAIC,OAAO,4BACNU,KAAK,YADV,aACoCM,EAAW,EAD/C,OAQR,QAASC,KACLlB,EAAIC,OAAO,iBACNkB,UAAU,kBACVT,QAAQU,GAAkB,GAOnC,QAASxB,KACL,GAAIyB,GAAUC,CAGdtB,GAAIC,OAAO,iBACRQ,OAAO,KACLC,QAAQ,eAAe,GAG5Ba,EAAUvB,EAAIC,OAAO,gBAClBkB,UAAU,kBACV3B,KAAKA,GAGR+B,EAAQC,QACLf,OAAO,KACLC,QAAQ,gBAAgB,GACxBC,KAAK,YAAac,GAClBd,KAAK,YAAa,SAAAe,GAAiB,GAAPC,GAAOD,EAAPC,KACrBC,EAAmBP,EACnBQ,EAAazC,EAAc,EAC3B0C,EAAiBD,EACjBE,EAAarD,EAAWsD,aAAaL,EAAMM,EAI/C,OAFAZ,IAAWC,EAAa,EAAIY,IAAyBH,EAErD,aAAoBH,EAApB,IAAwCE,EAAxC,MAEHK,MAAMZ,GACRd,OAAO,UACLC,QAAQ,iBAAiB,GACzBC,KAAK,KAAMW,EAAW,GACtBX,KAAK,KAAMyB,GACXzB,KAAK,IAAKW,EAAa,GACvBe,MAAM,OAAQC,GACdD,MAAM,eAAgB,GAE3BrC,EAAIC,OAAO,iBACNkB,UAAU,kBACZV,OAAO,QACLC,QAAQ,qBAAqB,GAC7B6B,KAAKC,GACL7B,KAAK,IAAKuB,KACVG,MAAM,YAAgBJ,EAN3B,MAOKI,MAAM,iBAAqBI,EAPhC,MAUAzC,EAAIC,OAAO,iBACNkB,UAAU,kBACVuB,OACAC,aACAN,MAAM,UAAW,GACjBO,SAEL9C,IAOJ,QAASD,KACL0B,EAAUvB,EAAIC,OAAO,iBAChBkB,UAAU,iBACV3B,KAAKA,GAGV+B,EAAQC,QACLf,OAAO,KACLC,QAAQ,eAAe,GACrBD,OAAO,KACLC,QAAQ,gBAAgB,GACxBC,KAAK,YAAac,GAClBd,KAAK,YAAa,SAASkC,EAAGC,GAC3B,GAAIlB,GAAmBN,EAAaY,IAChCL,EAAazC,GAAcI,EAAKuD,OAAS,GACzCjB,GAAkBgB,EAAI,GAAKjB,CAE/B,oBAAoBD,EAApB,IAAwCE,EAAxC,MAEHK,MAAMZ,GACRd,OAAO,UACLC,QAAQ,iBAAiB,GACzBC,KAAK,KAAMW,EAAW,GACtBX,KAAK,KAAMyB,GACXzB,KAAK,IAAKW,EAAW,GACrBe,MAAM,OAAQC,GACdD,MAAM,eAAgB,GAE/BrC,EAAIC,OAAO,iBACNkB,UAAU,iBACVA,UAAU,kBACZV,OAAO,QACLC,QAAQ,qBAAqB,GAC7B6B,KAAKC,GACL7B,KAAK,IAAKuB,KACVG,MAAM,YAAgBJ,EAP3B,MAQKI,MAAM,iBAAqBI,EARhC,MAUAzC,EAAIC,OAAO,iBACNkB,UAAU,iBACVA,UAAU,kBACZV,OAAO,QACLC,QAAQ,sBAAsB,GAC9B6B,KAAKS,GACLrC,KAAK,IAAK5B,EAAakE,GACvBZ,MAAM,YAAgBJ,EAP3B,MAQKI,MAAM,iBAAqBa,EARhC,MASKb,MAAM,cAAe,OACrBA,MAAM,cAAe,QAG1BrC,EAAIC,OAAO,iBACNkB,UAAU,iBACVuB,OACAC,aACAN,MAAM,UAAW,GACjBO,SAOT,QAASO,GAAaC,GAClB,GAAIC,GAAc,gBAElBrD,GAAIC,OAAO,iBACNkB,UAAUkC,GACV3C,QAAQU,GAAkB,GAE/BpB,EAAIC,OAAJ,eAA0BmD,EAA1B,MACK1C,QAAQU,GAAkB,GAOnC,QAASc,KACL,MAAOoB,GAAchC,EAQzB,QAAShB,KACL,GAAIiD,GAAgBvD,EAAImB,UAAU,iBAC9BqC,EAAkBD,EAAcE,OAChC5B,EAAczC,EAAc,EAAK,IACjCsE,EAAU1D,EAAIC,OAAO,iBACtBQ,OAAO,KACLC,QAAQ,eAAe,GACvBC,KAAK,YAHI,gBAGyBkB,EAHzB,KAIV8B,EAAYJ,EAAcK,OAAd,cAAmCJ,EAAnC,IAEhBG,GAAUhD,KAAK,YAAf,aAAyCW,EAAzC,OACAoC,EAAQjD,OAAO,iBAAMkD,GAAUzD,SAnTnC,GAAIjB,IACIK,IAAK,EACLH,MAAO,EACPI,OAAQ,EACRL,KAAM,GAEVF,EAAQ,IACRK,EAAS,IAET4C,EAAW,GACXQ,EAAoB,GAEpBnB,EAAa,GACbc,IAAmBH,EAAW,GAAK,EACnCqB,EAAc,IAEdL,EAAqB,GACrBC,EAAsB,GACtBW,EAAe,IAEfzC,EAAmB,WACnBzB,GAAe,EAGfkB,SACAD,EAAcjC,EAAYmF,aAAaC,YAEvCtC,EAAQ,SAAAuC,GAAA,GAAEjG,GAAFiG,EAAEjG,EAAF,OAAUA,IAClByE,EAAU,SAAAyB,GAAA,GAAEtC,GAAFsC,EAAEtC,IAAF,OAAYA,IACtBqB,EAAuB,SAAAkB,GAAA,GAAEC,GAAFD,EAAEC,QAAF,OAAgB5F,GAAS6F,OAAOP,GAAcM,IACrE7B,EAAgB,SAAA+B,GAAA,GAAE1C,GAAF0C,EAAE1C,IAAF,OAAYd,GAAWc,IAEvCJ,SACAxC,SAAYK,SACZI,SACAQ,QA+YJ,OAzHA1C,GAAQgH,eAAiB,WACrBpD,KASJ5D,EAAQsD,YAAc,SAAS2D,GAC3B,MAAKC,WAAUzB,QAGfnC,EAAc2D,EAEP7G,MAJIkD,GAaftD,EAAQ+B,OAAS,SAASkF,GACtB,MAAKC,WAAUzB,QAGf1D,EAASkF,EAEF7G,MAJI2B,GAWf/B,EAAQmH,UAAY,SAASC,GACzBxD,IACAiC,EAAauB,IASjBpH,EAAQqC,aAAe,SAAS4E,GAC5B,MAAKC,WAAUzB,QAGfpD,EAAe4E,EAER7G,MAJIiC,GAafrC,EAAQ2B,OAAS,SAASsF,GACtB,MAAKC,WAAUzB,QAGf9D,EAASsF,EAEF7G,MAJIuB,GAgBf3B,EAAQgE,WAAa,SAASiD,GAC1B,MAAKC,WAAUzB,QAGfzB,EAAaiD,EAEN7G,MAJI4D,GAafhE,EAAQ0B,MAAQ,SAASuF,GACrB,MAAKC,WAAUzB,QAGf/D,EAAQuF,EAED7G,MAJIsB,GAaf1B,EAAQuG,aAAe,SAASU,GAC5B,MAAKC,WAAUzB,QAGfc,EAAeU,EAER7G,MAJImG,GAORvG,IApffW,KAAAX,EAAAM,EAAAN,EAAAC,KAAAoH,SAAAtG,IAAAd,EAAAD,QAAAe,KFyeM,SAAUd,EAAQD,EAASM,IGxejC,SAAAgH,EAAAvH,GACAA,EAAAC,IAGCI,KAAA,SAAAJ,GAA4B,YAgC7B,SAAAuH,GAAAC,GACA,gBAAAjC,EAAAkC,GACA,MAAAC,GAAAF,EAAAjC,GAAAkC,IAeA,QAAAE,GAAAC,EAAAC,GACA,OAAAD,EAAAC,GAuKA,QAAAC,GAAAC,EAAAC,EAAAC,GACA,GAAAC,IAAAF,EAAAD,GAAAI,KAAAC,IAAA,EAAAH,GACAI,EAAAF,KAAAG,MAAAH,KAAAI,IAAAL,GAAAC,KAAAK,MACAC,EAAAP,EAAAC,KAAAO,IAAA,GAAAL,EACA,OAAAA,IAAA,GACAI,GAAAE,EAAA,GAAAF,GAAAG,EAAA,EAAAH,GAAAI,EAAA,KAAAV,KAAAO,IAAA,GAAAL,IACAF,KAAAO,IAAA,IAAAL,IAAAI,GAAAE,EAAA,GAAAF,GAAAG,EAAA,EAAAH,GAAAI,EAAA,KAGA,QAAAC,GAAAf,EAAAC,EAAAC,GACA,GAAAc,GAAAZ,KAAAa,IAAAhB,EAAAD,GAAAI,KAAAC,IAAA,EAAAH,GACAgB,EAAAd,KAAAO,IAAA,GAAAP,KAAAG,MAAAH,KAAAI,IAAAQ,GAAAZ,KAAAK,OACAC,EAAAM,EAAAE,CAIA,OAHAR,IAAAE,EAAAM,GAAA,GACAR,GAAAG,EAAAK,GAAA,EACAR,GAAAI,IAAAI,GAAA,GACAjB,EAAAD,GAAAkB,IAoTA,QAAAxD,GAAAF,GACA,MAAAA,GAAAE,OA5hBA,GAAAiC,GAAA,SAAAE,EAAAC,GACA,MAAAD,GAAAC,GAAA,EAAAD,EAAAC,EAAA,EAAAD,GAAAC,EAAA,EAAAqB,KAGAC,EAAA,SAAAC,GAEA,MADA,KAAAA,EAAA3D,SAAA2D,EAAA7B,EAAA6B,KAEAxH,KAAA,SAAAgG,EAAAH,EAAA4B,EAAAC,GAGA,IAFA,MAAAD,MAAA,GACA,MAAAC,MAAA1B,EAAAnC,QACA4D,EAAAC,GAAA,CACA,GAAAC,GAAAF,EAAAC,IAAA,CACAF,GAAAxB,EAAA2B,GAAA9B,GAAA,EAAA4B,EAAAE,EAAA,EACAD,EAAAC,EAEA,MAAAF,IAEAxH,MAAA,SAAA+F,EAAAH,EAAA4B,EAAAC,GAGA,IAFA,MAAAD,MAAA,GACA,MAAAC,MAAA1B,EAAAnC,QACA4D,EAAAC,GAAA,CACA,GAAAC,GAAAF,EAAAC,IAAA,CACAF,GAAAxB,EAAA2B,GAAA9B,GAAA,EAAA6B,EAAAC,EACAF,EAAAE,EAAA,EAEA,MAAAF,MAWAG,EAAAL,EAAAzB,GACA+B,EAAAD,EAAA3H,MACA6H,EAAAF,EAAA5H,KAEA+H,EAAA,SAAAC,EAAApC,GACA,MAAAA,MAAAG,EAEA,KADA,GAAAnC,GAAA,EAAAqE,EAAAD,EAAAnE,OAAA,EAAA3E,EAAA8I,EAAA,GAAAD,EAAA,GAAAG,OAAAD,EAAA,IAAAA,GACArE,EAAAqE,GAAAF,EAAAnE,GAAAgC,EAAA1G,IAAA8I,IAAApE,GACA,OAAAmE,IAOAI,EAAA,SAAAC,EAAAC,EAAAC,GACA,GAGAC,GACAC,EACA5E,EACA6E,EANAC,EAAAN,EAAAvE,OACA8E,EAAAN,EAAAxE,OACA+E,EAAA,GAAAV,OAAAQ,EAAAC,EAQA,KAFA,MAAAL,MAAAvC,GAEAwC,EAAA3E,EAAA,EAAkB2E,EAAAG,IAASH,EAC3B,IAAAE,EAAAL,EAAAG,GAAAC,EAAA,EAAsCA,EAAAG,IAASH,IAAA5E,EAC/CgF,EAAAhF,GAAA0E,EAAAG,EAAAJ,EAAAG,GAIA,OAAAI,IAGAC,EAAA,SAAA7C,EAAAC,GACA,MAAAA,GAAAD,GAAA,EAAAC,EAAAD,EAAA,EAAAC,GAAAD,EAAA,EAAAsB,KAGAwB,EAAA,SAAAjD,GACA,cAAAA,EAAAyB,KAAAzB,GAGAkD,EAAA,SAAAH,EAAAI,GACA,GAIAC,GACAC,EALAjB,EAAAW,EAAA/E,OACA7E,EAAA,EACA4E,GAAA,EACAuF,EAAA,EAGAC,EAAA,CAEA,UAAAJ,EACA,OAAApF,EAAAqE,GACAoB,MAAAJ,EAAAH,EAAAF,EAAAhF,OACAsF,EAAAD,EAAAE,EACAA,GAAAD,IAAAlK,EACAoK,GAAAF,GAAAD,EAAAE,QAMA,QAAAvF,EAAAqE,GACAoB,MAAAJ,EAAAH,EAAAE,EAAAJ,EAAAhF,KAAAgF,OACAM,EAAAD,EAAAE,EACAA,GAAAD,IAAAlK,EACAoK,GAAAF,GAAAD,EAAAE,GAKA,IAAAnK,EAAA,QAAAoK,IAAApK,EAAA,IAGAsK,EAAA,SAAAtB,EAAApC,GACA,GAAA2D,GAAAR,EAAAf,EAAApC,EACA,OAAA2D,GAAAhD,KAAAiD,KAAAD,MAGAE,EAAA,SAAAb,EAAAI,GACA,GAEAC,GACAS,EACAlD,EAJAyB,EAAAW,EAAA/E,OACAD,GAAA,CAKA,UAAAoF,GACA,OAAApF,EAAAqE,GACA,UAAAgB,EAAAL,EAAAhF,KAAAqF,KAEA,IADAS,EAAAlD,EAAAyC,IACArF,EAAAqE,GACA,OAAAgB,EAAAL,EAAAhF,MACA8F,EAAAT,IAAAS,EAAAT,GACAzC,EAAAyC,IAAAzC,EAAAyC,QAQA,QAAArF,EAAAqE,GACA,UAAAgB,EAAAD,EAAAJ,EAAAhF,KAAAgF,KAAAK,KAEA,IADAS,EAAAlD,EAAAyC,IACArF,EAAAqE,GACA,OAAAgB,EAAAD,EAAAJ,EAAAhF,KAAAgF,MACAc,EAAAT,IAAAS,EAAAT,GACAzC,EAAAyC,IAAAzC,EAAAyC,GAOA,QAAAS,EAAAlD,IAGAwB,EAAAE,MAAAyB,UAEAC,EAAA5B,EAAA4B,MACAC,EAAA7B,EAAA6B,IAEAC,EAAA,SAAAjE,GACA,kBACA,MAAAA,KAIAkE,EAAA,SAAAlE,GACA,MAAAA,IAGAhE,EAAA,SAAAsE,EAAAC,EAAAE,GACAH,KAAAC,KAAAE,GAAA2B,EAAA3C,UAAAzB,QAAA,GAAAuC,EAAAD,IAAA,KAAA8B,EAAA,KAAA3B,CAMA,KAJA,GAAA1C,IAAA,EACAqE,EAAA,EAAA1B,KAAAC,IAAA,EAAAD,KAAAyD,MAAA5D,EAAAD,GAAAG,IACAzE,EAAA,GAAAqG,OAAAD,KAEArE,EAAAqE,GACApG,EAAA+B,GAAAuC,EAAAvC,EAAA0C,CAGA,OAAAzE,IAGAkF,EAAAR,KAAAiD,KAAA,IACAxC,EAAAT,KAAAiD,KAAA,IACAvC,EAAAV,KAAAiD,KAAA,GAEAS,EAAA,SAAA9D,EAAAC,EAAAC,GACA,GAEA4B,GACAgC,EACA3D,EAJA4D,EAAA9D,EAAAD,EACAvC,GAAA,CAOA,IAFAsG,IAAAjC,EAAA9B,IAAAC,IAAA6B,GAEA,KAAA3B,EAAAJ,EAAAC,EAAAC,EAAAC,MAAA8D,SAAA7D,GAAA,QAEA,IAAAA,EAAA,EAIA,IAHAH,EAAAI,KAAAyD,KAAA7D,EAAAG,GACAF,EAAAG,KAAAG,MAAAN,EAAAE,GACA2D,EAAA,GAAA/B,OAAAD,EAAA1B,KAAAyD,KAAA5D,EAAAD,EAAA,MACAvC,EAAAqE,GAAAgC,EAAArG,IAAAuC,EAAAvC,GAAA0C,MAKA,KAHAH,EAAAI,KAAAG,MAAAP,EAAAG,GACAF,EAAAG,KAAAyD,KAAA5D,EAAAE,GACA2D,EAAA,GAAA/B,OAAAD,EAAA1B,KAAAyD,KAAA7D,EAAAC,EAAA,MACAxC,EAAAqE,GAAAgC,EAAArG,IAAAuC,EAAAvC,GAAA0C,CAKA,OAFA4D,IAAAD,EAAAC,UAEAD,GAsBAG,EAAA,SAAAxB,GACA,MAAArC,MAAAyD,KAAAzD,KAAAI,IAAAiC,EAAA/E,QAAA0C,KAAA8D,KAAA,GAGAC,EAAA,WAKA,QAAAA,GAAAhK,GACA,GAAAsD,GAEAiC,EADAoC,EAAA3H,EAAAuD,OAEA+E,EAAA,GAAAV,OAAAD,EAEA,KAAArE,EAAA,EAAeA,EAAAqE,IAAOrE,EACtBgF,EAAAhF,GAAAqF,EAAA3I,EAAAsD,KAAAtD,EAGA,IAAAiK,GAAAC,EAAA5B,GACA6B,EAAAF,EAAA,GACAG,EAAAH,EAAA,GACAI,EAAAC,EAAAhC,EAAA6B,EAAAC,EAGAxC,OAAA2C,QAAAF,KACAA,EAAAzD,EAAAuD,EAAAC,EAAAC,GACAA,EAAA9I,EAAA0E,KAAAyD,KAAAS,EAAAE,KAAApE,KAAAG,MAAAgE,EAAAC,QAKA,KADA,GAAA3L,GAAA2L,EAAA9G,OACA8G,EAAA,IAAAF,GAAAE,EAAAG,UAAA9L,CACA,MAAA2L,EAAA3L,EAAA,GAAA0L,GAAAC,EAAAI,QAAA/L,CAEA,IACAgM,GADAC,EAAA,GAAA/C,OAAAlJ,EAAA,EAIA,KAAA4E,EAAA,EAAeA,GAAA5E,IAAQ4E,EACvBoH,EAAAC,EAAArH,MACAoH,EAAAP,GAAA7G,EAAA,EAAA+G,EAAA/G,EAAA,GAAA6G,EACAO,EAAAN,GAAA9G,EAAA5E,EAAA2L,EAAA/G,GAAA8G,CAIA,KAAA9G,EAAA,EAAeA,EAAAqE,IAAOrE,EACtBiC,EAAA+C,EAAAhF,GACA6G,GAAA5E,MAAA6E,GACAO,EAAApD,EAAA8C,EAAA9E,EAAA,EAAA7G,IAAAkM,KAAA5K,EAAAsD,GAIA,OAAAqH,GAhDA,GAAAhC,GAAAc,EACAS,EAAAf,EACAmB,EAAAR,CA6DA,OAZAE,GAAArB,MAAA,SAAAkC,GACA,MAAA7F,WAAAzB,QAAAoF,EAAA,kBAAAkC,KAAArB,EAAAqB,GAAAb,GAAArB,GAGAqB,EAAAE,OAAA,SAAAW,GACA,MAAA7F,WAAAzB,QAAA2G,EAAA,kBAAAW,KAAArB,GAAAqB,EAAA,GAAAA,EAAA,KAAAb,GAAAE,GAGAF,EAAAc,WAAA,SAAAD,GACA,MAAA7F,WAAAzB,QAAA+G,EAAA,kBAAAO,KAAArB,EAAA5B,MAAA2C,QAAAM,GAAAvB,EAAA7K,KAAAoM,MAAAb,GAAAM,GAGAN,GAGAe,EAAA,SAAAzC,EAAA1J,EAAA8J,GAEA,GADA,MAAAA,MAAAF,GACAb,EAAAW,EAAA/E,OAAA,CACA,IAAA3E,OAAA,GAAA+I,EAAA,SAAAe,EAAAJ,EAAA,KAAAA,EACA,IAAA1J,GAAA,SAAA8J,EAAAJ,EAAAX,EAAA,GAAAA,EAAA,EAAAW,EACA,IAAAX,GACArE,GAAAqE,EAAA,GAAA/I,EACAqJ,EAAAhC,KAAAG,MAAA9C,GACA6E,GAAAO,EAAAJ,EAAAL,KAAAK,GACA0C,GAAAtC,EAAAJ,EAAAL,EAAA,GAAAA,EAAA,EAAAK,EACA,OAAAH,IAAA6C,EAAA7C,IAAA7E,EAAA2E,KAGAgD,EAAA,SAAA3C,EAAAc,EAAAlD,GAEA,MADAoC,GAAAiB,EAAA9K,KAAA6J,EAAAE,GAAA0C,KAAA1F,GACAS,KAAAyD,MAAAxD,EAAAkD,IAAA,GAAA2B,EAAAzC,EAAA,KAAAyC,EAAAzC,EAAA,MAAArC,KAAAO,IAAA8B,EAAA/E,QAAA,QAGA4H,EAAA,SAAA7C,EAAAc,EAAAlD,GACA,MAAAD,MAAAyD,MAAAxD,EAAAkD,IAAA,IAAAJ,EAAAV,GAAArC,KAAAO,IAAA8B,EAAA/E,QAAA,QAGA2C,EAAA,SAAAoC,EAAAI,GACA,GAEAC,GACAzC,EAHAyB,EAAAW,EAAA/E,OACAD,GAAA,CAIA,UAAAoF,GACA,OAAApF,EAAAqE,GACA,UAAAgB,EAAAL,EAAAhF,KAAAqF,KAEA,IADAzC,EAAAyC,IACArF,EAAAqE,GACA,OAAAgB,EAAAL,EAAAhF,KAAAqF,EAAAzC,IACAA,EAAAyC,OAQA,QAAArF,EAAAqE,GACA,UAAAgB,EAAAD,EAAAJ,EAAAhF,KAAAgF,KAAAK,KAEA,IADAzC,EAAAyC,IACArF,EAAAqE,GACA,OAAAgB,EAAAD,EAAAJ,EAAAhF,KAAAgF,KAAAK,EAAAzC,IACAA,EAAAyC,EAOA,OAAAzC,IAGA2C,EAAA,SAAAP,EAAAI,GACA,GAGAC,GAHAhB,EAAAW,EAAA/E,OACA7E,EAAAiJ,EACArE,GAAA,EAEAwF,EAAA,CAEA,UAAAJ,EACA,OAAApF,EAAAqE,GACAoB,MAAAJ,EAAAH,EAAAF,EAAAhF,OACA5E,EADAoK,GAAAH,MAMA,QAAArF,EAAAqE,GACAoB,MAAAJ,EAAAH,EAAAE,EAAAJ,EAAAhF,KAAAgF,OACA5J,EADAoK,GAAAH,CAKA,IAAAjK,EAAA,MAAAoK,GAAApK,GAGA0M,EAAA,SAAA9C,EAAAI,GACA,GAEAC,GAFAhB,EAAAW,EAAA/E,OACAD,GAAA,EAEA+H,IAEA,UAAA3C,EACA,OAAApF,EAAAqE,GACAoB,MAAAJ,EAAAH,EAAAF,EAAAhF,MACA+H,EAAAT,KAAAjC,OAMA,QAAArF,EAAAqE,GACAoB,MAAAJ,EAAAH,EAAAE,EAAAJ,EAAAhF,KAAAgF,MACA+C,EAAAT,KAAAjC,EAKA,OAAAoC,GAAAM,EAAAH,KAAA1F,GAAA,KAGA7C,EAAA,SAAA2I,GAQA,IAPA,GACA5M,GAGA6M,EACA7D,EALAC,EAAA2D,EAAA/H,OAEAD,GAAA,EACAkI,EAAA,IAIAlI,EAAAqE,GAAA6D,GAAAF,EAAAhI,GAAAC,MAGA,KAFAgI,EAAA,GAAA3D,OAAA4D,KAEA7D,GAAA,GAGA,IAFAD,EAAA4D,EAAA3D,GACAjJ,EAAAgJ,EAAAnE,SACA7E,GAAA,GACA6M,IAAAC,GAAA9D,EAAAhJ,EAIA,OAAA6M,IAGAnC,EAAA,SAAAd,EAAAI,GACA,GAEAC,GACAS,EAHAzB,EAAAW,EAAA/E,OACAD,GAAA,CAIA,UAAAoF,GACA,OAAApF,EAAAqE,GACA,UAAAgB,EAAAL,EAAAhF,KAAAqF,KAEA,IADAS,EAAAT,IACArF,EAAAqE,GACA,OAAAgB,EAAAL,EAAAhF,KAAA8F,EAAAT,IACAS,EAAAT,OAQA,QAAArF,EAAAqE,GACA,UAAAgB,EAAAD,EAAAJ,EAAAhF,KAAAgF,KAAAK,KAEA,IADAS,EAAAT,IACArF,EAAAqE,GACA,OAAAgB,EAAAD,EAAAJ,EAAAhF,KAAAgF,KAAAc,EAAAT,IACAS,EAAAT,EAOA,OAAAS,IAGAqC,EAAA,SAAA/D,EAAAgE,GAEA,IADA,GAAApI,GAAAoI,EAAAnI,OAAAoI,EAAA,GAAA/D,OAAAtE,GACAA,KAAAqI,EAAArI,GAAAoE,EAAAgE,EAAApI,GACA,OAAAqI,IAGAC,EAAA,SAAAtD,EAAApB,GACA,GAAAS,EAAAW,EAAA/E,OAAA,CACA,GAAAoE,GAGAkE,EAFAvI,EAAA,EACAkI,EAAA,EAEAM,EAAAxD,EAAAkD,EAIA,KAFA,MAAAtE,MAAA1B,KAEAlC,EAAAqE,IACAT,EAAA2E,EAAAvD,EAAAhF,GAAAwI,GAAA,OAAA5E,EAAA4E,QACAA,EAAAD,EAAAL,EAAAlI,EAIA,YAAA4D,EAAA4E,KAAAN,EAAA,SAGAO,EAAA,SAAArE,EAAAO,EAAAC,GAKA,IAJA,GACA8D,GACA1I,EAFA5E,GAAA,MAAAwJ,EAAAR,EAAAnE,OAAA2E,IAAAD,EAAA,MAAAA,EAAA,GAAAA,GAIAvJ,GACA4E,EAAA2C,KAAAgG,SAAAvN,IAAA,EACAsN,EAAAtE,EAAAhJ,EAAAuJ,GACAP,EAAAhJ,EAAAuJ,GAAAP,EAAApE,EAAA2E,GACAP,EAAApE,EAAA2E,GAAA+D,CAGA,OAAAtE,IAGAoB,EAAA,SAAAR,EAAAI,GACA,GAEAC,GAFAhB,EAAAW,EAAA/E,OACAD,GAAA,EAEAwF,EAAA,CAEA,UAAAJ,EACA,OAAApF,EAAAqE,IACAgB,GAAAL,EAAAhF,MAAAwF,GAAAH,OAKA,QAAArF,EAAAqE,IACAgB,GAAAD,EAAAJ,EAAAhF,KAAAgF,MAAAQ,GAAAH,EAIA,OAAAG,IAGAoD,EAAA,SAAAC,GACA,KAAAxE,EAAAwE,EAAA5I,QAAA,QACA,QAAAD,IAAA,EAAA5E,EAAA0K,EAAA+C,EAAA5I,GAAA2I,EAAA,GAAAtE,OAAAlJ,KAAqE4E,EAAA5E,GACrE,OAAAiJ,GAAA6D,GAAA,EAAAY,EAAAF,EAAA5I,GAAA,GAAAsE,OAAAD,KAA0D6D,EAAA7D,GAC1DyE,EAAAZ,GAAAW,EAAAX,GAAAlI,EAGA,OAAA4I,IAOAG,EAAA,WACA,MAAAH,GAAAlH,WAGAlH,GAAAwO,OAAA/E,EACAzJ,EAAAyJ,cACAzJ,EAAA0J,aACA1J,EAAA0H,YACA1H,EAAAmJ,WACAnJ,EAAA+J,QACA/J,EAAAyK,aACAzK,EAAAkL,YACAlL,EAAAqL,SACArL,EAAAkM,YACAlM,EAAAyO,0BAAAtB,EACAnN,EAAA0O,eAAArB,EACArN,EAAA2O,iBAAA3C,EACAhM,EAAAoI,MACApI,EAAA+K,OACA/K,EAAAsN,SACAtN,EAAA6E,QACA7E,EAAAsL,MACAtL,EAAA2J,QACA3J,EAAA2N,UACA3N,EAAAiN,WACAjN,EAAAyD,QACAzD,EAAA8N,OACA9N,EAAAiO,UACAjO,EAAAgL,MACAhL,EAAA6L,QACA7L,EAAA8H,gBACA9H,EAAA8I,WACA9I,EAAAoO,YACApO,EAAA2K,WACA3K,EAAAuO,MAEAK,OAAAC,eAAA7O,EAAA,cAA8C6K,OAAA,OHkfxC,SAAU5K,EAAQD,EAASM,II3jCjC,SAAAgH,EAAAvH,GACAA,EAAAC,IAGCI,KAAA,SAAAJ,GAA4B,YAE7B,SAAA8O,GAAAZ,GACA,OAAAA,EAGA,QAAAa,GAAAb,GACA,MAAAA,KAGA,QAAAc,GAAAd,GACA,MAAAA,IAAA,EAAAA,GAGA,QAAAe,GAAAf,GACA,QAAAA,GAAA,MAAAA,SAAA,EAAAA,GAAA,KAGA,QAAAgB,GAAAhB,GACA,MAAAA,OAGA,QAAAiB,GAAAjB,GACA,QAAAA,MAAA,EAGA,QAAAkB,GAAAlB,GACA,QAAAA,GAAA,MAAAA,UAAA,GAAAA,IAAA,KA4CA,QAAAmB,GAAAnB,GACA,SAAA/F,KAAAmH,IAAApB,EAAAqB,GAGA,QAAAC,GAAAtB,GACA,MAAA/F,MAAAsH,IAAAvB,EAAAqB,GAGA,QAAAG,GAAAxB,GACA,SAAA/F,KAAAmH,IAAAK,EAAAzB,IAAA,EAGA,QAAA0B,GAAA1B,GACA,MAAA/F,MAAAO,IAAA,KAAAwF,EAAA,IAGA,QAAA2B,GAAA3B,GACA,SAAA/F,KAAAO,IAAA,MAAAwF,GAGA,QAAA4B,GAAA5B,GACA,QAAAA,GAAA,MAAA/F,KAAAO,IAAA,KAAAwF,EAAA,MAAA/F,KAAAO,IAAA,QAAAwF,IAAA,EAGA,QAAA6B,GAAA7B,GACA,SAAA/F,KAAAiD,KAAA,EAAA8C,KAGA,QAAA8B,GAAA9B,GACA,MAAA/F,MAAAiD,KAAA,KAAA8C,KAGA,QAAA+B,GAAA/B,GACA,QAAAA,GAAA,QAAA/F,KAAAiD,KAAA,EAAA8C,KAAA/F,KAAAiD,KAAA,GAAA8C,GAAA,GAAAA,GAAA,KAcA,QAAAgC,GAAAhC,GACA,SAAAiC,EAAA,EAAAjC,GAGA,QAAAiC,GAAAjC,GACA,OAAAA,MAAAkC,EAAAC,EAAAnC,MAAAoC,EAAAD,GAAAnC,GAAAqC,GAAArC,EAAAsC,EAAAtC,EAAAuC,EAAAJ,GAAAnC,GAAAwC,GAAAxC,EAAAyC,EAAAN,GAAAnC,GAAA0C,GAAA1C,EAAA2C,EAGA,QAAAC,GAAA5C,GACA,QAAAA,GAAA,QAAAiC,EAAA,EAAAjC,GAAAiC,EAAAjC,EAAA,QAjGA,GAAA6C,GAAA,EAEAC,EAAA,QAAAC,GAAAC,GAGA,QAAAF,GAAA9C,GACA,MAAA/F,MAAAO,IAAAwF,EAAAgD,GAKA,MARAA,MAMAF,EAAAD,SAAAE,EAEAD,GACCD,GAEDI,EAAA,QAAAF,GAAAC,GAGA,QAAAC,GAAAjD,GACA,SAAA/F,KAAAO,IAAA,EAAAwF,EAAAgD,GAKA,MARAA,MAMAC,EAAAJ,SAAAE,EAEAE,GACCJ,GAEDK,EAAA,QAAAH,GAAAC,GAGA,QAAAE,GAAAlD,GACA,QAAAA,GAAA,MAAA/F,KAAAO,IAAAwF,EAAAgD,GAAA,EAAA/I,KAAAO,IAAA,EAAAwF,EAAAgD,IAAA,EAKA,MARAA,MAMAE,EAAAL,SAAAE,EAEAG,GACCL,GAEDpB,EAAAxH,KAAAkJ,GACA9B,EAAAI,EAAA,EAsCAS,EAAA,KACAG,EAAA,KACAD,EAAA,KACAE,EAAA,IACAE,EAAA,KACAD,EAAA,MACAE,EAAA,MACAC,EAAA,MACAC,EAAA,MACAR,EAAA,EAAAD,IAcAkB,EAAA,QAEAC,EAAA,QAAAN,GAAAO,GAGA,QAAAD,GAAArD,GACA,MAAAA,OAAAsD,EAAA,GAAAtD,EAAAsD,GAKA,MARAA,MAMAD,EAAAD,UAAAL,EAEAM,GACCD,GAEDG,EAAA,QAAAR,GAAAO,GAGA,QAAAC,GAAAvD,GACA,QAAAA,MAAAsD,EAAA,GAAAtD,EAAAsD,GAAA,EAKA,MARAA,MAMAC,EAAAH,UAAAL,EAEAQ,GACCH,GAEDI,EAAA,QAAAT,GAAAO,GAGA,QAAAE,GAAAxD,GACA,QAAAA,GAAA,KAAAA,MAAAsD,EAAA,GAAAtD,EAAAsD,IAAAtD,GAAA,GAAAA,IAAAsD,EAAA,GAAAtD,EAAAsD,GAAA,KAKA,MARAA,MAMAE,EAAAJ,UAAAL,EAEAS,GACCJ,GAEDK,EAAA,EAAAxJ,KAAAkJ,GACAO,EAAA,EACAC,EAAA,GAEAC,EAAA,QAAAb,GAAArJ,EAAA9G,GAGA,QAAAgR,GAAA5D,GACA,MAAAtG,GAAAO,KAAAO,IAAA,OAAAwF,GAAA/F,KAAAsH,KAAA+B,EAAAtD,GAAApN,GAHA,GAAA0Q,GAAArJ,KAAA4J,KAAA,GAAAnK,EAAAO,KAAAC,IAAA,EAAAR,MAAA9G,GAAA6Q,EASA,OAHAG,GAAAF,UAAA,SAAAhK,GAAqC,MAAAqJ,GAAArJ,EAAA9G,EAAA6Q,IACrCG,EAAAD,OAAA,SAAA/Q,GAAkC,MAAAmQ,GAAArJ,EAAA9G,IAElCgR,GACCF,EAAAC,GAEDG,EAAA,QAAAf,GAAArJ,EAAA9G,GAGA,QAAAkR,GAAA9D,GACA,SAAAtG,EAAAO,KAAAO,IAAA,OAAAwF,OAAA/F,KAAAsH,KAAAvB,EAAAsD,GAAA1Q,GAHA,GAAA0Q,GAAArJ,KAAA4J,KAAA,GAAAnK,EAAAO,KAAAC,IAAA,EAAAR,MAAA9G,GAAA6Q,EASA,OAHAK,GAAAJ,UAAA,SAAAhK,GAAsC,MAAAqJ,GAAArJ,EAAA9G,EAAA6Q,IACtCK,EAAAH,OAAA,SAAA/Q,GAAmC,MAAAmQ,GAAArJ,EAAA9G,IAEnCkR,GACCJ,EAAAC,GAEDI,EAAA,QAAAhB,GAAArJ,EAAA9G,GAGA,QAAAmR,GAAA/D,GACA,QAAAA,EAAA,EAAAA,EAAA,KACAtG,EAAAO,KAAAO,IAAA,KAAAwF,GAAA/F,KAAAsH,KAAA+B,EAAAtD,GAAApN,GACA,EAAA8G,EAAAO,KAAAO,IAAA,MAAAwF,GAAA/F,KAAAsH,KAAA+B,EAAAtD,GAAApN,IAAA,EALA,GAAA0Q,GAAArJ,KAAA4J,KAAA,GAAAnK,EAAAO,KAAAC,IAAA,EAAAR,MAAA9G,GAAA6Q,EAWA,OAHAM,GAAAL,UAAA,SAAAhK,GAAwC,MAAAqJ,GAAArJ,EAAA9G,EAAA6Q,IACxCM,EAAAJ,OAAA,SAAA/Q,GAAqC,MAAAmQ,GAAArJ,EAAA9G,IAErCmR,GACCL,EAAAC,EAED7R,GAAAkS,WAAApD,EACA9O,EAAAmS,SAAAlD,EACAjP,EAAAoS,WAAArD,EACA/O,EAAAqS,YAAArD,EACAhP,EAAAsS,cAAArD,EACAjP,EAAAuS,UAAAnD,EACApP,EAAAwS,YAAAtD,EACAlP,EAAAyS,aAAAtD,EACAnP,EAAA0S,eAAAtD,EACApP,EAAA2S,SAAAvB,EACApR,EAAA4S,WAAA5B,EACAhR,EAAA6S,YAAA1B,EACAnR,EAAA8S,cAAA1B,EACApR,EAAA+S,QAAArD,EACA1P,EAAAgT,UAAA3D,EACArP,EAAAiT,WAAAzD,EACAxP,EAAAkT,aAAAxD,EACA1P,EAAAmT,QAAArD,EACA9P,EAAAoT,UAAAxD,EACA5P,EAAAqT,WAAAxD,EACA7P,EAAAsT,aAAAxD,EACA9P,EAAAuT,WAAAtD,EACAjQ,EAAAwT,aAAAzD,EACA/P,EAAAyT,cAAAzD,EACAhQ,EAAA0T,gBAAAzD,EACAjQ,EAAA2T,WAAAxD,EACAnQ,EAAA4T,aAAA1D,EACAlQ,EAAA6T,cAAA1D,EACAnQ,EAAA8T,gBAAAhD,EACA9Q,EAAA+T,SAAArC,EACA1R,EAAAgU,WAAAzC,EACAvR,EAAAiU,YAAAxC,EACAzR,EAAAkU,cAAAxC,EACA1R,EAAAmU,YAAAnC,EACAhS,EAAAoU,cAAAtC,EACA9R,EAAAqU,eAAArC,EACAhS,EAAAsU,iBAAArC,EAEArD,OAAAC,eAAA7O,EAAA,cAA8C6K,OAAA,OJokCvC,CAED,SAAU5K,EAAQD,EAASM,IKr0CjC,SAAAgH,EAAAvH,GACAA,EAAAC,IAGCI,KAAA,SAAAJ,GAA4B,YAO7B,SAAAuU,GAAAC,EAAAC,GACA,GAAAlJ,GAAAqD,OAAA8F,OAAAF,EAAAjJ,UACA,QAAAoJ,KAAAF,GAAAlJ,EAAAoJ,GAAAF,EAAAE,EACA,OAAApJ,GAGA,QAAAqJ,MAiLA,QAAAC,GAAA/N,GACA,GAAAlG,EAEA,OADAkG,MAAA,IAAAgO,OAAAC,eACAnU,EAAAoU,EAAAC,KAAAnO,KAAAlG,EAAAsU,SAAAtU,EAAA,UAAAuU,GAAAvU,GAAA,KAAAA,GAAA,MAAAA,GAAA,SAAAA,GAAA,GAAAA,IAAA,KAAAA,EAAA,KACAA,EAAAwU,EAAAH,KAAAnO,IAAAuO,EAAAH,SAAAtU,EAAA,SACAA,EAAA0U,EAAAL,KAAAnO,IAAA,GAAAqO,GAAAvU,EAAA,GAAAA,EAAA,GAAAA,EAAA,OACAA,EAAA2U,EAAAN,KAAAnO,IAAA,GAAAqO,GAAA,IAAAvU,EAAA,WAAAA,EAAA,WAAAA,EAAA,WACAA,EAAA4U,EAAAP,KAAAnO,IAAA2O,EAAA7U,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,KACAA,EAAA8U,EAAAT,KAAAnO,IAAA2O,EAAA,IAAA7U,EAAA,WAAAA,EAAA,WAAAA,EAAA,OAAAA,EAAA,KACAA,EAAA+U,EAAAV,KAAAnO,IAAA8O,EAAAhV,EAAA,GAAAA,EAAA,OAAAA,EAAA,WACAA,EAAAiV,EAAAZ,KAAAnO,IAAA8O,EAAAhV,EAAA,GAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,IACAkV,EAAAC,eAAAjP,GAAAuO,EAAAS,EAAAhP,IACA,gBAAAA,EAAA,GAAAqO,GAAAjM,YAAA,GACA,KAGA,QAAAmM,GAAAxL,GACA,UAAAsL,GAAAtL,GAAA,OAAAA,GAAA,UAAAA,EAAA,GAGA,QAAA4L,GAAAO,EAAAC,EAAApO,EAAAD,GAEA,MADAA,IAAA,IAAAoO,EAAAC,EAAApO,EAAAqB,KACA,GAAAiM,GAAAa,EAAAC,EAAApO,EAAAD,GAGA,QAAAsO,GAAAC,GAEA,MADAA,aAAAvB,KAAAuB,EAAAtB,EAAAsB,IACAA,GACAA,IAAAC,MACA,GAAAjB,GAAAgB,EAAAH,EAAAG,EAAAF,EAAAE,EAAAtO,EAAAsO,EAAAE,UAFA,GAAAlB,GAKA,QAAAiB,GAAAJ,EAAAC,EAAApO,EAAAwO,GACA,WAAAnP,UAAAzB,OAAAyQ,EAAAF,GAAA,GAAAb,GAAAa,EAAAC,EAAApO,EAAA,MAAAwO,EAAA,EAAAA,GAGA,QAAAlB,GAAAa,EAAAC,EAAApO,EAAAwO,GACAjW,KAAA4V,KACA5V,KAAA6V,KACA7V,KAAAyH,KACAzH,KAAAiW,WA+BA,QAAAT,GAAAU,EAAA9E,EAAA+E,EAAA3O,GAIA,MAHAA,IAAA,EAAA0O,EAAA9E,EAAA+E,EAAArN,IACAqN,GAAA,GAAAA,GAAA,EAAAD,EAAA9E,EAAAtI,IACAsI,GAAA,IAAA8E,EAAApN,KACA,GAAAsN,GAAAF,EAAA9E,EAAA+E,EAAA3O,GAGA,QAAA6O,GAAAN,GACA,GAAAA,YAAAK,GAAA,UAAAA,GAAAL,EAAAG,EAAAH,EAAA3E,EAAA2E,EAAAI,EAAAJ,EAAAE,QAEA,IADAF,YAAAvB,KAAAuB,EAAAtB,EAAAsB,KACAA,EAAA,UAAAK,EACA,IAAAL,YAAAK,GAAA,MAAAL,EACAA,KAAAC,KACA,IAAAJ,GAAAG,EAAAH,EAAA,IACAC,EAAAE,EAAAF,EAAA,IACApO,EAAAsO,EAAAtO,EAAA,IACAyD,EAAAnD,KAAAmD,IAAA0K,EAAAC,EAAApO,GACAO,EAAAD,KAAAC,IAAA4N,EAAAC,EAAApO,GACAyO,EAAApN,IACAsI,EAAApJ,EAAAkD,EACAiL,GAAAnO,EAAAkD,GAAA,CAUA,OATAkG,IACA8E,EAAAN,IAAA5N,GAAA6N,EAAApO,GAAA2J,EAAA,GAAAyE,EAAApO,GACAoO,IAAA7N,GAAAP,EAAAmO,GAAAxE,EAAA,GACAwE,EAAAC,GAAAzE,EAAA,EACAA,GAAA+E,EAAA,GAAAnO,EAAAkD,EAAA,EAAAlD,EAAAkD,EACAgL,GAAA,IAEA9E,EAAA+E,EAAA,GAAAA,EAAA,IAAAD,EAEA,GAAAE,GAAAF,EAAA9E,EAAA+E,EAAAJ,EAAAE,SAGA,QAAAK,GAAAJ,EAAA9E,EAAA+E,EAAAF,GACA,WAAAnP,UAAAzB,OAAAgR,EAAAH,GAAA,GAAAE,GAAAF,EAAA9E,EAAA+E,EAAA,MAAAF,EAAA,EAAAA,GAGA,QAAAG,GAAAF,EAAA9E,EAAA+E,EAAAF,GACAjW,KAAAkW,KACAlW,KAAAoR,KACApR,KAAAmW,KACAnW,KAAAiW,WAiCA,QAAAM,GAAAL,EAAAM,EAAAC,GACA,MAGA,MAHAP,EAAA,GAAAM,GAAAC,EAAAD,GAAAN,EAAA,GACAA,EAAA,IAAAO,EACAP,EAAA,IAAAM,GAAAC,EAAAD,IAAA,IAAAN,GAAA,GACAM,GAeA,QAAAE,GAAAX,GACA,GAAAA,YAAAY,GAAA,UAAAA,GAAAZ,EAAAI,EAAAJ,EAAAvO,EAAAuO,EAAAtO,EAAAsO,EAAAE,QACA,IAAAF,YAAAa,GAAA,CACA,GAAAV,GAAAH,EAAAG,EAAAW,CACA,WAAAF,GAAAZ,EAAAI,EAAApO,KAAAmH,IAAAgH,GAAAH,EAAAtV,EAAAsH,KAAAsH,IAAA6G,GAAAH,EAAAtV,EAAAsV,EAAAE,SAEAF,YAAAhB,KAAAgB,EAAAD,EAAAC,GACA,IAAAtO,GAAAqP,EAAAf,EAAAH,GACApO,EAAAsP,EAAAf,EAAAF,GACAM,EAAAW,EAAAf,EAAAtO,GACAJ,EAAA0P,GAAA,SAAAtP,EAAA,SAAAD,EAAA,SAAA2O,GAAAa,GACAC,EAAAF,GAAA,SAAAtP,EAAA,SAAAD,EAAA,QAAA2O,GAAAe,GACAC,EAAAJ,GAAA,SAAAtP,EAAA,QAAAD,EAAA,SAAA2O,GAAAiB,EACA,WAAAT,GAAA,IAAAM,EAAA,QAAA5P,EAAA4P,GAAA,KAAAA,EAAAE,GAAApB,EAAAE,SAGA,QAAAoB,GAAAlB,EAAA3O,EAAAC,EAAAwO,GACA,WAAAnP,UAAAzB,OAAAqR,EAAAP,GAAA,GAAAQ,GAAAR,EAAA3O,EAAAC,EAAA,MAAAwO,EAAA,EAAAA,GAGA,QAAAU,GAAAR,EAAA3O,EAAAC,EAAAwO,GACAjW,KAAAmW,KACAnW,KAAAwH,KACAxH,KAAAyH,KACAzH,KAAAiW,WA0BA,QAAAc,GAAAjJ,GACA,MAAAA,GAAAwJ,EAAAvP,KAAAO,IAAAwF,EAAA,KAAAA,EAAAyJ,EAAAC,EAGA,QAAAC,GAAA3J,GACA,MAAAA,GAAA4J,EAAA5J,MAAAyJ,GAAAzJ,EAAA0J,GAGA,QAAAG,GAAAtQ,GACA,YAAAA,GAAA,eAAAA,EAAA,MAAAU,KAAAO,IAAAjB,EAAA,aAGA,QAAAyP,GAAAzP,GACA,OAAAA,GAAA,aAAAA,EAAA,MAAAU,KAAAO,KAAAjB,EAAA,iBAGA,QAAAuQ,GAAA7B,GACA,GAAAA,YAAAa,GAAA,UAAAA,GAAAb,EAAAG,EAAAH,EAAAtV,EAAAsV,EAAAI,EAAAJ,EAAAE,QACAF,aAAAY,KAAAZ,EAAAW,EAAAX,GACA,IAAAG,GAAAnO,KAAA8P,MAAA9B,EAAAtO,EAAAsO,EAAAvO,GAAAsQ,CACA,WAAAlB,GAAAV,EAAA,EAAAA,EAAA,IAAAA,EAAAnO,KAAAiD,KAAA+K,EAAAvO,EAAAuO,EAAAvO,EAAAuO,EAAAtO,EAAAsO,EAAAtO,GAAAsO,EAAAI,EAAAJ,EAAAE,SAGA,QAAA8B,GAAA7B,EAAAzV,EAAA0V,EAAAF,GACA,WAAAnP,UAAAzB,OAAAuS,EAAA1B,GAAA,GAAAU,GAAAV,EAAAzV,EAAA0V,EAAA,MAAAF,EAAA,EAAAA,GAGA,QAAAW,GAAAV,EAAAzV,EAAA0V,EAAAF,GACAjW,KAAAkW,KACAlW,KAAAS,KACAT,KAAAmW,KACAnW,KAAAiW,WAwBA,QAAA+B,GAAAjC,GACA,GAAAA,YAAAkC,GAAA,UAAAA,GAAAlC,EAAAG,EAAAH,EAAA3E,EAAA2E,EAAAI,EAAAJ,EAAAE,QACAF,aAAAhB,KAAAgB,EAAAD,EAAAC,GACA,IAAAH,GAAAG,EAAAH,EAAA,IACAC,EAAAE,EAAAF,EAAA,IACApO,EAAAsO,EAAAtO,EAAA,IACA0O,GAAA+B,GAAAzQ,EAAA0Q,GAAAvC,EAAAwC,GAAAvC,IAAAqC,GAAAC,GAAAC,IACAC,EAAA5Q,EAAA0O,EACAmC,GAAAC,IAAA1C,EAAAM,GAAAqC,GAAAH,GAAAI,GACArH,EAAArJ,KAAAiD,KAAAsN,IAAAD,MAAAE,GAAApC,GAAA,EAAAA,IACAD,EAAA9E,EAAArJ,KAAA8P,MAAAS,EAAAD,GAAAP,EAAA,IAAAhP,GACA,WAAAmP,GAAA/B,EAAA,EAAAA,EAAA,IAAAA,EAAA9E,EAAA+E,EAAAJ,EAAAE,SAGA,QAAAyC,GAAAxC,EAAA9E,EAAA+E,EAAAF,GACA,WAAAnP,UAAAzB,OAAA2S,EAAA9B,GAAA,GAAA+B,GAAA/B,EAAA9E,EAAA+E,EAAA,MAAAF,EAAA,EAAAA,GAGA,QAAAgC,GAAA/B,EAAA9E,EAAA+E,EAAAF,GACAjW,KAAAkW,KACAlW,KAAAoR,KACApR,KAAAmW,KACAnW,KAAAiW,WA/dA,GAAAnW,GAAA,SAAA6Y,EAAAhZ,EAAAwL,GACAwN,EAAAxN,UAAAxL,EAAAwL,YACAA,EAAAwN,eAWAC,EAAA,GACAC,EAAA,EAAAD,EAEAE,EAAA,sBACAC,EAAA,gDACAC,EAAA,iDACApE,EAAA,mBACAI,EAAA,mBACAE,EAAA,GAAA+D,QAAA,WAAAH,OAAA,QACA3D,EAAA,GAAA8D,QAAA,WAAAD,OAAA,QACA5D,EAAA,GAAA6D,QAAA,YAAAH,MAAAC,GAAA,QACAzD,EAAA,GAAA2D,QAAA,YAAAD,MAAAD,GAAA,QACAxD,EAAA,GAAA0D,QAAA,WAAAF,EAAAC,KAAA,QACAvD,EAAA,GAAAwD,QAAA,YAAAF,EAAAC,IAAAD,GAAA,QAEArD,GACAwD,UAAA,SACAC,aAAA,SACAC,KAAA,MACAC,WAAA,QACAC,MAAA,SACAC,MAAA,SACAC,OAAA,SACAC,MAAA,EACAC,eAAA,SACAC,KAAA,IACAC,WAAA,QACAC,MAAA,SACAC,UAAA,SACAC,UAAA,QACAC,WAAA,QACAC,UAAA,SACAC,MAAA,SACAC,eAAA,QACAC,SAAA,SACAC,QAAA,SACAC,KAAA,MACAC,SAAA,IACAC,SAAA,MACAC,cAAA,SACAC,SAAA,SACAC,UAAA,MACAC,SAAA,SACAC,UAAA,SACAC,YAAA,QACAC,eAAA,QACAC,WAAA,SACAC,WAAA,SACAC,QAAA,QACAC,WAAA,SACAC,aAAA,QACAC,cAAA,QACAC,cAAA,QACAC,cAAA,QACAC,cAAA,MACAC,WAAA,QACAC,SAAA,SACAC,YAAA,MACAC,QAAA,QACAC,QAAA,QACAC,WAAA,QACAC,UAAA,SACAC,YAAA,SACAC,YAAA,QACAC,QAAA,SACAC,UAAA,SACAC,WAAA,SACAC,KAAA,SACAC,UAAA,SACAC,KAAA,QACAC,MAAA,MACAC,YAAA,SACAC,KAAA,QACAC,SAAA,SACAC,QAAA,SACAC,UAAA,SACAC,OAAA,QACAC,MAAA,SACAC,MAAA,SACAC,SAAA,SACAC,cAAA,SACAC,UAAA,QACAC,aAAA,SACAC,UAAA,SACAC,WAAA,SACAC,UAAA,SACAC,qBAAA,SACAC,UAAA,SACAC,WAAA,QACAC,UAAA,SACAC,UAAA,SACAC,YAAA,SACAC,cAAA,QACAC,aAAA,QACAC,eAAA,QACAC,eAAA,QACAC,eAAA,SACAC,YAAA,SACAC,KAAA,MACAC,UAAA,QACAC,MAAA,SACAC,QAAA,SACAC,OAAA,QACAC,iBAAA,QACAC,WAAA,IACAC,aAAA,SACAC,aAAA,QACAC,eAAA,QACAC,gBAAA,QACAC,kBAAA,MACAC,gBAAA,QACAC,gBAAA,SACAC,aAAA,QACAC,UAAA,SACAC,UAAA,SACAC,SAAA,SACAC,YAAA,SACAC,KAAA,IACAC,QAAA,SACAC,MAAA,QACAC,UAAA,QACAC,OAAA,SACAC,UAAA,SACAC,OAAA,SACAC,cAAA,SACAC,UAAA,SACAC,cAAA,SACAC,cAAA,SACAC,WAAA,SACAC,UAAA,SACAC,KAAA,SACAC,KAAA,SACAC,KAAA,SACAC,WAAA,SACAC,OAAA,QACAC,cAAA,QACAC,IAAA,SACAC,UAAA,SACAC,UAAA,QACAC,YAAA,QACAC,OAAA,SACAC,WAAA,SACAC,SAAA,QACAC,SAAA,SACAC,OAAA,SACAC,OAAA,SACAC,QAAA,QACAC,UAAA,QACAC,UAAA,QACAC,UAAA,QACAC,KAAA,SACAC,YAAA,MACAC,UAAA,QACAC,IAAA,SACAC,KAAA,MACAC,QAAA,SACAC,OAAA,SACAC,UAAA,QACAC,OAAA,SACAC,MAAA,SACAC,MAAA,SACAC,WAAA,SACAC,OAAA,SACAC,YAAA,SAGAviB,GAAA0U,EAAAC,GACA6N,YAAA,WACA,MAAAtiB,MAAAgW,MAAAsM,eAEAC,SAAA,WACA,MAAAviB,MAAAgW,MAAA,MA+CAlW,EAAAiV,EAAAiB,EAAA7B,EAAAK,GACAqE,SAAA,SAAAP,GAEA,MADAA,GAAA,MAAAA,EAAAO,EAAA9Q,KAAAO,IAAAuQ,EAAAP,GACA,GAAAvD,GAAA/U,KAAA4V,EAAA0C,EAAAtY,KAAA6V,EAAAyC,EAAAtY,KAAAyH,EAAA6Q,EAAAtY,KAAAiW,UAEA2C,OAAA,SAAAN,GAEA,MADAA,GAAA,MAAAA,EAAAM,EAAA7Q,KAAAO,IAAAsQ,EAAAN,GACA,GAAAvD,GAAA/U,KAAA4V,EAAA0C,EAAAtY,KAAA6V,EAAAyC,EAAAtY,KAAAyH,EAAA6Q,EAAAtY,KAAAiW,UAEAD,IAAA,WACA,MAAAhW,OAEAsiB,YAAA,WACA,UAAAtiB,KAAA4V,GAAA5V,KAAA4V,GAAA,KACA,GAAA5V,KAAA6V,GAAA7V,KAAA6V,GAAA,KACA,GAAA7V,KAAAyH,GAAAzH,KAAAyH,GAAA,KACA,GAAAzH,KAAAiW,SAAAjW,KAAAiW,SAAA,GAEAsM,SAAA,WACA,GAAA/a,GAAAxH,KAAAiW,OACA,OADyBzO,GAAAqD,MAAArD,GAAA,EAAAO,KAAAC,IAAA,EAAAD,KAAAmD,IAAA,EAAA1D,KACzB,IAAAA,EAAA,gBACAO,KAAAC,IAAA,EAAAD,KAAAmD,IAAA,IAAAnD,KAAAya,MAAAxiB,KAAA4V,IAAA,SACA7N,KAAAC,IAAA,EAAAD,KAAAmD,IAAA,IAAAnD,KAAAya,MAAAxiB,KAAA6V,IAAA,SACA9N,KAAAC,IAAA,EAAAD,KAAAmD,IAAA,IAAAnD,KAAAya,MAAAxiB,KAAAyH,IAAA,KACA,IAAAD,EAAA,SAAAA,EAAA,SAgDA1H,EAAAsW,EAAAE,EAAAnC,EAAAK,GACAqE,SAAA,SAAAP,GAEA,MADAA,GAAA,MAAAA,EAAAO,EAAA9Q,KAAAO,IAAAuQ,EAAAP,GACA,GAAAlC,GAAApW,KAAAkW,EAAAlW,KAAAoR,EAAApR,KAAAmW,EAAAmC,EAAAtY,KAAAiW,UAEA2C,OAAA,SAAAN,GAEA,MADAA,GAAA,MAAAA,EAAAM,EAAA7Q,KAAAO,IAAAsQ,EAAAN,GACA,GAAAlC,GAAApW,KAAAkW,EAAAlW,KAAAoR,EAAApR,KAAAmW,EAAAmC,EAAAtY,KAAAiW,UAEAD,IAAA,WACA,GAAAE,GAAAlW,KAAAkW,EAAA,SAAAlW,KAAAkW,EAAA,GACA9E,EAAAvG,MAAAqL,IAAArL,MAAA7K,KAAAoR,GAAA,EAAApR,KAAAoR,EACA+E,EAAAnW,KAAAmW,EACAM,EAAAN,KAAA,GAAAA,EAAA,EAAAA,GAAA/E,EACAoF,EAAA,EAAAL,EAAAM,CACA,WAAA1B,GACAwB,EAAAL,GAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAM,EAAAC,GACAF,EAAAL,EAAAM,EAAAC,GACAF,EAAAL,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAM,EAAAC,GACAzW,KAAAiW,UAGAqM,YAAA,WACA,UAAAtiB,KAAAoR,GAAApR,KAAAoR,GAAA,GAAAvG,MAAA7K,KAAAoR,KACA,GAAApR,KAAAmW,GAAAnW,KAAAmW,GAAA,GACA,GAAAnW,KAAAiW,SAAAjW,KAAAiW,SAAA,KAYA,IAAAY,GAAA9O,KAAAkJ,GAAA,IACA6G,EAAA,IAAA/P,KAAAkJ,GAEAwR,EAAA,GACAzL,EAAA,OACAE,EAAA,EACAE,EAAA,QACAI,EAAA,KACAE,EAAA,KACAH,EAAA,EAAAG,IACAJ,EAAAI,KA6BA5X,GAAA6W,EAAAU,EAAAlD,EAAAK,GACAqE,SAAA,SAAAP,GACA,UAAA3B,GAAA3W,KAAAmW,EAAAsM,GAAA,MAAAnK,EAAA,EAAAA,GAAAtY,KAAAwH,EAAAxH,KAAAyH,EAAAzH,KAAAiW,UAEA2C,OAAA,SAAAN,GACA,UAAA3B,GAAA3W,KAAAmW,EAAAsM,GAAA,MAAAnK,EAAA,EAAAA,GAAAtY,KAAAwH,EAAAxH,KAAAyH,EAAAzH,KAAAiW,UAEAD,IAAA,WACA,GAAAiB,IAAAjX,KAAAmW,EAAA,QACA9O,EAAAwD,MAAA7K,KAAAwH,GAAAyP,IAAAjX,KAAAwH,EAAA,IACA2P,EAAAtM,MAAA7K,KAAAyH,GAAAwP,IAAAjX,KAAAyH,EAAA,GAIA,OAHAwP,GAAAC,EAAAO,EAAAR,GACA5P,EAAA2P,EAAAS,EAAApQ,GACA8P,EAAAC,EAAAK,EAAAN,GACA,GAAApC,GACA4C,EAAA,UAAAtQ,EAAA,UAAA4P,EAAA,SAAAE,GACAQ,GAAA,QAAAtQ,EAAA,UAAA4P,EAAA,QAAAE,GACAQ,EAAA,SAAAtQ,EAAA,SAAA4P,EAAA,UAAAE,GACAnX,KAAAiW,aAuCAnW,EAAA8W,EAAAmB,EAAA5D,EAAAK,GACAqE,SAAA,SAAAP,GACA,UAAA1B,GAAA5W,KAAAkW,EAAAlW,KAAAS,EAAAT,KAAAmW,EAAAsM,GAAA,MAAAnK,EAAA,EAAAA,GAAAtY,KAAAiW,UAEA2C,OAAA,SAAAN,GACA,UAAA1B,GAAA5W,KAAAkW,EAAAlW,KAAAS,EAAAT,KAAAmW,EAAAsM,GAAA,MAAAnK,EAAA,EAAAA,GAAAtY,KAAAiW,UAEAD,IAAA,WACA,MAAAU,GAAA1W,MAAAgW,SAIA,IAAA0M,IAAA,OACAC,EAAA,QACAnK,IAAA,OACAC,IAAA,OACAF,GAAA,QACAJ,GAAAI,GAAAE,GACAL,GAAAG,GAAAoK,EACAzK,GAAAyK,EAAAnK,GAAAC,GAAAiK,CA2BA5iB,GAAAmY,EAAAS,EAAAvE,EAAAK,GACAqE,SAAA,SAAAP,GAEA,MADAA,GAAA,MAAAA,EAAAO,EAAA9Q,KAAAO,IAAAuQ,EAAAP,GACA,GAAAL,GAAAjY,KAAAkW,EAAAlW,KAAAoR,EAAApR,KAAAmW,EAAAmC,EAAAtY,KAAAiW,UAEA2C,OAAA,SAAAN,GAEA,MADAA,GAAA,MAAAA,EAAAM,EAAA7Q,KAAAO,IAAAsQ,EAAAN,GACA,GAAAL,GAAAjY,KAAAkW,EAAAlW,KAAAoR,EAAApR,KAAAmW,EAAAmC,EAAAtY,KAAAiW,UAEAD,IAAA,WACA,GAAAE,GAAArL,MAAA7K,KAAAkW,GAAA,GAAAlW,KAAAkW,EAAA,KAAAW,EACAV,GAAAnW,KAAAmW,EACA3O,EAAAqD,MAAA7K,KAAAoR,GAAA,EAAApR,KAAAoR,EAAA+E,GAAA,EAAAA,GACAyM,EAAA7a,KAAAmH,IAAAgH,GACA2M,EAAA9a,KAAAsH,IAAA6G,EACA,WAAAnB,GACA,KAAAoB,EAAA3O,GAAAkb,EAAAE,EAAAD,EAAAE,IACA,KAAA1M,EAAA3O,GAAAgR,GAAAoK,EAAAnK,GAAAoK,IACA,KAAA1M,EAAA3O,GAAA+Q,GAAAqK,IACA5iB,KAAAiW,aAKArW,EAAA6U,QACA7U,EAAAoW,MACApW,EAAA0W,MACA1W,EAAAyX,MACAzX,EAAAmY,MACAnY,EAAA8Y,YAEAlK,OAAAC,eAAA7O,EAAA,cAA8C6K,OAAA,OL+0CxC,SAAU5K,EAAQD,EAASM,IMt1DjC,SAAAgH,EAAAvH,GACAA,EAAAC,IAGCI,KAAA,SAAAJ,GAA4B,YAI7B,SAAAkjB,KACA,OAA8ChV,GAA9C1I,EAAA,EAAAqE,EAAA3C,UAAAzB,OAAAsH,KAAkDvH,EAAAqE,IAAOrE,EAAA,CACzD,KAAA0I,EAAAhH,UAAA1B,GAAA,KAAA0I,IAAAnB,GAAA,SAAAoW,OAAA,iBAAAjV,EACAnB,GAAAmB,MAEA,UAAAkV,GAAArW,GAGA,QAAAqW,GAAArW,GACA3M,KAAA2M,IAGA,QAAAsW,GAAAC,EAAAC,GACA,MAAAD,GAAAxO,OAAA0O,MAAA,SAAA/X,IAAA,SAAAyC,GACA,GAAA7J,GAAA,GAAAmB,EAAA0I,EAAAuV,QAAA,IAEA,IADAje,GAAA,IAAAnB,EAAA6J,EAAA1C,MAAAhG,EAAA,GAAA0I,IAAA1C,MAAA,EAAAhG,IACA0I,IAAAqV,EAAAxN,eAAA7H,GAAA,SAAAiV,OAAA,iBAAAjV,EACA,QAAYwV,KAAAxV,EAAA7J,UA6CZ,QAAAsf,GAAAD,EAAArf,GACA,OAAAxD,GAAA2E,EAAA,EAAAqE,EAAA6Z,EAAAje,OAAqCD,EAAAqE,IAAOrE,EAC5C,IAAA3E,EAAA6iB,EAAAle,IAAAnB,SACA,MAAAxD,GAAAgK,MAKA,QAAA+Y,GAAAF,EAAArf,EAAAwf,GACA,OAAAre,GAAA,EAAAqE,EAAA6Z,EAAAje,OAAkCD,EAAAqE,IAAOrE,EACzC,GAAAke,EAAAle,GAAAnB,SAAA,CACAqf,EAAAle,GAAAse,EAAAJ,IAAAlY,MAAA,EAAAhG,GAAAue,OAAAL,EAAAlY,MAAAhG,EAAA,GACA,OAIA,MADA,OAAAqe,GAAAH,EAAA5W,MAAmCzI,OAAAwG,MAAAgZ,IACnCH,EAhFA,GAAAI,IAAYjZ,MAAA,aAuBZuY,GAAA7X,UAAA2X,EAAA3X,WACAwN,YAAAqK,EACAY,GAAA,SAAAC,EAAAJ,GACA,GAEA3V,GAFAnB,EAAA3M,KAAA2M,EACAmX,EAAAb,EAAAY,EAAA,GAAAlX,GAEAvH,GAAA,EACAqE,EAAAqa,EAAAze,MAGA,OAAAyB,UAAAzB,OAAA,IAOA,SAAAoe,GAAA,kBAAAA,GAAA,SAAAV,OAAA,qBAAAU,EACA,QAAAre,EAAAqE,GACA,GAAAqE,GAAA+V,EAAAC,EAAA1e,IAAAke,KAAA3W,EAAAmB,GAAA0V,EAAA7W,EAAAmB,GAAA+V,EAAA5f,KAAAwf,OACA,UAAAA,EAAA,IAAA3V,IAAAnB,KAAAmB,GAAA0V,EAAA7W,EAAAmB,GAAA+V,EAAA5f,KAAA,KAGA,OAAAjE,MAZA,OAAAoF,EAAAqE,GAAA,IAAAqE,GAAA+V,EAAAC,EAAA1e,IAAAke,QAAAxV,EAAAyV,EAAA5W,EAAAmB,GAAA+V,EAAA5f,OAAA,MAAA6J,KAcAiW,KAAA,WACA,GAAAA,MAAiBpX,EAAA3M,KAAA2M,CACjB,QAAAmB,KAAAnB,GAAAoX,EAAAjW,GAAAnB,EAAAmB,GAAA1C,OACA,WAAA4X,GAAAe,IAEAxjB,KAAA,SAAA+iB,EAAAU,GACA,IAAAva,EAAA3C,UAAAzB,OAAA,YAAAoE,GAAAqE,EAAAmW,EAAA,GAAAva,OAAAD,GAAArE,EAAA,EAAkFA,EAAAqE,IAAOrE,EAAA6e,EAAA7e,GAAA0B,UAAA1B,EAAA,EACzF,KAAApF,KAAA2M,EAAAgJ,eAAA2N,GAAA,SAAAP,OAAA,iBAAAO,EACA,KAAAxV,EAAA9N,KAAA2M,EAAA2W,GAAAle,EAAA,EAAAqE,EAAAqE,EAAAzI,OAA+CD,EAAAqE,IAAOrE,EAAA0I,EAAA1I,GAAAqF,MAAAyZ,MAAAF,EAAAC,IAEtDC,MAAA,SAAAZ,EAAAU,EAAAC,GACA,IAAAjkB,KAAA2M,EAAAgJ,eAAA2N,GAAA,SAAAP,OAAA,iBAAAO,EACA,QAAAxV,GAAA9N,KAAA2M,EAAA2W,GAAAle,EAAA,EAAAqE,EAAAqE,EAAAzI,OAAmDD,EAAAqE,IAAOrE,EAAA0I,EAAA1I,GAAAqF,MAAAyZ,MAAAF,EAAAC,KAuB1DrkB,EAAAkjB,WAEAtU,OAAAC,eAAA7O,EAAA,cAA8C6K,OAAA,ONg2DxC,SAAU5K,EAAQD,EAASM,IO37DjC,SAAAgH,EAAAvH,GACAA,EAAAC,IAGCI,KAAA,SAAAJ,GAA4B,YA4G7B,SAAAukB,GAAAC,GACA,UAAAC,GAAAD,GAKA,QAAAC,GAAAD,GACA,KAAAE,EAAAC,EAAA1P,KAAAuP,IAAA,SAAArB,OAAA,mBAAAqB,EAEA,IAAAE,GACAE,EAAAF,EAAA,QACAG,EAAAH,EAAA,QACAI,EAAAJ,EAAA,QACAK,EAAAL,EAAA,OACAM,IAAAN,EAAA,GACAhjB,EAAAgjB,EAAA,KAAAA,EAAA,GACAO,IAAAP,EAAA,GACAQ,EAAAR,EAAA,KAAAA,EAAA,GAAAlZ,MAAA,GACAkY,EAAAgB,EAAA,MAGA,OAAAhB,GAAAuB,GAAA,EAAAvB,EAAA,KAGAyB,EAAAzB,OAAA,KAGAsB,GAAA,MAAAJ,GAAA,MAAAC,KAAAG,GAAA,EAAAJ,EAAA,IAAAC,EAAA,KAEAzkB,KAAAwkB,OACAxkB,KAAAykB,QACAzkB,KAAA0kB,OACA1kB,KAAA2kB,SACA3kB,KAAA4kB,OACA5kB,KAAAsB,QACAtB,KAAA6kB,QACA7kB,KAAA8kB,YACA9kB,KAAAsjB,OAuJA,QAAA0B,GAAA3Q,GAIA,MAHA4Q,GAAAC,EAAA7Q,GACAzU,EAAA8G,OAAAue,EAAAve,OACA9G,EAAAulB,aAAAF,EAAAE,aACAF,EAvSA,GA0DAG,GA1DAC,EAAA,SAAAhe,EAAA3G,GACA,IAAA0E,GAAAiC,EAAA3G,EAAA2G,EAAAie,cAAA5kB,EAAA,GAAA2G,EAAAie,iBAAAjC,QAAA,mBACA,IAAAje,GAAAmgB,EAAAle,EAAA+D,MAAA,EAAAhG,EAIA,QACAmgB,EAAAlgB,OAAA,EAAAkgB,EAAA,GAAAA,EAAAna,MAAA,GAAAma,GACAle,EAAA+D,MAAAhG,EAAA,KAIAuL,EAAA,SAAAtJ,GACA,MAAAA,GAAAge,EAAAtd,KAAAa,IAAAvB,QAAA,GAAAyB,KAGA0c,EAAA,SAAAC,EAAAC,GACA,gBAAAjb,EAAAnJ,GAOA,IANA,GAAA8D,GAAAqF,EAAApF,OACAyI,KACAR,EAAA,EACAuI,EAAA4P,EAAA,GACApgB,EAAA,EAEAD,EAAA,GAAAyQ,EAAA,IACAxQ,EAAAwQ,EAAA,EAAAvU,IAAAuU,EAAA9N,KAAAC,IAAA,EAAA1G,EAAA+D,IACAyI,EAAApB,KAAAjC,EAAAkb,UAAAvgB,GAAAyQ,EAAAzQ,EAAAyQ,OACAxQ,GAAAwQ,EAAA,GAAAvU,KACAuU,EAAA4P,EAAAnY,KAAA,GAAAmY,EAAApgB,OAGA,OAAAyI,GAAApC,UAAAka,KAAAF,KAIAG,EAAA,SAAAC,GACA,gBAAArb,GACA,MAAAA,GAAAsb,QAAA,kBAAA3gB,GACA,MAAA0gB,IAAA1gB,OAKA4gB,EAAA,SAAA3e,EAAA3G,GACA2G,IAAA4e,YAAAvlB,EAEAwlB,GAAA,OAAAlc,GAAAP,EAAApC,EAAAhC,OAAAD,EAAA,EAAA2E,GAAA,EAAiD3E,EAAAqE,IAAOrE,EACxD,OAAAiC,EAAAjC,IACA,QAAA2E,EAAAC,EAAA5E,CAA4B,MAC5B,aAAA2E,MAAA3E,GAAqC4E,EAAA5E,CAAQ,MAC7C,cAAA8gB,EACA,SAAAnc,EAAA,IAAAA,EAAA,GAIA,MAAAA,GAAA,EAAA1C,EAAA+D,MAAA,EAAArB,GAAA1C,EAAA+D,MAAApB,EAAA,GAAA3C,GAKA8e,EAAA,SAAA9e,EAAA3G,GACA,GAAAyE,GAAAkgB,EAAAhe,EAAA3G,EACA,KAAAyE,EAAA,MAAAkC,GAAA,EACA,IAAAke,GAAApgB,EAAA,GACAwL,EAAAxL,EAAA,GACAC,EAAAuL,GAAAyU,EAAA,EAAArd,KAAAC,KAAA,EAAAD,KAAAmD,IAAA,EAAAnD,KAAAG,MAAAyI,EAAA,QACAlH,EAAA8b,EAAAlgB,MACA,OAAAD,KAAAqE,EAAA8b,EACAngB,EAAAqE,EAAA8b,EAAA,GAAA7b,OAAAtE,EAAAqE,EAAA,GAAAmc,KAAA,KACAxgB,EAAA,EAAAmgB,EAAAna,MAAA,EAAAhG,GAAA,IAAAmgB,EAAAna,MAAAhG,GACA,QAAAsE,OAAA,EAAAtE,GAAAwgB,KAAA,KAAAP,EAAAhe,EAAAU,KAAAC,IAAA,EAAAtH,EAAA0E,EAAA,QAGAghB,EAAA,SAAA/e,EAAA3G,GACA,GAAAyE,GAAAkgB,EAAAhe,EAAA3G,EACA,KAAAyE,EAAA,MAAAkC,GAAA,EACA,IAAAke,GAAApgB,EAAA,GACAwL,EAAAxL,EAAA,EACA,OAAAwL,GAAA,UAAAjH,QAAAiH,GAAAiV,KAAA,KAAAL,EACAA,EAAAlgB,OAAAsL,EAAA,EAAA4U,EAAAna,MAAA,EAAAuF,EAAA,OAAA4U,EAAAna,MAAAuF,EAAA,GACA4U,EAAA,GAAA7b,OAAAiH,EAAA4U,EAAAlgB,OAAA,GAAAugB,KAAA,MAGAb,GACAsB,GAAAL,EACAM,IAAA,SAAAjf,EAAA3G,GAAuB,WAAA2G,GAAAkf,QAAA7lB,IACvB+G,EAAA,SAAAJ,GAAoB,MAAAU,MAAAya,MAAAnb,GAAAkb,SAAA,IACpB9hB,EAAA,SAAA4G,GAAoB,MAAAA,GAAA,IACpBlC,EAAA,SAAAkC,GAAoB,MAAAU,MAAAya,MAAAnb,GAAAkb,SAAA,KACpBzR,EAAA,SAAAzJ,EAAA3G,GAAuB,MAAA2G,GAAAie,cAAA5kB,IACvB0G,EAAA,SAAAC,EAAA3G,GAAuB,MAAA2G,GAAAkf,QAAA7lB,IACvBmV,EAAA,SAAAxO,EAAA3G,GAAuB,MAAA2G,GAAA4e,YAAAvlB,IACvBqV,EAAA,SAAA1O,GAAoB,MAAAU,MAAAya,MAAAnb,GAAAkb,SAAA,IACpB7hB,EAAA,SAAA2G,EAAA3G,GAAuB,MAAA0lB,GAAA,IAAA/e,EAAA3G,IACvBkV,EAAAwQ,EACAhV,EAAA+U,EACAK,EAAA,SAAAnf,GAAoB,MAAAU,MAAAya,MAAAnb,GAAAkb,SAAA,IAAAkE,eACpBpf,EAAA,SAAAA,GAAoB,MAAAU,MAAAya,MAAAnb,GAAAkb,SAAA,MAIpBgC,EAAA,uEAMAJ,GAAAhZ,UAAAkZ,EAAAlZ,UAoCAkZ,EAAAlZ,UAAAoX,SAAA,WACA,MAAAviB,MAAAwkB,KACAxkB,KAAAykB,MACAzkB,KAAA0kB,KACA1kB,KAAA2kB,QACA3kB,KAAA4kB,KAAA,SACA,MAAA5kB,KAAAsB,MAAA,GAAAyG,KAAAC,IAAA,IAAAhI,KAAAsB,SACAtB,KAAA6kB,MAAA,SACA,MAAA7kB,KAAA8kB,UAAA,OAAA/c,KAAAC,IAAA,IAAAhI,KAAA8kB,YACA9kB,KAAAsjB,KAGA,IA6HA2B,GA7HA1Z,EAAA,SAAAlE,GACA,MAAAA,IAGAqf,GAAA,oEAEAxB,EAAA,SAAAD,GAOA,QAAA0B,GAAAvC,GAgCA,QAAA1d,GAAA+D,GACA,GAEArF,GAAAqE,EAAAhJ,EAFAmmB,EAAAC,EACAC,EAAAC,CAGA,UAAAzD,EACAwD,EAAAE,EAAAvc,GAAAqc,EACArc,EAAA,OACO,CACPA,IAGA,IAAAwc,GAAAxc,EAAA,CAYA,IAXAA,EAAAuc,EAAAjf,KAAAa,IAAA6B,GAAAqa,GAGAmC,GAAA,KAAAxc,IAAAwc,GAAA,GAGAL,GAAAK,EAAA,MAAAvC,IAAA,UAAAA,GAAA,MAAAA,EAAA,GAAAA,GAAAkC,EACAE,KAAA,MAAAxD,EAAAoD,EAAA,EAAAtB,EAAA,QAAA6B,GAAA,MAAAvC,EAAA,QAIAwC,EAEA,IADA9hB,GAAA,EAAAqE,EAAAgB,EAAApF,SACAD,EAAAqE,GACA,GAAAhJ,EAAAgK,EAAA0c,WAAA/hB,GAAA,GAAA3E,KAAA,IACAqmB,GAAA,KAAArmB,EAAA2mB,EAAA3c,EAAAW,MAAAhG,EAAA,GAAAqF,EAAAW,MAAAhG,IAAA0hB,EACArc,IAAAW,MAAA,EAAAhG,EACA,QAOAyf,IAAAD,IAAAna,EAAA4c,EAAA5c,EAAA6c,KAGA,IAAAjiB,GAAAuhB,EAAAvhB,OAAAoF,EAAApF,OAAAyhB,EAAAzhB,OACAkiB,EAAAliB,EAAA/D,EAAA,GAAAoI,OAAApI,EAAA+D,EAAA,GAAAugB,KAAApB,GAAA,EAMA,QAHAK,GAAAD,IAAAna,EAAA4c,EAAAE,EAAA9c,EAAA8c,EAAAliB,OAAA/D,EAAAwlB,EAAAzhB,OAAAiiB,KAAAC,EAAA,IAGA9C,GACA,QAAAha,EAAAmc,EAAAnc,EAAAqc,EAAAS,CAAsE,MACtE,SAAA9c,EAAAmc,EAAAW,EAAA9c,EAAAqc,CAAsE,MACtE,SAAArc,EAAA8c,EAAAnc,MAAA,EAAA/F,EAAAkiB,EAAAliB,QAAA,GAAAuhB,EAAAnc,EAAAqc,EAAAS,EAAAnc,MAAA/F,EAAqI,MACrI,SAAAoF,EAAA8c,EAAAX,EAAAnc,EAAAqc,EAGA,MAAAhB,GAAArb,GArFA2Z,EAAAD,EAAAC,EAEA,IAAAI,GAAAJ,EAAAI,KACAC,EAAAL,EAAAK,MACAC,EAAAN,EAAAM,KACAC,EAAAP,EAAAO,OACAC,EAAAR,EAAAQ,KACAtjB,EAAA8iB,EAAA9iB,MACAujB,EAAAT,EAAAS,MACAC,EAAAV,EAAAU,UACAxB,EAAAc,EAAAd,KAIAuD,EAAA,MAAAlC,EAAA6C,EAAA,SAAA7C,GAAA,SAAA8C,KAAAnE,GAAA,IAAAA,EAAA3O,cAAA,GACAoS,EAAA,MAAApC,EAAA6C,EAAA,UAAAC,KAAAnE,GAAAoE,EAAA,GAKAV,EAAAjC,EAAAzB,GACA4D,GAAA5D,GAAA,aAAAmE,KAAAnE,EAuEA,OAjEAwB,GAAA,MAAAA,EAAAxB,EAAA,KACA,SAAAmE,KAAAnE,GAAAvb,KAAAC,IAAA,EAAAD,KAAAmD,IAAA,GAAA4Z,IACA/c,KAAAC,IAAA,EAAAD,KAAAmD,IAAA,GAAA4Z,IA2DApe,EAAA6b,SAAA,WACA,MAAA6B,GAAA,IAGA1d,EAGA,QAAAye,GAAAf,EAAA3Z,GACA,GAAArD,GAAAuf,GAAAvC,EAAAD,EAAAC,KAAAd,KAAA,IAAAc,IACAtT,EAAA,EAAA/I,KAAAC,KAAA,EAAAD,KAAAmD,IAAA,EAAAnD,KAAAG,MAAAyI,EAAAlG,GAAA,KACA6N,EAAAvQ,KAAAO,IAAA,IAAAwI,GACA+V,EAAAH,EAAA,EAAA5V,EAAA,EACA,iBAAArG,GACA,MAAArD,GAAAkR,EAAA7N,GAAAoc,GA5GA,GAAAQ,GAAApC,EAAAQ,UAAAR,EAAAS,UAAAF,EAAAP,EAAAQ,SAAAR,EAAAS,WAAAna,EACAic,EAAAvC,EAAAuC,SACAJ,EAAAnC,EAAAmC,QACAtB,EAAAb,EAAAa,SAAAD,EAAAZ,EAAAa,UAAAva,EACAmc,EAAAzC,EAAAyC,SAAA,GA4GA,QACAhhB,OAAAigB,EACAxB,gBAQAH,IACAoC,QAAA,IACA1B,UAAA,IACAD,UAAA,GACA+B,UAAA,SAUA,IAAAG,GAAA,SAAA7f,GACA,MAAAC,MAAAC,IAAA,GAAA2I,EAAA5I,KAAAa,IAAAd,MAGA8f,EAAA,SAAA9f,EAAA2C,GACA,MAAA1C,MAAAC,IAAA,IAAAD,KAAAC,KAAA,EAAAD,KAAAmD,IAAA,EAAAnD,KAAAG,MAAAyI,EAAAlG,GAAA,KAAAkG,EAAA5I,KAAAa,IAAAd,MAGA+f,EAAA,SAAA/f,EAAAE,GAEA,MADAF,GAAAC,KAAAa,IAAAd,GAAAE,EAAAD,KAAAa,IAAAZ,GAAAF,EACAC,KAAAC,IAAA,EAAA2I,EAAA3I,GAAA2I,EAAA7I,IAAA,EAGAlI,GAAAkoB,oBAAA9C,EACAplB,EAAAslB,eACAtlB,EAAAukB,kBACAvkB,EAAA+nB,iBACA/nB,EAAAgoB,kBACAhoB,EAAAioB,iBAEArZ,OAAAC,eAAA7O,EAAA,cAA8C6K,OAAA,OPq8DxC,SAAU5K,EAAQD,EAASM,IQ5wEjC,SAAAgH,EAAAvH,GACAA,EAAAC,EAAAM,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,KAGCF,KAAA,SAAAJ,EAAAmoB,EAAAC,EAAAC,EAAApnB,EAAAqnB,EAAAC,EAAAC,GAAoG,YASrG,SAAAC,GAAAC,GAOA,QAAAC,GAAApjB,GACA,GAAAoP,GAAApP,EAAA,GAAAC,EAAAojB,EAAAjF,IAAAhP,EACA,KAAAnP,EAAA,CACA,GAAAqjB,IAAAC,EAAA,MAAAD,EACAD,GAAAhF,IAAAjP,EAAAnP,EAAA4G,EAAAU,KAAAvH,IAEA,MAAAmjB,IAAAljB,EAAA,GAAAkjB,EAAAjjB,QAZA,GAAAmjB,GAAAR,EAAA3c,MACAW,KACAyc,EAAAC,CAoCA,OAlCAJ,GAAA,MAAAA,KAAAld,EAAA7K,KAAA+nB,GAWAC,EAAAvc,OAAA,SAAAW,GACA,IAAA7F,UAAAzB,OAAA,MAAA2G,GAAAZ,OACAY,MAAAwc,EAAAR,EAAA3c,KAEA,KADA,GAAAlG,GAAAoP,EAAAnP,GAAA,EAAAqE,EAAAkD,EAAAtH,SACAD,EAAAqE,GAAA+e,EAAAG,IAAApU,GAAApP,EAAAwH,EAAAvH,IAAA,KAAAojB,EAAAhF,IAAAjP,EAAAvI,EAAAU,KAAAvH,GACA,OAAAojB,IAGAA,EAAAllB,MAAA,SAAAsJ,GACA,MAAA7F,WAAAzB,QAAAijB,EAAAld,EAAA7K,KAAAoM,GAAA4b,GAAAD,EAAAld,SAGAmd,EAAAE,QAAA,SAAA9b,GACA,MAAA7F,WAAAzB,QAAAojB,EAAA9b,EAAA4b,GAAAE,GAGAF,EAAAxE,KAAA,WACA,MAAAsE,KACArc,UACA3I,MAAAilB,GACAG,YAGAF,EAGA,QAAAK,KAcA,QAAAC,KACA,GAAApf,GAAAuC,IAAA3G,OACAqG,EAAA4c,EAAA,GAAAA,EAAA,GACA3gB,EAAA2gB,EAAA5c,EAAA,GACA9D,EAAA0gB,EAAA,EAAA5c,EACA5D,IAAAF,EAAAD,GAAAI,KAAAC,IAAA,EAAAyB,EAAAqf,EAAA,EAAAC,GACAvG,IAAA1a,EAAAC,KAAAG,MAAAJ,IACAH,IAAAC,EAAAD,EAAAG,GAAA2B,EAAAqf,IAAArE,EACAuE,EAAAlhB,GAAA,EAAAghB,GACAtG,IAAA7a,EAAAI,KAAAya,MAAA7a,GAAAqhB,EAAAjhB,KAAAya,MAAAwG,GACA,IAAA5e,GAAA2d,EAAA1kB,MAAAoG,GAAA4B,IAAA,SAAAjG,GAAmD,MAAAuC,GAAAG,EAAA1C,GACnD,OAAA6jB,GAAAvd,EAAAtB,EAAAsB,UAAAtB,GAxBA,GAIAtC,GACAkhB,EALAT,EAAAF,IAAAI,QAAAxhB,QACA+E,EAAAuc,EAAAvc,OACAid,EAAAV,EAAAllB,MACAilB,GAAA,KAGA9F,GAAA,EACAsG,EAAA,EACAC,EAAA,EACAtE,EAAA,EAoEA,cAlEA8D,GAAAE,QAgBAF,EAAAvc,OAAA,SAAAW,GACA,MAAA7F,WAAAzB,QAAA2G,EAAAW,GAAAkc,KAAA7c,KAGAuc,EAAAllB,MAAA,SAAAsJ,GACA,MAAA7F,WAAAzB,QAAAijB,IAAA3b,EAAA,IAAAA,EAAA,IAAAkc,KAAAP,EAAAld,SAGAmd,EAAAW,WAAA,SAAAvc,GACA,MAAA2b,KAAA3b,EAAA,IAAAA,EAAA,IAAA6V,GAAA,EAAAqG,KAGAN,EAAAS,UAAA,WACA,MAAAA,IAGAT,EAAAzgB,KAAA,WACA,MAAAA,IAGAygB,EAAA/F,MAAA,SAAA7V,GACA,MAAA7F,WAAAzB,QAAAmd,IAAA7V,EAAAkc,KAAArG,GAGA+F,EAAAhB,QAAA,SAAA5a,GACA,MAAA7F,WAAAzB,QAAAyjB,EAAAC,EAAAhhB,KAAAC,IAAA,EAAAD,KAAAmD,IAAA,EAAAyB,IAAAkc,KAAAC,GAGAP,EAAAO,aAAA,SAAAnc,GACA,MAAA7F,WAAAzB,QAAAyjB,EAAA/gB,KAAAC,IAAA,EAAAD,KAAAmD,IAAA,EAAAyB,IAAAkc,KAAAC,GAGAP,EAAAQ,aAAA,SAAApc,GACA,MAAA7F,WAAAzB,QAAA0jB,EAAAhhB,KAAAC,IAAA,EAAAD,KAAAmD,IAAA,EAAAyB,IAAAkc,KAAAE,GAGAR,EAAA9D,MAAA,SAAA9X,GACA,MAAA7F,WAAAzB,QAAAof,EAAA1c,KAAAC,IAAA,EAAAD,KAAAmD,IAAA,EAAAyB,IAAAkc,KAAApE,GAGA8D,EAAAxE,KAAA,WACA,MAAA6E,KACA5c,YACA3I,MAAAilB,GACA9F,SACAsG,gBACAC,gBACAtE,UAGAoE,IAGA,QAAAM,GAAAZ,GACA,GAAAxE,GAAAwE,EAAAxE,IAUA,OARAwE,GAAAhB,QAAAgB,EAAAQ,mBACAR,GAAAO,mBACAP,GAAAQ,aAEAR,EAAAxE,KAAA,WACA,MAAAoF,GAAApF,MAGAwE,EAGA,QAAAa,KACA,MAAAD,GAAAP,IAAAE,aAAA,IAeA,QAAAO,GAAA7hB,EAAAC,GACA,OAAAA,GAAAD,MACA,SAAAH,GAAqB,OAAAA,EAAAG,GAAAC,GACrB6D,EAAA7D,GAGA,QAAA6hB,GAAAC,GACA,gBAAA/hB,EAAAC,GACA,GAAAtC,GAAAokB,EAAA/hB,KAAAC,KACA,iBAAAJ,GAAwB,MAAAA,IAAAG,EAAA,EAAAH,GAAAI,EAAA,EAAAtC,EAAAkC,KAIxB,QAAAmiB,GAAAC,GACA,gBAAAjiB,EAAAC,GACA,GAAAmO,GAAA6T,EAAAjiB,KAAAC,KACA,iBAAAqG,GAAwB,MAAAA,IAAA,EAAAtG,EAAAsG,GAAA,EAAArG,EAAAmO,EAAA9H,KAIxB,QAAA4b,GAAA1d,EAAAsc,EAAAiB,EAAAE,GACA,GAAAE,GAAA3d,EAAA,GAAA4d,EAAA5d,EAAA,GAAA6d,EAAAvB,EAAA,GAAAwB,EAAAxB,EAAA,EAGA,OAFAsB,GAAAD,KAAAJ,EAAAK,EAAAD,GAAAE,EAAAJ,EAAAK,EAAAD,KACAF,EAAAJ,EAAAI,EAAAC,GAAAC,EAAAJ,EAAAI,EAAAC,IACA,SAAAziB,GAAsB,MAAAwiB,GAAAF,EAAAtiB,KAGtB,QAAA0iB,GAAA/d,EAAAsc,EAAAiB,EAAAE,GACA,GAAAnc,GAAAvF,KAAAmD,IAAAc,EAAA3G,OAAAijB,EAAAjjB,QAAA,EACAF,EAAA,GAAAuE,OAAA4D,GACAsI,EAAA,GAAAlM,OAAA4D,GACAlI,GAAA,CAQA,KALA4G,EAAAsB,GAAAtB,EAAA,KACAA,IAAAZ,QAAAM,UACA4c,IAAAld,QAAAM,aAGAtG,EAAAkI,GACAnI,EAAAC,GAAAmkB,EAAAvd,EAAA5G,GAAA4G,EAAA5G,EAAA,IACAwQ,EAAAxQ,GAAAqkB,EAAAnB,EAAAljB,GAAAkjB,EAAAljB,EAAA,GAGA,iBAAAiC,GACA,GAAAjC,GAAA2iB,EAAA3Z,OAAApC,EAAA3E,EAAA,EAAAiG,GAAA,CACA,OAAAsI,GAAAxQ,GAAAD,EAAAC,GAAAiC,KAIA,QAAA0c,GAAAiG,EAAAC,GACA,MAAAA,GACAje,OAAAge,EAAAhe,UACA3I,MAAA2mB,EAAA3mB,SACA6mB,YAAAF,EAAAE,eACAC,MAAAH,EAAAG,SAKA,QAAAC,GAAAb,EAAAE,GASA,QAAAZ,KAGA,MAFAwB,GAAAtiB,KAAAmD,IAAAc,EAAA3G,OAAAijB,EAAAjjB,QAAA,EAAA0kB,EAAAL,EACAY,EAAAC,EAAA,KACAhC,EAGA,QAAAA,GAAAlhB,GACA,OAAAijB,MAAAD,EAAAre,EAAAsc,EAAA6B,EAAAb,EAAAC,KAAAiB,MAAAnjB,GAfA,GAIAgjB,GACAC,EACAC,EANAve,EAAAye,EACAnC,EAAAmC,EACAD,EAAAvC,EAAAiC,YACAC,GAAA,CAuCA,OAxBA5B,GAAAmC,OAAA,SAAAzT,GACA,OAAAsT,MAAAF,EAAA/B,EAAAtc,EAAAqd,EAAAc,EAAAX,EAAAC,SAAAxS,IAGAsR,EAAAvc,OAAA,SAAAW,GACA,MAAA7F,WAAAzB,QAAA2G,EAAA2e,EAAApqB,KAAAoM,EAAArC,GAAAue,KAAA7c,EAAAZ,SAGAmd,EAAAllB,MAAA,SAAAsJ,GACA,MAAA7F,WAAAzB,QAAAijB,EAAAld,EAAA7K,KAAAoM,GAAAkc,KAAAP,EAAAld,SAGAmd,EAAAW,WAAA,SAAAvc,GACA,MAAA2b,GAAAld,EAAA7K,KAAAoM,GAAA6d,EAAAvC,EAAA2C,iBAAA/B,KAGAN,EAAA4B,MAAA,SAAAxd,GACA,MAAA7F,WAAAzB,QAAA8kB,IAAAxd,EAAAkc,KAAAsB,GAGA5B,EAAA2B,YAAA,SAAAvd,GACA,MAAA7F,WAAAzB,QAAAmlB,EAAA7d,EAAAkc,KAAA2B,GAGA3B,IAgCA,QAAAgC,GAAAtC,GACA,GAAAvc,GAAAuc,EAAAvc,MAmDA,OAjDAuc,GAAA9c,MAAA,SAAA5D,GACA,GAAA1C,GAAA6G,GACA,OAAA+b,GAAAtc,MAAAtG,EAAA,GAAAA,IAAAE,OAAA,SAAAwC,EAAA,GAAAA,IAGA0gB,EAAAuC,WAAA,SAAAjjB,EAAAuc,GACA,MAAA0G,GAAA9e,IAAAnE,EAAAuc,IAGAmE,EAAAwC,KAAA,SAAAljB,GACA,MAAAA,MAAA,GAEA,IAKAC,GALA3C,EAAA6G,IACAjC,EAAA,EACAC,EAAA7E,EAAAE,OAAA,EACAsC,EAAAxC,EAAA4E,GACAnC,EAAAzC,EAAA6E,EA8BA,OA3BApC,GAAAD,IACAG,EAAAH,IAAAC,IAAAE,EACAA,EAAAiC,IAAAC,IAAAlC,GAGAA,EAAAigB,EAAArgB,cAAAC,EAAAC,EAAAC;AAEAC,EAAA,GACAH,EAAAI,KAAAG,MAAAP,EAAAG,KACAF,EAAAG,KAAAyD,KAAA5D,EAAAE,KACAA,EAAAigB,EAAArgB,cAAAC,EAAAC,EAAAC,IACKC,EAAA,IACLH,EAAAI,KAAAyD,KAAA7D,EAAAG,KACAF,EAAAG,KAAAG,MAAAN,EAAAE,KACAA,EAAAigB,EAAArgB,cAAAC,EAAAC,EAAAC,IAGAC,EAAA,GACA3C,EAAA4E,GAAAhC,KAAAG,MAAAP,EAAAG,KACA3C,EAAA6E,GAAAjC,KAAAyD,KAAA5D,EAAAE,KACAkE,EAAA7G,IACK2C,EAAA,IACL3C,EAAA4E,GAAAhC,KAAAyD,KAAA7D,EAAAG,KACA3C,EAAA6E,GAAAjC,KAAAG,MAAAN,EAAAE,KACAkE,EAAA7G,IAGAojB,GAGAA,EAGA,QAAA7Z,KACA,GAAA6Z,GAAA6B,EAAAf,EAAApB,EAAA+C,kBAMA,OAJAzC,GAAAxE,KAAA,WACA,MAAAA,GAAAwE,EAAA7Z,MAGAmc,EAAAtC,GAGA,QAAAhd,KAGA,QAAAgd,GAAAlhB,GACA,OAAAA,EAHA,GAAA2E,IAAA,IAgBA,OAVAuc,GAAAmC,OAAAnC,EAEAA,EAAAvc,OAAAuc,EAAAllB,MAAA,SAAAsJ,GACA,MAAA7F,WAAAzB,QAAA2G,EAAA2e,EAAApqB,KAAAoM,EAAArC,GAAAie,GAAAvc,EAAAZ,SAGAmd,EAAAxE,KAAA,WACA,MAAAxY,KAAAS,WAGA6e,EAAAtC,GAsBA,QAAAgB,GAAA/hB,EAAAC,GACA,OAAAA,EAAAM,KAAAI,IAAAV,EAAAD,IACA,SAAAH,GAAqB,MAAAU,MAAAI,IAAAd,EAAAG,GAAAC,GACrB6D,EAAA7D,GAGA,QAAAgiB,GAAAjiB,EAAAC,GACA,MAAAD,GAAA,EACA,SAAAsG,GAAqB,OAAA/F,KAAAO,KAAAb,EAAAqG,GAAA/F,KAAAO,KAAAd,EAAA,EAAAsG,IACrB,SAAAA,GAAqB,MAAA/F,MAAAO,IAAAb,EAAAqG,GAAA/F,KAAAO,IAAAd,EAAA,EAAAsG,IAGrB,QAAAmd,GAAA5jB,GACA,MAAAsE,UAAAtE,KAAA,KAAAA,KAAA,IAAAA,EAGA,QAAA6jB,GAAAC,GACA,YAAAA,EAAAF,EACAE,IAAApjB,KAAAwQ,EAAAxQ,KAAAqjB,IACA,SAAA/jB,GAAqB,MAAAU,MAAAO,IAAA6iB,EAAA9jB,IAGrB,QAAAgkB,GAAAF,GACA,MAAAA,KAAApjB,KAAAwQ,EAAAxQ,KAAAI,IACA,KAAAgjB,GAAApjB,KAAAujB,OACA,IAAAH,GAAApjB,KAAAwjB,OACAJ,EAAApjB,KAAAI,IAAAgjB,GAAA,SAAA9jB,GAA8C,MAAAU,MAAAI,IAAAd,GAAA8jB,IAG9C,QAAAK,GAAApkB,GACA,gBAAAC,GACA,OAAAD,GAAAC,IAIA,QAAAc,KAOA,QAAA0gB,KAGA,MAFA4C,GAAAJ,EAAAF,GAAAO,EAAAR,EAAAC,GACAnf,IAAA,OAAAyf,EAAAD,EAAAC,GAAAC,EAAAF,EAAAE,IACAnD,EATA,GAAAA,GAAA6B,EAAAb,EAAAE,GAAAzd,QAAA,OACAA,EAAAuc,EAAAvc,OACAmf,EAAA,GACAM,EAAAJ,EAAA,IACAK,EAAAR,EAAA,GAgFA,OAxEA3C,GAAA4C,KAAA,SAAAxe,GACA,MAAA7F,WAAAzB,QAAA8lB,GAAAxe,EAAAkc,KAAAsC,GAGA5C,EAAAvc,OAAA,SAAAW,GACA,MAAA7F,WAAAzB,QAAA2G,EAAAW,GAAAkc,KAAA7c,KAGAuc,EAAA9c,MAAA,SAAA5D,GACA,GAGA+N,GAHAzQ,EAAA6G,IACA2f,EAAAxmB,EAAA,GACA4F,EAAA5F,IAAAE,OAAA,IAGAuQ,EAAA7K,EAAA4gB,KAAAvmB,EAAAumB,IAAA5gB,IAAA3F,EAEA,IAEA1E,GACA4X,EACAxK,EAJA1I,EAAAqmB,EAAAE,GACAre,EAAAme,EAAA1gB,GAIAtB,EAAA,MAAA5B,EAAA,IAAAA,EACAsP,IAEA,MAAAgU,EAAA,IAAA7d,EAAAlI,EAAAqE,GAEA,GADArE,EAAA2C,KAAAya,MAAApd,GAAA,EAAAkI,EAAAvF,KAAAya,MAAAlV,GAAA,EACAqe,EAAA,QAAuBvmB,EAAAkI,IAAOlI,EAC9B,IAAAkT,EAAA,EAAA5X,EAAAgrB,EAAAtmB,GAAgCkT,EAAA6S,IAAU7S,EAE1C,GADAxK,EAAApN,EAAA4X,IACAxK,EAAA6d,GAAA,CACA,GAAA7d,EAAA/C,EAAA,KACAoM,GAAAzK,KAAAoB,QAEO,MAAY1I,EAAAkI,IAAOlI,EAC1B,IAAAkT,EAAA6S,EAAA,EAAAzqB,EAAAgrB,EAAAtmB,GAAuCkT,GAAA,IAAQA,EAE/C,GADAxK,EAAApN,EAAA4X,IACAxK,EAAA6d,GAAA,CACA,GAAA7d,EAAA/C,EAAA,KACAoM,GAAAzK,KAAAoB,QAIAqJ,GAAA4Q,EAAAtc,MAAArG,EAAAkI,EAAAvF,KAAAmD,IAAAoC,EAAAlI,EAAAqE,IAAA4B,IAAAqgB,EAGA,OAAA9V,GAAAuB,EAAAzL,UAAAyL,GAGAoR,EAAAuC,WAAA,SAAAjjB,EAAAuc,GAGA,GAFA,MAAAA,MAAA,KAAA+G,EAAA,WACA,kBAAA/G,OAAAvjB,EAAA6F,OAAA0d,IACAvc,IAAAyf,IAAA,MAAAlD,EACA,OAAAvc,MAAA,GACA,IAAAyQ,GAAAvQ,KAAAC,IAAA,EAAAmjB,EAAAtjB,EAAA0gB,EAAA9c,QAAApG,OACA,iBAAAF,GACA,GAAAC,GAAAD,EAAAumB,EAAA3jB,KAAAya,MAAAiJ,EAAAtmB,IAEA,OADAC,GAAA+lB,IAAA,KAAA/lB,GAAA+lB,GACA/lB,GAAAkT,EAAA8L,EAAAjf,GAAA,KAIAojB,EAAAwC,KAAA,WACA,MAAA/e,GAAA+e,EAAA/e,KACA9D,MAAA,SAAAb,GAA0B,MAAAqkB,GAAA3jB,KAAAG,MAAAujB,EAAApkB,MAC1BmE,KAAA,SAAAnE,GAAyB,MAAAqkB,GAAA3jB,KAAAyD,KAAAigB,EAAApkB,UAIzBkhB,EAAAxE,KAAA,WACA,MAAAA,GAAAwE,EAAApgB,IAAAgjB,UAGA5C,EAGA,QAAAqD,GAAAvkB,EAAAsJ,GACA,MAAAtJ,GAAA,GAAAU,KAAAO,KAAAjB,EAAAsJ,GAAA5I,KAAAO,IAAAjB,EAAAsJ,GAGA,QAAArI,KAKA,QAAAihB,GAAA/hB,EAAAC,GACA,OAAAA,EAAAmkB,EAAAnkB,EAAAkJ,IAAAnJ,EAAAokB,EAAApkB,EAAAmJ,KACA,SAAAtJ,GAAuB,OAAAukB,EAAAvkB,EAAAsJ,GAAAnJ,GAAAC,GACvB6D,EAAA7D,GAGA,QAAAgiB,GAAAjiB,EAAAC,GAEA,MADAA,GAAAmkB,EAAAnkB,EAAAkJ,IAAAnJ,EAAAokB,EAAApkB,EAAAmJ,IACA,SAAA7C,GAAwB,MAAA8d,GAAApkB,EAAAC,EAAAqG,EAAA,EAAA6C,IAZxB,GAAAA,GAAA,EACA4X,EAAA6B,EAAAb,EAAAE,GACAzd,EAAAuc,EAAAvc,MAqBA,OARAuc,GAAA5X,SAAA,SAAAhE,GACA,MAAA7F,WAAAzB,QAAAsL,GAAAhE,EAAAX,QAAA2E,GAGA4X,EAAAxE,KAAA,WACA,MAAAA,GAAAwE,EAAAjgB,IAAAqI,cAGAka,EAAAtC,GAGA,QAAAvd,KACA,MAAA1C,KAAAqI,SAAA,IAGA,QAAAkb,KAKA,QAAAhD,KACA,GAAAzjB,GAAA,EAAAqE,EAAA1B,KAAAC,IAAA,EAAAsgB,EAAAjjB,OAEA,KADAuH,EAAA,GAAAlD,OAAAD,EAAA,KACArE,EAAAqE,GAAAmD,EAAAxH,EAAA,GAAA2iB,EAAAlb,SAAAb,EAAA5G,EAAAqE,EACA,OAAA8e,GAGA,QAAAA,GAAAlhB,GACA,IAAAwD,MAAAxD,MAAA,MAAAihB,GAAAP,EAAA3Z,OAAAxB,EAAAvF,IAZA,GAAA2E,MACAsc,KACA1b,IA2CA,OA9BA2b,GAAAuD,aAAA,SAAA7U,GACA,GAAA7R,GAAAkjB,EAAAjF,QAAApM,EACA,OAAA7R,GAAA,GAAA0D,UACA1D,EAAA,EAAAwH,EAAAxH,EAAA,GAAA4G,EAAA,GACA5G,EAAAwH,EAAAvH,OAAAuH,EAAAxH,GAAA4G,IAAA3G,OAAA,KAIAkjB,EAAAvc,OAAA,SAAAW,GACA,IAAA7F,UAAAzB,OAAA,MAAA2G,GAAAZ,OACAY,KACA,QAAA7G,GAAAC,EAAA,EAAAqE,EAAAkD,EAAAtH,OAAoCD,EAAAqE,IAAOrE,EAAAD,EAAAwH,EAAAvH,GAAA,MAAAD,GAAA0F,MAAA1F,OAAA6G,EAAAU,KAAAvH,EAE3C,OADA6G,GAAAgB,KAAA+a,EAAAzgB,WACAuhB,KAGAN,EAAAllB,MAAA,SAAAsJ,GACA,MAAA7F,WAAAzB,QAAAijB,EAAAld,EAAA7K,KAAAoM,GAAAkc,KAAAP,EAAAld,SAGAmd,EAAAwD,UAAA,WACA,MAAAnf,GAAAxB,SAGAmd,EAAAxE,KAAA,WACA,MAAA8H,KACA7f,UACA3I,MAAAilB,IAGAC,EAGA,QAAAyD,KAOA,QAAAzD,GAAAlhB,GACA,GAAAA,KAAA,MAAAihB,GAAAP,EAAA3Z,OAAApC,EAAA3E,EAAA,EAAAoC,IAGA,QAAAof,KACA,GAAAzjB,IAAA,CAEA,KADA4G,EAAA,GAAAtC,OAAAD,KACArE,EAAAqE,GAAAuC,EAAA5G,OAAA,GAAA8G,GAAA9G,EAAAqE,GAAAwC,IAAAxC,EAAA,EACA,OAAA8e,GAdA,GAAAtc,GAAA,EACAC,EAAA,EACAzC,EAAA,EACAuC,GAAA,IACAsc,GAAA,IAmCA,OAtBAC,GAAAvc,OAAA,SAAAW,GACA,MAAA7F,WAAAzB,QAAA4G,GAAAU,EAAA,GAAAT,GAAAS,EAAA,GAAAkc,MAAA5c,EAAAC,IAGAqc,EAAAllB,MAAA,SAAAsJ,GACA,MAAA7F,WAAAzB,QAAAoE,GAAA6e,EAAAld,EAAA7K,KAAAoM,IAAAtH,OAAA,EAAAwjB,KAAAP,EAAAld,SAGAmd,EAAAuD,aAAA,SAAA7U,GACA,GAAA7R,GAAAkjB,EAAAjF,QAAApM,EACA,OAAA7R,GAAA,GAAA0D,SACA1D,EAAA,GAAA6G,EAAAD,EAAA,IACA5G,GAAAqE,GAAAuC,EAAAvC,EAAA,GAAAyC,IACAF,EAAA5G,EAAA,GAAA4G,EAAA5G,KAGAmjB,EAAAxE,KAAA,WACA,MAAAiI,KACAhgB,QAAAC,EAAAC,IACA7I,MAAAilB,IAGAuC,EAAAtC,GAGA,QAAAnc,KAKA,QAAAmc,GAAAlhB,GACA,GAAAA,KAAA,MAAAihB,GAAAP,EAAA3Z,OAAApC,EAAA3E,EAAA,EAAAoC,IALA,GAAAuC,IAAA,IACAsc,GAAA,KACA7e,EAAA,CAyBA,OAnBA8e,GAAAvc,OAAA,SAAAW,GACA,MAAA7F,WAAAzB,QAAA2G,EAAAZ,EAAA7K,KAAAoM,GAAAlD,EAAA1B,KAAAmD,IAAAc,EAAA3G,OAAAijB,EAAAjjB,OAAA,GAAAkjB,GAAAvc,EAAAZ,SAGAmd,EAAAllB,MAAA,SAAAsJ,GACA,MAAA7F,WAAAzB,QAAAijB,EAAAld,EAAA7K,KAAAoM,GAAAlD,EAAA1B,KAAAmD,IAAAc,EAAA3G,OAAAijB,EAAAjjB,OAAA,GAAAkjB,GAAAD,EAAAld,SAGAmd,EAAAuD,aAAA,SAAA7U,GACA,GAAA7R,GAAAkjB,EAAAjF,QAAApM,EACA,QAAAjL,EAAA5G,EAAA,GAAA4G,EAAA5G,KAGAmjB,EAAAxE,KAAA,WACA,MAAA3X,KACAJ,UACA3I,MAAAilB,IAGAC,EAWA,QAAA0D,GAAAne,GACA,UAAAoe,MAAApe,GAGA,QAAAqe,GAAAre,GACA,MAAAA,aAAAoe,OAAApe,GAAA,GAAAoe,OAAApe,GAGA,QAAAse,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAmCA,QAAA/B,GAAAmB,GACA,OAAAU,EAAAV,KAAAa,EACAJ,EAAAT,KAAAc,EACAN,EAAAR,KAAAe,EACAR,EAAAP,KAAAgB,EACAX,EAAAL,KAAAM,EAAAN,KAAAiB,EAAAC,EACAd,EAAAJ,KAAAmB,EACAC,GAAApB,GAGA,QAAAqB,GAAAC,EAAA5lB,EAAAC,EAAAE,GAMA,GALA,MAAAylB,MAAA,IAKA,gBAAAA,GAAA,CACA,GAAAtD,GAAAliB,KAAAa,IAAAhB,EAAAD,GAAA4lB,EACAnoB,EAAA2iB,EAAAhf,SAAA,SAAA3D,GAA4C,MAAAA,GAAA,KAAe3D,MAAA+rB,EAAAvD,EAC3D7kB,KAAAooB,EAAAnoB,QACAyC,EAAAigB,EAAArf,SAAAf,EAAA8lB,GAAA7lB,EAAA6lB,GAAAF,GACAA,EAAAlB,GACOjnB,GACPA,EAAAooB,EAAAvD,EAAAuD,EAAApoB,EAAA,MAAAooB,EAAApoB,GAAA,GAAA6kB,EAAA7kB,EAAA,EAAAA,GACA0C,EAAA1C,EAAA,GACAmoB,EAAAnoB,EAAA,KAEA0C,EAAAigB,EAAArf,SAAAf,EAAAC,EAAA2lB,GACAA,EAAAX,GAIA,aAAA9kB,EAAAylB,IAAAG,MAAA5lB,GAlEA,GAAAygB,GAAA6B,EAAAf,EAAApB,EAAA+C,mBACAN,EAAAnC,EAAAmC,OACA1e,EAAAuc,EAAAvc,OAEA8gB,EAAAD,EAAA,OACAE,EAAAF,EAAA,OACAG,EAAAH,EAAA,SACAI,EAAAJ,EAAA,SACAK,EAAAL,EAAA,SACAM,EAAAN,EAAA,SACAO,EAAAP,EAAA,MACAQ,EAAAR,EAAA,MAEAW,IACAb,EAAA,EAAAgB,IACAhB,EAAA,IAAAgB,IACAhB,EAAA,MAAAgB,IACAhB,EAAA,MAAAgB,IACAjB,EAAA,EAAAkB,IACAlB,EAAA,IAAAkB,IACAlB,EAAA,MAAAkB,IACAlB,EAAA,MAAAkB,IACAnB,EAAA,EAAAoB,IACApB,EAAA,IAAAoB,IACApB,EAAA,IAAAoB,IACApB,EAAA,MAAAoB,IACArB,EAAA,EAAAsB,IACAtB,EAAA,IAAAsB,IACAvB,EAAA,EAAAwB,IACAzB,EAAA,EAAA0B,KACA1B,EAAA,IAAA0B,KACA3B,EAAA,EAAAoB,IAyEA,OAnCAlF,GAAAmC,OAAA,SAAAzT,GACA,UAAAiV,MAAAxB,EAAAzT,KAGAsR,EAAAvc,OAAA,SAAAW,GACA,MAAA7F,WAAAzB,OAAA2G,EAAA2e,EAAApqB,KAAAoM,EAAAwf,IAAAngB,IAAAX,IAAA4gB,IAGA1D,EAAA9c,MAAA,SAAA8hB,EAAAzlB,GACA,GAIAgG,GAJA3I,EAAA6G,IACAwL,EAAArS,EAAA,GACAuS,EAAAvS,IAAAE,OAAA,GACAuQ,EAAA8B,EAAAF,CAKA,OAHA5B,KAAA9H,EAAA0J,IAAAE,IAAA5J,GACAA,EAAAwf,EAAAC,EAAA/V,EAAAE,EAAA5P,GACAgG,MAAAzK,MAAAmU,EAAAE,EAAA,MACA9B,EAAA9H,EAAApC,UAAAoC,GAGAya,EAAAuC,WAAA,SAAAjjB,EAAAuc,GACA,aAAAA,EAAA0G,EAAA+B,EAAAzI,IAGAmE,EAAAwC,KAAA,SAAAwC,EAAAzlB,GACA,GAAA3C,GAAA6G,GACA,QAAAuhB,EAAAD,EAAAC,EAAApoB,EAAA,GAAAA,IAAAE,OAAA,GAAAyC,IACAkE,EAAA+e,EAAA5lB,EAAAooB,IACAhF,GAGAA,EAAAxE,KAAA,WACA,MAAAA,GAAAwE,EAAA6D,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,KAGAtE,EA0CA,QAAA0F,GAAA3F,GACA,GAAA7e,GAAA6e,EAAAjjB,MACA,iBAAAyI,GACA,MAAAwa,GAAAvgB,KAAAC,IAAA,EAAAD,KAAAmD,IAAAzB,EAAA,EAAA1B,KAAAG,MAAA4F,EAAArE,OAYA,QAAAykB,GAAAC,GAKA,QAAA5F,GAAAlhB,GACA,GAAAyG,IAAAzG,EAAA4E,IAAAC,EAAAD,EACA,OAAAkiB,GAAAhE,EAAApiB,KAAAC,IAAA,EAAAD,KAAAmD,IAAA,EAAA4C,OANA,GAAA7B,GAAA,EACAC,EAAA,EACAie,GAAA,CAuBA,OAhBA5B,GAAAvc,OAAA,SAAAW,GACA,MAAA7F,WAAAzB,QAAA4G,GAAAU,EAAA,GAAAT,GAAAS,EAAA,GAAA4b,IAAAtc,EAAAC,IAGAqc,EAAA4B,MAAA,SAAAxd,GACA,MAAA7F,WAAAzB,QAAA8kB,IAAAxd,EAAA4b,GAAA4B,GAGA5B,EAAA4F,aAAA,SAAAxhB,GACA,MAAA7F,WAAAzB,QAAA8oB,EAAAxhB,EAAA4b,GAAA4F,GAGA5F,EAAAxE,KAAA,WACA,MAAAmK,GAAAC,GAAAniB,QAAAC,EAAAC,IAAAie,UAGAU,EAAAtC,GAp3BA,GAAA/e,GAAAE,MAAAyB,UAEAwf,EAAAnhB,EAAA6B,IACAD,EAAA5B,EAAA4B,MAEAsd,GAAgBzkB,KAAA,YA+IhBqH,EAAA,SAAAjE,GACA,kBACA,MAAAA,KAIAiD,EAAA,SAAAjD,GACA,OAAAA,GAGAojB,GAAA,KA4GAK,EAAA,SAAA9e,EAAAnE,EAAAuc,GACA,GAGAU,GAHAnd,EAAAqE,EAAA,GACApE,EAAAoE,IAAA3G,OAAA,GACAyC,EAAAigB,EAAArf,SAAAf,EAAAC,EAAA,MAAAC,EAAA,GAAAA,EAGA,QADAuc,EAAAvjB,EAAAsjB,gBAAA,MAAAC,EAAA,KAAAA,GACAA,EAAAd,MACA,QACA,GAAA7Y,GAAA1C,KAAAC,IAAAD,KAAAa,IAAAjB,GAAAI,KAAAa,IAAAhB,GAEA,OADA,OAAAwc,EAAAU,WAAAja,MAAAia,EAAAjkB,EAAA+mB,gBAAA9f,EAAA2C,MAAA2Z,EAAAU,aACAjkB,EAAAskB,aAAAf,EAAA3Z,EAEA,QACA,QACA,QACA,QACA,QACA,MAAA2Z,EAAAU,WAAAja,MAAAia,EAAAjkB,EAAAgnB,eAAA/f,EAAAC,KAAAC,IAAAD,KAAAa,IAAAjB,GAAAI,KAAAa,IAAAhB,QAAAwc,EAAAU,aAAA,MAAAV,EAAAd,MACA,MAEA,SACA,QACA,MAAAc,EAAAU,WAAAja,MAAAia,EAAAjkB,EAAA8mB,eAAA7f,MAAAsc,EAAAU,YAAA,SAAAV,EAAAd,OAIA,MAAAziB,GAAA6F,OAAA0d,IAwFA2G,EAAA,SAAA/e,EAAAuhB,GACAvhB,IAAAZ,OAEA,IAIA0C,GAJA/D,EAAA,EACAC,EAAAgC,EAAA3G,OAAA,EACA4G,EAAAD,EAAAjC,GACAmC,EAAAF,EAAAhC,EAUA,OAPAkC,GAAAD,IACA6B,EAAA/D,IAAAC,IAAA8D,EACAA,EAAA7B,IAAAC,IAAA4B,GAGA9B,EAAAjC,GAAAwjB,EAAArlB,MAAA+D,GACAD,EAAAhC,GAAAujB,EAAA/hB,KAAAU,GACAF,GA4RA2hB,EAAA,IACAC,EAAA,GAAAD,EACAE,EAAA,GAAAD,EACAE,EAAA,GAAAD,EACAE,EAAA,EAAAD,EACAE,GAAA,GAAAF,EACAL,GAAA,IAAAK,EAsHAM,GAAA,WACA,MAAAhC,GAAAlE,EAAAmG,SAAAnG,EAAAoG,UAAApG,EAAAqG,SAAArG,EAAAsG,QAAAtG,EAAAuG,SAAAvG,EAAAwG,WAAAxG,EAAAyG,WAAAzG,EAAA0G,gBAAAzG,EAAA0G,YAAA7iB,QAAA,GAAAkgB,MAAA,YAAAA,MAAA,YAGA4C,GAAA,WACA,MAAA1C,GAAAlE,EAAA6G,QAAA7G,EAAA8G,SAAA9G,EAAA+G,QAAA/G,EAAAgH,OAAAhH,EAAAiH,QAAAjH,EAAAkH,UAAAlH,EAAAmH,UAAAnH,EAAAoH,eAAAnH,EAAAoH,WAAAvjB,QAAAkgB,KAAAsD,IAAA,SAAAtD,KAAAsD,IAAA,YAGAC,GAAA,SAAAre,GACA,MAAAA,GAAAkT,MAAA,SAAsBjZ,IAAA,SAAAhE,GACtB,UAAAA,KAIAqoB,GAAAD,GAAA,gEAEAE,GAAAF,GAAA,4HAEAG,GAAAH,GAAA,4HAEAI,GAAAJ,GAAA,4HAEAK,GAAA7H,EAAA8H,yBAAA3H,EAAA1P,UAAA,UAAA0P,EAAA1P,WAAA,WAEAsX,GAAA/H,EAAA8H,yBAAA3H,EAAA1P,WAAA,aAAA0P,EAAA1P,UAAA,YAEAuX,GAAAhI,EAAA8H,yBAAA3H,EAAA1P,UAAA,aAAA0P,EAAA1P,UAAA,YAEAwX,GAAA9H,EAAA1P,YAEAyX,GAAA,SAAAriB,IACAA,EAAA,GAAAA,EAAA,KAAAA,GAAA/F,KAAAG,MAAA4F,GACA,IAAAsiB,GAAAroB,KAAAa,IAAAkF,EAAA,GAIA,OAHAoiB,IAAAha,EAAA,IAAApI,EAAA,IACAoiB,GAAA9e,EAAA,QAAAgf,EACAF,GAAA/Z,EAAA,MAAAia,EACAF,GAAA,IAUAG,GAAApC,EAAAwB,GAAA,qgDAEAa,GAAArC,EAAAwB,GAAA,qgDAEAc,GAAAtC,EAAAwB,GAAA,qgDAEAe,GAAAvC,EAAAwB,GAAA,ogDA+BA7vB,GAAA6wB,UAAA7H,EACAhpB,EAAA8wB,WAAAtH,EACAxpB,EAAA+wB,cAAAplB,EACA3L,EAAAgxB,YAAAliB,EACA9O,EAAAixB,SAAA1oB,EACAvI,EAAAwD,aAAAilB,EACAzoB,EAAAkxB,cAAApI,EACA9oB,EAAAmxB,SAAAzoB,EACA1I,EAAAoxB,UAAAhmB,EACApL,EAAAqxB,cAAApF,EACAjsB,EAAAsxB,cAAAlF,EACApsB,EAAAuxB,eAAA/kB,EACAxM,EAAAwxB,UAAAhD,GACAxuB,EAAAyxB,SAAAvC,GACAlvB,EAAA0xB,iBAAA5B,GACA9vB,EAAA2xB,kBAAA5B,GACA/vB,EAAA4xB,kBAAA5B,GACAhwB,EAAA6xB,iBAAA5B,GACAjwB,EAAA8xB,4BAAA5B,GACAlwB,EAAA+xB,mBAAAxB,GACAvwB,EAAAgyB,gBAAA5B,GACApwB,EAAAiyB,gBAAA5B,GACArwB,EAAAkyB,mBAAAzB,GACAzwB,EAAAmyB,iBAAAzB,GACA1wB,EAAAoyB,mBAAAzB,GACA3wB,EAAAqyB,kBAAAzB,GACA5wB,EAAAsyB,gBAAAhE,EAEA1f,OAAAC,eAAA7O,EAAA,cAA8C6K,OAAA,ORsxExC,SAAU5K,EAAQD,EAASM,IS/qGjC,SAAAgH,EAAAvH,GACAA,EAAAC,IAGCI,KAAA,SAAAJ,GAA4B,YAI7B,SAAAuyB,MAkDA,QAAA9mB,GAAA+mB,EAAAhrB,GACA,GAAAiE,GAAA,GAAA8mB,EAGA,IAAAC,YAAAD,GAAAC,EAAAjxB,KAAA,SAAAsJ,EAAA8J,GAA+DlJ,EAAAmY,IAAAjP,EAAA9J,SAG/D,IAAAf,MAAA2C,QAAA+lB,GAAA,CACA,GAEArc,GAFA3Q,GAAA,EACAqE,EAAA2oB,EAAA/sB,MAGA,UAAA+B,EAAA,OAAAhC,EAAAqE,GAAA4B,EAAAmY,IAAApe,EAAAgtB,EAAAhtB,QACA,QAAAA,EAAAqE,GAAA4B,EAAAmY,IAAApc,EAAA2O,EAAAqc,EAAAhtB,KAAAgtB,GAAArc,OAIA,IAAAqc,EAAA,OAAA7d,KAAA6d,GAAA/mB,EAAAmY,IAAAjP,EAAA6d,EAAA7d,GAEA,OAAAlJ,GA2DA,QAAAgnB,KACA,SAGA,QAAAC,GAAAF,EAAA7d,EAAA9J,GACA2nB,EAAA7d,GAAA9J,EAGA,QAAA8nB,KACA,MAAAlnB,KAGA,QAAAmnB,GAAAC,EAAAle,EAAA9J,GACAgoB,EAAAjP,IAAAjP,EAAA9J,GAGA,QAAAioB,MAoBA,QAAAlP,GAAA4O,EAAAhrB,GACA,GAAAoc,GAAA,GAAAkP,EAGA,IAAAN,YAAAM,GAAAN,EAAAjxB,KAAA,SAAAsJ,GAA0D+Y,EAAAmP,IAAAloB,SAG1D,IAAA2nB,EAAA,CACA,GAAAhtB,IAAA,EAAAqE,EAAA2oB,EAAA/sB,MACA,UAAA+B,EAAA,OAAAhC,EAAAqE,GAAA+Z,EAAAmP,IAAAP,EAAAhtB,QACA,QAAAA,EAAAqE,GAAA+Z,EAAAmP,IAAAvrB,EAAAgrB,EAAAhtB,KAAAgtB,IAGA,MAAA5O,GAnLA,GAAAqD,GAAA,GAIAsL,GAAAhnB,UAAAE,EAAAF,WACAwN,YAAAwZ,EACAxJ,IAAA,SAAApU,GACA,MAAAsS,GAAAtS,IAAAvU,OAEAujB,IAAA,SAAAhP,GACA,MAAAvU,MAAA6mB,EAAAtS,IAEAiP,IAAA,SAAAjP,EAAA9J,GAEA,MADAzK,MAAA6mB,EAAAtS,GAAA9J,EACAzK,MAEAkF,OAAA,SAAAqP,GACA,GAAAqe,GAAA/L,EAAAtS,CACA,OAAAqe,KAAA5yB,mBAAA4yB,IAEAC,MAAA,WACA,OAAAD,KAAA5yB,MAAA4yB,EAAA,KAAA/L,SAAA7mB,MAAA4yB,IAEAE,KAAA,WACA,GAAAA,KACA,QAAAF,KAAA5yB,MAAA4yB,EAAA,KAAA/L,GAAAiM,EAAApmB,KAAAkmB,EAAAxnB,MAAA,GACA,OAAA0nB,IAEA1oB,OAAA,WACA,GAAAA,KACA,QAAAwoB,KAAA5yB,MAAA4yB,EAAA,KAAA/L,GAAAzc,EAAAsC,KAAA1M,KAAA4yB,GACA,OAAAxoB,IAEAvG,QAAA,WACA,GAAAA,KACA,QAAA+uB,KAAA5yB,MAAA4yB,EAAA,KAAA/L,GAAAhjB,EAAA6I,MAAyE6H,IAAAqe,EAAAxnB,MAAA,GAAAX,MAAAzK,KAAA4yB,IACzE,OAAA/uB,IAEAkC,KAAA,WACA,GAAAA,GAAA,CACA,QAAA6sB,KAAA5yB,MAAA4yB,EAAA,KAAA/L,KAAA9gB,CACA,OAAAA,IAEAgtB,MAAA,WACA,OAAAH,KAAA5yB,MAAA,GAAA4yB,EAAA,KAAA/L,EAAA,QACA,WAEA1lB,KAAA,SAAAiG,GACA,OAAAwrB,KAAA5yB,MAAA4yB,EAAA,KAAA/L,GAAAzf,EAAApH,KAAA4yB,KAAAxnB,MAAA,GAAApL,OA0BA,IAAAgzB,GAAA,WAOA,QAAA9O,GAAA1a,EAAAypB,EAAAC,EAAAC,GACA,GAAAF,GAAAH,EAAAztB,OAEA,MADA,OAAA+tB,GAAA5pB,EAAAwD,KAAAomB,GACA,MAAAC,IAAA7pB,IAYA,KATA,GAGA8pB,GACA7oB,EAEAL,EANAhF,GAAA,EACAqE,EAAAD,EAAAnE,OACAkP,EAAAue,EAAAG,KAGAM,EAAAloB,IAEAmoB,EAAAN,MAEA9tB,EAAAqE,IACAW,EAAAmpB,EAAAhQ,IAAA+P,EAAA/e,EAAA9J,EAAAjB,EAAApE,IAAA,KACAgF,EAAAsC,KAAAjC,GAEA8oB,EAAA/P,IAAA8P,GAAA7oB,GAQA,OAJA8oB,GAAApyB,KAAA,SAAAiJ,EAAAmK,GACA4e,EAAAK,EAAAjf,EAAA2P,EAAA9Z,EAAA6oB,EAAAC,EAAAC,MAGAK,EAGA,QAAA3vB,GAAA4uB,EAAAQ,GACA,KAAAA,EAAAH,EAAAztB,OAAA,MAAAotB,EACA,IAAAjpB,GAAAiqB,EAAAC,EAAAT,EAAA,EAGA,OAFA,OAAAI,GAAAJ,GAAAH,EAAAztB,OAAAmE,EAAAipB,EAAA5uB,WACA2F,KAAAipB,EAAAtxB,KAAA,SAAA4J,EAAAuN,GAAiD9O,EAAAkD,MAAa6H,IAAA+D,EAAAlO,OAAAvG,EAAAkH,EAAAkoB,QAC9D,MAAAQ,EAAAjqB,EAAAwD,KAAA,SAAAxF,EAAAC,GAAwD,MAAAgsB,GAAAjsB,EAAA+M,IAAA9M,EAAA8M,OAAgC/K,EAzCxF,GAEA4pB,GACAC,EACAL,EAJAF,KACAY,IA2CA,OAAAV,IACAZ,OAAA,SAAA5oB,GAA6B,MAAA0a,GAAA1a,EAAA,EAAA6oB,EAAAC,IAC7BjnB,IAAA,SAAA7B,GAA0B,MAAA0a,GAAA1a,EAAA,EAAA+oB,EAAAC,IAC1B3uB,QAAA,SAAA2F,GAA8B,MAAA3F,GAAAqgB,EAAA1a,EAAA,EAAA+oB,EAAAC,GAAA,IAC9Bje,IAAA,SAAApP,GAAoC,MAAd2tB,GAAApmB,KAAAvH,GAAc6tB,GACpCU,SAAA,SAAAC,GAAkE,MAAnCD,GAAAZ,EAAAztB,OAAA,GAAAsuB,EAAmCX,GAClEI,WAAA,SAAAO,GAAqD,MAApBP,GAAAO,EAAoBX,GACrDK,OAAA,SAAAjsB,GAAqC,MAAZisB,GAAAjsB,EAAY4rB,KAsBrCY,EAAAvoB,EAAAF,SAEAunB,GAAAvnB,UAAAqY,EAAArY,WACAwN,YAAA+Z,EACA/J,IAAAiL,EAAAjL,IACAgK,IAAA,SAAAloB,GAGA,MAFAA,IAAA,GACAzK,KAAA6mB,EAAApc,KACAzK,MAEAkF,OAAA0uB,EAAA1uB,OACA2tB,MAAAe,EAAAf,MACAzoB,OAAAwpB,EAAAd,KACA/sB,KAAA6tB,EAAA7tB,KACAgtB,MAAAa,EAAAb,MACA5xB,KAAAyyB,EAAAzyB,KAmBA,IAAA2xB,GAAA,SAAAznB,GACA,GAAAynB,KACA,QAAAve,KAAAlJ,GAAAynB,EAAApmB,KAAA6H,EACA,OAAAue,IAGA1oB,EAAA,SAAAiB,GACA,GAAAjB,KACA,QAAAmK,KAAAlJ,GAAAjB,EAAAsC,KAAArB,EAAAkJ,GACA,OAAAnK,IAGAvG,EAAA,SAAAwH,GACA,GAAAxH,KACA,QAAA0Q,KAAAlJ,GAAAxH,EAAA6I,MAAqC6H,MAAA9J,MAAAY,EAAAkJ,IACrC,OAAA1Q,GAGAjE,GAAAozB,OACApzB,EAAA4jB,MACA5jB,EAAAyL,MACAzL,EAAAkzB,OACAlzB,EAAAwK,SACAxK,EAAAiE,UAEA2K,OAAAC,eAAA7O,EAAA,cAA8C6K,OAAA,OTyrGxC,SAAU5K,EAAQD,EAASM,IU94GjC,SAAAgH,EAAAvH,GACAA,EAAAC,EAAAM,EAAA,KAGCF,KAAA,SAAAJ,EAAAwoB,GAAoC,YAErC,SAAAyL,GAAAnc,EAAAoc,EAAAC,EAAAC,EAAAC,GACA,GAAA1c,GAAAG,IAAAJ,EAAAC,EAAAG,CACA,aAAAA,EAAA,EAAAH,EAAAD,GAAAwc,GACA,IAAAvc,EAAA,EAAAD,GAAAyc,GACA,IAAArc,EAAA,EAAAH,EAAA,EAAAD,GAAA0c,EACA1c,EAAA2c,GAAA,EAiCA,QAAAvlB,GAAAlH,EAAArC,GACA,gBAAA2I,GACA,MAAAtG,GAAAsG,EAAA3I,GAIA,QAAA+uB,GAAA1sB,EAAAC,EAAAwP,GACA,MAAAzP,GAAAO,KAAAO,IAAAd,EAAAyP,GAAAxP,EAAAM,KAAAO,IAAAb,EAAAwP,GAAAzP,EAAAyP,EAAA,EAAAA,EAAA,SAAAnJ,GACA,MAAA/F,MAAAO,IAAAd,EAAAsG,EAAArG,EAAAwP,IAIA,QAAAkd,GAAA3sB,EAAAC,GACA,GAAAtC,GAAAsC,EAAAD,CACA,OAAArC,GAAAuJ,EAAAlH,EAAArC,EAAA,KAAAA,GAAA,IAAAA,EAAA,IAAA4C,KAAAya,MAAArd,EAAA,KAAAA,GAAAmG,EAAAT,MAAArD,GAAAC,EAAAD,GAGA,QAAA4sB,GAAAnd,GACA,YAAAA,MAAAod,EAAA,SAAA7sB,EAAAC,GACA,MAAAA,GAAAD,EAAA0sB,EAAA1sB,EAAAC,EAAAwP,GAAA3L,EAAAT,MAAArD,GAAAC,EAAAD,IAIA,QAAA6sB,GAAA7sB,EAAAC,GACA,GAAAtC,GAAAsC,EAAAD,CACA,OAAArC,GAAAuJ,EAAAlH,EAAArC,GAAAmG,EAAAT,MAAArD,GAAAC,EAAAD,GAyBA,QAAA8sB,GAAAC,GACA,gBAAA9E,GACA,GAIArqB,GAAAovB,EAJA/qB,EAAAgmB,EAAApqB,OACAuQ,EAAA,GAAAlM,OAAAD,GACAoM,EAAA,GAAAnM,OAAAD,GACAhC,EAAA,GAAAiC,OAAAD,EAEA,KAAArE,EAAA,EAAeA,EAAAqE,IAAOrE,EACtBovB,EAAApM,EAAApS,IAAAyZ,EAAArqB,IACAwQ,EAAAxQ,GAAAovB,EAAA5e,GAAA,EACAC,EAAAzQ,GAAAovB,EAAA3e,GAAA,EACApO,EAAArC,GAAAovB,EAAA/sB,GAAA,CAMA,OAJAmO,GAAA2e,EAAA3e,GACAC,EAAA0e,EAAA1e,GACApO,EAAA8sB,EAAA9sB,GACA+sB,EAAAve,QAAA,EACA,SAAAnI,GAIA,MAHA0mB,GAAA5e,IAAA9H,GACA0mB,EAAA3e,IAAA/H,GACA0mB,EAAA/sB,IAAAqG,GACA0mB,EAAA,KA8DA,QAAA5P,GAAAnd,GACA,kBACA,MAAAA,IAIA,QAAAgtB,GAAAhtB,GACA,gBAAAqG,GACA,MAAArG,GAAAqG,GAAA,IAsGA,QAAA4mB,GAAAjqB,GACA,eAAAA,EAAAc,GACAopB,MAAAC,SAAAC,cAAA,OAAAC,EAAAF,SAAAG,gBAAAC,EAAAJ,SAAAK,aACAN,EAAAhwB,MAAAuwB,UAAAzqB,EACAA,EAAAuqB,EAAAG,iBAAAL,EAAAM,YAAAT,GAAA,MAAAU,iBAAA,aACAP,EAAAQ,YAAAX,GACAlqB,IAAAW,MAAA,MAAAgY,MAAA,KACAmS,GAAA9qB,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,KAGA,QAAA+qB,GAAA/qB,GACA,aAAAA,EAAAc,GACAkqB,MAAAb,SAAAc,gBAAA,mCACAD,EAAAE,aAAA,YAAAlrB,IACAA,EAAAgrB,EAAAP,UAAAU,QAAAC,gBACAprB,IAAAwD,OACAsnB,EAAA9qB,EAAAjD,EAAAiD,EAAAhD,EAAAgD,EAAAhK,EAAAgK,EAAAtF,EAAAsF,EAAAqG,EAAArG,EAAArD,IAFAmE,GAKA,QAAAuqB,GAAAC,EAAAC,EAAAC,EAAAC,GAEA,QAAA3pB,GAAA6E,GACA,MAAAA,GAAA/L,OAAA+L,EAAA7E,MAAA,OAGA,QAAA4pB,GAAAC,EAAAC,EAAAC,EAAAC,EAAAnlB,EAAAolB,GACA,GAAAJ,IAAAE,GAAAD,IAAAE,EAAA,CACA,GAAAnxB,GAAAgM,EAAA1E,KAAA,kBAAAspB,EAAA,KAAAC,EACAO,GAAA9pB,MAActH,IAAA,EAAAiC,EAAAiD,EAAA8rB,EAAAE,KAA+BlxB,IAAA,EAAAiC,EAAAiD,EAAA+rB,EAAAE,UACxCD,GAAAC,IACLnlB,EAAA1E,KAAA,aAAA4pB,EAAAN,EAAAO,EAAAN,GAIA,QAAAQ,GAAAjvB,EAAAC,EAAA2J,EAAAolB,GACAhvB,IAAAC,GACAD,EAAAC,EAAA,IAAAA,GAAA,IAAgCA,EAAAD,EAAA,MAAAA,GAAA,KAChCgvB,EAAA9pB,MAActH,EAAAgM,EAAA1E,KAAAH,EAAA6E,GAAA,eAAA8kB,GAAA,EAAA7uB,EAAAiD,EAAA9C,EAAAC,MACTA,GACL2J,EAAA1E,KAAAH,EAAA6E,GAAA,UAAA3J,EAAAyuB,GAIA,QAAAQ,GAAAlvB,EAAAC,EAAA2J,EAAAolB,GACAhvB,IAAAC,EACA+uB,EAAA9pB,MAActH,EAAAgM,EAAA1E,KAAAH,EAAA6E,GAAA,cAAA8kB,GAAA,EAAA7uB,EAAAiD,EAAA9C,EAAAC,KACTA,GACL2J,EAAA1E,KAAAH,EAAA6E,GAAA,SAAA3J,EAAAyuB,GAIA,QAAA3N,GAAA6N,EAAAC,EAAAC,EAAAC,EAAAnlB,EAAAolB,GACA,GAAAJ,IAAAE,GAAAD,IAAAE,EAAA,CACA,GAAAnxB,GAAAgM,EAAA1E,KAAAH,EAAA6E,GAAA,2BACAolB,GAAA9pB,MAActH,IAAA,EAAAiC,EAAAiD,EAAA8rB,EAAAE,KAA+BlxB,IAAA,EAAAiC,EAAAiD,EAAA+rB,EAAAE,SACxC,KAAAD,GAAA,IAAAC,GACLnlB,EAAA1E,KAAAH,EAAA6E,GAAA,SAAAklB,EAAA,IAAAC,EAAA,KAIA,gBAAA/uB,EAAAC,GACA,GAAA2J,MACAolB,IAOA,OANAhvB,GAAAuuB,EAAAvuB,GAAAC,EAAAsuB,EAAAtuB,GACA0uB,EAAA3uB,EAAAmvB,WAAAnvB,EAAAovB,WAAAnvB,EAAAkvB,WAAAlvB,EAAAmvB,WAAAxlB,EAAAolB,GACAC,EAAAjvB,EAAAivB,OAAAhvB,EAAAgvB,OAAArlB,EAAAolB,GACAE,EAAAlvB,EAAAkvB,MAAAjvB,EAAAivB,MAAAtlB,EAAAolB,GACAjO,EAAA/gB,EAAAqvB,OAAArvB,EAAAsvB,OAAArvB,EAAAovB,OAAApvB,EAAAqvB,OAAA1lB,EAAAolB,GACAhvB,EAAAC,EAAA,KACA,SAAAqG,GAEA,IADA,GAAAiI,GAAA3Q,GAAA,EAAAqE,EAAA+sB,EAAAnxB,SACAD,EAAAqE,GAAA2H,GAAA2E,EAAAygB,EAAApxB,OAAA2Q,EAAA1O,EAAAyG,EACA,OAAAsD,GAAAwU,KAAA,MAaA,QAAAhD,GAAAvb,GACA,QAAAA,EAAAU,KAAAqjB,IAAA/jB,IAAA,EAAAA,GAAA,EAGA,QAAAwb,GAAAxb,GACA,QAAAA,EAAAU,KAAAqjB,IAAA/jB,IAAA,EAAAA,GAAA,EAGA,QAAA0vB,GAAA1vB,GACA,QAAAA,EAAAU,KAAAqjB,IAAA,EAAA/jB,IAAA,IAAAA,EAAA,GAmDA,QAAA2vB,GAAAC,GACA,gBAAAtvB,EAAAuvB,GACA,GAAAhhB,GAAA+gB,GAAAtvB,EAAAygB,EAAA9R,IAAA3O,IAAAuO,GAAAghB,EAAA9O,EAAA9R,IAAA4gB,IAAAhhB,GACA9E,EAAAijB,EAAA1sB,EAAAyJ,EAAA8lB,EAAA9lB,GACA+E,EAAAke,EAAA1sB,EAAAwO,EAAA+gB,EAAA/gB,GACAF,EAAAoe,EAAA1sB,EAAAsO,QAAAihB,EAAAjhB,QACA,iBAAAnI,GAKA,MAJAnG,GAAAuO,IAAApI,GACAnG,EAAAyJ,IAAAtD,GACAnG,EAAAwO,IAAArI,GACAnG,EAAAsO,UAAAnI,GACAnG,EAAA,KAQA,QAAAwvB,GAAAxvB,EAAAuvB,GACA,GAAA/gB,GAAAke,GAAA1sB,EAAAygB,EAAA/Q,IAAA1P,IAAAwO,GAAA+gB,EAAA9O,EAAA/Q,IAAA6f,IAAA/gB,GACA3O,EAAA6sB,EAAA1sB,EAAAH,EAAA0vB,EAAA1vB,GACAC,EAAA4sB,EAAA1sB,EAAAF,EAAAyvB,EAAAzvB,GACAwO,EAAAoe,EAAA1sB,EAAAsO,QAAAihB,EAAAjhB,QACA,iBAAAnI,GAKA,MAJAnG,GAAAwO,IAAArI,GACAnG,EAAAH,IAAAsG,GACAnG,EAAAF,IAAAqG,GACAnG,EAAAsO,UAAAnI,GACAnG,EAAA,IAIA,QAAAyvB,GAAAH,GACA,gBAAAtvB,EAAAuvB,GACA,GAAAhhB,GAAA+gB,GAAAtvB,EAAAygB,EAAArQ,IAAApQ,IAAAuO,GAAAghB,EAAA9O,EAAArQ,IAAAmf,IAAAhhB,GACAzV,EAAA4zB,EAAA1sB,EAAAlH,EAAAy2B,EAAAz2B,GACA0V,EAAAke,EAAA1sB,EAAAwO,EAAA+gB,EAAA/gB,GACAF,EAAAoe,EAAA1sB,EAAAsO,QAAAihB,EAAAjhB,QACA,iBAAAnI,GAKA,MAJAnG,GAAAuO,IAAApI,GACAnG,EAAAlH,IAAAqN,GACAnG,EAAAwO,IAAArI,GACAnG,EAAAsO,UAAAnI,GACAnG,EAAA,KAQA,QAAAmoB,GAAAmH,GACA,eAAAI,GAAApgB,GAGA,QAAAqgB,GAAA3vB,EAAAuvB,GACA,GAAAhhB,GAAA+gB,GAAAtvB,EAAAygB,EAAA1P,UAAA/Q,IAAAuO,GAAAghB,EAAA9O,EAAA1P,UAAAwe,IAAAhhB,GACA9E,EAAAijB,EAAA1sB,EAAAyJ,EAAA8lB,EAAA9lB,GACA+E,EAAAke,EAAA1sB,EAAAwO,EAAA+gB,EAAA/gB,GACAF,EAAAoe,EAAA1sB,EAAAsO,QAAAihB,EAAAjhB,QACA,iBAAAnI,GAKA,MAJAnG,GAAAuO,IAAApI,GACAnG,EAAAyJ,IAAAtD,GACAnG,EAAAwO,IAAApO,KAAAO,IAAAwF,EAAAmJ,IACAtP,EAAAsO,UAAAnI,GACAnG,EAAA,IAMA,MAlBAsP,MAgBAqgB,EAAAlD,MAAAiD,EAEAC,GACG,GA3eH,GA4QA3C,GACAG,EACAE,EACAS,EA/QA8B,EAAA,SAAAntB,GACA,GAAAX,GAAAW,EAAA/E,OAAA,CACA,iBAAAyI,GACA,GAAA1I,GAAA0I,GAAA,EAAAA,EAAA,EAAAA,GAAA,GAAAA,EAAA,EAAArE,EAAA,GAAA1B,KAAAG,MAAA4F,EAAArE,GACAsqB,EAAA3pB,EAAAhF,GACA4uB,EAAA5pB,EAAAhF,EAAA,GACA0uB,EAAA1uB,EAAA,EAAAgF,EAAAhF,EAAA,KAAA2uB,EAAAC,EACAC,EAAA7uB,EAAAqE,EAAA,EAAAW,EAAAhF,EAAA,KAAA4uB,EAAAD,CACA,OAAAF,IAAA/lB,EAAA1I,EAAAqE,KAAAqqB,EAAAC,EAAAC,EAAAC,KAIAuD,EAAA,SAAAptB,GACA,GAAAX,GAAAW,EAAA/E,MACA,iBAAAyI,GACA,GAAA1I,GAAA2C,KAAAG,QAAA4F,GAAA,OAAAA,KAAArE,GACAqqB,EAAA1pB,GAAAhF,EAAAqE,EAAA,GAAAA,GACAsqB,EAAA3pB,EAAAhF,EAAAqE,GACAuqB,EAAA5pB,GAAAhF,EAAA,GAAAqE,GACAwqB,EAAA7pB,GAAAhF,EAAA,GAAAqE,EACA,OAAAoqB,IAAA/lB,EAAA1I,EAAAqE,KAAAqqB,EAAAC,EAAAC,EAAAC,KAIA3oB,EAAA,SAAAjE,GACA,kBACA,MAAAA,KAgCAowB,EAAA,QAAAC,GAAAzgB,GAGA,QAAA0gB,GAAAhwB,EAAAuvB,GACA,GAAAthB,GAAA4e,GAAA7sB,EAAAygB,EAAApS,IAAArO,IAAAiO,GAAAshB,EAAA9O,EAAApS,IAAAkhB,IAAAthB,GACAC,EAAA2e,EAAA7sB,EAAAkO,EAAAqhB,EAAArhB,GACApO,EAAA+sB,EAAA7sB,EAAAF,EAAAyvB,EAAAzvB,GACAwO,EAAAoe,EAAA1sB,EAAAsO,QAAAihB,EAAAjhB,QACA,iBAAAnI,GAKA,MAJAnG,GAAAiO,IAAA9H,GACAnG,EAAAkO,IAAA/H,GACAnG,EAAAF,IAAAqG,GACAnG,EAAAsO,UAAAnI,GACAnG,EAAA,IAZA,GAAA6sB,GAAAJ,EAAAnd,EAkBA,OAFA0gB,GAAAvD,MAAAsD,EAEAC,GACC,GA4BDC,EAAAtD,EAAAiD,GACAM,EAAAvD,EAAAkD,GAEAhuB,EAAA,SAAAhC,EAAAC,GACA,GAIArC,GAJA0yB,EAAArwB,IAAApC,OAAA,EACA0yB,EAAAvwB,EAAAO,KAAAmD,IAAA4sB,EAAAtwB,EAAAnC,QAAA,EACAgC,EAAA,GAAAqC,OAAAouB,GACAr3B,EAAA,GAAAiJ,OAAAouB,EAGA,KAAA1yB,EAAA,EAAaA,EAAA2yB,IAAQ3yB,EAAAiC,EAAAjC,GAAAqF,EAAAjD,EAAApC,GAAAqC,EAAArC,GACrB,MAAQA,EAAA0yB,IAAQ1yB,EAAA3E,EAAA2E,GAAAqC,EAAArC,EAEhB,iBAAA0I,GACA,IAAA1I,EAAA,EAAeA,EAAA2yB,IAAQ3yB,EAAA3E,EAAA2E,GAAAiC,EAAAjC,GAAA0I,EACvB,OAAArN,KAIAwrB,EAAA,SAAAzkB,EAAAC,GACA,GAAAtC,GAAA,GAAA+mB,KACA,OAAA1kB,MAAAC,GAAAD,EAAA,SAAAsG,GACA,MAAA3I,GAAA6yB,QAAAxwB,EAAAC,EAAAqG,GAAA3I,IAIAmF,EAAA,SAAA9C,EAAAC,GACA,MAAAD,MAAAC,GAAAD,EAAA,SAAAsG,GACA,MAAAtG,GAAAC,EAAAqG,IAIAskB,EAAA,SAAA5qB,EAAAC,GACA,GAEA6Q,GAFAlT,KACA3E,IAGA,QAAA+G,GAAA,gBAAAA,WACA,OAAAC,GAAA,gBAAAA,UAEA,KAAA6Q,IAAA7Q,GACA6Q,IAAA9Q,GACApC,EAAAkT,GAAA7N,EAAAjD,EAAA8Q,GAAA7Q,EAAA6Q,IAEA7X,EAAA6X,GAAA7Q,EAAA6Q,EAIA,iBAAAxK,GACA,IAAAwK,IAAAlT,GAAA3E,EAAA6X,GAAAlT,EAAAkT,GAAAxK,EACA,OAAArN,KAIAw3B,EAAA,8CACAC,EAAA,GAAAjf,QAAAgf,EAAAjO,OAAA,KAcAmO,EAAA,SAAA3wB,EAAAC,GACA,GACA2wB,GACAC,EACAC,EAHAC,EAAAN,EAAAO,UAAAN,EAAAM,UAAA,EAIApzB,GAAA,EACAgM,KACAolB,IAMA,KAHAhvB,GAAA,GAAAC,GAAA,IAGA2wB,EAAAH,EAAApjB,KAAArN,MACA6wB,EAAAH,EAAArjB,KAAApN,MACA6wB,EAAAD,EAAA7P,OAAA+P,IACAD,EAAA7wB,EAAA2D,MAAAmtB,EAAAD,GACAlnB,EAAAhM,GAAAgM,EAAAhM,IAAAkzB,EACAlnB,IAAAhM,GAAAkzB,IAEAF,IAAA,OAAAC,IAAA,IACAjnB,EAAAhM,GAAAgM,EAAAhM,IAAAizB,EACAjnB,IAAAhM,GAAAizB,GAEAjnB,IAAAhM,GAAA,KACAoxB,EAAA9pB,MAActH,IAAAiC,EAAAiD,EAAA8tB,EAAAC,MAEdE,EAAAL,EAAAM,SAYA,OARAD,GAAA9wB,EAAApC,SACAizB,EAAA7wB,EAAA2D,MAAAmtB,GACAnnB,EAAAhM,GAAAgM,EAAAhM,IAAAkzB,EACAlnB,IAAAhM,GAAAkzB,GAKAlnB,EAAA/L,OAAA,EAAAmxB,EAAA,GACA/B,EAAA+B,EAAA,GAAAnvB,GACAud,EAAAnd,IACAA,EAAA+uB,EAAAnxB,OAAA,SAAAyI,GACA,OAAAiI,GAAA3Q,EAAA,EAA4BA,EAAAqC,IAAOrC,EAAAgM,GAAA2E,EAAAygB,EAAApxB,OAAA2Q,EAAA1O,EAAAyG,EACnC,OAAAsD,GAAAwU,KAAA,OAIAnb,EAAA,SAAAjD,EAAAC,GACA,GAAAhH,GAAAqN,QAAArG,EACA,cAAAA,GAAA,YAAAqG,EAAAxC,EAAA7D,IACA,WAAAqG,EAAAxD,EACA,WAAAwD,GAAArN,EAAA2nB,EAAA3T,MAAAhN,OAAAhH,EAAAg3B,GAAAU,EACA1wB,YAAA2gB,GAAA3T,MAAAgjB,EACAhwB,YAAAykB,MAAAD,EACAviB,MAAA2C,QAAA5E,GAAA+B,EACA,kBAAA/B,GAAAgxB,SAAA,kBAAAhxB,GAAA8a,UAAA1X,MAAApD,GAAA2qB,EACA9nB,GAAA9C,EAAAC,IAGA+a,EAAA,SAAAhb,EAAAC,GACA,MAAAD,MAAAC,GAAAD,EAAA,SAAAsG,GACA,MAAA/F,MAAAya,MAAAhb,EAAAC,EAAAqG,KAIA4qB,EAAA,IAAA3wB,KAAAkJ,GAEA1F,GACAorB,WAAA,EACAC,WAAA,EACAH,OAAA,EACAC,MAAA,EACAG,OAAA,EACAC,OAAA,GAGAvB,EAAA,SAAA/tB,EAAAC,EAAAhH,EAAA0E,EAAA2L,EAAA1J,GACA,GAAAyvB,GAAAC,EAAAJ,CAKA,QAJAG,EAAA9uB,KAAAiD,KAAAxD,IAAAC,QAAAD,GAAAqvB,EAAApvB,GAAAovB,IACAH,EAAAlvB,EAAA/G,EAAAgH,EAAAtC,KAAA1E,GAAA+G,EAAAkvB,EAAAvxB,GAAAsC,EAAAivB,IACAI,EAAA/uB,KAAAiD,KAAAvK,IAAA0E,QAAA1E,GAAAq2B,EAAA3xB,GAAA2xB,EAAAJ,GAAAI,GACAtvB,EAAArC,EAAAsC,EAAAhH,IAAA+G,KAAAC,KAAAivB,KAAAG,OAEAF,WAAA7lB,EACA8lB,WAAAxvB,EACAqvB,OAAA1uB,KAAA8P,MAAApQ,EAAAD,GAAAkxB,EACAhC,MAAA3uB,KAAA4wB,KAAAjC,GAAAgC,EACA7B,SACAC,WAsFA8B,EAAA9C,EAAApB,EAAA,qBACAmE,EAAA/C,EAAAN,EAAA,cAEAsD,EAAA/wB,KAAAgxB,MACAC,EAAA,EACAC,EAAA,EACAC,EAAA,MAgBAC,EAAA,SAAAC,EAAAC,GACA,GAKAj0B,GACAk0B,EANAC,EAAAH,EAAA,GAAAI,EAAAJ,EAAA,GAAAK,EAAAL,EAAA,GACAM,EAAAL,EAAA,GAAAM,EAAAN,EAAA,GAAAO,EAAAP,EAAA,GACAQ,EAAAH,EAAAH,EACAO,EAAAH,EAAAH,EACAO,EAAAF,IAAAC,GAKA,IAAAC,EAAAb,EACAI,EAAAvxB,KAAAI,IAAAyxB,EAAAH,GAAAX,EACA1zB,EAAA,SAAA0I,GACA,OACAyrB,EAAAzrB,EAAA+rB,EACAL,EAAA1rB,EAAAgsB,EACAL,EAAA1xB,KAAAqjB,IAAA0N,EAAAhrB,EAAAwrB,SAMA,CACA,GAAA1P,GAAA7hB,KAAAiD,KAAA+uB,GACA9pB,GAAA2pB,IAAAH,IAAAR,EAAAc,IAAA,EAAAN,EAAAT,EAAApP,GACA5Z,GAAA4pB,IAAAH,IAAAR,EAAAc,IAAA,EAAAH,EAAAZ,EAAApP,GACAC,EAAA9hB,KAAAI,IAAAJ,KAAAiD,KAAAiF,IAAA,GAAAA,GACA6Z,EAAA/hB,KAAAI,IAAAJ,KAAAiD,KAAAgF,IAAA,GAAAA,EACAspB,IAAAxP,EAAAD,GAAAiP,EACA1zB,EAAA,SAAA0I,GACA,GAAAsD,GAAAtD,EAAAwrB,EACAU,EAAApX,EAAAiH,GACA8B,EAAA8N,GAAAT,EAAApP,IAAAoQ,EAAAjD,EAAA+B,EAAA1nB,EAAAyY,GAAAhH,EAAAgH,GACA,QACA0P,EAAA5N,EAAAkO,EACAL,EAAA7N,EAAAmO,EACAL,EAAAO,EAAApX,EAAAkW,EAAA1nB,EAAAyY,KAOA,MAFAzkB,GAAA60B,SAAA,IAAAX,EAEAl0B,GAmBA80B,EAAAlD,EAAA7C,GACAgG,EAAAnD,EAAA3C,GAgCA+F,EAAAhD,EAAAjD,GACAkG,EAAAjD,EAAA/C,GA0BAiG,GAAAxK,EAAAqE,GACAoG,GAAAzK,EAAAuE,GAEArI,GAAA,SAAAmC,EAAA1kB,GAEA,OADA+wB,GAAA,GAAA9wB,OAAAD,GACArE,EAAA,EAAiBA,EAAAqE,IAAOrE,EAAAo1B,EAAAp1B,GAAA+oB,EAAA/oB,GAAAqE,EAAA,GACxB,OAAA+wB,GAGA56B,GAAAsqB,YAAAzf,EACA7K,EAAA66B,iBAAAjxB,EACA5J,EAAA86B,iBAAAnD,EACA33B,EAAA+6B,uBAAAnD,EACA53B,EAAAg7B,gBAAA3O,EACArsB,EAAAorB,kBAAA1gB,EACA1K,EAAAi7B,kBAAAzI,EACAxyB,EAAAgrB,iBAAApI,EACA5iB,EAAAk7B,kBAAA3C,EACAv4B,EAAAg5B,0BACAh5B,EAAAi5B,0BACAj5B,EAAAm7B,gBAAA5B,EACAv5B,EAAAo7B,eAAAvD,EACA73B,EAAAq7B,oBAAArD,EACAh4B,EAAAs7B,0BAAArD,EACAj4B,EAAAu7B,eAAAjB,EACAt6B,EAAAw7B,mBAAAjB,EACAv6B,EAAAy7B,eAAAlE,EACAv3B,EAAA07B,eAAAlB,EACAx6B,EAAA27B,mBAAAlB,EACAz6B,EAAA47B,qBAAAlB,GACA16B,EAAAmwB,yBAAAwK,GACA36B,EAAAosB,YAEAxd,OAAAC,eAAA7O,EAAA,cAA8C6K,OAAA,OVw5GxC,SAAU5K,EAAQD,EAASM,IWr7HjC,SAAAgH,EAAAvH,GACAA,EAAAC,IAGCI,KAAA,SAAAJ,GAA4B,YAK7B,SAAA67B,GAAAC,EAAAC,EAAA9zB,EAAA+zB,GAEA,QAAArO,GAAAtB,GACA,MAAAyP,GAAAzP,EAAA,GAAAC,OAAAD,MA2DA,MAxDAsB,GAAArlB,MAAAqlB,EAEAA,EAAA/hB,KAAA,SAAAygB,GACA,MAAAyP,GAAAzP,EAAA,GAAAC,MAAAD,EAAA,IAAA0P,EAAA1P,EAAA,GAAAyP,EAAAzP,MAGAsB,EAAA/K,MAAA,SAAAyJ,GACA,GAAAtC,GAAA4D,EAAAtB,GACArC,EAAA2D,EAAA/hB,KAAAygB,EACA,OAAAA,GAAAtC,EAAAC,EAAAqC,EAAAtC,EAAAC,GAGA2D,EAAAsO,OAAA,SAAA5P,EAAAnkB,GACA,MAAA6zB,GAAA1P,EAAA,GAAAC,OAAAD,GAAA,MAAAnkB,EAAA,EAAAC,KAAAG,MAAAJ,IAAAmkB,GAGAsB,EAAAlqB,MAAA,SAAAsE,EAAAC,EAAAE,GACA,GAAAzE,KAGA,IAFAsE,EAAA4lB,EAAA/hB,KAAA7D,GACAG,EAAA,MAAAA,EAAA,EAAAC,KAAAG,MAAAJ,KACAH,EAAAC,GAAAE,EAAA,SAAAzE,EACA,GAAAA,GAAAqJ,KAAA,GAAAwf,OAAAvkB,UAAoCg0B,EAAAh0B,EAAAG,GAAA4zB,EAAA/zB,KAAAC,EACpC,OAAAvE,IAGAkqB,EAAArnB,OAAA,SAAAuhB,GACA,MAAAgU,GAAA,SAAAxP,GACA,GAAAA,KAAA,KAAAyP,EAAAzP,IAAAxE,EAAAwE,MAAA+L,QAAA/L,EAAA,IACK,SAAAA,EAAAnkB,GACL,GAAAmkB,KACA,GAAAnkB,EAAA,SAAAA,GAAA,GACA,KAAA6zB,EAAA1P,GAAA,IAAAxE,EAAAwE,SACS,QAAAnkB,GAAA,GACT,KAAA6zB,EAAA1P,EAAA,IAAAxE,EAAAwE,SAMApkB,IACA0lB,EAAA1lB,MAAA,SAAAF,EAAAuvB,GAGA,MAFA1f,GAAAwgB,SAAArwB,GAAA+P,EAAAsgB,SAAAd,GACAwE,EAAAlkB,GAAAkkB,EAAAhkB,GACA3P,KAAAG,MAAAL,EAAA2P,EAAAE,KAGA6V,EAAAG,MAAA,SAAA5lB,GAEA,MADAA,GAAAC,KAAAG,MAAAJ,GACA6D,SAAA7D,MAAA,EACAA,EAAA,EACAylB,EAAArnB,OAAA01B,EACA,SAAAz2B,GAA6B,MAAAy2B,GAAAz2B,GAAA2C,IAAA,GAC7B,SAAA3C,GAA6B,MAAAooB,GAAA1lB,MAAA,EAAA1C,GAAA2C,IAAA,IAH7BylB,EADA,OAQAA,EAmFA,QAAAuO,GAAA12B,GACA,MAAAq2B,GAAA,SAAAxP,GACAA,EAAA8P,QAAA9P,EAAA+P,WAAA/P,EAAAgQ,SAAA,EAAA72B,GAAA,GACA6mB,EAAAiQ,SAAA,UACG,SAAAjQ,EAAAnkB,GACHmkB,EAAA8P,QAAA9P,EAAA+P,UAAA,EAAAl0B,IACG,SAAAH,EAAAuvB,GACH,OAAAA,EAAAvvB,GAAAuvB,EAAAiF,oBAAAx0B,EAAAw0B,qBAAAvO,GAAAG,IA6FA,QAAAqO,GAAAh3B,GACA,MAAAq2B,GAAA,SAAAxP,GACAA,EAAAoQ,WAAApQ,EAAAqQ,cAAArQ,EAAAsQ,YAAA,EAAAn3B,GAAA,GACA6mB,EAAAuQ,YAAA,UACG,SAAAvQ,EAAAnkB,GACHmkB,EAAAoQ,WAAApQ,EAAAqQ,aAAA,EAAAx0B,IACG,SAAAH,EAAAuvB,GACH,OAAAA,EAAAvvB,GAAAomB,IA/PA,GAAAvW,GAAA,GAAA0U,MACAxU,EAAA,GAAAwU,MAmEAU,EAAA6O,EAAA,aAEC,SAAAxP,EAAAnkB,GACDmkB,EAAA+L,SAAA/L,EAAAnkB,IACC,SAAAH,EAAAuvB,GACD,MAAAA,GAAAvvB,GAIAilB,GAAAc,MAAA,SAAApV,GAEA,MADAA,GAAAvQ,KAAAG,MAAAoQ,GACA3M,SAAA2M,MAAA,EACAA,EAAA,EACAmjB,EAAA,SAAAxP,GACAA,EAAA+L,QAAAjwB,KAAAG,MAAA+jB,EAAA3T,OACG,SAAA2T,EAAAnkB,GACHmkB,EAAA+L,SAAA/L,EAAAnkB,EAAAwQ,IACG,SAAA3Q,EAAAuvB,GACH,OAAAA,EAAAvvB,GAAA2Q,IANAsU,EADA,KAWA,IAAA6P,GAAA7P,EAAAvpB,MAEAsqB,EAAA,IACAC,EAAA,IACAC,EAAA,KACAC,EAAA,MACAC,EAAA,OAEApB,EAAA8O,EAAA,SAAAxP,GACAA,EAAA+L,QAAAjwB,KAAAG,MAAA+jB,EAAA0B,OACC,SAAA1B,EAAAnkB,GACDmkB,EAAA+L,SAAA/L,EAAAnkB,EAAA6lB,IACC,SAAAhmB,EAAAuvB,GACD,OAAAA,EAAAvvB,GAAAgmB,GACC,SAAA1B,GACD,MAAAA,GAAAyQ,kBAGAC,EAAAhQ,EAAAtpB,MAEAqpB,EAAA+O,EAAA,SAAAxP,GACAA,EAAA+L,QAAAjwB,KAAAG,MAAA+jB,EAAA2B,OACC,SAAA3B,EAAAnkB,GACDmkB,EAAA+L,SAAA/L,EAAAnkB,EAAA8lB,IACC,SAAAjmB,EAAAuvB,GACD,OAAAA,EAAAvvB,GAAAimB,GACC,SAAA3B,GACD,MAAAA,GAAA2Q,eAGAC,EAAAnQ,EAAArpB,MAEAopB,EAAAgP,EAAA,SAAAxP,GACA,GAAA4P,GAAA5P,EAAAkQ,oBAAAvO,EAAAC,CACAgO,GAAA,IAAAA,GAAAhO,GACA5B,EAAA+L,QAAAjwB,KAAAG,QAAA+jB,EAAA4P,GAAAhO,KAAAgO,IACC,SAAA5P,EAAAnkB,GACDmkB,EAAA+L,SAAA/L,EAAAnkB,EAAA+lB,IACC,SAAAlmB,EAAAuvB,GACD,OAAAA,EAAAvvB,GAAAkmB,GACC,SAAA5B,GACD,MAAAA,GAAA6Q,aAGAC,EAAAtQ,EAAAppB,MAEAmpB,EAAAiP,EAAA,SAAAxP,GACAA,EAAAiQ,SAAA,UACC,SAAAjQ,EAAAnkB,GACDmkB,EAAA8P,QAAA9P,EAAA+P,UAAAl0B,IACC,SAAAH,EAAAuvB,GACD,OAAAA,EAAAvvB,GAAAuvB,EAAAiF,oBAAAx0B,EAAAw0B,qBAAAvO,GAAAE,GACC,SAAA7B,GACD,MAAAA,GAAA+P,UAAA,IAGAgB,EAAAxQ,EAAAnpB,MAaA45B,EAAAnB,EAAA,GACAoB,EAAApB,EAAA,GACAqB,EAAArB,EAAA,GACAsB,EAAAtB,EAAA,GACAuB,EAAAvB,EAAA,GACAwB,EAAAxB,EAAA,GACAyB,EAAAzB,EAAA,GAEA0B,EAAAP,EAAA55B,MACAo6B,EAAAP,EAAA75B,MACAq6B,EAAAP,EAAA95B,MACAs6B,EAAAP,EAAA/5B,MACAu6B,EAAAP,EAAAh6B,MACAw6B,EAAAP,EAAAj6B,MACAy6B,EAAAP,EAAAl6B,MAEAipB,EAAAmP,EAAA,SAAAxP,GACAA,EAAA8P,QAAA,GACA9P,EAAAiQ,SAAA,UACC,SAAAjQ,EAAAnkB,GACDmkB,EAAA8R,SAAA9R,EAAA+R,WAAAl2B,IACC,SAAAH,EAAAuvB,GACD,MAAAA,GAAA8G,WAAAr2B,EAAAq2B,WAAA,IAAA9G,EAAA+G,cAAAt2B,EAAAs2B,gBACC,SAAAhS,GACD,MAAAA,GAAA+R,aAGAE,EAAA5R,EAAAjpB,MAEAgpB,EAAAoP,EAAA,SAAAxP,GACAA,EAAA8R,SAAA,KACA9R,EAAAiQ,SAAA,UACC,SAAAjQ,EAAAnkB,GACDmkB,EAAAkS,YAAAlS,EAAAgS,cAAAn2B,IACC,SAAAH,EAAAuvB,GACD,MAAAA,GAAA+G,cAAAt2B,EAAAs2B,eACC,SAAAhS,GACD,MAAAA,GAAAgS,eAIA5R,GAAAqB,MAAA,SAAApV,GACA,MAAA3M,UAAA2M,EAAAvQ,KAAAG,MAAAoQ,OAAA,EAAAmjB,EAAA,SAAAxP,GACAA,EAAAkS,YAAAp2B,KAAAG,MAAA+jB,EAAAgS,cAAA3lB,MACA2T,EAAA8R,SAAA,KACA9R,EAAAiQ,SAAA,UACG,SAAAjQ,EAAAnkB,GACHmkB,EAAAkS,YAAAlS,EAAAgS,cAAAn2B,EAAAwQ,KALA,KASA,IAAA8lB,GAAA/R,EAAAhpB,MAEA+rB,EAAAqM,EAAA,SAAAxP,GACAA,EAAAoS,cAAA,MACC,SAAApS,EAAAnkB,GACDmkB,EAAA+L,SAAA/L,EAAAnkB,EAAA8lB,IACC,SAAAjmB,EAAAuvB,GACD,OAAAA,EAAAvvB,GAAAimB,GACC,SAAA3B,GACD,MAAAA,GAAAqS,kBAGAC,EAAAnP,EAAA/rB,MAEA8rB,EAAAsM,EAAA,SAAAxP,GACAA,EAAAuS,cAAA,QACC,SAAAvS,EAAAnkB,GACDmkB,EAAA+L,SAAA/L,EAAAnkB,EAAA+lB,IACC,SAAAlmB,EAAAuvB,GACD,OAAAA,EAAAvvB,GAAAkmB,GACC,SAAA5B,GACD,MAAAA,GAAAwS,gBAGAC,EAAAvP,EAAA9rB,MAEA6rB,EAAAuM,EAAA,SAAAxP,GACAA,EAAAuQ,YAAA,UACC,SAAAvQ,EAAAnkB,GACDmkB,EAAAoQ,WAAApQ,EAAAqQ,aAAAx0B,IACC,SAAAH,EAAAuvB,GACD,OAAAA,EAAAvvB,GAAAmmB,GACC,SAAA7B,GACD,MAAAA,GAAAqQ,aAAA,IAGAqC,EAAAzP,EAAA7rB,MAaAu7B,EAAAxC,EAAA,GACAyC,EAAAzC,EAAA,GACA0C,EAAA1C,EAAA,GACA2C,EAAA3C,EAAA,GACA4C,EAAA5C,EAAA,GACA6C,EAAA7C,EAAA,GACA8C,EAAA9C,EAAA,GAEA+C,EAAAP,EAAAv7B,MACA+7B,EAAAP,EAAAx7B,MACAg8B,GAAAP,EAAAz7B,MACAi8B,GAAAP,EAAA17B,MACAk8B,GAAAP,EAAA37B,MACAm8B,GAAAP,EAAA57B,MACAo8B,GAAAP,EAAA77B,MAEA2rB,GAAAyM,EAAA,SAAAxP,GACAA,EAAAoQ,WAAA,GACApQ,EAAAuQ,YAAA,UACC,SAAAvQ,EAAAnkB,GACDmkB,EAAAyT,YAAAzT,EAAA0T,cAAA73B,IACC,SAAAH,EAAAuvB,GACD,MAAAA,GAAAyI,cAAAh4B,EAAAg4B,cAAA,IAAAzI,EAAA0I,iBAAAj4B,EAAAi4B,mBACC,SAAA3T,GACD,MAAAA,GAAA0T,gBAGAE,GAAA7Q,GAAA3rB,MAEA0rB,GAAA0M,EAAA,SAAAxP,GACAA,EAAAyT,YAAA,KACAzT,EAAAuQ,YAAA,UACC,SAAAvQ,EAAAnkB,GACDmkB,EAAA6T,eAAA7T,EAAA2T,iBAAA93B,IACC,SAAAH,EAAAuvB,GACD,MAAAA,GAAA0I,iBAAAj4B,EAAAi4B,kBACC,SAAA3T,GACD,MAAAA,GAAA2T,kBAIA7Q,IAAArB,MAAA,SAAApV,GACA,MAAA3M,UAAA2M,EAAAvQ,KAAAG,MAAAoQ,OAAA,EAAAmjB,EAAA,SAAAxP,GACAA,EAAA6T,eAAA/3B,KAAAG,MAAA+jB,EAAA2T,iBAAAtnB,MACA2T,EAAAyT,YAAA,KACAzT,EAAAuQ,YAAA,UACG,SAAAvQ,EAAAnkB,GACHmkB,EAAA6T,eAAA7T,EAAA2T,iBAAA93B,EAAAwQ,KALA,KASA,IAAAynB,IAAAhR,GAAA1rB,KAEAzD,GAAAogC,aAAAvE,EACA77B,EAAAgvB,gBAAAhC,EACAhtB,EAAAqgC,iBAAAxD,EACA78B,EAAA0vB,eAAA1C,EACAhtB,EAAAsgC,gBAAAzD,EACA78B,EAAA+uB,WAAAhC,EACA/sB,EAAAugC,YAAAxD,EACA/8B,EAAAyvB,UAAA1C,EACA/sB,EAAAwgC,WAAAzD,EACA/8B,EAAA8uB,WAAAhC,EACA9sB,EAAAygC,YAAAxD,EACAj9B,EAAA6uB,SAAAhC,EACA7sB,EAAA0gC,UAAAvD,EACAn9B,EAAA4uB,QAAAhC,EACA5sB,EAAA2gC,SAAAvD,EACAp9B,EAAA2uB,SAAA0O,EACAr9B,EAAA4gC,UAAAhD,EACA59B,EAAA6gC,WAAAxD,EACAr9B,EAAA8gC,YAAAlD,EACA59B,EAAA+gC,WAAAzD,EACAt9B,EAAAghC,YAAAnD,EACA79B,EAAAihC,YAAA1D,EACAv9B,EAAAkhC,aAAApD,EACA99B,EAAAmhC,cAAA3D,EACAx9B,EAAAohC,eAAArD,EACA/9B,EAAAqhC,aAAA5D,EACAz9B,EAAAshC,cAAAtD,EACAh+B,EAAAuhC,WAAA7D,EACA19B,EAAAwhC,YAAAvD,EACAj+B,EAAAyhC,aAAA9D,EACA39B,EAAA0hC,cAAAxD,EACAl+B,EAAA0uB,UAAAhC,EACA1sB,EAAA2hC,WAAArD,EACAt+B,EAAAyuB,SAAAhC,EACAzsB,EAAA4hC,UAAApD,EACAx+B,EAAAwvB,YACAxvB,EAAA2+B,aACA3+B,EAAAuvB,UACAvvB,EAAA8+B,WACA9+B,EAAAsvB,SACAtvB,EAAA++B,UACA/+B,EAAAqvB,QAAA2P,EACAh/B,EAAA6hC,SAAAtC,EACAv/B,EAAAg/B,YACAh/B,EAAAu/B,aACAv/B,EAAAi/B,YACAj/B,EAAAw/B,aACAx/B,EAAAk/B,aACAl/B,EAAAy/B,eACAz/B,EAAAm/B,eACAn/B,EAAA0/B,iBACA1/B,EAAAo/B,cACAp/B,EAAA2/B,gBACA3/B,EAAAq/B,YACAr/B,EAAA4/B,cACA5/B,EAAAs/B,cACAt/B,EAAA6/B,gBACA7/B,EAAAovB,YACApvB,EAAAigC,aACAjgC,EAAAmvB,WACAnvB,EAAAmgC,YAEAvxB,OAAAC,eAAA7O,EAAA,cAA8C6K,OAAA,OX+7HxC,SAAU5K,EAAQD,EAASM,IY3zIjC,SAAAgH,EAAAvH,GACAA,EAAAC,EAAAM,EAAA,MAGCF,KAAA,SAAAJ,EAAAsoB,GAAmC,YAEpC,SAAAwZ,GAAAv8B,GACA,MAAAA,EAAA8R,GAAA9R,EAAA8R,EAAA,KACA,GAAAgV,GAAA,GAAAC,OAAA,EAAA/mB,EAAA3E,EAAA2E,MAAAw8B,EAAAx8B,EAAAy8B,EAAAz8B,EAAAm0B,EAAAn0B,EAAA08B,EAEA,OADA5V,GAAAkS,YAAAh5B,EAAA8R,GACAgV,EAEA,UAAAC,MAAA/mB,EAAA8R,EAAA9R,EAAA3E,EAAA2E,MAAAw8B,EAAAx8B,EAAAy8B,EAAAz8B,EAAAm0B,EAAAn0B,EAAA08B,GAGA,QAAAC,GAAA38B,GACA,MAAAA,EAAA8R,GAAA9R,EAAA8R,EAAA,KACA,GAAAgV,GAAA,GAAAC,WAAAsD,KAAA,EAAArqB,EAAA3E,EAAA2E,MAAAw8B,EAAAx8B,EAAAy8B,EAAAz8B,EAAAm0B,EAAAn0B,EAAA08B,GAEA,OADA5V,GAAA6T,eAAA36B,EAAA8R,GACAgV,EAEA,UAAAC,WAAAsD,IAAArqB,EAAA8R,EAAA9R,EAAA3E,EAAA2E,MAAAw8B,EAAAx8B,EAAAy8B,EAAAz8B,EAAAm0B,EAAAn0B,EAAA08B,IAGA,QAAAE,GAAA9qB,GACA,OAAUA,IAAAzW,EAAA,EAAA2E,EAAA,EAAAw8B,EAAA,EAAAC,EAAA,EAAAtI,EAAA,EAAAuI,EAAA,GAGV,QAAA3c,GAAAD,GA8GA,QAAA0B,GAAAvC,EAAA4d,GACA,gBAAA/V,GACA,GAIAxrB,GACAwhC,EACAv7B,EANAyxB,KACA/yB,GAAA,EACAkI,EAAA,EACA7D,EAAA2a,EAAA/e,MAOA,KAFA4mB,YAAAC,QAAAD,EAAA,GAAAC,OAAAD,MAEA7mB,EAAAqE,GACA,KAAA2a,EAAA+C,WAAA/hB,KACA+yB,EAAAzrB,KAAA0X,EAAAhZ,MAAAkC,EAAAlI,IACA,OAAA68B,EAAAC,GAAAzhC,EAAA2jB,EAAA+d,SAAA/8B,KAAA3E,EAAA2jB,EAAA+d,SAAA/8B,GACA68B,EAAA,MAAAxhC,EAAA,SACAiG,EAAAs7B,EAAAvhC,QAAAiG,EAAAulB,EAAAgW,IACA9J,EAAAzrB,KAAAjM,GACA6M,EAAAlI,EAAA,EAKA,OADA+yB,GAAAzrB,KAAA0X,EAAAhZ,MAAAkC,EAAAlI,IACA+yB,EAAAvS,KAAA,KAIA,QAAAwc,GAAAhe,EAAAie,GACA,gBAAAlK,GACA,GAAAhzB,GAAA48B,EAAA,MACA38B,EAAAk9B,EAAAn9B,EAAAif,EAAA+T,GAAA,KACA,IAAA/yB,GAAA+yB,EAAA9yB,OAAA,WAMA,IAHA,KAAAF,OAAAw8B,EAAAx8B,EAAAw8B,EAAA,MAAAx8B,EAAAzE,GAGA,KAAAyE,IAAA,KAAAA,GAAA,CACA,KAAAA,OAAAo9B,EAAA,KAAAp9B,GAAA,IACA,IAAAqnB,GAAA,KAAArnB,GAAA28B,EAAAC,EAAA58B,EAAA8R,IAAAslB,YAAA8F,EAAAN,EAAA58B,EAAA8R,IAAAglB,QACA92B,GAAA3E,EAAA,EACA2E,IAAA,KAAAA,MAAAo9B,EAAA,OAAAp9B,EAAAq9B,GAAAhW,EAAA,KAAArnB,EAAAo9B,EAAA,EAAAp9B,EAAAs9B,GAAAjW,EAAA,KAKA,WAAArnB,IACAA,EAAAw8B,GAAAx8B,EAAAu9B,EAAA,MACAv9B,EAAAy8B,GAAAz8B,EAAAu9B,EAAA,IACAZ,EAAA38B,IAIAk9B,EAAAl9B,IAIA,QAAAm9B,GAAAn9B,EAAAif,EAAA+T,EAAA7qB,GAOA,IANA,GAGA7M,GACAs1B,EAJA3wB,EAAA,EACAqE,EAAA2a,EAAA/e,OACA7E,EAAA23B,EAAA9yB,OAIAD,EAAAqE,GAAA,CACA,GAAA6D,GAAA9M,EAAA,QAEA,IADAC,EAAA2jB,EAAA+C,WAAA/hB,KACA,KAAA3E,GAGA,GAFAA,EAAA2jB,EAAA+d,OAAA/8B,KACA2wB,EAAA4M,GAAAliC,IAAAyhC,IAAA9d,EAAA+d,OAAA/8B,KAAA3E,IACAs1B,IAAAzoB,EAAAyoB,EAAA5wB,EAAAgzB,EAAA7qB,IAAA,eACO,IAAA7M,GAAA03B,EAAAhR,WAAA7Z,KACP,SAIA,MAAAA,GAGA,QAAAs1B,GAAAz9B,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAAo5B,GAAAhuB,KAAAsjB,EAAA/sB,MAAAhG,GACA,OAAAqE,IAAAtE,EAAAzE,EAAAoiC,GAAAr5B,EAAA,GAAAkL,eAAAvP,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAA09B,GAAA59B,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAAu5B,GAAAnuB,KAAAsjB,EAAA/sB,MAAAhG,GACA,OAAAqE,IAAAtE,EAAAo9B,EAAAU,GAAAx5B,EAAA,GAAAkL,eAAAvP,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAA69B,IAAA/9B,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA05B,GAAAtuB,KAAAsjB,EAAA/sB,MAAAhG,GACA,OAAAqE,IAAAtE,EAAAo9B,EAAAa,GAAA35B,EAAA,GAAAkL,eAAAvP,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAAg+B,IAAAl+B,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA65B,GAAAzuB,KAAAsjB,EAAA/sB,MAAAhG,GACA,OAAAqE,IAAAtE,EAAA3E,EAAA+iC,GAAA95B,EAAA,GAAAkL,eAAAvP,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAAm+B,IAAAr+B,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAAg6B,GAAA5uB,KAAAsjB,EAAA/sB,MAAAhG,GACA,OAAAqE,IAAAtE,EAAA3E,EAAAkjC,GAAAj6B,EAAA,GAAAkL,eAAAvP,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAAs+B,IAAAx+B,EAAAgzB,EAAA/yB,GACA,MAAAk9B,GAAAn9B,EAAAy+B,GAAAzL,EAAA/yB,GAGA,QAAAy+B,IAAA1+B,EAAAgzB,EAAA/yB,GACA,MAAAk9B,GAAAn9B,EAAA2+B,GAAA3L,EAAA/yB,GAGA,QAAA2+B,IAAA5+B,EAAAgzB,EAAA/yB,GACA,MAAAk9B,GAAAn9B,EAAA6+B,GAAA7L,EAAA/yB,GAGA,QAAA6+B,IAAA9+B,GACA,MAAA++B,IAAA/+B,EAAA82B,UAGA,QAAAkI,IAAAh/B,GACA,MAAAi/B,IAAAj/B,EAAA82B,UAGA,QAAAoI,IAAAl/B,GACA,MAAAm/B,IAAAn/B,EAAA64B,YAGA,QAAA5Q,IAAAjoB,GACA,MAAAo/B,IAAAp/B,EAAA64B,YAGA,QAAAwG,IAAAr/B,GACA,MAAAs/B,MAAAt/B,EAAA23B,YAAA;CAGA,QAAA4H,IAAAv/B,GACA,MAAA++B,IAAA/+B,EAAAo3B,aAGA,QAAAoI,IAAAx/B,GACA,MAAAi/B,IAAAj/B,EAAAo3B,aAGA,QAAAqI,IAAAz/B,GACA,MAAAm/B,IAAAn/B,EAAAw6B,eAGA,QAAAkF,IAAA1/B,GACA,MAAAo/B,IAAAp/B,EAAAw6B,eAGA,QAAAmF,IAAA3/B,GACA,MAAAs/B,MAAAt/B,EAAAs5B,eAAA,KAvQA,GAAAmF,IAAA3e,EAAA8f,SACAjB,GAAA7e,EAAAgH,KACA+X,GAAA/e,EAAAmJ,KACAqW,GAAAxf,EAAA+f,QACAZ,GAAAnf,EAAA+X,KACAkH,GAAAjf,EAAAggB,UACAV,GAAAtf,EAAAiZ,OACAoG,GAAArf,EAAAigB,YAEArC,GAAAsC,EAAAV,IACA3B,GAAAsC,EAAAX,IACAtB,GAAAgC,EAAAf,IACAhB,GAAAgC,EAAAhB,IACApB,GAAAmC,EAAAjB,IACAjB,GAAAmC,EAAAlB,IACAT,GAAA0B,EAAAZ,IACAb,GAAA0B,EAAAb,IACAjB,GAAA6B,EAAAb,IACAf,GAAA6B,EAAAd,IAEAtC,IACAx6B,EAAAy8B,GACAvhB,EAAAyhB,GACA18B,EAAA48B,GACA1hB,EAAAyK,GACA3sB,EAAA,KACA0E,EAAAkgC,EACAv0B,EAAAu0B,EACA1D,EAAA2D,EACAC,EAAAC,EACAl4B,EAAAm4B,EACA5D,EAAA6D,EACAllC,EAAAmlC,EACA/D,EAAAgE,EACAllC,EAAA8jC,GACAlL,EAAAuM,EACApD,EAAAqD,EACAvD,EAAAwD,EACAvD,EAAAwD,EACA3+B,EAAA,KACAmf,EAAA,KACAvP,EAAAoW,EACA4Y,EAAAC,EACAxD,EAAAyD,EACA7f,IAAA8f,GAGAC,IACA7+B,EAAAk9B,GACAhiB,EAAAiiB,GACAl9B,EAAAm9B,GACAjiB,EAAAkiB,GACApkC,EAAA,KACA0E,EAAAmhC,EACAx1B,EAAAw1B,EACA3E,EAAA4E,EACAhB,EAAAiB,EACAl5B,EAAAm5B,EACA5E,EAAA6E,EACAlmC,EAAAmmC,EACA/E,EAAAgF,EACAlmC,EAAAokC,GACAxL,EAAAuN,EACApE,EAAAqE,EACAvE,EAAAwE,EACAvE,EAAAwE,EACA3/B,EAAA,KACAmf,EAAA,KACAvP,EAAAgwB,EACAhB,EAAAiB,EACAxE,EAAAyE,EACA7gB,IAAA8f,GAGAzD,IACAn7B,EAAAu7B,EACArgB,EAAAwgB,GACAz7B,EAAA47B,GACA1gB,EAAA6gB,GACA/iC,EAAAkjC,GACAx+B,EAAAiiC,EACAt2B,EAAAs2B,EACAzF,EAAA0F,EACA9B,EAAA8B,EACA/5B,EAAAg6B,EACAzF,EAAA0F,EACA/mC,EAAAgnC,EACA5F,EAAA6F,EACA/mC,EAAAkiC,EACAtJ,EAAAoO,EACAjF,EAAAkF,EACApF,EAAAqF,EACApF,EAAAqF,EACAxgC,EAAAw8B,GACArd,EAAAud,GACA9sB,EAAA6wB,EACA7B,EAAA8B,EACArF,EAAAsF,EACA1hB,IAAA2hB,EAwKA,OApKAjG,IAAA36B,EAAAsf,EAAAmd,GAAA9B,IACAA,GAAAxb,EAAAG,EAAAqd,GAAAhC,IACAA,GAAAvhC,EAAAkmB,EAAAid,GAAA5B,IACAqE,GAAAh/B,EAAAsf,EAAAmd,GAAAuC,IACAA,GAAA7f,EAAAG,EAAAqd,GAAAqC,IACAA,GAAA5lC,EAAAkmB,EAAAid,GAAAyC,KAgKA3/B,OAAA,SAAA0d,GACA,GAAAhd,GAAAuf,EAAAvC,GAAA,GAAA4d,GAEA,OADA56B,GAAAmb,SAAA,WAA+B,MAAA6B,IAC/Bhd,GAEA2uB,MAAA,SAAA3R,GACA,GAAA1jB,GAAA0hC,EAAAhe,GAAA,GAAAsd,EAEA,OADAhhC,GAAA6hB,SAAA,WAA+B,MAAA6B,IAC/B1jB,GAEA6uB,UAAA,SAAAnL,GACA,GAAAhd,GAAAuf,EAAAvC,GAAA,GAAAiiB,GAEA,OADAj/B,GAAAmb,SAAA,WAA+B,MAAA6B,IAC/Bhd,GAEA8gC,SAAA,SAAA9jB,GACA,GAAA1jB,GAAA0hC,EAAAhe,EAAA0d,EAEA,OADAphC,GAAA6hB,SAAA,WAA+B,MAAA6B,IAC/B1jB,IAUA,QAAAuhC,GAAAx3B,EAAA+Z,EAAAljB,GACA,GAAAojB,GAAAja,EAAA,SACA0tB,GAAAzT,GAAAja,KAAA,GACApF,EAAA8yB,EAAA9yB,MACA,OAAAqf,IAAArf,EAAA/D,EAAA,GAAAoI,OAAApI,EAAA+D,EAAA,GAAAugB,KAAApB,GAAA2T,KAGA,QAAAgQ,GAAA/2B,GACA,MAAAA,GAAA2U,QAAAqiB,GAAA,QAGA,QAAAjD,GAAAkD,GACA,UAAApvB,QAAA,OAAAovB,EAAAh9B,IAAA88B,GAAAviB,KAAA,cAGA,QAAAwf,GAAAiD,GAEA,IADA,GAAAh9B,MAAcjG,GAAA,EAAAqE,EAAA4+B,EAAAhjC,SACdD,EAAAqE,GAAA4B,EAAAg9B,EAAAjjC,GAAAuP,eAAAvP,CACA,OAAAiG,GAGA,QAAAu8B,GAAAziC,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA6+B,GAAAzzB,KAAAsjB,EAAA/sB,MAAAhG,IAAA,GACA,OAAAqE,IAAAtE,EAAAo9B,GAAA94B,EAAA,GAAArE,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAAsiC,GAAAxiC,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA6+B,GAAAzzB,KAAAsjB,EAAA/sB,MAAAhG,GACA,OAAAqE,IAAAtE,EAAAs9B,GAAAh5B,EAAA,GAAArE,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAAwiC,GAAA1iC,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA6+B,GAAAzzB,KAAAsjB,EAAA/sB,MAAAhG,GACA,OAAAqE,IAAAtE,EAAAq9B,GAAA/4B,EAAA,GAAArE,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAA0iC,GAAA5iC,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA6+B,GAAAzzB,KAAAsjB,EAAA/sB,MAAAhG,IAAA,GACA,OAAAqE,IAAAtE,EAAA8R,GAAAxN,EAAA,GAAArE,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAAyiC,GAAA3iC,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA6+B,GAAAzzB,KAAAsjB,EAAA/sB,MAAAhG,IAAA,GACA,OAAAqE,IAAAtE,EAAA8R,GAAAxN,EAAA,KAAAA,EAAA,gBAAArE,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAA2iC,GAAA7iC,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA,gCAAAoL,KAAAsjB,EAAA/sB,MAAAhG,IAAA,GACA,OAAAqE,IAAAtE,EAAAu9B,EAAAj5B,EAAA,OAAAA,EAAA,IAAAA,EAAA,WAAArE,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAAmiC,GAAAriC,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA6+B,GAAAzzB,KAAAsjB,EAAA/sB,MAAAhG,IAAA,GACA,OAAAqE,IAAAtE,EAAA3E,EAAAiJ,EAAA,KAAArE,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAA+hC,GAAAjiC,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA6+B,GAAAzzB,KAAAsjB,EAAA/sB,MAAAhG,IAAA,GACA,OAAAqE,IAAAtE,KAAAsE,EAAA,GAAArE,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAAiiC,GAAAniC,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA6+B,GAAAzzB,KAAAsjB,EAAA/sB,MAAAhG,IAAA,GACA,OAAAqE,IAAAtE,EAAA3E,EAAA,EAAA2E,KAAAsE,EAAA,GAAArE,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAAgiC,GAAAliC,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA6+B,GAAAzzB,KAAAsjB,EAAA/sB,MAAAhG,IAAA,GACA,OAAAqE,IAAAtE,EAAAw8B,GAAAl4B,EAAA,GAAArE,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAAoiC,GAAAtiC,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA6+B,GAAAzzB,KAAAsjB,EAAA/sB,MAAAhG,IAAA,GACA,OAAAqE,IAAAtE,EAAAy8B,GAAAn4B,EAAA,GAAArE,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAAqiC,GAAAviC,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA6+B,GAAAzzB,KAAAsjB,EAAA/sB,MAAAhG,IAAA,GACA,OAAAqE,IAAAtE,EAAAm0B,GAAA7vB,EAAA,GAAArE,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAAkiC,GAAApiC,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA6+B,GAAAzzB,KAAAsjB,EAAA/sB,MAAAhG,IAAA,GACA,OAAAqE,IAAAtE,EAAA08B,GAAAp4B,EAAA,GAAArE,EAAAqE,EAAA,GAAApE,SAAA,EAGA,QAAA4iC,GAAA9iC,EAAAgzB,EAAA/yB,GACA,GAAAqE,GAAA8+B,GAAA1zB,KAAAsjB,EAAA/sB,MAAAhG,IAAA,GACA,OAAAqE,GAAArE,EAAAqE,EAAA,GAAApE,QAAA,EAGA,QAAAggC,GAAAlgC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAA62B,UAAAt7B,EAAA,GAGA,QAAA4kC,GAAAngC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAA23B,WAAAp8B,EAAA,GAGA,QAAA8kC,GAAArgC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAA23B,WAAA,OAAAp8B,EAAA,GAGA,QAAA+kC,GAAAtgC,EAAAzE,GACA,MAAAuhC,GAAA,EAAA/Z,EAAAsG,QAAA3mB,MAAAqgB,EAAAmG,SAAAlpB,MAAAzE,EAAA,GAGA,QAAAglC,GAAAvgC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAAqjC,kBAAA9nC,EAAA,GAGA,QAAAilC,GAAAxgC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAA64B,WAAA,EAAAt9B,EAAA,GAGA,QAAAklC,GAAAzgC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAAy3B,aAAAl8B,EAAA,GAGA,QAAAmlC,GAAA1gC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAAsjC,aAAA/nC,EAAA,GAGA,QAAAolC,GAAA3gC,EAAAzE,GACA,MAAAuhC,GAAA/Z,EAAAuY,WAAA54B,MAAAqgB,EAAAmG,SAAAlpB,MAAAzE,EAAA,GAGA,QAAAqlC,GAAA5gC,GACA,MAAAA,GAAA82B,SAGA,QAAA+J,GAAA7gC,EAAAzE,GACA,MAAAuhC,GAAA/Z,EAAAyY,WAAA94B,MAAAqgB,EAAAmG,SAAAlpB,MAAAzE,EAAA,GAGA,QAAA2sB,GAAAloB,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAA84B,cAAA,IAAAv9B,EAAA,GAGA,QAAAwlC,GAAA/gC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAA84B,cAAA,IAAAv9B,EAAA,GAGA,QAAAylC,GAAAhhC,GACA,GAAAgS,GAAAhS,EAAAg3B,mBACA,QAAAhlB,EAAA,OAAAA,IAAA,QACA8qB,EAAA9qB,EAAA,YACA8qB,EAAA9qB,EAAA,UAGA,QAAAmvB,GAAAnhC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAAm3B,aAAA57B,EAAA,GAGA,QAAA6lC,GAAAphC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAAs5B,cAAA/9B,EAAA,GAGA,QAAA8lC,GAAArhC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAAs5B,cAAA,OAAA/9B,EAAA,GAGA,QAAA+lC,GAAAthC,EAAAzE,GACA,MAAAuhC,GAAA,EAAA/Z,EAAAgH,OAAArnB,MAAAqgB,EAAA6G,QAAA5pB,MAAAzE,EAAA,GAGA,QAAAgmC,GAAAvhC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAAujC,qBAAAhoC,EAAA,GAGA,QAAAimC,GAAAxhC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAAw6B,cAAA,EAAAj/B,EAAA,GAGA,QAAAkmC,GAAAzhC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAAm5B,gBAAA59B,EAAA,GAGA,QAAAmmC,GAAA1hC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAAu3B,gBAAAh8B,EAAA,GAGA,QAAAomC,GAAA3hC,EAAAzE,GACA,MAAAuhC,GAAA/Z,EAAA0W,UAAA/2B,MAAAqgB,EAAA6G,QAAA5pB,MAAAzE,EAAA,GAGA,QAAAqmC,GAAA5hC,GACA,MAAAA,GAAAo3B,YAGA,QAAAyK,GAAA7hC,EAAAzE,GACA,MAAAuhC,GAAA/Z,EAAA2W,UAAAh3B,MAAAqgB,EAAA6G,QAAA5pB,MAAAzE,EAAA,GAGA,QAAAumC,GAAA9hC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAAy6B,iBAAA,IAAAl/B,EAAA,GAGA,QAAAwmC,GAAA/hC,EAAAzE,GACA,MAAAuhC,GAAA98B,EAAAy6B,iBAAA,IAAAl/B,EAAA,GAGA,QAAAymC,KACA,cAGA,QAAAf,KACA,UAoBA,QAAAphB,GAAA3Q,GAMA,MALAs0B,IAAAzjB,EAAA7Q,GACAzU,EAAAivB,WAAA8Z,GAAAjiC,OACA9G,EAAAgpC,UAAAD,GAAA5S,MACAn2B,EAAA2vB,UAAAoZ,GAAApZ,UACA3vB,EAAAsoC,SAAAS,GAAAT,SACAS,GAKA,QAAAE,IAAA5c,GACA,MAAAA,GAAA6c,cAOA,QAAAC,IAAA5Q,GACA,GAAAlM,GAAA,GAAAC,MAAAiM,EACA,OAAAttB,OAAAohB,GAAA,KAAAA,EA7PA,GAuNA0c,IAvNAzG,IAAY8G,IAAA,GAAAr8B,EAAA,IAAAs8B,EAAA,KACZX,GAAA,UACAC,GAAA,KACAH,GAAA,iCA0NApjB,IACA+f,SAAA,SACA9Y,KAAA,aACAmC,KAAA,eACA4W,SAAA,WACAhI,MAAA,wEACAiI,WAAA,2CACA/G,QAAA,+GACAgH,aAAA,0EAYA,IAAAgE,IAAA,wBAMAC,GAAAjd,KAAA/gB,UAAA29B,YACAD,GACAjpC,EAAA2vB,UAAA2Z,IAOAE,IAAA,GAAAld,MAAA,4BACA6c,GACAnpC,EAAAsoC,SAAAgB,GAEAtpC,GAAAypC,wBAAArkB,EACAplB,EAAA0pC,iBAAApkB,EACAtlB,EAAA2pC,UAAAJ,GACAvpC,EAAA4pC,SAAAJ,GAEA56B,OAAAC,eAAA7O,EAAA,cAA8C6K,OAAA,OZq0IxC,SAAU5K,EAAQD,EAASM,Ia74JjC,SAAAgH,EAAAvH,GACAA,EAAAC,IAGCI,KAAA,SAAAJ,GAA4B,YAkB7B,SAAA6pC,GAAAxlC,GACA,kBACA,GAAA2wB,GAAA50B,KAAA0pC,cACAC,EAAA3pC,KAAA4pC,YACA,OAAAD,KAAAE,GAAAjV,EAAAG,gBAAA6U,eAAAC,EACAjV,EAAAC,cAAA5wB,GACA2wB,EAAAc,gBAAAiU,EAAA1lC,IAIA,QAAA6lC,GAAAC,GACA,kBACA,MAAA/pC,MAAA0pC,cAAAhU,gBAAAqU,EAAAC,MAAAD,EAAAE,QAaA,QAAAA,KACA,UAAAC,GAGA,QAAAA,KACAlqC,KAAA2M,EAAA,OAAAw9B,IAAA5nB,SAAA,IAuDA,QAAA6nB,GAAAC,EAAA7hB,EAAAnB,GAEA,MADAgjB,GAAAC,EAAAD,EAAA7hB,EAAAnB,GACA,SAAAkjB,GACA,GAAAC,GAAAD,EAAAE,aACAD,SAAAxqC,MAAA,EAAAwqC,EAAAE,wBAAA1qC,QACAqqC,EAAA9pC,KAAAP,KAAAuqC,IAKA,QAAAD,GAAAD,EAAA7hB,EAAAnB,GACA,gBAAAsjB,GACA,GAAAC,GAAAhrC,EAAA2qC,KACA3qC,GAAA2qC,MAAAI,CACA,KACAN,EAAA9pC,KAAAP,UAAA6qC,SAAAriB,EAAAnB,GACK,QACLznB,EAAA2qC,MAAAK,IAKA,QAAA3nB,GAAAC,GACA,MAAAA,GAAAxO,OAAA0O,MAAA,SAAA/X,IAAA,SAAAyC,GACA,GAAA7J,GAAA,GAAAmB,EAAA0I,EAAAuV,QAAA,IAEA,OADAje,IAAA,IAAAnB,EAAA6J,EAAA1C,MAAAhG,EAAA,GAAA0I,IAAA1C,MAAA,EAAAhG,KACYke,KAAAxV,EAAA7J,UAIZ,QAAA6mC,GAAAjnB,GACA,kBACA,GAAAD,GAAA5jB,KAAA+qC,IACA,IAAAnnB,EAAA,CACA,OAAA7N,GAAAzI,EAAA,EAAAlI,GAAA,EAAA5E,EAAAojB,EAAAve,OAA6CiI,EAAA9M,IAAO8M,EACpDyI,EAAA6N,EAAAtW,GAAAuW,EAAAP,MAAAvN,EAAAuN,OAAAO,EAAAP,MAAAvN,EAAA9R,OAAA4f,EAAA5f,KAGA2f,IAAAxe,GAAA2Q,EAFA/V,KAAAgrC,oBAAAj1B,EAAAuN,KAAAvN,EAAAs0B,SAAAt0B,EAAAk1B,WAKA7lC,EAAAwe,EAAAve,OAAAD,QACApF,MAAA+qC,OAIA,QAAAG,GAAArnB,EAAApZ,EAAAwgC,GACA,GAAAE,GAAAC,GAAAz1B,eAAAkO,EAAAP,MAAA8mB,EAAAE,CACA,iBAAAnlC,EAAAC,EAAAiiB,GACA,GAAAtR,GAAA6N,EAAA5jB,KAAA+qC,KAAAV,EAAAc,EAAA1gC,EAAArF,EAAAiiB,EACA,IAAAzD,EAAA,OAAAtW,GAAA,EAAA9M,EAAAojB,EAAAve,OAA0CiI,EAAA9M,IAAO8M,EACjD,IAAAyI,EAAA6N,EAAAtW,IAAAgW,OAAAO,EAAAP,MAAAvN,EAAA9R,OAAA4f,EAAA5f,KAIA,MAHAjE,MAAAgrC,oBAAAj1B,EAAAuN,KAAAvN,EAAAs0B,SAAAt0B,EAAAk1B,SACAjrC,KAAAqrC,iBAAAt1B,EAAAuN,KAAAvN,EAAAs0B,WAAAt0B,EAAAk1B,gBACAl1B,EAAAtL,QAIAzK,MAAAqrC,iBAAAxnB,EAAAP,KAAA+mB,EAAAY,GACAl1B,GAASuN,KAAAO,EAAAP,KAAArf,KAAA4f,EAAA5f,KAAAwG,QAAA4/B,WAAAY,WACTrnB,EACAA,EAAAlX,KAAAqJ,GADA/V,KAAA+qC,MAAAh1B,IA0BA,QAAAu1B,GAAAX,EAAAN,EAAArmB,EAAAC,GACA,GAAA2mB,GAAAhrC,EAAA2qC,KACAI,GAAAY,YAAA3rC,EAAA2qC,MACA3qC,EAAA2qC,MAAAI,CACA,KACA,MAAAN,GAAAnmB,MAAAF,EAAAC,GACG,QACHrkB,EAAA2qC,MAAAK,GA8BA,QAAAY,MAuBA,QAAAzY,KACA,SA8CA,QAAA0Y,GAAAr3B,EAAAs3B,GACA1rC,KAAA0pC,cAAAt1B,EAAAs1B,cACA1pC,KAAA4pC,aAAAx1B,EAAAw1B,aACA5pC,KAAA2rC,MAAA,KACA3rC,KAAA4rC,QAAAx3B,EACApU,KAAA6qC,SAAAa,EAmBA,QAAAG,GAAAz3B,EAAAiT,EAAAvjB,EAAAgoC,EAAA9mC,EAAAlD,GASA,IARA,GACAU,GADA4C,EAAA,EAEA2mC,EAAA1kB,EAAAhiB,OACA2mC,EAAAlqC,EAAAuD,OAKQD,EAAA4mC,IAAgB5mC,GACxB5C,EAAA6kB,EAAAjiB,KACA5C,EAAAqoC,SAAA/oC,EAAAsD,GACA0mC,EAAA1mC,GAAA5C,GAEAsB,EAAAsB,GAAA,GAAAqmC,GAAAr3B,EAAAtS,EAAAsD,GAKA,MAAQA,EAAA2mC,IAAiB3mC,GACzB5C,EAAA6kB,EAAAjiB,MACAJ,EAAAI,GAAA5C,GAKA,QAAAypC,GAAA73B,EAAAiT,EAAAvjB,EAAAgoC,EAAA9mC,EAAAlD,EAAAyS,GACA,GAAAnP,GACA5C,EAKA8wB,EAJA4Y,KACAH,EAAA1kB,EAAAhiB,OACA2mC,EAAAlqC,EAAAuD,OACA8mC,EAAA,GAAAziC,OAAAqiC,EAKA,KAAA3mC,EAAA,EAAaA,EAAA2mC,IAAiB3mC,GAC9B5C,EAAA6kB,EAAAjiB,MACA+mC,EAAA/mC,GAAAkuB,EAAA8Y,GAAA73B,EAAAhU,KAAAiC,IAAAqoC,SAAAzlC,EAAAiiB,GACAiM,IAAA4Y,GACAlnC,EAAAI,GAAA5C,EAEA0pC,EAAA5Y,GAAA9wB,EAQA,KAAA4C,EAAA,EAAaA,EAAA4mC,IAAgB5mC,EAC7BkuB,EAAA8Y,GAAA73B,EAAAhU,KAAA6T,EAAAtS,EAAAsD,KAAAtD,IACAU,EAAA0pC,EAAA5Y,KACAwY,EAAA1mC,GAAA5C,EACAA,EAAAqoC,SAAA/oC,EAAAsD,GACA8mC,EAAA5Y,GAAA,MAEAxvB,EAAAsB,GAAA,GAAAqmC,GAAAr3B,EAAAtS,EAAAsD,GAKA,KAAAA,EAAA,EAAaA,EAAA2mC,IAAiB3mC,GAC9B5C,EAAA6kB,EAAAjiB,KAAA8mC,EAAAC,EAAA/mC,MAAA5C,IACAwC,EAAAI,GAAA5C,GAsGA,QAAA8E,GAAAE,EAAAC,GACA,MAAAD,GAAAC,GAAA,EAAAD,EAAAC,EAAA,EAAAD,GAAAC,EAAA,EAAAqB,IAiDA,QAAAujC,GAAApoC,GACA,kBACAjE,KAAAssC,gBAAAroC,IAIA,QAAAsoC,GAAAxC,GACA,kBACA/pC,KAAAwsC,kBAAAzC,EAAAC,MAAAD,EAAAE,QAIA,QAAAwC,GAAAxoC,EAAAwG,GACA,kBACAzK,KAAA21B,aAAA1xB,EAAAwG,IAIA,QAAAiiC,GAAA3C,EAAAt/B,GACA,kBACAzK,KAAA2sC,eAAA5C,EAAAC,MAAAD,EAAAE,MAAAx/B,IAIA,QAAAmiC,GAAA3oC,EAAAwG,GACA,kBACA,GAAAM,GAAAN,EAAAyZ,MAAAlkB,KAAA8G,UACA,OAAAiE,EAAA/K,KAAAssC,gBAAAroC,GACAjE,KAAA21B,aAAA1xB,EAAA8G,IAIA,QAAA8hC,GAAA9C,EAAAt/B,GACA,kBACA,GAAAM,GAAAN,EAAAyZ,MAAAlkB,KAAA8G,UACA,OAAAiE,EAAA/K,KAAAwsC,kBAAAzC,EAAAC,MAAAD,EAAAE,OACAjqC,KAAA2sC,eAAA5C,EAAAC,MAAAD,EAAAE,MAAAl/B,IA0BA,QAAA+hC,GAAA7oC,GACA,kBACAjE,KAAA2E,MAAAooC,eAAA9oC,IAIA,QAAA+oC,GAAA/oC,EAAAwG,EAAAwiC,GACA,kBACAjtC,KAAA2E,MAAAuoC,YAAAjpC,EAAAwG,EAAAwiC,IAIA,QAAAE,GAAAlpC,EAAAwG,EAAAwiC,GACA,kBACA,GAAAliC,GAAAN,EAAAyZ,MAAAlkB,KAAA8G,UACA,OAAAiE,EAAA/K,KAAA2E,MAAAooC,eAAA9oC,GACAjE,KAAA2E,MAAAuoC,YAAAjpC,EAAA8G,EAAAkiC,IAaA,QAAAG,GAAA5qC,EAAAyB,GACA,MAAAzB,GAAAmC,MAAA0wB,iBAAApxB,IACAgxB,GAAAzyB,GAAA2yB,iBAAA3yB,EAAA,MAAA6yB,iBAAApxB,GAGA,QAAAopC,GAAAppC,GACA,wBACAjE,MAAAiE,IAIA,QAAAqpC,GAAArpC,EAAAwG,GACA,kBACAzK,KAAAiE,GAAAwG,GAIA,QAAA8iC,GAAAtpC,EAAAwG,GACA,kBACA,GAAAM,GAAAN,EAAAyZ,MAAAlkB,KAAA8G,UACA,OAAAiE,QAAA/K,MAAAiE,GACAjE,KAAAiE,GAAA8G,GAaA,QAAAyiC,GAAArV,GACA,MAAAA,GAAAzjB,OAAA0O,MAAA,SAGA,QAAAqqB,GAAAjrC,GACA,MAAAA,GAAAirC,WAAA,GAAAC,GAAAlrC,GAGA,QAAAkrC,GAAAlrC,GACAxC,KAAA2tC,MAAAnrC,EACAxC,KAAA4tC,OAAAJ,EAAAhrC,EAAAqrC,aAAA,cAuBA,QAAAC,GAAAtrC,EAAA6lC,GAEA,IADA,GAAA0F,GAAAN,EAAAjrC,GAAA4C,GAAA,EAAAqE,EAAA4+B,EAAAhjC,SACAD,EAAAqE,GAAAskC,EAAApb,IAAA0V,EAAAjjC,IAGA,QAAA4oC,GAAAxrC,EAAA6lC,GAEA,IADA,GAAA0F,GAAAN,EAAAjrC,GAAA4C,GAAA,EAAAqE,EAAA4+B,EAAAhjC,SACAD,EAAAqE,GAAAskC,EAAA7oC,OAAAmjC,EAAAjjC,IAGA,QAAA6oC,GAAA5F,GACA,kBACAyF,EAAA9tC,KAAAqoC,IAIA,QAAA6F,GAAA7F,GACA,kBACA2F,EAAAhuC,KAAAqoC,IAIA,QAAA8F,GAAA9F,EAAA59B,GACA,mBACAA,EAAAyZ,MAAAlkB,KAAA8G,WAAAgnC,EAAAE,GAAAhuC,KAAAqoC,IAmBA,QAAA+F,KACApuC,KAAAquC,YAAA,GAGA,QAAAC,GAAA7jC,GACA,kBACAzK,KAAAquC,YAAA5jC,GAIA,QAAA8jC,GAAA9jC,GACA,kBACA,GAAAM,GAAAN,EAAAyZ,MAAAlkB,KAAA8G,UACA9G,MAAAquC,YAAA,MAAAtjC,EAAA,GAAAA,GAaA,QAAAyjC,KACAxuC,KAAAyuC,UAAA,GAGA,QAAAC,GAAAjkC,GACA,kBACAzK,KAAAyuC,UAAAhkC,GAIA,QAAAkkC,GAAAlkC,GACA,kBACA,GAAAM,GAAAN,EAAAyZ,MAAAlkB,KAAA8G,UACA9G,MAAAyuC,UAAA,MAAA1jC,EAAA,GAAAA,GAaA,QAAA6gB,KACA5rB,KAAA4uC,aAAA5uC,KAAA6uC,WAAAzZ,YAAAp1B,MAOA,QAAA8uC,KACA9uC,KAAA+uC,iBAAA/uC,KAAA6uC,WAAAG,aAAAhvC,UAAA6uC,WAAAI,YAcA,QAAAC,KACA,YAWA,QAAAhqC,KACA,GAAAkP,GAAApU,KAAA6uC,UACAz6B,MAAAkhB,YAAAt1B,MAaA,QAAAmvC,GAAA3sC,EAAA8gB,EAAA8rB,GACA,GAAAC,GAAApa,GAAAzyB,GACA+nC,EAAA8E,EAAAC,WAEA,mBAAA/E,GACAA,EAAA,GAAAA,GAAAjnB,EAAA8rB,IAEA7E,EAAA8E,EAAAza,SAAA2a,YAAA,SACAH,GAAA7E,EAAAiF,UAAAlsB,EAAA8rB,EAAAK,QAAAL,EAAAM,YAAAnF,EAAAoF,OAAAP,EAAAO,QACApF,EAAAiF,UAAAlsB,GAAA,OAGA9gB,EAAA2sC,cAAA5E,GAGA,QAAAqF,GAAAtsB,EAAA8rB,GACA,kBACA,MAAAD,GAAAnvC,KAAAsjB,EAAA8rB,IAIA,QAAAS,GAAAvsB,EAAA8rB,GACA,kBACA,MAAAD,GAAAnvC,KAAAsjB,EAAA8rB,EAAAlrB,MAAAlkB,KAAA8G,aAYA,QAAAgpC,GAAAC,EAAAC,GACAhwC,KAAAiwC,QAAAF,EACA/vC,KAAAkwC,SAAAF,EAGA,QAAAG,KACA,UAAAL,KAAAlb,SAAAG,kBAAAr1B,IA/2BA,GAAAmqC,GAAA,+BAEAuG,IACA9tC,IAAA,6BACAunC,QACAwG,MAAA,+BACAC,IAAA,uCACAC,MAAA,iCAGAC,GAAA,SAAAvsC,GACA,GAAA4iB,GAAA5iB,GAAA,GAAAmB,EAAAyhB,EAAAxD,QAAA,IAEA,OADAje,IAAA,cAAAyhB,EAAA5iB,EAAAmH,MAAA,EAAAhG,MAAAnB,IAAAmH,MAAAhG,EAAA,IACAgrC,GAAAz6B,eAAAkR,IAA8CmjB,MAAAoG,GAAAvpB,GAAAojB,MAAAhmC,GAAuCA,GAmBrFwsC,GAAA,SAAAxsC,GACA,GAAA8lC,GAAAyG,GAAAvsC,EACA,QAAA8lC,EAAAE,MACAH,EACAL,GAAAM,IAGAI,GAAA,CAUAD,GAAA/+B,UAAA8+B,EAAA9+B,WACAwN,YAAAuxB,EACA3mB,IAAA,SAAA/gB,GAEA,IADA,GAAAnC,GAAAL,KAAA2M,IACAtM,IAAAmC,KAAA,KAAAA,IAAAqsC,YAAA,MACA,OAAArsC,GAAAnC,IAEAmjB,IAAA,SAAAhhB,EAAAiI,GACA,MAAAjI,GAAAxC,KAAA2M,GAAAlC,GAEAvF,OAAA,SAAA1C,GACA,MAAAxC,MAAA2M,IAAAnK,aAAAxC,KAAA2M,IAEA4V,SAAA,WACA,MAAAviB,MAAA2M,GAIA,IAAA+jC,IAAA,SAAAC,GACA,kBACA,MAAA3wC,MAAA4wC,QAAAD,IAIA,uBAAA/b,UAAA,CACA,GAAAic,IAAAjc,SAAAG,eACA,KAAA8b,GAAAD,QAAA,CACA,GAAAE,IAAAD,GAAAE,uBACAF,GAAAG,mBACAH,GAAAI,oBACAJ,GAAAK,gBACAR,IAAA,SAAAC,GACA,kBACA,MAAAG,IAAAvwC,KAAAP,KAAA2wC,MAMA,GAAAQ,IAAAT,GAEAtF,KAIA,IAFAxrC,EAAA2qC,MAAA,KAEA,mBAAA3V,UAAA,CACA,GAAAwc,IAAAxc,SAAAG,eACA,iBAAAqc,MACAhG,IAAoBiG,WAAA,YAAAC,WAAA,aAqEpB,GAAAC,IAAA,SAAA1tB,EAAApZ,EAAAwgC,GACA,GAAA7lC,GAAA0I,EAAAoV,EAAAD,EAAAY,EAAA,IAAApa,EAAAyZ,EAAA7d,MAEA,OAAAyB,UAAAzB,OAAA,IAcA,IAFAue,EAAAnZ,EAAAygC,EAAAJ,EACA,MAAAG,OAAA,GACA7lC,EAAA,EAAaA,EAAAqE,IAAOrE,EAAApF,KAAAmB,KAAAyiB,EAAAV,EAAA9d,GAAAqF,EAAAwgC,GACpB,OAAAjrC,MAdA,GAAA4jB,GAAA5jB,KAAAwC,OAAAuoC,IACA,IAAAnnB,EAAA,OAAA7N,GAAAzI,EAAA,EAAA9M,EAAAojB,EAAAve,OAA6CiI,EAAA9M,IAAO8M,EACpD,IAAAlI,EAAA,EAAA2Q,EAAA6N,EAAAtW,GAA4BlI,EAAAqE,IAAOrE,EACnC,IAAA0I,EAAAoV,EAAA9d,IAAAke,OAAAvN,EAAAuN,MAAAxV,EAAA7J,OAAA8R,EAAA9R,KACA,MAAA8R,GAAAtL,QAwBA8gC,GAAA,WAEA,IADA,GAAAvhB,GAAAwnB,EAAA5xC,EAAA2qC,MACAvgB,EAAAwnB,EAAAjG,aAAAiG,EAAAxnB,CACA,OAAAwnB,IAGApoB,GAAA,SAAA5mB,EAAA+nC,GACA,GAAAjoC,GAAAE,EAAAivC,iBAAAjvC,CAEA,IAAAF,EAAAovC,eAAA,CACA,GAAAtoB,GAAA9mB,EAAAovC,gBAGA,OAFAtoB,GAAA/hB,EAAAkjC,EAAAoH,QAAAvoB,EAAAnS,EAAAszB,EAAAqH,QACAxoB,IAAAyoB,gBAAArvC,EAAAsvC,eAAAC,YACA3oB,EAAA/hB,EAAA+hB,EAAAnS,GAGA,GAAA+6B,GAAAxvC,EAAAC,uBACA,QAAA8nC,EAAAoH,QAAAK,EAAAxwC,KAAAgB,EAAAyvC,WAAA1H,EAAAqH,QAAAI,EAAApwC,IAAAY,EAAA0vC,YAGAC,GAAA,SAAA3vC,GACA,GAAA+nC,GAAAgB,IAEA,OADAhB,GAAA6H,iBAAA7H,IAAA6H,eAAA,IACAhpB,GAAA5mB,EAAA+nC,IAKAoG,GAAA,SAAAA,GACA,aAAAA,EAAAnF,EAAA,WACA,MAAAxrC,MAAAqyC,cAAA1B,KAIA2B,GAAA,SAAA/vC,GACA,kBAAAA,OAAAouC,GAAApuC,GAEA,QAAAwtC,GAAA/vC,KAAAiwC,QAAAzvC,EAAAuvC,EAAA1qC,OAAAktC,EAAA,GAAA7oC,OAAAlJ,GAAA8M,EAAA,EAAqFA,EAAA9M,IAAO8M,EAC5F,OAAA9K,GAAAgwC,EAAAnrB,EAAA0oB,EAAAziC,GAAA7D,EAAA4d,EAAAhiB,OAAAotC,EAAAF,EAAAjlC,GAAA,GAAA5D,OAAAD,GAAArE,EAAA,EAA+GA,EAAAqE,IAAOrE,GACtH5C,EAAA6kB,EAAAjiB,MAAAotC,EAAAjwC,EAAAhC,KAAAiC,IAAAqoC,SAAAzlC,EAAAiiB,MACA,YAAA7kB,KAAAgwC,EAAA3H,SAAAroC,EAAAqoC,UACA4H,EAAArtC,GAAAotC,EAKA,WAAA1C,GAAAyC,EAAAvyC,KAAAkwC,WAOAwC,GAAA,SAAA/B,GACA,aAAAA,EAAA5d,EAAA,WACA,MAAA/yB,MAAA2yC,iBAAAhC,KAIAiC,GAAA,SAAArwC,GACA,kBAAAA,OAAAmwC,GAAAnwC,GAEA,QAAAwtC,GAAA/vC,KAAAiwC,QAAAzvC,EAAAuvC,EAAA1qC,OAAAktC,KAAAvC,KAAA1iC,EAAA,EAAyFA,EAAA9M,IAAO8M,EAChG,OAAA9K,GAAA6kB,EAAA0oB,EAAAziC,GAAA7D,EAAA4d,EAAAhiB,OAAAD,EAAA,EAA8DA,EAAAqE,IAAOrE,GACrE5C,EAAA6kB,EAAAjiB,MACAmtC,EAAA7lC,KAAAnK,EAAAhC,KAAAiC,IAAAqoC,SAAAzlC,EAAAiiB,IACA2oB,EAAAtjC,KAAAlK,GAKA,WAAAstC,GAAAyC,EAAAvC,IAGA6C,GAAA,SAAAvuB,GACA,kBAAAA,OAAA6sB,GAAA7sB,GAEA,QAAAyrB,GAAA/vC,KAAAiwC,QAAAzvC,EAAAuvC,EAAA1qC,OAAAktC,EAAA,GAAA7oC,OAAAlJ,GAAA8M,EAAA,EAAqFA,EAAA9M,IAAO8M,EAC5F,OAAA9K,GAAA6kB,EAAA0oB,EAAAziC,GAAA7D,EAAA4d,EAAAhiB,OAAAotC,EAAAF,EAAAjlC,MAAAlI,EAAA,EAA4FA,EAAAqE,IAAOrE,GACnG5C,EAAA6kB,EAAAjiB,KAAAkf,EAAA/jB,KAAAiC,IAAAqoC,SAAAzlC,EAAAiiB,IACAorB,EAAA/lC,KAAAlK,EAKA,WAAAstC,GAAAyC,EAAAvyC,KAAAkwC,WAGA4C,GAAA,SAAAhH,GACA,UAAApiC,OAAAoiC,EAAAzmC,SAGA0tC,GAAA,WACA,UAAAjD,GAAA9vC,KAAAgzC,QAAAhzC,KAAAiwC,QAAA5kC,IAAAynC,IAAA9yC,KAAAkwC,UAWAzE,GAAAtgC,WACAwN,YAAA8yB,EACArW,YAAA,SAAA6d,GAAgC,MAAAjzC,MAAA4rC,QAAAoD,aAAAiE,EAAAjzC,KAAA2rC,QAChCqD,aAAA,SAAAiE,EAAAC,GAAuC,MAAAlzC,MAAA4rC,QAAAoD,aAAAiE,EAAAC,IACvCb,cAAA,SAAA1B,GAAqC,MAAA3wC,MAAA4rC,QAAAyG,cAAA1B,IACrCgC,iBAAA,SAAAhC,GAAwC,MAAA3wC,MAAA4rC,QAAA+G,iBAAAhC,IAGxC,IAAArlC,IAAA,SAAAjE,GACA,kBACA,MAAAA,KAIA+kC,GAAA,IAwEA+G,GAAA,SAAA1oC,EAAA8J,GACA,IAAA9J,EAGA,MAFA3I,GAAA,GAAA4H,OAAA1J,KAAA+F,QAAAuH,GAAA,EACAtN,KAAAmB,KAAA,SAAAgE,GAA2BrD,IAAAwL,GAAAnI,IAC3BrD,CAGA,IAAAsxC,GAAA7+B,EAAA03B,EAAAJ,EACAmE,EAAAhwC,KAAAkwC,SACAH,EAAA/vC,KAAAiwC,OAEA,mBAAAxlC,OAAAa,GAAAb,GAEA,QAAAjK,GAAAuvC,EAAA1qC,OAAAymC,EAAA,GAAApiC,OAAAlJ,GAAAsD,EAAA,GAAA4F,OAAAlJ,GAAAwE,EAAA,GAAA0E,OAAAlJ,GAAA8M,EAAA,EAAsGA,EAAA9M,IAAO8M,EAAA,CAC7G,GAAA8G,GAAA47B,EAAA1iC,GACA+Z,EAAA0oB,EAAAziC,GACAy+B,EAAA1kB,EAAAhiB,OACAvD,EAAA2I,EAAAlK,KAAA6T,OAAAy2B,SAAAv9B,EAAA0iC,GACAhE,EAAAlqC,EAAAuD,OACAguC,EAAAvvC,EAAAwJ,GAAA,GAAA5D,OAAAsiC,GACAsH,EAAAxH,EAAAx+B,GAAA,GAAA5D,OAAAsiC,GACAuH,EAAAvuC,EAAAsI,GAAA,GAAA5D,OAAAqiC,EAEAqH,GAAAh/B,EAAAiT,EAAAgsB,EAAAC,EAAAC,EAAAzxC,EAAAyS,EAKA,QAAAi/B,GAAAN,EAAAnpC,EAAA,EAAAC,EAAA,EAA4CD,EAAAiiC,IAAiBjiC,EAC7D,GAAAypC,EAAAH,EAAAtpC,GAAA,CAEA,IADAA,GAAAC,MAAAD,EAAA,KACAmpC,EAAAI,EAAAtpC,SAAAgiC,IACAwH,EAAA7H,MAAAuH,GAAA,MAQA,MAHApH,GAAA,GAAAgE,GAAAhE,EAAAkE,GACAlE,EAAAkH,OAAAlvC,EACAgoC,EAAA2H,MAAAzuC,EACA8mC,GAGA4H,GAAA,WACA,UAAA5D,GAAA9vC,KAAAyzC,OAAAzzC,KAAAiwC,QAAA5kC,IAAAynC,IAAA9yC,KAAAkwC,WAGAyD,GAAA,SAAAxD,GAEA,OAAAyD,GAAA5zC,KAAAiwC,QAAA4D,EAAA1D,EAAAF,QAAA6D,EAAAF,EAAAvuC,OAAAmR,EAAAq9B,EAAAxuC,OAAA7E,EAAAuH,KAAAmD,IAAA4oC,EAAAt9B,GAAAu9B,EAAA,GAAArqC,OAAAoqC,GAAAxmC,EAAA,EAA8JA,EAAA9M,IAAO8M,EACrK,OAAA9K,GAAAwxC,EAAAJ,EAAAtmC,GAAA2mC,EAAAJ,EAAAvmC,GAAA7D,EAAAuqC,EAAA3uC,OAAAZ,EAAAsvC,EAAAzmC,GAAA,GAAA5D,OAAAD,GAAArE,EAAA,EAAwHA,EAAAqE,IAAOrE,GAC/H5C,EAAAwxC,EAAA5uC,IAAA6uC,EAAA7uC,MACAX,EAAAW,GAAA5C,EAKA,MAAQ8K,EAAAwmC,IAAQxmC,EAChBymC,EAAAzmC,GAAAsmC,EAAAtmC,EAGA,WAAAwiC,GAAAiE,EAAA/zC,KAAAkwC,WAGAgE,GAAA,WAEA,OAAAnE,GAAA/vC,KAAAiwC,QAAA3iC,GAAA,EAAA9M,EAAAuvC,EAAA1qC,SAA4DiI,EAAA9M,GAC5D,OAAAgC,GAAA6kB,EAAA0oB,EAAAziC,GAAAlI,EAAAiiB,EAAAhiB,OAAA,EAAA6tC,EAAA7rB,EAAAjiB,KAA4EA,GAAA,IAC5E5C,EAAA6kB,EAAAjiB,MACA8tC,OAAA1wC,EAAAosC,aAAAsE,EAAArE,WAAAG,aAAAxsC,EAAA0wC,GACAA,EAAA1wC,EAKA,OAAAxC,OAGAm0C,GAAA,SAAAnrC,GAGA,QAAAorC,GAAA5sC,EAAAC,GACA,MAAAD,IAAAC,EAAAuB,EAAAxB,EAAAqjC,SAAApjC,EAAAojC,WAAArjC,GAAAC,EAHAuB,MAAA1B,EAMA,QAAAyoC,GAAA/vC,KAAAiwC,QAAAzvC,EAAAuvC,EAAA1qC,OAAAgvC,EAAA,GAAA3qC,OAAAlJ,GAAA8M,EAAA,EAAsFA,EAAA9M,IAAO8M,EAAA,CAC7F,OAAA9K,GAAA6kB,EAAA0oB,EAAAziC,GAAA7D,EAAA4d,EAAAhiB,OAAAivC,EAAAD,EAAA/mC,GAAA,GAAA5D,OAAAD,GAAArE,EAAA,EAAwGA,EAAAqE,IAAOrE,GAC/G5C,EAAA6kB,EAAAjiB,MACAkvC,EAAAlvC,GAAA5C,EAGA8xC,GAAAtnC,KAAAonC,GAGA,UAAAtE,GAAAuE,EAAAr0C,KAAAkwC,UAAAvc,SAOA4gB,GAAA,WACA,GAAA9wB,GAAA3c,UAAA,EAGA,OAFAA,WAAA,GAAA9G,KACAyjB,EAAAS,MAAA,KAAApd,WACA9G,MAGAw0C,GAAA,WACA,GAAAC,GAAA,GAAA/qC,OAAA1J,KAAA+F,QAAAX,GAAA,CAEA,OADApF,MAAAmB,KAAA,WAAwBszC,IAAArvC,GAAApF,OACxBy0C,GAGAC,GAAA,WAEA,OAAA3E,GAAA/vC,KAAAiwC,QAAA3iC,EAAA,EAAA9M,EAAAuvC,EAAA1qC,OAA2DiI,EAAA9M,IAAO8M,EAClE,OAAA+Z,GAAA0oB,EAAAziC,GAAAlI,EAAA,EAAAqE,EAAA4d,EAAAhiB,OAAwDD,EAAAqE,IAAOrE,EAAA,CAC/D,GAAA5C,GAAA6kB,EAAAjiB,EACA,IAAA5C,EAAA,MAAAA,GAIA,aAGAmyC,GAAA,WACA,GAAA5uC,GAAA,CAEA,OADA/F,MAAAmB,KAAA,aAAwB4E,IACxBA,GAGA6uC,GAAA,WACA,OAAA50C,KAAAwC,QAGAqyC,GAAA,SAAApxB,GAEA,OAAAssB,GAAA/vC,KAAAiwC,QAAA3iC,EAAA,EAAA9M,EAAAuvC,EAAA1qC,OAA2DiI,EAAA9M,IAAO8M,EAClE,OAAA9K,GAAA6kB,EAAA0oB,EAAAziC,GAAAlI,EAAA,EAAAqE,EAAA4d,EAAAhiB,OAA8DD,EAAAqE,IAAOrE,GACrE5C,EAAA6kB,EAAAjiB,KAAAqe,EAAAljB,KAAAiC,IAAAqoC,SAAAzlC,EAAAiiB,EAIA,OAAArnB,OA2CA80C,GAAA,SAAA7wC,EAAAwG,GACA,GAAAs/B,GAAAyG,GAAAvsC,EAEA,IAAA6C,UAAAzB,OAAA,GACA,GAAA7C,GAAAxC,KAAAwC,MACA,OAAAunC,GAAAE,MACAznC,EAAAuyC,eAAAhL,EAAAC,MAAAD,EAAAE,OACAznC,EAAAqrC,aAAA9D,GAGA,MAAA/pC,MAAAmB,MAAA,MAAAsJ,EACAs/B,EAAAE,MAAAsC,EAAAF,EAAA,kBAAA5hC,GACAs/B,EAAAE,MAAA4C,EAAAD,EACA7C,EAAAE,MAAAyC,EAAAD,GAAA1C,EAAAt/B,KAGAwqB,GAAA,SAAAzyB,GACA,MAAAA,GAAAknC,eAAAlnC,EAAAknC,cAAAzU,aACAzyB,EAAAoyB,UAAApyB,GACAA,EAAAyyB,aAuBA+f,GAAA,SAAA/wC,EAAAwG,EAAAwiC,GACA,MAAAnmC,WAAAzB,OAAA,EACArF,KAAAmB,MAAA,MAAAsJ,EACAqiC,EAAA,kBAAAriC,GACA0iC,EACAH,GAAA/oC,EAAAwG,EAAA,MAAAwiC,EAAA,GAAAA,IACAG,EAAAptC,KAAAwC,OAAAyB,IA4BAgxC,GAAA,SAAAhxC,EAAAwG,GACA,MAAA3D,WAAAzB,OAAA,EACArF,KAAAmB,MAAA,MAAAsJ,EACA4iC,EAAA,kBAAA5iC,GACA8iC,EACAD,GAAArpC,EAAAwG,IACAzK,KAAAwC,OAAAyB,GAgBAypC,GAAAviC,WACAwnB,IAAA,SAAA1uB,GACA,GAAAmB,GAAApF,KAAA4tC,OAAAvqB,QAAApf,EACAmB,GAAA,IACApF,KAAA4tC,OAAAlhC,KAAAzI,GACAjE,KAAA2tC,MAAAhY,aAAA,QAAA31B,KAAA4tC,OAAAhoB,KAAA,QAGA1gB,OAAA,SAAAjB,GACA,GAAAmB,GAAApF,KAAA4tC,OAAAvqB,QAAApf,EACAmB,IAAA,IACApF,KAAA4tC,OAAAsH,OAAA9vC,EAAA,GACApF,KAAA2tC,MAAAhY,aAAA,QAAA31B,KAAA4tC,OAAAhoB,KAAA,QAGAuvB,SAAA,SAAAlxC,GACA,MAAAjE,MAAA4tC,OAAAvqB,QAAApf,IAAA,GAgCA,IAAAmxC,IAAA,SAAAnxC,EAAAwG,GACA,GAAA49B,GAAAmF,EAAAvpC,EAAA,GAEA,IAAA6C,UAAAzB,OAAA,GAEA,IADA,GAAA0oC,GAAAN,EAAAztC,KAAAwC,QAAA4C,GAAA,EAAAqE,EAAA4+B,EAAAhjC,SACAD,EAAAqE,GAAA,IAAAskC,EAAAoH,SAAA9M,EAAAjjC,IAAA,QACA,UAGA,MAAApF,MAAAmB,MAAA,kBAAAsJ,GACA0jC,EAAA1jC,EACAwjC,EACAC,GAAA7F,EAAA59B,KAoBA4qC,GAAA,SAAA5qC,GACA,MAAA3D,WAAAzB,OACArF,KAAAmB,KAAA,MAAAsJ,EACA2jC,GAAA,kBAAA3jC,GACA8jC,EACAD,GAAA7jC,IACAzK,KAAAwC,OAAA6rC,aAoBAiH,GAAA,SAAA7qC,GACA,MAAA3D,WAAAzB,OACArF,KAAAmB,KAAA,MAAAsJ,EACA+jC,GAAA,kBAAA/jC,GACAkkC,EACAD,GAAAjkC,IACAzK,KAAAwC,OAAAisC,WAOA8G,GAAA,WACA,MAAAv1C,MAAAmB,KAAAyqB,IAOA4pB,GAAA,WACA,MAAAx1C,MAAAmB,KAAA2tC,IAGA2G,GAAA,SAAAxxC,GACA,GAAAqQ,GAAA,kBAAArQ,KAAAwsC,GAAAxsC,EACA,OAAAjE,MAAAuC,OAAA,WACA,MAAAvC,MAAAo1B,YAAA9gB,EAAA4P,MAAAlkB,KAAA8G,eAQA4uC,GAAA,SAAAzxC,EAAA0xC,GACA,GAAArhC,GAAA,kBAAArQ,KAAAwsC,GAAAxsC,GACA1B,EAAA,MAAAozC,EAAAzG,EAAA,kBAAAyG,KAAAhF,GAAAgF,EACA,OAAA31C,MAAAuC,OAAA,WACA,MAAAvC,MAAAgvC,aAAA16B,EAAA4P,MAAAlkB,KAAA8G,WAAAvE,EAAA2hB,MAAAlkB,KAAA8G,YAAA,SASA8uC,GAAA,WACA,MAAA51C,MAAAmB,KAAA+D,IAGA2wC,GAAA,SAAAprC,GACA,MAAA3D,WAAAzB,OACArF,KAAA4yB,SAAA,WAAAnoB,GACAzK,KAAAwC,OAAAqoC,UA8BAiL,GAAA,SAAAxyB,EAAA8rB,GACA,MAAApvC,MAAAmB,MAAA,kBAAAiuC,GACAS,EACAD,GAAAtsB,EAAA8rB,KAGA1vC,IAAA,KAWAowC,GAAA3kC,UAAAglC,EAAAhlC,WACAwN,YAAAm3B,EACAvtC,OAAA+vC,GACA7uC,UAAAmvC,GACA1sC,OAAA2sC,GACA/wC,KAAAqxC,GACArvC,MAAAivC,GACA/tC,KAAA0uC,GACAjvC,MAAAkvC,GACAhgB,MAAAugB,GACAlnC,KAAAmnC,GACA5zC,KAAAg0C,GACAE,MAAAD,GACAhyC,KAAAkyC,GACA3uC,KAAA4uC,GACA5hB,MAAA6hB,GACAzzC,KAAA0zC,GACA5xC,KAAA6xC,GACAnwC,MAAAqwC,GACApiB,SAAAqiB,GACAjyC,QAAAoyC,GACAvwC,KAAAwwC,GACAU,KAAAT,GACA1pB,MAAA2pB,GACAzG,MAAA0G,GACAzyC,OAAA0yC,GACAO,OAAAN,GACAxwC,OAAA0wC,GACAlK,MAAAmK,GACAjyB,GAAA2tB,GACAzuB,SAAAgzB,GAGA,IAAAvzC,IAAA,SAAAouC,GACA,sBAAAA,GACA,GAAAb,KAAAlb,SAAAyd,cAAA1B,MAAA/b,SAAAG,kBACA,GAAA+a,KAAAa,IAAAjxC,KAGA+D,GAAA,SAAAktC,GACA,sBAAAA,GACA,GAAAb,IAAAlb,SAAA+d,iBAAAhC,KAAA/b,SAAAG,kBACA,GAAA+a,IAAA,MAAAa,QAAAjxC,KAGAu2C,GAAA,SAAAzzC,EAAA0zC,EAAAC,GACArvC,UAAAzB,OAAA,IAAA8wC,EAAAD,IAAA3K,KAAA6G,eAEA,QAAA6D,GAAA7wC,EAAA,EAAAqE,EAAAysC,IAAA7wC,OAAA,EAA0DD,EAAAqE,IAAOrE,EACjE,IAAA6wC,EAAAC,EAAA9wC,IAAA+wC,eACA,MAAA/sB,IAAA5mB,EAAAyzC,EAIA,cAGAC,GAAA,SAAA1zC,EAAA0zC,GACA,MAAAA,MAAA3K,KAAA2K,QAEA,QAAA9wC,GAAA,EAAAqE,EAAAysC,IAAA7wC,OAAA,EAAA+wC,EAAA,GAAA1sC,OAAAD,GAA0ErE,EAAAqE,IAAOrE,EACjFgxC,EAAAhxC,GAAAgkB,GAAA5mB,EAAA0zC,EAAA9wC,GAGA,OAAAgxC,GAGAx2C,GAAA6wC,WACA7wC,EAAAqqC,QACArqC,EAAA8wC,QAAAS,GACAvxC,EAAAuyC,SACAvyC,EAAA4wC,aACA5wC,EAAAwwC,cACAxwC,EAAA2C,UACA3C,EAAA6D,aACA7D,EAAAuwC,YACAvwC,EAAA+wC,YACA/wC,EAAA8yC,eACA9yC,EAAA+E,MAAAyoC,EACAxtC,EAAAq2C,SACAr2C,EAAAs2C,WACAt2C,EAAAyvC,OAAApa,GACAr1B,EAAA0rC,cAEA98B,OAAAC,eAAA7O,EAAA,cAA8C6K,OAAA,Obu5JxC,SAAU5K,EAAQD,EAASM,Icn2LjC,SAAAgH,EAAAvH,GACAA,EAAAC,EAAAM,EAAA,IAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,KAGCF,KAAA,SAAAJ,EAAAmB,EAAAs1C,EAAAC,EAAAruB,EAAAG,EAAAmuB,GAAwF,YAgCzF,SAAAC,GAAAh0C,EAAAnC,GACA,GAAAo2C,GAAAj0C,EAAAk0C,YACA,KAAAD,SAAAp2C,KAAAo2C,EAAAE,MAAAC,EAAA,SAAA7zB,OAAA,WACA,OAAA0zB,GAGA,QAAAjzB,GAAAhhB,EAAAnC,GACA,GAAAo2C,GAAAj0C,EAAAk0C,YACA,KAAAD,SAAAp2C,KAAAo2C,EAAAE,MAAAE,EAAA,SAAA9zB,OAAA,WACA,OAAA0zB,GAGA,QAAAlzB,GAAA/gB,EAAAnC,GACA,GAAAo2C,GAAAj0C,EAAAk0C,YACA,KAAAD,SAAAp2C,IAAA,SAAA0iB,OAAA,WACA,OAAA0zB,GAGA,QAAAniC,GAAA9R,EAAAnC,EAAAy2C,GASA,QAAAL,GAAAM,GACAD,EAAAH,MAAAK,EACAF,EAAAG,MAAAC,QAAAvvC,EAAAmvC,EAAAK,MAAAL,EAAA1oB,MAGA0oB,EAAAK,OAAAJ,GAAApvC,EAAAovC,EAAAD,EAAAK,OAGA,QAAAxvC,GAAAovC,GACA,GAAA3xC,GAAAkI,EAAA7D,EAAAsM,CAGA,IAAA+gC,EAAAH,QAAAK,EAAA,MAAApvC,IAEA,KAAAxC,IAAAgyC,GAEA,GADArhC,EAAAqhC,EAAAhyC,GACA2Q,EAAA9R,OAAA6yC,EAAA7yC,KAAA,CAKA,GAAA8R,EAAA4gC,QAAAU,EAAA,MAAAf,GAAAgB,QAAA3vC,EAIAoO,GAAA4gC,QAAAY,GACAxhC,EAAA4gC,MAAAa,EACAzhC,EAAAkhC,MAAArvC,OACAmO,EAAA6N,GAAArjB,KAAA,YAAAiC,IAAAqoC,SAAA90B,EAAAyS,MAAAzS,EAAAsR,aACA+vB,GAAAhyC,KAMAA,EAAA/E,IACA0V,EAAA4gC,MAAAa,EACAzhC,EAAAkhC,MAAArvC,aACAwvC,GAAAhyC,IAoBA,GAZAkxC,EAAAgB,QAAA,WACAR,EAAAH,QAAAU,IACAP,EAAAH,MAAAY,EACAT,EAAAG,MAAAC,QAAAO,EAAAX,EAAAK,MAAAL,EAAA1oB,MACAqpB,EAAAV,MAMAD,EAAAH,MAAAE,EACAC,EAAAlzB,GAAArjB,KAAA,QAAAiC,IAAAqoC,SAAAiM,EAAAtuB,MAAAsuB,EAAAzvB,OACAyvB,EAAAH,QAAAE,EAAA,CAKA,IAJAC,EAAAH,MAAAU,EAGAK,EAAA,GAAAhuC,OAAAD,EAAAqtC,EAAAY,MAAAryC,QACAD,EAAA,EAAAkI,GAAA,EAAuBlI,EAAAqE,IAAOrE,GAC9B2Q,EAAA+gC,EAAAY,MAAAtyC,GAAAqF,MAAAlK,KAAAiC,IAAAqoC,SAAAiM,EAAAtuB,MAAAsuB,EAAAzvB,UACAqwB,IAAApqC,GAAAyI,EAGA2hC,GAAAryC,OAAAiI,EAAA,GAGA,QAAAmqC,GAAAV,GAKA,IAJA,GAAAjpC,GAAAipC,EAAAD,EAAA7c,SAAA6c,EAAAa,KAAAp3C,KAAA,KAAAw2C,EAAAD,EAAA7c,WAAA6c,EAAAG,MAAAC,QAAAtvC,GAAAkvC,EAAAH,MAAAiB,EAAA,GACAxyC,GAAA,EACAqE,EAAAiuC,EAAAryC,SAEAD,EAAAqE,GACAiuC,EAAAtyC,GAAA7E,KAAA,KAAAuN,EAIAgpC,GAAAH,QAAAiB,IACAd,EAAAlzB,GAAArjB,KAAA,MAAAiC,IAAAqoC,SAAAiM,EAAAtuB,MAAAsuB,EAAAzvB,OACAzf,KAIA,QAAAA,KACAkvC,EAAAH,MAAAa,EACAV,EAAAG,MAAArvC,aACAwvC,GAAA/2C,EACA,QAAA+E,KAAAgyC,GAAA,aACA50C,GAAAk0C,aApGA,GACAgB,GADAN,EAAA50C,EAAAk0C,YAKAU,GAAA/2C,GAAAy2C,EACAA,EAAAG,MAAAX,EAAAW,MAAAR,EAAA,EAAAK,EAAA1oB,MA+HA,QAAAypB,GAAAx3C,EAAA4D,GACA,GAAA6zC,GAAAC,CACA,mBACA,GAAAtB,GAAAjzB,EAAAxjB,KAAAK,GACAq3C,EAAAjB,EAAAiB,KAKA,IAAAA,IAAAI,EAAA,CACAC,EAAAD,EAAAJ,CACA,QAAAtyC,GAAA,EAAAqE,EAAAsuC,EAAA1yC,OAAwCD,EAAAqE,IAAOrE,EAC/C,GAAA2yC,EAAA3yC,GAAAnB,SAAA,CACA8zC,IAAA3sC,QACA2sC,EAAA7C,OAAA9vC,EAAA,EACA,QAKAqxC,EAAAiB,MAAAK,GAIA,QAAAC,GAAA33C,EAAA4D,EAAAwG,GACA,GAAAqtC,GAAAC,CACA,sBAAAttC,GAAA,SAAAsY,MACA,mBACA,GAAA0zB,GAAAjzB,EAAAxjB,KAAAK,GACAq3C,EAAAjB,EAAAiB,KAKA,IAAAA,IAAAI,EAAA,CACAC,GAAAD,EAAAJ,GAAAtsC,OACA,QAAA0C,IAAoB7J,OAAAwG,SAAyBrF,EAAA,EAAAqE,EAAAsuC,EAAA1yC,OAA2BD,EAAAqE,IAAOrE,EAC/E,GAAA2yC,EAAA3yC,GAAAnB,SAAA,CACA8zC,EAAA3yC,GAAA0I,CACA,OAGA1I,IAAAqE,GAAAsuC,EAAArrC,KAAAoB,GAGA2oC,EAAAiB,MAAAK,GAsBA,QAAAE,GAAAhzC,EAAAhB,EAAAwG,GACA,GAAApK,GAAA4E,EAAAizC,GAOA,OALAjzC,GAAA9D,KAAA,WACA,GAAAs1C,GAAAjzB,EAAAxjB,KAAAK,IACAo2C,EAAAhsC,QAAAgsC,EAAAhsC,WAA2CxG,GAAAwG,EAAAyZ,MAAAlkB,KAAA8G,aAG3C,SAAAtE,GACA,MAAA+gB,GAAA/gB,EAAAnC,GAAAoK,MAAAxG,IAYA,QAAAooC,GAAApoC,GACA,kBACAjE,KAAAssC,gBAAAroC,IAIA,QAAAsoC,GAAAxC,GACA,kBACA/pC,KAAAwsC,kBAAAzC,EAAAC,MAAAD,EAAAE,QAIA,QAAAwC,GAAAxoC,EAAAumB,EAAA1d,GACA,GAAAqrC,GACAC,CACA,mBACA,GAAAnuC,GAAAjK,KAAA6tC,aAAA5pC,EACA,OAAAgG,KAAA6C,EAAA,KACA7C,IAAAkuC,EAAAC,EACAA,EAAA5tB,EAAA2tB,EAAAluC,EAAA6C,IAIA,QAAA4/B,GAAA3C,EAAAvf,EAAA1d,GACA,GAAAqrC,GACAC,CACA,mBACA,GAAAnuC,GAAAjK,KAAA+0C,eAAAhL,EAAAC,MAAAD,EAAAE,MACA,OAAAhgC,KAAA6C,EAAA,KACA7C,IAAAkuC,EAAAC,EACAA,EAAA5tB,EAAA2tB,EAAAluC,EAAA6C,IAIA,QAAA8/B,GAAA3oC,EAAAumB,EAAA/f,GACA,GAAA0tC,GACAE,EACAD,CACA,mBACA,GAAAnuC,GAAA6C,EAAArC,EAAAzK,KACA,cAAA8M,MAAA9M,MAAAssC,gBAAAroC,IACAgG,EAAAjK,KAAA6tC,aAAA5pC,GACAgG,IAAA6C,EAAA,KACA7C,IAAAkuC,GAAArrC,IAAAurC,EAAAD,EACAA,EAAA5tB,EAAA2tB,EAAAluC,EAAAouC,EAAAvrC,KAIA,QAAA+/B,GAAA9C,EAAAvf,EAAA/f,GACA,GAAA0tC,GACAE,EACAD,CACA,mBACA,GAAAnuC,GAAA6C,EAAArC,EAAAzK,KACA,cAAA8M,MAAA9M,MAAAwsC,kBAAAzC,EAAAC,MAAAD,EAAAE,QACAhgC,EAAAjK,KAAA+0C,eAAAhL,EAAAC,MAAAD,EAAAE,OACAhgC,IAAA6C,EAAA,KACA7C,IAAAkuC,GAAArrC,IAAAurC,EAAAD,EACAA,EAAA5tB,EAAA2tB,EAAAluC,EAAAouC,EAAAvrC,KAYA,QAAAwrC,GAAAvO,EAAAt/B,GACA,QAAAitC,KACA,GAAAl1C,GAAAxC,KAAAoF,EAAAqF,EAAAyZ,MAAA1hB,EAAAsE,UACA,OAAA1B,IAAA,SAAA0I,GACAtL,EAAAmqC,eAAA5C,EAAAC,MAAAD,EAAAE,MAAA7kC,EAAA0I,KAIA,MADA4pC,GAAAa,OAAA9tC,EACAitC,EAGA,QAAAc,GAAAv0C,EAAAwG,GACA,QAAAitC,KACA,GAAAl1C,GAAAxC,KAAAoF,EAAAqF,EAAAyZ,MAAA1hB,EAAAsE,UACA,OAAA1B,IAAA,SAAA0I,GACAtL,EAAAmzB,aAAA1xB,EAAAmB,EAAA0I,KAIA,MADA4pC,GAAAa,OAAA9tC,EACAitC,EAYA,QAAAe,GAAAp4C,EAAAoK,GACA,kBACA+rC,EAAAx2C,KAAAK,GAAA82C,OAAA1sC,EAAAyZ,MAAAlkB,KAAA8G,YAIA,QAAA4xC,GAAAr4C,EAAAoK,GACA,MAAAA,MAAA,WACA+rC,EAAAx2C,KAAAK,GAAA82C,MAAA1sC,GAcA,QAAAkuC,GAAAt4C,EAAAoK,GACA,kBACA+Y,EAAAxjB,KAAAK,GAAA45B,UAAAxvB,EAAAyZ,MAAAlkB,KAAA8G,YAIA,QAAA8xC,GAAAv4C,EAAAoK,GACA,MAAAA,MAAA,WACA+Y,EAAAxjB,KAAAK,GAAA45B,SAAAxvB,GAcA,QAAAouC,GAAAx4C,EAAAoK,GACA,qBAAAA,GAAA,SAAAsY,MACA,mBACAS,EAAAxjB,KAAAK,GAAAs3C,KAAAltC,GA4CA,QAAA9C,GAAA1D,GACA,OAAAA,EAAA,IAAAyQ,OAAA0O,MAAA,SAAAsK,MAAA,SAAA5f,GACA,GAAA1I,GAAA0I,EAAAuV,QAAA,IAEA,OADAje,IAAA,IAAA0I,IAAA1C,MAAA,EAAAhG,KACA0I,GAAA,UAAAA,IAIA,QAAAgrC,GAAAz4C,EAAA4D,EAAAomC,GACA,GAAA0O,GAAAC,EAAAC,EAAAtxC,EAAA1D,GAAAuyC,EAAAhzB,CACA,mBACA,GAAAizB,GAAAwC,EAAAj5C,KAAAK,GACAujB,EAAA6yB,EAAA7yB,EAKAA,KAAAm1B,IAAAC,GAAAD,EAAAn1B,GAAAG,QAAAH,GAAA3f,EAAAomC,GAEAoM,EAAA7yB,GAAAo1B,GAYA,QAAAE,GAAA74C,GACA,kBACA,GAAA+T,GAAApU,KAAA6uC,UACA,QAAAzpC,KAAApF,MAAA02C,aAAA,IAAAtxC,IAAA/E,EAAA,MACA+T,MAAAkhB,YAAAt1B,OAwDA,QAAA8sC,GAAA7oC,EAAAumB,GACA,GAAA2tB,GACAE,EACAD,CACA,mBACA,GAAAnuC,GAAAlJ,EAAA4D,MAAA3E,KAAAiE,GACA6I,GAAA9M,KAAA2E,MAAAooC,eAAA9oC,GAAAlD,EAAA4D,MAAA3E,KAAAiE,GACA,OAAAgG,KAAA6C,EAAA,KACA7C,IAAAkuC,GAAArrC,IAAAurC,EAAAD,EACAA,EAAA5tB,EAAA2tB,EAAAluC,EAAAouC,EAAAvrC,IAIA,QAAAqsC,GAAAl1C,GACA,kBACAjE,KAAA2E,MAAAooC,eAAA9oC,IAIA,QAAA+oC,GAAA/oC,EAAAumB,EAAA1d,GACA,GAAAqrC,GACAC,CACA,mBACA,GAAAnuC,GAAAlJ,EAAA4D,MAAA3E,KAAAiE,EACA,OAAAgG,KAAA6C,EAAA,KACA7C,IAAAkuC,EAAAC,EACAA,EAAA5tB,EAAA2tB,EAAAluC,EAAA6C,IAIA,QAAAqgC,GAAAlpC,EAAAumB,EAAA/f,GACA,GAAA0tC,GACAE,EACAD,CACA,mBACA,GAAAnuC,GAAAlJ,EAAA4D,MAAA3E,KAAAiE,GACA6I,EAAArC,EAAAzK,KAEA,OADA,OAAA8M,IAAA9M,KAAA2E,MAAAooC,eAAA9oC,GAAA6I,EAAA/L,EAAA4D,MAAA3E,KAAAiE,IACAgG,IAAA6C,EAAA,KACA7C,IAAAkuC,GAAArrC,IAAAurC,EAAAD,EACAA,EAAA5tB,EAAA2tB,EAAAluC,EAAAouC,EAAAvrC,IAcA,QAAAssC,GAAAn1C,EAAAwG,EAAAwiC,GACA,QAAAyK,KACA,GAAAl1C,GAAAxC,KAAAoF,EAAAqF,EAAAyZ,MAAA1hB,EAAAsE,UACA,OAAA1B,IAAA,SAAA0I,GACAtL,EAAAmC,MAAAuoC,YAAAjpC,EAAAmB,EAAA0I,GAAAm/B,IAIA,MADAyK,GAAAa,OAAA9tC,EACAitC,EAWA,QAAApJ,GAAA7jC,GACA,kBACAzK,KAAAquC,YAAA5jC,GAIA,QAAA8jC,GAAA9jC,GACA,kBACA,GAAAqC,GAAArC,EAAAzK,KACAA,MAAAquC,YAAA,MAAAvhC,EAAA,GAAAA,GAkCA,QAAAusC,GAAAtJ,EAAAC,EAAA/rC,EAAA5D,GACAL,KAAAiwC,QAAAF,EACA/vC,KAAAkwC,SAAAF,EACAhwC,KAAAs5C,MAAAr1C,EACAjE,KAAAk4C,IAAA73C,EAGA,QAAA4E,GAAAhB,GACA,MAAAlD,GAAAovC,YAAAlrC,WAAAhB,GAGA,QAAAs1C,KACA,QAAAl5C,GAuCA,QAAAm5C,GAAAh3C,EAAAnC,GAEA,IADA,GAAAo5C,KACAA,EAAAj3C,EAAAk0C,iBAAA+C,IAAAp5C,KACA,KAAAmC,IAAAqsC,YACA,MAAA6K,IAAAtrB,KAAAkoB,EAAAqD,MAAAD,EAGA,OAAAD,GAvtBA,GAAAG,GAAAvD,EAAAvzB,SAAA,2BACA+2B,KAEAjD,EAAA,EACAI,EAAA,EACAH,EAAA,EACAQ,EAAA,EACAE,EAAA,EACAK,EAAA,EACAJ,EAAA,EAEAf,EAAA,SAAAj0C,EAAAyB,EAAA5D,EAAAmoB,EAAAnB,EAAAoyB,GACA,GAAArC,GAAA50C,EAAAk0C,YACA,IAAAU,GACA,GAAA/2C,IAAA+2C,GAAA,WADA50C,GAAAk0C,eAEApiC,GAAA9R,EAAAnC,GACA4D,OACAukB,QACAnB,QACAzD,GAAAg2B,EACAlC,MAAAmC,EACAzrB,KAAAqrB,EAAArrB,KACA+oB,MAAAsC,EAAAtC,MACAld,SAAAwf,EAAAxf,SACA0d,KAAA8B,EAAA9B,KACAV,MAAA,KACAN,MAAAC,KA+HAkD,EAAA,SAAAt3C,EAAAyB,GACA,GACAwyC,GACAsD,EAEA30C,EAJAgyC,EAAA50C,EAAAk0C,aAGA3jB,GAAA,CAGA,IAAAqkB,EAAA,CAEAnzC,EAAA,MAAAA,EAAA,KAAAA,EAAA,EAEA,KAAAmB,IAAAgyC,IACAX,EAAAW,EAAAhyC,IAAAnB,UACA81C,EAAAtD,EAAAE,MAAAE,GAAAJ,EAAAE,MAAAiB,EACAnB,EAAAE,MAAAa,EACAf,EAAAQ,MAAArvC,OACAmyC,GAAAtD,EAAA7yB,GAAArjB,KAAA,YAAAiC,IAAAqoC,SAAA4L,EAAAjuB,MAAAiuB,EAAApvB,aACA+vB,GAAAhyC,IALkD2tB,GAAA,CAQlDA,UAAAvwB,GAAAk0C,eAGAsD,EAAA,SAAA/1C,GACA,MAAAjE,MAAAmB,KAAA,WACA24C,EAAA95C,KAAAiE,MAqDAg2C,EAAA,SAAAh2C,EAAAwG,GACA,GAAApK,GAAAL,KAAAk4C,GAIA,IAFAj0C,GAAA,GAEA6C,UAAAzB,OAAA,GAEA,OAAAyI,GADA4pC,EAAAn0B,EAAAvjB,KAAAwC,OAAAnC,GAAAq3C,MACAtyC,EAAA,EAAAqE,EAAAiuC,EAAAryC,OAAwCD,EAAAqE,IAAOrE,EAC/C,IAAA0I,EAAA4pC,EAAAtyC,IAAAnB,SACA,MAAA6J,GAAArD,KAGA,aAGA,MAAAzK,MAAAmB,MAAA,MAAAsJ,EAAAotC,EAAAG,GAAA33C,EAAA4D,EAAAwG,KAgBAyf,GAAA,SAAA1iB,EAAAC,GACA,GAAAhH,EACA,wBAAAgH,GAAAwgB,EAAA+C,kBACAvjB,YAAA2gB,GAAA3T,MAAAwT,EAAA+S,gBACAv6B,EAAA2nB,EAAA3T,MAAAhN,OAAAhH,EAAAwnB,EAAA+S,gBACA/S,EAAA6S,mBAAAtzB,EAAAC,IAiEAyyC,GAAA,SAAAj2C,EAAAwG,GACA,GAAAs/B,GAAAhpC,EAAAyvC,UAAAvsC,GAAAmB,EAAA,cAAA2kC,EAAA9hB,EAAA4Q,wBAAA3O,EACA,OAAAlqB,MAAAw4C,UAAAv0C,EAAA,kBAAAwG,IACAs/B,EAAAE,MAAA4C,EAAAD,GAAA7C,EAAA3kC,EAAA6yC,EAAAj4C,KAAA,QAAAiE,EAAAwG,IACA,MAAAA,GAAAs/B,EAAAE,MAAAsC,EAAAF,GAAAtC,IACAA,EAAAE,MAAAyC,EAAAD,GAAA1C,EAAA3kC,EAAAqF,EAAA,MAyBA0vC,GAAA,SAAAl2C,EAAAwG,GACA,GAAA8J,GAAA,QAAAtQ,CACA,IAAA6C,UAAAzB,OAAA,SAAAkP,EAAAvU,KAAA03C,MAAAnjC,OAAAgkC,MACA,UAAA9tC,EAAA,MAAAzK,MAAA03C,MAAAnjC,EAAA,KACA,sBAAA9J,GAAA,SAAAsY,MACA,IAAAgnB,GAAAhpC,EAAAyvC,UAAAvsC,EACA,OAAAjE,MAAA03C,MAAAnjC,GAAAw1B,EAAAE,MAAAqO,EAAAE,GAAAzO,EAAAt/B,KAeA2vC,GAAA,SAAA3vC,GACA,GAAApK,GAAAL,KAAAk4C,GAEA,OAAApxC,WAAAzB,OACArF,KAAAmB,MAAA,kBAAAsJ,GACAguC,EACAC,GAAAr4C,EAAAoK,IACA8Y,EAAAvjB,KAAAwC,OAAAnC,GAAA82C,OAeAkD,GAAA,SAAA5vC,GACA,GAAApK,GAAAL,KAAAk4C,GAEA,OAAApxC,WAAAzB,OACArF,KAAAmB,MAAA,kBAAAsJ,GACAkuC,EACAC,GAAAv4C,EAAAoK,IACA8Y,EAAAvjB,KAAAwC,OAAAnC,GAAA45B,UAUAqgB,GAAA,SAAA7vC,GACA,GAAApK,GAAAL,KAAAk4C,GAEA,OAAApxC,WAAAzB,OACArF,KAAAmB,KAAA03C,EAAAx4C,EAAAoK,IACA8Y,EAAAvjB,KAAAwC,OAAAnC,GAAAs3C,MAGA4C,GAAA,SAAAj2B,GACA,kBAAAA,OAAAvjB,EAAA2vC,QAAApsB,GAEA,QAAAyrB,GAAA/vC,KAAAiwC,QAAAzvC,EAAAuvC,EAAA1qC,OAAAktC,EAAA,GAAA7oC,OAAAlJ,GAAA8M,EAAA,EAAqFA,EAAA9M,IAAO8M,EAC5F,OAAA9K,GAAA6kB,EAAA0oB,EAAAziC,GAAA7D,EAAA4d,EAAAhiB,OAAAotC,EAAAF,EAAAjlC,MAAAlI,EAAA,EAA4FA,EAAAqE,IAAOrE,GACnG5C,EAAA6kB,EAAAjiB,KAAAkf,EAAA/jB,KAAAiC,IAAAqoC,SAAAzlC,EAAAiiB,IACAorB,EAAA/lC,KAAAlK,EAKA,WAAA62C,GAAA9G,EAAAvyC,KAAAkwC,SAAAlwC,KAAAs5C,MAAAt5C,KAAAk4C,MAGAsC,GAAA,SAAAv1C,GACA,GAAAA,EAAAizC,MAAAl4C,KAAAk4C,IAAA,SAAAn1B,MAEA,QAAA6wB,GAAA5zC,KAAAiwC,QAAA4D,EAAA5uC,EAAAgrC,QAAA6D,EAAAF,EAAAvuC,OAAAmR,EAAAq9B,EAAAxuC,OAAA7E,EAAAuH,KAAAmD,IAAA4oC,EAAAt9B,GAAAu9B,EAAA,GAAArqC,OAAAoqC,GAAAxmC,EAAA,EAA+JA,EAAA9M,IAAO8M,EACtK,OAAA9K,GAAAwxC,EAAAJ,EAAAtmC,GAAA2mC,EAAAJ,EAAAvmC,GAAA7D,EAAAuqC,EAAA3uC,OAAAZ,EAAAsvC,EAAAzmC,GAAA,GAAA5D,OAAAD,GAAArE,EAAA,EAAwHA,EAAAqE,IAAOrE,GAC/H5C,EAAAwxC,EAAA5uC,IAAA6uC,EAAA7uC,MACAX,EAAAW,GAAA5C,EAKA,MAAQ8K,EAAAwmC,IAAQxmC,EAChBymC,EAAAzmC,GAAAsmC,EAAAtmC,EAGA,WAAA+rC,GAAAtF,EAAA/zC,KAAAkwC,SAAAlwC,KAAAs5C,MAAAt5C,KAAAk4C,MA0BAuC,GAAA,SAAAx2C,EAAAomC,GACA,GAAAhqC,GAAAL,KAAAk4C,GAEA,OAAApxC,WAAAzB,OAAA,EACAke,EAAAvjB,KAAAwC,OAAAnC,GAAAujB,MAAA3f,GACAjE,KAAAmB,KAAA23C,EAAAz4C,EAAA4D,EAAAomC,KAWAqQ,GAAA,WACA,MAAA16C,MAAA4jB,GAAA,aAAAs1B,EAAAl5C,KAAAk4C,OAGAyC,GAAA,SAAAp4C,GACA,GAAA0B,GAAAjE,KAAAs5C,MACAj5C,EAAAL,KAAAk4C,GAEA,mBAAA31C,OAAAxB,EAAA4vC,SAAApuC,GAEA,QAAAwtC,GAAA/vC,KAAAiwC,QAAAzvC,EAAAuvC,EAAA1qC,OAAAktC,EAAA,GAAA7oC,OAAAlJ,GAAA8M,EAAA,EAAqFA,EAAA9M,IAAO8M,EAC5F,OAAA9K,GAAAgwC,EAAAnrB,EAAA0oB,EAAAziC,GAAA7D,EAAA4d,EAAAhiB,OAAAotC,EAAAF,EAAAjlC,GAAA,GAAA5D,OAAAD,GAAArE,EAAA,EAA+GA,EAAAqE,IAAOrE,GACtH5C,EAAA6kB,EAAAjiB,MAAAotC,EAAAjwC,EAAAhC,KAAAiC,IAAAqoC,SAAAzlC,EAAAiiB,MACA,YAAA7kB,KAAAgwC,EAAA3H,SAAAroC,EAAAqoC,UACA4H,EAAArtC,GAAAotC,EACAiE,EAAAhE,EAAArtC,GAAAnB,EAAA5D,EAAA+E,EAAAqtC,EAAAlvB,EAAA/gB,EAAAnC,IAKA,WAAAg5C,GAAA9G,EAAAvyC,KAAAkwC,SAAAjsC,EAAA5D,IAGAu6C,GAAA,SAAAr4C,GACA,GAAA0B,GAAAjE,KAAAs5C,MACAj5C,EAAAL,KAAAk4C,GAEA,mBAAA31C,OAAAxB,EAAA2xC,YAAAnwC,GAEA,QAAAwtC,GAAA/vC,KAAAiwC,QAAAzvC,EAAAuvC,EAAA1qC,OAAAktC,KAAAvC,KAAA1iC,EAAA,EAAyFA,EAAA9M,IAAO8M,EAChG,OAAA9K,GAAA6kB,EAAA0oB,EAAAziC,GAAA7D,EAAA4d,EAAAhiB,OAAAD,EAAA,EAA8DA,EAAAqE,IAAOrE,EACrE,GAAA5C,EAAA6kB,EAAAjiB,GAAA,CACA,OAAA6tC,GAAA4H,EAAAt4C,EAAAhC,KAAAiC,IAAAqoC,SAAAzlC,EAAAiiB,GAAAmyB,EAAAj2B,EAAA/gB,EAAAnC,GAAAiY,EAAA,EAAAnC,EAAA0kC,EAAAx1C,OAAmIiT,EAAAnC,IAAOmC,GAC1I26B,EAAA4H,EAAAviC,KACAm+B,EAAAxD,EAAAhvC,EAAA5D,EAAAiY,EAAAuiC,EAAArB,EAGAjH,GAAA7lC,KAAAmuC,GACA7K,EAAAtjC,KAAAlK,GAKA,UAAA62C,GAAA9G,EAAAvC,EAAA/rC,EAAA5D,IAGAyvC,GAAA/uC,EAAAovC,UAAAhlC,UAAAwN,YAEAmiC,GAAA,WACA,UAAAhL,IAAA9vC,KAAAiwC,QAAAjwC,KAAAkwC,WA+CA6K,GAAA,SAAA92C,EAAAwG,EAAAwiC,GACA,GAAA7nC,GAAA,cAAAnB,GAAA,IAAAgkB,EAAA2Q,wBAAA1O,EACA,cAAAzf,EAAAzK,KACAo5C,WAAAn1C,EAAA6oC,EAAA7oC,EAAAmB,IACAwe,GAAA,aAAA3f,EAAAk1C,EAAAl1C,IACAjE,KAAAo5C,WAAAn1C,EAAA,kBAAAwG,GACA0iC,EAAAlpC,EAAAmB,EAAA6yC,EAAAj4C,KAAA,SAAAiE,EAAAwG,IACAuiC,EAAA/oC,EAAAmB,EAAAqF,EAAA,IAAAwiC,IAcA+N,GAAA,SAAA/2C,EAAAwG,EAAAwiC,GACA,GAAA14B,GAAA,UAAAtQ,GAAA,GACA,IAAA6C,UAAAzB,OAAA,SAAAkP,EAAAvU,KAAA03C,MAAAnjC,OAAAgkC,MACA,UAAA9tC,EAAA,MAAAzK,MAAA03C,MAAAnjC,EAAA,KACA,sBAAA9J,GAAA,SAAAsY,MACA,OAAA/iB,MAAA03C,MAAAnjC,EAAA6kC,EAAAn1C,EAAAwG,EAAA,MAAAwiC,EAAA,GAAAA,KAgBAgO,GAAA,SAAAxwC,GACA,MAAAzK,MAAA03C,MAAA,yBAAAjtC,GACA8jC,EAAA0J,EAAAj4C,KAAA,OAAAyK,IACA6jC,EAAA,MAAA7jC,EAAA,GAAAA,EAAA,MAGAywC,GAAA,WAKA,OAJAj3C,GAAAjE,KAAAs5C,MACA6B,EAAAn7C,KAAAk4C,IACAkD,EAAA7B,IAEAxJ,EAAA/vC,KAAAiwC,QAAAzvC,EAAAuvC,EAAA1qC,OAAAiI,EAAA,EAA2DA,EAAA9M,IAAO8M,EAClE,OAAA9K,GAAA6kB,EAAA0oB,EAAAziC,GAAA7D,EAAA4d,EAAAhiB,OAAAD,EAAA,EAA8DA,EAAAqE,IAAOrE,EACrE,GAAA5C,EAAA6kB,EAAAjiB,GAAA,CACA,GAAAo0C,GAAAj2B,EAAA/gB,EAAA24C,EACA1E,GAAAj0C,EAAAyB,EAAAm3C,EAAAh2C,EAAAiiB,GACA+G,KAAAorB,EAAAprB,KAAAorB,EAAArC,MAAAqC,EAAAvf,SACAkd,MAAA,EACAld,SAAAuf,EAAAvf,SACA0d,KAAA6B,EAAA7B,OAMA,UAAA0B,GAAAtJ,EAAA/vC,KAAAkwC,SAAAjsC,EAAAm3C,IAGA/6C,GAAA,EAiBAg7C,GAAAt6C,EAAAovC,UAAAhlC,SAEAkuC,GAAAluC,UAAAlG,EAAAkG,WACAwN,YAAA0gC,EACA92C,OAAAo4C,GACAl3C,UAAAm3C,GACA10C,OAAAq0C,GACA91C,MAAA+1C,GACArK,UAAA2K,GACA71C,WAAAi2C,GACA36C,KAAA86C,GAAA96C,KACAk0C,MAAA4G,GAAA5G,MACAjyC,KAAA64C,GAAA74C,KACAuD,KAAAs1C,GAAAt1C,KACAgtB,MAAAsoB,GAAAtoB,MACA5xB,KAAAk6C,GAAAl6C,KACAyiB,GAAA62B,GACAx3C,KAAAi3C,GACA1B,UAAA2B,GACAx1C,MAAAo2C,GACA3B,WAAA4B,GACAn2C,KAAAo2C,GACA/1C,OAAAw1C,GACAhD,MAAAuC,EACA9C,MAAAiD,GACAngB,SAAAogB,GACA1C,KAAA2C,GAGA,IAAAZ,KACAtrB,KAAA,KACA+oB,MAAA,EACAld,SAAA,IACA0d,KAAApB,EAAAjkC,gBAaAgpC,GAAA,SAAAr3C,GACA,GAAA5D,GACAo5C,CAEAx1C,aAAAo1C,IACAh5C,EAAA4D,EAAAi0C,IAAAj0C,IAAAq1C,QAEAj5C,EAAAk5C,KAAAE,EAAAC,IAAAtrB,KAAAkoB,EAAAqD,MAAA11C,EAAA,MAAAA,EAAA,KAAAA,EAAA,GAGA,QAAA8rC,GAAA/vC,KAAAiwC,QAAAzvC,EAAAuvC,EAAA1qC,OAAAiI,EAAA,EAA2DA,EAAA9M,IAAO8M,EAClE,OAAA9K,GAAA6kB,EAAA0oB,EAAAziC,GAAA7D,EAAA4d,EAAAhiB,OAAAD,EAAA,EAA8DA,EAAAqE,IAAOrE,GACrE5C,EAAA6kB,EAAAjiB,KACAqxC,EAAAj0C,EAAAyB,EAAA5D,EAAA+E,EAAAiiB,EAAAoyB,GAAAD,EAAAh3C,EAAAnC,GAKA,WAAAg5C,GAAAtJ,EAAA/vC,KAAAkwC,SAAAjsC,EAAA5D,GAGAU,GAAAovC,UAAAhlC,UAAA2uC,UAAAE,EACAj5C,EAAAovC,UAAAhlC,UAAAlG,WAAAq2C,EAEA,IAAA57C,KAAA,MAEAq6C,GAAA,SAAAv3C,EAAAyB,GACA,GACAwyC,GACArxC,EAFAgyC,EAAA50C,EAAAk0C,YAIA,IAAAU,EAAA,CACAnzC,EAAA,MAAAA,EAAA,KAAAA,EAAA,EACA,KAAAmB,IAAAgyC,GACA,IAAAX,EAAAW,EAAAhyC,IAAAuxC,MAAAK,GAAAP,EAAAxyC,SACA,UAAAo1C,KAAA72C,IAAA9C,GAAAuE,GAAAmB,GAKA,YAGAxF,GAAAqF,aACArF,EAAAm6C,UACAn6C,EAAAk6C,YAEAtrC,OAAAC,eAAA7O,EAAA,cAA8C6K,OAAA,Od62LxC,SAAU5K,EAAQD,EAASM,Ie5nNjC,SAAAgH,EAAAvH,GACAA,EAAAC,IAGCI,KAAA,SAAAJ,GAA4B,YAc7B,SAAA+5C,KACA,MAAA4B,KAAAC,EAAAC,GAAAF,EAAAG,EAAA/B,MAAAgC,GAGA,QAAAF,KACAF,EAAA,EAGA,QAAAK,KACA57C,KAAA67C,MACA77C,KAAA87C,MACA97C,KAAA2rC,MAAA,KA0BA,QAAAsL,GAAAxzB,EAAA0zB,EAAA/oB,GACA,GAAAtgB,GAAA,GAAA8tC,EAEA,OADA9tC,GAAAopC,QAAAzzB,EAAA0zB,EAAA/oB,GACAtgB,EAGA,QAAAiuC,KACApC,MACAqC,CAEA,KADA,GAAAlrC,GAAAhD,EAAAmuC,EACAnuC,IACAgD,EAAAyqC,EAAAztC,EAAAguC,QAAA,GAAAhuC,EAAA+tC,MAAAt7C,KAAA,KAAAuQ,GACAhD,IAAA69B,QAEAqQ,EAGA,QAAAE,KACAX,GAAAY,EAAAT,EAAA/B,OAAAgC,EACAK,EAAA1E,EAAA,CACA,KACAyE,IACG,QACHC,EAAA,EACAI,IACAb,EAAA,GAIA,QAAAc,KACA,GAAA1C,GAAA+B,EAAA/B,MAAAxC,EAAAwC,EAAAwC,CACAhF,GAAAmF,IAAAX,GAAAxE,EAAAgF,EAAAxC,GAGA,QAAAyC,KAEA,IADA,GAAA5kC,GAAAD,EAAAG,EAAAukC,EAAA7tB,EAAA9G,IACA5P,GACAA,EAAAmkC,OACAztB,EAAA1W,EAAAokC,QAAA1tB,EAAA1W,EAAAokC,OACAtkC,EAAAE,MAAAi0B,QAEAp0B,EAAAG,EAAAi0B,MAAAj0B,EAAAi0B,MAAA,KACAj0B,EAAAF,IAAAm0B,MAAAp0B,EAAA0kC,EAAA1kC,EAGAglC,GAAA/kC,EACAglC,EAAApuB,GAGA,QAAAouB,GAAApuB,GACA,IAAA4tB,EAAA,CACA1E,MAAAmF,aAAAnF,GACA,IAAAH,GAAA/oB,EAAAmtB,CACApE,GAAA,IACA/oB,EAAA9G,MAAAgwB,EAAAoF,WAAAR,EAAA/E,IACA5pB,MAAAovB,cAAApvB,MAEAA,IAAA4uB,EAAAZ,EAAAhuB,EAAAqvB,YAAAP,EAAAC,IACAN,EAAA,EAAAR,EAAAU,KA3GA,GAIAD,GACAM,EALAP,EAAA,EACA1E,EAAA,EACA/pB,EAAA,EACA+uB,EAAA,IAGAH,EAAA,EACAZ,EAAA,EACAI,EAAA,EACAD,EAAA,gBAAAmB,0BAAAlD,IAAAkD,YAAA3wB,KACAsvB,EAAA,gBAAAnM,gBAAAyN,sBAAAzN,OAAAyN,sBAAA1J,KAAA/D,QAAA,SAAAjoC,GAAqIs1C,WAAAt1C,EAAA,IAgBrIw0C,GAAAzwC,UAAA8rC,EAAA9rC,WACAwN,YAAAijC,EACA1E,QAAA,SAAAzzB,EAAA0zB,EAAA/oB,GACA,qBAAA3K,GAAA,SAAAs5B,WAAA,6BACA3uB,IAAA,MAAAA,EAAAurB,KAAAvrB,IAAA,MAAA+oB,EAAA,GAAAA,GACAn3C,KAAA2rC,OAAA4Q,IAAAv8C,OACAu8C,IAAA5Q,MAAA3rC,KACAi8C,EAAAj8C,KACAu8C,EAAAv8C,MAEAA,KAAA67C,MAAAp4B,EACAzjB,KAAA87C,MAAA1tB,EACAouB,KAEA50C,KAAA,WACA5H,KAAA67C,QACA77C,KAAA67C,MAAA,KACA77C,KAAA87C,MAAAx0B,IACAk1B,MAmEA,IAAAQ,GAAA,SAAAv5B,EAAA0zB,EAAA/oB,GACA,GAAAtgB,GAAA,GAAA8tC,EAMA,OALAzE,GAAA,MAAAA,EAAA,GAAAA,EACArpC,EAAAopC,QAAA,SAAAH,GACAjpC,EAAAlG,OACA6b,EAAAszB,EAAAI,IACGA,EAAA/oB,GACHtgB,GAGAmvC,EAAA,SAAAx5B,EAAA0zB,EAAA/oB,GACA,GAAAtgB,GAAA,GAAA8tC,GAAAsB,EAAA/F,CACA,cAAAA,GAAArpC,EAAAopC,QAAAzzB,EAAA0zB,EAAA/oB,GAAAtgB,IACAqpC,KAAA/oB,EAAA,MAAAA,EAAAurB,KAAAvrB,EACAtgB,EAAAopC,QAAA,QAAAO,GAAAV,GACAA,GAAAmG,EACApvC,EAAAopC,QAAAO,EAAAyF,GAAA/F,EAAA/oB,GACA3K,EAAAszB,IACGI,EAAA/oB,GACHtgB,GAGAlO,GAAA+5C,MACA/5C,EAAAq3C,QACAr3C,EAAAm8C,aACAn8C,EAAA03C,QAAA0F,EACAp9C,EAAA2tB,SAAA0vB,EAEAzuC,OAAAC,eAAA7O,EAAA,cAA8C6K,OAAA,OfsoNxC,SAAU5K,EAAQD,EAASM,GAEhC,GAAIS,EgB1xNLA,GAAO,SAASC,GAEZ,GAAMG,GAAcb,EAAQ,IAEtBi9C,GACFh5C,WAAY,IACZi5C,gBAAiB,GACjBC,yBAA0B,GAC1BC,eAAgB,GAChBC,eAAgB,QAChBC,eAAgB,SAGdC,EAAkB,GAClBC,EAAkB,QAalBC,EAAW,SAASh6C,EAASi6C,EAAUC,EAAgBr7C,GACzD,GAAIqC,GAAO9D,EAAYwB,OAAOC,GAC1Bs7C,EAAQj5C,EAAKA,OAAOue,MAAM,OAAO1X,UACjCqyC,SACAC,KACAC,EAAa,EACbC,EAAkBf,EAAWh5C,WAAag5C,EAAWE,yBACrDpmC,EAAIpS,EAAK5B,KAAK,KACd62B,EAAKqkB,WAAWt5C,EAAK5B,KAAK,OAC1Bm7C,EAAgBR,EAAWT,EAAWG,eACtCe,EAAQx5C,EAAKA,KAAK,MAAM9B,OAAO,SAC1BE,KAAK,IAAKU,GACVV,KAAK,IAAKgU,EAAI,GACdhU,KAAK,KAAM62B,EAAK,MAChB92B,QAAQm6C,EAAWI,gBAAgB,GACnC54C,MAAM,YAAai5C,EAAW,KAUvC,KARAS,EAAMx5C,KAAKi5C,EAAMvxC,OACjB8xC,EAAQx5C,EAAK9B,OAAO,SACfC,QAAQm6C,EAAWK,gBAAgB,GACnCv6C,KAAK,IAAKU,GACVV,KAAK,IAAKgU,EAAIkmC,EAAWC,iBACzBn6C,KAAK,OAAQg7C,EAAaC,EAAkBpkB,EAAK,MACjDn1B,MAAM,YAAay5C,EAAgB,MAEjCL,EAAOD,EAAMvxC,OAChByxC,EAAKtxC,KAAKqxC,GACVM,EAAMx5C,KAAKm5C,EAAKp4B,KAAK,MACjBy4B,EAAM77C,OAAO87C,wBAA0BT,EAAiB,KACxDG,EAAKzxC,MACL8xC,EAAMx5C,KAAKm5C,EAAKp4B,KAAK,MACrBo4B,GAAQD,GACRM,EAAQx5C,EAAK9B,OAAO,SACfC,QAAQm6C,EAAWK,gBAAgB,GACnCv6C,KAAK,IAAKU,GACVV,KAAK,IAAKgU,EAAGkmC,EAAWC,iBACxBn6C,KAAK,OAAQg7C,EAAaC,EAAkBpkB,EAAK,MACjDj1B,KAAKk5C,GACLp5C,MAAM,YAAay5C,EAAgB,QAiB9CG,EAAuB,SAAS15C,EAAMvD,GAAwB,GAAjBk9C,GAAiB13C,UAAAzB,OAAA,GAAA4B,SAAAH,UAAA,GAAAA,UAAA,GAAZ,EAAG23C,EAAS33C,UAAAzB,OAAA,GAAA4B,SAAAH,UAAA,GAAAA,UAAA,GAAH,CAEzDjC,GAAK1D,KAAK,WACN,GAAI28C,GACAC,EACAC,EACAC,EACA95C,EACA8S,EACA6iB,EACAukB,CAiBJ,KAfAx5C,EAAO9D,EAAYwB,OAAOvC,MAE1B89C,EAAQj5C,EAAKA,OAAOue,MAAM,OAAO1X,UACjCsyC,KACAC,EAAa,EACb95C,EAAa,IACb8S,EAAIpS,EAAK5B,KAAK,KACd62B,EAAKqkB,WAAWt5C,EAAK5B,KAAK,OAC1Bo7C,EAAQx5C,EACHA,KAAK,MACL9B,OAAO,SACPE,KAAK,IAAKu7C,GACVv7C,KAAK,IAAKgU,GACVhU,KAAK,KAAM62B,EAAK,MAEbikB,EAAOD,EAAMvxC,OAIjB,GAHAyxC,EAAKtxC,KAAKqxC,GACVM,EAAMx5C,KAAKm5C,EAAKp4B,KAAK,MAEjBy4B,EAAM77C,OAAO87C,wBAA0Bh9C,EAAO,CAI9C,GAHA08C,EAAKzxC,MACL8xC,EAAMx5C,KAAKm5C,EAAKp4B,KAAK,QAEjBq4B,EAAaQ,EAAQ,GASlB,CACHT,EAAKtxC,KAAK,OACV2xC,EAAMx5C,KAAKm5C,EAAKp4B,KAAK,KACrB,OAXAo4B,GAAQD,GACRM,EAAQx5C,EAAK9B,OAAO,SACfE,KAAK,IAAKu7C,GACVv7C,KAAK,IAAKgU,GACVhU,KAAK,OAAQg7C,EAAa95C,EAAa21B,EAAK,MAC5Cj1B,KAAKk5C,GAEVl5C,EAAK7B,QAAQ,kBAAkB,OAmBjDsB,EAAe,SAASO,GAA8D,GAAxD+4C,GAAwD92C,UAAAzB,OAAA,GAAA4B,SAAAH,UAAA,GAAAA,UAAA,GAA7C22C,EAAiBiB,EAA4B53C,UAAAzB,OAAA,GAAA4B,SAAAH,UAAA,GAAAA,UAAA,GAAjB42C,EACnEl2C,EAAIotB,SAASC,cAAc,UAC3BptB,EAAID,EAAEm3C,WAAW,KAIrB,OAFAl3C,GAAEm3C,KAAOhB,EAAW,MAAQc,EAErBj3C,EAAEo3C,YAAYh6C,GAAMvD,MAG/B,QACIgD,eACAq5C,WACAY,yBA5JRh+C,KAAAX,EAAAM,EAAAN,EAAAC,KAAAoH,SAAAtG,IAAAd,EAAAD,QAAAe,KhBm6NQ,CAEF,SAAUd,EAAQD,EAASM,GAEhC,GAAIS,EiBv6NLA,GAAO,WAGH,GAAMm+C,IACEC,WAAY,UAAW,WACvBC,YAAa,UAAW,WACxBC,YAAa,UAAW,YAK1B54C,GACE,UACA,UACA,UACA,UACA,UACA,WAIFqW,GACE,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAIFiD,GACE,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGFu/B,GACE,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGFt9B,GACE,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGFpF,GACE,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGF4F,GACE,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGF/B,GACE,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGFG,GACE,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGFE,GACE,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGFy+B,GACE;AAGR,OACI/4C,cACIC,cACAqW,OACAiD,SACAu/B,YACAt9B,OACApF,QACA4F,SACA/B,OACAG,SACAE,OAEJ0+B,mBACI/4C,YAAe,sBACfqW,KAAQ,mBACRiD,OAAU,SACVu/B,UAAa,OACbt9B,KAAQ,aACRpF,MAAS,QACT4F,OAAU,SACV/B,KAAQ,OACRG,OAAU,SACVE,IAAO,OAEX2+B,cACIF,aAEJG,eAAgBR,EAChBS,qBACIR,UAAW,gBACXC,WAAY,iBACZC,WAAY,oBAtKxB1+C,KAAAX,EAAAM,EAAAN,EAAAC,KAAAoH,SAAAtG,IAAAd,EAAAD,QAAAe","file":"legend.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"legend\"] = factory();\n\telse\n\t\troot[\"britecharts\"] = root[\"britecharts\"] || {}, root[\"britecharts\"][\"legend\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"legend\"] = factory();\n\telse\n\t\troot[\"britecharts\"] = root[\"britecharts\"] || {}, root[\"britecharts\"][\"legend\"] = factory();\n})(this, function() {\nreturn /******/ (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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;'use strict';\n\t\n\t!(__WEBPACK_AMD_DEFINE_RESULT__ = function (require) {\n\t 'use strict';\n\t\n\t var d3Format = __webpack_require__(6);\n\t var d3Scale = __webpack_require__(7);\n\t var d3Selection = __webpack_require__(12);\n\t var d3Transition = __webpack_require__(13);\n\t\n\t var textHelper = __webpack_require__(15);\n\t var colorHelper = __webpack_require__(17);\n\t\n\t /**\n\t * @typedef LegendChartData\n\t * @type {Object[]}\n\t * @property {Number} id Id of the group (required)\n\t * @property {Number} quantity Quantity of the group (required)\n\t * @property {String} name Name of the group (required)\n\t *\n\t * @example\n\t * [\n\t * {\n\t * id: 1,\n\t * quantity: 2,\n\t * name: 'glittering'\n\t * },\n\t * {\n\t * id: 2,\n\t * quantity: 3,\n\t * name: 'luminous'\n\t * }\n\t */\n\t\n\t /**\n\t * @fileOverview Legend Component reusable API class that renders a\n\t * simple and configurable legend element.\n\t *\n\t * @example\n\t * var donutChart = donut(),\n\t * legendBox = legend();\n\t *\n\t * donutChart\n\t * .externalRadius(500)\n\t * .internalRadius(200)\n\t * .on('customMouseOver', function(data) {\n\t * legendBox.highlight(data.data.id);\n\t * })\n\t * .on('customMouseOut', function() {\n\t * legendBox.clearHighlight();\n\t * });\n\t *\n\t * d3Selection.select('.css-selector')\n\t * .datum(dataset)\n\t * .call(donutChart);\n\t *\n\t * d3Selection.select('.other-css-selector')\n\t * .datum(dataset)\n\t * .call(legendBox);\n\t *\n\t * @module Legend\n\t * @tutorial legend\n\t * @exports charts/legend\n\t * @requires d3\n\t */\n\t return function module() {\n\t\n\t var margin = {\n\t top: 5,\n\t right: 5,\n\t bottom: 5,\n\t left: 5\n\t },\n\t width = 320,\n\t height = 180,\n\t textSize = 12,\n\t textLetterSpacing = 0.5,\n\t markerSize = 16,\n\t markerYOffset = -(textSize - 2) / 2,\n\t marginRatio = 1.5,\n\t valueReservedSpace = 40,\n\t numberLetterSpacing = 0.8,\n\t numberFormat = 's',\n\t isFadedClassName = 'is-faded',\n\t isHorizontal = false,\n\t\n\t\n\t // colors\n\t colorScale = void 0,\n\t colorSchema = colorHelper.colorSchemas.britecharts,\n\t getId = function getId(_ref) {\n\t var id = _ref.id;\n\t return id;\n\t },\n\t getName = function getName(_ref2) {\n\t var name = _ref2.name;\n\t return name;\n\t },\n\t getFormattedQuantity = function getFormattedQuantity(_ref3) {\n\t var quantity = _ref3.quantity;\n\t return d3Format.format(numberFormat)(quantity);\n\t },\n\t getCircleFill = function getCircleFill(_ref4) {\n\t var name = _ref4.name;\n\t return colorScale(name);\n\t },\n\t entries = void 0,\n\t chartWidth = void 0,\n\t chartHeight = void 0,\n\t data = void 0,\n\t svg = void 0;\n\t\n\t /**\n\t * This function creates the graph using the selection as container\n\t * @param {D3Selection} _selection A d3 selection that represents\n\t * the container(s) where the chart(s) will be rendered\n\t * @param {object} _data The data to attach and generate the chart\n\t */\n\t function exports(_selection) {\n\t _selection.each(function (_data) {\n\t chartWidth = width - margin.left - margin.right;\n\t chartHeight = height - margin.top - margin.bottom;\n\t data = _data;\n\t\n\t buildColorScale();\n\t buildSVG(this);\n\t if (isHorizontal) {\n\t drawHorizontalLegend();\n\t } else {\n\t drawVerticalLegend();\n\t }\n\t });\n\t }\n\t\n\t /**\n\t * Depending on the size of the horizontal legend, we are going to either\n\t * center the legend or add a new line with the last entry of the legend\n\t * @return {void}\n\t */\n\t function adjustLines() {\n\t var lineWidth = svg.select('.legend-line').node().getBoundingClientRect().width;\n\t var lineWidthSpace = chartWidth - lineWidth;\n\t\n\t if (lineWidthSpace > 0) {\n\t centerLegendOnSVG();\n\t } else {\n\t splitInLines();\n\t }\n\t }\n\t\n\t /**\n\t * Builds containers for the legend\n\t * Also applies the Margin convention\n\t * @private\n\t */\n\t function buildContainerGroups() {\n\t var container = svg.append('g').classed('legend-container-group', true).attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');\n\t\n\t container.append('g').classed('legend-group', true);\n\t }\n\t\n\t /**\n\t * Builds color scale for chart, if any colorSchema was defined\n\t * @private\n\t */\n\t function buildColorScale() {\n\t if (colorSchema) {\n\t colorScale = d3Scale.scaleOrdinal().range(colorSchema);\n\t }\n\t }\n\t\n\t /**\n\t * Builds the SVG element that will contain the chart\n\t * @param {HTMLElement} container DOM element that will work as the container of the graph\n\t * @private\n\t */\n\t function buildSVG(container) {\n\t if (!svg) {\n\t svg = d3Selection.select(container).append('svg').classed('britechart britechart-legend', true);\n\t\n\t buildContainerGroups();\n\t }\n\t\n\t svg.attr('width', width).attr('height', height);\n\t }\n\t\n\t /**\n\t * Centers the legend on the chart given that is a single line of labels\n\t * @return {void}\n\t */\n\t function centerLegendOnSVG() {\n\t var legendGroupSize = svg.select('g.legend-container-group').node().getBoundingClientRect().width;\n\t var emptySpace = width - legendGroupSize;\n\t\n\t if (emptySpace > 0) {\n\t svg.select('g.legend-container-group').attr('transform', 'translate(' + emptySpace / 2 + ',0)');\n\t }\n\t }\n\t\n\t /**\n\t * Removes the faded class from all the entry lines\n\t */\n\t function cleanFadedLines() {\n\t svg.select('.legend-group').selectAll('g.legend-entry').classed(isFadedClassName, false);\n\t }\n\t\n\t /**\n\t * Draws the entries of the legend within a single line\n\t * @private\n\t */\n\t function drawHorizontalLegend() {\n\t var xOffset = markerSize;\n\t\n\t // We want a single line\n\t svg.select('.legend-group').append('g').classed('legend-line', true);\n\t\n\t // And one entry per data item\n\t entries = svg.select('.legend-line').selectAll('g.legend-entry').data(data);\n\t\n\t // Enter\n\t entries.enter().append('g').classed('legend-entry', true).attr('data-item', getId).attr('transform', function (_ref5) {\n\t var name = _ref5.name;\n\t\n\t var horizontalOffset = xOffset,\n\t lineHeight = chartHeight / 2,\n\t verticalOffset = lineHeight,\n\t labelWidth = textHelper.getTextWidth(name, textSize);\n\t\n\t xOffset += markerSize + 2 * getLineElementMargin() + labelWidth;\n\t\n\t return 'translate(' + horizontalOffset + ',' + verticalOffset + ')';\n\t }).merge(entries).append('circle').classed('legend-circle', true).attr('cx', markerSize / 2).attr('cy', markerYOffset).attr('r', markerSize / 2).style('fill', getCircleFill).style('stroke-width', 1);\n\t\n\t svg.select('.legend-group').selectAll('g.legend-entry').append('text').classed('legend-entry-name', true).text(getName).attr('x', getLineElementMargin()).style('font-size', textSize + 'px').style('letter-spacing', textLetterSpacing + 'px');\n\t\n\t // Exit\n\t svg.select('.legend-group').selectAll('g.legend-entry').exit().transition().style('opacity', 0).remove();\n\t\n\t adjustLines();\n\t }\n\t\n\t /**\n\t * Draws the entries of the legend\n\t * @private\n\t */\n\t function drawVerticalLegend() {\n\t entries = svg.select('.legend-group').selectAll('g.legend-line').data(data);\n\t\n\t // Enter\n\t entries.enter().append('g').classed('legend-line', true).append('g').classed('legend-entry', true).attr('data-item', getId).attr('transform', function (d, i) {\n\t var horizontalOffset = markerSize + getLineElementMargin(),\n\t lineHeight = chartHeight / (data.length + 1),\n\t verticalOffset = (i + 1) * lineHeight;\n\t\n\t return 'translate(' + horizontalOffset + ',' + verticalOffset + ')';\n\t }).merge(entries).append('circle').classed('legend-circle', true).attr('cx', markerSize / 2).attr('cy', markerYOffset).attr('r', markerSize / 2).style('fill', getCircleFill).style('stroke-width', 1);\n\t\n\t svg.select('.legend-group').selectAll('g.legend-line').selectAll('g.legend-entry').append('text').classed('legend-entry-name', true).text(getName).attr('x', getLineElementMargin()).style('font-size', textSize + 'px').style('letter-spacing', textLetterSpacing + 'px');\n\t\n\t svg.select('.legend-group').selectAll('g.legend-line').selectAll('g.legend-entry').append('text').classed('legend-entry-value', true).text(getFormattedQuantity).attr('x', chartWidth - valueReservedSpace).style('font-size', textSize + 'px').style('letter-spacing', numberLetterSpacing + 'px').style('text-anchor', 'end').style('startOffset', '100%');\n\t\n\t // Exit\n\t svg.select('.legend-group').selectAll('g.legend-line').exit().transition().style('opacity', 0).remove();\n\t }\n\t\n\t /**\n\t * Applies the faded class to all lines but the one that has the given id\n\t * @param {number} exceptionItemId Id of the line that needs to stay the same\n\t */\n\t function fadeLinesBut(exceptionItemId) {\n\t var classToFade = 'g.legend-entry';\n\t\n\t svg.select('.legend-group').selectAll(classToFade).classed(isFadedClassName, true);\n\t\n\t svg.select('[data-item=\"' + exceptionItemId + '\"]').classed(isFadedClassName, false);\n\t }\n\t\n\t /**\n\t * Calculates the margin between elements of the legend\n\t * @return {Number} Margin to apply between elements\n\t */\n\t function getLineElementMargin() {\n\t return marginRatio * markerSize;\n\t }\n\t\n\t /**\n\t * Simple method to move the last item of an overflowing legend into the next line\n\t * @return {void}\n\t * @private\n\t */\n\t function splitInLines() {\n\t var legendEntries = svg.selectAll('.legend-entry');\n\t var numberOfEntries = legendEntries.size();\n\t var lineHeight = chartHeight / 2 * 1.7;\n\t var newLine = svg.select('.legend-group').append('g').classed('legend-line', true).attr('transform', 'translate(0, ' + lineHeight + ')');\n\t var lastEntry = legendEntries.filter(':nth-child(' + numberOfEntries + ')');\n\t\n\t lastEntry.attr('transform', 'translate(' + markerSize + ',0)');\n\t newLine.append(function () {\n\t return lastEntry.node();\n\t });\n\t }\n\t\n\t /**\n\t * Clears the highlighted line entry\n\t */\n\t exports.clearHighlight = function () {\n\t cleanFadedLines();\n\t };\n\t\n\t /**\n\t * Gets or Sets the colorSchema of the chart\n\t * @param {array} _x Color scheme array to get/set\n\t * @return {number | module} Current colorSchema or Donut Chart module to chain calls\n\t * @public\n\t */\n\t exports.colorSchema = function (_x) {\n\t if (!arguments.length) {\n\t return colorSchema;\n\t }\n\t colorSchema = _x;\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Gets or Sets the height of the legend chart\n\t * @param {number} _x Desired width for the chart\n\t * @return {height | module} Current height or Legend module to chain calls\n\t * @public\n\t */\n\t exports.height = function (_x) {\n\t if (!arguments.length) {\n\t return height;\n\t }\n\t height = _x;\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Highlights a line entry by fading the rest of lines\n\t * @param {number} entryId ID of the entry line\n\t */\n\t exports.highlight = function (entryId) {\n\t cleanFadedLines();\n\t fadeLinesBut(entryId);\n\t };\n\t\n\t /**\n\t * Gets or Sets the horizontal mode on the legend\n\t * @param {boolean} _x Desired horizontal mode for the graph\n\t * @return {ishorizontal | module} If it is horizontal or Legend module to chain calls\n\t * @public\n\t */\n\t exports.isHorizontal = function (_x) {\n\t if (!arguments.length) {\n\t return isHorizontal;\n\t }\n\t isHorizontal = _x;\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Gets or Sets the margin of the legend chart\n\t * @param {object} _x Margin object to get/set\n\t * @return {margin | module} Current margin or Legend module to chain calls\n\t * @public\n\t */\n\t exports.margin = function (_x) {\n\t if (!arguments.length) {\n\t return margin;\n\t }\n\t margin = _x;\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Gets or Sets the markerSize of the legend chart.\n\t * This markerSize will determine the horizontal and vertical size of the colored marks\n\t * added as color identifiers for the chart's categories.\n\t *\n\t * @param {object} _x Margin object to get/set\n\t * @return {markerSize | module} Current markerSize or Legend module to chain calls\n\t * @public\n\t */\n\t exports.markerSize = function (_x) {\n\t if (!arguments.length) {\n\t return markerSize;\n\t }\n\t markerSize = _x;\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Gets or Sets the width of the legend chart\n\t * @param {number} _x Desired width for the graph\n\t * @return {width | module} Current width or Legend module to chain calls\n\t * @public\n\t */\n\t exports.width = function (_x) {\n\t if (!arguments.length) {\n\t return width;\n\t }\n\t width = _x;\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Gets or Sets the number format of the legend chart\n\t * @param {string} _x Desired number format for the legend chart\n\t * @return {numberFormat | module} Current number format or Legend module to chain calls\n\t * @public\n\t */\n\t exports.numberFormat = function (_x) {\n\t if (!arguments.length) {\n\t return numberFormat;\n\t }\n\t numberFormat = _x;\n\t\n\t return this;\n\t };\n\t\n\t return exports;\n\t };\n\t}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-array/ Version 1.2.0. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\tvar ascending = function(a, b) {\n\t return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n\t};\n\t\n\tvar bisector = function(compare) {\n\t if (compare.length === 1) compare = ascendingComparator(compare);\n\t return {\n\t left: function(a, x, lo, hi) {\n\t if (lo == null) lo = 0;\n\t if (hi == null) hi = a.length;\n\t while (lo < hi) {\n\t var mid = lo + hi >>> 1;\n\t if (compare(a[mid], x) < 0) lo = mid + 1;\n\t else hi = mid;\n\t }\n\t return lo;\n\t },\n\t right: function(a, x, lo, hi) {\n\t if (lo == null) lo = 0;\n\t if (hi == null) hi = a.length;\n\t while (lo < hi) {\n\t var mid = lo + hi >>> 1;\n\t if (compare(a[mid], x) > 0) hi = mid;\n\t else lo = mid + 1;\n\t }\n\t return lo;\n\t }\n\t };\n\t};\n\t\n\tfunction ascendingComparator(f) {\n\t return function(d, x) {\n\t return ascending(f(d), x);\n\t };\n\t}\n\t\n\tvar ascendingBisect = bisector(ascending);\n\tvar bisectRight = ascendingBisect.right;\n\tvar bisectLeft = ascendingBisect.left;\n\t\n\tvar pairs = function(array, f) {\n\t if (f == null) f = pair;\n\t var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n\t while (i < n) pairs[i] = f(p, p = array[++i]);\n\t return pairs;\n\t};\n\t\n\tfunction pair(a, b) {\n\t return [a, b];\n\t}\n\t\n\tvar cross = function(values0, values1, reduce) {\n\t var n0 = values0.length,\n\t n1 = values1.length,\n\t values = new Array(n0 * n1),\n\t i0,\n\t i1,\n\t i,\n\t value0;\n\t\n\t if (reduce == null) reduce = pair;\n\t\n\t for (i0 = i = 0; i0 < n0; ++i0) {\n\t for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n\t values[i] = reduce(value0, values1[i1]);\n\t }\n\t }\n\t\n\t return values;\n\t};\n\t\n\tvar descending = function(a, b) {\n\t return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n\t};\n\t\n\tvar number = function(x) {\n\t return x === null ? NaN : +x;\n\t};\n\t\n\tvar variance = function(values, valueof) {\n\t var n = values.length,\n\t m = 0,\n\t i = -1,\n\t mean = 0,\n\t value,\n\t delta,\n\t sum = 0;\n\t\n\t if (valueof == null) {\n\t while (++i < n) {\n\t if (!isNaN(value = number(values[i]))) {\n\t delta = value - mean;\n\t mean += delta / ++m;\n\t sum += delta * (value - mean);\n\t }\n\t }\n\t }\n\t\n\t else {\n\t while (++i < n) {\n\t if (!isNaN(value = number(valueof(values[i], i, values)))) {\n\t delta = value - mean;\n\t mean += delta / ++m;\n\t sum += delta * (value - mean);\n\t }\n\t }\n\t }\n\t\n\t if (m > 1) return sum / (m - 1);\n\t};\n\t\n\tvar deviation = function(array, f) {\n\t var v = variance(array, f);\n\t return v ? Math.sqrt(v) : v;\n\t};\n\t\n\tvar extent = function(values, valueof) {\n\t var n = values.length,\n\t i = -1,\n\t value,\n\t min,\n\t max;\n\t\n\t if (valueof == null) {\n\t while (++i < n) { // Find the first comparable value.\n\t if ((value = values[i]) != null && value >= value) {\n\t min = max = value;\n\t while (++i < n) { // Compare the remaining values.\n\t if ((value = values[i]) != null) {\n\t if (min > value) min = value;\n\t if (max < value) max = value;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t\n\t else {\n\t while (++i < n) { // Find the first comparable value.\n\t if ((value = valueof(values[i], i, values)) != null && value >= value) {\n\t min = max = value;\n\t while (++i < n) { // Compare the remaining values.\n\t if ((value = valueof(values[i], i, values)) != null) {\n\t if (min > value) min = value;\n\t if (max < value) max = value;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t\n\t return [min, max];\n\t};\n\t\n\tvar array = Array.prototype;\n\t\n\tvar slice = array.slice;\n\tvar map = array.map;\n\t\n\tvar constant = function(x) {\n\t return function() {\n\t return x;\n\t };\n\t};\n\t\n\tvar identity = function(x) {\n\t return x;\n\t};\n\t\n\tvar range = function(start, stop, step) {\n\t start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\t\n\t var i = -1,\n\t n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n\t range = new Array(n);\n\t\n\t while (++i < n) {\n\t range[i] = start + i * step;\n\t }\n\t\n\t return range;\n\t};\n\t\n\tvar e10 = Math.sqrt(50);\n\tvar e5 = Math.sqrt(10);\n\tvar e2 = Math.sqrt(2);\n\t\n\tvar ticks = function(start, stop, count) {\n\t var reverse = stop < start,\n\t i = -1,\n\t n,\n\t ticks,\n\t step;\n\t\n\t if (reverse) n = start, start = stop, stop = n;\n\t\n\t if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\t\n\t if (step > 0) {\n\t start = Math.ceil(start / step);\n\t stop = Math.floor(stop / step);\n\t ticks = new Array(n = Math.ceil(stop - start + 1));\n\t while (++i < n) ticks[i] = (start + i) * step;\n\t } else {\n\t start = Math.floor(start * step);\n\t stop = Math.ceil(stop * step);\n\t ticks = new Array(n = Math.ceil(start - stop + 1));\n\t while (++i < n) ticks[i] = (start - i) / step;\n\t }\n\t\n\t if (reverse) ticks.reverse();\n\t\n\t return ticks;\n\t};\n\t\n\tfunction tickIncrement(start, stop, count) {\n\t var step = (stop - start) / Math.max(0, count),\n\t power = Math.floor(Math.log(step) / Math.LN10),\n\t error = step / Math.pow(10, power);\n\t return power >= 0\n\t ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n\t : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n\t}\n\t\n\tfunction tickStep(start, stop, count) {\n\t var step0 = Math.abs(stop - start) / Math.max(0, count),\n\t step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n\t error = step0 / step1;\n\t if (error >= e10) step1 *= 10;\n\t else if (error >= e5) step1 *= 5;\n\t else if (error >= e2) step1 *= 2;\n\t return stop < start ? -step1 : step1;\n\t}\n\t\n\tvar sturges = function(values) {\n\t return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n\t};\n\t\n\tvar histogram = function() {\n\t var value = identity,\n\t domain = extent,\n\t threshold = sturges;\n\t\n\t function histogram(data) {\n\t var i,\n\t n = data.length,\n\t x,\n\t values = new Array(n);\n\t\n\t for (i = 0; i < n; ++i) {\n\t values[i] = value(data[i], i, data);\n\t }\n\t\n\t var xz = domain(values),\n\t x0 = xz[0],\n\t x1 = xz[1],\n\t tz = threshold(values, x0, x1);\n\t\n\t // Convert number of thresholds into uniform thresholds.\n\t if (!Array.isArray(tz)) {\n\t tz = tickStep(x0, x1, tz);\n\t tz = range(Math.ceil(x0 / tz) * tz, Math.floor(x1 / tz) * tz, tz); // exclusive\n\t }\n\t\n\t // Remove any thresholds outside the domain.\n\t var m = tz.length;\n\t while (tz[0] <= x0) tz.shift(), --m;\n\t while (tz[m - 1] > x1) tz.pop(), --m;\n\t\n\t var bins = new Array(m + 1),\n\t bin;\n\t\n\t // Initialize bins.\n\t for (i = 0; i <= m; ++i) {\n\t bin = bins[i] = [];\n\t bin.x0 = i > 0 ? tz[i - 1] : x0;\n\t bin.x1 = i < m ? tz[i] : x1;\n\t }\n\t\n\t // Assign data to bins by value, ignoring any outside the domain.\n\t for (i = 0; i < n; ++i) {\n\t x = values[i];\n\t if (x0 <= x && x <= x1) {\n\t bins[bisectRight(tz, x, 0, m)].push(data[i]);\n\t }\n\t }\n\t\n\t return bins;\n\t }\n\t\n\t histogram.value = function(_) {\n\t return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n\t };\n\t\n\t histogram.domain = function(_) {\n\t return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n\t };\n\t\n\t histogram.thresholds = function(_) {\n\t return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n\t };\n\t\n\t return histogram;\n\t};\n\t\n\tvar quantile = function(values, p, valueof) {\n\t if (valueof == null) valueof = number;\n\t if (!(n = values.length)) return;\n\t if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n\t if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n\t var n,\n\t i = (n - 1) * p,\n\t i0 = Math.floor(i),\n\t value0 = +valueof(values[i0], i0, values),\n\t value1 = +valueof(values[i0 + 1], i0 + 1, values);\n\t return value0 + (value1 - value0) * (i - i0);\n\t};\n\t\n\tvar freedmanDiaconis = function(values, min, max) {\n\t values = map.call(values, number).sort(ascending);\n\t return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n\t};\n\t\n\tvar scott = function(values, min, max) {\n\t return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n\t};\n\t\n\tvar max = function(values, valueof) {\n\t var n = values.length,\n\t i = -1,\n\t value,\n\t max;\n\t\n\t if (valueof == null) {\n\t while (++i < n) { // Find the first comparable value.\n\t if ((value = values[i]) != null && value >= value) {\n\t max = value;\n\t while (++i < n) { // Compare the remaining values.\n\t if ((value = values[i]) != null && value > max) {\n\t max = value;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t\n\t else {\n\t while (++i < n) { // Find the first comparable value.\n\t if ((value = valueof(values[i], i, values)) != null && value >= value) {\n\t max = value;\n\t while (++i < n) { // Compare the remaining values.\n\t if ((value = valueof(values[i], i, values)) != null && value > max) {\n\t max = value;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t\n\t return max;\n\t};\n\t\n\tvar mean = function(values, valueof) {\n\t var n = values.length,\n\t m = n,\n\t i = -1,\n\t value,\n\t sum = 0;\n\t\n\t if (valueof == null) {\n\t while (++i < n) {\n\t if (!isNaN(value = number(values[i]))) sum += value;\n\t else --m;\n\t }\n\t }\n\t\n\t else {\n\t while (++i < n) {\n\t if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;\n\t else --m;\n\t }\n\t }\n\t\n\t if (m) return sum / m;\n\t};\n\t\n\tvar median = function(values, valueof) {\n\t var n = values.length,\n\t i = -1,\n\t value,\n\t numbers = [];\n\t\n\t if (valueof == null) {\n\t while (++i < n) {\n\t if (!isNaN(value = number(values[i]))) {\n\t numbers.push(value);\n\t }\n\t }\n\t }\n\t\n\t else {\n\t while (++i < n) {\n\t if (!isNaN(value = number(valueof(values[i], i, values)))) {\n\t numbers.push(value);\n\t }\n\t }\n\t }\n\t\n\t return quantile(numbers.sort(ascending), 0.5);\n\t};\n\t\n\tvar merge = function(arrays) {\n\t var n = arrays.length,\n\t m,\n\t i = -1,\n\t j = 0,\n\t merged,\n\t array;\n\t\n\t while (++i < n) j += arrays[i].length;\n\t merged = new Array(j);\n\t\n\t while (--n >= 0) {\n\t array = arrays[n];\n\t m = array.length;\n\t while (--m >= 0) {\n\t merged[--j] = array[m];\n\t }\n\t }\n\t\n\t return merged;\n\t};\n\t\n\tvar min = function(values, valueof) {\n\t var n = values.length,\n\t i = -1,\n\t value,\n\t min;\n\t\n\t if (valueof == null) {\n\t while (++i < n) { // Find the first comparable value.\n\t if ((value = values[i]) != null && value >= value) {\n\t min = value;\n\t while (++i < n) { // Compare the remaining values.\n\t if ((value = values[i]) != null && min > value) {\n\t min = value;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t\n\t else {\n\t while (++i < n) { // Find the first comparable value.\n\t if ((value = valueof(values[i], i, values)) != null && value >= value) {\n\t min = value;\n\t while (++i < n) { // Compare the remaining values.\n\t if ((value = valueof(values[i], i, values)) != null && min > value) {\n\t min = value;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t\n\t return min;\n\t};\n\t\n\tvar permute = function(array, indexes) {\n\t var i = indexes.length, permutes = new Array(i);\n\t while (i--) permutes[i] = array[indexes[i]];\n\t return permutes;\n\t};\n\t\n\tvar scan = function(values, compare) {\n\t if (!(n = values.length)) return;\n\t var n,\n\t i = 0,\n\t j = 0,\n\t xi,\n\t xj = values[j];\n\t\n\t if (compare == null) compare = ascending;\n\t\n\t while (++i < n) {\n\t if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n\t xj = xi, j = i;\n\t }\n\t }\n\t\n\t if (compare(xj, xj) === 0) return j;\n\t};\n\t\n\tvar shuffle = function(array, i0, i1) {\n\t var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n\t t,\n\t i;\n\t\n\t while (m) {\n\t i = Math.random() * m-- | 0;\n\t t = array[m + i0];\n\t array[m + i0] = array[i + i0];\n\t array[i + i0] = t;\n\t }\n\t\n\t return array;\n\t};\n\t\n\tvar sum = function(values, valueof) {\n\t var n = values.length,\n\t i = -1,\n\t value,\n\t sum = 0;\n\t\n\t if (valueof == null) {\n\t while (++i < n) {\n\t if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n\t }\n\t }\n\t\n\t else {\n\t while (++i < n) {\n\t if (value = +valueof(values[i], i, values)) sum += value;\n\t }\n\t }\n\t\n\t return sum;\n\t};\n\t\n\tvar transpose = function(matrix) {\n\t if (!(n = matrix.length)) return [];\n\t for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n\t for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n\t row[j] = matrix[j][i];\n\t }\n\t }\n\t return transpose;\n\t};\n\t\n\tfunction length(d) {\n\t return d.length;\n\t}\n\t\n\tvar zip = function() {\n\t return transpose(arguments);\n\t};\n\t\n\texports.bisect = bisectRight;\n\texports.bisectRight = bisectRight;\n\texports.bisectLeft = bisectLeft;\n\texports.ascending = ascending;\n\texports.bisector = bisector;\n\texports.cross = cross;\n\texports.descending = descending;\n\texports.deviation = deviation;\n\texports.extent = extent;\n\texports.histogram = histogram;\n\texports.thresholdFreedmanDiaconis = freedmanDiaconis;\n\texports.thresholdScott = scott;\n\texports.thresholdSturges = sturges;\n\texports.max = max;\n\texports.mean = mean;\n\texports.median = median;\n\texports.merge = merge;\n\texports.min = min;\n\texports.pairs = pairs;\n\texports.permute = permute;\n\texports.quantile = quantile;\n\texports.range = range;\n\texports.scan = scan;\n\texports.shuffle = shuffle;\n\texports.sum = sum;\n\texports.ticks = ticks;\n\texports.tickIncrement = tickIncrement;\n\texports.tickStep = tickStep;\n\texports.transpose = transpose;\n\texports.variance = variance;\n\texports.zip = zip;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-ease/ Version 1.0.3. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\tfunction linear(t) {\n\t return +t;\n\t}\n\t\n\tfunction quadIn(t) {\n\t return t * t;\n\t}\n\t\n\tfunction quadOut(t) {\n\t return t * (2 - t);\n\t}\n\t\n\tfunction quadInOut(t) {\n\t return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n\t}\n\t\n\tfunction cubicIn(t) {\n\t return t * t * t;\n\t}\n\t\n\tfunction cubicOut(t) {\n\t return --t * t * t + 1;\n\t}\n\t\n\tfunction cubicInOut(t) {\n\t return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n\t}\n\t\n\tvar exponent = 3;\n\t\n\tvar polyIn = (function custom(e) {\n\t e = +e;\n\t\n\t function polyIn(t) {\n\t return Math.pow(t, e);\n\t }\n\t\n\t polyIn.exponent = custom;\n\t\n\t return polyIn;\n\t})(exponent);\n\t\n\tvar polyOut = (function custom(e) {\n\t e = +e;\n\t\n\t function polyOut(t) {\n\t return 1 - Math.pow(1 - t, e);\n\t }\n\t\n\t polyOut.exponent = custom;\n\t\n\t return polyOut;\n\t})(exponent);\n\t\n\tvar polyInOut = (function custom(e) {\n\t e = +e;\n\t\n\t function polyInOut(t) {\n\t return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n\t }\n\t\n\t polyInOut.exponent = custom;\n\t\n\t return polyInOut;\n\t})(exponent);\n\t\n\tvar pi = Math.PI;\n\tvar halfPi = pi / 2;\n\t\n\tfunction sinIn(t) {\n\t return 1 - Math.cos(t * halfPi);\n\t}\n\t\n\tfunction sinOut(t) {\n\t return Math.sin(t * halfPi);\n\t}\n\t\n\tfunction sinInOut(t) {\n\t return (1 - Math.cos(pi * t)) / 2;\n\t}\n\t\n\tfunction expIn(t) {\n\t return Math.pow(2, 10 * t - 10);\n\t}\n\t\n\tfunction expOut(t) {\n\t return 1 - Math.pow(2, -10 * t);\n\t}\n\t\n\tfunction expInOut(t) {\n\t return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;\n\t}\n\t\n\tfunction circleIn(t) {\n\t return 1 - Math.sqrt(1 - t * t);\n\t}\n\t\n\tfunction circleOut(t) {\n\t return Math.sqrt(1 - --t * t);\n\t}\n\t\n\tfunction circleInOut(t) {\n\t return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n\t}\n\t\n\tvar b1 = 4 / 11;\n\tvar b2 = 6 / 11;\n\tvar b3 = 8 / 11;\n\tvar b4 = 3 / 4;\n\tvar b5 = 9 / 11;\n\tvar b6 = 10 / 11;\n\tvar b7 = 15 / 16;\n\tvar b8 = 21 / 22;\n\tvar b9 = 63 / 64;\n\tvar b0 = 1 / b1 / b1;\n\t\n\tfunction bounceIn(t) {\n\t return 1 - bounceOut(1 - t);\n\t}\n\t\n\tfunction bounceOut(t) {\n\t return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n\t}\n\t\n\tfunction bounceInOut(t) {\n\t return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n\t}\n\t\n\tvar overshoot = 1.70158;\n\t\n\tvar backIn = (function custom(s) {\n\t s = +s;\n\t\n\t function backIn(t) {\n\t return t * t * ((s + 1) * t - s);\n\t }\n\t\n\t backIn.overshoot = custom;\n\t\n\t return backIn;\n\t})(overshoot);\n\t\n\tvar backOut = (function custom(s) {\n\t s = +s;\n\t\n\t function backOut(t) {\n\t return --t * t * ((s + 1) * t + s) + 1;\n\t }\n\t\n\t backOut.overshoot = custom;\n\t\n\t return backOut;\n\t})(overshoot);\n\t\n\tvar backInOut = (function custom(s) {\n\t s = +s;\n\t\n\t function backInOut(t) {\n\t return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n\t }\n\t\n\t backInOut.overshoot = custom;\n\t\n\t return backInOut;\n\t})(overshoot);\n\t\n\tvar tau = 2 * Math.PI;\n\tvar amplitude = 1;\n\tvar period = 0.3;\n\t\n\tvar elasticIn = (function custom(a, p) {\n\t var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\t\n\t function elasticIn(t) {\n\t return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n\t }\n\t\n\t elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n\t elasticIn.period = function(p) { return custom(a, p); };\n\t\n\t return elasticIn;\n\t})(amplitude, period);\n\t\n\tvar elasticOut = (function custom(a, p) {\n\t var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\t\n\t function elasticOut(t) {\n\t return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n\t }\n\t\n\t elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n\t elasticOut.period = function(p) { return custom(a, p); };\n\t\n\t return elasticOut;\n\t})(amplitude, period);\n\t\n\tvar elasticInOut = (function custom(a, p) {\n\t var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\t\n\t function elasticInOut(t) {\n\t return ((t = t * 2 - 1) < 0\n\t ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n\t : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n\t }\n\t\n\t elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n\t elasticInOut.period = function(p) { return custom(a, p); };\n\t\n\t return elasticInOut;\n\t})(amplitude, period);\n\t\n\texports.easeLinear = linear;\n\texports.easeQuad = quadInOut;\n\texports.easeQuadIn = quadIn;\n\texports.easeQuadOut = quadOut;\n\texports.easeQuadInOut = quadInOut;\n\texports.easeCubic = cubicInOut;\n\texports.easeCubicIn = cubicIn;\n\texports.easeCubicOut = cubicOut;\n\texports.easeCubicInOut = cubicInOut;\n\texports.easePoly = polyInOut;\n\texports.easePolyIn = polyIn;\n\texports.easePolyOut = polyOut;\n\texports.easePolyInOut = polyInOut;\n\texports.easeSin = sinInOut;\n\texports.easeSinIn = sinIn;\n\texports.easeSinOut = sinOut;\n\texports.easeSinInOut = sinInOut;\n\texports.easeExp = expInOut;\n\texports.easeExpIn = expIn;\n\texports.easeExpOut = expOut;\n\texports.easeExpInOut = expInOut;\n\texports.easeCircle = circleInOut;\n\texports.easeCircleIn = circleIn;\n\texports.easeCircleOut = circleOut;\n\texports.easeCircleInOut = circleInOut;\n\texports.easeBounce = bounceOut;\n\texports.easeBounceIn = bounceIn;\n\texports.easeBounceOut = bounceOut;\n\texports.easeBounceInOut = bounceInOut;\n\texports.easeBack = backInOut;\n\texports.easeBackIn = backIn;\n\texports.easeBackOut = backOut;\n\texports.easeBackInOut = backInOut;\n\texports.easeElastic = elasticOut;\n\texports.easeElasticIn = elasticIn;\n\texports.easeElasticOut = elasticOut;\n\texports.easeElasticInOut = elasticInOut;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 3 */,\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-color/ Version 1.0.3. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\tvar define = function(constructor, factory, prototype) {\n\t constructor.prototype = factory.prototype = prototype;\n\t prototype.constructor = constructor;\n\t};\n\t\n\tfunction extend(parent, definition) {\n\t var prototype = Object.create(parent.prototype);\n\t for (var key in definition) prototype[key] = definition[key];\n\t return prototype;\n\t}\n\t\n\tfunction Color() {}\n\t\n\tvar darker = 0.7;\n\tvar brighter = 1 / darker;\n\t\n\tvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\";\n\tvar reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\";\n\tvar reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\";\n\tvar reHex3 = /^#([0-9a-f]{3})$/;\n\tvar reHex6 = /^#([0-9a-f]{6})$/;\n\tvar reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\");\n\tvar reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\");\n\tvar reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\");\n\tvar reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\");\n\tvar reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\");\n\tvar reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\t\n\tvar named = {\n\t aliceblue: 0xf0f8ff,\n\t antiquewhite: 0xfaebd7,\n\t aqua: 0x00ffff,\n\t aquamarine: 0x7fffd4,\n\t azure: 0xf0ffff,\n\t beige: 0xf5f5dc,\n\t bisque: 0xffe4c4,\n\t black: 0x000000,\n\t blanchedalmond: 0xffebcd,\n\t blue: 0x0000ff,\n\t blueviolet: 0x8a2be2,\n\t brown: 0xa52a2a,\n\t burlywood: 0xdeb887,\n\t cadetblue: 0x5f9ea0,\n\t chartreuse: 0x7fff00,\n\t chocolate: 0xd2691e,\n\t coral: 0xff7f50,\n\t cornflowerblue: 0x6495ed,\n\t cornsilk: 0xfff8dc,\n\t crimson: 0xdc143c,\n\t cyan: 0x00ffff,\n\t darkblue: 0x00008b,\n\t darkcyan: 0x008b8b,\n\t darkgoldenrod: 0xb8860b,\n\t darkgray: 0xa9a9a9,\n\t darkgreen: 0x006400,\n\t darkgrey: 0xa9a9a9,\n\t darkkhaki: 0xbdb76b,\n\t darkmagenta: 0x8b008b,\n\t darkolivegreen: 0x556b2f,\n\t darkorange: 0xff8c00,\n\t darkorchid: 0x9932cc,\n\t darkred: 0x8b0000,\n\t darksalmon: 0xe9967a,\n\t darkseagreen: 0x8fbc8f,\n\t darkslateblue: 0x483d8b,\n\t darkslategray: 0x2f4f4f,\n\t darkslategrey: 0x2f4f4f,\n\t darkturquoise: 0x00ced1,\n\t darkviolet: 0x9400d3,\n\t deeppink: 0xff1493,\n\t deepskyblue: 0x00bfff,\n\t dimgray: 0x696969,\n\t dimgrey: 0x696969,\n\t dodgerblue: 0x1e90ff,\n\t firebrick: 0xb22222,\n\t floralwhite: 0xfffaf0,\n\t forestgreen: 0x228b22,\n\t fuchsia: 0xff00ff,\n\t gainsboro: 0xdcdcdc,\n\t ghostwhite: 0xf8f8ff,\n\t gold: 0xffd700,\n\t goldenrod: 0xdaa520,\n\t gray: 0x808080,\n\t green: 0x008000,\n\t greenyellow: 0xadff2f,\n\t grey: 0x808080,\n\t honeydew: 0xf0fff0,\n\t hotpink: 0xff69b4,\n\t indianred: 0xcd5c5c,\n\t indigo: 0x4b0082,\n\t ivory: 0xfffff0,\n\t khaki: 0xf0e68c,\n\t lavender: 0xe6e6fa,\n\t lavenderblush: 0xfff0f5,\n\t lawngreen: 0x7cfc00,\n\t lemonchiffon: 0xfffacd,\n\t lightblue: 0xadd8e6,\n\t lightcoral: 0xf08080,\n\t lightcyan: 0xe0ffff,\n\t lightgoldenrodyellow: 0xfafad2,\n\t lightgray: 0xd3d3d3,\n\t lightgreen: 0x90ee90,\n\t lightgrey: 0xd3d3d3,\n\t lightpink: 0xffb6c1,\n\t lightsalmon: 0xffa07a,\n\t lightseagreen: 0x20b2aa,\n\t lightskyblue: 0x87cefa,\n\t lightslategray: 0x778899,\n\t lightslategrey: 0x778899,\n\t lightsteelblue: 0xb0c4de,\n\t lightyellow: 0xffffe0,\n\t lime: 0x00ff00,\n\t limegreen: 0x32cd32,\n\t linen: 0xfaf0e6,\n\t magenta: 0xff00ff,\n\t maroon: 0x800000,\n\t mediumaquamarine: 0x66cdaa,\n\t mediumblue: 0x0000cd,\n\t mediumorchid: 0xba55d3,\n\t mediumpurple: 0x9370db,\n\t mediumseagreen: 0x3cb371,\n\t mediumslateblue: 0x7b68ee,\n\t mediumspringgreen: 0x00fa9a,\n\t mediumturquoise: 0x48d1cc,\n\t mediumvioletred: 0xc71585,\n\t midnightblue: 0x191970,\n\t mintcream: 0xf5fffa,\n\t mistyrose: 0xffe4e1,\n\t moccasin: 0xffe4b5,\n\t navajowhite: 0xffdead,\n\t navy: 0x000080,\n\t oldlace: 0xfdf5e6,\n\t olive: 0x808000,\n\t olivedrab: 0x6b8e23,\n\t orange: 0xffa500,\n\t orangered: 0xff4500,\n\t orchid: 0xda70d6,\n\t palegoldenrod: 0xeee8aa,\n\t palegreen: 0x98fb98,\n\t paleturquoise: 0xafeeee,\n\t palevioletred: 0xdb7093,\n\t papayawhip: 0xffefd5,\n\t peachpuff: 0xffdab9,\n\t peru: 0xcd853f,\n\t pink: 0xffc0cb,\n\t plum: 0xdda0dd,\n\t powderblue: 0xb0e0e6,\n\t purple: 0x800080,\n\t rebeccapurple: 0x663399,\n\t red: 0xff0000,\n\t rosybrown: 0xbc8f8f,\n\t royalblue: 0x4169e1,\n\t saddlebrown: 0x8b4513,\n\t salmon: 0xfa8072,\n\t sandybrown: 0xf4a460,\n\t seagreen: 0x2e8b57,\n\t seashell: 0xfff5ee,\n\t sienna: 0xa0522d,\n\t silver: 0xc0c0c0,\n\t skyblue: 0x87ceeb,\n\t slateblue: 0x6a5acd,\n\t slategray: 0x708090,\n\t slategrey: 0x708090,\n\t snow: 0xfffafa,\n\t springgreen: 0x00ff7f,\n\t steelblue: 0x4682b4,\n\t tan: 0xd2b48c,\n\t teal: 0x008080,\n\t thistle: 0xd8bfd8,\n\t tomato: 0xff6347,\n\t turquoise: 0x40e0d0,\n\t violet: 0xee82ee,\n\t wheat: 0xf5deb3,\n\t white: 0xffffff,\n\t whitesmoke: 0xf5f5f5,\n\t yellow: 0xffff00,\n\t yellowgreen: 0x9acd32\n\t};\n\t\n\tdefine(Color, color, {\n\t displayable: function() {\n\t return this.rgb().displayable();\n\t },\n\t toString: function() {\n\t return this.rgb() + \"\";\n\t }\n\t});\n\t\n\tfunction color(format) {\n\t var m;\n\t format = (format + \"\").trim().toLowerCase();\n\t return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n\t : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\n\t : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n\t : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n\t : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n\t : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n\t : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n\t : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n\t : named.hasOwnProperty(format) ? rgbn(named[format])\n\t : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n\t : null;\n\t}\n\t\n\tfunction rgbn(n) {\n\t return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n\t}\n\t\n\tfunction rgba(r, g, b, a) {\n\t if (a <= 0) r = g = b = NaN;\n\t return new Rgb(r, g, b, a);\n\t}\n\t\n\tfunction rgbConvert(o) {\n\t if (!(o instanceof Color)) o = color(o);\n\t if (!o) return new Rgb;\n\t o = o.rgb();\n\t return new Rgb(o.r, o.g, o.b, o.opacity);\n\t}\n\t\n\tfunction rgb(r, g, b, opacity) {\n\t return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n\t}\n\t\n\tfunction Rgb(r, g, b, opacity) {\n\t this.r = +r;\n\t this.g = +g;\n\t this.b = +b;\n\t this.opacity = +opacity;\n\t}\n\t\n\tdefine(Rgb, rgb, extend(Color, {\n\t brighter: function(k) {\n\t k = k == null ? brighter : Math.pow(brighter, k);\n\t return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n\t },\n\t darker: function(k) {\n\t k = k == null ? darker : Math.pow(darker, k);\n\t return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n\t },\n\t rgb: function() {\n\t return this;\n\t },\n\t displayable: function() {\n\t return (0 <= this.r && this.r <= 255)\n\t && (0 <= this.g && this.g <= 255)\n\t && (0 <= this.b && this.b <= 255)\n\t && (0 <= this.opacity && this.opacity <= 1);\n\t },\n\t toString: function() {\n\t var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n\t return (a === 1 ? \"rgb(\" : \"rgba(\")\n\t + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n\t + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n\t + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n\t + (a === 1 ? \")\" : \", \" + a + \")\");\n\t }\n\t}));\n\t\n\tfunction hsla(h, s, l, a) {\n\t if (a <= 0) h = s = l = NaN;\n\t else if (l <= 0 || l >= 1) h = s = NaN;\n\t else if (s <= 0) h = NaN;\n\t return new Hsl(h, s, l, a);\n\t}\n\t\n\tfunction hslConvert(o) {\n\t if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n\t if (!(o instanceof Color)) o = color(o);\n\t if (!o) return new Hsl;\n\t if (o instanceof Hsl) return o;\n\t o = o.rgb();\n\t var r = o.r / 255,\n\t g = o.g / 255,\n\t b = o.b / 255,\n\t min = Math.min(r, g, b),\n\t max = Math.max(r, g, b),\n\t h = NaN,\n\t s = max - min,\n\t l = (max + min) / 2;\n\t if (s) {\n\t if (r === max) h = (g - b) / s + (g < b) * 6;\n\t else if (g === max) h = (b - r) / s + 2;\n\t else h = (r - g) / s + 4;\n\t s /= l < 0.5 ? max + min : 2 - max - min;\n\t h *= 60;\n\t } else {\n\t s = l > 0 && l < 1 ? 0 : h;\n\t }\n\t return new Hsl(h, s, l, o.opacity);\n\t}\n\t\n\tfunction hsl(h, s, l, opacity) {\n\t return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n\t}\n\t\n\tfunction Hsl(h, s, l, opacity) {\n\t this.h = +h;\n\t this.s = +s;\n\t this.l = +l;\n\t this.opacity = +opacity;\n\t}\n\t\n\tdefine(Hsl, hsl, extend(Color, {\n\t brighter: function(k) {\n\t k = k == null ? brighter : Math.pow(brighter, k);\n\t return new Hsl(this.h, this.s, this.l * k, this.opacity);\n\t },\n\t darker: function(k) {\n\t k = k == null ? darker : Math.pow(darker, k);\n\t return new Hsl(this.h, this.s, this.l * k, this.opacity);\n\t },\n\t rgb: function() {\n\t var h = this.h % 360 + (this.h < 0) * 360,\n\t s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n\t l = this.l,\n\t m2 = l + (l < 0.5 ? l : 1 - l) * s,\n\t m1 = 2 * l - m2;\n\t return new Rgb(\n\t hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n\t hsl2rgb(h, m1, m2),\n\t hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n\t this.opacity\n\t );\n\t },\n\t displayable: function() {\n\t return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n\t && (0 <= this.l && this.l <= 1)\n\t && (0 <= this.opacity && this.opacity <= 1);\n\t }\n\t}));\n\t\n\t/* From FvD 13.37, CSS Color Module Level 3 */\n\tfunction hsl2rgb(h, m1, m2) {\n\t return (h < 60 ? m1 + (m2 - m1) * h / 60\n\t : h < 180 ? m2\n\t : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n\t : m1) * 255;\n\t}\n\t\n\tvar deg2rad = Math.PI / 180;\n\tvar rad2deg = 180 / Math.PI;\n\t\n\tvar Kn = 18;\n\tvar Xn = 0.950470;\n\tvar Yn = 1;\n\tvar Zn = 1.088830;\n\tvar t0 = 4 / 29;\n\tvar t1 = 6 / 29;\n\tvar t2 = 3 * t1 * t1;\n\tvar t3 = t1 * t1 * t1;\n\t\n\tfunction labConvert(o) {\n\t if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n\t if (o instanceof Hcl) {\n\t var h = o.h * deg2rad;\n\t return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n\t }\n\t if (!(o instanceof Rgb)) o = rgbConvert(o);\n\t var b = rgb2xyz(o.r),\n\t a = rgb2xyz(o.g),\n\t l = rgb2xyz(o.b),\n\t x = xyz2lab((0.4124564 * b + 0.3575761 * a + 0.1804375 * l) / Xn),\n\t y = xyz2lab((0.2126729 * b + 0.7151522 * a + 0.0721750 * l) / Yn),\n\t z = xyz2lab((0.0193339 * b + 0.1191920 * a + 0.9503041 * l) / Zn);\n\t return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n\t}\n\t\n\tfunction lab(l, a, b, opacity) {\n\t return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n\t}\n\t\n\tfunction Lab(l, a, b, opacity) {\n\t this.l = +l;\n\t this.a = +a;\n\t this.b = +b;\n\t this.opacity = +opacity;\n\t}\n\t\n\tdefine(Lab, lab, extend(Color, {\n\t brighter: function(k) {\n\t return new Lab(this.l + Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n\t },\n\t darker: function(k) {\n\t return new Lab(this.l - Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n\t },\n\t rgb: function() {\n\t var y = (this.l + 16) / 116,\n\t x = isNaN(this.a) ? y : y + this.a / 500,\n\t z = isNaN(this.b) ? y : y - this.b / 200;\n\t y = Yn * lab2xyz(y);\n\t x = Xn * lab2xyz(x);\n\t z = Zn * lab2xyz(z);\n\t return new Rgb(\n\t xyz2rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z), // D65 -> sRGB\n\t xyz2rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),\n\t xyz2rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z),\n\t this.opacity\n\t );\n\t }\n\t}));\n\t\n\tfunction xyz2lab(t) {\n\t return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n\t}\n\t\n\tfunction lab2xyz(t) {\n\t return t > t1 ? t * t * t : t2 * (t - t0);\n\t}\n\t\n\tfunction xyz2rgb(x) {\n\t return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n\t}\n\t\n\tfunction rgb2xyz(x) {\n\t return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n\t}\n\t\n\tfunction hclConvert(o) {\n\t if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n\t if (!(o instanceof Lab)) o = labConvert(o);\n\t var h = Math.atan2(o.b, o.a) * rad2deg;\n\t return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n\t}\n\t\n\tfunction hcl(h, c, l, opacity) {\n\t return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n\t}\n\t\n\tfunction Hcl(h, c, l, opacity) {\n\t this.h = +h;\n\t this.c = +c;\n\t this.l = +l;\n\t this.opacity = +opacity;\n\t}\n\t\n\tdefine(Hcl, hcl, extend(Color, {\n\t brighter: function(k) {\n\t return new Hcl(this.h, this.c, this.l + Kn * (k == null ? 1 : k), this.opacity);\n\t },\n\t darker: function(k) {\n\t return new Hcl(this.h, this.c, this.l - Kn * (k == null ? 1 : k), this.opacity);\n\t },\n\t rgb: function() {\n\t return labConvert(this).rgb();\n\t }\n\t}));\n\t\n\tvar A = -0.14861;\n\tvar B = +1.78277;\n\tvar C = -0.29227;\n\tvar D = -0.90649;\n\tvar E = +1.97294;\n\tvar ED = E * D;\n\tvar EB = E * B;\n\tvar BC_DA = B * C - D * A;\n\t\n\tfunction cubehelixConvert(o) {\n\t if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n\t if (!(o instanceof Rgb)) o = rgbConvert(o);\n\t var r = o.r / 255,\n\t g = o.g / 255,\n\t b = o.b / 255,\n\t l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n\t bl = b - l,\n\t k = (E * (g - l) - C * bl) / D,\n\t s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n\t h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n\t return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n\t}\n\t\n\tfunction cubehelix(h, s, l, opacity) {\n\t return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n\t}\n\t\n\tfunction Cubehelix(h, s, l, opacity) {\n\t this.h = +h;\n\t this.s = +s;\n\t this.l = +l;\n\t this.opacity = +opacity;\n\t}\n\t\n\tdefine(Cubehelix, cubehelix, extend(Color, {\n\t brighter: function(k) {\n\t k = k == null ? brighter : Math.pow(brighter, k);\n\t return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n\t },\n\t darker: function(k) {\n\t k = k == null ? darker : Math.pow(darker, k);\n\t return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n\t },\n\t rgb: function() {\n\t var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n\t l = +this.l,\n\t a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n\t cosh = Math.cos(h),\n\t sinh = Math.sin(h);\n\t return new Rgb(\n\t 255 * (l + a * (A * cosh + B * sinh)),\n\t 255 * (l + a * (C * cosh + D * sinh)),\n\t 255 * (l + a * (E * cosh)),\n\t this.opacity\n\t );\n\t }\n\t}));\n\t\n\texports.color = color;\n\texports.rgb = rgb;\n\texports.hsl = hsl;\n\texports.lab = lab;\n\texports.hcl = hcl;\n\texports.cubehelix = cubehelix;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-dispatch/ Version 1.0.3. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\tvar noop = {value: function() {}};\n\t\n\tfunction dispatch() {\n\t for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n\t if (!(t = arguments[i] + \"\") || (t in _)) throw new Error(\"illegal type: \" + t);\n\t _[t] = [];\n\t }\n\t return new Dispatch(_);\n\t}\n\t\n\tfunction Dispatch(_) {\n\t this._ = _;\n\t}\n\t\n\tfunction parseTypenames(typenames, types) {\n\t return typenames.trim().split(/^|\\s+/).map(function(t) {\n\t var name = \"\", i = t.indexOf(\".\");\n\t if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n\t if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n\t return {type: t, name: name};\n\t });\n\t}\n\t\n\tDispatch.prototype = dispatch.prototype = {\n\t constructor: Dispatch,\n\t on: function(typename, callback) {\n\t var _ = this._,\n\t T = parseTypenames(typename + \"\", _),\n\t t,\n\t i = -1,\n\t n = T.length;\n\t\n\t // If no callback was specified, return the callback of the given type and name.\n\t if (arguments.length < 2) {\n\t while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n\t return;\n\t }\n\t\n\t // If a type was specified, set the callback for the given type and name.\n\t // Otherwise, if a null callback was specified, remove callbacks of the given name.\n\t if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n\t while (++i < n) {\n\t if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n\t else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n\t }\n\t\n\t return this;\n\t },\n\t copy: function() {\n\t var copy = {}, _ = this._;\n\t for (var t in _) copy[t] = _[t].slice();\n\t return new Dispatch(copy);\n\t },\n\t call: function(type, that) {\n\t if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n\t if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\t for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n\t },\n\t apply: function(type, that, args) {\n\t if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\t for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n\t }\n\t};\n\t\n\tfunction get(type, name) {\n\t for (var i = 0, n = type.length, c; i < n; ++i) {\n\t if ((c = type[i]).name === name) {\n\t return c.value;\n\t }\n\t }\n\t}\n\t\n\tfunction set(type, name, callback) {\n\t for (var i = 0, n = type.length; i < n; ++i) {\n\t if (type[i].name === name) {\n\t type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n\t break;\n\t }\n\t }\n\t if (callback != null) type.push({name: name, value: callback});\n\t return type;\n\t}\n\t\n\texports.dispatch = dispatch;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-format/ Version 1.2.0. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\t// Computes the decimal coefficient and exponent of the specified number x with\n\t// significant digits p, where x is positive and p is in [1, 21] or undefined.\n\t// For example, formatDecimal(1.23) returns [\"123\", 0].\n\tvar formatDecimal = function(x, p) {\n\t if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n\t var i, coefficient = x.slice(0, i);\n\t\n\t // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n\t // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n\t return [\n\t coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n\t +x.slice(i + 1)\n\t ];\n\t};\n\t\n\tvar exponent = function(x) {\n\t return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n\t};\n\t\n\tvar formatGroup = function(grouping, thousands) {\n\t return function(value, width) {\n\t var i = value.length,\n\t t = [],\n\t j = 0,\n\t g = grouping[0],\n\t length = 0;\n\t\n\t while (i > 0 && g > 0) {\n\t if (length + g + 1 > width) g = Math.max(1, width - length);\n\t t.push(value.substring(i -= g, i + g));\n\t if ((length += g + 1) > width) break;\n\t g = grouping[j = (j + 1) % grouping.length];\n\t }\n\t\n\t return t.reverse().join(thousands);\n\t };\n\t};\n\t\n\tvar formatNumerals = function(numerals) {\n\t return function(value) {\n\t return value.replace(/[0-9]/g, function(i) {\n\t return numerals[+i];\n\t });\n\t };\n\t};\n\t\n\tvar formatDefault = function(x, p) {\n\t x = x.toPrecision(p);\n\t\n\t out: for (var n = x.length, i = 1, i0 = -1, i1; i < n; ++i) {\n\t switch (x[i]) {\n\t case \".\": i0 = i1 = i; break;\n\t case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n\t case \"e\": break out;\n\t default: if (i0 > 0) i0 = 0; break;\n\t }\n\t }\n\t\n\t return i0 > 0 ? x.slice(0, i0) + x.slice(i1 + 1) : x;\n\t};\n\t\n\tvar prefixExponent;\n\t\n\tvar formatPrefixAuto = function(x, p) {\n\t var d = formatDecimal(x, p);\n\t if (!d) return x + \"\";\n\t var coefficient = d[0],\n\t exponent = d[1],\n\t i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n\t n = coefficient.length;\n\t return i === n ? coefficient\n\t : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n\t : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n\t : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n\t};\n\t\n\tvar formatRounded = function(x, p) {\n\t var d = formatDecimal(x, p);\n\t if (!d) return x + \"\";\n\t var coefficient = d[0],\n\t exponent = d[1];\n\t return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n\t : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n\t : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n\t};\n\t\n\tvar formatTypes = {\n\t \"\": formatDefault,\n\t \"%\": function(x, p) { return (x * 100).toFixed(p); },\n\t \"b\": function(x) { return Math.round(x).toString(2); },\n\t \"c\": function(x) { return x + \"\"; },\n\t \"d\": function(x) { return Math.round(x).toString(10); },\n\t \"e\": function(x, p) { return x.toExponential(p); },\n\t \"f\": function(x, p) { return x.toFixed(p); },\n\t \"g\": function(x, p) { return x.toPrecision(p); },\n\t \"o\": function(x) { return Math.round(x).toString(8); },\n\t \"p\": function(x, p) { return formatRounded(x * 100, p); },\n\t \"r\": formatRounded,\n\t \"s\": formatPrefixAuto,\n\t \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n\t \"x\": function(x) { return Math.round(x).toString(16); }\n\t};\n\t\n\t// [[fill]align][sign][symbol][0][width][,][.precision][type]\n\tvar re = /^(?:(.)?([<>=^]))?([+\\-\\( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?([a-z%])?$/i;\n\t\n\tfunction formatSpecifier(specifier) {\n\t return new FormatSpecifier(specifier);\n\t}\n\t\n\tformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\t\n\tfunction FormatSpecifier(specifier) {\n\t if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n\t\n\t var match,\n\t fill = match[1] || \" \",\n\t align = match[2] || \">\",\n\t sign = match[3] || \"-\",\n\t symbol = match[4] || \"\",\n\t zero = !!match[5],\n\t width = match[6] && +match[6],\n\t comma = !!match[7],\n\t precision = match[8] && +match[8].slice(1),\n\t type = match[9] || \"\";\n\t\n\t // The \"n\" type is an alias for \",g\".\n\t if (type === \"n\") comma = true, type = \"g\";\n\t\n\t // Map invalid types to the default format.\n\t else if (!formatTypes[type]) type = \"\";\n\t\n\t // If zero fill is specified, padding goes after sign and before digits.\n\t if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\t\n\t this.fill = fill;\n\t this.align = align;\n\t this.sign = sign;\n\t this.symbol = symbol;\n\t this.zero = zero;\n\t this.width = width;\n\t this.comma = comma;\n\t this.precision = precision;\n\t this.type = type;\n\t}\n\t\n\tFormatSpecifier.prototype.toString = function() {\n\t return this.fill\n\t + this.align\n\t + this.sign\n\t + this.symbol\n\t + (this.zero ? \"0\" : \"\")\n\t + (this.width == null ? \"\" : Math.max(1, this.width | 0))\n\t + (this.comma ? \",\" : \"\")\n\t + (this.precision == null ? \"\" : \".\" + Math.max(0, this.precision | 0))\n\t + this.type;\n\t};\n\t\n\tvar identity = function(x) {\n\t return x;\n\t};\n\t\n\tvar prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\t\n\tvar formatLocale = function(locale) {\n\t var group = locale.grouping && locale.thousands ? formatGroup(locale.grouping, locale.thousands) : identity,\n\t currency = locale.currency,\n\t decimal = locale.decimal,\n\t numerals = locale.numerals ? formatNumerals(locale.numerals) : identity,\n\t percent = locale.percent || \"%\";\n\t\n\t function newFormat(specifier) {\n\t specifier = formatSpecifier(specifier);\n\t\n\t var fill = specifier.fill,\n\t align = specifier.align,\n\t sign = specifier.sign,\n\t symbol = specifier.symbol,\n\t zero = specifier.zero,\n\t width = specifier.width,\n\t comma = specifier.comma,\n\t precision = specifier.precision,\n\t type = specifier.type;\n\t\n\t // Compute the prefix and suffix.\n\t // For SI-prefix, the suffix is lazily computed.\n\t var prefix = symbol === \"$\" ? currency[0] : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n\t suffix = symbol === \"$\" ? currency[1] : /[%p]/.test(type) ? percent : \"\";\n\t\n\t // What format function should we use?\n\t // Is this an integer type?\n\t // Can this type generate exponential notation?\n\t var formatType = formatTypes[type],\n\t maybeSuffix = !type || /[defgprs%]/.test(type);\n\t\n\t // Set the default precision if not specified,\n\t // or clamp the specified precision to the supported range.\n\t // For significant precision, it must be in [1, 21].\n\t // For fixed precision, it must be in [0, 20].\n\t precision = precision == null ? (type ? 6 : 12)\n\t : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n\t : Math.max(0, Math.min(20, precision));\n\t\n\t function format(value) {\n\t var valuePrefix = prefix,\n\t valueSuffix = suffix,\n\t i, n, c;\n\t\n\t if (type === \"c\") {\n\t valueSuffix = formatType(value) + valueSuffix;\n\t value = \"\";\n\t } else {\n\t value = +value;\n\t\n\t // Perform the initial formatting.\n\t var valueNegative = value < 0;\n\t value = formatType(Math.abs(value), precision);\n\t\n\t // If a negative value rounds to zero during formatting, treat as positive.\n\t if (valueNegative && +value === 0) valueNegative = false;\n\t\n\t // Compute the prefix and suffix.\n\t valuePrefix = (valueNegative ? (sign === \"(\" ? sign : \"-\") : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n\t valueSuffix = valueSuffix + (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\t\n\t // Break the formatted value into the integer “value” part that can be\n\t // grouped, and fractional or exponential “suffix” part that is not.\n\t if (maybeSuffix) {\n\t i = -1, n = value.length;\n\t while (++i < n) {\n\t if (c = value.charCodeAt(i), 48 > c || c > 57) {\n\t valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n\t value = value.slice(0, i);\n\t break;\n\t }\n\t }\n\t }\n\t }\n\t\n\t // If the fill character is not \"0\", grouping is applied before padding.\n\t if (comma && !zero) value = group(value, Infinity);\n\t\n\t // Compute the padding.\n\t var length = valuePrefix.length + value.length + valueSuffix.length,\n\t padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\t\n\t // If the fill character is \"0\", grouping is applied after padding.\n\t if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\t\n\t // Reconstruct the final output based on the desired alignment.\n\t switch (align) {\n\t case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n\t case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n\t case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n\t default: value = padding + valuePrefix + value + valueSuffix; break;\n\t }\n\t\n\t return numerals(value);\n\t }\n\t\n\t format.toString = function() {\n\t return specifier + \"\";\n\t };\n\t\n\t return format;\n\t }\n\t\n\t function formatPrefix(specifier, value) {\n\t var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n\t e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n\t k = Math.pow(10, -e),\n\t prefix = prefixes[8 + e / 3];\n\t return function(value) {\n\t return f(k * value) + prefix;\n\t };\n\t }\n\t\n\t return {\n\t format: newFormat,\n\t formatPrefix: formatPrefix\n\t };\n\t};\n\t\n\tvar locale;\n\t\n\t\n\t\n\tdefaultLocale({\n\t decimal: \".\",\n\t thousands: \",\",\n\t grouping: [3],\n\t currency: [\"$\", \"\"]\n\t});\n\t\n\tfunction defaultLocale(definition) {\n\t locale = formatLocale(definition);\n\t exports.format = locale.format;\n\t exports.formatPrefix = locale.formatPrefix;\n\t return locale;\n\t}\n\t\n\tvar precisionFixed = function(step) {\n\t return Math.max(0, -exponent(Math.abs(step)));\n\t};\n\t\n\tvar precisionPrefix = function(step, value) {\n\t return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n\t};\n\t\n\tvar precisionRound = function(step, max) {\n\t step = Math.abs(step), max = Math.abs(max) - step;\n\t return Math.max(0, exponent(max) - exponent(step)) + 1;\n\t};\n\t\n\texports.formatDefaultLocale = defaultLocale;\n\texports.formatLocale = formatLocale;\n\texports.formatSpecifier = formatSpecifier;\n\texports.precisionFixed = precisionFixed;\n\texports.precisionPrefix = precisionPrefix;\n\texports.precisionRound = precisionRound;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-scale/ Version 1.0.6. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports, __webpack_require__(1), __webpack_require__(8), __webpack_require__(9), __webpack_require__(6), __webpack_require__(10), __webpack_require__(11), __webpack_require__(4)) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports', 'd3-array', 'd3-collection', 'd3-interpolate', 'd3-format', 'd3-time', 'd3-time-format', 'd3-color'], factory) :\n\t\t(factory((global.d3 = global.d3 || {}),global.d3,global.d3,global.d3,global.d3,global.d3,global.d3,global.d3));\n\t}(this, (function (exports,d3Array,d3Collection,d3Interpolate,d3Format,d3Time,d3TimeFormat,d3Color) { 'use strict';\n\t\n\tvar array = Array.prototype;\n\t\n\tvar map$1 = array.map;\n\tvar slice = array.slice;\n\t\n\tvar implicit = {name: \"implicit\"};\n\t\n\tfunction ordinal(range$$1) {\n\t var index = d3Collection.map(),\n\t domain = [],\n\t unknown = implicit;\n\t\n\t range$$1 = range$$1 == null ? [] : slice.call(range$$1);\n\t\n\t function scale(d) {\n\t var key = d + \"\", i = index.get(key);\n\t if (!i) {\n\t if (unknown !== implicit) return unknown;\n\t index.set(key, i = domain.push(d));\n\t }\n\t return range$$1[(i - 1) % range$$1.length];\n\t }\n\t\n\t scale.domain = function(_) {\n\t if (!arguments.length) return domain.slice();\n\t domain = [], index = d3Collection.map();\n\t var i = -1, n = _.length, d, key;\n\t while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n\t return scale;\n\t };\n\t\n\t scale.range = function(_) {\n\t return arguments.length ? (range$$1 = slice.call(_), scale) : range$$1.slice();\n\t };\n\t\n\t scale.unknown = function(_) {\n\t return arguments.length ? (unknown = _, scale) : unknown;\n\t };\n\t\n\t scale.copy = function() {\n\t return ordinal()\n\t .domain(domain)\n\t .range(range$$1)\n\t .unknown(unknown);\n\t };\n\t\n\t return scale;\n\t}\n\t\n\tfunction band() {\n\t var scale = ordinal().unknown(undefined),\n\t domain = scale.domain,\n\t ordinalRange = scale.range,\n\t range$$1 = [0, 1],\n\t step,\n\t bandwidth,\n\t round = false,\n\t paddingInner = 0,\n\t paddingOuter = 0,\n\t align = 0.5;\n\t\n\t delete scale.unknown;\n\t\n\t function rescale() {\n\t var n = domain().length,\n\t reverse = range$$1[1] < range$$1[0],\n\t start = range$$1[reverse - 0],\n\t stop = range$$1[1 - reverse];\n\t step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n\t if (round) step = Math.floor(step);\n\t start += (stop - start - step * (n - paddingInner)) * align;\n\t bandwidth = step * (1 - paddingInner);\n\t if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n\t var values = d3Array.range(n).map(function(i) { return start + step * i; });\n\t return ordinalRange(reverse ? values.reverse() : values);\n\t }\n\t\n\t scale.domain = function(_) {\n\t return arguments.length ? (domain(_), rescale()) : domain();\n\t };\n\t\n\t scale.range = function(_) {\n\t return arguments.length ? (range$$1 = [+_[0], +_[1]], rescale()) : range$$1.slice();\n\t };\n\t\n\t scale.rangeRound = function(_) {\n\t return range$$1 = [+_[0], +_[1]], round = true, rescale();\n\t };\n\t\n\t scale.bandwidth = function() {\n\t return bandwidth;\n\t };\n\t\n\t scale.step = function() {\n\t return step;\n\t };\n\t\n\t scale.round = function(_) {\n\t return arguments.length ? (round = !!_, rescale()) : round;\n\t };\n\t\n\t scale.padding = function(_) {\n\t return arguments.length ? (paddingInner = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n\t };\n\t\n\t scale.paddingInner = function(_) {\n\t return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n\t };\n\t\n\t scale.paddingOuter = function(_) {\n\t return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingOuter;\n\t };\n\t\n\t scale.align = function(_) {\n\t return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n\t };\n\t\n\t scale.copy = function() {\n\t return band()\n\t .domain(domain())\n\t .range(range$$1)\n\t .round(round)\n\t .paddingInner(paddingInner)\n\t .paddingOuter(paddingOuter)\n\t .align(align);\n\t };\n\t\n\t return rescale();\n\t}\n\t\n\tfunction pointish(scale) {\n\t var copy = scale.copy;\n\t\n\t scale.padding = scale.paddingOuter;\n\t delete scale.paddingInner;\n\t delete scale.paddingOuter;\n\t\n\t scale.copy = function() {\n\t return pointish(copy());\n\t };\n\t\n\t return scale;\n\t}\n\t\n\tfunction point() {\n\t return pointish(band().paddingInner(1));\n\t}\n\t\n\tvar constant = function(x) {\n\t return function() {\n\t return x;\n\t };\n\t};\n\t\n\tvar number = function(x) {\n\t return +x;\n\t};\n\t\n\tvar unit = [0, 1];\n\t\n\tfunction deinterpolateLinear(a, b) {\n\t return (b -= (a = +a))\n\t ? function(x) { return (x - a) / b; }\n\t : constant(b);\n\t}\n\t\n\tfunction deinterpolateClamp(deinterpolate) {\n\t return function(a, b) {\n\t var d = deinterpolate(a = +a, b = +b);\n\t return function(x) { return x <= a ? 0 : x >= b ? 1 : d(x); };\n\t };\n\t}\n\t\n\tfunction reinterpolateClamp(reinterpolate) {\n\t return function(a, b) {\n\t var r = reinterpolate(a = +a, b = +b);\n\t return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };\n\t };\n\t}\n\t\n\tfunction bimap(domain, range$$1, deinterpolate, reinterpolate) {\n\t var d0 = domain[0], d1 = domain[1], r0 = range$$1[0], r1 = range$$1[1];\n\t if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);\n\t else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);\n\t return function(x) { return r0(d0(x)); };\n\t}\n\t\n\tfunction polymap(domain, range$$1, deinterpolate, reinterpolate) {\n\t var j = Math.min(domain.length, range$$1.length) - 1,\n\t d = new Array(j),\n\t r = new Array(j),\n\t i = -1;\n\t\n\t // Reverse descending domains.\n\t if (domain[j] < domain[0]) {\n\t domain = domain.slice().reverse();\n\t range$$1 = range$$1.slice().reverse();\n\t }\n\t\n\t while (++i < j) {\n\t d[i] = deinterpolate(domain[i], domain[i + 1]);\n\t r[i] = reinterpolate(range$$1[i], range$$1[i + 1]);\n\t }\n\t\n\t return function(x) {\n\t var i = d3Array.bisect(domain, x, 1, j) - 1;\n\t return r[i](d[i](x));\n\t };\n\t}\n\t\n\tfunction copy(source, target) {\n\t return target\n\t .domain(source.domain())\n\t .range(source.range())\n\t .interpolate(source.interpolate())\n\t .clamp(source.clamp());\n\t}\n\t\n\t// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n\t// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].\n\tfunction continuous(deinterpolate, reinterpolate) {\n\t var domain = unit,\n\t range$$1 = unit,\n\t interpolate$$1 = d3Interpolate.interpolate,\n\t clamp = false,\n\t piecewise,\n\t output,\n\t input;\n\t\n\t function rescale() {\n\t piecewise = Math.min(domain.length, range$$1.length) > 2 ? polymap : bimap;\n\t output = input = null;\n\t return scale;\n\t }\n\t\n\t function scale(x) {\n\t return (output || (output = piecewise(domain, range$$1, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate$$1)))(+x);\n\t }\n\t\n\t scale.invert = function(y) {\n\t return (input || (input = piecewise(range$$1, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);\n\t };\n\t\n\t scale.domain = function(_) {\n\t return arguments.length ? (domain = map$1.call(_, number), rescale()) : domain.slice();\n\t };\n\t\n\t scale.range = function(_) {\n\t return arguments.length ? (range$$1 = slice.call(_), rescale()) : range$$1.slice();\n\t };\n\t\n\t scale.rangeRound = function(_) {\n\t return range$$1 = slice.call(_), interpolate$$1 = d3Interpolate.interpolateRound, rescale();\n\t };\n\t\n\t scale.clamp = function(_) {\n\t return arguments.length ? (clamp = !!_, rescale()) : clamp;\n\t };\n\t\n\t scale.interpolate = function(_) {\n\t return arguments.length ? (interpolate$$1 = _, rescale()) : interpolate$$1;\n\t };\n\t\n\t return rescale();\n\t}\n\t\n\tvar tickFormat = function(domain, count, specifier) {\n\t var start = domain[0],\n\t stop = domain[domain.length - 1],\n\t step = d3Array.tickStep(start, stop, count == null ? 10 : count),\n\t precision;\n\t specifier = d3Format.formatSpecifier(specifier == null ? \",f\" : specifier);\n\t switch (specifier.type) {\n\t case \"s\": {\n\t var value = Math.max(Math.abs(start), Math.abs(stop));\n\t if (specifier.precision == null && !isNaN(precision = d3Format.precisionPrefix(step, value))) specifier.precision = precision;\n\t return d3Format.formatPrefix(specifier, value);\n\t }\n\t case \"\":\n\t case \"e\":\n\t case \"g\":\n\t case \"p\":\n\t case \"r\": {\n\t if (specifier.precision == null && !isNaN(precision = d3Format.precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n\t break;\n\t }\n\t case \"f\":\n\t case \"%\": {\n\t if (specifier.precision == null && !isNaN(precision = d3Format.precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n\t break;\n\t }\n\t }\n\t return d3Format.format(specifier);\n\t};\n\t\n\tfunction linearish(scale) {\n\t var domain = scale.domain;\n\t\n\t scale.ticks = function(count) {\n\t var d = domain();\n\t return d3Array.ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n\t };\n\t\n\t scale.tickFormat = function(count, specifier) {\n\t return tickFormat(domain(), count, specifier);\n\t };\n\t\n\t scale.nice = function(count) {\n\t if (count == null) count = 10;\n\t\n\t var d = domain(),\n\t i0 = 0,\n\t i1 = d.length - 1,\n\t start = d[i0],\n\t stop = d[i1],\n\t step;\n\t\n\t if (stop < start) {\n\t step = start, start = stop, stop = step;\n\t step = i0, i0 = i1, i1 = step;\n\t }\n\t\n\t step = d3Array.tickIncrement(start, stop, count);\n\t\n\t if (step > 0) {\n\t start = Math.floor(start / step) * step;\n\t stop = Math.ceil(stop / step) * step;\n\t step = d3Array.tickIncrement(start, stop, count);\n\t } else if (step < 0) {\n\t start = Math.ceil(start * step) / step;\n\t stop = Math.floor(stop * step) / step;\n\t step = d3Array.tickIncrement(start, stop, count);\n\t }\n\t\n\t if (step > 0) {\n\t d[i0] = Math.floor(start / step) * step;\n\t d[i1] = Math.ceil(stop / step) * step;\n\t domain(d);\n\t } else if (step < 0) {\n\t d[i0] = Math.ceil(start * step) / step;\n\t d[i1] = Math.floor(stop * step) / step;\n\t domain(d);\n\t }\n\t\n\t return scale;\n\t };\n\t\n\t return scale;\n\t}\n\t\n\tfunction linear() {\n\t var scale = continuous(deinterpolateLinear, d3Interpolate.interpolateNumber);\n\t\n\t scale.copy = function() {\n\t return copy(scale, linear());\n\t };\n\t\n\t return linearish(scale);\n\t}\n\t\n\tfunction identity() {\n\t var domain = [0, 1];\n\t\n\t function scale(x) {\n\t return +x;\n\t }\n\t\n\t scale.invert = scale;\n\t\n\t scale.domain = scale.range = function(_) {\n\t return arguments.length ? (domain = map$1.call(_, number), scale) : domain.slice();\n\t };\n\t\n\t scale.copy = function() {\n\t return identity().domain(domain);\n\t };\n\t\n\t return linearish(scale);\n\t}\n\t\n\tvar nice = function(domain, interval) {\n\t domain = domain.slice();\n\t\n\t var i0 = 0,\n\t i1 = domain.length - 1,\n\t x0 = domain[i0],\n\t x1 = domain[i1],\n\t t;\n\t\n\t if (x1 < x0) {\n\t t = i0, i0 = i1, i1 = t;\n\t t = x0, x0 = x1, x1 = t;\n\t }\n\t\n\t domain[i0] = interval.floor(x0);\n\t domain[i1] = interval.ceil(x1);\n\t return domain;\n\t};\n\t\n\tfunction deinterpolate(a, b) {\n\t return (b = Math.log(b / a))\n\t ? function(x) { return Math.log(x / a) / b; }\n\t : constant(b);\n\t}\n\t\n\tfunction reinterpolate(a, b) {\n\t return a < 0\n\t ? function(t) { return -Math.pow(-b, t) * Math.pow(-a, 1 - t); }\n\t : function(t) { return Math.pow(b, t) * Math.pow(a, 1 - t); };\n\t}\n\t\n\tfunction pow10(x) {\n\t return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n\t}\n\t\n\tfunction powp(base) {\n\t return base === 10 ? pow10\n\t : base === Math.E ? Math.exp\n\t : function(x) { return Math.pow(base, x); };\n\t}\n\t\n\tfunction logp(base) {\n\t return base === Math.E ? Math.log\n\t : base === 10 && Math.log10\n\t || base === 2 && Math.log2\n\t || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n\t}\n\t\n\tfunction reflect(f) {\n\t return function(x) {\n\t return -f(-x);\n\t };\n\t}\n\t\n\tfunction log() {\n\t var scale = continuous(deinterpolate, reinterpolate).domain([1, 10]),\n\t domain = scale.domain,\n\t base = 10,\n\t logs = logp(10),\n\t pows = powp(10);\n\t\n\t function rescale() {\n\t logs = logp(base), pows = powp(base);\n\t if (domain()[0] < 0) logs = reflect(logs), pows = reflect(pows);\n\t return scale;\n\t }\n\t\n\t scale.base = function(_) {\n\t return arguments.length ? (base = +_, rescale()) : base;\n\t };\n\t\n\t scale.domain = function(_) {\n\t return arguments.length ? (domain(_), rescale()) : domain();\n\t };\n\t\n\t scale.ticks = function(count) {\n\t var d = domain(),\n\t u = d[0],\n\t v = d[d.length - 1],\n\t r;\n\t\n\t if (r = v < u) i = u, u = v, v = i;\n\t\n\t var i = logs(u),\n\t j = logs(v),\n\t p,\n\t k,\n\t t,\n\t n = count == null ? 10 : +count,\n\t z = [];\n\t\n\t if (!(base % 1) && j - i < n) {\n\t i = Math.round(i) - 1, j = Math.round(j) + 1;\n\t if (u > 0) for (; i < j; ++i) {\n\t for (k = 1, p = pows(i); k < base; ++k) {\n\t t = p * k;\n\t if (t < u) continue;\n\t if (t > v) break;\n\t z.push(t);\n\t }\n\t } else for (; i < j; ++i) {\n\t for (k = base - 1, p = pows(i); k >= 1; --k) {\n\t t = p * k;\n\t if (t < u) continue;\n\t if (t > v) break;\n\t z.push(t);\n\t }\n\t }\n\t } else {\n\t z = d3Array.ticks(i, j, Math.min(j - i, n)).map(pows);\n\t }\n\t\n\t return r ? z.reverse() : z;\n\t };\n\t\n\t scale.tickFormat = function(count, specifier) {\n\t if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n\t if (typeof specifier !== \"function\") specifier = d3Format.format(specifier);\n\t if (count === Infinity) return specifier;\n\t if (count == null) count = 10;\n\t var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n\t return function(d) {\n\t var i = d / pows(Math.round(logs(d)));\n\t if (i * base < base - 0.5) i *= base;\n\t return i <= k ? specifier(d) : \"\";\n\t };\n\t };\n\t\n\t scale.nice = function() {\n\t return domain(nice(domain(), {\n\t floor: function(x) { return pows(Math.floor(logs(x))); },\n\t ceil: function(x) { return pows(Math.ceil(logs(x))); }\n\t }));\n\t };\n\t\n\t scale.copy = function() {\n\t return copy(scale, log().base(base));\n\t };\n\t\n\t return scale;\n\t}\n\t\n\tfunction raise(x, exponent) {\n\t return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n\t}\n\t\n\tfunction pow() {\n\t var exponent = 1,\n\t scale = continuous(deinterpolate, reinterpolate),\n\t domain = scale.domain;\n\t\n\t function deinterpolate(a, b) {\n\t return (b = raise(b, exponent) - (a = raise(a, exponent)))\n\t ? function(x) { return (raise(x, exponent) - a) / b; }\n\t : constant(b);\n\t }\n\t\n\t function reinterpolate(a, b) {\n\t b = raise(b, exponent) - (a = raise(a, exponent));\n\t return function(t) { return raise(a + b * t, 1 / exponent); };\n\t }\n\t\n\t scale.exponent = function(_) {\n\t return arguments.length ? (exponent = +_, domain(domain())) : exponent;\n\t };\n\t\n\t scale.copy = function() {\n\t return copy(scale, pow().exponent(exponent));\n\t };\n\t\n\t return linearish(scale);\n\t}\n\t\n\tfunction sqrt() {\n\t return pow().exponent(0.5);\n\t}\n\t\n\tfunction quantile$1() {\n\t var domain = [],\n\t range$$1 = [],\n\t thresholds = [];\n\t\n\t function rescale() {\n\t var i = 0, n = Math.max(1, range$$1.length);\n\t thresholds = new Array(n - 1);\n\t while (++i < n) thresholds[i - 1] = d3Array.quantile(domain, i / n);\n\t return scale;\n\t }\n\t\n\t function scale(x) {\n\t if (!isNaN(x = +x)) return range$$1[d3Array.bisect(thresholds, x)];\n\t }\n\t\n\t scale.invertExtent = function(y) {\n\t var i = range$$1.indexOf(y);\n\t return i < 0 ? [NaN, NaN] : [\n\t i > 0 ? thresholds[i - 1] : domain[0],\n\t i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n\t ];\n\t };\n\t\n\t scale.domain = function(_) {\n\t if (!arguments.length) return domain.slice();\n\t domain = [];\n\t for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n\t domain.sort(d3Array.ascending);\n\t return rescale();\n\t };\n\t\n\t scale.range = function(_) {\n\t return arguments.length ? (range$$1 = slice.call(_), rescale()) : range$$1.slice();\n\t };\n\t\n\t scale.quantiles = function() {\n\t return thresholds.slice();\n\t };\n\t\n\t scale.copy = function() {\n\t return quantile$1()\n\t .domain(domain)\n\t .range(range$$1);\n\t };\n\t\n\t return scale;\n\t}\n\t\n\tfunction quantize() {\n\t var x0 = 0,\n\t x1 = 1,\n\t n = 1,\n\t domain = [0.5],\n\t range$$1 = [0, 1];\n\t\n\t function scale(x) {\n\t if (x <= x) return range$$1[d3Array.bisect(domain, x, 0, n)];\n\t }\n\t\n\t function rescale() {\n\t var i = -1;\n\t domain = new Array(n);\n\t while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n\t return scale;\n\t }\n\t\n\t scale.domain = function(_) {\n\t return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n\t };\n\t\n\t scale.range = function(_) {\n\t return arguments.length ? (n = (range$$1 = slice.call(_)).length - 1, rescale()) : range$$1.slice();\n\t };\n\t\n\t scale.invertExtent = function(y) {\n\t var i = range$$1.indexOf(y);\n\t return i < 0 ? [NaN, NaN]\n\t : i < 1 ? [x0, domain[0]]\n\t : i >= n ? [domain[n - 1], x1]\n\t : [domain[i - 1], domain[i]];\n\t };\n\t\n\t scale.copy = function() {\n\t return quantize()\n\t .domain([x0, x1])\n\t .range(range$$1);\n\t };\n\t\n\t return linearish(scale);\n\t}\n\t\n\tfunction threshold() {\n\t var domain = [0.5],\n\t range$$1 = [0, 1],\n\t n = 1;\n\t\n\t function scale(x) {\n\t if (x <= x) return range$$1[d3Array.bisect(domain, x, 0, n)];\n\t }\n\t\n\t scale.domain = function(_) {\n\t return arguments.length ? (domain = slice.call(_), n = Math.min(domain.length, range$$1.length - 1), scale) : domain.slice();\n\t };\n\t\n\t scale.range = function(_) {\n\t return arguments.length ? (range$$1 = slice.call(_), n = Math.min(domain.length, range$$1.length - 1), scale) : range$$1.slice();\n\t };\n\t\n\t scale.invertExtent = function(y) {\n\t var i = range$$1.indexOf(y);\n\t return [domain[i - 1], domain[i]];\n\t };\n\t\n\t scale.copy = function() {\n\t return threshold()\n\t .domain(domain)\n\t .range(range$$1);\n\t };\n\t\n\t return scale;\n\t}\n\t\n\tvar durationSecond = 1000;\n\tvar durationMinute = durationSecond * 60;\n\tvar durationHour = durationMinute * 60;\n\tvar durationDay = durationHour * 24;\n\tvar durationWeek = durationDay * 7;\n\tvar durationMonth = durationDay * 30;\n\tvar durationYear = durationDay * 365;\n\t\n\tfunction date(t) {\n\t return new Date(t);\n\t}\n\t\n\tfunction number$1(t) {\n\t return t instanceof Date ? +t : +new Date(+t);\n\t}\n\t\n\tfunction calendar(year, month, week, day, hour, minute, second, millisecond, format$$1) {\n\t var scale = continuous(deinterpolateLinear, d3Interpolate.interpolateNumber),\n\t invert = scale.invert,\n\t domain = scale.domain;\n\t\n\t var formatMillisecond = format$$1(\".%L\"),\n\t formatSecond = format$$1(\":%S\"),\n\t formatMinute = format$$1(\"%I:%M\"),\n\t formatHour = format$$1(\"%I %p\"),\n\t formatDay = format$$1(\"%a %d\"),\n\t formatWeek = format$$1(\"%b %d\"),\n\t formatMonth = format$$1(\"%B\"),\n\t formatYear = format$$1(\"%Y\");\n\t\n\t var tickIntervals = [\n\t [second, 1, durationSecond],\n\t [second, 5, 5 * durationSecond],\n\t [second, 15, 15 * durationSecond],\n\t [second, 30, 30 * durationSecond],\n\t [minute, 1, durationMinute],\n\t [minute, 5, 5 * durationMinute],\n\t [minute, 15, 15 * durationMinute],\n\t [minute, 30, 30 * durationMinute],\n\t [ hour, 1, durationHour ],\n\t [ hour, 3, 3 * durationHour ],\n\t [ hour, 6, 6 * durationHour ],\n\t [ hour, 12, 12 * durationHour ],\n\t [ day, 1, durationDay ],\n\t [ day, 2, 2 * durationDay ],\n\t [ week, 1, durationWeek ],\n\t [ month, 1, durationMonth ],\n\t [ month, 3, 3 * durationMonth ],\n\t [ year, 1, durationYear ]\n\t ];\n\t\n\t function tickFormat(date) {\n\t return (second(date) < date ? formatMillisecond\n\t : minute(date) < date ? formatSecond\n\t : hour(date) < date ? formatMinute\n\t : day(date) < date ? formatHour\n\t : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n\t : year(date) < date ? formatMonth\n\t : formatYear)(date);\n\t }\n\t\n\t function tickInterval(interval, start, stop, step) {\n\t if (interval == null) interval = 10;\n\t\n\t // If a desired tick count is specified, pick a reasonable tick interval\n\t // based on the extent of the domain and a rough estimate of tick size.\n\t // Otherwise, assume interval is already a time interval and use it.\n\t if (typeof interval === \"number\") {\n\t var target = Math.abs(stop - start) / interval,\n\t i = d3Array.bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n\t if (i === tickIntervals.length) {\n\t step = d3Array.tickStep(start / durationYear, stop / durationYear, interval);\n\t interval = year;\n\t } else if (i) {\n\t i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n\t step = i[1];\n\t interval = i[0];\n\t } else {\n\t step = d3Array.tickStep(start, stop, interval);\n\t interval = millisecond;\n\t }\n\t }\n\t\n\t return step == null ? interval : interval.every(step);\n\t }\n\t\n\t scale.invert = function(y) {\n\t return new Date(invert(y));\n\t };\n\t\n\t scale.domain = function(_) {\n\t return arguments.length ? domain(map$1.call(_, number$1)) : domain().map(date);\n\t };\n\t\n\t scale.ticks = function(interval, step) {\n\t var d = domain(),\n\t t0 = d[0],\n\t t1 = d[d.length - 1],\n\t r = t1 < t0,\n\t t;\n\t if (r) t = t0, t0 = t1, t1 = t;\n\t t = tickInterval(interval, t0, t1, step);\n\t t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n\t return r ? t.reverse() : t;\n\t };\n\t\n\t scale.tickFormat = function(count, specifier) {\n\t return specifier == null ? tickFormat : format$$1(specifier);\n\t };\n\t\n\t scale.nice = function(interval, step) {\n\t var d = domain();\n\t return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n\t ? domain(nice(d, interval))\n\t : scale;\n\t };\n\t\n\t scale.copy = function() {\n\t return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format$$1));\n\t };\n\t\n\t return scale;\n\t}\n\t\n\tvar time = function() {\n\t return calendar(d3Time.timeYear, d3Time.timeMonth, d3Time.timeWeek, d3Time.timeDay, d3Time.timeHour, d3Time.timeMinute, d3Time.timeSecond, d3Time.timeMillisecond, d3TimeFormat.timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);\n\t};\n\t\n\tvar utcTime = function() {\n\t return calendar(d3Time.utcYear, d3Time.utcMonth, d3Time.utcWeek, d3Time.utcDay, d3Time.utcHour, d3Time.utcMinute, d3Time.utcSecond, d3Time.utcMillisecond, d3TimeFormat.utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]);\n\t};\n\t\n\tvar colors = function(s) {\n\t return s.match(/.{6}/g).map(function(x) {\n\t return \"#\" + x;\n\t });\n\t};\n\t\n\tvar category10 = colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n\t\n\tvar category20b = colors(\"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6\");\n\t\n\tvar category20c = colors(\"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9\");\n\t\n\tvar category20 = colors(\"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5\");\n\t\n\tvar cubehelix$1 = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(300, 0.5, 0.0), d3Color.cubehelix(-240, 0.5, 1.0));\n\t\n\tvar warm = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(-100, 0.75, 0.35), d3Color.cubehelix(80, 1.50, 0.8));\n\t\n\tvar cool = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(260, 0.75, 0.35), d3Color.cubehelix(80, 1.50, 0.8));\n\t\n\tvar rainbow = d3Color.cubehelix();\n\t\n\tvar rainbow$1 = function(t) {\n\t if (t < 0 || t > 1) t -= Math.floor(t);\n\t var ts = Math.abs(t - 0.5);\n\t rainbow.h = 360 * t - 100;\n\t rainbow.s = 1.5 - 1.5 * ts;\n\t rainbow.l = 0.8 - 0.9 * ts;\n\t return rainbow + \"\";\n\t};\n\t\n\tfunction ramp(range$$1) {\n\t var n = range$$1.length;\n\t return function(t) {\n\t return range$$1[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n\t };\n\t}\n\t\n\tvar viridis = ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\t\n\tvar magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\t\n\tvar inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\t\n\tvar plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n\t\n\tfunction sequential(interpolator) {\n\t var x0 = 0,\n\t x1 = 1,\n\t clamp = false;\n\t\n\t function scale(x) {\n\t var t = (x - x0) / (x1 - x0);\n\t return interpolator(clamp ? Math.max(0, Math.min(1, t)) : t);\n\t }\n\t\n\t scale.domain = function(_) {\n\t return arguments.length ? (x0 = +_[0], x1 = +_[1], scale) : [x0, x1];\n\t };\n\t\n\t scale.clamp = function(_) {\n\t return arguments.length ? (clamp = !!_, scale) : clamp;\n\t };\n\t\n\t scale.interpolator = function(_) {\n\t return arguments.length ? (interpolator = _, scale) : interpolator;\n\t };\n\t\n\t scale.copy = function() {\n\t return sequential(interpolator).domain([x0, x1]).clamp(clamp);\n\t };\n\t\n\t return linearish(scale);\n\t}\n\t\n\texports.scaleBand = band;\n\texports.scalePoint = point;\n\texports.scaleIdentity = identity;\n\texports.scaleLinear = linear;\n\texports.scaleLog = log;\n\texports.scaleOrdinal = ordinal;\n\texports.scaleImplicit = implicit;\n\texports.scalePow = pow;\n\texports.scaleSqrt = sqrt;\n\texports.scaleQuantile = quantile$1;\n\texports.scaleQuantize = quantize;\n\texports.scaleThreshold = threshold;\n\texports.scaleTime = time;\n\texports.scaleUtc = utcTime;\n\texports.schemeCategory10 = category10;\n\texports.schemeCategory20b = category20b;\n\texports.schemeCategory20c = category20c;\n\texports.schemeCategory20 = category20;\n\texports.interpolateCubehelixDefault = cubehelix$1;\n\texports.interpolateRainbow = rainbow$1;\n\texports.interpolateWarm = warm;\n\texports.interpolateCool = cool;\n\texports.interpolateViridis = viridis;\n\texports.interpolateMagma = magma;\n\texports.interpolateInferno = inferno;\n\texports.interpolatePlasma = plasma;\n\texports.scaleSequential = sequential;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-collection/ Version 1.0.4. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\tvar prefix = \"$\";\n\t\n\tfunction Map() {}\n\t\n\tMap.prototype = map.prototype = {\n\t constructor: Map,\n\t has: function(key) {\n\t return (prefix + key) in this;\n\t },\n\t get: function(key) {\n\t return this[prefix + key];\n\t },\n\t set: function(key, value) {\n\t this[prefix + key] = value;\n\t return this;\n\t },\n\t remove: function(key) {\n\t var property = prefix + key;\n\t return property in this && delete this[property];\n\t },\n\t clear: function() {\n\t for (var property in this) if (property[0] === prefix) delete this[property];\n\t },\n\t keys: function() {\n\t var keys = [];\n\t for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n\t return keys;\n\t },\n\t values: function() {\n\t var values = [];\n\t for (var property in this) if (property[0] === prefix) values.push(this[property]);\n\t return values;\n\t },\n\t entries: function() {\n\t var entries = [];\n\t for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n\t return entries;\n\t },\n\t size: function() {\n\t var size = 0;\n\t for (var property in this) if (property[0] === prefix) ++size;\n\t return size;\n\t },\n\t empty: function() {\n\t for (var property in this) if (property[0] === prefix) return false;\n\t return true;\n\t },\n\t each: function(f) {\n\t for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n\t }\n\t};\n\t\n\tfunction map(object, f) {\n\t var map = new Map;\n\t\n\t // Copy constructor.\n\t if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\t\n\t // Index array by numeric index or specified key function.\n\t else if (Array.isArray(object)) {\n\t var i = -1,\n\t n = object.length,\n\t o;\n\t\n\t if (f == null) while (++i < n) map.set(i, object[i]);\n\t else while (++i < n) map.set(f(o = object[i], i, object), o);\n\t }\n\t\n\t // Convert object to map.\n\t else if (object) for (var key in object) map.set(key, object[key]);\n\t\n\t return map;\n\t}\n\t\n\tvar nest = function() {\n\t var keys = [],\n\t sortKeys = [],\n\t sortValues,\n\t rollup,\n\t nest;\n\t\n\t function apply(array, depth, createResult, setResult) {\n\t if (depth >= keys.length) {\n\t if (sortValues != null) array.sort(sortValues);\n\t return rollup != null ? rollup(array) : array;\n\t }\n\t\n\t var i = -1,\n\t n = array.length,\n\t key = keys[depth++],\n\t keyValue,\n\t value,\n\t valuesByKey = map(),\n\t values,\n\t result = createResult();\n\t\n\t while (++i < n) {\n\t if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n\t values.push(value);\n\t } else {\n\t valuesByKey.set(keyValue, [value]);\n\t }\n\t }\n\t\n\t valuesByKey.each(function(values, key) {\n\t setResult(result, key, apply(values, depth, createResult, setResult));\n\t });\n\t\n\t return result;\n\t }\n\t\n\t function entries(map$$1, depth) {\n\t if (++depth > keys.length) return map$$1;\n\t var array, sortKey = sortKeys[depth - 1];\n\t if (rollup != null && depth >= keys.length) array = map$$1.entries();\n\t else array = [], map$$1.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n\t return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n\t }\n\t\n\t return nest = {\n\t object: function(array) { return apply(array, 0, createObject, setObject); },\n\t map: function(array) { return apply(array, 0, createMap, setMap); },\n\t entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n\t key: function(d) { keys.push(d); return nest; },\n\t sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n\t sortValues: function(order) { sortValues = order; return nest; },\n\t rollup: function(f) { rollup = f; return nest; }\n\t };\n\t};\n\t\n\tfunction createObject() {\n\t return {};\n\t}\n\t\n\tfunction setObject(object, key, value) {\n\t object[key] = value;\n\t}\n\t\n\tfunction createMap() {\n\t return map();\n\t}\n\t\n\tfunction setMap(map$$1, key, value) {\n\t map$$1.set(key, value);\n\t}\n\t\n\tfunction Set() {}\n\t\n\tvar proto = map.prototype;\n\t\n\tSet.prototype = set.prototype = {\n\t constructor: Set,\n\t has: proto.has,\n\t add: function(value) {\n\t value += \"\";\n\t this[prefix + value] = value;\n\t return this;\n\t },\n\t remove: proto.remove,\n\t clear: proto.clear,\n\t values: proto.keys,\n\t size: proto.size,\n\t empty: proto.empty,\n\t each: proto.each\n\t};\n\t\n\tfunction set(object, f) {\n\t var set = new Set;\n\t\n\t // Copy constructor.\n\t if (object instanceof Set) object.each(function(value) { set.add(value); });\n\t\n\t // Otherwise, assume it’s an array.\n\t else if (object) {\n\t var i = -1, n = object.length;\n\t if (f == null) while (++i < n) set.add(object[i]);\n\t else while (++i < n) set.add(f(object[i], i, object));\n\t }\n\t\n\t return set;\n\t}\n\t\n\tvar keys = function(map) {\n\t var keys = [];\n\t for (var key in map) keys.push(key);\n\t return keys;\n\t};\n\t\n\tvar values = function(map) {\n\t var values = [];\n\t for (var key in map) values.push(map[key]);\n\t return values;\n\t};\n\t\n\tvar entries = function(map) {\n\t var entries = [];\n\t for (var key in map) entries.push({key: key, value: map[key]});\n\t return entries;\n\t};\n\t\n\texports.nest = nest;\n\texports.set = set;\n\texports.map = map;\n\texports.keys = keys;\n\texports.values = values;\n\texports.entries = entries;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-interpolate/ Version 1.1.5. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports, __webpack_require__(4)) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports', 'd3-color'], factory) :\n\t\t(factory((global.d3 = global.d3 || {}),global.d3));\n\t}(this, (function (exports,d3Color) { 'use strict';\n\t\n\tfunction basis(t1, v0, v1, v2, v3) {\n\t var t2 = t1 * t1, t3 = t2 * t1;\n\t return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n\t + (4 - 6 * t2 + 3 * t3) * v1\n\t + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n\t + t3 * v3) / 6;\n\t}\n\t\n\tvar basis$1 = function(values) {\n\t var n = values.length - 1;\n\t return function(t) {\n\t var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n\t v1 = values[i],\n\t v2 = values[i + 1],\n\t v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n\t v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n\t return basis((t - i / n) * n, v0, v1, v2, v3);\n\t };\n\t};\n\t\n\tvar basisClosed = function(values) {\n\t var n = values.length;\n\t return function(t) {\n\t var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n\t v0 = values[(i + n - 1) % n],\n\t v1 = values[i % n],\n\t v2 = values[(i + 1) % n],\n\t v3 = values[(i + 2) % n];\n\t return basis((t - i / n) * n, v0, v1, v2, v3);\n\t };\n\t};\n\t\n\tvar constant = function(x) {\n\t return function() {\n\t return x;\n\t };\n\t};\n\t\n\tfunction linear(a, d) {\n\t return function(t) {\n\t return a + t * d;\n\t };\n\t}\n\t\n\tfunction exponential(a, b, y) {\n\t return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n\t return Math.pow(a + t * b, y);\n\t };\n\t}\n\t\n\tfunction hue(a, b) {\n\t var d = b - a;\n\t return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n\t}\n\t\n\tfunction gamma(y) {\n\t return (y = +y) === 1 ? nogamma : function(a, b) {\n\t return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n\t };\n\t}\n\t\n\tfunction nogamma(a, b) {\n\t var d = b - a;\n\t return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n\t}\n\t\n\tvar rgb$1 = ((function rgbGamma(y) {\n\t var color$$1 = gamma(y);\n\t\n\t function rgb$$1(start, end) {\n\t var r = color$$1((start = d3Color.rgb(start)).r, (end = d3Color.rgb(end)).r),\n\t g = color$$1(start.g, end.g),\n\t b = color$$1(start.b, end.b),\n\t opacity = nogamma(start.opacity, end.opacity);\n\t return function(t) {\n\t start.r = r(t);\n\t start.g = g(t);\n\t start.b = b(t);\n\t start.opacity = opacity(t);\n\t return start + \"\";\n\t };\n\t }\n\t\n\t rgb$$1.gamma = rgbGamma;\n\t\n\t return rgb$$1;\n\t}))(1);\n\t\n\tfunction rgbSpline(spline) {\n\t return function(colors) {\n\t var n = colors.length,\n\t r = new Array(n),\n\t g = new Array(n),\n\t b = new Array(n),\n\t i, color$$1;\n\t for (i = 0; i < n; ++i) {\n\t color$$1 = d3Color.rgb(colors[i]);\n\t r[i] = color$$1.r || 0;\n\t g[i] = color$$1.g || 0;\n\t b[i] = color$$1.b || 0;\n\t }\n\t r = spline(r);\n\t g = spline(g);\n\t b = spline(b);\n\t color$$1.opacity = 1;\n\t return function(t) {\n\t color$$1.r = r(t);\n\t color$$1.g = g(t);\n\t color$$1.b = b(t);\n\t return color$$1 + \"\";\n\t };\n\t };\n\t}\n\t\n\tvar rgbBasis = rgbSpline(basis$1);\n\tvar rgbBasisClosed = rgbSpline(basisClosed);\n\t\n\tvar array = function(a, b) {\n\t var nb = b ? b.length : 0,\n\t na = a ? Math.min(nb, a.length) : 0,\n\t x = new Array(nb),\n\t c = new Array(nb),\n\t i;\n\t\n\t for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n\t for (; i < nb; ++i) c[i] = b[i];\n\t\n\t return function(t) {\n\t for (i = 0; i < na; ++i) c[i] = x[i](t);\n\t return c;\n\t };\n\t};\n\t\n\tvar date = function(a, b) {\n\t var d = new Date;\n\t return a = +a, b -= a, function(t) {\n\t return d.setTime(a + b * t), d;\n\t };\n\t};\n\t\n\tvar number = function(a, b) {\n\t return a = +a, b -= a, function(t) {\n\t return a + b * t;\n\t };\n\t};\n\t\n\tvar object = function(a, b) {\n\t var i = {},\n\t c = {},\n\t k;\n\t\n\t if (a === null || typeof a !== \"object\") a = {};\n\t if (b === null || typeof b !== \"object\") b = {};\n\t\n\t for (k in b) {\n\t if (k in a) {\n\t i[k] = value(a[k], b[k]);\n\t } else {\n\t c[k] = b[k];\n\t }\n\t }\n\t\n\t return function(t) {\n\t for (k in i) c[k] = i[k](t);\n\t return c;\n\t };\n\t};\n\t\n\tvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g;\n\tvar reB = new RegExp(reA.source, \"g\");\n\t\n\tfunction zero(b) {\n\t return function() {\n\t return b;\n\t };\n\t}\n\t\n\tfunction one(b) {\n\t return function(t) {\n\t return b(t) + \"\";\n\t };\n\t}\n\t\n\tvar string = function(a, b) {\n\t var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n\t am, // current match in a\n\t bm, // current match in b\n\t bs, // string preceding current number in b, if any\n\t i = -1, // index in s\n\t s = [], // string constants and placeholders\n\t q = []; // number interpolators\n\t\n\t // Coerce inputs to strings.\n\t a = a + \"\", b = b + \"\";\n\t\n\t // Interpolate pairs of numbers in a & b.\n\t while ((am = reA.exec(a))\n\t && (bm = reB.exec(b))) {\n\t if ((bs = bm.index) > bi) { // a string precedes the next number in b\n\t bs = b.slice(bi, bs);\n\t if (s[i]) s[i] += bs; // coalesce with previous string\n\t else s[++i] = bs;\n\t }\n\t if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n\t if (s[i]) s[i] += bm; // coalesce with previous string\n\t else s[++i] = bm;\n\t } else { // interpolate non-matching numbers\n\t s[++i] = null;\n\t q.push({i: i, x: number(am, bm)});\n\t }\n\t bi = reB.lastIndex;\n\t }\n\t\n\t // Add remains of b.\n\t if (bi < b.length) {\n\t bs = b.slice(bi);\n\t if (s[i]) s[i] += bs; // coalesce with previous string\n\t else s[++i] = bs;\n\t }\n\t\n\t // Special optimization for only a single match.\n\t // Otherwise, interpolate each of the numbers and rejoin the string.\n\t return s.length < 2 ? (q[0]\n\t ? one(q[0].x)\n\t : zero(b))\n\t : (b = q.length, function(t) {\n\t for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n\t return s.join(\"\");\n\t });\n\t};\n\t\n\tvar value = function(a, b) {\n\t var t = typeof b, c;\n\t return b == null || t === \"boolean\" ? constant(b)\n\t : (t === \"number\" ? number\n\t : t === \"string\" ? ((c = d3Color.color(b)) ? (b = c, rgb$1) : string)\n\t : b instanceof d3Color.color ? rgb$1\n\t : b instanceof Date ? date\n\t : Array.isArray(b) ? array\n\t : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n\t : number)(a, b);\n\t};\n\t\n\tvar round = function(a, b) {\n\t return a = +a, b -= a, function(t) {\n\t return Math.round(a + b * t);\n\t };\n\t};\n\t\n\tvar degrees = 180 / Math.PI;\n\t\n\tvar identity = {\n\t translateX: 0,\n\t translateY: 0,\n\t rotate: 0,\n\t skewX: 0,\n\t scaleX: 1,\n\t scaleY: 1\n\t};\n\t\n\tvar decompose = function(a, b, c, d, e, f) {\n\t var scaleX, scaleY, skewX;\n\t if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n\t if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n\t if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n\t if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n\t return {\n\t translateX: e,\n\t translateY: f,\n\t rotate: Math.atan2(b, a) * degrees,\n\t skewX: Math.atan(skewX) * degrees,\n\t scaleX: scaleX,\n\t scaleY: scaleY\n\t };\n\t};\n\t\n\tvar cssNode;\n\tvar cssRoot;\n\tvar cssView;\n\tvar svgNode;\n\t\n\tfunction parseCss(value) {\n\t if (value === \"none\") return identity;\n\t if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n\t cssNode.style.transform = value;\n\t value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n\t cssRoot.removeChild(cssNode);\n\t value = value.slice(7, -1).split(\",\");\n\t return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n\t}\n\t\n\tfunction parseSvg(value) {\n\t if (value == null) return identity;\n\t if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n\t svgNode.setAttribute(\"transform\", value);\n\t if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n\t value = value.matrix;\n\t return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n\t}\n\t\n\tfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\t\n\t function pop(s) {\n\t return s.length ? s.pop() + \" \" : \"\";\n\t }\n\t\n\t function translate(xa, ya, xb, yb, s, q) {\n\t if (xa !== xb || ya !== yb) {\n\t var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n\t q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n\t } else if (xb || yb) {\n\t s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n\t }\n\t }\n\t\n\t function rotate(a, b, s, q) {\n\t if (a !== b) {\n\t if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n\t q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n\t } else if (b) {\n\t s.push(pop(s) + \"rotate(\" + b + degParen);\n\t }\n\t }\n\t\n\t function skewX(a, b, s, q) {\n\t if (a !== b) {\n\t q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n\t } else if (b) {\n\t s.push(pop(s) + \"skewX(\" + b + degParen);\n\t }\n\t }\n\t\n\t function scale(xa, ya, xb, yb, s, q) {\n\t if (xa !== xb || ya !== yb) {\n\t var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n\t q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n\t } else if (xb !== 1 || yb !== 1) {\n\t s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n\t }\n\t }\n\t\n\t return function(a, b) {\n\t var s = [], // string constants and placeholders\n\t q = []; // number interpolators\n\t a = parse(a), b = parse(b);\n\t translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n\t rotate(a.rotate, b.rotate, s, q);\n\t skewX(a.skewX, b.skewX, s, q);\n\t scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n\t a = b = null; // gc\n\t return function(t) {\n\t var i = -1, n = q.length, o;\n\t while (++i < n) s[(o = q[i]).i] = o.x(t);\n\t return s.join(\"\");\n\t };\n\t };\n\t}\n\t\n\tvar interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\n\tvar interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n\t\n\tvar rho = Math.SQRT2;\n\tvar rho2 = 2;\n\tvar rho4 = 4;\n\tvar epsilon2 = 1e-12;\n\t\n\tfunction cosh(x) {\n\t return ((x = Math.exp(x)) + 1 / x) / 2;\n\t}\n\t\n\tfunction sinh(x) {\n\t return ((x = Math.exp(x)) - 1 / x) / 2;\n\t}\n\t\n\tfunction tanh(x) {\n\t return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n\t}\n\t\n\t// p0 = [ux0, uy0, w0]\n\t// p1 = [ux1, uy1, w1]\n\tvar zoom = function(p0, p1) {\n\t var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n\t ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n\t dx = ux1 - ux0,\n\t dy = uy1 - uy0,\n\t d2 = dx * dx + dy * dy,\n\t i,\n\t S;\n\t\n\t // Special case for u0 ≅ u1.\n\t if (d2 < epsilon2) {\n\t S = Math.log(w1 / w0) / rho;\n\t i = function(t) {\n\t return [\n\t ux0 + t * dx,\n\t uy0 + t * dy,\n\t w0 * Math.exp(rho * t * S)\n\t ];\n\t };\n\t }\n\t\n\t // General case.\n\t else {\n\t var d1 = Math.sqrt(d2),\n\t b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n\t b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n\t r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n\t r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n\t S = (r1 - r0) / rho;\n\t i = function(t) {\n\t var s = t * S,\n\t coshr0 = cosh(r0),\n\t u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n\t return [\n\t ux0 + u * dx,\n\t uy0 + u * dy,\n\t w0 * coshr0 / cosh(rho * s + r0)\n\t ];\n\t };\n\t }\n\t\n\t i.duration = S * 1000;\n\t\n\t return i;\n\t};\n\t\n\tfunction hsl$1(hue$$1) {\n\t return function(start, end) {\n\t var h = hue$$1((start = d3Color.hsl(start)).h, (end = d3Color.hsl(end)).h),\n\t s = nogamma(start.s, end.s),\n\t l = nogamma(start.l, end.l),\n\t opacity = nogamma(start.opacity, end.opacity);\n\t return function(t) {\n\t start.h = h(t);\n\t start.s = s(t);\n\t start.l = l(t);\n\t start.opacity = opacity(t);\n\t return start + \"\";\n\t };\n\t }\n\t}\n\t\n\tvar hsl$2 = hsl$1(hue);\n\tvar hslLong = hsl$1(nogamma);\n\t\n\tfunction lab$1(start, end) {\n\t var l = nogamma((start = d3Color.lab(start)).l, (end = d3Color.lab(end)).l),\n\t a = nogamma(start.a, end.a),\n\t b = nogamma(start.b, end.b),\n\t opacity = nogamma(start.opacity, end.opacity);\n\t return function(t) {\n\t start.l = l(t);\n\t start.a = a(t);\n\t start.b = b(t);\n\t start.opacity = opacity(t);\n\t return start + \"\";\n\t };\n\t}\n\t\n\tfunction hcl$1(hue$$1) {\n\t return function(start, end) {\n\t var h = hue$$1((start = d3Color.hcl(start)).h, (end = d3Color.hcl(end)).h),\n\t c = nogamma(start.c, end.c),\n\t l = nogamma(start.l, end.l),\n\t opacity = nogamma(start.opacity, end.opacity);\n\t return function(t) {\n\t start.h = h(t);\n\t start.c = c(t);\n\t start.l = l(t);\n\t start.opacity = opacity(t);\n\t return start + \"\";\n\t };\n\t }\n\t}\n\t\n\tvar hcl$2 = hcl$1(hue);\n\tvar hclLong = hcl$1(nogamma);\n\t\n\tfunction cubehelix$1(hue$$1) {\n\t return (function cubehelixGamma(y) {\n\t y = +y;\n\t\n\t function cubehelix$$1(start, end) {\n\t var h = hue$$1((start = d3Color.cubehelix(start)).h, (end = d3Color.cubehelix(end)).h),\n\t s = nogamma(start.s, end.s),\n\t l = nogamma(start.l, end.l),\n\t opacity = nogamma(start.opacity, end.opacity);\n\t return function(t) {\n\t start.h = h(t);\n\t start.s = s(t);\n\t start.l = l(Math.pow(t, y));\n\t start.opacity = opacity(t);\n\t return start + \"\";\n\t };\n\t }\n\t\n\t cubehelix$$1.gamma = cubehelixGamma;\n\t\n\t return cubehelix$$1;\n\t })(1);\n\t}\n\t\n\tvar cubehelix$2 = cubehelix$1(hue);\n\tvar cubehelixLong = cubehelix$1(nogamma);\n\t\n\tvar quantize = function(interpolator, n) {\n\t var samples = new Array(n);\n\t for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n\t return samples;\n\t};\n\t\n\texports.interpolate = value;\n\texports.interpolateArray = array;\n\texports.interpolateBasis = basis$1;\n\texports.interpolateBasisClosed = basisClosed;\n\texports.interpolateDate = date;\n\texports.interpolateNumber = number;\n\texports.interpolateObject = object;\n\texports.interpolateRound = round;\n\texports.interpolateString = string;\n\texports.interpolateTransformCss = interpolateTransformCss;\n\texports.interpolateTransformSvg = interpolateTransformSvg;\n\texports.interpolateZoom = zoom;\n\texports.interpolateRgb = rgb$1;\n\texports.interpolateRgbBasis = rgbBasis;\n\texports.interpolateRgbBasisClosed = rgbBasisClosed;\n\texports.interpolateHsl = hsl$2;\n\texports.interpolateHslLong = hslLong;\n\texports.interpolateLab = lab$1;\n\texports.interpolateHcl = hcl$2;\n\texports.interpolateHclLong = hclLong;\n\texports.interpolateCubehelix = cubehelix$2;\n\texports.interpolateCubehelixLong = cubehelixLong;\n\texports.quantize = quantize;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-time/ Version 1.0.7. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\tvar t0 = new Date;\n\tvar t1 = new Date;\n\t\n\tfunction newInterval(floori, offseti, count, field) {\n\t\n\t function interval(date) {\n\t return floori(date = new Date(+date)), date;\n\t }\n\t\n\t interval.floor = interval;\n\t\n\t interval.ceil = function(date) {\n\t return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n\t };\n\t\n\t interval.round = function(date) {\n\t var d0 = interval(date),\n\t d1 = interval.ceil(date);\n\t return date - d0 < d1 - date ? d0 : d1;\n\t };\n\t\n\t interval.offset = function(date, step) {\n\t return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n\t };\n\t\n\t interval.range = function(start, stop, step) {\n\t var range = [];\n\t start = interval.ceil(start);\n\t step = step == null ? 1 : Math.floor(step);\n\t if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n\t do range.push(new Date(+start)); while (offseti(start, step), floori(start), start < stop)\n\t return range;\n\t };\n\t\n\t interval.filter = function(test) {\n\t return newInterval(function(date) {\n\t if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n\t }, function(date, step) {\n\t if (date >= date) {\n\t if (step < 0) while (++step <= 0) {\n\t while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n\t } else while (--step >= 0) {\n\t while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n\t }\n\t }\n\t });\n\t };\n\t\n\t if (count) {\n\t interval.count = function(start, end) {\n\t t0.setTime(+start), t1.setTime(+end);\n\t floori(t0), floori(t1);\n\t return Math.floor(count(t0, t1));\n\t };\n\t\n\t interval.every = function(step) {\n\t step = Math.floor(step);\n\t return !isFinite(step) || !(step > 0) ? null\n\t : !(step > 1) ? interval\n\t : interval.filter(field\n\t ? function(d) { return field(d) % step === 0; }\n\t : function(d) { return interval.count(0, d) % step === 0; });\n\t };\n\t }\n\t\n\t return interval;\n\t}\n\t\n\tvar millisecond = newInterval(function() {\n\t // noop\n\t}, function(date, step) {\n\t date.setTime(+date + step);\n\t}, function(start, end) {\n\t return end - start;\n\t});\n\t\n\t// An optimized implementation for this simple case.\n\tmillisecond.every = function(k) {\n\t k = Math.floor(k);\n\t if (!isFinite(k) || !(k > 0)) return null;\n\t if (!(k > 1)) return millisecond;\n\t return newInterval(function(date) {\n\t date.setTime(Math.floor(date / k) * k);\n\t }, function(date, step) {\n\t date.setTime(+date + step * k);\n\t }, function(start, end) {\n\t return (end - start) / k;\n\t });\n\t};\n\t\n\tvar milliseconds = millisecond.range;\n\t\n\tvar durationSecond = 1e3;\n\tvar durationMinute = 6e4;\n\tvar durationHour = 36e5;\n\tvar durationDay = 864e5;\n\tvar durationWeek = 6048e5;\n\t\n\tvar second = newInterval(function(date) {\n\t date.setTime(Math.floor(date / durationSecond) * durationSecond);\n\t}, function(date, step) {\n\t date.setTime(+date + step * durationSecond);\n\t}, function(start, end) {\n\t return (end - start) / durationSecond;\n\t}, function(date) {\n\t return date.getUTCSeconds();\n\t});\n\t\n\tvar seconds = second.range;\n\t\n\tvar minute = newInterval(function(date) {\n\t date.setTime(Math.floor(date / durationMinute) * durationMinute);\n\t}, function(date, step) {\n\t date.setTime(+date + step * durationMinute);\n\t}, function(start, end) {\n\t return (end - start) / durationMinute;\n\t}, function(date) {\n\t return date.getMinutes();\n\t});\n\t\n\tvar minutes = minute.range;\n\t\n\tvar hour = newInterval(function(date) {\n\t var offset = date.getTimezoneOffset() * durationMinute % durationHour;\n\t if (offset < 0) offset += durationHour;\n\t date.setTime(Math.floor((+date - offset) / durationHour) * durationHour + offset);\n\t}, function(date, step) {\n\t date.setTime(+date + step * durationHour);\n\t}, function(start, end) {\n\t return (end - start) / durationHour;\n\t}, function(date) {\n\t return date.getHours();\n\t});\n\t\n\tvar hours = hour.range;\n\t\n\tvar day = newInterval(function(date) {\n\t date.setHours(0, 0, 0, 0);\n\t}, function(date, step) {\n\t date.setDate(date.getDate() + step);\n\t}, function(start, end) {\n\t return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n\t}, function(date) {\n\t return date.getDate() - 1;\n\t});\n\t\n\tvar days = day.range;\n\t\n\tfunction weekday(i) {\n\t return newInterval(function(date) {\n\t date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n\t date.setHours(0, 0, 0, 0);\n\t }, function(date, step) {\n\t date.setDate(date.getDate() + step * 7);\n\t }, function(start, end) {\n\t return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n\t });\n\t}\n\t\n\tvar sunday = weekday(0);\n\tvar monday = weekday(1);\n\tvar tuesday = weekday(2);\n\tvar wednesday = weekday(3);\n\tvar thursday = weekday(4);\n\tvar friday = weekday(5);\n\tvar saturday = weekday(6);\n\t\n\tvar sundays = sunday.range;\n\tvar mondays = monday.range;\n\tvar tuesdays = tuesday.range;\n\tvar wednesdays = wednesday.range;\n\tvar thursdays = thursday.range;\n\tvar fridays = friday.range;\n\tvar saturdays = saturday.range;\n\t\n\tvar month = newInterval(function(date) {\n\t date.setDate(1);\n\t date.setHours(0, 0, 0, 0);\n\t}, function(date, step) {\n\t date.setMonth(date.getMonth() + step);\n\t}, function(start, end) {\n\t return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n\t}, function(date) {\n\t return date.getMonth();\n\t});\n\t\n\tvar months = month.range;\n\t\n\tvar year = newInterval(function(date) {\n\t date.setMonth(0, 1);\n\t date.setHours(0, 0, 0, 0);\n\t}, function(date, step) {\n\t date.setFullYear(date.getFullYear() + step);\n\t}, function(start, end) {\n\t return end.getFullYear() - start.getFullYear();\n\t}, function(date) {\n\t return date.getFullYear();\n\t});\n\t\n\t// An optimized implementation for this simple case.\n\tyear.every = function(k) {\n\t return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {\n\t date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n\t date.setMonth(0, 1);\n\t date.setHours(0, 0, 0, 0);\n\t }, function(date, step) {\n\t date.setFullYear(date.getFullYear() + step * k);\n\t });\n\t};\n\t\n\tvar years = year.range;\n\t\n\tvar utcMinute = newInterval(function(date) {\n\t date.setUTCSeconds(0, 0);\n\t}, function(date, step) {\n\t date.setTime(+date + step * durationMinute);\n\t}, function(start, end) {\n\t return (end - start) / durationMinute;\n\t}, function(date) {\n\t return date.getUTCMinutes();\n\t});\n\t\n\tvar utcMinutes = utcMinute.range;\n\t\n\tvar utcHour = newInterval(function(date) {\n\t date.setUTCMinutes(0, 0, 0);\n\t}, function(date, step) {\n\t date.setTime(+date + step * durationHour);\n\t}, function(start, end) {\n\t return (end - start) / durationHour;\n\t}, function(date) {\n\t return date.getUTCHours();\n\t});\n\t\n\tvar utcHours = utcHour.range;\n\t\n\tvar utcDay = newInterval(function(date) {\n\t date.setUTCHours(0, 0, 0, 0);\n\t}, function(date, step) {\n\t date.setUTCDate(date.getUTCDate() + step);\n\t}, function(start, end) {\n\t return (end - start) / durationDay;\n\t}, function(date) {\n\t return date.getUTCDate() - 1;\n\t});\n\t\n\tvar utcDays = utcDay.range;\n\t\n\tfunction utcWeekday(i) {\n\t return newInterval(function(date) {\n\t date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n\t date.setUTCHours(0, 0, 0, 0);\n\t }, function(date, step) {\n\t date.setUTCDate(date.getUTCDate() + step * 7);\n\t }, function(start, end) {\n\t return (end - start) / durationWeek;\n\t });\n\t}\n\t\n\tvar utcSunday = utcWeekday(0);\n\tvar utcMonday = utcWeekday(1);\n\tvar utcTuesday = utcWeekday(2);\n\tvar utcWednesday = utcWeekday(3);\n\tvar utcThursday = utcWeekday(4);\n\tvar utcFriday = utcWeekday(5);\n\tvar utcSaturday = utcWeekday(6);\n\t\n\tvar utcSundays = utcSunday.range;\n\tvar utcMondays = utcMonday.range;\n\tvar utcTuesdays = utcTuesday.range;\n\tvar utcWednesdays = utcWednesday.range;\n\tvar utcThursdays = utcThursday.range;\n\tvar utcFridays = utcFriday.range;\n\tvar utcSaturdays = utcSaturday.range;\n\t\n\tvar utcMonth = newInterval(function(date) {\n\t date.setUTCDate(1);\n\t date.setUTCHours(0, 0, 0, 0);\n\t}, function(date, step) {\n\t date.setUTCMonth(date.getUTCMonth() + step);\n\t}, function(start, end) {\n\t return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n\t}, function(date) {\n\t return date.getUTCMonth();\n\t});\n\t\n\tvar utcMonths = utcMonth.range;\n\t\n\tvar utcYear = newInterval(function(date) {\n\t date.setUTCMonth(0, 1);\n\t date.setUTCHours(0, 0, 0, 0);\n\t}, function(date, step) {\n\t date.setUTCFullYear(date.getUTCFullYear() + step);\n\t}, function(start, end) {\n\t return end.getUTCFullYear() - start.getUTCFullYear();\n\t}, function(date) {\n\t return date.getUTCFullYear();\n\t});\n\t\n\t// An optimized implementation for this simple case.\n\tutcYear.every = function(k) {\n\t return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {\n\t date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n\t date.setUTCMonth(0, 1);\n\t date.setUTCHours(0, 0, 0, 0);\n\t }, function(date, step) {\n\t date.setUTCFullYear(date.getUTCFullYear() + step * k);\n\t });\n\t};\n\t\n\tvar utcYears = utcYear.range;\n\t\n\texports.timeInterval = newInterval;\n\texports.timeMillisecond = millisecond;\n\texports.timeMilliseconds = milliseconds;\n\texports.utcMillisecond = millisecond;\n\texports.utcMilliseconds = milliseconds;\n\texports.timeSecond = second;\n\texports.timeSeconds = seconds;\n\texports.utcSecond = second;\n\texports.utcSeconds = seconds;\n\texports.timeMinute = minute;\n\texports.timeMinutes = minutes;\n\texports.timeHour = hour;\n\texports.timeHours = hours;\n\texports.timeDay = day;\n\texports.timeDays = days;\n\texports.timeWeek = sunday;\n\texports.timeWeeks = sundays;\n\texports.timeSunday = sunday;\n\texports.timeSundays = sundays;\n\texports.timeMonday = monday;\n\texports.timeMondays = mondays;\n\texports.timeTuesday = tuesday;\n\texports.timeTuesdays = tuesdays;\n\texports.timeWednesday = wednesday;\n\texports.timeWednesdays = wednesdays;\n\texports.timeThursday = thursday;\n\texports.timeThursdays = thursdays;\n\texports.timeFriday = friday;\n\texports.timeFridays = fridays;\n\texports.timeSaturday = saturday;\n\texports.timeSaturdays = saturdays;\n\texports.timeMonth = month;\n\texports.timeMonths = months;\n\texports.timeYear = year;\n\texports.timeYears = years;\n\texports.utcMinute = utcMinute;\n\texports.utcMinutes = utcMinutes;\n\texports.utcHour = utcHour;\n\texports.utcHours = utcHours;\n\texports.utcDay = utcDay;\n\texports.utcDays = utcDays;\n\texports.utcWeek = utcSunday;\n\texports.utcWeeks = utcSundays;\n\texports.utcSunday = utcSunday;\n\texports.utcSundays = utcSundays;\n\texports.utcMonday = utcMonday;\n\texports.utcMondays = utcMondays;\n\texports.utcTuesday = utcTuesday;\n\texports.utcTuesdays = utcTuesdays;\n\texports.utcWednesday = utcWednesday;\n\texports.utcWednesdays = utcWednesdays;\n\texports.utcThursday = utcThursday;\n\texports.utcThursdays = utcThursdays;\n\texports.utcFriday = utcFriday;\n\texports.utcFridays = utcFridays;\n\texports.utcSaturday = utcSaturday;\n\texports.utcSaturdays = utcSaturdays;\n\texports.utcMonth = utcMonth;\n\texports.utcMonths = utcMonths;\n\texports.utcYear = utcYear;\n\texports.utcYears = utcYears;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-time-format/ Version 2.0.5. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports, __webpack_require__(10)) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports', 'd3-time'], factory) :\n\t\t(factory((global.d3 = global.d3 || {}),global.d3));\n\t}(this, (function (exports,d3Time) { 'use strict';\n\t\n\tfunction localDate(d) {\n\t if (0 <= d.y && d.y < 100) {\n\t var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n\t date.setFullYear(d.y);\n\t return date;\n\t }\n\t return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n\t}\n\t\n\tfunction utcDate(d) {\n\t if (0 <= d.y && d.y < 100) {\n\t var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n\t date.setUTCFullYear(d.y);\n\t return date;\n\t }\n\t return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n\t}\n\t\n\tfunction newYear(y) {\n\t return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};\n\t}\n\t\n\tfunction formatLocale(locale) {\n\t var locale_dateTime = locale.dateTime,\n\t locale_date = locale.date,\n\t locale_time = locale.time,\n\t locale_periods = locale.periods,\n\t locale_weekdays = locale.days,\n\t locale_shortWeekdays = locale.shortDays,\n\t locale_months = locale.months,\n\t locale_shortMonths = locale.shortMonths;\n\t\n\t var periodRe = formatRe(locale_periods),\n\t periodLookup = formatLookup(locale_periods),\n\t weekdayRe = formatRe(locale_weekdays),\n\t weekdayLookup = formatLookup(locale_weekdays),\n\t shortWeekdayRe = formatRe(locale_shortWeekdays),\n\t shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n\t monthRe = formatRe(locale_months),\n\t monthLookup = formatLookup(locale_months),\n\t shortMonthRe = formatRe(locale_shortMonths),\n\t shortMonthLookup = formatLookup(locale_shortMonths);\n\t\n\t var formats = {\n\t \"a\": formatShortWeekday,\n\t \"A\": formatWeekday,\n\t \"b\": formatShortMonth,\n\t \"B\": formatMonth,\n\t \"c\": null,\n\t \"d\": formatDayOfMonth,\n\t \"e\": formatDayOfMonth,\n\t \"H\": formatHour24,\n\t \"I\": formatHour12,\n\t \"j\": formatDayOfYear,\n\t \"L\": formatMilliseconds,\n\t \"m\": formatMonthNumber,\n\t \"M\": formatMinutes,\n\t \"p\": formatPeriod,\n\t \"S\": formatSeconds,\n\t \"U\": formatWeekNumberSunday,\n\t \"w\": formatWeekdayNumber,\n\t \"W\": formatWeekNumberMonday,\n\t \"x\": null,\n\t \"X\": null,\n\t \"y\": formatYear,\n\t \"Y\": formatFullYear,\n\t \"Z\": formatZone,\n\t \"%\": formatLiteralPercent\n\t };\n\t\n\t var utcFormats = {\n\t \"a\": formatUTCShortWeekday,\n\t \"A\": formatUTCWeekday,\n\t \"b\": formatUTCShortMonth,\n\t \"B\": formatUTCMonth,\n\t \"c\": null,\n\t \"d\": formatUTCDayOfMonth,\n\t \"e\": formatUTCDayOfMonth,\n\t \"H\": formatUTCHour24,\n\t \"I\": formatUTCHour12,\n\t \"j\": formatUTCDayOfYear,\n\t \"L\": formatUTCMilliseconds,\n\t \"m\": formatUTCMonthNumber,\n\t \"M\": formatUTCMinutes,\n\t \"p\": formatUTCPeriod,\n\t \"S\": formatUTCSeconds,\n\t \"U\": formatUTCWeekNumberSunday,\n\t \"w\": formatUTCWeekdayNumber,\n\t \"W\": formatUTCWeekNumberMonday,\n\t \"x\": null,\n\t \"X\": null,\n\t \"y\": formatUTCYear,\n\t \"Y\": formatUTCFullYear,\n\t \"Z\": formatUTCZone,\n\t \"%\": formatLiteralPercent\n\t };\n\t\n\t var parses = {\n\t \"a\": parseShortWeekday,\n\t \"A\": parseWeekday,\n\t \"b\": parseShortMonth,\n\t \"B\": parseMonth,\n\t \"c\": parseLocaleDateTime,\n\t \"d\": parseDayOfMonth,\n\t \"e\": parseDayOfMonth,\n\t \"H\": parseHour24,\n\t \"I\": parseHour24,\n\t \"j\": parseDayOfYear,\n\t \"L\": parseMilliseconds,\n\t \"m\": parseMonthNumber,\n\t \"M\": parseMinutes,\n\t \"p\": parsePeriod,\n\t \"S\": parseSeconds,\n\t \"U\": parseWeekNumberSunday,\n\t \"w\": parseWeekdayNumber,\n\t \"W\": parseWeekNumberMonday,\n\t \"x\": parseLocaleDate,\n\t \"X\": parseLocaleTime,\n\t \"y\": parseYear,\n\t \"Y\": parseFullYear,\n\t \"Z\": parseZone,\n\t \"%\": parseLiteralPercent\n\t };\n\t\n\t // These recursive directive definitions must be deferred.\n\t formats.x = newFormat(locale_date, formats);\n\t formats.X = newFormat(locale_time, formats);\n\t formats.c = newFormat(locale_dateTime, formats);\n\t utcFormats.x = newFormat(locale_date, utcFormats);\n\t utcFormats.X = newFormat(locale_time, utcFormats);\n\t utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\t\n\t function newFormat(specifier, formats) {\n\t return function(date) {\n\t var string = [],\n\t i = -1,\n\t j = 0,\n\t n = specifier.length,\n\t c,\n\t pad,\n\t format;\n\t\n\t if (!(date instanceof Date)) date = new Date(+date);\n\t\n\t while (++i < n) {\n\t if (specifier.charCodeAt(i) === 37) {\n\t string.push(specifier.slice(j, i));\n\t if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n\t else pad = c === \"e\" ? \" \" : \"0\";\n\t if (format = formats[c]) c = format(date, pad);\n\t string.push(c);\n\t j = i + 1;\n\t }\n\t }\n\t\n\t string.push(specifier.slice(j, i));\n\t return string.join(\"\");\n\t };\n\t }\n\t\n\t function newParse(specifier, newDate) {\n\t return function(string) {\n\t var d = newYear(1900),\n\t i = parseSpecifier(d, specifier, string += \"\", 0);\n\t if (i != string.length) return null;\n\t\n\t // The am-pm flag is 0 for AM, and 1 for PM.\n\t if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\t\n\t // Convert day-of-week and week-of-year to day-of-year.\n\t if (\"W\" in d || \"U\" in d) {\n\t if (!(\"w\" in d)) d.w = \"W\" in d ? 1 : 0;\n\t var day = \"Z\" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();\n\t d.m = 0;\n\t d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n\t }\n\t\n\t // If a time zone is specified, all fields are interpreted as UTC and then\n\t // offset according to the specified time zone.\n\t if (\"Z\" in d) {\n\t d.H += d.Z / 100 | 0;\n\t d.M += d.Z % 100;\n\t return utcDate(d);\n\t }\n\t\n\t // Otherwise, all fields are in local time.\n\t return newDate(d);\n\t };\n\t }\n\t\n\t function parseSpecifier(d, specifier, string, j) {\n\t var i = 0,\n\t n = specifier.length,\n\t m = string.length,\n\t c,\n\t parse;\n\t\n\t while (i < n) {\n\t if (j >= m) return -1;\n\t c = specifier.charCodeAt(i++);\n\t if (c === 37) {\n\t c = specifier.charAt(i++);\n\t parse = parses[c in pads ? specifier.charAt(i++) : c];\n\t if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n\t } else if (c != string.charCodeAt(j++)) {\n\t return -1;\n\t }\n\t }\n\t\n\t return j;\n\t }\n\t\n\t function parsePeriod(d, string, i) {\n\t var n = periodRe.exec(string.slice(i));\n\t return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n\t }\n\t\n\t function parseShortWeekday(d, string, i) {\n\t var n = shortWeekdayRe.exec(string.slice(i));\n\t return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n\t }\n\t\n\t function parseWeekday(d, string, i) {\n\t var n = weekdayRe.exec(string.slice(i));\n\t return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n\t }\n\t\n\t function parseShortMonth(d, string, i) {\n\t var n = shortMonthRe.exec(string.slice(i));\n\t return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n\t }\n\t\n\t function parseMonth(d, string, i) {\n\t var n = monthRe.exec(string.slice(i));\n\t return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n\t }\n\t\n\t function parseLocaleDateTime(d, string, i) {\n\t return parseSpecifier(d, locale_dateTime, string, i);\n\t }\n\t\n\t function parseLocaleDate(d, string, i) {\n\t return parseSpecifier(d, locale_date, string, i);\n\t }\n\t\n\t function parseLocaleTime(d, string, i) {\n\t return parseSpecifier(d, locale_time, string, i);\n\t }\n\t\n\t function formatShortWeekday(d) {\n\t return locale_shortWeekdays[d.getDay()];\n\t }\n\t\n\t function formatWeekday(d) {\n\t return locale_weekdays[d.getDay()];\n\t }\n\t\n\t function formatShortMonth(d) {\n\t return locale_shortMonths[d.getMonth()];\n\t }\n\t\n\t function formatMonth(d) {\n\t return locale_months[d.getMonth()];\n\t }\n\t\n\t function formatPeriod(d) {\n\t return locale_periods[+(d.getHours() >= 12)];\n\t }\n\t\n\t function formatUTCShortWeekday(d) {\n\t return locale_shortWeekdays[d.getUTCDay()];\n\t }\n\t\n\t function formatUTCWeekday(d) {\n\t return locale_weekdays[d.getUTCDay()];\n\t }\n\t\n\t function formatUTCShortMonth(d) {\n\t return locale_shortMonths[d.getUTCMonth()];\n\t }\n\t\n\t function formatUTCMonth(d) {\n\t return locale_months[d.getUTCMonth()];\n\t }\n\t\n\t function formatUTCPeriod(d) {\n\t return locale_periods[+(d.getUTCHours() >= 12)];\n\t }\n\t\n\t return {\n\t format: function(specifier) {\n\t var f = newFormat(specifier += \"\", formats);\n\t f.toString = function() { return specifier; };\n\t return f;\n\t },\n\t parse: function(specifier) {\n\t var p = newParse(specifier += \"\", localDate);\n\t p.toString = function() { return specifier; };\n\t return p;\n\t },\n\t utcFormat: function(specifier) {\n\t var f = newFormat(specifier += \"\", utcFormats);\n\t f.toString = function() { return specifier; };\n\t return f;\n\t },\n\t utcParse: function(specifier) {\n\t var p = newParse(specifier, utcDate);\n\t p.toString = function() { return specifier; };\n\t return p;\n\t }\n\t };\n\t}\n\t\n\tvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"};\n\tvar numberRe = /^\\s*\\d+/;\n\tvar percentRe = /^%/;\n\tvar requoteRe = /[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;\n\t\n\tfunction pad(value, fill, width) {\n\t var sign = value < 0 ? \"-\" : \"\",\n\t string = (sign ? -value : value) + \"\",\n\t length = string.length;\n\t return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n\t}\n\t\n\tfunction requote(s) {\n\t return s.replace(requoteRe, \"\\\\$&\");\n\t}\n\t\n\tfunction formatRe(names) {\n\t return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n\t}\n\t\n\tfunction formatLookup(names) {\n\t var map = {}, i = -1, n = names.length;\n\t while (++i < n) map[names[i].toLowerCase()] = i;\n\t return map;\n\t}\n\t\n\tfunction parseWeekdayNumber(d, string, i) {\n\t var n = numberRe.exec(string.slice(i, i + 1));\n\t return n ? (d.w = +n[0], i + n[0].length) : -1;\n\t}\n\t\n\tfunction parseWeekNumberSunday(d, string, i) {\n\t var n = numberRe.exec(string.slice(i));\n\t return n ? (d.U = +n[0], i + n[0].length) : -1;\n\t}\n\t\n\tfunction parseWeekNumberMonday(d, string, i) {\n\t var n = numberRe.exec(string.slice(i));\n\t return n ? (d.W = +n[0], i + n[0].length) : -1;\n\t}\n\t\n\tfunction parseFullYear(d, string, i) {\n\t var n = numberRe.exec(string.slice(i, i + 4));\n\t return n ? (d.y = +n[0], i + n[0].length) : -1;\n\t}\n\t\n\tfunction parseYear(d, string, i) {\n\t var n = numberRe.exec(string.slice(i, i + 2));\n\t return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n\t}\n\t\n\tfunction parseZone(d, string, i) {\n\t var n = /^(Z)|([+-]\\d\\d)(?:\\:?(\\d\\d))?/.exec(string.slice(i, i + 6));\n\t return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n\t}\n\t\n\tfunction parseMonthNumber(d, string, i) {\n\t var n = numberRe.exec(string.slice(i, i + 2));\n\t return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n\t}\n\t\n\tfunction parseDayOfMonth(d, string, i) {\n\t var n = numberRe.exec(string.slice(i, i + 2));\n\t return n ? (d.d = +n[0], i + n[0].length) : -1;\n\t}\n\t\n\tfunction parseDayOfYear(d, string, i) {\n\t var n = numberRe.exec(string.slice(i, i + 3));\n\t return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n\t}\n\t\n\tfunction parseHour24(d, string, i) {\n\t var n = numberRe.exec(string.slice(i, i + 2));\n\t return n ? (d.H = +n[0], i + n[0].length) : -1;\n\t}\n\t\n\tfunction parseMinutes(d, string, i) {\n\t var n = numberRe.exec(string.slice(i, i + 2));\n\t return n ? (d.M = +n[0], i + n[0].length) : -1;\n\t}\n\t\n\tfunction parseSeconds(d, string, i) {\n\t var n = numberRe.exec(string.slice(i, i + 2));\n\t return n ? (d.S = +n[0], i + n[0].length) : -1;\n\t}\n\t\n\tfunction parseMilliseconds(d, string, i) {\n\t var n = numberRe.exec(string.slice(i, i + 3));\n\t return n ? (d.L = +n[0], i + n[0].length) : -1;\n\t}\n\t\n\tfunction parseLiteralPercent(d, string, i) {\n\t var n = percentRe.exec(string.slice(i, i + 1));\n\t return n ? i + n[0].length : -1;\n\t}\n\t\n\tfunction formatDayOfMonth(d, p) {\n\t return pad(d.getDate(), p, 2);\n\t}\n\t\n\tfunction formatHour24(d, p) {\n\t return pad(d.getHours(), p, 2);\n\t}\n\t\n\tfunction formatHour12(d, p) {\n\t return pad(d.getHours() % 12 || 12, p, 2);\n\t}\n\t\n\tfunction formatDayOfYear(d, p) {\n\t return pad(1 + d3Time.timeDay.count(d3Time.timeYear(d), d), p, 3);\n\t}\n\t\n\tfunction formatMilliseconds(d, p) {\n\t return pad(d.getMilliseconds(), p, 3);\n\t}\n\t\n\tfunction formatMonthNumber(d, p) {\n\t return pad(d.getMonth() + 1, p, 2);\n\t}\n\t\n\tfunction formatMinutes(d, p) {\n\t return pad(d.getMinutes(), p, 2);\n\t}\n\t\n\tfunction formatSeconds(d, p) {\n\t return pad(d.getSeconds(), p, 2);\n\t}\n\t\n\tfunction formatWeekNumberSunday(d, p) {\n\t return pad(d3Time.timeSunday.count(d3Time.timeYear(d), d), p, 2);\n\t}\n\t\n\tfunction formatWeekdayNumber(d) {\n\t return d.getDay();\n\t}\n\t\n\tfunction formatWeekNumberMonday(d, p) {\n\t return pad(d3Time.timeMonday.count(d3Time.timeYear(d), d), p, 2);\n\t}\n\t\n\tfunction formatYear(d, p) {\n\t return pad(d.getFullYear() % 100, p, 2);\n\t}\n\t\n\tfunction formatFullYear(d, p) {\n\t return pad(d.getFullYear() % 10000, p, 4);\n\t}\n\t\n\tfunction formatZone(d) {\n\t var z = d.getTimezoneOffset();\n\t return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n\t + pad(z / 60 | 0, \"0\", 2)\n\t + pad(z % 60, \"0\", 2);\n\t}\n\t\n\tfunction formatUTCDayOfMonth(d, p) {\n\t return pad(d.getUTCDate(), p, 2);\n\t}\n\t\n\tfunction formatUTCHour24(d, p) {\n\t return pad(d.getUTCHours(), p, 2);\n\t}\n\t\n\tfunction formatUTCHour12(d, p) {\n\t return pad(d.getUTCHours() % 12 || 12, p, 2);\n\t}\n\t\n\tfunction formatUTCDayOfYear(d, p) {\n\t return pad(1 + d3Time.utcDay.count(d3Time.utcYear(d), d), p, 3);\n\t}\n\t\n\tfunction formatUTCMilliseconds(d, p) {\n\t return pad(d.getUTCMilliseconds(), p, 3);\n\t}\n\t\n\tfunction formatUTCMonthNumber(d, p) {\n\t return pad(d.getUTCMonth() + 1, p, 2);\n\t}\n\t\n\tfunction formatUTCMinutes(d, p) {\n\t return pad(d.getUTCMinutes(), p, 2);\n\t}\n\t\n\tfunction formatUTCSeconds(d, p) {\n\t return pad(d.getUTCSeconds(), p, 2);\n\t}\n\t\n\tfunction formatUTCWeekNumberSunday(d, p) {\n\t return pad(d3Time.utcSunday.count(d3Time.utcYear(d), d), p, 2);\n\t}\n\t\n\tfunction formatUTCWeekdayNumber(d) {\n\t return d.getUTCDay();\n\t}\n\t\n\tfunction formatUTCWeekNumberMonday(d, p) {\n\t return pad(d3Time.utcMonday.count(d3Time.utcYear(d), d), p, 2);\n\t}\n\t\n\tfunction formatUTCYear(d, p) {\n\t return pad(d.getUTCFullYear() % 100, p, 2);\n\t}\n\t\n\tfunction formatUTCFullYear(d, p) {\n\t return pad(d.getUTCFullYear() % 10000, p, 4);\n\t}\n\t\n\tfunction formatUTCZone() {\n\t return \"+0000\";\n\t}\n\t\n\tfunction formatLiteralPercent() {\n\t return \"%\";\n\t}\n\t\n\tvar locale$1;\n\t\n\t\n\t\n\t\n\t\n\tdefaultLocale({\n\t dateTime: \"%x, %X\",\n\t date: \"%-m/%-d/%Y\",\n\t time: \"%-I:%M:%S %p\",\n\t periods: [\"AM\", \"PM\"],\n\t days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n\t shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n\t months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n\t shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n\t});\n\t\n\tfunction defaultLocale(definition) {\n\t locale$1 = formatLocale(definition);\n\t exports.timeFormat = locale$1.format;\n\t exports.timeParse = locale$1.parse;\n\t exports.utcFormat = locale$1.utcFormat;\n\t exports.utcParse = locale$1.utcParse;\n\t return locale$1;\n\t}\n\t\n\tvar isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\t\n\tfunction formatIsoNative(date) {\n\t return date.toISOString();\n\t}\n\t\n\tvar formatIso = Date.prototype.toISOString\n\t ? formatIsoNative\n\t : exports.utcFormat(isoSpecifier);\n\t\n\tfunction parseIsoNative(string) {\n\t var date = new Date(string);\n\t return isNaN(date) ? null : date;\n\t}\n\t\n\tvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n\t ? parseIsoNative\n\t : exports.utcParse(isoSpecifier);\n\t\n\texports.timeFormatDefaultLocale = defaultLocale;\n\texports.timeFormatLocale = formatLocale;\n\texports.isoFormat = formatIso;\n\texports.isoParse = parseIso;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-selection/ Version 1.1.0. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\tvar xhtml = \"http://www.w3.org/1999/xhtml\";\n\t\n\tvar namespaces = {\n\t svg: \"http://www.w3.org/2000/svg\",\n\t xhtml: xhtml,\n\t xlink: \"http://www.w3.org/1999/xlink\",\n\t xml: \"http://www.w3.org/XML/1998/namespace\",\n\t xmlns: \"http://www.w3.org/2000/xmlns/\"\n\t};\n\t\n\tvar namespace = function(name) {\n\t var prefix = name += \"\", i = prefix.indexOf(\":\");\n\t if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n\t return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n\t};\n\t\n\tfunction creatorInherit(name) {\n\t return function() {\n\t var document = this.ownerDocument,\n\t uri = this.namespaceURI;\n\t return uri === xhtml && document.documentElement.namespaceURI === xhtml\n\t ? document.createElement(name)\n\t : document.createElementNS(uri, name);\n\t };\n\t}\n\t\n\tfunction creatorFixed(fullname) {\n\t return function() {\n\t return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n\t };\n\t}\n\t\n\tvar creator = function(name) {\n\t var fullname = namespace(name);\n\t return (fullname.local\n\t ? creatorFixed\n\t : creatorInherit)(fullname);\n\t};\n\t\n\tvar nextId = 0;\n\t\n\tfunction local() {\n\t return new Local;\n\t}\n\t\n\tfunction Local() {\n\t this._ = \"@\" + (++nextId).toString(36);\n\t}\n\t\n\tLocal.prototype = local.prototype = {\n\t constructor: Local,\n\t get: function(node) {\n\t var id = this._;\n\t while (!(id in node)) if (!(node = node.parentNode)) return;\n\t return node[id];\n\t },\n\t set: function(node, value) {\n\t return node[this._] = value;\n\t },\n\t remove: function(node) {\n\t return this._ in node && delete node[this._];\n\t },\n\t toString: function() {\n\t return this._;\n\t }\n\t};\n\t\n\tvar matcher = function(selector) {\n\t return function() {\n\t return this.matches(selector);\n\t };\n\t};\n\t\n\tif (typeof document !== \"undefined\") {\n\t var element = document.documentElement;\n\t if (!element.matches) {\n\t var vendorMatches = element.webkitMatchesSelector\n\t || element.msMatchesSelector\n\t || element.mozMatchesSelector\n\t || element.oMatchesSelector;\n\t matcher = function(selector) {\n\t return function() {\n\t return vendorMatches.call(this, selector);\n\t };\n\t };\n\t }\n\t}\n\t\n\tvar matcher$1 = matcher;\n\t\n\tvar filterEvents = {};\n\t\n\texports.event = null;\n\t\n\tif (typeof document !== \"undefined\") {\n\t var element$1 = document.documentElement;\n\t if (!(\"onmouseenter\" in element$1)) {\n\t filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n\t }\n\t}\n\t\n\tfunction filterContextListener(listener, index, group) {\n\t listener = contextListener(listener, index, group);\n\t return function(event) {\n\t var related = event.relatedTarget;\n\t if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n\t listener.call(this, event);\n\t }\n\t };\n\t}\n\t\n\tfunction contextListener(listener, index, group) {\n\t return function(event1) {\n\t var event0 = exports.event; // Events can be reentrant (e.g., focus).\n\t exports.event = event1;\n\t try {\n\t listener.call(this, this.__data__, index, group);\n\t } finally {\n\t exports.event = event0;\n\t }\n\t };\n\t}\n\t\n\tfunction parseTypenames(typenames) {\n\t return typenames.trim().split(/^|\\s+/).map(function(t) {\n\t var name = \"\", i = t.indexOf(\".\");\n\t if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n\t return {type: t, name: name};\n\t });\n\t}\n\t\n\tfunction onRemove(typename) {\n\t return function() {\n\t var on = this.__on;\n\t if (!on) return;\n\t for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n\t if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n\t this.removeEventListener(o.type, o.listener, o.capture);\n\t } else {\n\t on[++i] = o;\n\t }\n\t }\n\t if (++i) on.length = i;\n\t else delete this.__on;\n\t };\n\t}\n\t\n\tfunction onAdd(typename, value, capture) {\n\t var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n\t return function(d, i, group) {\n\t var on = this.__on, o, listener = wrap(value, i, group);\n\t if (on) for (var j = 0, m = on.length; j < m; ++j) {\n\t if ((o = on[j]).type === typename.type && o.name === typename.name) {\n\t this.removeEventListener(o.type, o.listener, o.capture);\n\t this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n\t o.value = value;\n\t return;\n\t }\n\t }\n\t this.addEventListener(typename.type, listener, capture);\n\t o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n\t if (!on) this.__on = [o];\n\t else on.push(o);\n\t };\n\t}\n\t\n\tvar selection_on = function(typename, value, capture) {\n\t var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\t\n\t if (arguments.length < 2) {\n\t var on = this.node().__on;\n\t if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n\t for (i = 0, o = on[j]; i < n; ++i) {\n\t if ((t = typenames[i]).type === o.type && t.name === o.name) {\n\t return o.value;\n\t }\n\t }\n\t }\n\t return;\n\t }\n\t\n\t on = value ? onAdd : onRemove;\n\t if (capture == null) capture = false;\n\t for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n\t return this;\n\t};\n\t\n\tfunction customEvent(event1, listener, that, args) {\n\t var event0 = exports.event;\n\t event1.sourceEvent = exports.event;\n\t exports.event = event1;\n\t try {\n\t return listener.apply(that, args);\n\t } finally {\n\t exports.event = event0;\n\t }\n\t}\n\t\n\tvar sourceEvent = function() {\n\t var current = exports.event, source;\n\t while (source = current.sourceEvent) current = source;\n\t return current;\n\t};\n\t\n\tvar point = function(node, event) {\n\t var svg = node.ownerSVGElement || node;\n\t\n\t if (svg.createSVGPoint) {\n\t var point = svg.createSVGPoint();\n\t point.x = event.clientX, point.y = event.clientY;\n\t point = point.matrixTransform(node.getScreenCTM().inverse());\n\t return [point.x, point.y];\n\t }\n\t\n\t var rect = node.getBoundingClientRect();\n\t return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n\t};\n\t\n\tvar mouse = function(node) {\n\t var event = sourceEvent();\n\t if (event.changedTouches) event = event.changedTouches[0];\n\t return point(node, event);\n\t};\n\t\n\tfunction none() {}\n\t\n\tvar selector = function(selector) {\n\t return selector == null ? none : function() {\n\t return this.querySelector(selector);\n\t };\n\t};\n\t\n\tvar selection_select = function(select) {\n\t if (typeof select !== \"function\") select = selector(select);\n\t\n\t for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n\t if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n\t if (\"__data__\" in node) subnode.__data__ = node.__data__;\n\t subgroup[i] = subnode;\n\t }\n\t }\n\t }\n\t\n\t return new Selection(subgroups, this._parents);\n\t};\n\t\n\tfunction empty() {\n\t return [];\n\t}\n\t\n\tvar selectorAll = function(selector) {\n\t return selector == null ? empty : function() {\n\t return this.querySelectorAll(selector);\n\t };\n\t};\n\t\n\tvar selection_selectAll = function(select) {\n\t if (typeof select !== \"function\") select = selectorAll(select);\n\t\n\t for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n\t if (node = group[i]) {\n\t subgroups.push(select.call(node, node.__data__, i, group));\n\t parents.push(node);\n\t }\n\t }\n\t }\n\t\n\t return new Selection(subgroups, parents);\n\t};\n\t\n\tvar selection_filter = function(match) {\n\t if (typeof match !== \"function\") match = matcher$1(match);\n\t\n\t for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n\t if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n\t subgroup.push(node);\n\t }\n\t }\n\t }\n\t\n\t return new Selection(subgroups, this._parents);\n\t};\n\t\n\tvar sparse = function(update) {\n\t return new Array(update.length);\n\t};\n\t\n\tvar selection_enter = function() {\n\t return new Selection(this._enter || this._groups.map(sparse), this._parents);\n\t};\n\t\n\tfunction EnterNode(parent, datum) {\n\t this.ownerDocument = parent.ownerDocument;\n\t this.namespaceURI = parent.namespaceURI;\n\t this._next = null;\n\t this._parent = parent;\n\t this.__data__ = datum;\n\t}\n\t\n\tEnterNode.prototype = {\n\t constructor: EnterNode,\n\t appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n\t insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n\t querySelector: function(selector) { return this._parent.querySelector(selector); },\n\t querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n\t};\n\t\n\tvar constant = function(x) {\n\t return function() {\n\t return x;\n\t };\n\t};\n\t\n\tvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\t\n\tfunction bindIndex(parent, group, enter, update, exit, data) {\n\t var i = 0,\n\t node,\n\t groupLength = group.length,\n\t dataLength = data.length;\n\t\n\t // Put any non-null nodes that fit into update.\n\t // Put any null nodes into enter.\n\t // Put any remaining data into enter.\n\t for (; i < dataLength; ++i) {\n\t if (node = group[i]) {\n\t node.__data__ = data[i];\n\t update[i] = node;\n\t } else {\n\t enter[i] = new EnterNode(parent, data[i]);\n\t }\n\t }\n\t\n\t // Put any non-null nodes that don’t fit into exit.\n\t for (; i < groupLength; ++i) {\n\t if (node = group[i]) {\n\t exit[i] = node;\n\t }\n\t }\n\t}\n\t\n\tfunction bindKey(parent, group, enter, update, exit, data, key) {\n\t var i,\n\t node,\n\t nodeByKeyValue = {},\n\t groupLength = group.length,\n\t dataLength = data.length,\n\t keyValues = new Array(groupLength),\n\t keyValue;\n\t\n\t // Compute the key for each node.\n\t // If multiple nodes have the same key, the duplicates are added to exit.\n\t for (i = 0; i < groupLength; ++i) {\n\t if (node = group[i]) {\n\t keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n\t if (keyValue in nodeByKeyValue) {\n\t exit[i] = node;\n\t } else {\n\t nodeByKeyValue[keyValue] = node;\n\t }\n\t }\n\t }\n\t\n\t // Compute the key for each datum.\n\t // If there a node associated with this key, join and add it to update.\n\t // If there is not (or the key is a duplicate), add it to enter.\n\t for (i = 0; i < dataLength; ++i) {\n\t keyValue = keyPrefix + key.call(parent, data[i], i, data);\n\t if (node = nodeByKeyValue[keyValue]) {\n\t update[i] = node;\n\t node.__data__ = data[i];\n\t nodeByKeyValue[keyValue] = null;\n\t } else {\n\t enter[i] = new EnterNode(parent, data[i]);\n\t }\n\t }\n\t\n\t // Add any remaining nodes that were not bound to data to exit.\n\t for (i = 0; i < groupLength; ++i) {\n\t if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n\t exit[i] = node;\n\t }\n\t }\n\t}\n\t\n\tvar selection_data = function(value, key) {\n\t if (!value) {\n\t data = new Array(this.size()), j = -1;\n\t this.each(function(d) { data[++j] = d; });\n\t return data;\n\t }\n\t\n\t var bind = key ? bindKey : bindIndex,\n\t parents = this._parents,\n\t groups = this._groups;\n\t\n\t if (typeof value !== \"function\") value = constant(value);\n\t\n\t for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n\t var parent = parents[j],\n\t group = groups[j],\n\t groupLength = group.length,\n\t data = value.call(parent, parent && parent.__data__, j, parents),\n\t dataLength = data.length,\n\t enterGroup = enter[j] = new Array(dataLength),\n\t updateGroup = update[j] = new Array(dataLength),\n\t exitGroup = exit[j] = new Array(groupLength);\n\t\n\t bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\t\n\t // Now connect the enter nodes to their following update node, such that\n\t // appendChild can insert the materialized enter node before this node,\n\t // rather than at the end of the parent node.\n\t for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n\t if (previous = enterGroup[i0]) {\n\t if (i0 >= i1) i1 = i0 + 1;\n\t while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n\t previous._next = next || null;\n\t }\n\t }\n\t }\n\t\n\t update = new Selection(update, parents);\n\t update._enter = enter;\n\t update._exit = exit;\n\t return update;\n\t};\n\t\n\tvar selection_exit = function() {\n\t return new Selection(this._exit || this._groups.map(sparse), this._parents);\n\t};\n\t\n\tvar selection_merge = function(selection) {\n\t\n\t for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n\t for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n\t if (node = group0[i] || group1[i]) {\n\t merge[i] = node;\n\t }\n\t }\n\t }\n\t\n\t for (; j < m0; ++j) {\n\t merges[j] = groups0[j];\n\t }\n\t\n\t return new Selection(merges, this._parents);\n\t};\n\t\n\tvar selection_order = function() {\n\t\n\t for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n\t for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n\t if (node = group[i]) {\n\t if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n\t next = node;\n\t }\n\t }\n\t }\n\t\n\t return this;\n\t};\n\t\n\tvar selection_sort = function(compare) {\n\t if (!compare) compare = ascending;\n\t\n\t function compareNode(a, b) {\n\t return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n\t }\n\t\n\t for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n\t if (node = group[i]) {\n\t sortgroup[i] = node;\n\t }\n\t }\n\t sortgroup.sort(compareNode);\n\t }\n\t\n\t return new Selection(sortgroups, this._parents).order();\n\t};\n\t\n\tfunction ascending(a, b) {\n\t return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n\t}\n\t\n\tvar selection_call = function() {\n\t var callback = arguments[0];\n\t arguments[0] = this;\n\t callback.apply(null, arguments);\n\t return this;\n\t};\n\t\n\tvar selection_nodes = function() {\n\t var nodes = new Array(this.size()), i = -1;\n\t this.each(function() { nodes[++i] = this; });\n\t return nodes;\n\t};\n\t\n\tvar selection_node = function() {\n\t\n\t for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n\t for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n\t var node = group[i];\n\t if (node) return node;\n\t }\n\t }\n\t\n\t return null;\n\t};\n\t\n\tvar selection_size = function() {\n\t var size = 0;\n\t this.each(function() { ++size; });\n\t return size;\n\t};\n\t\n\tvar selection_empty = function() {\n\t return !this.node();\n\t};\n\t\n\tvar selection_each = function(callback) {\n\t\n\t for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n\t for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n\t if (node = group[i]) callback.call(node, node.__data__, i, group);\n\t }\n\t }\n\t\n\t return this;\n\t};\n\t\n\tfunction attrRemove(name) {\n\t return function() {\n\t this.removeAttribute(name);\n\t };\n\t}\n\t\n\tfunction attrRemoveNS(fullname) {\n\t return function() {\n\t this.removeAttributeNS(fullname.space, fullname.local);\n\t };\n\t}\n\t\n\tfunction attrConstant(name, value) {\n\t return function() {\n\t this.setAttribute(name, value);\n\t };\n\t}\n\t\n\tfunction attrConstantNS(fullname, value) {\n\t return function() {\n\t this.setAttributeNS(fullname.space, fullname.local, value);\n\t };\n\t}\n\t\n\tfunction attrFunction(name, value) {\n\t return function() {\n\t var v = value.apply(this, arguments);\n\t if (v == null) this.removeAttribute(name);\n\t else this.setAttribute(name, v);\n\t };\n\t}\n\t\n\tfunction attrFunctionNS(fullname, value) {\n\t return function() {\n\t var v = value.apply(this, arguments);\n\t if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n\t else this.setAttributeNS(fullname.space, fullname.local, v);\n\t };\n\t}\n\t\n\tvar selection_attr = function(name, value) {\n\t var fullname = namespace(name);\n\t\n\t if (arguments.length < 2) {\n\t var node = this.node();\n\t return fullname.local\n\t ? node.getAttributeNS(fullname.space, fullname.local)\n\t : node.getAttribute(fullname);\n\t }\n\t\n\t return this.each((value == null\n\t ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n\t ? (fullname.local ? attrFunctionNS : attrFunction)\n\t : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n\t};\n\t\n\tvar defaultView = function(node) {\n\t return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n\t || (node.document && node) // node is a Window\n\t || node.defaultView; // node is a Document\n\t};\n\t\n\tfunction styleRemove(name) {\n\t return function() {\n\t this.style.removeProperty(name);\n\t };\n\t}\n\t\n\tfunction styleConstant(name, value, priority) {\n\t return function() {\n\t this.style.setProperty(name, value, priority);\n\t };\n\t}\n\t\n\tfunction styleFunction(name, value, priority) {\n\t return function() {\n\t var v = value.apply(this, arguments);\n\t if (v == null) this.style.removeProperty(name);\n\t else this.style.setProperty(name, v, priority);\n\t };\n\t}\n\t\n\tvar selection_style = function(name, value, priority) {\n\t return arguments.length > 1\n\t ? this.each((value == null\n\t ? styleRemove : typeof value === \"function\"\n\t ? styleFunction\n\t : styleConstant)(name, value, priority == null ? \"\" : priority))\n\t : styleValue(this.node(), name);\n\t};\n\t\n\tfunction styleValue(node, name) {\n\t return node.style.getPropertyValue(name)\n\t || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n\t}\n\t\n\tfunction propertyRemove(name) {\n\t return function() {\n\t delete this[name];\n\t };\n\t}\n\t\n\tfunction propertyConstant(name, value) {\n\t return function() {\n\t this[name] = value;\n\t };\n\t}\n\t\n\tfunction propertyFunction(name, value) {\n\t return function() {\n\t var v = value.apply(this, arguments);\n\t if (v == null) delete this[name];\n\t else this[name] = v;\n\t };\n\t}\n\t\n\tvar selection_property = function(name, value) {\n\t return arguments.length > 1\n\t ? this.each((value == null\n\t ? propertyRemove : typeof value === \"function\"\n\t ? propertyFunction\n\t : propertyConstant)(name, value))\n\t : this.node()[name];\n\t};\n\t\n\tfunction classArray(string) {\n\t return string.trim().split(/^|\\s+/);\n\t}\n\t\n\tfunction classList(node) {\n\t return node.classList || new ClassList(node);\n\t}\n\t\n\tfunction ClassList(node) {\n\t this._node = node;\n\t this._names = classArray(node.getAttribute(\"class\") || \"\");\n\t}\n\t\n\tClassList.prototype = {\n\t add: function(name) {\n\t var i = this._names.indexOf(name);\n\t if (i < 0) {\n\t this._names.push(name);\n\t this._node.setAttribute(\"class\", this._names.join(\" \"));\n\t }\n\t },\n\t remove: function(name) {\n\t var i = this._names.indexOf(name);\n\t if (i >= 0) {\n\t this._names.splice(i, 1);\n\t this._node.setAttribute(\"class\", this._names.join(\" \"));\n\t }\n\t },\n\t contains: function(name) {\n\t return this._names.indexOf(name) >= 0;\n\t }\n\t};\n\t\n\tfunction classedAdd(node, names) {\n\t var list = classList(node), i = -1, n = names.length;\n\t while (++i < n) list.add(names[i]);\n\t}\n\t\n\tfunction classedRemove(node, names) {\n\t var list = classList(node), i = -1, n = names.length;\n\t while (++i < n) list.remove(names[i]);\n\t}\n\t\n\tfunction classedTrue(names) {\n\t return function() {\n\t classedAdd(this, names);\n\t };\n\t}\n\t\n\tfunction classedFalse(names) {\n\t return function() {\n\t classedRemove(this, names);\n\t };\n\t}\n\t\n\tfunction classedFunction(names, value) {\n\t return function() {\n\t (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n\t };\n\t}\n\t\n\tvar selection_classed = function(name, value) {\n\t var names = classArray(name + \"\");\n\t\n\t if (arguments.length < 2) {\n\t var list = classList(this.node()), i = -1, n = names.length;\n\t while (++i < n) if (!list.contains(names[i])) return false;\n\t return true;\n\t }\n\t\n\t return this.each((typeof value === \"function\"\n\t ? classedFunction : value\n\t ? classedTrue\n\t : classedFalse)(names, value));\n\t};\n\t\n\tfunction textRemove() {\n\t this.textContent = \"\";\n\t}\n\t\n\tfunction textConstant(value) {\n\t return function() {\n\t this.textContent = value;\n\t };\n\t}\n\t\n\tfunction textFunction(value) {\n\t return function() {\n\t var v = value.apply(this, arguments);\n\t this.textContent = v == null ? \"\" : v;\n\t };\n\t}\n\t\n\tvar selection_text = function(value) {\n\t return arguments.length\n\t ? this.each(value == null\n\t ? textRemove : (typeof value === \"function\"\n\t ? textFunction\n\t : textConstant)(value))\n\t : this.node().textContent;\n\t};\n\t\n\tfunction htmlRemove() {\n\t this.innerHTML = \"\";\n\t}\n\t\n\tfunction htmlConstant(value) {\n\t return function() {\n\t this.innerHTML = value;\n\t };\n\t}\n\t\n\tfunction htmlFunction(value) {\n\t return function() {\n\t var v = value.apply(this, arguments);\n\t this.innerHTML = v == null ? \"\" : v;\n\t };\n\t}\n\t\n\tvar selection_html = function(value) {\n\t return arguments.length\n\t ? this.each(value == null\n\t ? htmlRemove : (typeof value === \"function\"\n\t ? htmlFunction\n\t : htmlConstant)(value))\n\t : this.node().innerHTML;\n\t};\n\t\n\tfunction raise() {\n\t if (this.nextSibling) this.parentNode.appendChild(this);\n\t}\n\t\n\tvar selection_raise = function() {\n\t return this.each(raise);\n\t};\n\t\n\tfunction lower() {\n\t if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n\t}\n\t\n\tvar selection_lower = function() {\n\t return this.each(lower);\n\t};\n\t\n\tvar selection_append = function(name) {\n\t var create = typeof name === \"function\" ? name : creator(name);\n\t return this.select(function() {\n\t return this.appendChild(create.apply(this, arguments));\n\t });\n\t};\n\t\n\tfunction constantNull() {\n\t return null;\n\t}\n\t\n\tvar selection_insert = function(name, before) {\n\t var create = typeof name === \"function\" ? name : creator(name),\n\t select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n\t return this.select(function() {\n\t return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n\t });\n\t};\n\t\n\tfunction remove() {\n\t var parent = this.parentNode;\n\t if (parent) parent.removeChild(this);\n\t}\n\t\n\tvar selection_remove = function() {\n\t return this.each(remove);\n\t};\n\t\n\tvar selection_datum = function(value) {\n\t return arguments.length\n\t ? this.property(\"__data__\", value)\n\t : this.node().__data__;\n\t};\n\t\n\tfunction dispatchEvent(node, type, params) {\n\t var window = defaultView(node),\n\t event = window.CustomEvent;\n\t\n\t if (typeof event === \"function\") {\n\t event = new event(type, params);\n\t } else {\n\t event = window.document.createEvent(\"Event\");\n\t if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n\t else event.initEvent(type, false, false);\n\t }\n\t\n\t node.dispatchEvent(event);\n\t}\n\t\n\tfunction dispatchConstant(type, params) {\n\t return function() {\n\t return dispatchEvent(this, type, params);\n\t };\n\t}\n\t\n\tfunction dispatchFunction(type, params) {\n\t return function() {\n\t return dispatchEvent(this, type, params.apply(this, arguments));\n\t };\n\t}\n\t\n\tvar selection_dispatch = function(type, params) {\n\t return this.each((typeof params === \"function\"\n\t ? dispatchFunction\n\t : dispatchConstant)(type, params));\n\t};\n\t\n\tvar root = [null];\n\t\n\tfunction Selection(groups, parents) {\n\t this._groups = groups;\n\t this._parents = parents;\n\t}\n\t\n\tfunction selection() {\n\t return new Selection([[document.documentElement]], root);\n\t}\n\t\n\tSelection.prototype = selection.prototype = {\n\t constructor: Selection,\n\t select: selection_select,\n\t selectAll: selection_selectAll,\n\t filter: selection_filter,\n\t data: selection_data,\n\t enter: selection_enter,\n\t exit: selection_exit,\n\t merge: selection_merge,\n\t order: selection_order,\n\t sort: selection_sort,\n\t call: selection_call,\n\t nodes: selection_nodes,\n\t node: selection_node,\n\t size: selection_size,\n\t empty: selection_empty,\n\t each: selection_each,\n\t attr: selection_attr,\n\t style: selection_style,\n\t property: selection_property,\n\t classed: selection_classed,\n\t text: selection_text,\n\t html: selection_html,\n\t raise: selection_raise,\n\t lower: selection_lower,\n\t append: selection_append,\n\t insert: selection_insert,\n\t remove: selection_remove,\n\t datum: selection_datum,\n\t on: selection_on,\n\t dispatch: selection_dispatch\n\t};\n\t\n\tvar select = function(selector) {\n\t return typeof selector === \"string\"\n\t ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n\t : new Selection([[selector]], root);\n\t};\n\t\n\tvar selectAll = function(selector) {\n\t return typeof selector === \"string\"\n\t ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n\t : new Selection([selector == null ? [] : selector], root);\n\t};\n\t\n\tvar touch = function(node, touches, identifier) {\n\t if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\t\n\t for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n\t if ((touch = touches[i]).identifier === identifier) {\n\t return point(node, touch);\n\t }\n\t }\n\t\n\t return null;\n\t};\n\t\n\tvar touches = function(node, touches) {\n\t if (touches == null) touches = sourceEvent().touches;\n\t\n\t for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n\t points[i] = point(node, touches[i]);\n\t }\n\t\n\t return points;\n\t};\n\t\n\texports.creator = creator;\n\texports.local = local;\n\texports.matcher = matcher$1;\n\texports.mouse = mouse;\n\texports.namespace = namespace;\n\texports.namespaces = namespaces;\n\texports.select = select;\n\texports.selectAll = selectAll;\n\texports.selection = selection;\n\texports.selector = selector;\n\texports.selectorAll = selectorAll;\n\texports.style = styleValue;\n\texports.touch = touch;\n\texports.touches = touches;\n\texports.window = defaultView;\n\texports.customEvent = customEvent;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-transition/ Version 1.1.0. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports, __webpack_require__(12), __webpack_require__(5), __webpack_require__(14), __webpack_require__(9), __webpack_require__(4), __webpack_require__(2)) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports', 'd3-selection', 'd3-dispatch', 'd3-timer', 'd3-interpolate', 'd3-color', 'd3-ease'], factory) :\n\t\t(factory((global.d3 = global.d3 || {}),global.d3,global.d3,global.d3,global.d3,global.d3,global.d3));\n\t}(this, (function (exports,d3Selection,d3Dispatch,d3Timer,d3Interpolate,d3Color,d3Ease) { 'use strict';\n\t\n\tvar emptyOn = d3Dispatch.dispatch(\"start\", \"end\", \"interrupt\");\n\tvar emptyTween = [];\n\t\n\tvar CREATED = 0;\n\tvar SCHEDULED = 1;\n\tvar STARTING = 2;\n\tvar STARTED = 3;\n\tvar RUNNING = 4;\n\tvar ENDING = 5;\n\tvar ENDED = 6;\n\t\n\tvar schedule = function(node, name, id, index, group, timing) {\n\t var schedules = node.__transition;\n\t if (!schedules) node.__transition = {};\n\t else if (id in schedules) return;\n\t create(node, id, {\n\t name: name,\n\t index: index, // For context during callback.\n\t group: group, // For context during callback.\n\t on: emptyOn,\n\t tween: emptyTween,\n\t time: timing.time,\n\t delay: timing.delay,\n\t duration: timing.duration,\n\t ease: timing.ease,\n\t timer: null,\n\t state: CREATED\n\t });\n\t};\n\t\n\tfunction init(node, id) {\n\t var schedule = node.__transition;\n\t if (!schedule || !(schedule = schedule[id]) || schedule.state > CREATED) throw new Error(\"too late\");\n\t return schedule;\n\t}\n\t\n\tfunction set(node, id) {\n\t var schedule = node.__transition;\n\t if (!schedule || !(schedule = schedule[id]) || schedule.state > STARTING) throw new Error(\"too late\");\n\t return schedule;\n\t}\n\t\n\tfunction get(node, id) {\n\t var schedule = node.__transition;\n\t if (!schedule || !(schedule = schedule[id])) throw new Error(\"too late\");\n\t return schedule;\n\t}\n\t\n\tfunction create(node, id, self) {\n\t var schedules = node.__transition,\n\t tween;\n\t\n\t // Initialize the self timer when the transition is created.\n\t // Note the actual delay is not known until the first callback!\n\t schedules[id] = self;\n\t self.timer = d3Timer.timer(schedule, 0, self.time);\n\t\n\t function schedule(elapsed) {\n\t self.state = SCHEDULED;\n\t self.timer.restart(start, self.delay, self.time);\n\t\n\t // If the elapsed delay is less than our first sleep, start immediately.\n\t if (self.delay <= elapsed) start(elapsed - self.delay);\n\t }\n\t\n\t function start(elapsed) {\n\t var i, j, n, o;\n\t\n\t // If the state is not SCHEDULED, then we previously errored on start.\n\t if (self.state !== SCHEDULED) return stop();\n\t\n\t for (i in schedules) {\n\t o = schedules[i];\n\t if (o.name !== self.name) continue;\n\t\n\t // While this element already has a starting transition during this frame,\n\t // defer starting an interrupting transition until that transition has a\n\t // chance to tick (and possibly end); see d3/d3-transition#54!\n\t if (o.state === STARTED) return d3Timer.timeout(start);\n\t\n\t // Interrupt the active transition, if any.\n\t // Dispatch the interrupt event.\n\t if (o.state === RUNNING) {\n\t o.state = ENDED;\n\t o.timer.stop();\n\t o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n\t delete schedules[i];\n\t }\n\t\n\t // Cancel any pre-empted transitions. No interrupt event is dispatched\n\t // because the cancelled transitions never started. Note that this also\n\t // removes this transition from the pending list!\n\t else if (+i < id) {\n\t o.state = ENDED;\n\t o.timer.stop();\n\t delete schedules[i];\n\t }\n\t }\n\t\n\t // Defer the first tick to end of the current frame; see d3/d3#1576.\n\t // Note the transition may be canceled after start and before the first tick!\n\t // Note this must be scheduled before the start event; see d3/d3-transition#16!\n\t // Assuming this is successful, subsequent callbacks go straight to tick.\n\t d3Timer.timeout(function() {\n\t if (self.state === STARTED) {\n\t self.state = RUNNING;\n\t self.timer.restart(tick, self.delay, self.time);\n\t tick(elapsed);\n\t }\n\t });\n\t\n\t // Dispatch the start event.\n\t // Note this must be done before the tween are initialized.\n\t self.state = STARTING;\n\t self.on.call(\"start\", node, node.__data__, self.index, self.group);\n\t if (self.state !== STARTING) return; // interrupted\n\t self.state = STARTED;\n\t\n\t // Initialize the tween, deleting null tween.\n\t tween = new Array(n = self.tween.length);\n\t for (i = 0, j = -1; i < n; ++i) {\n\t if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n\t tween[++j] = o;\n\t }\n\t }\n\t tween.length = j + 1;\n\t }\n\t\n\t function tick(elapsed) {\n\t var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n\t i = -1,\n\t n = tween.length;\n\t\n\t while (++i < n) {\n\t tween[i].call(null, t);\n\t }\n\t\n\t // Dispatch the end event.\n\t if (self.state === ENDING) {\n\t self.on.call(\"end\", node, node.__data__, self.index, self.group);\n\t stop();\n\t }\n\t }\n\t\n\t function stop() {\n\t self.state = ENDED;\n\t self.timer.stop();\n\t delete schedules[id];\n\t for (var i in schedules) return; // eslint-disable-line no-unused-vars\n\t delete node.__transition;\n\t }\n\t}\n\t\n\tvar interrupt = function(node, name) {\n\t var schedules = node.__transition,\n\t schedule,\n\t active,\n\t empty = true,\n\t i;\n\t\n\t if (!schedules) return;\n\t\n\t name = name == null ? null : name + \"\";\n\t\n\t for (i in schedules) {\n\t if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n\t active = schedule.state > STARTING && schedule.state < ENDING;\n\t schedule.state = ENDED;\n\t schedule.timer.stop();\n\t if (active) schedule.on.call(\"interrupt\", node, node.__data__, schedule.index, schedule.group);\n\t delete schedules[i];\n\t }\n\t\n\t if (empty) delete node.__transition;\n\t};\n\t\n\tvar selection_interrupt = function(name) {\n\t return this.each(function() {\n\t interrupt(this, name);\n\t });\n\t};\n\t\n\tfunction tweenRemove(id, name) {\n\t var tween0, tween1;\n\t return function() {\n\t var schedule = set(this, id),\n\t tween = schedule.tween;\n\t\n\t // If this node shared tween with the previous node,\n\t // just assign the updated shared tween and we’re done!\n\t // Otherwise, copy-on-write.\n\t if (tween !== tween0) {\n\t tween1 = tween0 = tween;\n\t for (var i = 0, n = tween1.length; i < n; ++i) {\n\t if (tween1[i].name === name) {\n\t tween1 = tween1.slice();\n\t tween1.splice(i, 1);\n\t break;\n\t }\n\t }\n\t }\n\t\n\t schedule.tween = tween1;\n\t };\n\t}\n\t\n\tfunction tweenFunction(id, name, value) {\n\t var tween0, tween1;\n\t if (typeof value !== \"function\") throw new Error;\n\t return function() {\n\t var schedule = set(this, id),\n\t tween = schedule.tween;\n\t\n\t // If this node shared tween with the previous node,\n\t // just assign the updated shared tween and we’re done!\n\t // Otherwise, copy-on-write.\n\t if (tween !== tween0) {\n\t tween1 = (tween0 = tween).slice();\n\t for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n\t if (tween1[i].name === name) {\n\t tween1[i] = t;\n\t break;\n\t }\n\t }\n\t if (i === n) tween1.push(t);\n\t }\n\t\n\t schedule.tween = tween1;\n\t };\n\t}\n\t\n\tvar transition_tween = function(name, value) {\n\t var id = this._id;\n\t\n\t name += \"\";\n\t\n\t if (arguments.length < 2) {\n\t var tween = get(this.node(), id).tween;\n\t for (var i = 0, n = tween.length, t; i < n; ++i) {\n\t if ((t = tween[i]).name === name) {\n\t return t.value;\n\t }\n\t }\n\t return null;\n\t }\n\t\n\t return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n\t};\n\t\n\tfunction tweenValue(transition, name, value) {\n\t var id = transition._id;\n\t\n\t transition.each(function() {\n\t var schedule = set(this, id);\n\t (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n\t });\n\t\n\t return function(node) {\n\t return get(node, id).value[name];\n\t };\n\t}\n\t\n\tvar interpolate = function(a, b) {\n\t var c;\n\t return (typeof b === \"number\" ? d3Interpolate.interpolateNumber\n\t : b instanceof d3Color.color ? d3Interpolate.interpolateRgb\n\t : (c = d3Color.color(b)) ? (b = c, d3Interpolate.interpolateRgb)\n\t : d3Interpolate.interpolateString)(a, b);\n\t};\n\t\n\tfunction attrRemove(name) {\n\t return function() {\n\t this.removeAttribute(name);\n\t };\n\t}\n\t\n\tfunction attrRemoveNS(fullname) {\n\t return function() {\n\t this.removeAttributeNS(fullname.space, fullname.local);\n\t };\n\t}\n\t\n\tfunction attrConstant(name, interpolate$$1, value1) {\n\t var value00,\n\t interpolate0;\n\t return function() {\n\t var value0 = this.getAttribute(name);\n\t return value0 === value1 ? null\n\t : value0 === value00 ? interpolate0\n\t : interpolate0 = interpolate$$1(value00 = value0, value1);\n\t };\n\t}\n\t\n\tfunction attrConstantNS(fullname, interpolate$$1, value1) {\n\t var value00,\n\t interpolate0;\n\t return function() {\n\t var value0 = this.getAttributeNS(fullname.space, fullname.local);\n\t return value0 === value1 ? null\n\t : value0 === value00 ? interpolate0\n\t : interpolate0 = interpolate$$1(value00 = value0, value1);\n\t };\n\t}\n\t\n\tfunction attrFunction(name, interpolate$$1, value) {\n\t var value00,\n\t value10,\n\t interpolate0;\n\t return function() {\n\t var value0, value1 = value(this);\n\t if (value1 == null) return void this.removeAttribute(name);\n\t value0 = this.getAttribute(name);\n\t return value0 === value1 ? null\n\t : value0 === value00 && value1 === value10 ? interpolate0\n\t : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n\t };\n\t}\n\t\n\tfunction attrFunctionNS(fullname, interpolate$$1, value) {\n\t var value00,\n\t value10,\n\t interpolate0;\n\t return function() {\n\t var value0, value1 = value(this);\n\t if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n\t value0 = this.getAttributeNS(fullname.space, fullname.local);\n\t return value0 === value1 ? null\n\t : value0 === value00 && value1 === value10 ? interpolate0\n\t : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n\t };\n\t}\n\t\n\tvar transition_attr = function(name, value) {\n\t var fullname = d3Selection.namespace(name), i = fullname === \"transform\" ? d3Interpolate.interpolateTransformSvg : interpolate;\n\t return this.attrTween(name, typeof value === \"function\"\n\t ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n\t : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n\t : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value + \"\"));\n\t};\n\t\n\tfunction attrTweenNS(fullname, value) {\n\t function tween() {\n\t var node = this, i = value.apply(node, arguments);\n\t return i && function(t) {\n\t node.setAttributeNS(fullname.space, fullname.local, i(t));\n\t };\n\t }\n\t tween._value = value;\n\t return tween;\n\t}\n\t\n\tfunction attrTween(name, value) {\n\t function tween() {\n\t var node = this, i = value.apply(node, arguments);\n\t return i && function(t) {\n\t node.setAttribute(name, i(t));\n\t };\n\t }\n\t tween._value = value;\n\t return tween;\n\t}\n\t\n\tvar transition_attrTween = function(name, value) {\n\t var key = \"attr.\" + name;\n\t if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n\t if (value == null) return this.tween(key, null);\n\t if (typeof value !== \"function\") throw new Error;\n\t var fullname = d3Selection.namespace(name);\n\t return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n\t};\n\t\n\tfunction delayFunction(id, value) {\n\t return function() {\n\t init(this, id).delay = +value.apply(this, arguments);\n\t };\n\t}\n\t\n\tfunction delayConstant(id, value) {\n\t return value = +value, function() {\n\t init(this, id).delay = value;\n\t };\n\t}\n\t\n\tvar transition_delay = function(value) {\n\t var id = this._id;\n\t\n\t return arguments.length\n\t ? this.each((typeof value === \"function\"\n\t ? delayFunction\n\t : delayConstant)(id, value))\n\t : get(this.node(), id).delay;\n\t};\n\t\n\tfunction durationFunction(id, value) {\n\t return function() {\n\t set(this, id).duration = +value.apply(this, arguments);\n\t };\n\t}\n\t\n\tfunction durationConstant(id, value) {\n\t return value = +value, function() {\n\t set(this, id).duration = value;\n\t };\n\t}\n\t\n\tvar transition_duration = function(value) {\n\t var id = this._id;\n\t\n\t return arguments.length\n\t ? this.each((typeof value === \"function\"\n\t ? durationFunction\n\t : durationConstant)(id, value))\n\t : get(this.node(), id).duration;\n\t};\n\t\n\tfunction easeConstant(id, value) {\n\t if (typeof value !== \"function\") throw new Error;\n\t return function() {\n\t set(this, id).ease = value;\n\t };\n\t}\n\t\n\tvar transition_ease = function(value) {\n\t var id = this._id;\n\t\n\t return arguments.length\n\t ? this.each(easeConstant(id, value))\n\t : get(this.node(), id).ease;\n\t};\n\t\n\tvar transition_filter = function(match) {\n\t if (typeof match !== \"function\") match = d3Selection.matcher(match);\n\t\n\t for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n\t if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n\t subgroup.push(node);\n\t }\n\t }\n\t }\n\t\n\t return new Transition(subgroups, this._parents, this._name, this._id);\n\t};\n\t\n\tvar transition_merge = function(transition) {\n\t if (transition._id !== this._id) throw new Error;\n\t\n\t for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n\t for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n\t if (node = group0[i] || group1[i]) {\n\t merge[i] = node;\n\t }\n\t }\n\t }\n\t\n\t for (; j < m0; ++j) {\n\t merges[j] = groups0[j];\n\t }\n\t\n\t return new Transition(merges, this._parents, this._name, this._id);\n\t};\n\t\n\tfunction start(name) {\n\t return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n\t var i = t.indexOf(\".\");\n\t if (i >= 0) t = t.slice(0, i);\n\t return !t || t === \"start\";\n\t });\n\t}\n\t\n\tfunction onFunction(id, name, listener) {\n\t var on0, on1, sit = start(name) ? init : set;\n\t return function() {\n\t var schedule = sit(this, id),\n\t on = schedule.on;\n\t\n\t // If this node shared a dispatch with the previous node,\n\t // just assign the updated shared dispatch and we’re done!\n\t // Otherwise, copy-on-write.\n\t if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\t\n\t schedule.on = on1;\n\t };\n\t}\n\t\n\tvar transition_on = function(name, listener) {\n\t var id = this._id;\n\t\n\t return arguments.length < 2\n\t ? get(this.node(), id).on.on(name)\n\t : this.each(onFunction(id, name, listener));\n\t};\n\t\n\tfunction removeFunction(id) {\n\t return function() {\n\t var parent = this.parentNode;\n\t for (var i in this.__transition) if (+i !== id) return;\n\t if (parent) parent.removeChild(this);\n\t };\n\t}\n\t\n\tvar transition_remove = function() {\n\t return this.on(\"end.remove\", removeFunction(this._id));\n\t};\n\t\n\tvar transition_select = function(select) {\n\t var name = this._name,\n\t id = this._id;\n\t\n\t if (typeof select !== \"function\") select = d3Selection.selector(select);\n\t\n\t for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n\t if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n\t if (\"__data__\" in node) subnode.__data__ = node.__data__;\n\t subgroup[i] = subnode;\n\t schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n\t }\n\t }\n\t }\n\t\n\t return new Transition(subgroups, this._parents, name, id);\n\t};\n\t\n\tvar transition_selectAll = function(select) {\n\t var name = this._name,\n\t id = this._id;\n\t\n\t if (typeof select !== \"function\") select = d3Selection.selectorAll(select);\n\t\n\t for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n\t if (node = group[i]) {\n\t for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n\t if (child = children[k]) {\n\t schedule(child, name, id, k, children, inherit);\n\t }\n\t }\n\t subgroups.push(children);\n\t parents.push(node);\n\t }\n\t }\n\t }\n\t\n\t return new Transition(subgroups, parents, name, id);\n\t};\n\t\n\tvar Selection = d3Selection.selection.prototype.constructor;\n\t\n\tvar transition_selection = function() {\n\t return new Selection(this._groups, this._parents);\n\t};\n\t\n\tfunction styleRemove(name, interpolate$$1) {\n\t var value00,\n\t value10,\n\t interpolate0;\n\t return function() {\n\t var value0 = d3Selection.style(this, name),\n\t value1 = (this.style.removeProperty(name), d3Selection.style(this, name));\n\t return value0 === value1 ? null\n\t : value0 === value00 && value1 === value10 ? interpolate0\n\t : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n\t };\n\t}\n\t\n\tfunction styleRemoveEnd(name) {\n\t return function() {\n\t this.style.removeProperty(name);\n\t };\n\t}\n\t\n\tfunction styleConstant(name, interpolate$$1, value1) {\n\t var value00,\n\t interpolate0;\n\t return function() {\n\t var value0 = d3Selection.style(this, name);\n\t return value0 === value1 ? null\n\t : value0 === value00 ? interpolate0\n\t : interpolate0 = interpolate$$1(value00 = value0, value1);\n\t };\n\t}\n\t\n\tfunction styleFunction(name, interpolate$$1, value) {\n\t var value00,\n\t value10,\n\t interpolate0;\n\t return function() {\n\t var value0 = d3Selection.style(this, name),\n\t value1 = value(this);\n\t if (value1 == null) value1 = (this.style.removeProperty(name), d3Selection.style(this, name));\n\t return value0 === value1 ? null\n\t : value0 === value00 && value1 === value10 ? interpolate0\n\t : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n\t };\n\t}\n\t\n\tvar transition_style = function(name, value, priority) {\n\t var i = (name += \"\") === \"transform\" ? d3Interpolate.interpolateTransformCss : interpolate;\n\t return value == null ? this\n\t .styleTween(name, styleRemove(name, i))\n\t .on(\"end.style.\" + name, styleRemoveEnd(name))\n\t : this.styleTween(name, typeof value === \"function\"\n\t ? styleFunction(name, i, tweenValue(this, \"style.\" + name, value))\n\t : styleConstant(name, i, value + \"\"), priority);\n\t};\n\t\n\tfunction styleTween(name, value, priority) {\n\t function tween() {\n\t var node = this, i = value.apply(node, arguments);\n\t return i && function(t) {\n\t node.style.setProperty(name, i(t), priority);\n\t };\n\t }\n\t tween._value = value;\n\t return tween;\n\t}\n\t\n\tvar transition_styleTween = function(name, value, priority) {\n\t var key = \"style.\" + (name += \"\");\n\t if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n\t if (value == null) return this.tween(key, null);\n\t if (typeof value !== \"function\") throw new Error;\n\t return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n\t};\n\t\n\tfunction textConstant(value) {\n\t return function() {\n\t this.textContent = value;\n\t };\n\t}\n\t\n\tfunction textFunction(value) {\n\t return function() {\n\t var value1 = value(this);\n\t this.textContent = value1 == null ? \"\" : value1;\n\t };\n\t}\n\t\n\tvar transition_text = function(value) {\n\t return this.tween(\"text\", typeof value === \"function\"\n\t ? textFunction(tweenValue(this, \"text\", value))\n\t : textConstant(value == null ? \"\" : value + \"\"));\n\t};\n\t\n\tvar transition_transition = function() {\n\t var name = this._name,\n\t id0 = this._id,\n\t id1 = newId();\n\t\n\t for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n\t if (node = group[i]) {\n\t var inherit = get(node, id0);\n\t schedule(node, name, id1, i, group, {\n\t time: inherit.time + inherit.delay + inherit.duration,\n\t delay: 0,\n\t duration: inherit.duration,\n\t ease: inherit.ease\n\t });\n\t }\n\t }\n\t }\n\t\n\t return new Transition(groups, this._parents, name, id1);\n\t};\n\t\n\tvar id = 0;\n\t\n\tfunction Transition(groups, parents, name, id) {\n\t this._groups = groups;\n\t this._parents = parents;\n\t this._name = name;\n\t this._id = id;\n\t}\n\t\n\tfunction transition(name) {\n\t return d3Selection.selection().transition(name);\n\t}\n\t\n\tfunction newId() {\n\t return ++id;\n\t}\n\t\n\tvar selection_prototype = d3Selection.selection.prototype;\n\t\n\tTransition.prototype = transition.prototype = {\n\t constructor: Transition,\n\t select: transition_select,\n\t selectAll: transition_selectAll,\n\t filter: transition_filter,\n\t merge: transition_merge,\n\t selection: transition_selection,\n\t transition: transition_transition,\n\t call: selection_prototype.call,\n\t nodes: selection_prototype.nodes,\n\t node: selection_prototype.node,\n\t size: selection_prototype.size,\n\t empty: selection_prototype.empty,\n\t each: selection_prototype.each,\n\t on: transition_on,\n\t attr: transition_attr,\n\t attrTween: transition_attrTween,\n\t style: transition_style,\n\t styleTween: transition_styleTween,\n\t text: transition_text,\n\t remove: transition_remove,\n\t tween: transition_tween,\n\t delay: transition_delay,\n\t duration: transition_duration,\n\t ease: transition_ease\n\t};\n\t\n\tvar defaultTiming = {\n\t time: null, // Set on use.\n\t delay: 0,\n\t duration: 250,\n\t ease: d3Ease.easeCubicInOut\n\t};\n\t\n\tfunction inherit(node, id) {\n\t var timing;\n\t while (!(timing = node.__transition) || !(timing = timing[id])) {\n\t if (!(node = node.parentNode)) {\n\t return defaultTiming.time = d3Timer.now(), defaultTiming;\n\t }\n\t }\n\t return timing;\n\t}\n\t\n\tvar selection_transition = function(name) {\n\t var id,\n\t timing;\n\t\n\t if (name instanceof Transition) {\n\t id = name._id, name = name._name;\n\t } else {\n\t id = newId(), (timing = defaultTiming).time = d3Timer.now(), name = name == null ? null : name + \"\";\n\t }\n\t\n\t for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n\t if (node = group[i]) {\n\t schedule(node, name, id, i, group, timing || inherit(node, id));\n\t }\n\t }\n\t }\n\t\n\t return new Transition(groups, this._parents, name, id);\n\t};\n\t\n\td3Selection.selection.prototype.interrupt = selection_interrupt;\n\td3Selection.selection.prototype.transition = selection_transition;\n\t\n\tvar root = [null];\n\t\n\tvar active = function(node, name) {\n\t var schedules = node.__transition,\n\t schedule,\n\t i;\n\t\n\t if (schedules) {\n\t name = name == null ? null : name + \"\";\n\t for (i in schedules) {\n\t if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n\t return new Transition([[node]], root, name, +i);\n\t }\n\t }\n\t }\n\t\n\t return null;\n\t};\n\t\n\texports.transition = transition;\n\texports.active = active;\n\texports.interrupt = interrupt;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-timer/ Version 1.0.6. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\tvar frame = 0;\n\tvar timeout = 0;\n\tvar interval = 0;\n\tvar pokeDelay = 1000;\n\tvar taskHead;\n\tvar taskTail;\n\tvar clockLast = 0;\n\tvar clockNow = 0;\n\tvar clockSkew = 0;\n\tvar clock = typeof performance === \"object\" && performance.now ? performance : Date;\n\tvar setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\t\n\tfunction now() {\n\t return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n\t}\n\t\n\tfunction clearNow() {\n\t clockNow = 0;\n\t}\n\t\n\tfunction Timer() {\n\t this._call =\n\t this._time =\n\t this._next = null;\n\t}\n\t\n\tTimer.prototype = timer.prototype = {\n\t constructor: Timer,\n\t restart: function(callback, delay, time) {\n\t if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n\t time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n\t if (!this._next && taskTail !== this) {\n\t if (taskTail) taskTail._next = this;\n\t else taskHead = this;\n\t taskTail = this;\n\t }\n\t this._call = callback;\n\t this._time = time;\n\t sleep();\n\t },\n\t stop: function() {\n\t if (this._call) {\n\t this._call = null;\n\t this._time = Infinity;\n\t sleep();\n\t }\n\t }\n\t};\n\t\n\tfunction timer(callback, delay, time) {\n\t var t = new Timer;\n\t t.restart(callback, delay, time);\n\t return t;\n\t}\n\t\n\tfunction timerFlush() {\n\t now(); // Get the current time, if not already set.\n\t ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n\t var t = taskHead, e;\n\t while (t) {\n\t if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n\t t = t._next;\n\t }\n\t --frame;\n\t}\n\t\n\tfunction wake() {\n\t clockNow = (clockLast = clock.now()) + clockSkew;\n\t frame = timeout = 0;\n\t try {\n\t timerFlush();\n\t } finally {\n\t frame = 0;\n\t nap();\n\t clockNow = 0;\n\t }\n\t}\n\t\n\tfunction poke() {\n\t var now = clock.now(), delay = now - clockLast;\n\t if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n\t}\n\t\n\tfunction nap() {\n\t var t0, t1 = taskHead, t2, time = Infinity;\n\t while (t1) {\n\t if (t1._call) {\n\t if (time > t1._time) time = t1._time;\n\t t0 = t1, t1 = t1._next;\n\t } else {\n\t t2 = t1._next, t1._next = null;\n\t t1 = t0 ? t0._next = t2 : taskHead = t2;\n\t }\n\t }\n\t taskTail = t0;\n\t sleep(time);\n\t}\n\t\n\tfunction sleep(time) {\n\t if (frame) return; // Soonest alarm already set, or will be.\n\t if (timeout) timeout = clearTimeout(timeout);\n\t var delay = time - clockNow;\n\t if (delay > 24) {\n\t if (time < Infinity) timeout = setTimeout(wake, delay);\n\t if (interval) interval = clearInterval(interval);\n\t } else {\n\t if (!interval) clockLast = clockNow, interval = setInterval(poke, pokeDelay);\n\t frame = 1, setFrame(wake);\n\t }\n\t}\n\t\n\tvar timeout$1 = function(callback, delay, time) {\n\t var t = new Timer;\n\t delay = delay == null ? 0 : +delay;\n\t t.restart(function(elapsed) {\n\t t.stop();\n\t callback(elapsed + delay);\n\t }, delay, time);\n\t return t;\n\t};\n\t\n\tvar interval$1 = function(callback, delay, time) {\n\t var t = new Timer, total = delay;\n\t if (delay == null) return t.restart(callback, delay, time), t;\n\t delay = +delay, time = time == null ? now() : +time;\n\t t.restart(function tick(elapsed) {\n\t elapsed += total;\n\t t.restart(tick, total += delay, time);\n\t callback(elapsed);\n\t }, delay, time);\n\t return t;\n\t};\n\t\n\texports.now = now;\n\texports.timer = timer;\n\texports.timerFlush = timerFlush;\n\texports.timeout = timeout$1;\n\texports.interval = interval$1;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;'use strict';\n\t\n\t!(__WEBPACK_AMD_DEFINE_RESULT__ = function (require) {\n\t\n\t var d3Selection = __webpack_require__(12);\n\t\n\t var wrapConfig = {\n\t lineHeight: 1.2,\n\t smallTextOffset: 10,\n\t smallTextLineHeightRatio: 0.9,\n\t smallTextRatio: 0.6,\n\t valueClassName: 'value',\n\t labelClassName: 'label'\n\t };\n\t\n\t var defaultTextSize = 12;\n\t var defaultFontFace = 'Arial';\n\t\n\t /**\n\t * Wraps a selection of text within the available width\n\t * @param {Number} xOffset X axis offset for the text\n\t * @param {Number} fontSize Size of the base font\n\t * @param {Number} availableWidth Width of the container where the text needs to wrap on\n\t * @param {D3Selection} node SVG text element that contains the text to wrap\n\t *\n\t * REF: http://bl.ocks.org/mbostock/7555321\n\t * More discussions on https://github.com/mbostock/d3/issues/1642\n\t * @return {void}\n\t */\n\t var wrapText = function wrapText(xOffset, fontSize, availableWidth, node) {\n\t var text = d3Selection.select(node),\n\t words = text.text().split(/\\s+/).reverse(),\n\t word = void 0,\n\t line = [],\n\t lineNumber = 0,\n\t smallLineHeight = wrapConfig.lineHeight * wrapConfig.smallTextLineHeightRatio,\n\t y = text.attr('y'),\n\t dy = parseFloat(text.attr('dy')),\n\t smallFontSize = fontSize * wrapConfig.smallTextRatio,\n\t tspan = text.text(null).append('tspan').attr('x', xOffset).attr('y', y - 5).attr('dy', dy + 'em').classed(wrapConfig.valueClassName, true).style('font-size', fontSize + 'px');\n\t\n\t tspan.text(words.pop());\n\t tspan = text.append('tspan').classed(wrapConfig.labelClassName, true).attr('x', xOffset).attr('y', y + wrapConfig.smallTextOffset).attr('dy', ++lineNumber * smallLineHeight + dy + 'em').style('font-size', smallFontSize + 'px');\n\t\n\t while (word = words.pop()) {\n\t line.push(word);\n\t tspan.text(line.join(' '));\n\t if (tspan.node().getComputedTextLength() > availableWidth - 50) {\n\t line.pop();\n\t tspan.text(line.join(' '));\n\t line = [word];\n\t tspan = text.append('tspan').classed(wrapConfig.labelClassName, true).attr('x', xOffset).attr('y', y + wrapConfig.smallTextOffset).attr('dy', ++lineNumber * smallLineHeight + dy + 'em').text(word).style('font-size', smallFontSize + 'px');\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Wraps a selection of text within the available width, also adds class .adjust-upwards\n\t * to configure a y offset for entries with multiple rows\n\t * @param {D3Sekectuib} text d3 text element\n\t * @param {Number} width Width of the container where the text needs to wrap on\n\t * @param {Number} xpos number passed to determine the x offset\n\t * @param {Number} limit number of lines before an ellipses is added and the rest of the text is cut off\n\t *\n\t * REF: http://bl.ocks.org/mbostock/7555321\n\t * More discussions on https://github.com/mbostock/d3/issues/1642\n\t * @return {void}\n\t */\n\t var wrapTextWithEllipses = function wrapTextWithEllipses(text, width) {\n\t var xpos = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\t var limit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 2;\n\t\n\t\n\t text.each(function () {\n\t var words, word, line, lineNumber, lineHeight, y, dy, tspan;\n\t\n\t text = d3Selection.select(this);\n\t\n\t words = text.text().split(/\\s+/).reverse();\n\t line = [];\n\t lineNumber = 0;\n\t lineHeight = 1.2;\n\t y = text.attr('y');\n\t dy = parseFloat(text.attr('dy'));\n\t tspan = text.text(null).append('tspan').attr('x', xpos).attr('y', y).attr('dy', dy + 'em');\n\t\n\t while (word = words.pop()) {\n\t line.push(word);\n\t tspan.text(line.join(' '));\n\t\n\t if (tspan.node().getComputedTextLength() > width) {\n\t line.pop();\n\t tspan.text(line.join(' '));\n\t\n\t if (lineNumber < limit - 1) {\n\t line = [word];\n\t tspan = text.append('tspan').attr('x', xpos).attr('y', y).attr('dy', ++lineNumber * lineHeight + dy + 'em').text(word);\n\t // if we need two lines for the text, move them both up to center them\n\t text.classed('adjust-upwards', true);\n\t } else {\n\t line.push('...');\n\t tspan.text(line.join(' '));\n\t break;\n\t }\n\t }\n\t }\n\t });\n\t };\n\t\n\t /**\n\t * Figures out an approximate of the text width by using a canvas element\n\t * This avoids having to actually render the text to measure it from the DOM itself\n\t * @param {String} text Text to measure\n\t * @param {Number} fontSize Fontsize (or default)\n\t * @param {String} fontFace Font familty (or default)\n\t * @return {String} Approximate font size of the text\n\t */\n\t var getTextWidth = function getTextWidth(text) {\n\t var fontSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultTextSize;\n\t var fontFace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultFontFace;\n\t\n\t var a = document.createElement('canvas'),\n\t b = a.getContext('2d');\n\t\n\t b.font = fontSize + 'px ' + fontFace;\n\t\n\t return b.measureText(text).width;\n\t };\n\t\n\t return {\n\t getTextWidth: getTextWidth,\n\t wrapText: wrapText,\n\t wrapTextWithEllipses: wrapTextWithEllipses\n\t };\n\t}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 16 */,\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;'use strict';\n\t\n\t!(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\n\t // Color Gradients\n\t var britechartGradients = {\n\t greenBlue: ['#39C7EA', '#4CDCBA'],\n\t orangePink: ['#FBC670', '#F766B8'],\n\t bluePurple: ['#3DC3C9', '#824a9e']\n\t };\n\t\n\t // Color Schemas\n\t // Standard Color Schema for Britecharts\n\t var britecharts = ['#6aedc7', //green\n\t '#39c2c9', //blue\n\t '#ffce00', //yellow\n\t '#ffa71a', //orange\n\t '#f866b9', //pink\n\t '#998ce3' //purple\n\t ];\n\t\n\t // Grey Schema for Britecharts\n\t var grey = ['#F8F8FA', '#EFF2F5', '#D2D6DF', '#C3C6CF', '#ADB0B6', '#666A73', '#45494E', '#363A43', '#282C35'];\n\t\n\t // Orange Palette\n\t var orange = ['#fcc870', '#ffa71a', '#fb8825', '#f6682f', '#db5a2c', '#bf4c28', '#a43b1c', '#892a10', '#f9e9c5'];\n\t // Blue Palette\n\t var blueGreen = ['#ccf7f6', '#70e4e0', '#00d8d2', '#00acaf', '#007f8c', '#005e66', '#003c3f', '#002d2f', '#0d2223'];\n\t // LightBlue Palette\n\t var teal = ['#ccfffe', '#94f7f4', '#00fff8', '#1de1e1', '#39c2c9', '#2e9a9d', '#227270', '#1a5957', '#133f3e'];\n\t // Green Palette\n\t var green = ['#edfff7', '#d7ffef', '#c0ffe7', '#95f5d7', '#6aedc7', '#59c3a3', '#479980', '#34816a', '#206953'];\n\t // Yellow Palette\n\t var yellow = ['#f9f2b3', '#fbe986', '#fce05a', '#fed72d', '#ffce00', '#fcc11c', '#f9b438', '#eda629', '#e09819'];\n\t // Pink Palette\n\t var pink = ['#fdd1ea', '#fb9cd2', '#f866b9', '#fc40b6', '#ff1ab3', '#e3239d', '#c62c86', '#a62073', '#85135f'];\n\t // Purple Palette\n\t var purple = ['#ddd6fc', '#bbb1f0', '#998ce3', '#8e6bc1', '#824a9e', '#77337f', '#6b1c60', '#591650', '#470f3f'];\n\t // Red Palette\n\t var red = ['#ffd8d4', '#ffb5b0', '#ff938c', '#ff766c', '#ff584c', '#f04b42', '#e03d38', '#be2e29', '#9c1e19'];\n\t\n\t var aloeGreen = ['#7bdcc0'];\n\t\n\t return {\n\t colorSchemas: {\n\t britecharts: britecharts,\n\t grey: grey,\n\t orange: orange,\n\t blueGreen: blueGreen,\n\t teal: teal,\n\t green: green,\n\t yellow: yellow,\n\t pink: pink,\n\t purple: purple,\n\t red: red\n\t },\n\t colorSchemasHuman: {\n\t 'britecharts': 'Britecharts Default',\n\t 'grey': 'Britecharts Grey',\n\t 'orange': 'Orange',\n\t 'blueGreen': 'Blue',\n\t 'teal': 'Light Blue',\n\t 'green': 'Green',\n\t 'yellow': 'Yellow',\n\t 'pink': 'Pink',\n\t 'purple': 'Purple',\n\t 'red': 'Red'\n\t },\n\t singleColors: {\n\t aloeGreen: aloeGreen\n\t },\n\t colorGradients: britechartGradients,\n\t colorGradientsHuman: {\n\t greenBlue: 'Green To Blue',\n\t orangePink: 'Orange to Pink',\n\t bluePurple: 'Blue to Purple'\n\t }\n\t };\n\t}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// legend.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\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0a1eb6cfa29181d5999f","define(function(require){\n 'use strict';\n\n const d3Format = require('d3-format');\n const d3Scale = require('d3-scale');\n const d3Selection = require('d3-selection');\n const d3Transition = require('d3-transition');\n\n const textHelper = require('./helpers/text');\n const colorHelper = require('./helpers/colors');\n\n /**\n * @typedef LegendChartData\n * @type {Object[]}\n * @property {Number} id Id of the group (required)\n * @property {Number} quantity Quantity of the group (required)\n * @property {String} name Name of the group (required)\n *\n * @example\n * [\n * {\n * id: 1,\n * quantity: 2,\n * name: 'glittering'\n * },\n * {\n * id: 2,\n * quantity: 3,\n * name: 'luminous'\n * }\n */\n\n\n /**\n * @fileOverview Legend Component reusable API class that renders a\n * simple and configurable legend element.\n *\n * @example\n * var donutChart = donut(),\n * legendBox = legend();\n *\n * donutChart\n * .externalRadius(500)\n * .internalRadius(200)\n * .on('customMouseOver', function(data) {\n * legendBox.highlight(data.data.id);\n * })\n * .on('customMouseOut', function() {\n * legendBox.clearHighlight();\n * });\n *\n * d3Selection.select('.css-selector')\n * .datum(dataset)\n * .call(donutChart);\n *\n * d3Selection.select('.other-css-selector')\n * .datum(dataset)\n * .call(legendBox);\n *\n * @module Legend\n * @tutorial legend\n * @exports charts/legend\n * @requires d3\n */\n return function module() {\n\n let margin = {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n width = 320,\n height = 180,\n\n textSize = 12,\n textLetterSpacing = 0.5,\n\n markerSize = 16,\n markerYOffset = - (textSize - 2) / 2,\n marginRatio = 1.5,\n\n valueReservedSpace = 40,\n numberLetterSpacing = 0.8,\n numberFormat = 's',\n\n isFadedClassName = 'is-faded',\n isHorizontal = false,\n\n // colors\n colorScale,\n colorSchema = colorHelper.colorSchemas.britecharts,\n\n getId = ({id}) => id,\n getName = ({name}) => name,\n getFormattedQuantity = ({quantity}) => d3Format.format(numberFormat)(quantity),\n getCircleFill = ({name}) => colorScale(name),\n\n entries,\n chartWidth, chartHeight,\n data,\n svg;\n\n\n /**\n * This function creates the graph using the selection as container\n * @param {D3Selection} _selection A d3 selection that represents\n * the container(s) where the chart(s) will be rendered\n * @param {object} _data The data to attach and generate the chart\n */\n function exports(_selection) {\n _selection.each(function(_data){\n chartWidth = width - margin.left - margin.right;\n chartHeight = height - margin.top - margin.bottom;\n data = _data;\n\n buildColorScale();\n buildSVG(this);\n if (isHorizontal) {\n drawHorizontalLegend();\n } else {\n drawVerticalLegend();\n }\n });\n }\n\n /**\n * Depending on the size of the horizontal legend, we are going to either\n * center the legend or add a new line with the last entry of the legend\n * @return {void}\n */\n function adjustLines() {\n let lineWidth = svg.select('.legend-line').node().getBoundingClientRect().width;\n let lineWidthSpace = chartWidth - lineWidth;\n\n if (lineWidthSpace > 0) {\n centerLegendOnSVG();\n } else {\n splitInLines();\n }\n }\n\n /**\n * Builds containers for the legend\n * Also applies the Margin convention\n * @private\n */\n function buildContainerGroups() {\n let container = svg\n .append('g')\n .classed('legend-container-group', true)\n .attr('transform', `translate(${margin.left},${margin.top})`);\n\n container\n .append('g')\n .classed('legend-group', true);\n }\n\n /**\n * Builds color scale for chart, if any colorSchema was defined\n * @private\n */\n function buildColorScale() {\n if (colorSchema) {\n colorScale = d3Scale.scaleOrdinal().range(colorSchema);\n }\n }\n\n /**\n * Builds the SVG element that will contain the chart\n * @param {HTMLElement} container DOM element that will work as the container of the graph\n * @private\n */\n function buildSVG(container) {\n if (!svg) {\n svg = d3Selection.select(container)\n .append('svg')\n .classed('britechart britechart-legend', true);\n\n buildContainerGroups();\n }\n\n svg\n .attr('width', width)\n .attr('height', height);\n }\n\n /**\n * Centers the legend on the chart given that is a single line of labels\n * @return {void}\n */\n function centerLegendOnSVG() {\n let legendGroupSize = svg.select('g.legend-container-group').node().getBoundingClientRect().width;\n let emptySpace = width - legendGroupSize;\n\n if (emptySpace > 0) {\n svg.select('g.legend-container-group')\n .attr('transform', `translate(${emptySpace/2},0)`)\n }\n }\n\n /**\n * Removes the faded class from all the entry lines\n */\n function cleanFadedLines() {\n svg.select('.legend-group')\n .selectAll('g.legend-entry')\n .classed(isFadedClassName, false);\n }\n\n /**\n * Draws the entries of the legend within a single line\n * @private\n */\n function drawHorizontalLegend() {\n let xOffset = markerSize;\n\n // We want a single line\n svg.select('.legend-group')\n .append('g')\n .classed('legend-line', true);\n\n // And one entry per data item\n entries = svg.select('.legend-line')\n .selectAll('g.legend-entry')\n .data(data);\n\n // Enter\n entries.enter()\n .append('g')\n .classed('legend-entry', true)\n .attr('data-item', getId)\n .attr('transform', function({name}) {\n let horizontalOffset = xOffset,\n lineHeight = chartHeight / 2,\n verticalOffset = lineHeight,\n labelWidth = textHelper.getTextWidth(name, textSize);\n\n xOffset += markerSize + 2 * getLineElementMargin() + labelWidth;\n\n return `translate(${horizontalOffset},${verticalOffset})`;\n })\n .merge(entries)\n .append('circle')\n .classed('legend-circle', true)\n .attr('cx', markerSize/2)\n .attr('cy', markerYOffset)\n .attr('r', markerSize / 2)\n .style('fill', getCircleFill)\n .style('stroke-width', 1);\n\n svg.select('.legend-group')\n .selectAll('g.legend-entry')\n .append('text')\n .classed('legend-entry-name', true)\n .text(getName)\n .attr('x', getLineElementMargin())\n .style('font-size', `${textSize}px`)\n .style('letter-spacing', `${textLetterSpacing}px`);\n\n // Exit\n svg.select('.legend-group')\n .selectAll('g.legend-entry')\n .exit()\n .transition()\n .style('opacity', 0)\n .remove();\n\n adjustLines();\n }\n\n /**\n * Draws the entries of the legend\n * @private\n */\n function drawVerticalLegend() {\n entries = svg.select('.legend-group')\n .selectAll('g.legend-line')\n .data(data);\n\n // Enter\n entries.enter()\n .append('g')\n .classed('legend-line', true)\n .append('g')\n .classed('legend-entry', true)\n .attr('data-item', getId)\n .attr('transform', function(d, i) {\n let horizontalOffset = markerSize + getLineElementMargin(),\n lineHeight = chartHeight/ (data.length + 1),\n verticalOffset = (i + 1) * lineHeight;\n\n return `translate(${horizontalOffset},${verticalOffset})`;\n })\n .merge(entries)\n .append('circle')\n .classed('legend-circle', true)\n .attr('cx', markerSize/2)\n .attr('cy', markerYOffset)\n .attr('r', markerSize/2 )\n .style('fill', getCircleFill)\n .style('stroke-width', 1);\n\n svg.select('.legend-group')\n .selectAll('g.legend-line')\n .selectAll('g.legend-entry')\n .append('text')\n .classed('legend-entry-name', true)\n .text(getName)\n .attr('x', getLineElementMargin())\n .style('font-size', `${textSize}px`)\n .style('letter-spacing', `${textLetterSpacing}px`);\n\n svg.select('.legend-group')\n .selectAll('g.legend-line')\n .selectAll('g.legend-entry')\n .append('text')\n .classed('legend-entry-value', true)\n .text(getFormattedQuantity)\n .attr('x', chartWidth - valueReservedSpace)\n .style('font-size', `${textSize}px`)\n .style('letter-spacing', `${numberLetterSpacing}px`)\n .style('text-anchor', 'end')\n .style('startOffset', '100%');\n\n // Exit\n svg.select('.legend-group')\n .selectAll('g.legend-line')\n .exit()\n .transition()\n .style('opacity', 0)\n .remove();\n }\n\n /**\n * Applies the faded class to all lines but the one that has the given id\n * @param {number} exceptionItemId Id of the line that needs to stay the same\n */\n function fadeLinesBut(exceptionItemId) {\n let classToFade = 'g.legend-entry';\n\n svg.select('.legend-group')\n .selectAll(classToFade)\n .classed(isFadedClassName, true);\n\n svg.select(`[data-item=\"${exceptionItemId}\"]`)\n .classed(isFadedClassName, false);\n }\n\n /**\n * Calculates the margin between elements of the legend\n * @return {Number} Margin to apply between elements\n */\n function getLineElementMargin() {\n return marginRatio * markerSize;\n }\n\n /**\n * Simple method to move the last item of an overflowing legend into the next line\n * @return {void}\n * @private\n */\n function splitInLines() {\n let legendEntries = svg.selectAll('.legend-entry');\n let numberOfEntries = legendEntries.size();\n let lineHeight = (chartHeight / 2) * 1.7;\n let newLine = svg.select('.legend-group')\n .append('g')\n .classed('legend-line', true)\n .attr('transform', `translate(0, ${lineHeight})`);\n let lastEntry = legendEntries.filter(`:nth-child(${numberOfEntries})`);\n\n lastEntry.attr('transform', `translate(${markerSize},0)`);\n newLine.append(() => lastEntry.node());\n }\n\n /**\n * Clears the highlighted line entry\n */\n exports.clearHighlight = function() {\n cleanFadedLines();\n };\n\n /**\n * Gets or Sets the colorSchema of the chart\n * @param {array} _x Color scheme array to get/set\n * @return {number | module} Current colorSchema or Donut Chart module to chain calls\n * @public\n */\n exports.colorSchema = function(_x) {\n if (!arguments.length) {\n return colorSchema;\n }\n colorSchema = _x;\n\n return this;\n };\n\n /**\n * Gets or Sets the height of the legend chart\n * @param {number} _x Desired width for the chart\n * @return {height | module} Current height or Legend module to chain calls\n * @public\n */\n exports.height = function(_x) {\n if (!arguments.length) {\n return height;\n }\n height = _x;\n\n return this;\n };\n\n /**\n * Highlights a line entry by fading the rest of lines\n * @param {number} entryId ID of the entry line\n */\n exports.highlight = function(entryId) {\n cleanFadedLines();\n fadeLinesBut(entryId);\n };\n\n /**\n * Gets or Sets the horizontal mode on the legend\n * @param {boolean} _x Desired horizontal mode for the graph\n * @return {ishorizontal | module} If it is horizontal or Legend module to chain calls\n * @public\n */\n exports.isHorizontal = function(_x) {\n if (!arguments.length) {\n return isHorizontal;\n }\n isHorizontal = _x;\n\n return this;\n };\n\n /**\n * Gets or Sets the margin of the legend chart\n * @param {object} _x Margin object to get/set\n * @return {margin | module} Current margin or Legend module to chain calls\n * @public\n */\n exports.margin = function(_x) {\n if (!arguments.length) {\n return margin;\n }\n margin = _x;\n\n return this;\n };\n\n /**\n * Gets or Sets the markerSize of the legend chart.\n * This markerSize will determine the horizontal and vertical size of the colored marks\n * added as color identifiers for the chart's categories.\n *\n * @param {object} _x Margin object to get/set\n * @return {markerSize | module} Current markerSize or Legend module to chain calls\n * @public\n */\n exports.markerSize = function(_x) {\n if (!arguments.length) {\n return markerSize;\n }\n markerSize = _x;\n\n return this;\n };\n\n /**\n * Gets or Sets the width of the legend chart\n * @param {number} _x Desired width for the graph\n * @return {width | module} Current width or Legend module to chain calls\n * @public\n */\n exports.width = function(_x) {\n if (!arguments.length) {\n return width;\n }\n width = _x;\n\n return this;\n };\n\n /**\n * Gets or Sets the number format of the legend chart\n * @param {string} _x Desired number format for the legend chart\n * @return {numberFormat | module} Current number format or Legend module to chain calls\n * @public\n */\n exports.numberFormat = function(_x) {\n if (!arguments.length) {\n return numberFormat;\n }\n numberFormat = _x;\n\n return this;\n };\n\n return exports;\n };\n\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/charts/legend.js","// https://d3js.org/d3-array/ Version 1.2.0. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nvar ascending = function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n};\n\nvar bisector = function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n};\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n\nvar ascendingBisect = bisector(ascending);\nvar bisectRight = ascendingBisect.right;\nvar bisectLeft = ascendingBisect.left;\n\nvar pairs = function(array, f) {\n if (f == null) f = pair;\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = f(p, p = array[++i]);\n return pairs;\n};\n\nfunction pair(a, b) {\n return [a, b];\n}\n\nvar cross = function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n};\n\nvar descending = function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n};\n\nvar number = function(x) {\n return x === null ? NaN : +x;\n};\n\nvar variance = function(values, valueof) {\n var n = values.length,\n m = 0,\n i = -1,\n mean = 0,\n value,\n delta,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n if (m > 1) return sum / (m - 1);\n};\n\nvar deviation = function(array, f) {\n var v = variance(array, f);\n return v ? Math.sqrt(v) : v;\n};\n\nvar extent = function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n};\n\nvar array = Array.prototype;\n\nvar slice = array.slice;\nvar map = array.map;\n\nvar constant = function(x) {\n return function() {\n return x;\n };\n};\n\nvar identity = function(x) {\n return x;\n};\n\nvar range = function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n};\n\nvar e10 = Math.sqrt(50);\nvar e5 = Math.sqrt(10);\nvar e2 = Math.sqrt(2);\n\nvar ticks = function(start, stop, count) {\n var reverse = stop < start,\n i = -1,\n n,\n ticks,\n step;\n\n if (reverse) n = start, start = stop, stop = n;\n\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n};\n\nfunction tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nfunction tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n\nvar sturges = function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n};\n\nvar histogram = function() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = range(Math.ceil(x0 / tz) * tz, Math.floor(x1 / tz) * tz, tz); // exclusive\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisectRight(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n};\n\nvar quantile = function(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n};\n\nvar freedmanDiaconis = function(values, min, max) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n};\n\nvar scott = function(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n};\n\nvar max = function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n};\n\nvar mean = function(values, valueof) {\n var n = values.length,\n m = n,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) sum += value;\n else --m;\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;\n else --m;\n }\n }\n\n if (m) return sum / m;\n};\n\nvar median = function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n numbers = [];\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n numbers.push(value);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n numbers.push(value);\n }\n }\n }\n\n return quantile(numbers.sort(ascending), 0.5);\n};\n\nvar merge = function(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n};\n\nvar min = function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n};\n\nvar permute = function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n};\n\nvar scan = function(values, compare) {\n if (!(n = values.length)) return;\n var n,\n i = 0,\n j = 0,\n xi,\n xj = values[j];\n\n if (compare == null) compare = ascending;\n\n while (++i < n) {\n if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n xj = xi, j = i;\n }\n }\n\n if (compare(xj, xj) === 0) return j;\n};\n\nvar shuffle = function(array, i0, i1) {\n var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n};\n\nvar sum = function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n};\n\nvar transpose = function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n};\n\nfunction length(d) {\n return d.length;\n}\n\nvar zip = function() {\n return transpose(arguments);\n};\n\nexports.bisect = bisectRight;\nexports.bisectRight = bisectRight;\nexports.bisectLeft = bisectLeft;\nexports.ascending = ascending;\nexports.bisector = bisector;\nexports.cross = cross;\nexports.descending = descending;\nexports.deviation = deviation;\nexports.extent = extent;\nexports.histogram = histogram;\nexports.thresholdFreedmanDiaconis = freedmanDiaconis;\nexports.thresholdScott = scott;\nexports.thresholdSturges = sturges;\nexports.max = max;\nexports.mean = mean;\nexports.median = median;\nexports.merge = merge;\nexports.min = min;\nexports.pairs = pairs;\nexports.permute = permute;\nexports.quantile = quantile;\nexports.range = range;\nexports.scan = scan;\nexports.shuffle = shuffle;\nexports.sum = sum;\nexports.ticks = ticks;\nexports.tickIncrement = tickIncrement;\nexports.tickStep = tickStep;\nexports.transpose = transpose;\nexports.variance = variance;\nexports.zip = zip;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/build/d3-array.js\n// module id = 1\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11","// https://d3js.org/d3-ease/ Version 1.0.3. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction linear(t) {\n return +t;\n}\n\nfunction quadIn(t) {\n return t * t;\n}\n\nfunction quadOut(t) {\n return t * (2 - t);\n}\n\nfunction quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n\nfunction cubicIn(t) {\n return t * t * t;\n}\n\nfunction cubicOut(t) {\n return --t * t * t + 1;\n}\n\nfunction cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n\nvar exponent = 3;\n\nvar polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nvar polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nvar polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n\nvar pi = Math.PI;\nvar halfPi = pi / 2;\n\nfunction sinIn(t) {\n return 1 - Math.cos(t * halfPi);\n}\n\nfunction sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nfunction sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n\nfunction expIn(t) {\n return Math.pow(2, 10 * t - 10);\n}\n\nfunction expOut(t) {\n return 1 - Math.pow(2, -10 * t);\n}\n\nfunction expInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;\n}\n\nfunction circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nfunction circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nfunction circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n\nvar b1 = 4 / 11;\nvar b2 = 6 / 11;\nvar b3 = 8 / 11;\nvar b4 = 3 / 4;\nvar b5 = 9 / 11;\nvar b6 = 10 / 11;\nvar b7 = 15 / 16;\nvar b8 = 21 / 22;\nvar b9 = 63 / 64;\nvar b0 = 1 / b1 / b1;\n\nfunction bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nfunction bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nfunction bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n\nvar overshoot = 1.70158;\n\nvar backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return t * t * ((s + 1) * t - s);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nvar backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((s + 1) * t + s) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nvar backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n\nvar tau = 2 * Math.PI;\nvar amplitude = 1;\nvar period = 0.3;\n\nvar elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nvar elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nvar elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n\nexports.easeLinear = linear;\nexports.easeQuad = quadInOut;\nexports.easeQuadIn = quadIn;\nexports.easeQuadOut = quadOut;\nexports.easeQuadInOut = quadInOut;\nexports.easeCubic = cubicInOut;\nexports.easeCubicIn = cubicIn;\nexports.easeCubicOut = cubicOut;\nexports.easeCubicInOut = cubicInOut;\nexports.easePoly = polyInOut;\nexports.easePolyIn = polyIn;\nexports.easePolyOut = polyOut;\nexports.easePolyInOut = polyInOut;\nexports.easeSin = sinInOut;\nexports.easeSinIn = sinIn;\nexports.easeSinOut = sinOut;\nexports.easeSinInOut = sinInOut;\nexports.easeExp = expInOut;\nexports.easeExpIn = expIn;\nexports.easeExpOut = expOut;\nexports.easeExpInOut = expInOut;\nexports.easeCircle = circleInOut;\nexports.easeCircleIn = circleIn;\nexports.easeCircleOut = circleOut;\nexports.easeCircleInOut = circleInOut;\nexports.easeBounce = bounceOut;\nexports.easeBounceIn = bounceIn;\nexports.easeBounceOut = bounceOut;\nexports.easeBounceInOut = bounceInOut;\nexports.easeBack = backInOut;\nexports.easeBackIn = backIn;\nexports.easeBackOut = backOut;\nexports.easeBackInOut = backInOut;\nexports.easeElastic = elasticOut;\nexports.easeElasticIn = elasticIn;\nexports.easeElasticOut = elasticOut;\nexports.easeElasticInOut = elasticInOut;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-ease/build/d3-ease.js\n// module id = 2\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","// https://d3js.org/d3-color/ Version 1.0.3. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nvar define = function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n};\n\nfunction extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n\nfunction Color() {}\n\nvar darker = 0.7;\nvar brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\";\nvar reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\";\nvar reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\";\nvar reHex3 = /^#([0-9a-f]{3})$/;\nvar reHex6 = /^#([0-9a-f]{6})$/;\nvar reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\");\nvar reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\");\nvar reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\");\nvar reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\");\nvar reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\");\nvar reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n displayable: function() {\n return this.rgb().displayable();\n },\n toString: function() {\n return this.rgb() + \"\";\n }\n});\n\nfunction color(format) {\n var m;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format])\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nfunction rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nfunction rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nfunction Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (0 <= this.r && this.r <= 255)\n && (0 <= this.g && this.g <= 255)\n && (0 <= this.b && this.b <= 255)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n toString: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nfunction hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nfunction hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n\nvar deg2rad = Math.PI / 180;\nvar rad2deg = 180 / Math.PI;\n\nvar Kn = 18;\nvar Xn = 0.950470;\nvar Yn = 1;\nvar Zn = 1.088830;\nvar t0 = 4 / 29;\nvar t1 = 6 / 29;\nvar t2 = 3 * t1 * t1;\nvar t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) {\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n }\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var b = rgb2xyz(o.r),\n a = rgb2xyz(o.g),\n l = rgb2xyz(o.b),\n x = xyz2lab((0.4124564 * b + 0.3575761 * a + 0.1804375 * l) / Xn),\n y = xyz2lab((0.2126729 * b + 0.7151522 * a + 0.0721750 * l) / Yn),\n z = xyz2lab((0.0193339 * b + 0.1191920 * a + 0.9503041 * l) / Zn);\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nfunction lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nfunction Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n y = Yn * lab2xyz(y);\n x = Xn * lab2xyz(x);\n z = Zn * lab2xyz(z);\n return new Rgb(\n xyz2rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z), // D65 -> sRGB\n xyz2rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),\n xyz2rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction xyz2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2xyz(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nfunction hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + Kn * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - Kn * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return labConvert(this).rgb();\n }\n}));\n\nvar A = -0.14861;\nvar B = +1.78277;\nvar C = -0.29227;\nvar D = -0.90649;\nvar E = +1.97294;\nvar ED = E * D;\nvar EB = E * B;\nvar BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nfunction cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n\nexports.color = color;\nexports.rgb = rgb;\nexports.hsl = hsl;\nexports.lab = lab;\nexports.hcl = hcl;\nexports.cubehelix = cubehelix;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-color/build/d3-color.js\n// module id = 4\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","// https://d3js.org/d3-dispatch/ Version 1.0.3. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nvar noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexports.dispatch = dispatch;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-dispatch/build/d3-dispatch.js\n// module id = 5\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","// https://d3js.org/d3-format/ Version 1.2.0. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nvar formatDecimal = function(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n};\n\nvar exponent = function(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n};\n\nvar formatGroup = function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n};\n\nvar formatNumerals = function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n};\n\nvar formatDefault = function(x, p) {\n x = x.toPrecision(p);\n\n out: for (var n = x.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (x[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n case \"e\": break out;\n default: if (i0 > 0) i0 = 0; break;\n }\n }\n\n return i0 > 0 ? x.slice(0, i0) + x.slice(i1 + 1) : x;\n};\n\nvar prefixExponent;\n\nvar formatPrefixAuto = function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n};\n\nvar formatRounded = function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n};\n\nvar formatTypes = {\n \"\": formatDefault,\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n\n// [[fill]align][sign][symbol][0][width][,][.precision][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-\\( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?([a-z%])?$/i;\n\nfunction formatSpecifier(specifier) {\n return new FormatSpecifier(specifier);\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nfunction FormatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n\n var match,\n fill = match[1] || \" \",\n align = match[2] || \">\",\n sign = match[3] || \"-\",\n symbol = match[4] || \"\",\n zero = !!match[5],\n width = match[6] && +match[6],\n comma = !!match[7],\n precision = match[8] && +match[8].slice(1),\n type = match[9] || \"\";\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // Map invalid types to the default format.\n else if (!formatTypes[type]) type = \"\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n this.fill = fill;\n this.align = align;\n this.sign = sign;\n this.symbol = symbol;\n this.zero = zero;\n this.width = width;\n this.comma = comma;\n this.precision = precision;\n this.type = type;\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width == null ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision == null ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + this.type;\n};\n\nvar identity = function(x) {\n return x;\n};\n\nvar prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nvar formatLocale = function(locale) {\n var group = locale.grouping && locale.thousands ? formatGroup(locale.grouping, locale.thousands) : identity,\n currency = locale.currency,\n decimal = locale.decimal,\n numerals = locale.numerals ? formatNumerals(locale.numerals) : identity,\n percent = locale.percent || \"%\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n type = specifier.type;\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currency[0] : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currency[1] : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = !type || /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision == null ? (type ? 6 : 12)\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Perform the initial formatting.\n var valueNegative = value < 0;\n value = formatType(Math.abs(value), precision);\n\n // If a negative value rounds to zero during formatting, treat as positive.\n if (valueNegative && +value === 0) valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : \"-\") : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = valueSuffix + (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n};\n\nvar locale;\n\n\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nfunction defaultLocale(definition) {\n locale = formatLocale(definition);\n exports.format = locale.format;\n exports.formatPrefix = locale.formatPrefix;\n return locale;\n}\n\nvar precisionFixed = function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n};\n\nvar precisionPrefix = function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n};\n\nvar precisionRound = function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n};\n\nexports.formatDefaultLocale = defaultLocale;\nexports.formatLocale = formatLocale;\nexports.formatSpecifier = formatSpecifier;\nexports.precisionFixed = precisionFixed;\nexports.precisionPrefix = precisionPrefix;\nexports.precisionRound = precisionRound;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/build/d3-format.js\n// module id = 6\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","// https://d3js.org/d3-scale/ Version 1.0.6. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-array'), require('d3-collection'), require('d3-interpolate'), require('d3-format'), require('d3-time'), require('d3-time-format'), require('d3-color')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'd3-array', 'd3-collection', 'd3-interpolate', 'd3-format', 'd3-time', 'd3-time-format', 'd3-color'], factory) :\n\t(factory((global.d3 = global.d3 || {}),global.d3,global.d3,global.d3,global.d3,global.d3,global.d3,global.d3));\n}(this, (function (exports,d3Array,d3Collection,d3Interpolate,d3Format,d3Time,d3TimeFormat,d3Color) { 'use strict';\n\nvar array = Array.prototype;\n\nvar map$1 = array.map;\nvar slice = array.slice;\n\nvar implicit = {name: \"implicit\"};\n\nfunction ordinal(range$$1) {\n var index = d3Collection.map(),\n domain = [],\n unknown = implicit;\n\n range$$1 = range$$1 == null ? [] : slice.call(range$$1);\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range$$1[(i - 1) % range$$1.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = d3Collection.map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range$$1 = slice.call(_), scale) : range$$1.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal()\n .domain(domain)\n .range(range$$1)\n .unknown(unknown);\n };\n\n return scale;\n}\n\nfunction band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range$$1 = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range$$1[1] < range$$1[0],\n start = range$$1[reverse - 0],\n stop = range$$1[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = d3Array.range(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range$$1 = [+_[0], +_[1]], rescale()) : range$$1.slice();\n };\n\n scale.rangeRound = function(_) {\n return range$$1 = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band()\n .domain(domain())\n .range(range$$1)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return rescale();\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nfunction point() {\n return pointish(band().paddingInner(1));\n}\n\nvar constant = function(x) {\n return function() {\n return x;\n };\n};\n\nvar number = function(x) {\n return +x;\n};\n\nvar unit = [0, 1];\n\nfunction deinterpolateLinear(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(b);\n}\n\nfunction deinterpolateClamp(deinterpolate) {\n return function(a, b) {\n var d = deinterpolate(a = +a, b = +b);\n return function(x) { return x <= a ? 0 : x >= b ? 1 : d(x); };\n };\n}\n\nfunction reinterpolateClamp(reinterpolate) {\n return function(a, b) {\n var r = reinterpolate(a = +a, b = +b);\n return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };\n };\n}\n\nfunction bimap(domain, range$$1, deinterpolate, reinterpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range$$1[0], r1 = range$$1[1];\n if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);\n else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range$$1, deinterpolate, reinterpolate) {\n var j = Math.min(domain.length, range$$1.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range$$1 = range$$1.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = deinterpolate(domain[i], domain[i + 1]);\n r[i] = reinterpolate(range$$1[i], range$$1[i + 1]);\n }\n\n return function(x) {\n var i = d3Array.bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nfunction copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp());\n}\n\n// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].\nfunction continuous(deinterpolate, reinterpolate) {\n var domain = unit,\n range$$1 = unit,\n interpolate$$1 = d3Interpolate.interpolate,\n clamp = false,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range$$1.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return (output || (output = piecewise(domain, range$$1, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate$$1)))(+x);\n }\n\n scale.invert = function(y) {\n return (input || (input = piecewise(range$$1, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map$1.call(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range$$1 = slice.call(_), rescale()) : range$$1.slice();\n };\n\n scale.rangeRound = function(_) {\n return range$$1 = slice.call(_), interpolate$$1 = d3Interpolate.interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, rescale()) : clamp;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate$$1 = _, rescale()) : interpolate$$1;\n };\n\n return rescale();\n}\n\nvar tickFormat = function(domain, count, specifier) {\n var start = domain[0],\n stop = domain[domain.length - 1],\n step = d3Array.tickStep(start, stop, count == null ? 10 : count),\n precision;\n specifier = d3Format.formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = d3Format.precisionPrefix(step, value))) specifier.precision = precision;\n return d3Format.formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = d3Format.precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = d3Format.precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return d3Format.format(specifier);\n};\n\nfunction linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return d3Array.ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n return tickFormat(domain(), count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = d3Array.tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = d3Array.tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = d3Array.tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nfunction linear() {\n var scale = continuous(deinterpolateLinear, d3Interpolate.interpolateNumber);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n return linearish(scale);\n}\n\nfunction identity() {\n var domain = [0, 1];\n\n function scale(x) {\n return +x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = map$1.call(_, number), scale) : domain.slice();\n };\n\n scale.copy = function() {\n return identity().domain(domain);\n };\n\n return linearish(scale);\n}\n\nvar nice = function(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n};\n\nfunction deinterpolate(a, b) {\n return (b = Math.log(b / a))\n ? function(x) { return Math.log(x / a) / b; }\n : constant(b);\n}\n\nfunction reinterpolate(a, b) {\n return a < 0\n ? function(t) { return -Math.pow(-b, t) * Math.pow(-a, 1 - t); }\n : function(t) { return Math.pow(b, t) * Math.pow(a, 1 - t); };\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nfunction log() {\n var scale = continuous(deinterpolate, reinterpolate).domain([1, 10]),\n domain = scale.domain,\n base = 10,\n logs = logp(10),\n pows = powp(10);\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) logs = reflect(logs), pows = reflect(pows);\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = d3Array.ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = d3Format.format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n scale.copy = function() {\n return copy(scale, log().base(base));\n };\n\n return scale;\n}\n\nfunction raise(x, exponent) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n}\n\nfunction pow() {\n var exponent = 1,\n scale = continuous(deinterpolate, reinterpolate),\n domain = scale.domain;\n\n function deinterpolate(a, b) {\n return (b = raise(b, exponent) - (a = raise(a, exponent)))\n ? function(x) { return (raise(x, exponent) - a) / b; }\n : constant(b);\n }\n\n function reinterpolate(a, b) {\n b = raise(b, exponent) - (a = raise(a, exponent));\n return function(t) { return raise(a + b * t, 1 / exponent); };\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, domain(domain())) : exponent;\n };\n\n scale.copy = function() {\n return copy(scale, pow().exponent(exponent));\n };\n\n return linearish(scale);\n}\n\nfunction sqrt() {\n return pow().exponent(0.5);\n}\n\nfunction quantile$1() {\n var domain = [],\n range$$1 = [],\n thresholds = [];\n\n function rescale() {\n var i = 0, n = Math.max(1, range$$1.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = d3Array.quantile(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n if (!isNaN(x = +x)) return range$$1[d3Array.bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range$$1.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(d3Array.ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range$$1 = slice.call(_), rescale()) : range$$1.slice();\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile$1()\n .domain(domain)\n .range(range$$1);\n };\n\n return scale;\n}\n\nfunction quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range$$1 = [0, 1];\n\n function scale(x) {\n if (x <= x) return range$$1[d3Array.bisect(domain, x, 0, n)];\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range$$1 = slice.call(_)).length - 1, rescale()) : range$$1.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range$$1.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range$$1);\n };\n\n return linearish(scale);\n}\n\nfunction threshold() {\n var domain = [0.5],\n range$$1 = [0, 1],\n n = 1;\n\n function scale(x) {\n if (x <= x) return range$$1[d3Array.bisect(domain, x, 0, n)];\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = slice.call(_), n = Math.min(domain.length, range$$1.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range$$1 = slice.call(_), n = Math.min(domain.length, range$$1.length - 1), scale) : range$$1.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range$$1.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range$$1);\n };\n\n return scale;\n}\n\nvar durationSecond = 1000;\nvar durationMinute = durationSecond * 60;\nvar durationHour = durationMinute * 60;\nvar durationDay = durationHour * 24;\nvar durationWeek = durationDay * 7;\nvar durationMonth = durationDay * 30;\nvar durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number$1(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nfunction calendar(year, month, week, day, hour, minute, second, millisecond, format$$1) {\n var scale = continuous(deinterpolateLinear, d3Interpolate.interpolateNumber),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format$$1(\".%L\"),\n formatSecond = format$$1(\":%S\"),\n formatMinute = format$$1(\"%I:%M\"),\n formatHour = format$$1(\"%I %p\"),\n formatDay = format$$1(\"%a %d\"),\n formatWeek = format$$1(\"%b %d\"),\n formatMonth = format$$1(\"%B\"),\n formatYear = format$$1(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = d3Array.bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = d3Array.tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = d3Array.tickStep(start, stop, interval);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map$1.call(_, number$1)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format$$1(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format$$1));\n };\n\n return scale;\n}\n\nvar time = function() {\n return calendar(d3Time.timeYear, d3Time.timeMonth, d3Time.timeWeek, d3Time.timeDay, d3Time.timeHour, d3Time.timeMinute, d3Time.timeSecond, d3Time.timeMillisecond, d3TimeFormat.timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);\n};\n\nvar utcTime = function() {\n return calendar(d3Time.utcYear, d3Time.utcMonth, d3Time.utcWeek, d3Time.utcDay, d3Time.utcHour, d3Time.utcMinute, d3Time.utcSecond, d3Time.utcMillisecond, d3TimeFormat.utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]);\n};\n\nvar colors = function(s) {\n return s.match(/.{6}/g).map(function(x) {\n return \"#\" + x;\n });\n};\n\nvar category10 = colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n\nvar category20b = colors(\"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6\");\n\nvar category20c = colors(\"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9\");\n\nvar category20 = colors(\"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5\");\n\nvar cubehelix$1 = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(300, 0.5, 0.0), d3Color.cubehelix(-240, 0.5, 1.0));\n\nvar warm = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(-100, 0.75, 0.35), d3Color.cubehelix(80, 1.50, 0.8));\n\nvar cool = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(260, 0.75, 0.35), d3Color.cubehelix(80, 1.50, 0.8));\n\nvar rainbow = d3Color.cubehelix();\n\nvar rainbow$1 = function(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n rainbow.h = 360 * t - 100;\n rainbow.s = 1.5 - 1.5 * ts;\n rainbow.l = 0.8 - 0.9 * ts;\n return rainbow + \"\";\n};\n\nfunction ramp(range$$1) {\n var n = range$$1.length;\n return function(t) {\n return range$$1[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nvar viridis = ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nvar magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nvar inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nvar plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n\nfunction sequential(interpolator) {\n var x0 = 0,\n x1 = 1,\n clamp = false;\n\n function scale(x) {\n var t = (x - x0) / (x1 - x0);\n return interpolator(clamp ? Math.max(0, Math.min(1, t)) : t);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.copy = function() {\n return sequential(interpolator).domain([x0, x1]).clamp(clamp);\n };\n\n return linearish(scale);\n}\n\nexports.scaleBand = band;\nexports.scalePoint = point;\nexports.scaleIdentity = identity;\nexports.scaleLinear = linear;\nexports.scaleLog = log;\nexports.scaleOrdinal = ordinal;\nexports.scaleImplicit = implicit;\nexports.scalePow = pow;\nexports.scaleSqrt = sqrt;\nexports.scaleQuantile = quantile$1;\nexports.scaleQuantize = quantize;\nexports.scaleThreshold = threshold;\nexports.scaleTime = time;\nexports.scaleUtc = utcTime;\nexports.schemeCategory10 = category10;\nexports.schemeCategory20b = category20b;\nexports.schemeCategory20c = category20c;\nexports.schemeCategory20 = category20;\nexports.interpolateCubehelixDefault = cubehelix$1;\nexports.interpolateRainbow = rainbow$1;\nexports.interpolateWarm = warm;\nexports.interpolateCool = cool;\nexports.interpolateViridis = viridis;\nexports.interpolateMagma = magma;\nexports.interpolateInferno = inferno;\nexports.interpolatePlasma = plasma;\nexports.scaleSequential = sequential;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-scale/build/d3-scale.js\n// module id = 7\n// module chunks = 0 1 3 4 5 6 8 9 10 11","// https://d3js.org/d3-collection/ Version 1.0.4. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nvar prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nvar nest = function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map$$1, depth) {\n if (++depth > keys.length) return map$$1;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map$$1.entries();\n else array = [], map$$1.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n};\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map();\n}\n\nfunction setMap(map$$1, key, value) {\n map$$1.set(key, value);\n}\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nvar keys = function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n};\n\nvar values = function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n};\n\nvar entries = function(map) {\n var entries = [];\n for (var key in map) entries.push({key: key, value: map[key]});\n return entries;\n};\n\nexports.nest = nest;\nexports.set = set;\nexports.map = map;\nexports.keys = keys;\nexports.values = values;\nexports.entries = entries;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-collection/build/d3-collection.js\n// module id = 8\n// module chunks = 0 1 3 4 5 6 8 9 10 11","// https://d3js.org/d3-interpolate/ Version 1.1.5. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-color')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'd3-color'], factory) :\n\t(factory((global.d3 = global.d3 || {}),global.d3));\n}(this, (function (exports,d3Color) { 'use strict';\n\nfunction basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nvar basis$1 = function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n};\n\nvar basisClosed = function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n};\n\nvar constant = function(x) {\n return function() {\n return x;\n };\n};\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nfunction hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nfunction gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nfunction nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n\nvar rgb$1 = ((function rgbGamma(y) {\n var color$$1 = gamma(y);\n\n function rgb$$1(start, end) {\n var r = color$$1((start = d3Color.rgb(start)).r, (end = d3Color.rgb(end)).r),\n g = color$$1(start.g, end.g),\n b = color$$1(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb$$1.gamma = rgbGamma;\n\n return rgb$$1;\n}))(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color$$1;\n for (i = 0; i < n; ++i) {\n color$$1 = d3Color.rgb(colors[i]);\n r[i] = color$$1.r || 0;\n g[i] = color$$1.g || 0;\n b[i] = color$$1.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color$$1.opacity = 1;\n return function(t) {\n color$$1.r = r(t);\n color$$1.g = g(t);\n color$$1.b = b(t);\n return color$$1 + \"\";\n };\n };\n}\n\nvar rgbBasis = rgbSpline(basis$1);\nvar rgbBasisClosed = rgbSpline(basisClosed);\n\nvar array = function(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(nb),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n};\n\nvar date = function(a, b) {\n var d = new Date;\n return a = +a, b -= a, function(t) {\n return d.setTime(a + b * t), d;\n };\n};\n\nvar number = function(a, b) {\n return a = +a, b -= a, function(t) {\n return a + b * t;\n };\n};\n\nvar object = function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n};\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g;\nvar reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nvar string = function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n};\n\nvar value = function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = d3Color.color(b)) ? (b = c, rgb$1) : string)\n : b instanceof d3Color.color ? rgb$1\n : b instanceof Date ? date\n : Array.isArray(b) ? array\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n};\n\nvar round = function(a, b) {\n return a = +a, b -= a, function(t) {\n return Math.round(a + b * t);\n };\n};\n\nvar degrees = 180 / Math.PI;\n\nvar identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nvar decompose = function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n};\n\nvar cssNode;\nvar cssRoot;\nvar cssView;\nvar svgNode;\n\nfunction parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nfunction parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nvar interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nvar interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n\nvar rho = Math.SQRT2;\nvar rho2 = 2;\nvar rho4 = 4;\nvar epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nvar zoom = function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n };\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n };\n }\n\n i.duration = S * 1000;\n\n return i;\n};\n\nfunction hsl$1(hue$$1) {\n return function(start, end) {\n var h = hue$$1((start = d3Color.hsl(start)).h, (end = d3Color.hsl(end)).h),\n s = nogamma(start.s, end.s),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nvar hsl$2 = hsl$1(hue);\nvar hslLong = hsl$1(nogamma);\n\nfunction lab$1(start, end) {\n var l = nogamma((start = d3Color.lab(start)).l, (end = d3Color.lab(end)).l),\n a = nogamma(start.a, end.a),\n b = nogamma(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n\nfunction hcl$1(hue$$1) {\n return function(start, end) {\n var h = hue$$1((start = d3Color.hcl(start)).h, (end = d3Color.hcl(end)).h),\n c = nogamma(start.c, end.c),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nvar hcl$2 = hcl$1(hue);\nvar hclLong = hcl$1(nogamma);\n\nfunction cubehelix$1(hue$$1) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix$$1(start, end) {\n var h = hue$$1((start = d3Color.cubehelix(start)).h, (end = d3Color.cubehelix(end)).h),\n s = nogamma(start.s, end.s),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix$$1.gamma = cubehelixGamma;\n\n return cubehelix$$1;\n })(1);\n}\n\nvar cubehelix$2 = cubehelix$1(hue);\nvar cubehelixLong = cubehelix$1(nogamma);\n\nvar quantize = function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n};\n\nexports.interpolate = value;\nexports.interpolateArray = array;\nexports.interpolateBasis = basis$1;\nexports.interpolateBasisClosed = basisClosed;\nexports.interpolateDate = date;\nexports.interpolateNumber = number;\nexports.interpolateObject = object;\nexports.interpolateRound = round;\nexports.interpolateString = string;\nexports.interpolateTransformCss = interpolateTransformCss;\nexports.interpolateTransformSvg = interpolateTransformSvg;\nexports.interpolateZoom = zoom;\nexports.interpolateRgb = rgb$1;\nexports.interpolateRgbBasis = rgbBasis;\nexports.interpolateRgbBasisClosed = rgbBasisClosed;\nexports.interpolateHsl = hsl$2;\nexports.interpolateHslLong = hslLong;\nexports.interpolateLab = lab$1;\nexports.interpolateHcl = hcl$2;\nexports.interpolateHclLong = hclLong;\nexports.interpolateCubehelix = cubehelix$2;\nexports.interpolateCubehelixLong = cubehelixLong;\nexports.quantize = quantize;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/build/d3-interpolate.js\n// module id = 9\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","// https://d3js.org/d3-time/ Version 1.0.7. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nvar t0 = new Date;\nvar t1 = new Date;\n\nfunction newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = new Date(+date)), date;\n }\n\n interval.floor = interval;\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(new Date(+start)); while (offseti(start, step), floori(start), start < stop)\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n\nvar millisecond = newInterval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return newInterval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nvar milliseconds = millisecond.range;\n\nvar durationSecond = 1e3;\nvar durationMinute = 6e4;\nvar durationHour = 36e5;\nvar durationDay = 864e5;\nvar durationWeek = 6048e5;\n\nvar second = newInterval(function(date) {\n date.setTime(Math.floor(date / durationSecond) * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nvar seconds = second.range;\n\nvar minute = newInterval(function(date) {\n date.setTime(Math.floor(date / durationMinute) * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nvar minutes = minute.range;\n\nvar hour = newInterval(function(date) {\n var offset = date.getTimezoneOffset() * durationMinute % durationHour;\n if (offset < 0) offset += durationHour;\n date.setTime(Math.floor((+date - offset) / durationHour) * durationHour + offset);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nvar hours = hour.range;\n\nvar day = newInterval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nvar days = day.range;\n\nfunction weekday(i) {\n return newInterval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nvar sunday = weekday(0);\nvar monday = weekday(1);\nvar tuesday = weekday(2);\nvar wednesday = weekday(3);\nvar thursday = weekday(4);\nvar friday = weekday(5);\nvar saturday = weekday(6);\n\nvar sundays = sunday.range;\nvar mondays = monday.range;\nvar tuesdays = tuesday.range;\nvar wednesdays = wednesday.range;\nvar thursdays = thursday.range;\nvar fridays = friday.range;\nvar saturdays = saturday.range;\n\nvar month = newInterval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nvar months = month.range;\n\nvar year = newInterval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nvar years = year.range;\n\nvar utcMinute = newInterval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nvar utcMinutes = utcMinute.range;\n\nvar utcHour = newInterval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nvar utcHours = utcHour.range;\n\nvar utcDay = newInterval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nvar utcDays = utcDay.range;\n\nfunction utcWeekday(i) {\n return newInterval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nvar utcSunday = utcWeekday(0);\nvar utcMonday = utcWeekday(1);\nvar utcTuesday = utcWeekday(2);\nvar utcWednesday = utcWeekday(3);\nvar utcThursday = utcWeekday(4);\nvar utcFriday = utcWeekday(5);\nvar utcSaturday = utcWeekday(6);\n\nvar utcSundays = utcSunday.range;\nvar utcMondays = utcMonday.range;\nvar utcTuesdays = utcTuesday.range;\nvar utcWednesdays = utcWednesday.range;\nvar utcThursdays = utcThursday.range;\nvar utcFridays = utcFriday.range;\nvar utcSaturdays = utcSaturday.range;\n\nvar utcMonth = newInterval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nvar utcMonths = utcMonth.range;\n\nvar utcYear = newInterval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nvar utcYears = utcYear.range;\n\nexports.timeInterval = newInterval;\nexports.timeMillisecond = millisecond;\nexports.timeMilliseconds = milliseconds;\nexports.utcMillisecond = millisecond;\nexports.utcMilliseconds = milliseconds;\nexports.timeSecond = second;\nexports.timeSeconds = seconds;\nexports.utcSecond = second;\nexports.utcSeconds = seconds;\nexports.timeMinute = minute;\nexports.timeMinutes = minutes;\nexports.timeHour = hour;\nexports.timeHours = hours;\nexports.timeDay = day;\nexports.timeDays = days;\nexports.timeWeek = sunday;\nexports.timeWeeks = sundays;\nexports.timeSunday = sunday;\nexports.timeSundays = sundays;\nexports.timeMonday = monday;\nexports.timeMondays = mondays;\nexports.timeTuesday = tuesday;\nexports.timeTuesdays = tuesdays;\nexports.timeWednesday = wednesday;\nexports.timeWednesdays = wednesdays;\nexports.timeThursday = thursday;\nexports.timeThursdays = thursdays;\nexports.timeFriday = friday;\nexports.timeFridays = fridays;\nexports.timeSaturday = saturday;\nexports.timeSaturdays = saturdays;\nexports.timeMonth = month;\nexports.timeMonths = months;\nexports.timeYear = year;\nexports.timeYears = years;\nexports.utcMinute = utcMinute;\nexports.utcMinutes = utcMinutes;\nexports.utcHour = utcHour;\nexports.utcHours = utcHours;\nexports.utcDay = utcDay;\nexports.utcDays = utcDays;\nexports.utcWeek = utcSunday;\nexports.utcWeeks = utcSundays;\nexports.utcSunday = utcSunday;\nexports.utcSundays = utcSundays;\nexports.utcMonday = utcMonday;\nexports.utcMondays = utcMondays;\nexports.utcTuesday = utcTuesday;\nexports.utcTuesdays = utcTuesdays;\nexports.utcWednesday = utcWednesday;\nexports.utcWednesdays = utcWednesdays;\nexports.utcThursday = utcThursday;\nexports.utcThursdays = utcThursdays;\nexports.utcFriday = utcFriday;\nexports.utcFridays = utcFridays;\nexports.utcSaturday = utcSaturday;\nexports.utcSaturdays = utcSaturdays;\nexports.utcMonth = utcMonth;\nexports.utcMonths = utcMonths;\nexports.utcYear = utcYear;\nexports.utcYears = utcYears;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time/build/d3-time.js\n// module id = 10\n// module chunks = 0 1 3 4 5 6 8 9 10 11 12","// https://d3js.org/d3-time-format/ Version 2.0.5. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-time')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'd3-time'], factory) :\n\t(factory((global.d3 = global.d3 || {}),global.d3));\n}(this, (function (exports,d3Time) { 'use strict';\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newYear(y) {\n return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};\n}\n\nfunction formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"S\": formatSeconds,\n \"U\": formatWeekNumberSunday,\n \"w\": formatWeekdayNumber,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"S\": formatUTCSeconds,\n \"U\": formatUTCWeekNumberSunday,\n \"w\": formatUTCWeekdayNumber,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"S\": parseSeconds,\n \"U\": parseWeekNumberSunday,\n \"w\": parseWeekdayNumber,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, newDate) {\n return function(string) {\n var d = newYear(1900),\n i = parseSpecifier(d, specifier, string += \"\", 0);\n if (i != string.length) return null;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"W\" in d ? 1 : 0;\n var day = \"Z\" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return newDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", localDate);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier, utcDate);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"};\nvar numberRe = /^\\s*\\d+/;\nvar percentRe = /^%/;\nvar requoteRe = /[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?:\\:?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + d3Time.timeDay.count(d3Time.timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(d3Time.timeSunday.count(d3Time.timeYear(d), d), p, 2);\n}\n\nfunction formatWeekdayNumber(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(d3Time.timeMonday.count(d3Time.timeYear(d), d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + d3Time.utcDay.count(d3Time.utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(d3Time.utcSunday.count(d3Time.utcYear(d), d), p, 2);\n}\n\nfunction formatUTCWeekdayNumber(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(d3Time.utcMonday.count(d3Time.utcYear(d), d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nvar locale$1;\n\n\n\n\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nfunction defaultLocale(definition) {\n locale$1 = formatLocale(definition);\n exports.timeFormat = locale$1.format;\n exports.timeParse = locale$1.parse;\n exports.utcFormat = locale$1.utcFormat;\n exports.utcParse = locale$1.utcParse;\n return locale$1;\n}\n\nvar isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : exports.utcFormat(isoSpecifier);\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : exports.utcParse(isoSpecifier);\n\nexports.timeFormatDefaultLocale = defaultLocale;\nexports.timeFormatLocale = formatLocale;\nexports.isoFormat = formatIso;\nexports.isoParse = parseIso;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-time-format/build/d3-time-format.js\n// module id = 11\n// module chunks = 0 1 3 4 5 6 8 9 10 11 12","// https://d3js.org/d3-selection/ Version 1.1.0. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nvar xhtml = \"http://www.w3.org/1999/xhtml\";\n\nvar namespaces = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n\nvar namespace = function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n};\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nvar creator = function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n};\n\nvar nextId = 0;\n\nfunction local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n\nvar matcher = function(selector) {\n return function() {\n return this.matches(selector);\n };\n};\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!element.matches) {\n var vendorMatches = element.webkitMatchesSelector\n || element.msMatchesSelector\n || element.mozMatchesSelector\n || element.oMatchesSelector;\n matcher = function(selector) {\n return function() {\n return vendorMatches.call(this, selector);\n };\n };\n }\n}\n\nvar matcher$1 = matcher;\n\nvar filterEvents = {};\n\nexports.event = null;\n\nif (typeof document !== \"undefined\") {\n var element$1 = document.documentElement;\n if (!(\"onmouseenter\" in element$1)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = exports.event; // Events can be reentrant (e.g., focus).\n exports.event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n exports.event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nvar selection_on = function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n};\n\nfunction customEvent(event1, listener, that, args) {\n var event0 = exports.event;\n event1.sourceEvent = exports.event;\n exports.event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n exports.event = event0;\n }\n}\n\nvar sourceEvent = function() {\n var current = exports.event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n};\n\nvar point = function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n};\n\nvar mouse = function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n};\n\nfunction none() {}\n\nvar selector = function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n};\n\nvar selection_select = function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n};\n\nfunction empty() {\n return [];\n}\n\nvar selectorAll = function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n};\n\nvar selection_selectAll = function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n};\n\nvar selection_filter = function(match) {\n if (typeof match !== \"function\") match = matcher$1(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n};\n\nvar sparse = function(update) {\n return new Array(update.length);\n};\n\nvar selection_enter = function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n};\n\nfunction EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n\nvar constant = function(x) {\n return function() {\n return x;\n };\n};\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nvar selection_data = function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n};\n\nvar selection_exit = function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n};\n\nvar selection_merge = function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n};\n\nvar selection_order = function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n};\n\nvar selection_sort = function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n};\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\nvar selection_call = function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n};\n\nvar selection_nodes = function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n};\n\nvar selection_node = function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n};\n\nvar selection_size = function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n};\n\nvar selection_empty = function() {\n return !this.node();\n};\n\nvar selection_each = function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n};\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nvar selection_attr = function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n};\n\nvar defaultView = function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n};\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nvar selection_style = function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n};\n\nfunction styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n\nfunction propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nvar selection_property = function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n};\n\nfunction classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nvar selection_classed = function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n};\n\nfunction textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nvar selection_text = function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n};\n\nfunction htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nvar selection_html = function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n};\n\nfunction raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nvar selection_raise = function() {\n return this.each(raise);\n};\n\nfunction lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nvar selection_lower = function() {\n return this.each(lower);\n};\n\nvar selection_append = function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n};\n\nfunction constantNull() {\n return null;\n}\n\nvar selection_insert = function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n};\n\nfunction remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nvar selection_remove = function() {\n return this.each(remove);\n};\n\nvar selection_datum = function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n};\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nvar selection_dispatch = function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n};\n\nvar root = [null];\n\nfunction Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nvar select = function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n};\n\nvar selectAll = function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n};\n\nvar touch = function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n};\n\nvar touches = function(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n};\n\nexports.creator = creator;\nexports.local = local;\nexports.matcher = matcher$1;\nexports.mouse = mouse;\nexports.namespace = namespace;\nexports.namespaces = namespaces;\nexports.select = select;\nexports.selectAll = selectAll;\nexports.selection = selection;\nexports.selector = selector;\nexports.selectorAll = selectorAll;\nexports.style = styleValue;\nexports.touch = touch;\nexports.touches = touches;\nexports.window = defaultView;\nexports.customEvent = customEvent;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-selection/build/d3-selection.js\n// module id = 12\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","// https://d3js.org/d3-transition/ Version 1.1.0. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-selection'), require('d3-dispatch'), require('d3-timer'), require('d3-interpolate'), require('d3-color'), require('d3-ease')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'd3-selection', 'd3-dispatch', 'd3-timer', 'd3-interpolate', 'd3-color', 'd3-ease'], factory) :\n\t(factory((global.d3 = global.d3 || {}),global.d3,global.d3,global.d3,global.d3,global.d3,global.d3));\n}(this, (function (exports,d3Selection,d3Dispatch,d3Timer,d3Interpolate,d3Color,d3Ease) { 'use strict';\n\nvar emptyOn = d3Dispatch.dispatch(\"start\", \"end\", \"interrupt\");\nvar emptyTween = [];\n\nvar CREATED = 0;\nvar SCHEDULED = 1;\nvar STARTING = 2;\nvar STARTED = 3;\nvar RUNNING = 4;\nvar ENDING = 5;\nvar ENDED = 6;\n\nvar schedule = function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n};\n\nfunction init(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id]) || schedule.state > CREATED) throw new Error(\"too late\");\n return schedule;\n}\n\nfunction set(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id]) || schedule.state > STARTING) throw new Error(\"too late\");\n return schedule;\n}\n\nfunction get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"too late\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = d3Timer.timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return d3Timer.timeout(start);\n\n // Interrupt the active transition, if any.\n // Dispatch the interrupt event.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions. No interrupt event is dispatched\n // because the cancelled transitions never started. Note that this also\n // removes this transition from the pending list!\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n d3Timer.timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(null, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n\nvar interrupt = function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n if (active) schedule.on.call(\"interrupt\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n};\n\nvar selection_interrupt = function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n};\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nvar transition_tween = function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n};\n\nfunction tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n\nvar interpolate = function(a, b) {\n var c;\n return (typeof b === \"number\" ? d3Interpolate.interpolateNumber\n : b instanceof d3Color.color ? d3Interpolate.interpolateRgb\n : (c = d3Color.color(b)) ? (b = c, d3Interpolate.interpolateRgb)\n : d3Interpolate.interpolateString)(a, b);\n};\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate$$1, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = this.getAttribute(name);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate$$1(value00 = value0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate$$1, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate$$1(value00 = value0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate$$1, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0, value1 = value(this);\n if (value1 == null) return void this.removeAttribute(name);\n value0 = this.getAttribute(name);\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate$$1, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0, value1 = value(this);\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n };\n}\n\nvar transition_attr = function(name, value) {\n var fullname = d3Selection.namespace(name), i = fullname === \"transform\" ? d3Interpolate.interpolateTransformSvg : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value + \"\"));\n};\n\nfunction attrTweenNS(fullname, value) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.setAttributeNS(fullname.space, fullname.local, i(t));\n };\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.setAttribute(name, i(t));\n };\n }\n tween._value = value;\n return tween;\n}\n\nvar transition_attrTween = function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = d3Selection.namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n};\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nvar transition_delay = function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n};\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nvar transition_duration = function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n};\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nvar transition_ease = function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n};\n\nvar transition_filter = function(match) {\n if (typeof match !== \"function\") match = d3Selection.matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n};\n\nvar transition_merge = function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n};\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nvar transition_on = function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n};\n\nfunction removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nvar transition_remove = function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n};\n\nvar transition_select = function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = d3Selection.selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n};\n\nvar transition_selectAll = function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = d3Selection.selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n};\n\nvar Selection = d3Selection.selection.prototype.constructor;\n\nvar transition_selection = function() {\n return new Selection(this._groups, this._parents);\n};\n\nfunction styleRemove(name, interpolate$$1) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0 = d3Selection.style(this, name),\n value1 = (this.style.removeProperty(name), d3Selection.style(this, name));\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n };\n}\n\nfunction styleRemoveEnd(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate$$1, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = d3Selection.style(this, name);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate$$1(value00 = value0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate$$1, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0 = d3Selection.style(this, name),\n value1 = value(this);\n if (value1 == null) value1 = (this.style.removeProperty(name), d3Selection.style(this, name));\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n };\n}\n\nvar transition_style = function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? d3Interpolate.interpolateTransformCss : interpolate;\n return value == null ? this\n .styleTween(name, styleRemove(name, i))\n .on(\"end.style.\" + name, styleRemoveEnd(name))\n : this.styleTween(name, typeof value === \"function\"\n ? styleFunction(name, i, tweenValue(this, \"style.\" + name, value))\n : styleConstant(name, i, value + \"\"), priority);\n};\n\nfunction styleTween(name, value, priority) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.style.setProperty(name, i(t), priority);\n };\n }\n tween._value = value;\n return tween;\n}\n\nvar transition_styleTween = function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n};\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nvar transition_text = function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n};\n\nvar transition_transition = function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n};\n\nvar id = 0;\n\nfunction Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nfunction transition(name) {\n return d3Selection.selection().transition(name);\n}\n\nfunction newId() {\n return ++id;\n}\n\nvar selection_prototype = d3Selection.selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease\n};\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: d3Ease.easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = d3Timer.now(), defaultTiming;\n }\n }\n return timing;\n}\n\nvar selection_transition = function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = d3Timer.now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n};\n\nd3Selection.selection.prototype.interrupt = selection_interrupt;\nd3Selection.selection.prototype.transition = selection_transition;\n\nvar root = [null];\n\nvar active = function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n};\n\nexports.transition = transition;\nexports.active = active;\nexports.interrupt = interrupt;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-transition/build/d3-transition.js\n// module id = 13\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","// https://d3js.org/d3-timer/ Version 1.0.6. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nvar frame = 0;\nvar timeout = 0;\nvar interval = 0;\nvar pokeDelay = 1000;\nvar taskHead;\nvar taskTail;\nvar clockLast = 0;\nvar clockNow = 0;\nvar clockSkew = 0;\nvar clock = typeof performance === \"object\" && performance.now ? performance : Date;\nvar setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nfunction now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nfunction Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nfunction timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nfunction timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow;\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, delay);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clockNow, interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n\nvar timeout$1 = function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n};\n\nvar interval$1 = function(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? now() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n};\n\nexports.now = now;\nexports.timer = timer;\nexports.timerFlush = timerFlush;\nexports.timeout = timeout$1;\nexports.interval = interval$1;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-timer/build/d3-timer.js\n// module id = 14\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","define(function(require) {\n\n const d3Selection = require('d3-selection');\n\n const wrapConfig = {\n lineHeight: 1.2,\n smallTextOffset: 10,\n smallTextLineHeightRatio: 0.9,\n smallTextRatio: 0.6,\n valueClassName: 'value',\n labelClassName: 'label'\n };\n\n const defaultTextSize = 12;\n const defaultFontFace = 'Arial';\n\n /**\n * Wraps a selection of text within the available width\n * @param {Number} xOffset X axis offset for the text\n * @param {Number} fontSize Size of the base font\n * @param {Number} availableWidth Width of the container where the text needs to wrap on\n * @param {D3Selection} node SVG text element that contains the text to wrap\n *\n * REF: http://bl.ocks.org/mbostock/7555321\n * More discussions on https://github.com/mbostock/d3/issues/1642\n * @return {void}\n */\n const wrapText = function(xOffset, fontSize, availableWidth, node) {\n let text = d3Selection.select(node),\n words = text.text().split(/\\s+/).reverse(),\n word,\n line = [],\n lineNumber = 0,\n smallLineHeight = wrapConfig.lineHeight * wrapConfig.smallTextLineHeightRatio,\n y = text.attr('y'),\n dy = parseFloat(text.attr('dy')),\n smallFontSize = fontSize * wrapConfig.smallTextRatio,\n tspan = text.text(null).append('tspan')\n .attr('x', xOffset)\n .attr('y', y - 5)\n .attr('dy', dy + 'em')\n .classed(wrapConfig.valueClassName, true)\n .style('font-size', fontSize + 'px');\n\n tspan.text(words.pop());\n tspan = text.append('tspan')\n .classed(wrapConfig.labelClassName, true)\n .attr('x', xOffset)\n .attr('y', y + wrapConfig.smallTextOffset)\n .attr('dy', ++lineNumber * smallLineHeight + dy + 'em')\n .style('font-size', smallFontSize + 'px');\n\n while (word = words.pop()) {\n line.push(word);\n tspan.text(line.join(' '));\n if (tspan.node().getComputedTextLength() > availableWidth - 50) {\n line.pop();\n tspan.text(line.join(' '));\n line = [word];\n tspan = text.append('tspan')\n .classed(wrapConfig.labelClassName, true)\n .attr('x', xOffset)\n .attr('y', y+ wrapConfig.smallTextOffset)\n .attr('dy', ++lineNumber * smallLineHeight + dy + 'em')\n .text(word)\n .style('font-size', smallFontSize + 'px');\n }\n }\n };\n\n /**\n * Wraps a selection of text within the available width, also adds class .adjust-upwards\n * to configure a y offset for entries with multiple rows\n * @param {D3Sekectuib} text d3 text element\n * @param {Number} width Width of the container where the text needs to wrap on\n * @param {Number} xpos number passed to determine the x offset\n * @param {Number} limit number of lines before an ellipses is added and the rest of the text is cut off\n *\n * REF: http://bl.ocks.org/mbostock/7555321\n * More discussions on https://github.com/mbostock/d3/issues/1642\n * @return {void}\n */\n const wrapTextWithEllipses = function(text, width, xpos=0, limit=2) {\n\n text.each(function() {\n var words,\n word,\n line,\n lineNumber,\n lineHeight,\n y,\n dy,\n tspan;\n\n text = d3Selection.select(this);\n\n words = text.text().split(/\\s+/).reverse();\n line = [];\n lineNumber = 0;\n lineHeight = 1.2;\n y = text.attr('y');\n dy = parseFloat(text.attr('dy'));\n tspan = text\n .text(null)\n .append('tspan')\n .attr('x', xpos)\n .attr('y', y)\n .attr('dy', dy + 'em');\n\n while ((word = words.pop())) {\n line.push(word);\n tspan.text(line.join(' '));\n\n if (tspan.node().getComputedTextLength() > width) {\n line.pop();\n tspan.text(line.join(' '));\n\n if (lineNumber < limit - 1) {\n line = [word];\n tspan = text.append('tspan')\n .attr('x', xpos)\n .attr('y', y)\n .attr('dy', ++lineNumber * lineHeight + dy + 'em')\n .text(word);\n // if we need two lines for the text, move them both up to center them\n text.classed('adjust-upwards', true);\n } else {\n line.push('...');\n tspan.text(line.join(' '));\n break;\n }\n }\n }\n });\n };\n\n /**\n * Figures out an approximate of the text width by using a canvas element\n * This avoids having to actually render the text to measure it from the DOM itself\n * @param {String} text Text to measure\n * @param {Number} fontSize Fontsize (or default)\n * @param {String} fontFace Font familty (or default)\n * @return {String} Approximate font size of the text\n */\n const getTextWidth = function(text, fontSize = defaultTextSize, fontFace = defaultFontFace) {\n let a = document.createElement('canvas'),\n b = a.getContext('2d');\n\n b.font = fontSize + 'px ' + fontFace;\n\n return b.measureText(text).width;\n }\n\n return {\n getTextWidth,\n wrapText,\n wrapTextWithEllipses\n };\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/charts/helpers/text.js","define(function() {\n\n // Color Gradients\n const britechartGradients = {\n greenBlue: ['#39C7EA', '#4CDCBA'],\n orangePink: ['#FBC670', '#F766B8'],\n bluePurple: ['#3DC3C9', '#824a9e']\n };\n\n // Color Schemas\n // Standard Color Schema for Britecharts\n const britecharts = [\n '#6aedc7', //green\n '#39c2c9', //blue\n '#ffce00', //yellow\n '#ffa71a', //orange\n '#f866b9', //pink\n '#998ce3' //purple\n ];\n\n // Grey Schema for Britecharts\n const grey = [\n '#F8F8FA',\n '#EFF2F5',\n '#D2D6DF',\n '#C3C6CF',\n '#ADB0B6',\n '#666A73',\n '#45494E',\n '#363A43',\n '#282C35'\n ];\n\n // Orange Palette\n const orange = [\n '#fcc870',\n '#ffa71a',\n '#fb8825',\n '#f6682f',\n '#db5a2c',\n '#bf4c28',\n '#a43b1c',\n '#892a10',\n '#f9e9c5'\n ];\n // Blue Palette\n const blueGreen = [\n '#ccf7f6',\n '#70e4e0',\n '#00d8d2',\n '#00acaf',\n '#007f8c',\n '#005e66',\n '#003c3f',\n '#002d2f',\n '#0d2223'\n ];\n // LightBlue Palette\n const teal = [\n '#ccfffe',\n '#94f7f4',\n '#00fff8',\n '#1de1e1',\n '#39c2c9',\n '#2e9a9d',\n '#227270',\n '#1a5957',\n '#133f3e'\n ];\n // Green Palette\n const green = [\n '#edfff7',\n '#d7ffef',\n '#c0ffe7',\n '#95f5d7',\n '#6aedc7',\n '#59c3a3',\n '#479980',\n '#34816a',\n '#206953'\n ];\n // Yellow Palette\n const yellow = [\n '#f9f2b3',\n '#fbe986',\n '#fce05a',\n '#fed72d',\n '#ffce00',\n '#fcc11c',\n '#f9b438',\n '#eda629',\n '#e09819'\n ];\n // Pink Palette\n const pink = [\n '#fdd1ea',\n '#fb9cd2',\n '#f866b9',\n '#fc40b6',\n '#ff1ab3',\n '#e3239d',\n '#c62c86',\n '#a62073',\n '#85135f'\n ];\n // Purple Palette\n const purple = [\n '#ddd6fc',\n '#bbb1f0',\n '#998ce3',\n '#8e6bc1',\n '#824a9e',\n '#77337f',\n '#6b1c60',\n '#591650',\n '#470f3f'\n ];\n // Red Palette\n const red = [\n '#ffd8d4',\n '#ffb5b0',\n '#ff938c',\n '#ff766c',\n '#ff584c',\n '#f04b42',\n '#e03d38',\n '#be2e29',\n '#9c1e19'\n ];\n\n const aloeGreen = [\n '#7bdcc0'\n ];\n\n return {\n colorSchemas: {\n britecharts,\n grey,\n orange,\n blueGreen,\n teal,\n green,\n yellow,\n pink,\n purple,\n red\n },\n colorSchemasHuman: {\n 'britecharts': 'Britecharts Default',\n 'grey': 'Britecharts Grey',\n 'orange': 'Orange',\n 'blueGreen': 'Blue',\n 'teal': 'Light Blue',\n 'green': 'Green',\n 'yellow': 'Yellow',\n 'pink': 'Pink',\n 'purple': 'Purple',\n 'red': 'Red'\n },\n singleColors: {\n aloeGreen\n },\n colorGradients: britechartGradients,\n colorGradientsHuman: {\n greenBlue: 'Green To Blue',\n orangePink: 'Orange to Pink',\n bluePurple: 'Blue to Purple'\n }\n };\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/charts/helpers/colors.js"],"sourceRoot":""}