diff --git a/dc.js b/dc.js index f82085ec4..b05e80358 100644 --- a/dc.js +++ b/dc.js @@ -681,6 +681,7 @@ dc.baseMixin = function (_chart) { var _keyAccessor = dc.pluck('key'); var _valueAccessor = dc.pluck('value'); var _label = dc.pluck('key'); + var _legendLabelAccessor = dc.pluck('key'); var _ordering = dc.pluck('key'); var _orderSort; @@ -1544,6 +1545,27 @@ dc.baseMixin = function (_chart) { return _chart; }; + + /** + #### .legendLabelAccessor([legendLabelAccessorFunction]) + Set or get the legend label accessor function. The legend label accessor function is used to retrieve the + value from the legend label for the crossfilter group. + ```js + // default legenLabel accessor + chart.legendLabelAccessor(function(d) { return d.key; }); + // custom legen label accessor for a multi-value crossfilter reduction + chart.legendLabelAccessor(function(p) { return "Custom Legend:" + p.key; }); + ``` + + **/ + _chart.legendLabelAccessor = function (_) { + if (!arguments.length) { + return _legendLabelAccessor; + } + _legendLabelAccessor = _; + return _chart; + }; + /** #### .label([labelFunction]) Set or get the label function. The chart class will use this function to render labels for each @@ -3746,6 +3768,7 @@ dc.pieChart = function (parent, chartGroup) { var _chart = dc.capMixin(dc.colorMixin(dc.baseMixin({}))); _chart.colorAccessor(_chart.cappedKeyAccessor); + _chart.legendLabelAccessor(_chart.cappedKeyAccessor); _chart.title(function (d) { return _chart.cappedKeyAccessor(d) + ': ' + _chart.cappedValueAccessor(d); @@ -4123,7 +4146,7 @@ dc.pieChart = function (parent, chartGroup) { _chart.legendables = function () { return _chart.data().map(function (d, i) { - var legendable = {name: d.key, data: d.value, others: d.others, chart:_chart}; + var legendable = {name: _chart.legendLabelAccessor().call(this, d, i), data: d.value, others: d.others, chart:_chart}; legendable.color = _chart.getColor(d, i); return legendable; }); diff --git a/dc.min.js b/dc.min.js index a45db02f9..22b1b9f6d 100644 --- a/dc.min.js +++ b/dc.min.js @@ -1,4 +1,4 @@ -!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=c.pluck("key"),y=!1,z=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},A=!0,B=750,C=c.printers.filters,D=["dimension","group"],E=c.constants.DEFAULT_CHART_GROUP,F=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),G=[],H=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},I=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(I=a.functor(b),d.expireCache(),d):I.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(x=a,m=b.quicksort.by(x),d.expireCache(),d):x},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(x)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),E=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(C=a,d):C},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(C(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(B=a,d):B},d._mandatoryAttributes=function(a){return arguments.length?(D=a,d):D},d.render=function(){F.preRender(d),D&&D.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){F.renderlet(d),a&&F[a](d)}):(F.renderlet(d),a&&F[a](d))},d.redraw=function(){F.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&F.filtered(d,a)},d._invokeZoomedListener=function(){F.zoomed(d)};var J=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(J=a,d):J},d.hasFilter=function(a){return J(G,a)};var K=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(K=a,d):K};var L=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(M=a,d):M},d.replaceFilter=function(a){G=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?K(G,a):L(G,a)}):null===a?G=M(G):d.hasFilter(a)?K(G,a):L(G,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):G.length>0?G[0]:null},d.filters=function(){return G},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(H=a,d):H},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.label=function(a){return arguments.length?(w=a,y=!0,d):w},d.renderLabel=function(a){return arguments.length?(y=a,d):y},d.title=function(a){return arguments.length?(z=a,d):z},d.renderTitle=function(a){return arguments.length?(A=a,d):A},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(E=a,d):E},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return F.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b),isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){ -O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:a.key,data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){ -var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); +!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a=b[0][0]&&c=b[0][1]&&do?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=c.pluck("key"),y=c.pluck("key"),z=!1,A=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},B=!0,C=750,D=c.printers.filters,E=["dimension","group"],F=c.constants.DEFAULT_CHART_GROUP,G=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),H=[],I=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c=d&&d>=a)return!0}return!1}),b},J=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(J=a.functor(b),d.expireCache(),d):J.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(y=a,m=b.quicksort.by(y),d.expireCache(),d):y},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(y)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),F=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(D=a,d):D},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(D(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(C=a,d):C},d._mandatoryAttributes=function(a){return arguments.length?(E=a,d):E},d.render=function(){G.preRender(d),E&&E.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){G.renderlet(d),a&&G[a](d)}):(G.renderlet(d),a&&G[a](d))},d.redraw=function(){G.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&G.filtered(d,a)},d._invokeZoomedListener=function(){G.zoomed(d)};var K=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(K=a,d):K},d.hasFilter=function(a){return K(H,a)};var L=function(a,b){for(var c=0;c=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(M=a,d):M};var N=function(a){return[]};return d.resetFilterHandler=function(a){return arguments.length?(N=a,d):N},d.replaceFilter=function(a){H=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?L(H,a):M(H,a)}):null===a?H=N(H):d.hasFilter(a)?L(H,a):M(H,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):H.length>0?H[0]:null},d.filters=function(){return H},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(I=a,d):I},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.legendLabelAccessor=function(a){return arguments.length?(x=a,d):x},d.label=function(a){return arguments.length?(w=a,z=!0,d):w},d.renderLabel=function(a){return arguments.length?(z=a,d):z},d.title=function(a){return arguments.length?(A=a,d):A},d.renderTitle=function(a){return arguments.length?(B=a,d):B},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(F=a,d):F},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return G.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],ba,b._useOuterPadding()?aa:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,aa=.5,ba=0,ca=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(ca=a,b):ca},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),ca&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=ca?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=ca?b.width()-P:P,d=ca?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(ba=a,b):ba},b._outerRangeBandPadding=function(a){return arguments.length?(aa=a,b):aa},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(d===1/0)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b), +isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.legendLabelAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:O.legendLabelAccessor().call(this,a,b),data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(i===1/0||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"

"+l.keyAccessor()(a)+"

"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-(1/0)||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){ +return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}(); //# sourceMappingURL=dc.min.js.map \ No newline at end of file diff --git a/dc.min.js.map b/dc.min.js.map index aa1ac28f4..395e27c71 100644 --- a/dc.min.js.map +++ b/dc.min.js.map @@ -1 +1 @@ -{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"CAkBA,WAAc,QAASA,GAAIC,EAAIC,GAC/B,YAuBA,IAAIC,IACAC,QAAS,YACTC,WACIC,YAAa,WACbC,kBAAmB,QACnBC,YAAa,QACbC,iBAAkB,aAClBC,eAAgB,WAChBC,gBAAiB,YACjBC,iBAAkB,kBAClBC,oBAAqB,0BACrBC,YAAa,GACbC,kBAAmB,OAEvBC,WAAY,KAGhBb,GAAGc,cAAgB,WAIf,QAASC,GAAqBC,GAS1B,MARKA,KACDA,EAAQhB,EAAGE,UAAUQ,qBAGpBO,EAAUD,KACXC,EAAUD,OAGPA,EAXX,GAAIC,KAcJ,QACIC,IAAK,SAAUC,GACX,IAAK,GAAIC,KAAKH,GACV,GAAIA,EAAUG,GAAGC,QAAQF,IAAU,EAC/B,OAAO,CAGf,QAAO,GAGXG,SAAU,SAAUH,EAAOH,GACvBA,EAAQD,EAAqBC,GAC7BC,EAAUD,GAAOO,KAAKJ,IAG1BK,WAAY,SAAUL,EAAOH,GACzBA,EAAQD,EAAqBC,EAC7B,KAAK,GAAIS,GAAI,EAAGA,EAAIR,EAAUD,GAAOU,OAAQD,IACzC,GAAIR,EAAUD,GAAOS,GAAGE,eAAiBR,EAAMQ,aAAc,CACzDV,EAAUD,GAAOY,OAAOH,EAAG,EAC3B,SAKZI,MAAO,SAAUb,GACTA,QACOC,GAAUD,GAEjBC,MAIRa,KAAM,SAAUd,GAEZ,MADAA,GAAQD,EAAqBC,GACtBC,EAAUD,QAO7BhB,EAAG+B,cAAgB,SAAUZ,EAAOH,GAChChB,EAAGc,cAAcQ,SAASH,EAAOH,IAGrChB,EAAGgC,gBAAkB,SAAUb,EAAOH,GAClChB,EAAGc,cAAcU,WAAWL,EAAOH,IAGvChB,EAAGiC,SAAW,SAAUd,GACpB,MAAOnB,GAAGc,cAAcI,IAAIC,IAGhCnB,EAAGkC,oBAAsB,SAAUlB,GAC/BhB,EAAGc,cAAce,MAAMb,IAY3BhB,EAAGmC,UAAY,SAAUnB,GAErB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EACjCW,EAAOX,GAAGU,aASlBnC,EAAGqC,WAAa,SAAUrB,GAEtB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EAC7BW,EAAOX,GAAGa,OACVF,EAAOX,GAAGa,SAUtBtC,EAAGuC,UAAY,SAAUvB,GAErB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EACjCW,EAAOX,GAAGe,QAGQ,QAAlBxC,EAAGa,YACHb,EAAGa,WAAWG,IAWtBhB,EAAGyC,UAAY,SAAUzB,GAErB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EACjCW,EAAOX,GAAGiB,QAGQ,QAAlB1C,EAAGa,YACHb,EAAGa,WAAWG,IAStBhB,EAAG2C,oBAAqB,EAExB3C,EAAG4C,WAAa,SAAUC,EAAYC,EAAUC,GAC5C,GAAgB,GAAZD,GAA8BE,SAAbF,GAA0B9C,EAAG2C,mBAC9C,MAAOE,EAGX,IAAII,GAAIJ,EACHD,aACAE,SAASA,EAMd,OAJyB,kBAAf,IACNC,EAASE,GAGNA,GAGXjD,EAAGkD,SAcHlD,EAAGkD,MAAMC,SAAW,SAAUF,EAAG7B,GAC7B,MAAOgC,MAAKC,IAAIjC,EAAI6B,IAgBxBjD,EAAGkD,MAAMI,QAAU,SAAUL,EAAG7B,EAAGmC,GAC/B,MAAOA,IAoBXvD,EAAGkD,MAAMM,MACTxD,EAAGkD,MAAMM,GAAGC,UAAY,SAAUA,GAC9B,GAAIC,GAAK,SAAUT,EAAG7B,GAClB,GAAIuC,GAAIP,KAAKC,KAAKjC,EAAI6B,GAAKS,EAAGE,WAC9B,OAAI5D,GAAG6D,MAAMC,aAAaH,EAAIP,KAAKW,MAAMJ,IAC9BP,KAAKW,MAAMJ,GAEXP,KAAKY,KAAKL,GAIzB,OADAD,GAAGE,WAAaH,EACTC,GAGX1D,EAAGiE,SACHjE,EAAGiE,MAAMF,MAAQ,SAAUG,GACvB,MAAOd,MAAKW,MAAMG,IAEtBlE,EAAGiE,MAAMD,KAAO,SAAUE,GACtB,MAAOd,MAAKY,KAAKE,IAErBlE,EAAGiE,MAAMA,MAAQ,SAAUC,GACvB,MAAOd,MAAKa,MAAMC,IAGtBlE,EAAGmE,SAAW,SAAUC,EAAKC,EAAcC,GACvC,GAAIC,GAAmBH,EAAIC,EAC3BD,GAAI,IAAMC,GAAgBE,EAC1BH,EAAIC,GAAgBC,GAGxBtE,EAAGwE,UAAY,SAAUC,GACrB,MAAKC,WAAUhD,QAGf1B,EAAGa,WAAa4D,EACTzE,GAHIA,EAAGa,YAMlBb,EAAG2E,gBAAkB,SAAUC,GAC3B,MAAOA,aAAaC,SAAUD,EAAEE,aAAc,GAGlD9E,EAAG+E,UAEH/E,EAAG+E,OAAOC,UAAY,SAAUC,GAC5B,GAAIC,GAAOD,GAAO,2BAElBE,MAAKC,QAAUF,EAEfC,KAAKE,SAAW,WACZ,MAAOH,KAIflF,EAAG+E,OAAOO,sBAAwB,WAC9BtF,EAAG+E,OAAOC,UAAUO,MAAMJ,KAAMT,YAGpC1E,EAAGwF,WAAa1F,EAAG2F,KAAKC,OAAO,YAE/B1F,EAAG2F,YAEH3F,EAAG2F,SAASC,QAAU,SAAUA,GAG5B,IAAK,GAFD3C,GAAI,GAECxB,EAAI,EAAGA,EAAImE,EAAQlE,SAAUD,EAC9BA,EAAI,IACJwB,GAAK,MAETA,GAAKjD,EAAG2F,SAASE,OAAOD,EAAQnE,GAGpC,OAAOwB,IAGXjD,EAAG2F,SAASE,OAAS,SAAUA,GAC3B,GAAI5C,GAAI,EAcR,OAZsB,mBAAX4C,IAAqC,OAAXA,IAC7BA,YAAkBC,OACdD,EAAOnE,QAAU,EACjBuB,EAAI,IAAMjD,EAAG6D,MAAMkC,iBAAiBF,EAAO,IAAM,OAAS7F,EAAG6D,MAAMkC,iBAAiBF,EAAO,IAAM,IAC1FA,EAAOnE,QAAU,IACxBuB,EAAIjD,EAAG6D,MAAMkC,iBAAiBF,EAAO,KAGzC5C,EAAIjD,EAAG6D,MAAMkC,iBAAiBF,IAI/B5C,GAGXjD,EAAGgG,MAAQ,SAAU9B,EAAG+B,GACpB,MAAKA,GAGE,SAAUtC,EAAGlC,GAAK,MAAOwE,GAAEC,KAAKvC,EAAGA,EAAEO,GAAIzC,IAFrC,SAAUkC,GAAK,MAAOA,GAAEO,KAKvClE,EAAG6D,SAEH7D,EAAG6D,MAAMkC,iBAAmB,SAAUF,GAClC,GAAI5C,GAAI,GAAK4C,CAYb,OAVIA,aAAkBM,MAClBlD,EAAIjD,EAAGwF,WAAWK,GACQ,gBAAb,GACb5C,EAAI4C,EACG7F,EAAG6D,MAAMuC,QAAQP,GACxB5C,EAAIjD,EAAG6D,MAAMkC,iBAAiBM,QAAQR,GAC/B7F,EAAG6D,MAAMyC,UAAUT,KAC1B5C,EAAIG,KAAKa,MAAM4B,IAGZ5C,GAEXjD,EAAG6D,MAAMkC,iBAAiBM,QAAUvG,EAAG4F,OAAO,OAI9C1F,EAAG6D,MAAM0C,IAAM,SAAUC,EAAGC,GAKxB,GAJiB,gBAANA,KACPA,EAAIA,EAAEC,QAAQ,IAAK,KAGnBF,YAAaL,MAAM,CACF,gBAANM,KACPA,GAAKA,EAET,IAAI9C,GAAI,GAAIwC,KAGZ,OAFAxC,GAAEgD,QAAQH,EAAEI,WACZjD,EAAEkD,QAAQL,EAAEM,UAAYL,GACjB9C,EACJ,GAAiB,gBAAN8C,GAAgB,CAC9B,GAAIM,IAAeN,EAAI,GACvB,OAAOD,GAAI,EAAIA,GAAK,EAAIO,GAAcP,GAAK,EAAIO,GAE/C,MAAOP,GAAIC,GAInBzG,EAAG6D,MAAMmD,SAAW,SAAUR,EAAGC,GAK7B,GAJiB,gBAANA,KACPA,EAAIA,EAAEC,QAAQ,IAAK,KAGnBF,YAAaL,MAAM,CACF,gBAANM,KACPA,GAAKA,EAET,IAAI9C,GAAI,GAAIwC,KAGZ,OAFAxC,GAAEgD,QAAQH,EAAEI,WACZjD,EAAEkD,QAAQL,EAAEM,UAAYL,GACjB9C,EACJ,GAAiB,gBAAN8C,GAAgB,CAC9B,GAAIM,IAAeN,EAAI,GACvB,OAAW,GAAJD,EAAQA,GAAK,EAAIO,GAAcP,GAAK,EAAIO,GAE/C,MAAOP,GAAIC,GAInBzG,EAAG6D,MAAMoD,SAAW,SAAU/C,GAC1B,MAAOA,MAAOA,GAGlBlE,EAAG6D,MAAMuC,QAAU,SAAUlC,GACzB,MAAOA,MAAOA,GAAKA,KAAW,EAAJA,IAG9BlE,EAAG6D,MAAMyC,UAAY,SAAUpC,GAC3B,MAAOA,MAAOA,GAAKA,KAAW,EAAJA,IAG9BlE,EAAG6D,MAAMC,aAAe,SAAUI,GAC9B,OAAQlE,EAAG6D,MAAMoD,SAAS/C,IAAOA,EAAIlE,EAAGE,UAAUU,mBAAqBsD,GAAKlE,EAAGE,UAAUU,mBAG7FZ,EAAG6D,MAAMqD,MAAQ,SAAUC,EAAKC,EAAKC,GACjC,MAAaD,GAAND,EAAYC,EAAOD,EAAME,EAAMA,EAAMF,EAGhD,IAAIG,GAAa,CAulQjB,OAtlQAtH,GAAG6D,MAAM0D,SAAW,WAChB,QAASD,GAGbtH,EAAG6D,MAAM2D,SAAW,SAAUC,GAC1B,MAAOA,GAAKC,cAAchB,QAAQ,QAAS,KAAKA,QAAQ,SAAU,KAGtE1G,EAAG6D,MAAM8D,eAAiB,SAAUC,EAAQC,EAAUC,GAClDA,EAAMA,GAAOD,CACb,IAAIE,GAAUH,EAAOI,OAAOH,EAI5B,OAHIE,GAAQE,UACRF,EAAUH,EAAOM,OAAOJ,IAErBC,GAGX/H,EAAG6D,MAAMsE,WAAa,SAAUjE,GAAK,MAAOlE,GAAG6D,MAAMoD,UAAU/C,IAAMA,EAAI,GAEzElE,EAAGoI,UAEHpI,EAAGoI,OAAOC,gBAAiB,EAE3BrI,EAAGoI,OAAOE,KAAO,SAAUrD,GASvB,MARIsD,WACIA,QAAQD,KACRC,QAAQD,KAAKrD,GACNsD,QAAQC,KACfD,QAAQC,IAAIvD,IAIbjF,EAAGoI,QAGdpI,EAAGoI,OAAOK,MAAQ,SAAUxD,GASxB,MARIjF,GAAGoI,OAAOC,gBAAkBE,UACxBA,QAAQE,MACRF,QAAQE,MAAMxD,GACPsD,QAAQC,KACfD,QAAQC,IAAIvD,IAIbjF,EAAGoI,QAGdpI,EAAGoI,OAAOM,UAAY,SAAUC,EAAI1D,GAGhC,QAAS2D,KAKL,MAJKC,KACD7I,EAAGoI,OAAOE,KAAKrD,GACf4D,GAAS,GAENF,EAAGpD,MAAMJ,KAAMT,WAN1B,GAAImE,IAAS,CAQb,OAAOD,IAGX5I,EAAG8I,QACCC,QAAS,MAqBb/I,EAAG8I,OAAOE,QAAU,SAAUC,EAASC,GACnC,MAAKA,IAKLlJ,EAAG8I,OAAOC,QAAUE,MAEpBE,YAAW,WACHF,IAAYjJ,EAAG8I,OAAOC,SACtBE,KAELC,QAVCD,MAaRjJ,EAAG4F,WAoBH5F,EAAG4F,QAAQwD,aAAe,SAAUC,EAAKC,GACrC,GAAIC,GAAQ,GAAIzD,OAAMuD,EAAKC,EAK3B,OAJAC,GAAMC,WAAa,SAAUC,GACzB,MAAOA,IAAStE,KAAK,IAAMsE,EAAQtE,KAAK,IAGrCoE,GASXvJ,EAAG4F,QAAQ8D,qBAAuB,SAAUC,GACxC,GAAc,OAAVA,EAAkB,MAAO,KAE7B,IAAI9D,GAAS8D,CAMb,OALA9D,GAAO2D,WAAa,SAAUC,GAC1B,MAAOA,GAAM/H,QAAU+H,EAAM/H,SAAWmE,EAAOnE,QACxC+H,EAAM,KAAO5D,EAAO,IAAM4D,EAAM,KAAO5D,EAAO,IAGlDA,GAgBX7F,EAAG4F,QAAQgE,2BAA6B,SAAUD,GAC9C,GAAc,OAAVA,EAAkB,MAAO,KAE7B,IACIE,GADAhE,EAAS8D,CA8Bb,OA1BIE,GADAhE,EAAO,YAAcC,SAEhB1C,KAAKgE,IAAIuC,EAAM,GAAG,GAAIA,EAAM,GAAG,IAAKvG,KAAKgE,IAAIuC,EAAM,GAAG,GAAIA,EAAM,GAAG,MACnEvG,KAAKiE,IAAIsC,EAAM,GAAG,GAAIA,EAAM,GAAG,IAAKvG,KAAKiE,IAAIsC,EAAM,GAAG,GAAIA,EAAM,GAAG,QAGrDA,EAAM,KAAKG,EAAAA,KAAYH,EAAM,GAAIG,EAAAA,IAGxDjE,EAAO2D,WAAa,SAAUC,GAC1B,GAAIM,GAAGC,CAEP,IAAIP,YAAiB3D,OAAO,CACxB,GAAqB,IAAjB2D,EAAM/H,OACN,OAAO,CAEXqI,GAAIN,EAAM,GACVO,EAAIP,EAAM,OAEVM,GAAIN,EACJO,EAAIH,EAAe,GAAG,EAG1B,OAAOE,IAAKF,EAAe,GAAG,IAAME,EAAIF,EAAe,GAAG,IACnDG,GAAKH,EAAe,GAAG,IAAMG,EAAIH,EAAe,GAAG,IAGvDhE,GASX7F,EAAGiK,UAAY,SAAUC,GAyWrB,QAASC,KAIL,MAHAC,GAAOF,EAAOG,OAAOnC,OAAO,OACvBoC,KAAK,QAASJ,EAAOK,SACrBD,KAAK,SAAUJ,EAAOM,UAuE/B,QAASC,GAA4BC,GACjC,IAAKR,EAAOQ,KAAOR,EAAOQ,KACtB,KAAM,IAAI1K,GAAG+E,OAAOO,sBAAsB,6BAA+BoF,EAC/B,yBAA2BR,EAAOvI,aAAe,KA4PnG,QAASgJ,KACL,GAAIT,EAAOU,aAAeV,EAAOU,YAAY/E,OAAQ,CACjD,GAAIgF,GAAKC,EAAeZ,EAAOU,YAAaG,EAC5CA,GAAWF,EAAKA,EAAKE,GAprB7Bb,EAAOpF,WAAa9E,EAAG6D,MAAM0D,UAE7B,IAAIyD,GACAC,EAEAC,EACAC,EACAf,EAqBAgB,EA0BAC,EA7CAC,EAAY,IACZC,EAAgB,SAAUxD,GAC1B,GAAIwC,GAAQxC,GAAWA,EAAQyD,uBAAyBzD,EAAQyD,wBAAwBjB,KACxF,OAAQA,IAASA,EAAQe,EAAaf,EAAQe,GAE9CG,EAASF,EAETG,EAAa,IACbC,EAAiB,SAAU5D,GAC3B,GAAIyC,GAASzC,GAAWA,EAAQyD,uBAAyBzD,EAAQyD,wBAAwBhB,MACzF,OAAQA,IAAUA,EAASkB,EAAclB,EAASkB,GAElDE,EAAUD,EAEVE,EAAe7L,EAAGgG,MAAM,OACxB8F,EAAiB9L,EAAGgG,MAAM,SAC1B+F,EAAS/L,EAAGgG,MAAM,OAElBgG,EAAYhM,EAAGgG,MAAM,OAGrBiG,GAAe,EAEfC,EAAS,SAAUvI,GACnB,MAAOuG,GAAOiC,cAAcxI,GAAK,KAAOuG,EAAOkC,gBAAgBzI,IAE/D0I,GAAe,EAEfC,EAAsB,IAEtBC,EAAiBvM,EAAG2F,SAASC,QAE7B4G,GAAwB,YAAa,SAErCC,EAAczM,EAAGE,UAAUQ,oBAE3BgM,EAAa5M,EAAG6M,SAChB,YACA,aACA,YACA,aACA,WACA,SACA,aAIA5B,KACAD,EAAiB,SAAUF,EAAWhF,GAkBtC,MAjBAgF,GAAU/E,OAAO,MAEM,IAAnBD,EAAQlE,OACRkJ,EAAU/E,OAAO,MAEjB+E,EAAUgC,eAAe,SAAUjJ,GAC/B,IAAK,GAAIlC,GAAI,EAAGA,EAAImE,EAAQlE,OAAQD,IAAK,CACrC,GAAIoE,GAASD,EAAQnE,EACrB,IAAIoE,EAAO2D,YAAc3D,EAAO2D,WAAW7F,GACvC,OAAO,CACJ,IAAcA,GAAVkC,GAAeA,GAAUlC,EAChC,OAAO,EAGf,OAAO,IAGRiC,GAGPiH,EAAQ,SAAU7L,GAClB,MAAOA,GAAM8L,MASjB5C,GAAOK,MAAQ,SAAUwC,GACrB,MAAKrI,WAAUhD,QAGf+J,EAAS3L,EAAGkN,QAAQD,GAAKxB,GAClBrB,GAHIuB,EAAON,EAAM8B,SA2B5B/C,EAAOM,OAAS,SAAU0C,GACtB,MAAKxI,WAAUhD,QAGfkK,EAAU9L,EAAGkN,QAAQE,GAAKvB,GACnBzB,GAHI0B,EAAQT,EAAM8B,SAY7B/C,EAAOiD,SAAW,SAAUJ,GACxB,MAAKrI,WAAUhD,QAGf4J,EAAYyB,EACL7C,GAHIoB,GAYfpB,EAAOkD,UAAY,SAAUL,GACzB,MAAKrI,WAAUhD,QAGfgK,EAAaqB,EACN7C,GAHIwB,GAefxB,EAAOU,UAAY,SAAUjH,GACzB,MAAKe,WAAUhD,QAGfsJ,EAAarH,EACbuG,EAAOmD,cACAnD,GAJIc,GAkBfd,EAAOoD,KAAO,SAAU3J,GACpB,MAAKe,WAAUhD,QAGfmL,EAAQ/M,EAAGkN,QAAQrJ,GACnBuG,EAAOmD,cACAnD,GAJI2C,EAAM3G,KAAKgE,EAAQe,IAkBlCf,EAAOlJ,MAAQ,SAAUuM,EAAG9F,GACxB,MAAK/C,WAAUhD,QAGfuJ,EAASsC,EACTrD,EAAOsD,WAAa/F,EACpByC,EAAOmD,cACAnD,GALIe,GAYff,EAAOuD,SAAW,SAAU7I,GACxB,MAAKF,WAAUhD,QAGfsK,EAAYpH,EACZwG,EAAarL,EAAY2N,UAAUC,GAAG3B,GACtC9B,EAAOmD,cACAnD,GALI8B,GAQf9B,EAAO0D,sBAAwB,SAAUN,GACrC,GAAIO,GAAWP,EAAKQ,MAAM,EAE1B,OAAID,GAASnM,QAAU,EACZmM,GAGNzC,IACDA,EAAarL,EAAY2N,UAAUC,GAAG3B,IAGnCZ,EAAWyC,EAAU,EAAGA,EAASnM,UAQ5CwI,EAAO/H,UAAY,WACf,MAAO+H,GAAOrE,OAAO,OAczBqE,EAAOlC,OAAS,SAAU/E,GACtB,MAAOkI,GAAMnD,OAAO/E,IAcxBiH,EAAO6D,UAAY,SAAU9K,GACzB,MAAOkI,GAAQA,EAAM4C,UAAU9K,GAAK,MAWxCiH,EAAO8D,OAAS,SAAUtD,EAAGuD,GACzB,MAAKvJ,WAAUhD,QAGX1B,EAAG2E,gBAAgB+F,IACnBQ,EAAUR,EAAEsD,SACZ7C,EAAQT,EAAEL,SAEVa,EAAUR,EACVS,EAAQrL,EAAGkI,OAAOkD,GAClBC,EAAM+C,QAAQlO,EAAGE,UAAUC,aAAa,GACxCH,EAAG+B,cAAcmI,EAAQ+D,IAE7BxB,EAAcwB,EACP/D,GAZIgB,GAoBfhB,EAAOvI,WAAa,WAChB,GAAI+I,GAAIR,EAAO8D,QACf,OAAItD,IAAKA,EAAEyD,GACAzD,EAAEyD,GAETzD,GAAKA,EAAEhE,QACAgE,EAAEhE,QAAQ,IAAK,IAEnB,WAAawD,EAAOkE,WAW/BlE,EAAOG,KAAO,SAAU5D,GACpB,MAAK/B,WAAUhD,QAGfyJ,EAAQ1E,EACDyD,GAHIiB,GAafjB,EAAOmE,IAAM,SAAU5J,GACnB,MAAKC,WAAUhD,QAGf0I,EAAO3F,EACAyF,GAHIE,GAUfF,EAAOoE,SAAW,WAEd,MADApE,GAAOlC,OAAO,OAAOuG,SACdpE,KAkBXD,EAAOsE,cAAgB,SAAU/J,GAC7B,MAAKC,WAAUhD,QAGf6K,EAAiB9H,EACVyF,GAHIqC,GAmBfrC,EAAOuE,eAAiB,WAKpB,MAJItD,KACAjB,EAAO6D,UAAU,UAAUW,MAAM,UAAW,MAC5CxE,EAAO6D,UAAU,WAAWY,KAAKpC,EAAerC,EAAOtE,YAAY8I,MAAM,UAAW,OAEjFxE,GAGXA,EAAO0E,gBAAkB,WAKrB,MAJIzD,KACAjB,EAAO6D,UAAU,UAAUW,MAAM,UAAW,QAC5CxE,EAAO6D,UAAU,WAAWW,MAAM,UAAW,QAAQC,KAAKzE,EAAOrE,WAE9DqE,GASXA,EAAO2E,mBAAqB,SAAUlL,GAClC,MAAKe,WAAUhD,QAGf4K,EAAsB3I,EACfuG,GAHIoC,GAMfpC,EAAOsC,qBAAuB,SAAU/H,GACpC,MAAKC,WAAUhD,QAGf8K,EAAuB/H,EAChByF,GAHIsC,GAqBftC,EAAO1H,OAAS,WACZkK,EAAWoC,UAAU5E,GAEjBsC,GACAA,EAAqBuC,QAAQtE,EAGjC,IAAIuE,GAAS9E,EAAO+E,WAQpB,OANI5D,IACAA,EAAQ7I,SAGZ0H,EAAOgF,oBAAoB,cAEpBF,GAGX9E,EAAOgF,oBAAsB,SAAUC,GAC/BjF,EAAO2E,qBAAuB,GAAKzE,EACnCA,EAAKxH,aAAaE,SAASoH,EAAO2E,sBAC7BO,KAAK,MAAO,WACT1C,EAAsB,UAAExC,GACpBiF,GACAzC,EAAWyC,GAAOjF,MAI9BwC,EAAsB,UAAExC,GACpBiF,GACAzC,EAAWyC,GAAOjF,KAe9BA,EAAOxH,OAAS,WACZgK,EAAW2C,UAAUnF,EAErB,IAAI8E,GAAS9E,EAAOoF,WAQpB,OANIjE,IACAA,EAAQ7I,SAGZ0H,EAAOgF,oBAAoB,cAEpBF,GAGX9E,EAAOqF,YAAc,WACjBvP,EAAGyC,UAAUyH,EAAO+D,eAGxB/D,EAAOsF,YAAc,WACjBxP,EAAGuC,UAAU2H,EAAO+D,eAGxB/D,EAAOuF,wBAA0B,SAAUxJ,GAC7BjD,SAANiD,GACAyG,EAAWgD,SAASxF,EAAQjE,IAIpCiE,EAAOyF,sBAAwB,WAC3BjD,EAAWkD,OAAO1F,GAGtB,IAAI2F,GAAoB,SAAUjK,EAASC,GACvC,MAAe,QAAXA,GAAsC,mBAAb,GAClBD,EAAQlE,OAAS,EAErBkE,EAAQkK,KAAK,SAAU7J,GAC1B,MAAiBA,IAAVJ,GAAeA,GAAUI,IA2BxCiE,GAAO6F,iBAAmB,SAAUtL,GAChC,MAAKC,WAAUhD,QAGfmO,EAAoBpL,EACbyF,GAHI2F,GAYf3F,EAAO8F,UAAY,SAAUnK,GACzB,MAAOgK,GAAkB9E,EAAUlF,GAGvC,IAAIoK,GAAuB,SAAUrK,EAASC,GAC1C,IAAK,GAAIpE,GAAI,EAAGA,EAAImE,EAAQlE,OAAQD,IAChC,GAAImE,EAAQnE,IAAMoE,GAAUD,EAAQnE,IAAMoE,EAAQ,CAC9CD,EAAQhE,OAAOH,EAAG,EAClB,OAGR,MAAOmE,GA8BXsE,GAAOgG,oBAAsB,SAAUzL,GACnC,MAAKC,WAAUhD,QAGfuO,EAAuBxL,EAChByF,GAHI+F,EAMf,IAAIE,GAAoB,SAAUvK,EAASC,GAEvC,MADAD,GAAQrE,KAAKsE,GACND,EAyBXsE,GAAOkG,iBAAmB,SAAU3L,GAChC,MAAKC,WAAUhD,QAGfyO,EAAoB1L,EACbyF,GAHIiG,EAMf,IAAIE,GAAsB,SAAUzK,GAChC,SA4bJ,OApaAsE,GAAOoG,mBAAqB,SAAU7L,GAClC,MAAKC,WAAUhD,QAGf2O,EAAsB5L,EACfyF,GAHImG,GAafnG,EAAOqG,cAAgB,SAAU9L,GAC7BsG,KACAb,EAAOrE,OAAOpB,IAalByF,EAAOrE,OAAS,SAAUpB,GACtB,MAAKC,WAAUhD,QAGX+C,YAAaqB,QAASrB,EAAE,YAAcqB,SAAUrB,EAAE+E,WAClD/E,EAAE,GAAGsK,QAAQ,SAAUpL,GACfuG,EAAO8F,UAAUrM,GACjBsM,EAAqBlF,EAAUpH,GAE/BwM,EAAkBpF,EAAUpH,KAGvB,OAANc,EACPsG,EAAWsF,EAAoBtF,GAE3Bb,EAAO8F,UAAUvL,GACjBwL,EAAqBlF,EAAUtG,GAE/B0L,EAAkBpF,EAAUtG,GAGpCkG,IACAT,EAAOuF,wBAAwBhL,GAEjB,OAAV0G,GAAkBjB,EAAO8F,YACzB9F,EAAOuE,iBAEPvE,EAAO0E,kBAGJ1E,GA5BIa,EAASrJ,OAAS,EAAIqJ,EAAS,GAAK,MAsCnDb,EAAOtE,QAAU,WACb,MAAOmF,IAGXb,EAAOsG,kBAAoB,SAAUpP,GACjCtB,EAAGkI,OAAO5G,GAAG8M,QAAQlO,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkI,OAAO5G,GAAG8M,QAAQlO,EAAGE,UAAUI,kBAAkB,IAGxD4J,EAAOuG,eAAiB,SAAUrP,GAC9BtB,EAAGkI,OAAO5G,GAAG8M,QAAQlO,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkI,OAAO5G,GAAG8M,QAAQlO,EAAGE,UAAUI,kBAAkB,IAGxD4J,EAAOwG,eAAiB,SAAUtP,GAC9BtB,EAAGkI,OAAO5G,GAAG8M,QAAQlO,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkI,OAAO5G,GAAG8M,QAAQlO,EAAGE,UAAUI,kBAAkB,IAQxD4J,EAAOyG,QAAU,SAAUhN,GACvB,GAAIkC,GAASqE,EAAOiC,cAAcxI,EAClC3D,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAOA,GACdqE,EAAOqF,iBA0BfrF,EAAO0G,cAAgB,SAAUnM,GAC7B,MAAKC,WAAUhD,QAGfoJ,EAAiBrG,EACVyF,GAHIY,GAOfZ,EAAO+E,UAAY,WAEf,MAAO/E,IAGXA,EAAOoF,UAAY,WAEf,MAAOpF,IAGXA,EAAO2G,YAAc,WAEjB,UAGJ3G,EAAO4G,gBAAkB,aAIzB5G,EAAO6G,YAAc,aAIrB7G,EAAO8G,aAAe,aAItB9G,EAAO+G,mBAAqB,WAExB,OAAO,GAgBX/G,EAAOiC,YAAc,SAAU1H,GAC3B,MAAKC,WAAUhD,QAGfmK,EAAepH,EACRyF,GAHI2B,GAoBf3B,EAAOkC,cAAgB,SAAU3H,GAC7B,MAAKC,WAAUhD,QAGfoK,EAAiBrH,EACVyF,GAHI4B,GAoBf5B,EAAOgH,MAAQ,SAAUzM,GACrB,MAAKC,WAAUhD,QAGfqK,EAAStH,EACTwH,GAAe,EACR/B,GAJI6B,GAYf7B,EAAOiH,YAAc,SAAU1M,GAC3B,MAAKC,WAAUhD,QAGfuK,EAAexH,EACRyF,GAHI+B,GA2Bf/B,EAAOkH,MAAQ,SAAU3M,GACrB,MAAKC,WAAUhD,QAGfwK,EAASzH,EACFyF,GAHIgC,GAYfhC,EAAOmH,YAAc,SAAU5M,GAC3B,MAAKC,WAAUhD,QAGf2K,EAAe5H,EACRyF,GAHImC,GA2BfnC,EAAO1F,UAAYxE,EAAGoI,OAAOM,UAAU,SAAUjE,GAE7C,MADAyF,GAAOoH,GAAG,aAAetR,EAAG6D,MAAM0D,WAAY9C,GACvCyF,GACR,4GAOHA,EAAO+D,WAAa,SAAUxJ,GAC1B,MAAKC,WAAUhD,QAGf+K,EAAchI,EACPyF,GAHIuC,GAefvC,EAAOmD,YAAc,WAEjB,MAAOnD,IAaXA,EAAOqH,OAAS,SAAU/K,GACtB,MAAK9B,WAAUhD,QAGf2J,EAAU7E,EACV6E,EAAQzD,OAAOsC,GACRA,GAJImB,GAWfnB,EAAOkE,QAAU,WACb,MAAOlE,GAAOpF,YAalBoF,EAAOsH,QAAU,SAAUC,GACvB,IAAK,GAAI7M,KAAK6M,GACgB,kBAAfvH,GAAOtF,GACdsF,EAAOtF,GAAGsB,KAAKgE,EAAQuH,EAAK7M,IAE5B5E,EAAGoI,OAAOK,MAAM,mCAAqC7D,EAG7D,OAAOsF,IA8BXA,EAAOoH,GAAK,SAAUnC,EAAOuC,GAEzB,MADAhF,GAAW4E,GAAGnC,EAAOuC,GACdxH,GAGJA,GASXlK,EAAG2R,YAAc,SAAUzH,GACvB,GAAI0H,IAAWC,IAAK,GAAIC,MAAO,GAAIC,OAAQ,GAAIC,KAAM,GA+BrD,OAhBA9H,GAAO+H,QAAU,SAAUC,GACvB,MAAKxN,WAAUhD,QAGfkQ,EAAUM,EACHhI,GAHI0H,GAMf1H,EAAOiI,eAAiB,WACpB,MAAOjI,GAAOK,QAAUL,EAAO+H,UAAUD,KAAO9H,EAAO+H,UAAUH,OAGrE5H,EAAOkI,gBAAkB,WACrB,MAAOlI,GAAOM,SAAWN,EAAO+H,UAAUJ,IAAM3H,EAAO+H,UAAUF,QAG9D7H,GAUXlK,EAAGqS,WAAa,SAAUnI,GACtB,GAAIoI,GAAUxS,EAAGyS,MAAMC,cACnBC,GAAmB,EAEnBC,EAAiB,SAAU/O,GAAK,MAAOuG,GAAOiC,cAAcxI,GAiIhE,OA7GAuG,GAAOyI,OAAS,SAAUlO,GACtB,MAAKC,WAAUhD,QAIX4Q,EADA7N,YAAaqB,OACHhG,EAAGyS,MAAMK,WAAWrJ,MAAM9E,GAE1B3E,EAAGkN,QAAQvI,GAElByF,GAPIoI,GAefpI,EAAO2I,cAAgB,SAAUpM,GAC7B,MAAOyD,GAAOyI,OAAO7S,EAAGyS,MAAMjP,UAAUiG,MAAM9C,KAQlDyD,EAAO4I,aAAe,SAAUrM,GAC5B,MAAOyD,GAAOyI,OAAO7S,EAAGyS,MAAMQ,SACRxJ,MAAM9C,GACNuM,YAAYlT,EAAGmT,kBAezC/I,EAAOgJ,cAAgB,SAAUzO,GAC7B,MAAKC,WAAUhD,QAGfgR,EAAiBjO,EACjBgO,GAAmB,EACZvI,GAJIwI,GAQfxI,EAAOiJ,qBAAuB,WAC1B,MAAOV,IAYXvI,EAAOkJ,YAAc,SAAU3O,GAC3B,MAAKC,WAAUhD,QAGf4Q,EAAQ/O,OAAOkB,GACRyF,GAHIoI,EAAQ/O,UAYvB2G,EAAOmJ,qBAAuB,WAC1B,GAAIC,IAAaxT,EAAGsH,IAAI8C,EAAOoD,OAAQpD,EAAOgJ,iBAC7BpT,EAAGuH,IAAI6C,EAAOoD,OAAQpD,EAAOgJ,iBAE9C,OADAZ,GAAQ/O,OAAO+P,GACRpJ,GAQXA,EAAOqJ,SAAW,SAAU5P,EAAGlC,GAC3B,MAAO6Q,GAAQI,EAAexM,KAAKf,KAAMxB,EAAGlC,KAOhDyI,EAAOsJ,gBAAkB,SAAU/O,GAC/B,MAAKC,WAAUhD,QAGfwI,EAAOqJ,SAAW9O,EACXyF,GAHIA,EAAOqJ,UAMfrJ,GAWXlK,EAAGyT,oBAAsB,SAAUvJ,GAa/B,QAASwJ,KACLC,GAAa,EACTC,IACA1J,EAAOH,IAAIxG,OAAOsQ,EAAe3J,EAAOH,IAAIxG,SAAUuQ,IAClDC,GACA7J,EAAOH,IAAIxG,OAAOsQ,EAAe3J,EAAOH,IAAIxG,SAAUwQ,EAAYhK,IAAIxG,WAI9E,IAAIA,GAAS2G,EAAOH,IAAIxG,SACpByQ,EAAYhU,EAAG4F,QAAQwD,aAAa7F,EAAO,GAAIA,EAAO,GAE1D2G,GAAOqG,cAAcyD,GACrB9J,EAAO+J,UACP/J,EAAOxH,SAEHqR,IAAgBG,EAAYhK,EAAOrE,SAAUkO,EAAYlO,WACzD7F,EAAG8I,OAAOE,QAAQ,WACd+K,EAAYxD,cAAcyD,GAC1BD,EAAYrR,WAIpBwH,EAAOyF,wBAEP3P,EAAG8I,OAAOE,QAAQ,WACdkB,EAAOqF,eACRvP,EAAGE,UAAUS,aAEhBgT,GAAcO,EAAY3Q,EAAQuQ,GA2UtC,QAASK,GAAa5G,GACbrD,EAAOkK,aAMJlK,EAAOmK,YAAqC,IAAvBC,EAAG/Q,SAAS7B,SACjC4S,EAAG/Q,OAAO2G,EAAOqK,mBANjBrK,EAAOmK,YACPC,EAAG/Q,QAAQ2G,EAAOsK,WAAYtK,EAAOuK,YAU7C,IAAIC,GAAOJ,EAAG/Q,WACToR,GAAgBD,EAAK5E,KAAK,SAAU8E,EAAMnT,GAAK,MAAOmT,KAASD,EAAalT,OAC7EyI,EAAO+J,UAEXU,EAAeD,EAGXxK,EAAOkK,YACPE,EAAGO,YAAY,EAAG3K,EAAO4K,eAAgBC,GAC3B7K,EAAO8K,mBAAqBC,GAAyB,GAEnEX,EAAG/K,OAAO,EAAGW,EAAO4K,gBAGxBI,EAASA,EAAO3C,MAAMrI,EAAOH,KAE7BoL,EAAwB5H,GA6B5B,QAAS4H,GAAwB5H,GAC7B,GAAI6H,GAAY7H,EAAEQ,UAAU,KAAOsH,EAEnC,IAAIC,EAAyB,CACrBF,EAAUnN,UACVmN,EAAY7H,EAAEgI,OAAO,IAAK,gBACrBjL,KAAK,QAASkL,EAAkB,IAAMH,GACtC/K,KAAK,YAAa,aAAeJ,EAAO+H,UAAUD,KAAO,IAAM9H,EAAO+H,UAAUJ,IAAM,KAG/F,IAAI4D,GAAQP,EAAOQ,aAAeR,EAAOQ,aACZ,kBAAbpB,GAAGmB,MAAuBnB,EAAGmB,MAAMP,EAAOO,QAAQ,IAAMnB,EAAG/Q,SAEvEoS,EAAQP,EAAUrH,UAAU,QAC3BT,KAAKmI,GAGNG,EAAcD,EAAME,QACnB3N,OAAO,QACPoC,KAAK,KAAM,SAAU3G,GAClB,MAAO2Q,GAAG3Q,KAEb2G,KAAK,KAAMJ,EAAO4L,UAAY5L,EAAO+H,UAAUJ,KAC/CvH,KAAK,KAAM,SAAU3G,GAClB,MAAO2Q,GAAG3Q,KAEb2G,KAAK,KAAM,GACXA,KAAK,UAAW,EACrBtK,GAAG4C,WAAWgT,EAAa1L,EAAO2E,sBAC7BvE,KAAK,UAAW,GAGrBtK,EAAG4C,WAAW+S,EAAOzL,EAAO2E,sBACvBvE,KAAK,KAAM,SAAU3G,GAClB,MAAO2Q,GAAG3Q,KAEb2G,KAAK,KAAMJ,EAAO4L,UAAY5L,EAAO+H,UAAUJ,KAC/CvH,KAAK,KAAM,SAAU3G,GAClB,MAAO2Q,GAAG3Q,KAEb2G,KAAK,KAAM,GAGhBqL,EAAMI,OAAOxH,aAGb6G,GAAUrH,UAAU,QAAQQ,SAiWpC,QAASyH,KACL,MAAO9L,GAAO4L,UAAY5L,EAAO+H,UAAUJ,IAkG/C,QAASoE,KACL,MAAO/L,GAAOvI,aAAa+E,QAAQ,SAAU,KAAO,QAkBxD,QAASwP,KACL,GAAIC,GAAOnW,EAAG6D,MAAM8D,eAAeyO,EAAS,QAGxCjI,EAAK8H,IACLI,EAAgBrW,EAAG6D,MAAM8D,eAAewO,EAAM,IAAMhI,EAAI,YAAY7D,KAAK,KAAM6D,GAE/EmI,EAAyB,EAAfC,CAEdvW,GAAG6D,MAAM8D,eAAe0O,EAAe,QAClC/L,KAAK,QAASJ,EAAO4K,cAAgBwB,GACrChM,KAAK,SAAUJ,EAAOsM,cAAgBF,GACtChM,KAAK,YAAa,cAAgBiM,EAAe,MAAQA,EAAe,KA6BjF,QAASE,GAAWjU,GACZ0H,EAAOkK,cACPsC,GAAW,GAGfvC,EAAajK,EAAOqD,KACpBrD,EAAOyM,cAAczM,EAAOqD,KAE5BrD,EAAO0M,YAEH1M,EAAOmK,YAAcV,GAAcnR,IACnC0H,EAAO2M,YAAY3M,EAAOqD,MAG1BrD,EAAO4M,YAActU,IACrB0H,EAAO6M,YAAY7M,EAAOqD,KAG1B/K,EACA0H,EAAO8M,YAAY9M,EAAOqD,KAE1BrD,EAAO+M,YAAY/M,EAAOqD,KAIlC,QAAS2J,KACDC,EACAjN,EAAOkN,mBAEFC,GACLnN,EAAOoN,oBAiBf,QAASzD,GAAetK,EAAOgO,GAC3B,GAAIC,KAGJ,OAFAA,GAAiB,GAAK1X,EAAGuH,KAAKkC,EAAM,GAAIgO,EAAW,KACnDC,EAAiB,GAAK1X,EAAGsH,KAAKmC,EAAM,GAAIgO,EAAW,KAC5CC,EAsDX,QAAStD,GAAYuD,EAAQC,GACzB,MAAKD,IAAWC,EAGND,GAAWC,EAGM,IAAlBD,EAAO/V,QAAkC,IAAlBgW,EAAOhW,QAC5B,EAEF+V,EAAO,GAAGE,YAAcD,EAAO,GAAGC,WACvCF,EAAO,GAAGE,YAAcD,EAAO,GAAGC,WAC3B,GAEJ,GATI,GAHA,EAiCf,QAASC,GAAiBrO,GACtB,MAAOA,aAAiBzD,QAASyD,EAAM7H,OAAS,EAzmCpD,GAAI8T,GAAkB,YAClBqC,EAAmB,aACnBxC,EAAiB,WACjByC,EAAqB,eACrBC,EAAqB,eACrBC,EAA6B,EAEjC9N,GAASlK,EAAGqS,WAAWrS,EAAG2R,YAAY3R,EAAGiK,UAAUC,KAEnDA,EAAOyI,OAAO7S,EAAGyS,MAAM0F,cACvB/N,EAAOsC,uBAAuBjL,KAAK,IAkCnC,IAAI6U,GACA8B,EACAC,EAEA7D,EACAR,EAKAsE,EAEAzD,EAEA0D,EAIAC,EAKAC,EAMAC,EASAzE,EACA0E,EAjCAvD,EAASpV,EAAGuO,IAAIqK,OAAOC,OAAO,UAC9BC,EAAU5Y,EAAGkD,MAAMC,SACnB0V,EAAgB,EAChBC,GAAe,EAEfC,EAAqB,EAIrBC,EAASlZ,EAAGuO,IAAIqK,OAAOC,OAAO,QAC9BM,EAAgB,EAChBC,GAAe,EAEfC,EAAqB,EAErBC,EAAStZ,EAAGuO,IAAIgL,QAChB3C,GAAW,EAGX4C,GAA4B,EAC5BhE,GAA0B,EAE1B3B,GAAa,EAGb4F,GAAc,EAAGzP,EAAAA,GACjB8J,GAAmB,EAEnB4F,EAAQ1Z,EAAG2Z,SAASC,OAAOpI,GAAG,OAAQoC,GACtCiG,EAAY7Z,EAAG2Z,SAASC,OAAOpI,GAAG,OAAQ,MAC1C+F,GAAwB,EAKxBF,GAAiB,EACjBZ,EAAe,EAEftB,GAAyB,GACzBF,GAAoB,EAEpB6E,IAAiB,CAihCrB,OA/gCA1P,GAAO+J,QAAU,WACbuE,EAAaxV,QAYjBkH,EAAO2P,WAAa,SAAUpV,GAC1B,MAAKC,WAAUhD,QAGfqS,EAActP,EACdsP,EAAY+F,WAAW5P,GAChBA,GAJI6J,GAYf7J,EAAO6P,UAAY,SAAUtV,GACzB,MAAKC,WAAUhD,QAGf6X,EAAa9U,EACNyF,GAHIqP,GAUfrP,EAAO8P,gBAAkB,SAAUvT,GAC/B,MAAK/B,WAAUhD,QAGf6X,EAAW,GAAK9S,EAAI,EAAI,EACxBmN,EAAmBnN,EACZyD,GAJI0J,GAOf1J,EAAO+P,WAAa,SAAUrS,GAa1B,MAXIwO,GADWpT,SAAX4E,EACUsC,EAAOmE,MAEPzG,EAGdsQ,EAAK9B,EAAQlO,OAAO,KAEpBiQ,EAAcD,EAAGhQ,OAAO,KAAKoC,KAAK,QAAS,cACtCA,KAAK,YAAa,aAAeJ,EAAO+H,UAAUD,KAAO,KAAO9H,EAAO+H,UAAUJ,IAAM,KACvFvH,KAAK,YAAa,QAAU2L,IAAkB,KAE5CiC,GAUXhO,EAAOqD,EAAI,SAAU9I,GACjB,MAAKC,WAAUhD,QAGfwW,EAAKzT,EACEyF,GAHIgO,GAafhO,EAAOgQ,cAAgB,SAAUC,GAC7B,MAAKzV,WAAUhD,QAGfyV,EAAiBgD,EACVjQ,GAHIiN,GAUfjN,EAAOkQ,WAAa,SAAU3V,GAC1B,MAAKC,WAAUhD,QAGfyW,EAAc1T,EACPyF,GAHIiO,GAmBfjO,EAAOH,EAAI,SAAUtF,GACjB,MAAKC,WAAUhD,QAGf4S,EAAK7P,EACLqP,EAAmBQ,EAAG/Q,SACf2G,GAJIoK,GAOfpK,EAAOmQ,gBAAkB,WACrB,MAAOvG,IAmCX5J,EAAOoQ,OAAS,SAAU7V,GACtB,MAAKC,WAAUhD,QAGfkX,EAAUnU,EACHyF,GAHI0O,GAqBf1O,EAAOqQ,MAAQ,SAAU9V,GACrB,MAAKC,WAAUhD,QAGfwT,EAASzQ,EACFyF,GAHIgL,GAYfhL,EAAOmK,SAAW,SAAU5P,GACxB,MAAKC,WAAUhD,QAGfoX,EAAerU,EACRyF,GAHI4O,GAgBf5O,EAAOsQ,aAAe,SAAU/V,GAC5B,MAAKC,WAAUhD,QAGfmX,EAAgBpU,EACTyF,GAHI2O,GAWf3O,EAAOuQ,WAAa,WAChB,GAAmBzX,SAAfwV,EAA0B,CAC1B,GAAItV,GAAQgH,EAAOoQ,SAASpQ,EAAOH,IAAIxG,SAAS,GAAI2G,EAAOH,IAAIxG,SAAS,GAAI2G,EAAOH,IAAIxG,SAGnFiV,GADAtV,YAAiB4C,OACJ5C,EAAMxB,OAENwB,EAIrB,MAAOsV,IASXtO,EAAOwQ,cAAgB,SAAUjW,GAC7B,MAAKC,WAAUhD,QAGfkY,GAAiBnV,EACVyF,GAHI0P,IAYf1P,EAAOkK,UAAY,WACf,MAAOlK,GAAOoQ,WAAata,EAAGkD,MAAMI,SAGxC4G,EAAO8K,iBAAmB,WACtB,OAAO,GAGX9K,EAAOqK,gBAAkB,WACrB,GAAIoG,GAASzQ,EAAO0D,sBAAsB1D,EAAOoD,OACjD,OAAOqN,GAAOC,IAAI1Q,EAAOiC,gBAmC7BjC,EAAO2M,YAAc,SAAUtJ,GAC3B,GAAIsN,GAAStN,EAAEQ,UAAU,MAErB8M,GAAO5S,UACP4S,EAAStN,EAAErF,OAAO,KACboC,KAAK,QAAS,UACdA,KAAK,YAAa,aAAeJ,EAAO+H,UAAUD,KAAO,IAAM9H,EAAO4L,UAAY,KAG3F,IAAIgF,GAAWvN,EAAEQ,UAAU,QAAUgK,EACjC+C,GAAS7S,SAAWiC,EAAO6Q,eAC3BD,EAAWvN,EAAErF,OAAO,QACfoC,KAAK,YAAa,cAAgBJ,EAAO+H,UAAUD,KAAO9H,EAAO4K,cAAgB,GAAK,KAClF5K,EAAOM,SAAWuO,GAAsB,KAC5CzO,KAAK,QAASyN,GACdzN,KAAK,cAAe,UACpBqE,KAAKzE,EAAO6Q,eAEjB7Q,EAAO6Q,cAAgBD,EAASnM,SAAWzE,EAAO6Q,cAClDD,EAASnM,KAAKzE,EAAO6Q,cAGzB/a,EAAG4C,WAAWiY,EAAQ3Q,EAAO2E,sBACxB3I,KAAKgP,IAqDdhL,EAAO4L,QAAU,WACb,MAAQ5L,GAAOM,SAAWN,EAAO+H,UAAUF,QAG/C7H,EAAO4K,YAAc,WACjB,MAAO5K,GAAOiI,kBAQlBjI,EAAO6Q,WAAa,SAAUtW,EAAG6R,GAC7B,MAAK5R,WAAUhD,QAGf0W,EAAc3T,EACdyF,EAAO+H,UAAUF,QAAUgH,EAC3BA,EAAkC/V,SAAZsT,EAAyB0B,EAA6B1B,EAC5EpM,EAAO+H,UAAUF,QAAUgH,EACpB7O,GANIkO,GASflO,EAAOyM,cAAgB,SAAUpJ,GAC7B,GAAWvK,SAAPqV,GAAoBnO,EAAO4M,WAAY,CACvCuB,EAAKvY,EAAGyS,MAAMQ,QACd,IAAI3L,GAAM8C,EAAO8Q,YAAc,EAC3B3T,EAAM6C,EAAO+Q,YAAc,CAC/B5C,GAAG9U,QAAQ6D,EAAKC,IAAM6T,YAAYhR,EAAOsM,cAAe,IAG5D6B,EAAG9O,OAAOW,EAAOsM,cAAe,IAChCwC,EAASA,EAAOzG,MAAM8F,GAElBuB,IACAZ,EAAOL,OAAO,SAGlBzO,EAAOiR,kCAAkC5N,EAAG8K,EAAIW,IAGpD9O,EAAOkR,iBAAmB,SAAUC,EAAW1M,EAAM2M,EAAUC,GAC3DA,EAAiBA,GAAkBpC,CAEnC,IAAIqC,GAAWtR,EAAOqD,IAAIQ,UAAU,QAAU+J,EAAqB,IAAMuD,EAAY,SACrF,IAAIG,EAASvT,SAAW0G,EAAM,CAE1B,GAAI8M,GAAkBvR,EAAO+H,UAAUJ,IAAM3H,EAAOsM,cAAgB,CACpEgF,GAAWtR,EAAOqD,IAAIrF,OAAO,QACxBoC,KAAK,YAAa,aAAeiR,EAAiB,IAAME,EAAiB,YAAcH,EAAW,KAClGhR,KAAK,QAASwN,EAAqB,IAAMuD,EAAY,UACrD/Q,KAAK,cAAe,UACpBqE,KAAKA,GAEVA,GAAQ6M,EAAS7M,SAAWA,GAC5B6M,EAAS7M,KAAKA,IAItBzE,EAAOwR,cAAgB,SAAUL,EAAW3C,EAAMiD,GAC9C,GAAIC,GAAS1R,EAAOqD,IAAIQ,UAAU,KAAOsN,EACrCO,GAAO3T,UACP2T,EAAS1R,EAAOqD,IAAIrF,OAAO,KACtBoC,KAAK,QAAS,QAAU+Q,GACxB/Q,KAAK,YAAa,aAAeqR,EAAW,IAAMzR,EAAO+H,UAAUJ,IAAM,MAGlF7R,EAAG4C,WAAWgZ,EAAQ1R,EAAO2E,sBAAsB3I,KAAKwS,IAG5DxO,EAAO6M,YAAc,WACjB,GAAI8E,GAAejC,GAAkB1P,EAAOK,QAAUL,EAAO+H,UAAUH,MAAS5H,EAAO4R,SACvF5R,GAAOwR,cAAc,IAAK1C,EAAQ6C,EAClC,IAAIE,GAAgBnC,GAAkB1P,EAAOK,QAAU4O,EAAsBA,EACzEmC,EAAW1B,GAAiB,GAAK,GACrC1P,GAAOkR,iBAAiB,IAAKlR,EAAO8R,aAAcV,EAAUS,IAGhE7R,EAAOiR,kCAAoC,SAAU5N,EAAGgF,EAAOmG,GAC3D,GAAItD,GAAY7H,EAAEQ,UAAU,KAAO8J,EAEnC,IAAIyB,EAA2B,CAC3B,GAAI7D,GAAQiD,EAAKhD,aAAegD,EAAKhD,aAAenD,EAAMkD,MAAMiD,EAAKjD,QAAQ,GAEzEL,GAAUnN,UACVmN,EAAY7H,EAAEgI,OAAO,IAAK,gBACrBjL,KAAK,QAASkL,EAAkB,IAAMqC,GACtCvN,KAAK,YAAa,aAAeJ,EAAO+H,UAAUD,KAAO,IAAM9H,EAAO+H,UAAUJ,IAAM,KAG/F,IAAI8D,GAAQP,EAAUrH,UAAU,QAC3BT,KAAKmI,GAGNG,EAAcD,EAAME,QACnB3N,OAAO,QACPoC,KAAK,KAAM,GACXA,KAAK,KAAM,SAAU3G,GAClB,MAAO4O,GAAM5O,KAEhB2G,KAAK,KAAMJ,EAAO4K,eAClBxK,KAAK,KAAM,SAAU3G,GAClB,MAAO4O,GAAM5O,KAEhB2G,KAAK,UAAW,EACrBtK,GAAG4C,WAAWgT,EAAa1L,EAAO2E,sBAC7BvE,KAAK,UAAW,GAGrBtK,EAAG4C,WAAW+S,EAAOzL,EAAO2E,sBACvBvE,KAAK,KAAM,GACXA,KAAK,KAAM,SAAU3G,GAClB,MAAO4O,GAAM5O,KAEhB2G,KAAK,KAAMJ,EAAO4K,eAClBxK,KAAK,KAAM,SAAU3G,GAClB,MAAO4O,GAAM5O,KAIrBgS,EAAMI,OAAOxH,aAGb6G,GAAUrH,UAAU,QAAQQ,UAIpCrE,EAAO4R,QAAU,WACb,MAAO5R,GAAOwQ,gBAAkBxQ,EAAOK,QAAUL,EAAO+H,UAAUH,MAAQ5H,EAAO+H,UAAUD,MAS/F9H,EAAO8R,WAAa,SAAUvX,EAAG6R,GAC7B,MAAK5R,WAAUhD,QAGf4W,EAAc7T,EACdyF,EAAO+H,UAAUD,MAAQmH,EACzBA,EAAkCnW,SAAZsT,EAAyB0B,EAA6B1B,EAC5EpM,EAAO+H,UAAUD,MAAQmH,EAClBjP,GANIoO,GAcfpO,EAAOF,EAAI,SAAUvF,GACjB,MAAKC,WAAUhD,QAGf2W,EAAK5T,EACEyF,GAHImO,GAqBfnO,EAAO+R,MAAQ,SAAUjS,GACrB,MAAKtF,WAAUhD,QAGfsX,EAAShP,EACFE,GAHI8O,GAYf9O,EAAO4M,SAAW,SAAUrS,GACxB,MAAKC,WAAUhD,QAGfwX,EAAezU,EACRyF,GAHIgP,GAWfhP,EAAOgS,0BAA4B,SAAUzX,GACzC,MAAKC,WAAUhD,QAGf4X,EAA4B7U,EACrByF,GAHIoP,GAWfpP,EAAOiL,wBAA0B,SAAU1Q,GACvC,MAAKC,WAAUhD,QAGf4T,EAA0B7Q,EACnByF,GAHIoL,GAUfpL,EAAOsK,SAAW,WACd,GAAIpN,GAAMtH,EAAGsH,IAAI8C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAO8I,GAAOiC,cAAc/K,IAEhC,OAAOpB,GAAG6D,MAAMmD,SAASI,EAAKyR,IAOlC3O,EAAOuK,SAAW,WACd,GAAIpN,GAAMvH,EAAGuH,IAAI6C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAO8I,GAAOiC,cAAc/K,IAEhC,OAAOpB,GAAG6D,MAAM0C,IAAIc,EAAKwR,IAO7B3O,EAAO8Q,SAAW,WACd,GAAI5T,GAAMtH,EAAGsH,IAAI8C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAO8I,GAAOkC,gBAAgBhL,IAElC,OAAOpB,GAAG6D,MAAMmD,SAASI,EAAK6R,IAOlC/O,EAAO+Q,SAAW,WACd,GAAI5T,GAAMvH,EAAGuH,IAAI6C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAO8I,GAAOkC,gBAAgBhL,IAElC,OAAOpB,GAAG6D,MAAM0C,IAAIc,EAAK4R,IAa7B/O,EAAOiS,aAAe,SAAU1X,GAC5B,MAAKC,WAAUhD,QAGfuX,EAAgBxU,EACTyF,GAHI+O,GAMf/O,EAAOsM,YAAc,WACjB,MAAOtM,GAAOkI,mBAalBlI,EAAOjG,MAAQ,SAAUQ,GACrB,MAAKC,WAAUhD,QAGf6W,EAAS9T,EACFyF,GAHIqO,GAMfrO,EAAO6K,kBAAoB,SAAUtQ,GACjC,MAAKC,WAAUhD,QAGfqT,GAAoBtQ,EACbyF,GAHI6K,IAMf7K,EAAO+K,uBAAyB,SAAUxQ,GACtC,MAAKC,WAAUhD,QAGfuT,GAAyBxQ,EAClByF,GAHI+K,IAMfjV,EAAGmE,SAAS+F,EAAQ,SAAU,SAAUzF,GACpC,MAAKC,WAAUhD,QAIfwI,EAAOkS,QAAQ3X,GAEXA,EACAyF,EAAOmP,QAAQgD,OAAO5X,GAEtByF,EAAOmP,QAAQxX,QAGZqI,GAXIA,EAAOkS,YActBlS,EAAOmP,MAAQ,SAAU5U,GACrB,MAAKC,WAAUhD,QAGf0X,EAAS3U,EACFyF,GAHIkP,GAUflP,EAAO8M,YAAc,SAAUzJ,GAC3B,GAAImJ,EAAU,CACV0C,EAAO9H,GAAG,QAASpH,EAAOoS,WAC1BlD,EAAO9H,GAAG,aAAcpH,EAAOoN,mBAC/B8B,EAAO9H,GAAG,WAAY4F,EAEtB,IAAIqF,GAAShP,EAAErF,OAAO,KACjBoC,KAAK,QAAS,SACdA,KAAK,YAAa,aAAeJ,EAAO+H,UAAUD,KAAO,IAAM9H,EAAO+H,UAAUJ,IAAM,KACtF3L,KAAKkT,EAAOrP,EAAEG,EAAOH,KAC1BG,GAAOsS,UAAUD,GACjBrS,EAAOuS,eAAeF,GAElBrS,EAAO8F,aACP9F,EAAO+M,YAAY1J,KAK/BrD,EAAOuS,eAAiB,SAAUF,GAC9BA,EAAOxO,UAAU,WAAW7F,OAAO,QAAQoC,KAAK,IAAKJ,EAAOwS,mBAGhExS,EAAOsS,UAAY,SAAUD,GACzBA,EAAOxO,UAAU,QAAQzD,KAAK,SAAU0L,MAG5C9L,EAAOyS,YAAc,WACjB,GAAIN,GAASjD,EAAOiD,QAQpB,OAPInS,GAAOjG,UACPoY,EAAO,GAAKA,EAAOzB,IAAI1Q,EAAOjG,SAAS,GACvCoY,EAAO,GAAKA,EAAOzB,IAAI1Q,EAAOjG,SAAS,GAEvCiU,EAAGlQ,OAAO,UACL9B,KAAKkT,EAAOiD,OAAOA,KAErBA,GAGXnS,EAAO0S,aAAe,SAAUP,GAC5B,MAAOjD,GAAOnR,UAAYoU,GAAUA,EAAO,IAAMA,EAAO,IAG5DnS,EAAOoS,UAAY,WACf,GAAID,GAASnS,EAAOyS,aAIpB,IAFAzS,EAAO+M,YAAYiB,GAEfhO,EAAO0S,aAAaP,GACpBrc,EAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAO,MACdqE,EAAOqF,eACRvP,EAAGE,UAAUS,iBACb,CACH,GAAIkc,GAAe7c,EAAG4F,QAAQwD,aAAaiT,EAAO,GAAIA,EAAO,GAE7Drc,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOqG,cAAcsM,GACrB3S,EAAOqF,eACRvP,EAAGE,UAAUS,eAIxBuJ,EAAO+M,YAAc,SAAU1J,GAC3B,GAAImJ,EAAU,CACNxM,EAAOrE,UAAYqE,EAAOmP,QAAQpR,SAClCiC,EAAOmP,QAAQgD,OAAOnS,EAAOrE,SAGjC,IAAI0W,GAAShP,EAAEvF,OAAO,UACtBuU,GAAOrW,KAAKgE,EAAOmP,QAAQtP,EAAEG,EAAOH,MACpCG,EAAOsS,UAAUD,GAGrBrS,EAAO4S,sBAGX5S,EAAO4S,mBAAqB,aAK5B5S,EAAOwS,iBAAmB,SAAU/Y,GAChC,GAAIvC,KAAY,MAANuC,GAAYoG,EAAI3I,EAAI,EAAI,GAAI4I,EAAIgM,IAAgB,CAC1D,OAAO,IAAO,GAAMjM,EAAK,IAAMC,EAC3B,YAAc5I,EAAI,IAAO,IAAM2I,EAAK,KAAOC,EAAI,GAC/C,KAAO,EAAIA,EAAI,GACf,YAAc5I,EAAI,IAAO,GAAM2I,EAAK,IAAO,EAAIC,EAC/C,KACO,IAAMD,EAAK,KAAOC,EAAI,GAC7B,KAAO,EAAIA,EAAI,GACf,IAAO,IAAMD,EAAK,KAAOC,EAAI,GAC7B,KAAO,EAAIA,EAAI,IAcvBE,EAAO6S,YAAc,SAAUC,GAC3B,MAAKtY,WAAUhD,QAGf6U,EAAeyG,EACR9S,GAHIqM,GAqBfrM,EAAO+S,gBAAkB,aAEzB/S,EAAO+E,UAAY,WAYf,MAXA/E,GAAOoE,WAEPpE,EAAO+S,kBAEP/S,EAAO+P,aACP/D,IAEAO,GAAU,GAEVS,IAEOhN,GAGXA,EAAOoF,UAAY,WAMf,MALApF,GAAO+S,kBAEPxG,GAAU,GACVP,IAEOhM,GAqCXA,EAAOkN,iBAAmB,WACtBC,GAAwB,EACxBmC,EAAMzP,EAAEG,EAAOH,KACVmT,YAAY3D,GACZ4D,MAAMjT,EAAOK,QAASL,EAAOM,WAC7B1H,SAASoH,EAAO2E,sBACrB3E,EAAOG,OAAOnE,KAAKsT,IAGvBtP,EAAOoN,kBAAoB,WACvBpN,EAAOG,OAAOnE,KAAKyT,IA2BvBzP,EAAO5H,MAAQ,SAAUiH,GAEjBW,EAAOH,IAAIxG,OADXqU,EAAiBrO,GACCA,EAEAuK,GAGtB0F,EAAMzP,EAAEG,EAAOH,KACf2J,KAGJxJ,EAAOkT,UAAY,WACf,MAAOzJ,IAGXzJ,EAAO4P,WAAa,SAAUuD,GAC1B,MAAK3Y,WAAUhD,QAGf+W,EAAc4E,EACdnT,EAAOoH,GAAG,WAAY,SAAUnQ,GACvBA,EAAM0E,SAICqO,EAAY/S,EAAM0E,SAAU4S,EAAY5S,WAChD7F,EAAG8I,OAAOE,QAAQ,WACdyP,EAAYnW,MAAMnB,EAAM0E,YAL5B7F,EAAG8I,OAAOE,QAAQ,WACdyP,EAAY1O,IAAIxG,OAAOkV,EAAY4B,uBAQxCnQ,GAdIuO,GA4CfvO,EAAOoT,QAAU,SAAU7Y,GACvB,MAAKC,WAAUhD,QAGfgV,EAAWjS,EACJyF,GAHIwM,GAURxM,GAQXlK,EAAGud,WAAa,SAAUrT,GAEtB,QAASsT,GAAeC,EAAOC,GAC3B,GAAIC,GAAcF,EAAMG,UAAY1T,EAAOkC,eAa3C,OAZAqR,GAAMhW,KAAOoW,OAAOJ,EAAMhW,MAAQiW,GAClCD,EAAMK,OAASL,EAAMzc,MAAM8L,MAAM8N,IAAI,SAAUjX,EAAGlC,GAC9C,OACIsI,EAAGG,EAAOiC,cAAcxI,EAAGlC,GAC3BuI,EAAGyT,EAAMM,OAAS,KAAOJ,EAAYha,EAAGlC,GACxC6L,KAAM3J,EACN8Z,MAAOA,EAAMhW,KACbsW,OAAQN,EAAMM,UAItBN,EAAMK,OAASL,EAAMK,OAAOjY,OAAOmY,KAC5BP,EAAMK,OAWjB,QAASE,KACL,IAAK9T,EAAOH,IACR,MAAOjK,GAAGkN,SAAQ,EAEtB,IAAIiR,GAAU/T,EAAOH,IAAIxG,QACzB,OAAI2G,GAAOkK,YAGA,WACH,OAAO,GAGXlK,EAAOmK,WACA,WAAc,OAAO,GAEzB,SAAU2I,GAEb,MAAOA,GAAEjT,GAAKkU,EAAQ,IAAMjB,EAAEjT,GAAKkU,EAAQA,EAAQvc,OAAS,IAoEpE,QAASwc,GAAgBha,GACrB,GAAIzC,GAAI0c,EAAOvD,IAAI5a,EAAGgG,MAAM,SAAS3E,QAAQ6C,EAC7C,OAAOia,GAAO1c,GAoDlB,QAAS2c,KACL,GAAIC,GAAWnU,EAAOoD,OAAOsN,IAAI,SAAU6C,GAAS,MAAOA,GAAMK,QACjE,OAAOhY,OAAMwY,UAAUC,OAAOhZ,SAAU8Y,GAiE5C,QAASG,GAAWhY,GAChB,OAAQA,EAAEuX,OAvNd,GAAIU,GAAe3e,EAAG4e,OAAOC,QACxBb,OAAON,GAERW,KACAS,KAEAC,GAAiB,CAgQrB,OAzNA3U,GAAOyU,MAAQ,SAAU3d,EAAOyG,EAAMmW,GAClC,IAAKlZ,UAAUhD,OACX,MAAOyc,EAGPzZ,WAAUhD,QAAU,IACpBkc,EAAWnW,EAGf,IAAIgW,IAASzc,MAAMA,EASnB,OARoB,gBAATyG,KACPgW,EAAMhW,KAAOA,GAEO,kBAAbmW,KACPH,EAAMG,SAAWA,GAErBO,EAAO5c,KAAKkc,GAELvT,GAGXlK,EAAGmE,SAAS+F,EAAQ,QAAS,SAAUqD,EAAGrJ,EAAG+B,GACzC,MAAKvB,WAAUhD,QAGfyc,KACAS,KACA1U,EAAOyU,MAAMpR,EAAGrJ,GACZ+B,GACAiE,EAAOkC,cAAcnG,GAElBiE,EAAOe,OAAOsC,EAAGrJ,IARbgG,EAAOe,WAiBtBf,EAAO4U,cAAgB,SAAUra,GAC7B,MAAKC,WAAUhD,QAGfmd,EAAiBpa,EACVyF,GAHI2U,GAiBf3U,EAAO6U,UAAY,SAAUC,GACzB,GAAIvB,GAAQS,EAAgBc,EAI5B,OAHIvB,KACAA,EAAMM,QAAS,GAEZ7T,GASXA,EAAO+U,UAAY,SAAUD,GACzB,GAAIvB,GAAQS,EAAgBc,EAI5B,OAHIvB,KACAA,EAAMM,QAAS,GAEZ7T,GAGXA,EAAOgV,wBAA0B,SAAUC,GACvC,MAAOhB,GAAOgB,GAAOvB,UAAY1T,EAAOkC,iBAG5ClC,EAAO8Q,SAAW,WACd,GAAI5T,GAAMtH,EAAGsH,IAAIgX,IAAgB,SAAUpB,GACvC,MAAQA,GAAEhT,EAAIgT,EAAEoC,GAAKpC,EAAEoC,GAAOpC,EAAEhT,EAAIgT,EAAEoC,GAAMpC,EAAEoC,IAGlD,OAAOpf,GAAG6D,MAAMmD,SAASI,EAAK8C,EAAOiS,iBAIzCjS,EAAO+Q,SAAW,WACd,GAAI5T,GAAMvH,EAAGuH,IAAI+W,IAAgB,SAAUpB,GACvC,MAAOA,GAAEhT,EAAIgT,EAAEoC,IAGnB,OAAOpf,GAAG6D,MAAM0C,IAAIc,EAAK6C,EAAOiS,iBAQpCjS,EAAOsK,SAAW,WACd,GAAIpN,GAAMtH,EAAGsH,IAAIgX,IAAgBpe,EAAGgG,MAAM,KAC1C,OAAOhG,GAAG6D,MAAMmD,SAASI,EAAK8C,EAAOsQ,iBAGzCtQ,EAAOuK,SAAW,WACd,GAAIpN,GAAMvH,EAAGuH,IAAI+W,IAAgBpe,EAAGgG,MAAM,KAC1C,OAAOhG,GAAG6D,MAAM0C,IAAIc,EAAK6C,EAAOsQ,iBAoBpCxa,EAAGmE,SAAS+F,EAAQ,QAAS,SAAU8U,EAAWK,GAC9C,MAAKL,GAIoB,kBAAdA,GACA9U,EAAOgC,OAAO8S,GAErBA,IAAc9U,EAAOsD,YAAuC,kBAAlB6R,GACnCnV,EAAOgC,OAAOmT,GAGI,kBAAlBA,GACAT,EAAQI,IAAc9U,EAAOgC,UAGxC0S,EAAQI,GAAaK,EAEdnV,GAhBIA,EAAOgC,WAyBtBhC,EAAOoV,YAAc,SAAUX,GAC3B,MAAKja,WAAUhD,QAGf+c,EAAeE,EACRzU,GAHIuU,GAUfvU,EAAOoD,KAAK,WACR,GAAIiS,GAASpB,EAAOtY,OAAO2Y,EAC3B,OAAOe,GAAO7d,OAASwI,EAAOoV,cAAcC,QAGhDrV,EAAOqK,gBAAkB,WACrB,GAAIiL,GAAOpB,IAAexD,IAAI5a,EAAGgG,MAAM,SACnCyZ,EAAUvV,EAAO0D,sBAAsB4R,EAC3C,OAAOC,GAAQ7E,IAAI1Q,EAAOiC,gBAG9BjC,EAAOgJ,cAAc,SAAUvP,GAC3B,GAAI8Z,GAAQtY,KAAKsY,OAAStY,KAAKsC,MAAQ9D,EAAE8D,MAAQ9D,EAAE8Z,KACnD,OAAOA,KAGXvT,EAAO2G,YAAc,WACjB,MAAOsN,GAAOvD,IAAI,SAAU6C,EAAOhc,GAC/B,OACIN,MAAM+I,EACNzC,KAAKgW,EAAMhW,KACXsW,OAAQN,EAAMM,SAAU,EACxB2B,MAAMxV,EAAOqJ,SAASrN,KAAKuX,EAAOA,EAAMK,OAAQrc,OAK5DyI,EAAO+G,mBAAqB,SAAUtN,GAClC,GAAI8Z,GAAQS,EAAgBva,EAAE8D,KAC9B,OAAOgW,GAAQA,EAAMM,QAAS,GAGlC7T,EAAO8G,aAAe,SAAUrN,GACxBkb,IACI3U,EAAO+G,mBAAmBtN,GAC1BuG,EAAO+U,UAAUtb,EAAE8D,MAEnByC,EAAO6U,UAAUpb,EAAE8D,MAGvByC,EAAOsF,gBAIRtF,GAcXlK,EAAG2f,SAAW,SAAUzV,GAEpB,GAAI0V,GAAO9V,EAAAA,EAEP+V,EAAe,SAEfC,EAAiB,SAAUC,GAC3B,GAAIC,GAAalgB,EAAGmgB,IAAIF,EAAS7V,EAAOkC,iBACpC8T,EAAUhW,EAAOlJ,QAAQ8L,MACzBqT,EAAargB,EAAGmgB,IAAIC,EAAShW,EAAOkC,iBACpCgU,EAAUL,EAAQnF,IAAI1Q,EAAOiC,eAC7BkU,EAAUH,EAAQtF,IAAI1Q,EAAOiC,eAC7BmU,EAASxgB,EAAGygB,IAAIH,GAChBI,EAASH,EAAQxa,OAAO,SAAUlC,GAAI,OAAQ2c,EAAOpf,IAAIyC,IAC7D,OAAIwc,GAAaH,EACND,EAAQxB,SAASiC,OAAUA,EAAQC,IAAOZ,EAAcpW,MAAS0W,EAAaH,KAElFD,EAyFX,OAtFA7V,GAAOwW,kBAAoB,SAAU/c,EAAGlC,GACpC,MAAIkC,GAAE6c,OACK7c,EAAE8c,IAENvW,EAAOiC,cAAcxI,EAAGlC,IAGnCyI,EAAOyW,oBAAsB,SAAUhd,EAAGlC,GACtC,MAAIkC,GAAE6c,OACK7c,EAAE8F,MAENS,EAAOkC,gBAAgBzI,EAAGlC,IAGrCyI,EAAOoD,KAAK,SAAUtM,GAClB,GAAI4e,IAAS9V,EAAAA,EACT,MAAOI,GAAO0D,sBAAsB5M,EAAM8L,MAE1C,IAAIiT,GAAU/e,EAAM6Q,IAAI+N,EAExB,OADAG,GAAU7V,EAAO0D,sBAAsBmS,GACnCD,EACOA,EAAeC,GAEnBA,IAQf7V,EAAO0W,IAAM,SAAUnc,GACnB,MAAKC,WAAUhD,QAGfke,EAAOnb,EACAyF,GAHI0V,GAUf1V,EAAO2W,YAAc,SAAUpc,GAC3B,MAAKC,WAAUhD,QAGfme,EAAepb,EACRyF,GAHI2V,GA0Bf3V,EAAO4W,cAAgB,SAAUrc,GAC7B,MAAKC,WAAUhD,QAGfoe,EAAiBrb,EACVyF,GAHI4V,GAMf9f,EAAGmE,SAAS+F,EAAQ,UAAW,SAAUvG,GACjCA,EAAE6c,QACFtW,EAAOrE,QAAQlC,EAAE6c,SAErBtW,EAAO6W,SAASpd,KAGbuG,GAUXlK,EAAGghB,YAAc,SAAU9W,GACvB,GAAI+W,GAAyB,GACzBC,EAAsB,EAE1BhX,GAAOiX,kBAAoB,OAC3BjX,EAAOkX,aAAe,SACtBlX,EAAOmX,WAAa,GAEpBnX,EAASlK,EAAGqS,WAAWnI,GAEvBA,EAAOiH,aAAY,GAEnBjH,EAAOoD,KAAK,SAAUtM,GAClB,MAAOA,GAAM6Q,IAAI/H,EAAAA,IAGrB,IAAIwX,GAAKxhB,EAAGyS,MAAMQ,SAASxP,QAAQ,EAAG,MAElCge,EAAkB,SAAU5d,GAC5B,MAAOA,GAAE8C,EASbyD,GAAOzD,EAAI,SAAUhC,GACjB,MAAKC,WAAUhD,QAGf4f,EAAK7c,EACEyF,GAHIoX,GAcfpX,EAAOsX,oBAAsB,SAAU/c,GACnC,MAAKC,WAAUhD,QAGf6f,EAAkB9c,EACXyF,GAHIqX,GAMfrX,EAAOuX,KAAO,WACV,GAAIra,GAAMtH,EAAGsH,IAAI8C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAO8I,GAAOsX,sBAAsBpgB,IAExC,OAAOgG,IAGX8C,EAAOwX,KAAO,WACV,GAAIra,GAAMvH,EAAGuH,IAAI6C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAO8I,GAAOsX,sBAAsBpgB,IAExC,OAAOiG,IAGX6C,EAAOyX,QAAU,SAAUhe,GACvB,GAAI8F,GAAQS,EAAOsX,sBAAsB7d,GACrC8C,EAAIyD,EAAOzD,IAAIgD,EAInB,QAHImY,MAAMnb,IAAe,GAATgD,KACZhD,EAAI,GAEDA,EAGX,IAAIob,GAAgB,SAAUle,GAC1B,MAAOuG,GAAOgH,QAAQvN,IAGtBme,EAAe,SAAUne,GACzB,MAAQuG,GAAOyX,QAAQhe,GAAKud,EAAuB,EAAI,EAG3DhX,GAAO6X,eAAiB,SAAUC,GAC9B,GAAI9X,EAAOiH,cAAe,CACtB,GAAID,GAAQ8Q,EAAaha,OAAO,OAE5BkJ,GAAMjJ,UACNiJ,EAAQ8Q,EAAa9Z,OAAO,QACvBoC,KAAK,cAAe,UACpBA,KAAK,KAAM,QACXgH,GAAG,QAASpH,EAAOyG,UAG5BO,EACK5G,KAAK,UAAW,GAChBqE,KAAKkT,GACV7hB,EAAG4C,WAAWsO,EAAOhH,EAAO2E,sBACvBvE,KAAK,UAAWwX,KAI7B5X,EAAO+X,eAAiB,SAAUD,GAC9B,GAAI9X,EAAOiH,cAAe,CACtB,GAAI+Q,GAASF,EAAajU,UAAU,QAC/BY,KAAKkT,EACV7hB,GAAG4C,WAAWsf,EAAQhY,EAAO2E,sBACxBvE,KAAK,UAAWwX,IAI7B,IAAIK,GAAgB,SAAUxe,GAC1B,MAAOuG,GAAOkH,QAAQzN,GA2E1B,OAxEAuG,GAAOkY,gBAAkB,SAAU7U,GAC/B,GAAIrD,EAAOmH,cAAe,CACtB,GAAID,GAAQ7D,EAAEvF,OAAO,QAEjBoJ,GAAMnJ,SACNsF,EAAErF,OAAO,SAASyG,KAAKwT,KAKnCjY,EAAOmY,eAAiB,SAAU9U,GAC1BrD,EAAOmH,eACP9D,EAAEQ,UAAU,SAASY,KAAKwT,IAUlCjY,EAAOoY,mBAAqB,SAAU7d,GAClC,MAAKC,WAAUhD,QAGfwf,EAAsBzc,EACfyF,GAHIgX,GAYfhX,EAAOqY,sBAAwB,SAAU9d,GACrC,MAAKC,WAAUhD,QAGfuf,EAAyBxc,EAClByF,GAHI+W,GAMf/W,EAAO4S,mBAAqB,WAEpB5S,EAAO6D,UAAU,KAAO7D,EAAOiX,mBAAmB/R,KADlDlF,EAAO8F,YACgD,SAAUrM,GACzDuG,EAAOsY,eAAe7e,GACtBuG,EAAOsG,kBAAkBrL,MAEzB+E,EAAOuG,eAAetL,OAIyB,WACnD+E,EAAOwG,eAAevL,SAKlC+E,EAAOsY,eAAiB,SAAU7e,GAC9B,MAAOuG,GAAO8F,UAAUrM,EAAE8c,MAG9BvW,EAAOyG,QAAU,SAAUhN,GACvB,GAAIkC,GAASlC,EAAE8c,GACfzgB,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAOA,GACdqE,EAAOqF,iBAIRrF,GAsCXlK,EAAGyiB,SAAW,SAAU7a,EAAQqG,GAiD5B,QAASwI,KAELiM,EAAUA,EAAUA,EAAU5iB,EAAGsH,KAAK8C,EAAOK,QAASL,EAAOM,WAAa,CAE1E,IAGImY,GAHAC,EAAMC,IAENC,EAAMC,GAaV,IAVIjjB,EAAGmgB,IAAI/V,EAAOoD,OAAQpD,EAAOkC,kBAC7BuW,EAAUG,EAAI5Y,EAAOoD,QACrB4K,EAAGhK,QAAQ8U,GAAgB,KAI3BL,EAAUG,IAAMrC,IAAIwC,EAAaxZ,MAAM,EAAG+W,QAASyC,MACnD/K,EAAGhK,QAAQ8U,GAAgB,IAG3B9K,EAAI,CACJ,GAAIgL,GAAShL,EAAGnK,UAAU,KAAOoV,GAC5B7V,KAAKqV,EAEVS,GAAeF,EAAQN,EAAKD,GAE5BU,EAAeV,EAASC,GAExBU,EAAeJ,GAEfK,KAIR,QAASH,GAAeF,EAAQN,EAAKD,GACjC,GAAIa,GAAcC,EAAiBP,EAEnCQ,GAAgBF,EAAaZ,GAE7Be,EAAaH,GAEbI,EAAajB,EAASC,GAG1B,QAASa,GAAiBP,GACtB,GAAIM,GAAcN,EACbrN,QACA3N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO0hB,GAAiB,KAAO1hB,GAEvC,OAAO+hB,GAGX,QAASE,GAAgBF,EAAaZ,GAClC,GAAIiB,GAAYL,EAAYtb,OAAO,QAC9BoC,KAAK,OAAQwZ,GACbxS,GAAG,QAASX,GACZrG,KAAK,IAAK,SAAU3G,EAAGlC,GACpB,MAAOsiB,GAAQpgB,EAAGlC,EAAGmhB,IAG7B5iB,GAAG4C,WAAWihB,EAAW3Z,EAAO2E,qBAAsB,SAAU5L,GAC5DA,EAAE+gB,UAAU,IAAKC,KAIzB,QAASN,GAAaH,GACdtZ,EAAOmH,eACPmS,EAAYtb,OAAO,SAASyG,KAAK,SAAUhL,GACvC,MAAOuG,GAAOkH,QAAQzN,EAAE2J,QAKpC,QAAS4W,GAAeC,EAAavB,GACjC5iB,EAAG4C,WAAWuhB,EAAaja,EAAO2E,sBAC7BvE,KAAK,YAAa,SAAU3G,GACzB,MAAOoY,GAAcpY,EAAGif,KAE3BtY,KAAK,cAAe,UACpBqE,KAAK,SAAUhL,GACZ,GAAI2J,GAAO3J,EAAE2J,IACb,QAAK8W,EAAe9W,KAAS+W,EAAc1gB,IAAQ2gB,EAAgB3gB,GAG5DuG,EAAOgH,QAAQvN,EAAE2J,MAFb,KAMvB,QAASsW,GAAajB,EAASC,GAC3B,GAAI1Y,EAAOiH,cAAe,CACtB,GAAI+Q,GAAShK,EAAGnK,UAAU,QAAUoV,GAC/B7V,KAAKqV,EAEVT,GAAOnM,OAAOxH,QAEd,IAAI4V,GAAcjC,EACbrM,QACA3N,OAAO,QACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,GAAI8iB,GAAUpB,EAAiB,KAAO1hB,CAItC,OAHI+iB,KACAD,GAAW,aAERA,IAEVjT,GAAG,QAASX,EACjBuT,GAAeC,EAAavB,IAIpC,QAASS,GAAeV,EAASC,GAC7B6B,EAAiB9B,EAASC,GAC1B8B,EAAa/B,EAASC,GACtB+B,EAAahC,GAGjB,QAAS8B,GAAiB9B,EAASC,GAC/B,GAAIgC,GAAa1M,EAAGnK,UAAU,KAAOoV,GAChC7V,KAAKqV,GACL3a,OAAO,QACPsC,KAAK,IAAK,SAAU3G,EAAGlC,GACpB,MAAOsiB,GAAQpgB,EAAGlC,EAAGmhB,IAE7B5iB,GAAG4C,WAAWgiB,EAAY1a,EAAO2E,qBAC7B,SAAU5L,GACNA,EAAE+gB,UAAU,IAAKC,KAClB3Z,KAAK,OAAQwZ,GAGxB,QAASY,GAAa/B,EAASC,GAC3B,GAAI1Y,EAAOiH,cAAe,CACtB,GAAI+Q,GAAShK,EAAGnK,UAAU,QAAUoV,GAC/B7V,KAAKqV,EACVuB,GAAehC,EAAQU,IAI/B,QAAS+B,GAAahC,GACdzY,EAAOmH,eACP6G,EAAGnK,UAAU,KAAOoV,GACf7V,KAAKqV,GACL3a,OAAO,SACP2G,KAAK,SAAUhL,GACZ,MAAOuG,GAAOkH,QAAQzN,EAAE2J,QAKxC,QAASgW,GAAeJ,GACpBA,EAAOnN,OAAOxH,SAGlB,QAASgV,KAEDrZ,EAAO6D,UAAU,KAAOoV,GAAgB/T,KADxClF,EAAO8F,YACsC,SAAUrM,GAC/C2gB,EAAgB3gB,GAChBuG,EAAOsG,kBAAkBrL,MAEzB+E,EAAOuG,eAAetL,OAIe,WACzC+E,EAAOwG,eAAevL,QA2DlC,QAAS0d,KACL,MAAO/iB,GAAGuO,IAAIuU,MAAMiC,YAAYnC,GAASoC,YAAYC,GAGzD,QAAST,GAAgB3gB,GACrB,MAAOuG,GAAO8F,UAAU9F,EAAOwW,kBAAkB/c,EAAE2J,OAqBvD,QAASyV,KACL,MAAOjjB,GAAG4e,OAAOoE,MAAMkC,KAAK,MAAMvb,MAAMS,EAAOyW,qBAGnD,QAAS0D,GAAc1gB,GACnB,GAAIshB,GAASthB,EAAEuhB,SAAWvhB,EAAEwhB,UAC5B,OAAOvD,OAAMqD,IAAkBG,EAARH,EAG3B,QAASb,GAAezgB,GACpB,MAAyC,KAAlCuG,EAAOyW,oBAAoBhd,GAGtC,QAASsgB,GAASoB,GACdA,EAAEP,YAAcC,CAChB,IAAIhc,GAAU5D,KAAKmgB,QACfC,GAAYxc,KACZA,GAAWoc,WAAY,EAAGD,SAAU,GAExC,IAAIzjB,GAAI3B,EAAGkT,YAAYjK,EAASsc,EAEhC,OADAlgB,MAAKmgB,SAAW7jB,EAAE,GACX,SAAU+jB,GACb,MAAOzB,GAAQtiB,EAAE+jB,GAAI,EAAG3C,MAIhC,QAAS0C,GAAYxc,GACjB,OAAQA,GAAW6Y,MAAM7Y,EAAQoc,aAAevD,MAAM7Y,EAAQmc,UAGlE,QAASpB,GAAKngB,EAAGlC,GACb,MAAOyI,GAAOqJ,SAAS5P,EAAE2J,KAAM7L,GAGnC,QAASkP,GAAQhN,EAAGlC,GACZyW,EAAG5N,KAAK,WAAa0Y,GACrB9Y,EAAOyG,QAAQhN,EAAE2J,KAAM7L,GAI/B,QAASsiB,GAAQpgB,EAAGlC,EAAGmhB,GACnB,GAAI6C,GAAO7C,EAAIjf,EAAGlC,EAIlB,OAHIgkB,GAAKpkB,QAAQ,QAAU,IACvBokB,EAAO,QAEJA,EAiCX,QAAS1J,GAAcpY,EAAGif,GACtB,GAAI8C,EASJ,OAPIA,GADAlB,EACW1kB,EAAGuO,IAAIuU,MACbiC,YAAYnC,EAAU8B,GACtBM,YAAYpC,EAAU8B,GACtBkB,SAAS/hB,GAEHif,EAAI8C,SAAS/hB,GAExBie,MAAM8D,EAAS,KAAO9D,MAAM8D,EAAS,IAC9B,iBAEA,aAAeA,EAAW,IAwBzC,QAASC,GAA6BC,EAAYC;AAC9C3b,EAAO6D,UAAU,eAAeqB,KAAK,SAAUzL,GACvCiiB,EAAWne,OAAS9D,EAAE2J,KAAKmT,KAC3B3gB,EAAGkI,OAAO7C,MAAM+I,QAAQ,YAAa2X,KA/ZjD,GAMInD,GAGAxK,EACA4N,EACAC,EAEAvB,EAbAwB,EAA8B,GAE9B7C,EAAiB,YACjBH,EAAiB,cACjBC,EAAc,QAGd8B,EAAe,EAKfK,EAAoBY,EAEpB9b,EAASlK,EAAG2f,SAAS3f,EAAGqS,WAAWrS,EAAGiK,eAsZ1C,OApZAC,GAAOgJ,cAAchJ,EAAOwW,mBAE5BxW,EAAOkH,MAAM,SAAUzN,GACnB,MAAOuG,GAAOwW,kBAAkB/c,GAAK,KAAOuG,EAAOyW,oBAAoBhd,KAU3EuG,EAAO+b,UAAY/b,EAAO0W,IAE1B1W,EAAOgH,MAAMhH,EAAOwW,mBACpBxW,EAAOiH,aAAY,GAEnBjH,EAAO2E,mBAAmB,KAE1B3E,EAAO+E,UAAY,WASf,MARA/E,GAAOoE,WAEP4J,EAAKhO,EAAOmE,MACPnG,OAAO,KACPoC,KAAK,YAAa,aAAeJ,EAAOgc,KAAO,IAAMhc,EAAOic,KAAO,KAExE1P,IAEOvM,GAkLXA,EAAO4a,YAAc,SAAUre,GAC3B,MAAK/B,WAAUhD,QAGfqjB,EAAete,EACRyD,GAHI6a,GAYf7a,EAAOkc,OAAS,SAAU3f,GACtB,MAAK/B,WAAUhD,QAGfghB,EAAUjc,EACHyD,GAHIwY,GAWfxY,EAAOgc,GAAK,SAAUA,GAClB,MAAKxhB,WAAUhD,QAGfokB,EAAMI,EACChc,GAHK4b,GAAQ5b,EAAOK,QAAU,GAWzCL,EAAOic,GAAK,SAAUA,GAClB,MAAKzhB,WAAUhD,QAGfqkB,EAAMI,EACCjc,GAHK6b,GAAQ7b,EAAOM,SAAW,GAc1CN,EAAOoF,UAAY,WAEf,MADAmH,KACOvM,GAQXA,EAAOmc,iBAAmB,SAAU5hB,GAChC,MAAKC,WAAUhD,QAGf0jB,EAAoB3gB,EACbyF,GAHIkb,GA0Dflb,EAAOoc,WAAa,SAAUlV,GAC1B,MAAyB,KAArB1M,UAAUhD,OACHuhB,GAEXA,EAAc7R,EACPlH,IASXA,EAAOqc,eAAiB,SAAUH,GAC9B,MAAyB,KAArB1hB,UAAUhD,OACH8iB,GAEPA,EADO4B,EACgBA,EAEApjB,OAGpBkH,IAoBXA,EAAO2G,YAAc,WACjB,MAAO3G,GAAOoD,OAAOsN,IAAI,SAAUjX,EAAGlC,GAClC,GAAImkB,IAAcne,KAAM9D,EAAE8c,IAAKnT,KAAM3J,EAAE8F,MAAO+W,OAAQ7c,EAAE6c,OAAQrf,MAAM+I,EAEtE,OADA0b,GAAWlG,MAAQxV,EAAOqJ,SAAS5P,EAAGlC,GAC/BmkB,KAIf1b,EAAO4G,gBAAkB,SAAUnN,GAC/BgiB,EAA6BhiB,GAAG,IAGpCuG,EAAO6G,YAAc,SAAUpN,GAC3BgiB,EAA6BhiB,GAAG,IAGpCuG,EAAO8G,aAAe,SAAUrN,GAC5BuG,EAAOyG,SAAS8P,IAAK9c,EAAE8D,KAAM+Y,OAAQ7c,EAAE6c,UAWpCtW,EAAO8D,OAAOpG,EAAQqG,IAsCjCjO,EAAGwmB,SAAW,SAAU5e,EAAQqG,GA8C5B,QAASwY,GAAU9iB,GACf,MAAO3D,GAAG6D,MAAMsE,WAAW/E,KAAKC,IAAI6G,EAAOF,IAAIrG,EAAEqG,EAAIrG,EAAEyb,IAAMlV,EAAOF,IAAIrG,EAAEyb,MAG9E,QAASsH,GAAWjJ,EAAOkJ,EAAYhjB,GACnC,GAAIijB,GAAOnJ,EAAM1P,UAAU,YACtBT,KAAK3J,EAAEma,OAAQ9d,EAAGgG,MAAM,MAEzB6P,EAAQ+Q,EAAK/Q,QACZ3N,OAAO,QACPoC,KAAK,QAAS,OACdA,KAAK,OAAQtK,EAAGgG,MAAM,OAAQkE,EAAOqJ,WACrCjJ,KAAK,IAAKJ,EAAOsM,eACjBlM,KAAK,SAAU,EAEhBJ,GAAOmH,eACPwE,EAAM3N,OAAO,SAASyG,KAAK3O,EAAGgG,MAAM,OAAQkE,EAAOkH,MAAMzN,EAAE8D,QAG3DyC,EAAOkK,aACPwS,EAAKtV,GAAG,QAASpH,EAAOyG,SAG5B3Q,EAAG4C,WAAWgkB,EAAM1c,EAAO2E,sBACtBvE,KAAK,IAAK,SAAU3G,GACjB,GAAIoG,GAAIG,EAAOH,IAAIpG,EAAEoG,EAOrB,OANI8c,KACA9c,GAAK+c,EAAY,GAEjB5c,EAAOkK,aAAwBpR,SAAT+jB,IACtBhd,GAAKgd,EAAO,GAET/mB,EAAG6D,MAAMsE,WAAW4B,KAE9BO,KAAK,IAAK,SAAU3G,GACjB,GAAIqG,GAAIE,EAAOF,IAAIrG,EAAEqG,EAAIrG,EAAEyb,GAM3B,OAJIzb,GAAEqG,EAAI,IACNA,GAAKyc,EAAU9iB,IAGZ3D,EAAG6D,MAAMsE,WAAW6B,KAE9BM,KAAK,QAASwc,GACdxc,KAAK,SAAU,SAAU3G,GACtB,MAAO8iB,GAAU9iB,KAEpB2G,KAAK,OAAQtK,EAAGgG,MAAM,OAAQkE,EAAOqJ,WACrCvL,OAAO,SAAS2G,KAAK3O,EAAGgG,MAAM,OAAQkE,EAAOkH,MAAMzN,EAAE8D,QAE1DzH,EAAG4C,WAAWgkB,EAAK7Q,OAAQ7L,EAAO2E,sBAC7BvE,KAAK,SAAU,GACfiE,SAGT,QAASyY,KACL,GAAkBhkB,SAAd8jB,EAAyB,CACzB,GAAIG,GAAe/c,EAAOuQ,YAItBqM,GAAY1jB,KAAKW,MADjBmG,EAAOkK,aAAwBpR,SAAT+jB,EACC7c,EAAOH,IAAImd,YAC3BH,GACiB7c,EAAO4K,eAAiBmS,EAAe,GAAKF,GAAQE,EAErD/c,EAAO4K,eAAiB,EAAI5K,EAAOid,cAAgBF,IAG1EH,IAAchd,EAAAA,GAAY8X,MAAMkF,IAA0BM,EAAZN,KAC9CA,EAAYM,IAkIxB,QAASC,GAAY3H,EAAO4H,GACxB,MAAO,YACH,GAAIC,GAAOznB,EAAGkI,OAAO7C,MACjBqiB,EAAQD,EAAKjd,KAAK,UAAYoV,CAClC,OAAO4H,IAAOE,EAAQA,GAxP9B,GASIV,GATAM,EAAgB,EAChBK,EAA2B,EAE3Bvd,EAASlK,EAAGud,WAAWvd,EAAGyT,yBAE1BsT,EAAOU,EACPZ,GAAa,EACba,GAAqB,CA4QzB,OAxQA1nB,GAAGmE,SAAS+F,EAAQ,UAAW,WAC3BA,EAAOyd,WACPb,EAAY9jB,SAGhBhD,EAAGmE,SAAS+F,EAAQ,SAAU,WACtBA,EAAOjG,SAAW4iB,IAAea,GACjC1nB,EAAGoI,OAAOE,KAAK,mHAInB4B,EAAO0d,YAGX1d,EAAO0M,SAAW,WACd,GAAI2I,GAASrV,EAAOkQ,aAAarM,UAAU,WACtCT,KAAKpD,EAAOoD,OAEjB0Z,KAEAzH,EACK1J,QACA3N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO,UAAiBA,IAGhC8d,EAAOnQ,KAAK,SAAUzL,EAAGlC,GACrB,GAAIgc,GAAQ3d,EAAGkI,OAAO7C,KAEtBuhB,GAAWjJ,EAAOhc,EAAGkC,MA8E7BuG,EAAO4S,mBAAqB,WACxB,GAAI8J,GAAO1c,EAAOkQ,aAAarM,UAAU,YACrCsO,EAASnS,EAAOmP,QAAQgD,QAE5B,IAAInS,EAAOkK,YACHlK,EAAO8F,aACP4W,EAAK1Y,QAAQlO,EAAGE,UAAUK,eAAgB,SAAUoD,GAChD,MAAOuG,GAAO8F,UAAUrM,EAAEoG,KAE9B6c,EAAK1Y,QAAQlO,EAAGE,UAAUI,iBAAkB,SAAUqD,GAClD,OAAQuG,EAAO8F,UAAUrM,EAAEoG,OAG/B6c,EAAK1Y,QAAQlO,EAAGE,UAAUK,gBAAgB,GAC1CqmB,EAAK1Y,QAAQlO,EAAGE,UAAUI,kBAAkB,QAGhD,IAAK4J,EAAO0S,aAAaP,GAQrBuK,EAAK1Y,QAAQlO,EAAGE,UAAUI,kBAAkB,OARd,CAC9B,GAAIunB,GAAQxL,EAAO,GACfyL,EAAMzL,EAAO,EAEjBuK,GAAK1Y,QAAQlO,EAAGE,UAAUI,iBAAkB,SAAUqD,GAClD,MAAOA,GAAEoG,EAAI8d,GAASlkB,EAAEoG,GAAK+d,MAa7C5d,EAAO6d,UAAY,SAAUtjB,GACzB,MAAKC,WAAUhD,QAGfmlB,EAAapiB,EACNyF,GAHI2c,GAMf7mB,EAAGmE,SAAS+F,EAAQ,UAAW,SAAUvG,GACrCuG,EAAO6W,SAASpd,EAAE2J,QAUtBpD,EAAOid,WAAa,SAAU1iB,GAC1B,MAAKC,WAAUhD,QAGfwI,EAAO6K,kBAAkBtQ,GACzBsiB,EAAO/jB,OACAkH,GAJIA,EAAO6K,qBAOtB7K,EAAO8K,iBAAmB,WACtB,MAAgBhS,UAAT+jB,GAUX7c,EAAO8d,aAAe9d,EAAO+K,uBAS7B/K,EAAO+d,IAAM,SAAUxjB,GACnB,MAAKC,WAAUhD,QAGfqlB,EAAOtiB,EACAyF,GAHI6c,GAMf7c,EAAOyS,YAAc,WACjB,GAAIN,GAASnS,EAAOmP,QAAQgD,QAS5B,QARInS,EAAOjG,SAAa4iB,IAAca,IAClCrL,EAAO,GAAKA,EAAOzB,IAAI1Q,EAAOjG,SAAS,GACvCoY,EAAO,GAAKA,EAAOzB,IAAI1Q,EAAOjG,SAAS,GAEvCiG,EAAOkQ,aAAapS,OAAO,UACtB9B,KAAKgE,EAAOmP,QAAQgD,OAAOA,KAG7BA,GAgBXnS,EAAOge,kBAAoB,SAAUzjB,GACjC,MAAKC,WAAUhD,QAGfgmB,EAAqBjjB,EACdyF,GAHIwd,GAcfxd,EAAO4G,gBAAkB,SAAUnN,GAC1BuG,EAAO+G,mBAAmBtN,IAC3BuG,EAAOqD,IAAIQ,UAAU,YAChBG,QAAQ,YAAamZ,EAAY1jB,EAAE+b,QACnCxR,QAAQ,UAAWmZ,EAAY1jB,EAAE+b,OAAO,KAIrDxV,EAAO6G,YAAc,WACjB7G,EAAOqD,IAAIQ,UAAU,YAChBG,QAAQ,aAAa,GACrBA,QAAQ,WAAW,IAG5BlO,EAAGmE,SAAS+F,EAAQ,WAAY,WAC5B,GAAI7C,GAAMlC,KAAKgjB,WACf,IAAI,cAAgBje,GAAOoQ,SAAU,CACjC,GAAI8N,GAAMle,EAAOoQ,SAAS1W,UAC1ByD,IAAO+gB,EAEX,MAAO/gB,KAGJ6C,EAAO8D,OAAOpG,EAAQqG,IAuCjCjO,EAAGqoB,UAAY,SAAUzgB,EAAQqG,GAiI7B,QAAS0E,GAAOhP,EAAGlC,GACf,MAAOyI,GAAOqJ,SAASrN,KAAKvC,EAAGA,EAAEma,OAAQrc,GAG7C,QAAS6mB,GAASC,EAAahJ,GAC3B,GAAIiJ,GAAO1oB,EAAGuO,IAAIma,OACbze,EAAE,SAAUpG,GACT,MAAOuG,GAAOH,IAAIpG,EAAEoG,KAEvBC,EAAE,SAAUrG,GACT,MAAOuG,GAAOF,IAAIrG,EAAEqG,EAAIrG,EAAEyb,MAE7BpM,YAAYyV,GACZC,QAAQC,EACTC,IACAJ,EAAKK,QAAQD,EAGjB,IAAInD,GAAO8C,EAAYrgB,OAAO,QACzBoC,KAAK,QAAS,QACdA,KAAK,SAAUqI,EAChBmW,IACArD,EAAKnb,KAAK,mBAAoBwe,GAGlC9oB,EAAG4C,WAAW2c,EAAOvX,OAAO,aAAckC,EAAO2E,sBAE5CvE,KAAK,SAAUqI,GACfrI,KAAK,IAAK,SAAU3G,GACjB,MAAOolB,GAAMP,EAAK7kB,EAAEma,WAIhC,QAASkL,GAAST,EAAahJ,GAC3B,GAAI0J,EAAa,CACb,GAAIC,GAAOppB,EAAGuO,IAAI6a,OACbnf,EAAE,SAAUpG,GACT,MAAOuG,GAAOH,IAAIpG,EAAEoG,KAEvBC,EAAE,SAAUrG,GACT,MAAOuG,GAAOF,IAAIrG,EAAEqG,EAAIrG,EAAEyb,MAE7BA,GAAG,SAAUzb,GACV,MAAOuG,GAAOF,IAAIrG,EAAEyb,MAEvBpM,YAAYyV,GACZC,QAAQC,EACTC,IACAM,EAAKL,QAAQD,GAGjBL,EAAYrgB,OAAO,QACdoC,KAAK,QAAS,QACdA,KAAK,OAAQqI,GACbrI,KAAK,IAAK,SAAU3G,GACjB,MAAOolB,GAAMG,EAAKvlB,EAAEma,WAG5B9d,EAAG4C,WAAW2c,EAAOvX,OAAO,aAAckC,EAAO2E,sBAE5CvE,KAAK,OAAQqI,GACbrI,KAAK,IAAK,SAAU3G,GACjB,MAAOolB,GAAMG,EAAKvlB,EAAEma,YAKpC,QAASiL,GAAOplB,GACZ,OAASA,GAAKA,EAAEtC,QAAQ,QAAU,EAAK,OAASsC,EAGpD,QAASwlB,GAASC,EAAW7J,GACzB,IAAKrV,EAAOoT,WAAapT,EAAOmf,WAAY,CACxC,GAAIC,GAAmBC,EAAkB,QACrCC,EAAWJ,EAAUphB,OAAO,KAAOshB,EAEnCE,GAASvhB,UACTuhB,EAAWJ,EAAUlhB,OAAO,KAAKoC,KAAK,QAASgf,IAGnD/J,EAAOnQ,KAAK,SAAUzL,EAAGgjB,GACrB,GAAI8C,GAAS9lB,EAAEma,MACX8K,KACAa,EAASA,EAAO5jB,OAAO+iB,GAG3B,IAAIrb,GAAIic,EAASxhB,OAAO,KAAOuhB,EAAkB,KAAO5C,EACpDpZ,GAAEtF,UACFsF,EAAIic,EAASthB,OAAO,KAAKoC,KAAK,QAASif,EAAkB,KAAO5C,IAGpE+C,EAAenc,EAEf,IAAIoc,GAAOpc,EAAEQ,UAAU,UAAY6b,GAC9Btc,KAAKmc,EAAQzpB,EAAGgG,MAAM,KAE3B2jB,GAAK9T,QACA3N,OAAO,UACPoC,KAAK,QAASsf,GACdtf,KAAK,IAAKuf,KACVnb,MAAM,eAAgBob,GACtBpb,MAAM,iBAAkBqb,GACxBzY,GAAG,YAAa,WACb,GAAI0Y,GAAMlqB,EAAGkI,OAAO7C,KACpB8kB,GAAQD,GACRE,EAAaF,EAAKzc,KAErB+D,GAAG,WAAY,WACZ,GAAI0Y,GAAMlqB,EAAGkI,OAAO7C,KACpBglB,GAAQH,GACRI,EAAa7c,KAGrBoc,EACKrf,KAAK,KAAM,SAAU3G,GAClB,MAAO3D,GAAG6D,MAAMsE,WAAW+B,EAAOH,IAAIpG,EAAEoG,MAE3CO,KAAK,KAAM,SAAU3G,GAClB,MAAO3D,GAAG6D,MAAMsE,WAAW+B,EAAOF,IAAIrG,EAAEqG,EAAIrG,EAAEyb,OAEjD9U,KAAK,OAAQJ,EAAOqJ,UACpBrN,KAAKmL,EAAa1N,GAEvBgmB,EAAK5T,OAAOxH,YAKxB,QAASmb,GAAenc,GACpB,GAAI8c,GAAW9c,EAAEvF,OAAO,QAAUsiB,GAAuBriB,QACrDsF,EAAErF,OAAO,QAAQoC,KAAK,QAASggB,GAAyB/c,EAAEvF,OAAO,QAAUsiB,EAC/ED,GAAS3b,MAAM,UAAW,QAAQpE,KAAK,mBAAoB,MAE3D,IAAIigB,GAAWhd,EAAEvF,OAAO,QAAUwiB,GAAuBviB,QACrDsF,EAAErF,OAAO,QAAQoC,KAAK,QAASkgB,GAAyBjd,EAAEvF,OAAO,QAAUwiB,EAC/ED,GAAS7b,MAAM,UAAW,QAAQpE,KAAK,mBAAoB,OAG/D,QAAS2f,GAAQD,GAIb,MAHAA,GAAItb,MAAM,eAAgB,IAC1Bsb,EAAItb,MAAM,iBAAkB,IAC5Bsb,EAAI1f,KAAK,IAAKmgB,GACPT,EAGX,QAASE,GAAaF,EAAKzc,GACvB,GAAIxD,GAAIigB,EAAI1f,KAAK,MACbN,EAAIggB,EAAI1f,KAAK,MACbogB,EAAUxgB,EAAO4R,UAAY5R,EAAO+H,UAAUD,KAC9C2Y,EAAgB,IAAMD,EAAS,IAAM1gB,EAAI,IAAM,EAAM,IAAM,EAC3D4gB,EAAgB,IAAM7gB,EAAI,IAAMG,EAAOsM,cAAgB,IAAMzM,EAAI,IAAMC,CAC3EuD,GAAEvF,OAAO,QAAUsiB,GAAuB5b,MAAM,UAAW,IAAIpE,KAAK,IAAKqgB,GACzEpd,EAAEvF,OAAO,QAAUwiB,GAAuB9b,MAAM,UAAW,IAAIpE,KAAK,IAAKsgB,GAG7E,QAASf,KACL,MAAOgB,IAAoBJ,EAG/B,QAASN,GAAQH,GACbA,EAAItb,MAAM,eAAgBob,GACrBpb,MAAM,iBAAkBqb,GACxBzf,KAAK,IAAKuf,KAGnB,QAASO,GAAa7c,GAClBA,EAAEvF,OAAO,QAAUsiB,GAAuB5b,MAAM,UAAW,QAC3DnB,EAAEvF,OAAO,QAAUwiB,GAAuB9b,MAAM,UAAW,QAG/D,QAAS2C,GAAY2Y,EAAKrmB,GAClBuG,EAAOmH,gBACP2Y,EAAIjc,UAAU,SAASQ,SACvByb,EAAI9hB,OAAO,SAASyG,KAAK3O,EAAGgG,MAAM,OAAQkE,EAAOkH,MAAMzN,EAAE8D,SAoEjE,QAAS4f,GAAY3H,EAAOoL,EAAWxD,GACnC,MAAO,YACH,GAAIC,GAAOznB,EAAGkI,OAAO7C,MACjBqiB,EAASD,EAAKjd,KAAK,YAAcoV,GACjC6H,EAAKjd,KAAK,uBAA0BwgB,YAAqBhlB,OACrDglB,EAAUC,KAAK,KAAO,OAAUxD,EAAKjd,KAAK,UAAYoV,CAC9D,OAAO4H,IAAOE,EAAQA,GAvX9B,GAeIoB,GACAE,EAhBAkC,EAAqB,EACrBzB,EAAkB,aAClBK,EAAmB,MACnBU,EAAwB,OACxBE,EAAwB,OACxBS,EAAsB,KAEtB/gB,EAASlK,EAAGud,WAAWvd,EAAGyT,yBAC1BwV,GAAc,EACdwB,EAAaO,EACbH,EAAmB,KACnBf,EAAwBmB,EACxBlB,EAA0BkB,EAC1BxC,EAAe,SACfE,EAAW,GAGXuC,GAAY,CAmYhB,OAjYAhhB,GAAO2E,mBAAmB,KAC1B3E,EAAO6K,kBAAkB,GAEzB7K,EAAO0M,SAAW,WACd,GAAIwS,GAAYlf,EAAOkQ,aACnB+Q,EAAa/B,EAAUrb,UAAU,eAEjCod,GAAWljB,UACXkjB,EAAa/B,EAAUlhB,OAAO,KAAKoC,KAAK,QAAS,cAGrD,IAAIiV,GAAS4L,EAAWpd,UAAU,WAAWT,KAAKpD,EAAOoD,QAErDib,EAAchJ,EACb1J,QACA3N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO,UAAiBA,GAGhC6mB,GAASC,EAAahJ,GAEtByJ,EAAST,EAAahJ,GAEtB4J,EAASC,EAAW7J,IAWxBrV,EAAO8I,YAAc,SAAUvO,GAC3B,MAAKC,WAAUhD,QAGf+mB,EAAehkB,EACRyF,GAHIue,GAcfve,EAAOwe,QAAU,SAAUjkB,GACvB,MAAKC,WAAUhD,QAGfinB,EAAWlkB,EACJyF,GAHIye,GAiBfze,EAAO2e,QAAU,SAAUpkB,GACvB,MAAKC,WAAUhD,QAGfknB,EAAWnkB,EACJyF,GAHI0e,GAef1e,EAAOkhB,UAAY,SAAU3mB,GACzB,MAAKC,WAAUhD,QAGfonB,EAAarkB,EACNyF,GAHI4e,GAYf5e,EAAOmhB,WAAa,SAAU5mB,GAC1B,MAAKC,WAAUhD,QAGfunB,EAAcxkB,EACPyF,GAHI+e,GA6Lf/e,EAAOmf,SAAW,SAAU5kB,GACxB,MAAKC,WAAUhD,QAGfwpB,EAAYzmB,EACLyF,GAHIghB,GAUfhhB,EAAOohB,UAAY,SAAU7mB,GACzB,MAAKC,WAAUhD,QAGf+oB,EAAahmB,EACNyF,GAHIugB,GAyBfvgB,EAAOqhB,iBAAmB,SAAU/Z,GAChC,MAAK9M,WAAUhD,QAMH8P,GAKRsY,EAAwBtY,EAAQga,aAAe,GAC/CzB,EAA0BvY,EAAQia,eAAiB,GACnDZ,EAAmBrZ,EAAQ4U,QAAU,IANrC0D,EAAwBmB,EACxBlB,EAA0BkB,EAC1BJ,EAAmB,MAMhB3gB,IAbCshB,YAAa1B,EACb2B,cAAe1B,EACf3D,OAAQyE,IAwBpB3gB,EAAO4G,gBAAkB,SAAUnN,GAC1BuG,EAAO+G,mBAAmBtN,IAC3BuG,EAAOqD,IAAIQ,UAAU,wBAChBG,QAAQ,YAAamZ,EAAY1jB,EAAE+b,MAAO/b,EAAEmnB,YAC5C5c,QAAQ,UAAWmZ,EAAY1jB,EAAE+b,MAAO/b,EAAEmnB,WAAW,KAIlE5gB,EAAO6G,YAAc,WACjB7G,EAAOqD,IAAIQ,UAAU,wBAChBG,QAAQ,aAAa,GACrBA,QAAQ,WAAW,IAG5BlO,EAAGmE,SAAS+F,EAAQ,cAAe,WAC/B,GAAI2G,GAAc3G,EAAOwhB,cACzB,OAAK5C,GAGEjY,EAAY+J,IAAI,SAAUpU,GAE7B,MADAA,GAAEskB,UAAYhC,EACPtiB,IAJAqK,IAQR3G,EAAO8D,OAAOpG,EAAQqG,IA6CjCjO,EAAG2rB,UAAY,SAAU/jB,EAAQqG,GAC7B,GAAI2d,GAAgB9rB,EAAG4F,OAAO,MAC1BwE,EAASlK,EAAGiK,cACZ4hB,GAAS/b,KAAK,GAAIhD,IAAI,GAmE1B,OAlDA5C,GAAO4hB,KAAO,SAAU7oB,GACpB,MAAKyB,WAAUhD,QAGXuB,EAAE6J,MACF+e,EAAM/e,IAAM7J,EAAE6J,KAEd7J,EAAE6M,OACF+b,EAAM/b,KAAO7M,EAAE6M,MAEZ5F,GARI2hB,GAmBf3hB,EAAO6hB,aAAe,SAAU9oB,GAC5B,MAAKyB,WAAUhD,QAGfkqB,EAAgB3oB,EACTiH,GAHI0hB,GAMf1hB,EAAO+E,UAAY,WACf,GAAI+c,GAAM9hB,EAAOU,YAAYuS,OACzBhW,EAAM+C,EAAOlJ,QAAQyI,QACrBqD,EAAM8e,EAAcI,GACpBC,EAAWL,EAAczkB,EAU7B,OARK6kB,KAAQ7kB,GAAuB,KAAd0kB,EAAM/e,IACxB5C,EAAOG,OAAOyhB,KAAKD,EAAM/e,IAAIpG,QAAQ,eAAgBoG,GAAKpG,QAAQ,gBAAiBulB,IAC7D,KAAfJ,EAAM/b,KACb5F,EAAOG,OAAOyhB,KAAKD,EAAM/b,KAAKpJ,QAAQ,eAAgBoG,GAAKpG,QAAQ,gBAAiBulB,KAEpF/hB,EAAO6D,UAAU,gBAAgBY,KAAK7B,GACtC5C,EAAO6D,UAAU,iBAAiBY,KAAKsd,IAEpC/hB,GAGXA,EAAOoF,UAAY,WACf,MAAOpF,GAAO+E,aAGX/E,EAAO8D,OAAOpG,EAAQqG,IA2BjCjO,EAAGksB,UAAY,SAAUtkB,EAAQqG,GAkE7B,QAASke,KAQL,GAAIC,IAAgB,CAKpB,IAJAC,EAAStd,QAAQ,SAAU9I,GACvBmmB,GAA8C,kBAANnmB,MAGvCmmB,EAAe,CAChBliB,EAAO6D,UAAU,MAAMQ,QACvB,IAAI+d,GAAWpiB,EAAOG,OAAO0D,UAAU,MAClCT,KAAK+e,GAENE,EAAYD,EACXzW,QACA3N,OAAO,KAEZqkB,GACKjiB,KAAK,QAASkiB,GACVV,KAAK,SAAUnoB,GACZ,MAAQuG,GAAOuiB,sBAAsB9oB,KAKrD,GAAIgX,GAASzQ,EAAOG,OAAO0D,UAAU,SAChCT,KAAKof,IAAe,SAAU/oB,GAC3B,MAAOuG,GAAOiC,cAAcxI,KAGhCgpB,EAAWhS,EACV9E,QACA3N,OAAO,QAcZ,OAZAykB,GACKzkB,OAAO,MACPoC,KAAK,QAASsiB,GACV1kB,OAAO,MACPoC,KAAK,QAASuiB,GACdviB,KAAK,UAAW+hB,EAAS3qB,QACzBoqB,KAAK,SAAUnoB,GACZ,MAAOuG,GAAOiC,cAAcxI,KAGxCgX,EAAO5E,OAAOxH,SAEPoe,EAGX,QAASD,KACL,GAAII,EAOJ,OALIA,GADAC,IAAWjtB,EAAGktB,UACJ9iB,EAAOU,YAAYmH,OAAOkb,GAE1B/iB,EAAOU,YAAYiH,IAAIob,GAG9BntB,EAAGotB,OACLzM,IAAIvW,EAAOlJ,SACXmsB,SAASJ,GACTD,QAAQA,EAAQ9H,KAAK,SAAUta,EAAG2a,GAC/B,MAAO0H,GAAOK,EAAQ1iB,GAAI0iB,EAAQ/H,OAI9C,QAASgI,GAAW1S,GAChB,GAAI2S,GAAO3S,EAAO4S,QACbxf,UAAU,MAAQyf,GAClBlgB,KAAK,SAAU3J,GACZ,MAAOA,GAAEma,SAGb2P,EAAWH,EAAKzX,QACf3N,OAAO,MACPoC,KAAK,QAASkjB,EAYnB,OAVAnB,GAAStd,QAAQ,SAAU2e,EAAGjsB,GAC1BgsB,EAASvlB,OAAO,MACXoC,KAAK,QAASqjB,EAAmB,KAAOlsB,GACxCqqB,KAAK,SAAUnoB,GACZ,MAAOuG,GAAO0jB,qBAAqBF,EAAG/pB,OAIlD2pB,EAAKvX,OAAOxH,SAEL+e,EA5JX,GAAIT,GAAkB,iBAClBW,EAAgB,eAChBG,EAAmB,kBACnBf,EAAkB,iBAClBJ,EAAiB,gBAEjBtiB,EAASlK,EAAGiK,cAEZgjB,EAAQ,GACRZ,KACAe,EAAU,SAAUzpB,GACpB,MAAOA,IAEPopB,EAASjtB,EAAGktB,SAqShB,OAnSA9iB,GAAO+E,UAAY,WAKf,MAJA/E,GAAO6D,UAAU,SAASQ,SAE1B8e,EAAWlB,KAEJjiB,GAGXA,EAAO0jB,qBAAuB,SAAUF,EAAG/pB,GACvC,MAAsB,kBAAN+pB,GACRA,EAAE/pB,GACa,gBAAN+pB,GACR/pB,EAAE+pB,GACFA,EAAEhoB,OAAO/B,IAKtBuG,EAAOuiB,sBAAwB,SAAU9oB,GAIrC,MAAqB,kBAANA,GACPuG,EAAO2jB,0BAA0BlqB,GAClB,gBAANA,GACRuG,EAAO4jB,0BAA0BnqB,GAAKka,OAAOla,EAAEuN,QAG5DhH,EAAO4jB,0BAA4B,SAAU7qB,GAEzC,MAAOA,GAAE8qB,OAAO,GAAGC,cAAgB/qB,EAAE6K,MAAM,IAG/C5D,EAAO2jB,0BAA4B,SAAU5nB,GAEzC,GAAIhD,GAAI4a,OAAO5X,GACXgoB,EAAKhrB,EAAE5B,QAAQ,UACnB,IAAI4sB,GAAM,EAAG,CACT,GAAIC,GAAKjrB,EAAEkrB,YAAY,IACvB,IAAID,GAAM,EAAG,CACTjrB,EAAIA,EAAEmrB,UAAUH,EAAK,EAAGC,EACxB,IAAIG,GAAKprB,EAAE5B,QAAQ,eACfgtB,IAAM,IACNprB,EAAIA,EAAEyD,QAAQ,eAAgB,MAI1C,MAAOzD,IAiGXiH,EAAOoF,UAAY,WACf,MAAOpF,GAAO+E,aAQlB/E,EAAOiT,KAAO,SAAUla,GACpB,MAAKyB,WAAUhD,QAGfurB,EAAQhqB,EACDiH,GAHI+iB,GA2Ff/iB,EAAOokB,QAAU,SAAU7pB,GACvB,MAAKC,WAAUhD,QAGf2qB,EAAW5nB,EACJyF,GAHImiB,GAkBfniB,EAAOqkB,OAAS,SAAU9pB,GACtB,MAAKC,WAAUhD,QAGf0rB,EAAU3oB,EACHyF,GAHIkjB,GAefljB,EAAOqjB,MAAQ,SAAU9oB,GACrB,MAAKC,WAAUhD,QAGfqrB,EAAStoB,EACFyF,GAHI6iB,GAMR7iB,EAAO8D,OAAOpG,EAAQqG,IA6BjCjO,EAAGwuB,SAAW,SAAU5mB,EAAQqG,GA4B5B,QAASke,KACL,GAAIxR,GAASzQ,EAAOG,OAAO0D,UAAU,OAAS0gB,GACrCnhB,KAAKof,IAAe,SAAU/oB,GAC3B,MAAOuG,GAAOiC,cAAcxI,KAGpC+qB,EAAY/T,EACP9E,QACA3N,OAAO,OACPoC,KAAK,QAASmkB,EAUvB,OARIE,IACAD,EACK5C,KAAK,SAAUnoB,GACZ,MAAOgrB,GAAWhrB,KAI9BgX,EAAO5E,OAAOxH,SACPmgB,EAGX,QAAShC,KACL,GAAII,GAAU5iB,EAAOU,YAAYiH,IAAIob,EAErC,OAAOntB,GAAGotB,OACLzM,IAAIvW,EAAOlJ,SACXmsB,SAASJ,GACTD,QAAQA,EAAQ9H,KAAK,SAAUta,EAAG2a,GAC/B,MAAO0H,GAAOK,EAAQ1iB,GAAI0iB,EAAQ/H,OAI9C,QAASuJ,GAAYjU,GACjB,GAAIkU,GAAQlU,EAAO4S,QACVxf,UAAU,OAAS+gB,GACnBxhB,KAAK,SAAU3J,GACZ,MAAOA,GAAEma,QAYrB,OATA+Q,GAAMhZ,QACD3N,OAAO,OACPoC,KAAK,QAASwkB,GACdhD,KAAK,SAAUnoB,GACZ,MAAOkoB,GAAMloB,KAGrBkrB,EAAM9Y,OAAOxH,SAENsgB,EA5EX,GAAIhC,GAAkB,gBAClBiC,EAAiB,eACjBlC,EAAkB,gBAClB6B,EAAiB,cAEjBvkB,EAASlK,EAAGiK,cAEZgjB,EAAQ,IACRpB,EAAQ,SAAUloB,GAAK,MAAO,kDAAoDorB,KAAKC,UAAUrrB,IACjGypB,EAAU,SAAUzpB,GACpB,MAAOA,IAEPopB,EAASjtB,EAAGktB,UAEZ2B,EAAa,SAAUhrB,GACvB,MAAO,eAAkBipB,EAAkB,gBAAoBC,EAAkB,KAC7E3iB,EAAOiC,cAAcxI,GAAK,cAwJlC,OArJAuG,GAAO+E,UAAY,WAKf,MAJA/E,GAAO6D,UAAU,OAAS0gB,GAAgBlgB,SAE1CqgB,EAAYzC,KAELjiB,GAuDXA,EAAOoF,UAAY,WACf,MAAOpF,GAAO+E,aAQlB/E,EAAOiT,KAAO,SAAUla,GACpB,MAAKyB,WAAUhD,QAGfurB,EAAQhqB,EACDiH,GAHI+iB,GAgBf/iB,EAAO4hB,KAAO,SAAUrnB,GACpB,MAAKC,WAAUhD,QAGfmqB,EAAQpnB,EACDyF,GAHI2hB,GAcf3hB,EAAO+kB,UAAY,SAAUxqB,GACzB,MAAKC,WAAUhD,QAGfitB,EAAalqB,EACNyF,GAHIykB,GAmBfzkB,EAAOqkB,OAAS,SAAU9pB,GACtB,MAAKC,WAAUhD,QAGf0rB,EAAU3oB,EACHyF,GAHIkjB,GAefljB,EAAOqjB,MAAQ,SAAU9oB,GACrB,MAAKC,WAAUhD,QAGfqrB,EAAStoB,EACFyF,GAHI6iB,GAMR7iB,EAAO8D,OAAOpG,EAAQqG,IAuCjCjO,EAAGkvB,YAAc,SAAUtnB,EAAQqG,GA4C/B,QAASkhB,GAAYC,GACjB,GAAIpN,GAAeoN,EAAQvZ,QAAQ3N,OAAO,IAE1C8Z,GACK1X,KAAK,QAASJ,EAAOiX,mBACrB7W,KAAK,YAAa+kB,GAClBnnB,OAAO,UAAUoC,KAAK,QAAS,SAAU3G,EAAGlC,GACzC,MAAOyI,GAAOkX,aAAe,KAAO3f,IAEvC6P,GAAG,QAASpH,EAAOyG,SACnBrG,KAAK,OAAQJ,EAAOqJ,UACpBjJ,KAAK,IAAK,GACftK,EAAG4C,WAAWwsB,EAASllB,EAAO2E,sBACzBd,UAAU,UAAY7D,EAAOkX,cAC7B9W,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAOyX,QAAQhe,KAEzB2G,KAAK,UAAW,SAAU3G,GACvB,MAAQuG,GAAOyX,QAAQhe,GAAK,EAAK,EAAI,IAG7CuG,EAAO6X,eAAeC,GAEtB9X,EAAOkY,gBAAgBJ,GAG3B,QAASsN,GAAYF,GACjBpvB,EAAG4C,WAAWwsB,EAASllB,EAAO2E,sBACzBvE,KAAK,YAAa+kB,GAClBthB,UAAU,UAAY7D,EAAOkX,cAC7B9W,KAAK,OAAQJ,EAAOqJ,UACpBjJ,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAOyX,QAAQhe,KAEzB2G,KAAK,UAAW,SAAU3G,GACvB,MAAQuG,GAAOyX,QAAQhe,GAAK,EAAK,EAAI,IAG7CuG,EAAO+X,eAAemN,GACtBllB,EAAOmY,eAAe+M,GAG1B,QAASG,GAAYH,GACjBA,EAAQrZ,OAAOxH,SAGnB,QAASihB,GAAQ7rB,GACb,GAAIoG,GAAIG,EAAOH,IAAIG,EAAOiC,cAAcxI,GAIxC,OAHIie,OAAM7X,KACNA,EAAI,GAEDA,EAGX,QAAS0lB,GAAQ9rB,GACb,GAAIqG,GAAIE,EAAOF,IAAIE,EAAOkC,gBAAgBzI,GAI1C,OAHIie,OAAM5X,KACNA,EAAI,GAEDA,EAtGX,GAAIE,GAASlK,EAAGghB,YAAYhhB,EAAGyT,yBAE3Bic,GAAiB,CAErBxlB,GAAO2E,mBAAmB,IAE1B,IAAIwgB,GAAgB,SAAU1rB,GAC1B,MAAO,aAAgB6rB,EAAQ7rB,GAAM,IAAO8rB,EAAQ9rB,GAAM,IA2G9D,OAlGAuG,GAAOylB,cAAgB,SAAUlrB,GAC7B,MAAKC,WAAUhD,QAGfguB,EAAiBjrB,EACVyF,GAHIwlB,GAMfxlB,EAAO0M,SAAW,WACV8Y,GACAxlB,EAAOzD,IAAIlD,QAAQ2G,EAAOuX,OAAQvX,EAAOwX,SAG7CxX,EAAOzD,IAAI8C,OAAOW,EAAOmX,WAAYnX,EAAO4K,cAAgB5K,EAAOqY,yBAEnE,IAAI6M,GAAUllB,EAAOkQ,aAAarM,UAAU,KAAO7D,EAAOiX,mBACrD7T,KAAKpD,EAAOoD,OAAQ,SAAU3J,GAAK,MAAOA,GAAE8c,KAEjD0O,GAAYC,GAEZE,EAAYF,GAEZG,EAAYH,GAEZllB,EAAO4S,sBAiEX5S,EAAO8M,YAAc,aAIrB9M,EAAO+M,YAAc,WAEjB/M,EAAO4S,sBAGJ5S,EAAO8D,OAAOpG,EAAQqG,IA+BjCjO,EAAG4vB,eAAiB,SAAUhoB,EAAQqG,GAoFlC,QAAS4hB,MACmB7sB,SAApBkH,EAAO4lB,UAA0B5lB,EAAO4M,cACxC5M,EAAO4lB,OAAOhwB,EAAGyS,MAAMQ,UACvB7I,EAAO4lB,SAASvsB,QAAQwsB,IAAiBC,MAAkB9U,YAAYhR,EAAOsM,cAAe,KAGjGtM,EAAO4lB,SAASvmB,OAAOW,EAAOsM,cAAe,IAC7CtM,EAAO+lB,WAAW/lB,EAAO+lB,aAAa1d,MAAMrI,EAAO4lB,WAEnD5lB,EAAO+lB,aAAatX,OAAO,SAG/B,QAASuX,MACcltB,SAAfkH,EAAOF,KAAqBE,EAAO4M,cACnC5M,EAAOF,EAAElK,EAAGyS,MAAMQ,UAClB7I,EAAOF,IAAIzG,QAAQyX,IAAYC,MAAaC,YAAYhR,EAAOsM,cAAe,KAGlFtM,EAAOF,IAAIT,OAAOW,EAAOsM,cAAe,IACxCtM,EAAO+R,MAAM/R,EAAO+R,QAAQ1J,MAAMrI,EAAOF,MAEzCE,EAAO+R,QAAQtD,OAAO,QAG1B,QAASwX,GAAeC,EAAO3uB,GAC3B2uB,EAAMnW,WAAW/P,EAAOqD,KACxB6iB,EAAM7iB,IAAIjD,KAAK,QAAS+lB,EAAkB,KAAO5uB,GAqLrD,QAAS6uB,KACL,MAAOC,GAAU1qB,OAAO,SAAUuqB,GAC9B,OAAQA,EAAM1V,kBAItB,QAAS8V,KACL,MAAOD,GAAU1qB,OAAO,SAAUuqB,GAC9B,MAAOA,GAAM1V,kBAIrB,QAAS+V,GAAYruB,GACjB,MAAOA,GAAOwY,IAAI,SAAUyC,GACxB,MAAOA,GAAErC,aAKjB,QAASA,KACL,MAAOlb,GAAGsH,IAAIqpB,EAAYH,MAG9B,QAASP,KACL,MAAOjwB,GAAGsH,IAAIqpB,EAAYD,MAG9B,QAASE,GAAYtuB,GACjB,MAAOA,GAAOwY,IAAI,SAAUyC,GACxB,MAAOA,GAAEpC,aAKjB,QAASA,KACL,MAAOjb,GAAG6D,MAAM0C,IAAIzG,EAAGuH,IAAIqpB,EAAYJ,MAAuBpmB,EAAOiS,gBAGzE,QAAS6T,KACL,MAAOhwB,GAAG6D,MAAM0C,IAAIzG,EAAGuH,IAAIqpB,EAAYF,MAAwBtmB,EAAOiS,gBAG1E,QAASwU,KACL,MAAOJ,GAAU3V,IAAI,SAAUyC,GAC3B,MAAOA,GAAE7I,aAQjB,QAASoc,KACL,MAAOL,GAAU3V,IAAI,SAAUyC,GAC3B,MAAOA,GAAE5I,aAvVjB,GAcIoc,GAdAR,EAAkB,MAClBS,EAAqC,GAErC5mB,EAASlK,EAAGyT,wBACZ8c,KAEAQ,KAEAC,GAAe,EACfC,GAAc,EAEdC,EAAcpxB,EAAGuO,IAAIqK,OACrByY,EAAmB,EACnBC,EAA0BN,EAE1BO,GAAsB,CAmY1B,OAjYAnnB,GAAOsC,yBACPtC,EAAO2E,mBAAmB,KAE1B7O,EAAGmE,SAAS+F,EAAQ,aAAc,WAG9B,IAAK,GAFDqD,GAAIpI,KAAKmsB,cAEJ7vB,EAAI,EAAGA,EAAI8uB,EAAU7uB,SAAUD,EAAG,CACvC,GAAI2uB,GAAQG,EAAU9uB,EAEtB0uB,GAAeC,EAAO3uB,GAEjB2uB,EAAMxlB,aACPwlB,EAAMxlB,UAAUV,EAAOU,aAEtBwlB,EAAMpvB,SACPovB,EAAMpvB,MAAMkJ,EAAOlJ,SAGvBovB,EAAMniB,WAAW/D,EAAO+D,cACxBmiB,EAAM/hB,IAAInE,EAAOmE,OACjB+hB,EAAM9V,OAAOpQ,EAAOoQ,UACpB8V,EAAMvhB,mBAAmB3E,EAAO2E,sBAChCuhB,EAAM9S,QAAQpT,EAAOoT,WACrB8S,EAAM/e,YAAYnH,EAAOmH,eAG7B,MAAO9D,KAGXrD,EAAOoS,UAAY,WAIf,IAAK,GAHDD,GAASnS,EAAOyS,cAChBC,EAAe1S,EAAO0S,aAAaP,GAE9B5a,EAAI,EAAGA,EAAI8uB,EAAU7uB,SAAUD,EACpC8uB,EAAU9uB,GAAGoE,OAAO,MACf+W,GACD2T,EAAU9uB,GAAGoE,OAAOwW,IAKhCnS,EAAOyM,cAAgB,WACgB,IAA/B2Z,IAAoB5uB,QAAgBwuB,IACJ,IAAhCM,IAAqB9uB,QAAgBmuB,IAErCS,IAAoB5uB,OAAS,IAAM2vB,EACnCnnB,EAAOiR,kCAAkCjR,EAAOqD,IAAKrD,EAAOF,IAAKE,EAAO+R,SAEnEuU,IAAqB9uB,OAAS,GACnCwI,EAAOiR,kCAAkCjR,EAAOqD,IAAKsjB,EAASK,IAItEhnB,EAAO6M,YAAc,WACkB,IAA/BuZ,IAAoB5uB,SACpBwI,EAAOwR,cAAc,IAAKxR,EAAO+R,QAAS/R,EAAO+H,UAAUD,MAC3D9H,EAAOkR,iBAAiB,IAAKlR,EAAO8R,aAAc,MAGlB,IAAhCwU,IAAqB9uB,SACrBwI,EAAOwR,cAAc,KAAMxR,EAAO+lB,aAAc/lB,EAAOK,QAAUL,EAAO+H,UAAUH,OAClF5H,EAAOkR,iBAAiB,KAAMlR,EAAOqnB,kBAAmB,GAAIrnB,EAAOK,QAAU6mB,KAiCrFlnB,EAAO0M,SAAW,WACd,IAAK,GAAInV,GAAI,EAAGA,EAAI8uB,EAAU7uB,SAAUD,EAAG,CACvC,GAAI2uB,GAAQG,EAAU9uB,EAEjB2uB,GAAM7iB,KACP4iB,EAAeC,EAAO3uB,GAGtBuvB,GACAZ,EAAMzd,OAAOzI,EAAOyI,UAGxByd,EAAMrmB,EAAEG,EAAOH,KAEfqmB,EAAM7V,MAAMrQ,EAAOqQ,SAEf6V,EAAM1V,iBACN0V,EAAMpmB,EAAEE,EAAO4lB,UACfM,EAAMnU,MAAM/R,EAAO+lB,gBAGnBG,EAAMpmB,EAAEE,EAAOF,KACfomB,EAAMnU,MAAM/R,EAAO+R,UAGvBmU,EAAMxZ,WAENwZ,EAAMlhB,wBAUdhF,EAAOsnB,sBAAwB,SAAU/sB,GACrC,MAAKC,YAIL2sB,EAAsB5sB,EACfyF,GAJImnB,GAYfnnB,EAAOunB,aAAe,SAAUhtB,GAC5B,MAAKC,WAAUhD,QAGfqvB,EAAgBtsB,EAChB8rB,EAAUxhB,QAAQ,SAAUqhB,GACxBA,EAAM5e,QAAQuf,KAEX7mB,GANI6mB,GASf7mB,EAAO4S,mBAAqB,WACxB,IAAK,GAAIrb,GAAI,EAAGA,EAAI8uB,EAAU7uB,SAAUD,EAAG,CACvC,GAAI2uB,GAAQG,EAAU9uB,EACtB2uB,GAAM/W,MAAMnP,EAAOmP,SACnB+W,EAAMtT,uBAQd5S,EAAOqnB,gBAAkB,SAAU9sB,EAAG6R,GAClC,MAAK5R,WAAUhD,QAGfyvB,EAAmB1sB,EACnByF,EAAO+H,UAAUH,OAASsf,EAC1BA,EAAuCpuB,SAAZsT,EAAyBwa,EAAqCxa,EACzFpM,EAAO+H,UAAUH,OAASsf,EACnBlnB,GANIinB,GAmCfjnB,EAAOwnB,QAAU,SAAUtvB,GAavB,MAZAmuB,GAAYnuB,EACZmuB,EAAUxhB,QAAQ,SAAUqhB,GACxBA,EAAM5lB,OAAON,EAAOM,UACpB4lB,EAAM7lB,MAAML,EAAOK,SACnB6lB,EAAMne,QAAQ/H,EAAO+H,WAEjBgf,GACAb,EAAMhf,MAAMlH,EAAOkH,SAGvBgf,EAAM5e,QAAQuf,KAEX7mB,GAQXA,EAAOynB,SAAW,WACd,MAAOpB,IAUXrmB,EAAO0nB,YAAc,SAAUntB,GAC3B,MAAKC,WAAUhD,QAGfsvB,EAAevsB,EACRyF,GAHI8mB,GAWf9mB,EAAO2nB,WAAa,SAAUptB,GAC1B,MAAKC,WAAUhD,QAGfuvB,EAAcxsB,EACPyF,GAHI+mB,GAYf/mB,EAAO4lB,OAAS,SAAUrrB,GACtB,MAAKC,WAAUhD,QAGfmvB,EAAUpsB,EACHyF,GAHI2mB,SAwBR3mB,GAAO8Q,eAeP9Q,GAAO+Q,SAedjb,EAAGmE,SAAS+F,EAAQ,WAAY,WAC5B,MAAOlK,GAAG6D,MAAMmD,SAASlH,EAAGsH,IAAIupB,KAAkCzmB,EAAOsQ,kBAS7Exa,EAAGmE,SAAS+F,EAAQ,WAAY,WAC5B,MAAOlK,GAAG6D,MAAM0C,IAAIzG,EAAGuH,IAAIupB,KAAkC1mB,EAAOsQ,kBAGxEtQ,EAAO2G,YAAc,WACjB,MAAO0f,GAAUuB,OAAO,SAAUjD,EAAOuB,GAKrC,MAJIY,IACAZ,EAAMzd,OAAOzI,EAAOyI,UAExBkc,EAAMttB,KAAKgE,MAAMspB,EAAOuB,EAAMvf,eACvBge,QAIf3kB,EAAO4G,gBAAkB,SAAUnN,GAC/B,IAAK,GAAIouB,GAAI,EAAGA,EAAIxB,EAAU7uB,SAAUqwB,EAAG,CACvC,GAAI3B,GAAQG,EAAUwB,EACtB3B,GAAMtf,gBAAgBnN,KAI9BuG,EAAO6G,YAAc,SAAUpN,GAC3B,IAAK,GAAIouB,GAAI,EAAGA,EAAIxB,EAAU7uB,SAAUqwB,EAAG,CACvC,GAAI3B,GAAQG,EAAUwB,EACtB3B,GAAMrf,YAAYpN,KAI1BuG,EAAO8G,aAAe,WAClBzI,QAAQC,IAAI,wDAkBhB0B,EAAO+lB,WAAa,SAAUA,GAC1B,MAAKvrB,WAAUhD,QAGfwvB,EAAcjB,EACP/lB,GAHIgnB,GAMRhnB,EAAO8D,OAAOpG,EAAQqG,IAkCjCjO,EAAGgyB,YAAc,SAAUpqB,EAAQqG,GAG/B,QAASgkB,GAAQvnB,EAAG2a,GAChB,MAAOvlB,GAAGktB,UAAU9iB,EAAOiC,cAAczB,GAAIR,EAAOiC,cAAckZ,IAoDtE,QAAS6M,GAAW7U,GACZ8U,EAAQ9U,GAAG9P,KACX4kB,EAAQ9U,GAAG9P,IAAIgB,eAEZ4jB,GAAQ9U,GAGnB,QAAS+U,KACLvtB,OAAOwtB,KAAKF,GAASvX,IAAIsX,GACzBC,KAhEJ,GAQIG,GARApoB,EAASlK,EAAG4vB,eAAehoB,EAAQqG,GAMnCkkB,KACAI,EAAiBvyB,EAAGqoB,UAEpBmK,EAAc1yB,EAAGktB,UACjByF,EAAaR,CAiIjB,OA/HA/nB,GAAOsC,uBAAuBjL,KAAK,iBAAkB,SACrD2I,EAAO0nB,aAAY,GAEnB1nB,EAAO+S,gBAAkB,WACrB,GACIyV,GADAC,KAEAC,EAAS9yB,EAAGotB,OAAOzM,IAAI6R,EACvBE,IACAI,EAAOzF,SAASqF,GAEhBC,GACAG,EAAOC,WAAWJ,EAEtB,IAAIK,GAAUF,EAAO9F,QAAQ5iB,EAAOoD,QAChCqkB,EACAmB,EAAQlY,IAAI,SAAUmY,EAAKtxB,GACvB,GAAIuxB,GAAWb,EAAQY,EAAItS,MAAQ8R,EAAersB,KAAKgE,EAAQA,EAAQ+D,EAAY8kB,EAAItS,IAAKhf,EAM5F,OALK0wB,GAAQY,EAAItS,OACbiS,GAAkB,GAEtBP,EAAQY,EAAItS,KAAOuS,EACnBL,EAAKpxB,KAAKwxB,EAAItS,KACPuS,EACFpoB,UAAUV,EAAOU,aACjB5J,OAAO8L,IAAIhN,EAAGkN,QAAQ+lB,EAAIjV,SAAUiV,EAAItS,KACxCtU,YAAYjC,EAAOiC,eACnBC,cAAclC,EAAOkC,iBACrBkR,QAAQpT,EAAOoT,YAI5BzY,QAAOwtB,KAAKF,GACPtsB,OAAO,SAAUwX,GAAI,MAA2B,KAApBsV,EAAKtxB,QAAQgc,KACzCtO,QAAQ,SAAUsO,GACf6U,EAAW7U,GACXqV,GAAkB,IAE1BxoB,EAAO+oB,SAAStB,GACZe,GAAmBxoB,EAAOqH,UAC1BrH,EAAOqH,SAAS/O,UA4BxB0H,EAAO/I,MAAQ,SAAUsD,GACrB,MAAKC,WAAUhD,QAGf6wB,EAAiB9tB,EACjB2tB,IACOloB,GAJIqoB,GAYfroB,EAAOgpB,eAAiB,SAAUzuB,GAC9B,MAAKC,WAAUhD,QAGf4wB,EAAkB7tB,EAClB2tB,IACOloB,GAJIooB,GAgBfpoB,EAAOipB,WAAa,SAAU1uB,GAC1B,MAAKC,WAAUhD,QAGf8wB,EAAc/tB,EACd2tB,IACOloB,GAJIsoB,GAaftoB,EAAOkpB,UAAY,SAAU3uB,GACzB,MAAKC,WAAUhD,QAGf+wB,EAAahuB,EACb2tB,IACOloB,GAJIuoB,GAQfvoB,EAAO+oB,SAAW/oB,EAAOwnB,cAClBxnB,GAAOwnB,QAEPxnB,GAmCXlK,EAAGqzB,mBAAqB,SAAUzrB,EAAQqG,GAoCtC,QAAS2I,GAAS+P,GACd,GAAIrZ,GAAOgmB,GAEX,IAAIC,EAAY5M,GAAa,CACzB,GAAI6M,GAAUC,EAAc9M,EAE5B+M,GAAYF,EAAS7M,EAAYrZ,GAEjC+D,EAAYmiB,EAAS7M,EAAYrZ,IAIzC,QAASgmB,KAGL,IAAK,GAFDhmB,MACAqmB,EAAWzpB,EAAOoD,OACb7L,EAAI,EAAGA,EAAIkyB,EAASjyB,SAAUD,EACnC6L,EAAKpD,EAAOiC,cAAcwnB,EAASlyB,KAAOyI,EAAOkC,gBAAgBunB,EAASlyB,GAE9E,OAAO6L,GAGX,QAASimB,GAAY5M,GACjB,MAAOiN,GAAQjN,GAAYxa,YAG/B,QAASsnB,GAAc9M,GACnB,GAAI6M,GAAUtpB,EAAOmE,MAChBN,UAAU8lB,EAAclN,IACxBzY,QAAQ,WAAY,SAAUvK,GAC3B,MAAOmwB,GAAWnN,EAAYhjB,KAEjCuK,QAAQ,aAAc,SAAUvK,GAC7B,MAAOowB,GAAapN,EAAYhjB,KAEnC2G,KAAK,QAAS,SAAU3G,GACrB,GAAIqwB,GAAiBJ,EAAQjN,GAAYlf,KACrCwsB,EAAcj0B,EAAG6D,MAAM2D,SAASosB,EAAQjN,GAAYxa,YAAYxI,IAChEuwB,EAAcF,EAAiB,IAAMC,CAOzC,OANIH,GAAWnN,EAAYhjB,KACvBuwB,GAAe,aAEfH,EAAapN,EAAYhjB,KACzBuwB,GAAe,eAEZA,GAEf,OAAOV,GAGX,QAASK,GAAclN,GACnB,MAAO,UAAYA,EAAa,MAAQiN,EAAQjN,GAAYlf,KAGhE,QAASqsB,GAAWnN,EAAYhjB,GAC5B,MAAOuG,GAAO8F,aAAe9F,EAAO8F,UAAUmkB,EAAOxN,EAAYhjB,IAGrE,QAASowB,GAAapN,EAAYhjB,GAC9B,MAAOuG,GAAO8F,cAAgB9F,EAAO8F,UAAUmkB,EAAOxN,EAAYhjB,IAGtE,QAASwwB,GAAOxN,EAAYhjB,GACxB,MAAOiwB,GAAQjN,GAAYxa,YAAYxI,GAG3C,QAASiwB,GAAQzU,GACb,MAAOiV,GAAUjV,GAGrB,QAASuU,GAAYF,EAAS7M,EAAYrZ,GACtC,GAAI+mB,GAAQb,EACPxrB,OAAO,QACPsC,KAAK,OAAQ,WACV,GAAIgqB,GAAcx0B,EAAGkI,OAAO7C,MAAMmF,KAAK,OACvC,OAAIgqB,GACOA,EAEJ,SAEVhjB,GAAG,QAAS,SAAU3N,GACnB,MAAOuG,GAAOyG,QAAQhN,EAAGgjB,IAGjC3mB,GAAG4C,WAAWyxB,EAAOnqB,EAAO2E,sBAAsBvE,KAAK,OAAQ,SAAU3G,EAAGlC,GACxE,MAAOyI,GAAOqJ,SAASjG,EAAKsmB,EAAQjN,GAAYxa,YAAYxI,IAAKlC,KAYzE,QAAS4P,GAAYmiB,EAAS7M,EAAYrZ,GAClCpD,EAAOmH,eACPmiB,EAAQzlB,UAAU,SAASY,KAAK,SAAUhL,GACtC,GAAI8c,GAAM0T,EAAOxN,EAAYhjB,GACzB8F,EAAQ6D,EAAKmT,EACjB,OAAOvW,GAAOkH,SAASqP,IAAKA,EAAKhX,MAAOA,MAxIpD,GAAIS,GAASlK,EAAGqS,WAAWrS,EAAGiK,cAE9BC,GAAOgJ,cAAc,SAAUvP,GAC3B,MAAOA,IAAK,GAGhB,IACI4wB,GADAC,EAAW10B,EAAG20B,IAAIhP,OAGlB2O,IAsOJ,OApOAlqB,GAAO+E,UAAY,WACf/E,EAAOoE,UACP,KAAK,GAAIqY,GAAa,EAAGA,EAAayN,EAAU1yB,SAAUilB,EAAY,CAClE,GAAI+N,GAASxqB,EAAOmE,MAAMnG,OAAO,KAC5BoC,KAAK,QAAS,QAAUqc,GAEzB6M,EAAUkB,EAAO3mB,UAAU,KAAO6lB,EAAQjN,GAAYlf,MACrD6F,KAAKsmB,EAAQjN,GAAYrZ,MACzBuI,QACA3N,OAAO,KACPoC,KAAK,QAASspB,EAAQjN,GAAYlf,KAEvC+rB,GACKtrB,OAAO,QACPoC,KAAK,OAAQ,SACbA,KAAK,IAAKkqB,GAEfhB,EAAQtrB,OAAO,SAEf0O,EAAS+P,GAEb4N,GAAkB,GA2FtBrqB,EAAOyG,QAAU,SAAUhN,EAAGgjB,GAC1B,GAAIgO,GAAiBf,EAAQjN,GAAYxa,YAAYxI,EACrD3D,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAO8uB,GACdzqB,EAAOqF,iBAcfrF,EAAOoF,UAAY,WACf,IAAK,GAAIqX,GAAa,EAAGA,EAAayN,EAAU1yB,SAAUilB,EACtD/P,EAAS+P,GACL4N,GACArqB,EAAOmE,MAAMN,UAAU,KAAO6lB,EAAQjN,GAAYlf,KAAO,SAAS6C,KAAK,IAAKkqB,EAGpFD,IAAkB,GAuBtBrqB,EAAO0qB,eAAiB,SAAUC,EAAMptB,EAAM0E,GAC1C,IAAK,GAAI1K,GAAI,EAAGA,EAAI2yB,EAAU1yB,SAAUD,EACpC,GAAI2yB,EAAU3yB,GAAGgG,OAASA,EAGtB,MAFA2sB,GAAU3yB,GAAG6L,KAAOunB,EACpBT,EAAU3yB,GAAG0K,YAAcA,EACpBjC,CAIf,OADAkqB,GAAU7yB,MAAMkG,KAAMA,EAAM6F,KAAMunB,EAAM1oB,YAAaA,IAC9CjC,GASXA,EAAO4qB,WAAa,SAAUA,GAG1B,MAFAN,GAASM,WAAWA,GACpBP,GAAkB,EACXrqB,GAYXA,EAAO6qB,SAAW,WACd,MAAOX,IAUXlqB,EAAO8qB,QAAU,WACb,MAAOR,IAQXtqB,EAAO+qB,cAAgB,SAAUxtB,GAG7B,IAAK,GAFDstB,MAEKtzB,EAAI,EAAGA,EAAI2yB,EAAU1yB,SAAUD,EAAG,CACvC,GAAIgc,GAAQ2W,EAAU3yB,EAClBgc,GAAMhW,OAASA,GACfstB,EAASxzB,KAAKkc,GAMtB,MAFA2W,GAAYW,EAEL7qB,GAGJA,EAAO8D,OAAOpG,EAAQqG,IA6CjCjO,EAAGk1B,cAAgB,SAAU7qB,EAAM4D,GAwC/B,QAASknB,KAKL,MAJAjd,GAAKhO,EAAOlC,OAAO,KAAOotB,GACtBld,EAAGjQ,UACHiQ,EAAKhO,EAAOmE,MAAMnG,OAAO,KAAKoC,KAAK,QAAS8qB,IAEzCld,EAGX,QAASmd,KACL,GAAI/nB,GAAOgoB,GAEXC,GAAQxmB,QAAQ,SAAUymB,GACtB,GAAIC,GAAQC,EAASF,EAAOloB,GAExBqoB,EAASF,EAAMztB,OAAO,UAAYoZ,EAElCuU,GAAO1tB,UACP0tB,EAASF,EAAMvtB,OAAO,UACjBoC,KAAK,QAAS8W,GACd9W,KAAK,IAAK,GACVA,KAAK,OAAQJ,EAAOqJ,UACpBjC,GAAG,QAASpH,EAAOyG,UAG5B3Q,EAAG4C,WAAW+yB,EAAQzrB,EAAO2E,sBACxBvE,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAOyX,QAAQhe,KAG9BuG,EAAO6X,eAAe0T,GAEtBvrB,EAAOkY,gBAAgBqT,KAI/B,QAASH,KACL,GAAIhoB,KAIJ,OAHApD,GAAOoD,OAAOyB,QAAQ,SAAU6mB,GAC5BtoB,EAAKpD,EAAOiC,cAAcypB,IAAUA,IAEjCtoB,EAGX,QAASooB,GAASF,EAAOloB,GACrB,GAAIuoB,GAAkB1U,EAAoB,IAAMnhB,EAAG6D,MAAM2D,SAASguB,EAAM/tB,MAEpEguB,EAAQvd,EAAGlQ,OAAO,KAAOhI,EAAG6D,MAAM2D,SAASguB,EAAM/tB,MAUrD,OARIguB,GAAMxtB,UACNwtB,EAAQvd,EAAGhQ,OAAO,KACboC,KAAK,QAASurB,GACdvrB,KAAK,YAAa,aAAekrB,EAAMzrB,EAAI,IAAMyrB,EAAMxrB,EAAI,MAGpEyrB,EAAMG,MAAMtoB,EAAKkoB,EAAM/tB,OAEhBguB,EAWX,QAASK,KACL,GAAIxoB,GAAOgoB,GAEXC,GAAQxmB,QAAQ,SAAUymB,GACtB,GAAIC,GAAQC,EAASF,EAAOloB,GAExBqoB,EAASF,EAAMztB,OAAO,UAAYoZ,EAEtCphB,GAAG4C,WAAW+yB,EAAQzrB,EAAO2E,sBACxBvE,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAOyX,QAAQhe,KAEzB2G,KAAK,OAAQJ,EAAOqJ,UAEzBrJ,EAAO+X,eAAewT,GAEtBvrB,EAAOmY,eAAeoT,KA1H9B,GAKIvd,GALAkd,EAAuB,iBACvBjU,EAAoB,OACpBC,EAAe,SAEflX,EAASlK,EAAGghB,YAAYhhB,EAAGiK,eAE3BsrB,IAwJJ,OAtJArrB,GAAO2E,mBAAmB,KAE1B3E,EAAOsX,oBAAoB,SAAU7d,GACjC,MAAOA,GAAE8F,QAWbS,EAAOsrB,MAAQ,SAAU/tB,EAAMsC,EAAGC,GAE9B,MADAurB,GAAQh0B,MAAMkG,KAAMA,EAAMsC,EAAGA,EAAGC,EAAGA,IAC5BE,GAGXA,EAAO+E,UAAY,WASf,MARAiJ,GAAKid,IAELjrB,EAAOzD,IAAI8C,OAAOW,EAAOmX,WAAYnX,EAAOK,QAAUL,EAAOqY,0BAE7D8S,IAEAnrB,EAAO4S,qBAEA5S,GA8DXA,EAAOoF,UAAY,WAKf,MAJAwmB,KAEA5rB,EAAO4S,qBAEA5S,GAuBXA,EAAOzB,MAAQ,SAAUstB,GACrB,GAAIA,EAAM,CACN,GAAIC,GAAS9rB,EAAOlC,OAAO,KAAOhI,EAAGE,UAAUE,kBAE3C41B,GAAO/tB,UACP+tB,EAAS9rB,EAAOmE,MACXnG,OAAO,KACPoC,KAAK,QAAStK,EAAGE,UAAUE,mBAGpC,IAAI61B,GAAYD,EAAO9tB,OAAO,QACzBoC,KAAK,IAAK,IACVA,KAAK,IAAK,GAEf0rB,GACK9tB,OAAO,QACPoC,KAAK,QAASJ,EAAOK,SACrBD,KAAK,SAAUJ,EAAOM,UACtB8G,GAAG,YAAa,WACb,GAAIqK,GAAW7b,EAAGo2B,MAAMF,EAAO/oB,QAC3BhI,EAAM0W,EAAS,GAAK,KAAOA,EAAS,EACxCsa,GAAUtnB,KAAK1J,SAGvBiF,GAAO6D,UAAU,UAAUQ,QAG/B,OAAOrE,IAGXA,EAAO8D,OAAO3D,EAAM4D,GAEb/D,GA+BXlK,EAAGm2B,SAAW,SAAUvuB,EAAQqG,GA6B5B,QAASmoB,KACL,IAAK9hB,GAAM+hB,EAAW,CAClB,GAAIha,GAASvc,EAAGuc,OAAOia,EAAUpsB,EAAOyW,oBACpCtE,GAAO,GAAK,IACZA,EAAO,GAAK,GAEhB/H,EAAKxU,EAAGyS,MAAMQ,SAASxP,OAAO8Y,GACzB9S,OAAO,EAAGW,EAAOiI,mBAE1B+C,EAAO3C,MAAM+B,GAGjB,QAASiiB,KACL,GAAIC,GAAQte,EAAGlQ,OAAO,SAEtBouB,KAEII,EAAMvuB,UACNuuB,EAAQte,EAAGhQ,OAAO,KAAKoC,KAAK,QAAS,QAChCA,KAAK,YAAa,gBAAkBJ,EAAOkI,kBAAoB,MAGxEpS,EAAG4C,WAAW4zB,EAAOtsB,EAAO2E,sBACvB3I,KAAKgP,GAkCd,QAASuhB,KACLve,EAAGnK,UAAU,UACR/F,OAAO,kBACPuG,SAEL2J,EAAGnK,UAAU,UACR7F,OAAO,QACPoC,KAAK,QAAS,aACdA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,KAAM,WACR,OAAQJ,EAAOkI,oBAI3B,QAASqE,KACL6f,EAAWpsB,EAAOoD,OAElBipB,IACAE,GAEA,IAAInJ,GAAOpV,EAAGnK,UAAU,KAAO2oB,GAC1BppB,KAAKgpB,EAEVlT,GAAekK,GACfhK,EAAegK,GACfjK,EAAeiK,GAGnB,QAASlK,GAAekK,GACpB,GAAIG,GAAWH,EAAKzX,QACf3N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAOi1B,GAAe,KAAOj1B,GAGrCgsB,GAASvlB,OAAO,QAAQoC,KAAK,QAAS,GAEtCsZ,EAAa6J,GACb/I,EAAa4I,GAGjB,QAAShK,GAAegK,GACpBA,EAAKvX,OAAOxH,SAGhB,QAASooB,KACL,GAAItsB,GAAOiK,EAAG,EACd,OAAQjK,OAAUP,EAAAA,IAAYO,IAASA,EAAQiK,EAAG,GAAKjK,EAG3D,QAASgZ,GAAeiK,GACpB,GAEI9iB,GAFAtG,EAAIoyB,EAAS50B,MAMb8I,GAHCosB,EAGQA,GAFC1sB,EAAOkI,mBAAqBlO,EAAI,GAAK6iB,GAAQ7iB,EAMtD2yB,IACDC,EAAgBtsB,EAAS,EAG7B,IAAIusB,GAAOzJ,EAAKhjB,KAAK,YAAa,SAAU3G,EAAGlC,GACvC,MAAO,iBAAmBA,EAAI,GAAKslB,EAAOtlB,EAAI+I,GAAU,MACzDxC,OAAO,QACTsC,KAAK,SAAUE,GACfF,KAAK,OAAQJ,EAAOqJ,UACpBjC,GAAG,QAASX,GACZzC,QAAQ,aAAc,SAAUvK,GAC7B,MAAQuG,GAAO8F,aAAgBgnB,EAAcrzB,IAAK,IAErDuK,QAAQ,WAAY,SAAUvK,GAC3B,MAAQuG,GAAO8F,YAAegnB,EAAcrzB,IAAK,GAGzD3D,GAAG4C,WAAWm0B,EAAM7sB,EAAO2E,sBACtBvE,KAAK,QAAS,SAAU3G,GACrB,MAAOP,MAAKC,IAAIszB,IAAcriB,EAAGpK,EAAOkC,gBAAgBzI,OAE3D2G,KAAK,YAAa2sB,GAEvBtT,EAAa2J,GACb5I,EAAa4I,GAGjB,QAAS3J,GAAa2J,GACdpjB,EAAOmH,gBACPic,EAAKvf,UAAU,SAASQ,SACxB+e,EAAKplB,OAAO,SAASyG,KAAKzE,EAAOkH,UAIzC,QAASwS,GAAa6J,GACdvjB,EAAOiH,eACPsc,EAASvlB,OAAO,QACXoJ,GAAG,QAASX,GAEjBzG,EAAOgtB,oBACPzJ,EAASvlB,OAAO,QACXoC,KAAK,QAAS6sB,GACd7lB,GAAG,QAASX,GAIzB,QAAS+T,GAAa4I,GAClB,GAAIpjB,EAAOiH,cAAe,CACtB,GAAIimB,GAAM9J,EAAKtlB,OAAO,QACjBsC,KAAK,IAAK+sB,GACV/sB,KAAK,IAAKwsB,GACVxsB,KAAK,KAAMgtB,GACXhmB,GAAG,QAASX,GACZrG,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAOi1B,GAAe,KAAOj1B,IAEhCkN,KAAK,SAAUhL,GACZ,MAAOuG,GAAOgH,QAAQvN,IAE9B3D,GAAG4C,WAAWw0B,EAAKltB,EAAO2E,sBACrBvE,KAAK,YAAa2sB,GAE3B,GAAI/sB,EAAOgtB,mBAAoB,CAC3B,GAAIK,GAAWjK,EAAKtlB,OAAO,IAAMmvB,GACxB7sB,KAAK,IAAKJ,EAAOiI,iBAAmBqlB,GACpCltB,KAAK,IAAKwsB,GACVxsB,KAAK,cAAe,OACpBgH,GAAG,QAASX,GACZrG,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO01B,GAAoB,KAAO11B,IAErCkN,KAAK,SAAUhL,GACZ,MAAOuG,GAAOkH,QAAQzN,IAElC3D,GAAG4C,WAAW20B,EAAUrtB,EAAO2E,sBAC1BvE,KAAK,YAAa2sB,IAiB/B,QAAStmB,GAAQhN,GACbuG,EAAOyG,QAAQhN,GAGnB,QAASszB,GAAWtzB,GAChB,GAAIoG,GAAIuK,EAAGpK,EAAOyW,oBAAoBhd,IAClC8zB,EAAKd,IACL1zB,EAAI8G,EAAI0tB,EAAKA,EAAK1tB,CACtB,OAAO,aAAe9G,EAAI,MAgH9B,QAAS+zB,GAAerzB,GACpB,MAAOuG,GAAO8F,UAAU9F,EAAOwW,kBAAkB/c,IAxWrD,GAAIuU,GAiBA5D,EAEA+hB,EAIAC,EArBAe,EAAgB,GAChBP,EAAgB,GAChBD,GAAmB,EACnBS,EAAY,SACZE,EAAqB,EAErBzQ,EAAO,EAEP6P,GAAkB,EAClBF,EAAe,MACfS,EAAoB,WACpBO,GAAoB,EAEpBxtB,EAASlK,EAAG2f,SAAS3f,EAAG2R,YAAY3R,EAAGqS,WAAWrS,EAAGiK,iBAMrDiL,EAASpV,EAAGuO,IAAIqK,OAAOC,OAAO,SAsVlC,OAlVAzO,GAAOytB,QAAUztB,EAAO0W,IA4BxB1W,EAAO+E,UAAY,WASf,MARA/E,GAAOoE,WAEP4J,EAAKhO,EAAOmE,MACPnG,OAAO,KACPoC,KAAK,YAAa,aAAeJ,EAAO+H,UAAUD,KAAO,IAAM9H,EAAO+H,UAAUJ,IAAM,KAE3F4E,IAEOvM,GAGXA,EAAOkH,MAAM,SAAUzN,GACnB,MAAOuG,GAAOwW,kBAAkB/c,GAAK,KAAOuG,EAAOyW,oBAAoBhd,KAG3EuG,EAAOgH,MAAMhH,EAAOwW,mBAOpBxW,EAAOH,EAAI,SAAUA,GACjB,MAAKrF,WAAUhD,QAGf4S,EAAKvK,EACEG,GAHIoK,GAyJfpK,EAAOgtB,iBAAmB,SAAUzyB,GAChC,MAAKC,WAAUhD,QAGfg2B,EAAoBjzB,EACbyF,GAHIwtB,GAiBfxtB,EAAOoF,UAAY,WAEf,MADAmH,KACOvM,GAeXA,EAAOqQ,MAAQ,WACX,MAAOrF,IAaXhL,EAAO0tB,eAAiB,SAAUrqB,GAC9B,MAAK7I,WAAUhD,QAGfk1B,EAAkBrpB,EACXrD,GAHI0sB,GAWf1sB,EAAO+d,IAAM,SAAU1a,GACnB,MAAK7I,WAAUhD,QAGfqlB,EAAOxZ,EACArD,GAHI6c,GAYf7c,EAAOmK,SAAW,SAAU5P,GACxB,MAAKC,WAAUhD,QAGf20B,EAAY5xB,EACLyF,GAHImsB,GAYfnsB,EAAO2tB,aAAe,SAAUjzB,GAC5B,MAAKF,WAAUhD,QAGf21B,EAAgBzyB,EACTsF,GAHImtB,GAYfntB,EAAO4tB,aAAe,SAAUlzB,GAC5B,MAAKF,WAAUhD,QAGfo1B,EAAgBlyB,EAChBiyB,GAAmB,EACZ3sB,GAJI4sB,GAaf5sB,EAAO6tB,kBAAoB,SAAUnzB,GACjC,MAAKF,WAAUhD,QAGf81B,EAAqB5yB,EACdsF,GAHIstB,GAURttB,EAAO8D,OAAOpG,EAAQqG,IAiBjCjO,EAAGuR,OAAS,WAiGR,QAASymB,KACL,MAAOjR,GAAOkR,EAjGlB,GAGI7hB,GAUA8B,EAbAggB,EAAY,EAEZ7sB,KAEAiJ,EAAK,EACL+D,EAAK,EACL4f,EAAc,GACdlR,EAAO,EACPoR,GAAc,EACdC,EAAe,IACfC,EAAa,GACbC,GAAiB,CA0LrB,OAtLAjtB,GAAQzD,OAAS,SAAUoV,GACvB,MAAKtY,WAAUhD,QAGf0U,EAAU4G,EACH3R,GAHI+K,GAMf/K,EAAQ7I,OAAS,WACb4T,EAAQ/H,MAAMrG,OAAO,eAAeuG,SACpC2J,EAAK9B,EAAQ/H,MAAMnG,OAAO,KACrBoC,KAAK,QAAS,aACdA,KAAK,YAAa,aAAegK,EAAK,IAAM+D,EAAK,IACtD,IAAIxH,GAAcuF,EAAQvF,cAEtB0nB,EAAYrgB,EAAGnK,UAAU,oBACxBT,KAAKuD,GACLgF,QACA3N,OAAO,KACPoC,KAAK,QAAS,kBACdgH,GAAG,YAAa,SAAU3N,GACvByS,EAAQtF,gBAAgBnN,KAE3B2N,GAAG,WAAY,SAAU3N,GACtByS,EAAQrF,YAAYpN,KAEvB2N,GAAG,QAAS,SAAU3N,GACnBA,EAAExC,MAAM6P,aAAarN,IAG7BuU,GAAGnK,UAAU,oBACRG,QAAQ,UAAW,SAAUvK,GAC1B,MAAOA,GAAExC,MAAM8P,mBAAmBtN,KAGtCkN,EAAYf,KAAK9P,EAAGgG,MAAM,cAC1BuyB,EACKrwB,OAAO,QACPoC,KAAK,KAAM,GACXA,KAAK,KAAM2tB,EAAc,GACzB3tB,KAAK,KAAM2tB,GACX3tB,KAAK,KAAM2tB,EAAc,GACzB3tB,KAAK,eAAgB,GACrBA,KAAK,mBAAoBtK,EAAGgG,MAAM,cAClCsE,KAAK,SAAUtK,EAAGgG,MAAM,UAE7BuyB,EACKrwB,OAAO,QACPoC,KAAK,QAAS2tB,GACd3tB,KAAK,SAAU2tB,GACf3tB,KAAK,OAAQ,SAAU3G,GAAI,MAAOA,GAAIA,EAAE+b,MAAQ,SAGzD6Y,EAAUrwB,OAAO,QACRyG,KAAK3O,EAAGgG,MAAM,SACdsE,KAAK,IAAK2tB,EAAcC,GACxB5tB,KAAK,IAAK,WACP,MAAO2tB,GAAc,GAAK9yB,KAAKqzB,aAAerzB,KAAKqzB,aAAe,IAAM,EAAI,GAGxF,IAAIC,GAA6B,EAC7BC,EAAM,CACVH,GAAUjuB,KAAK,YAAa,SAAU3G,EAAGlC,GACrC,GAAI02B,EAAa,CACb,GAAIQ,GAAc,aAAeF,EAA6B,IAAMC,EAAMV,IAAqB,IAC3FY,EAAcN,KAAmB,EAAOnzB,KAAK0zB,UAAUtuB,MAAQwc,EAAOsR,CAQ1E,OANKI,GAA6BG,GAAcR,KAC1CM,EACFD,EAA6B,GAE7BA,GAA8BG,EAE3BD,EAGP,MAAO,eAAiBl3B,EAAIu2B,IAAqB,OAa7D3sB,EAAQtB,EAAI,SAAUA,GAClB,MAAKrF,WAAUhD,QAGf4S,EAAKvK,EACEsB,GAHIiJ,GAUfjJ,EAAQrB,EAAI,SAAUA,GAClB,MAAKtF,WAAUhD,QAGf2W,EAAKrO,EACEqB,GAHIgN,GAUfhN,EAAQ4c,IAAM,SAAUA,GACpB,MAAKvjB,WAAUhD,QAGfqlB,EAAOkB,EACA5c,GAHI0b,GAUf1b,EAAQytB,WAAa,SAAU5rB,GAC3B,MAAKxI,WAAUhD,QAGfu2B,EAAc/qB,EACP7B,GAHI4sB,GAUf5sB,EAAQ0tB,WAAa,SAAUt0B,GAC3B,MAAKC,WAAUhD,QAGfy2B,EAAc1zB,EACP4G,GAHI8sB,GAUf9sB,EAAQ2tB,YAAc,SAAUv0B,GAC5B,MAAKC,WAAUhD,QAGf02B,EAAe3zB,EACR4G,GAHI+sB,GAUf/sB,EAAQutB,UAAY,SAAUn0B,GAC1B,MAAKC,WAAUhD,QAGf22B,EAAa5zB,EACN4G,GAHIgtB,GAWfhtB,EAAQ4tB,cAAgB,SAAUx0B,GAC9B,MAAKC,WAAUhD,QAGf42B,EAAiB7zB,EACV4G,GAHIitB,GAMRjtB,GAmCXrL,EAAGk5B,YAAc,SAAUtxB,EAAQqG,GAuJ/B,QAASkrB,GAAmBC,EAAWjc,GACnC,GAAIkc,GAAUnvB,EAAO6D,UAAU,2BAA2BlI,OAAO,WAC7D,MAAOuzB,GAAUt5B,EAAGkI,OAAO7C,SAE3Bm0B,EAAUC,EAAQpc,MACtBoc,GAAQpc,KAAK/Z,KAAKo2B,IAAIrc,EAAM,IAC5Bnd,EAAG4C,WAAWy2B,EAASnvB,EAAO2E,sBAAsBvE,KAAK,IAAKivB,GAC9DA,EAAQpc,KAAKmc,GAuBjB,QAASG,GAAe5zB,GACpB,GAAIwzB,GAAUnvB,EAAO6D,UAAU,2BAA2BqB,KAAK,SAAUzL,GACrEwB,KAAKuK,SAAW7J,GAAUA,EAAO2D,WAAW7F,EAAE8c,MAGlDzgB,GAAG4C,WAAWy2B,EAASnvB,EAAO2E,sBAAsBvE,KAAK,IAAKivB,GAzLlE,GAAIrvB,GAASlK,EAAGyT,wBACZ8lB,EAAUz5B,EAAGuO,IAAIqrB,SAEjBC,EAAqB,SAAUh2B,GAAK,MAAOA,GAAE8F,OAE7CmwB,EAAsB1vB,EAAOiC,aACjCjC,GAAOiC,YAAY,SAAUxI,GAAK,MAAOi2B,GAAoBj2B,GAAG,KAChEuG,EAAOkC,cAAc,SAAUzI,GAAK,MAAOi2B,GAAoBj2B,GAAG,KAClEuG,EAAOgJ,cAAc,WAAc,MAAOhJ,GAAOsD,YAEjD,IAAIqsB,GAAW,SAAUl2B,GACrB,MAAO,aAAeuG,EAAOH,IAAIG,EAAOiC,cAAcxI,IAAM,IACtCuG,EAAOF,IAAIE,EAAOkC,gBAAgBzI,IAAM,KAG9Dm2B,EAAc,EACdC,EAAmB,EACnBC,EAAc,CAwMlB,OAtMAT,GAAQpc,KAAK,SAAUxZ,GACnB,MAAKg2B,GAAmBh2B,GAEbwB,KAAKuK,SACLtM,KAAKo2B,IAAIO,EAAkB,GAE3B32B,KAAKo2B,IAAIM,EAAa,GAJtBE,IAQfh6B,EAAGmE,SAAS+F,EAAQ,UAAW,SAAUrE,GACrC,MAAKnB,WAAUhD,OAIRwI,EAAO+vB,SAASj6B,EAAG4F,QAAQgE,2BAA2B/D,IAHlDqE,EAAO+vB,aAMtB/vB,EAAO0M,SAAW,WACd,GAAIyiB,GAAUnvB,EAAOkQ,aAAarM,UAAU,eACvCT,KAAKpD,EAAOoD,OAEjB+rB,GACKxjB,QACJ3N,OAAO,QACHoC,KAAK,QAAS,UACdA,KAAK,UAAW,GAChBA,KAAK,OAAQJ,EAAOqJ,UACpBjJ,KAAK,YAAauvB,GAEvB75B,EAAG4C,WAAWy2B,EAASnvB,EAAO2E,sBACzBvE,KAAK,UAAW,SAAU3G,GAAK,MAAOg2B,GAAmBh2B,GAAK,EAAI,IAClE2G,KAAK,OAAQJ,EAAOqJ,UACpBjJ,KAAK,YAAauvB,GAClBvvB,KAAK,IAAKivB,GAEfv5B,EAAG4C,WAAWy2B,EAAQtjB,OAAQ7L,EAAO2E,sBAChCvE,KAAK,UAAW,GAAGiE,UAU5BrE,EAAOgwB,kBAAoB,SAAUC,GACjC,MAAKz1B,WAAUhD,QAGfi4B,EAAqBQ,EACdh1B,MAHIw0B,GAafzvB,EAAOwvB,OAAS,SAAUU,GACtB,MAAK11B,WAAUhD,QAGf63B,EAAQa,KAAKA,GACNlwB,GAHIqvB,EAAQa,QAWvBlwB,EAAOmwB,WAAa,SAAUp3B,GAC1B,MAAKyB,WAAUhD,QAGfo4B,EAAc72B,EACPiH,GAHI4vB,GAWf5vB,EAAOowB,gBAAkB,SAAUr3B,GAC/B,MAAKyB,WAAUhD,QAGfq4B,EAAmB92B,EACZiH,GAHI6vB,GAWf7vB,EAAOqwB,WAAa,SAAUt3B,GAC1B,MAAKyB,WAAUhD,QAGfs4B,EAAc/2B,EACPiH,GAHI8vB,GAMf9vB,EAAO2G,YAAc,WACjB,QAAS1P,MAAO+I,EAAQzC,KAAMyC,EAAOsD,WAAYkS,MAAOxV,EAAOqJ,cAGnErJ,EAAO4G,gBAAkB,SAAUnN,GAC/Bw1B,EAAmB,SAAUO,GACzB,MAAOA,GAAOpvB,KAAK,UAAY3G,EAAE+b,OAClCqa,GACH7vB,EAAO6D,UAAU,2BAA2BlI,OAAO,WAC/C,MAAO/F,GAAGkI,OAAO7C,MAAMmF,KAAK,UAAY3G,EAAE+b,QAC3CxR,QAAQ,WAAW,IAG1BhE,EAAO6G,YAAc,SAAUpN,GAC3Bw1B,EAAmB,SAAUO,GACzB,MAAOA,GAAOpvB,KAAK,UAAY3G,EAAE+b,OAClCoa,GACH5vB,EAAO6D,UAAU,2BAA2BlI,OAAO,WAC/C,MAAO/F,GAAGkI,OAAO7C,MAAMmF,KAAK,UAAY3G,EAAE+b,QAC3CxR,QAAQ,WAAW,IAa1BhE,EAAOuS,eAAiB,aAIxBvS,EAAOyS,YAAc,WACjB,GAAIN,GAASnS,EAAOmP,QAAQgD,QAQ5B,OAPInS,GAAOjG,UACPoY,EAAO,GAAKA,EAAO,GAAGzB,IAAI1Q,EAAOjG,SACjCoY,EAAO,GAAKA,EAAO,GAAGzB,IAAI1Q,EAAOjG,SAEjCiG,EAAOqD,IAAIvF,OAAO,UACb9B,KAAKgE,EAAOmP,QAAQgD,OAAOA,KAE7BA,GAGXnS,EAAO0S,aAAe,SAAUP,GAC5B,MAAOnS,GAAOmP,QAAQpR,UAAYoU,GAAUA,EAAO,GAAG,IAAMA,EAAO,GAAG,IAAMA,EAAO,GAAG,IAAMA,EAAO,GAAG,IAW1GnS,EAAOoS,UAAY,WACf,GAAID,GAASnS,EAAOyS,aAIpB,IAFAzS,EAAO+M,YAAY/M,EAAOqD,KAEtBrD,EAAO0S,aAAaP,GACpBrc,EAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAO,MACdqE,EAAOqF,gBAGXkqB,GAAe,OAEZ,CACH,GAAIe,GAAiBx6B,EAAG4F,QAAQgE,2BAA2ByS,EAC3Drc,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAO,MACdqE,EAAOrE,OAAO20B,GACdtwB,EAAOqF,eACRvP,EAAGE,UAAUS,aAEhB84B,EAAee,KAIvBtwB,EAAOsS,UAAY,SAAUD,GACzBA,EAAOrW,KAAKgE,EAAOmP,QAAQrP,EAAEE,EAAOF,OAGjCE,EAAO8D,OAAOpG,EAAQqG,IAmCjCjO,EAAGy6B,cAAgB,SAAU7yB,EAAQqG,GACjC,GAAIysB,GAAa,iBACb9O,EAAgB9rB,EAAG4F,OAAO,OAC1BwE,EAASlK,EAAGiK,cACZ4hB,GAAS8O,IAAI,GAAI7qB,KAAK,GAAI8qB,KAAK,GA6GnC,OA1GA1wB,GAAOsC,sBAAsB,UAkB7BtC,EAAO4hB,KAAO,SAAU7oB,GACpB,MAAKyB,WAAUhD,QAGXuB,EAAE23B,KACF/O,EAAM+O,KAAO33B,EAAE23B,KACR33B,EAAE03B,IACT9O,EAAM+O,KAAO33B,EAAE03B,IACR13B,EAAE6M,OACT+b,EAAM+O,KAAO33B,EAAE6M,MAEf7M,EAAE03B,IACF9O,EAAM8O,IAAM13B,EAAE03B,IACP13B,EAAE6M,OACT+b,EAAM8O,IAAM13B,EAAE6M,MAEd7M,EAAE6M,KACF+b,EAAM/b,KAAO7M,EAAE6M,KACR7M,EAAE03B,MACT9O,EAAM/b,KAAO7M,EAAE03B,KAEZzwB,GAnBI2hB,GA2Bf3hB,EAAOT,MAAQ,WACX,MAAOS,GAAOoD,QAGlBpD,EAAOoD,KAAK,SAAUtM,GAClB,GAAI65B,GAAS75B,EAAMyI,MAAQzI,EAAMyI,QAAUzI,EAAM6Q,IAAI,GAAG,EACxD,OAAO3H,GAAOkC,gBAAgByuB,KAGlC3wB,EAAO2E,mBAAmB,KAE1B3E,EAAO+E,UAAY;AACf,GAAI6rB,GAAW5wB,EAAOT,QAClBsxB,EAAO7wB,EAAO6D,UAAU,IAAM2sB,EAE9BK,GAAK9yB,UACL8yB,EAAOA,EAAKztB,MAAM,IACbuI,QACA3N,OAAO,QACPoC,KAAK,QAASowB,IAGvBK,EAAKn4B,aACAE,SAASoH,EAAO2E,sBAChBmsB,KAAK,eACLC,MAAM,OAAQ,WACX,GAAIC,GAASp7B,EAAGq7B,kBAAkBh2B,KAAKi2B,WAAa,EAAGN,EAEvD,OADA31B,MAAKi2B,UAAYN,EACV,SAAUtV,GACb,GAAIsG,GAAO,KAAMuP,EAAMnxB,EAAO6hB,eAAemP,EAAO1V,GACnC,KAAbsV,GAAkC,KAAfjP,EAAM+O,KACzB9O,EAAOD,EAAM+O,KACO,IAAbE,GAAiC,KAAdjP,EAAM8O,IAChC7O,EAAOD,EAAM8O,IACS,KAAf9O,EAAM/b,OACbgc,EAAOD,EAAM/b,MAEjB3K,KAAKm2B,UAAYxP,EAAOA,EAAKplB,QAAQ,UAAW20B,GAAOA,MAKvEnxB,EAAOoF,UAAY,WACf,MAAOpF,GAAO+E,aAQlB/E,EAAO6hB,aAAe,SAAUtnB,GAC5B,MAAKC,WAAUhD,QAGfkqB,EAAgBnnB,EACTyF,GAHI0hB,GAMR1hB,EAAO8D,OAAOpG,EAAQqG,IAgCjCjO,EAAGu7B,QAAU,SAAU3zB,EAAQqG,GAuE3B,QAASutB,GAAW9iB,EAAMjP,GACtB,GAAIgyB,GAAcvxB,EAAO6D,UAAU,cAAclI,OAAO,SAAUlC,GAC9D,MAAOA,GAAE8c,IAAI/H,KAAUjP,IAEvBiyB,EAAwBD,EAAY51B,OAAO,SAAUlC,GACrD,OAAQuG,EAAO8F,UAAUrM,EAAE8c,MAE/BzgB,GAAG8I,OAAOE,QAAQ,WACV0yB,EAAsBzzB,QACtBwzB,EAAYrsB,KAAK,SAAUzL,GACvBuG,EAAOrE,OAAOlC,EAAE8c,OAGpBib,EAAsBtsB,KAAK,SAAUzL,GACjCuG,EAAOrE,OAAOlC,EAAE8c,OAGxBvW,EAAOqF,gBAtFf,GAEIosB,GAEAC,EACAC,EALAC,EAAwB,KAMxBC,EAAej8B,EAAGktB,UAClBgP,EAAel8B,EAAGktB,UAClBiP,EAAYn8B,EAAGyS,MAAMjP,UACrB44B,EAAYp8B,EAAGyS,MAAMjP,UAErB64B,EAAiBL,EACjBM,EAAiBN,EAEjB5xB,EAASlK,EAAGqS,WAAWrS,EAAG2R,YAAY3R,EAAGiK,eAC7CC,GAAOsC,sBAAsB,UAC7BtC,EAAOkH,MAAMlH,EAAOgJ,gBAEpB,IAAImpB,GAAa,SAAU14B,GACvB,MAAOA,IAEP24B,EAAa,SAAU34B,GACvB,MAAOA,GAYXuG,GAAOqyB,UAAY,SAAU93B,GACzB,MAAKC,WAAUhD,QAGf26B,EAAa53B,EACNyF,GAHImyB,GAefnyB,EAAOsyB,UAAY,SAAU/3B,GACzB,MAAKC,WAAUhD,QAGf46B,EAAa73B,EACNyF,GAHIoyB,EAMf,IAAIG,GAAgB,SAAU94B,GAAK63B,EAAW,EAAG73B,IAC7C+4B,EAAgB,SAAU/4B,GAAK63B,EAAW,EAAG73B,IAC7Cg5B,EAAc,SAAUh5B,GACxB,GAAIkC,GAASlC,EAAE8c,GACfzgB,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAOA,GACdqE,EAAOqF,gBAoQf,OA3OAvP,GAAGmE,SAAS+F,EAAQ,SAAU,SAAUrE,GACpC,MAAKnB,WAAUhD,OAIRwI,EAAOkS,QAAQpc,EAAG4F,QAAQ8D,qBAAqB7D,IAH3CqE,EAAOkS,YAYtBlS,EAAOojB,KAAO,SAAU7oB,GACpB,MAAKC,WAAUhD,QAGfm6B,EAAQp3B,EACDyF,GAHI2xB,GAUf3xB,EAAO0yB,YAAc,SAAUn4B,GAC3B,MAAKC,WAAUhD,QAGfs6B,EAAev3B,EACRyF,GAHI8xB,GAWf9xB,EAAO2yB,KAAO,SAAUp4B,GACpB,MAAKC,WAAUhD,QAGfk6B,EAAQn3B,EACDyF,GAHI0xB,GAUf1xB,EAAO4yB,YAAc,SAAUr4B,GAC3B,MAAKC,WAAUhD,QAGfq6B,EAAet3B,EACRyF,GAHI6xB,GAMf7xB,EAAO+E,UAAY,WAQf,MAPA/E,GAAOoE,WAEPqtB,EAAazxB,EAAOmE,MACfnG,OAAO,KACPoC,KAAK,QAAS,WACdA,KAAK,YAAa,aAAeJ,EAAO+H,UAAUD,KAAO,IAAM9H,EAAO+H,UAAUJ,IAAM,KAEpF3H,EAAOoF,aAGlBpF,EAAOoF,UAAY,WACf,GAAIhC,GAAOpD,EAAOoD,OACdggB,EAAOpjB,EAAOojB,QAAUhgB,EAAKsN,IAAI1Q,EAAOkC,iBACxCywB,EAAO3yB,EAAO2yB,QAAUvvB,EAAKsN,IAAI1Q,EAAOiC,cACxC6vB,KACA1O,EAAOA,EAAKtI,KAAKgX,IAEjBD,IACAc,EAAOA,EAAK7X,KAAK+W,IAErBzO,EAAO4O,EAAU34B,OAAO+pB,GACxBuP,EAAOZ,EAAU14B,OAAOs5B,EAExB,IAAIE,GAAWzP,EAAK/pB,SAAS7B,OACzBs7B,EAAWH,EAAKt5B,SAAS7B,OACzBu7B,EAAW75B,KAAKW,MAAMmG,EAAOiI,iBAAmB6qB,GAChDE,EAAY95B,KAAKW,MAAMmG,EAAOkI,kBAAoB2qB,EAEtDF,GAAKM,iBAAiB,EAAGjzB,EAAOiI,mBAChCmb,EAAK6P,iBAAiBjzB,EAAOkI,kBAAmB,GAEhD,IAAIgrB,GAAQzB,EAAW5tB,UAAU,eAAeT,KAAKpD,EAAOoD,OAAQ,SAAU3J,EAAGlC,GAC7E,MAAOyI,GAAOiC,cAAcxI,EAAGlC,GAAK,OAAOyI,EAAOkC,gBAAgBzI,EAAGlC,KAErE47B,EAASD,EAAMvnB,QAAQ3N,OAAO,KAC7BoC,KAAK,QAAS,YAEnB+yB,GAAOn1B,OAAO,QACToC,KAAK,QAAS,YACdA,KAAK,OAAQ,SACbgH,GAAG,QAASpH,EAAOozB,cAEpBpzB,EAAOmH,gBACPgsB,EAAOn1B,OAAO,SACdk1B,EAAMrvB,UAAU,SAASY,KAAKzE,EAAOkH,UAGzCpR,EAAG4C,WAAWw6B,EAAMrvB,UAAU,QAAS7D,EAAO2E,sBACzCvE,KAAK,IAAK,SAAU3G,EAAGlC,GAAK,MAAOo7B,GAAK3yB,EAAOiC,cAAcxI,EAAGlC,MAChE6I,KAAK,IAAK,SAAU3G,EAAGlC,GAAK,MAAO6rB,GAAKpjB,EAAOkC,gBAAgBzI,EAAGlC,MAClE6I,KAAK,KAAM6xB,GACX7xB,KAAK,KAAM8xB,GACX9xB,KAAK,OAAQJ,EAAOqJ,UACpBjJ,KAAK,QAAS2yB,GACd3yB,KAAK,SAAU4yB,GAEpBE,EAAMrnB,OAAOxH,QAEb,IAAIgvB,GAAQ5B,EAAW5tB,UAAU,SAC7BwvB,GAAMt1B,UACNs1B,EAAQ5B,EAAWzzB,OAAO,KAAKoC,KAAK,QAAS,aAEjD,IAAIkzB,GAAYD,EAAMxvB,UAAU,QAAQT,KAAKuvB,EAAKt5B,SAClDi6B,GAAU3nB,QAAQ3N,OAAO,QAClBoC,KAAK,IAAK,SAAU3G,GAAK,MAAOk5B,GAAKl5B,GAAKs5B,EAAW,IACrDvuB,MAAM,cAAe,UACrBpE,KAAK,IAAKJ,EAAOkI,mBACjB9H,KAAK,KAAM,IACXgH,GAAG,QAASpH,EAAOuzB,gBACnB9uB,KAAKzE,EAAOqyB,aACnBv8B,EAAG4C,WAAW46B,EAAWtzB,EAAO2E,sBACxBF,KAAKzE,EAAOqyB,aACZjyB,KAAK,IAAK,SAAU3G,GAAK,MAAOk5B,GAAKl5B,GAAKs5B,EAAW,IAC7DO,EAAUznB,OAAOxH,QACjB,IAAImvB,GAAQ/B,EAAW5tB,UAAU,SAC7B2vB,GAAMz1B,UACNy1B,EAAQ/B,EAAWzzB,OAAO,KAAKoC,KAAK,QAAS,aAEjD,IAAIqzB,GAAYD,EAAM3vB,UAAU,QAAQT,KAAKggB,EAAK/pB,SA0BlD,OAzBAo6B,GAAU9nB,QAAQ3N,OAAO,QAClBoC,KAAK,KAAM,GACXoE,MAAM,cAAe,OACrBpE,KAAK,IAAK,GACVA,KAAK,KAAM,IACXgH,GAAG,QAASpH,EAAO0zB,gBACnBjvB,KAAKzE,EAAOsyB,aACnBx8B,EAAG4C,WAAW+6B,EAAWzzB,EAAO2E,sBACzBF,KAAKzE,EAAOsyB,aACZlyB,KAAK,IAAK,SAAU3G,GAAK,MAAO2pB,GAAK3pB,GAAKu5B,EAAY,IAC7DS,EAAU5nB,OAAOxH,SAGbrE,EAAO6D,UAAU,eAAeqB,KADhClF,EAAO8F,YAC8B,SAAUrM,GACvCuG,EAAOsY,eAAe7e,GACtBuG,EAAOsG,kBAAkBrL,MAEzB+E,EAAOuG,eAAetL,OAIO,WACjC+E,EAAOwG,eAAevL,QAGvB+E,GAOXA,EAAOozB,WAAa,SAAUr3B,GAC1B,MAAKvB,WAAUhD,QAGfi7B,EAAc12B,EACPiE,GAHIyyB,GAYfzyB,EAAOuzB,aAAe,SAAUx3B,GAC5B,MAAKvB,WAAUhD,QAGf+6B,EAAgBx2B,EACTiE,GAHIuyB,GAYfvyB,EAAO0zB,aAAe,SAAU33B,GAC5B,MAAKvB,WAAUhD,QAGfg7B,EAAgBz2B,EACTiE,GAHIwyB,GAUfxyB,EAAO2zB,cAAgB,SAAUl6B,GAC7B,MAAKe,WAAUhD,QAGfy6B,EAAiBx4B,EACVuG,GAHIiyB,GAUfjyB,EAAO4zB,cAAgB,SAAUn6B,GAC7B,MAAKe,WAAUhD,QAGf06B,EAAiBz4B,EACVuG,GAHIkyB,GAMflyB,EAAOsY,eAAiB,SAAU7e,GAC9B,MAAOuG,GAAO8F,UAAUrM,EAAE8c,MAGvBvW,EAAO8D,OAAOpG,EAAQqG,IAIjC,WA+SI,QAAS8vB,GAAYp6B,GACjB,OAAQ,EAAGA,EAAEjC,OAAS,GAG1B,QAASs8B,GAAar6B,GAClB,OACI7D,EAAGm+B,SAASt6B,EAAG,KACf7D,EAAGm+B,SAASt6B,EAAG,IACf7D,EAAGm+B,SAASt6B,EAAG,MApTvB7D,EAAGo+B,IAAM,WAWL,QAASA,GAAI3wB,GACTA,EAAE6B,KAAK,SAAUzL,EAAGlC,GAChBkC,EAAIA,EAAEiX,IAAInR,GAAOub,KAAKllB,EAAGktB,UACzB,IAAIzf,GAAIzN,EAAGkI,OAAO7C,MACdjB,EAAIP,EAAEjC,OACN0F,EAAMzD,EAAE,GACR0D,EAAM1D,EAAEO,EAAI,GAGZi6B,EAAex6B,EAAEy6B,UAAYA,EAAUz6B,GAGvC06B,EAAiBC,GAAYA,EAASp4B,KAAKf,KAAMxB,EAAGlC,GACpD88B,EAAcF,GAAkBA,EAAezjB,IAAI,SAAUnZ,GAAK,MAAOkC,GAAElC,KAI3E+8B,EAAiBH,EACjBv+B,EAAGyJ,MAAM,EAAG80B,EAAe,IAAI9f,OAAOze,EAAGyJ,MAAM80B,EAAe,GAAK,EAAGn6B,IAAMpE,EAAGyJ,MAAMrF,GAGrFu6B,EAAK3+B,EAAGyS,MAAMQ,SACbxP,OAAOA,GAAUA,EAAO2C,KAAKf,KAAMxB,EAAGlC,KAAO2F,EAAKC,IAClDkC,OAAOiB,EAAQ,IAGhBitB,EAAKtyB,KAAKu5B,WAAa5+B,EAAGyS,MAAMQ,SAC/BxP,QAAQ,EAAGuG,EAAAA,IACXP,MAAMk1B,EAAGl1B,QAGdpE,MAAKu5B,UAAYD,CAQjB,IAAIE,GAASpxB,EAAEQ,UAAU,eACpBT,KAAKixB,GAAeA,MAEzBI,GAAO9oB,QAAQN,OAAO,OAAQ,QACzBjL,KAAK,QAAS,UACdA,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAAU3G,GAAK,MAAO8zB,GAAG9zB,EAAE,MACtC2G,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAAU3G,GAAK,MAAO8zB,GAAG9zB,EAAE,MACtC+K,MAAM,UAAW,MACnB9L,aACEE,SAASA,GACT4L,MAAM,UAAW,GACjBpE,KAAK,KAAM,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MACtC2G,KAAK,KAAM,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MAE3Cg7B,EAAO/7B,aACFE,SAASA,GACT4L,MAAM,UAAW,GACjBpE,KAAK,KAAM,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MACtC2G,KAAK,KAAM,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MAE3Cg7B,EAAO5oB,OAAOnT,aACTE,SAASA,GACT4L,MAAM,UAAW,MACjBpE,KAAK,KAAM,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MACtC2G,KAAK,KAAM,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MACtC4K,QAGL,IAAI2vB,GAAM3wB,EAAEQ,UAAU,YACjBT,MAAM6wB,GAEXD,GAAIroB,QAAQ3N,OAAO,QACdoC,KAAK,QAAS,OACdA,KAAK,IAAK,GACVA,KAAK,IAAK,SAAU3G,GAAK,MAAO8zB,GAAG9zB,EAAE,MACrC2G,KAAK,QAASC,GACdD,KAAK,SAAU,SAAU3G,GAAK,MAAO8zB,GAAG9zB,EAAE,IAAM8zB,EAAG9zB,EAAE,MACvDf,aACEE,SAASA,GACTwH,KAAK,IAAK,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MACrC2G,KAAK,SAAU,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,IAAM86B,EAAG96B,EAAE,MAE1Du6B,EAAIt7B,aACCE,SAASA,GACTwH,KAAK,IAAK,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MACrC2G,KAAK,SAAU,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,IAAM86B,EAAG96B,EAAE,KAG1D,IAAIi7B,GAAarxB,EAAEQ,UAAU,eACxBT,MAAM6wB,EAAa,IAExBS,GAAW/oB,QAAQ3N,OAAO,QACrBoC,KAAK,QAAS,UACdA,KAAK,KAAM,GACXA,KAAK,KAAMmtB,GACXntB,KAAK,KAAMC,GACXD,KAAK,KAAMmtB,GACX70B,aACAE,SAASA,GACTwH,KAAK,KAAMm0B,GACXn0B,KAAK,KAAMm0B,GAEhBG,EAAWh8B,aACNE,SAASA,GACTwH,KAAK,KAAMm0B,GACXn0B,KAAK,KAAMm0B,EAGhB,IAAII,GAAUtxB,EAAEQ,UAAU,gBACrBT,KAAKixB,MAEVM,GAAQhpB,QAAQN,OAAO,OAAQ,gBAC1BjL,KAAK,QAAS,WACdA,KAAK,KAAM,GACXA,KAAK,KAAMmtB,GACXntB,KAAK,KAAMC,GACXD,KAAK,KAAMmtB,GACX/oB,MAAM,UAAW,MACnB9L,aACEE,SAASA,GACTwH,KAAK,KAAMm0B,GACXn0B,KAAK,KAAMm0B,GACX/vB,MAAM,UAAW,GAEtBmwB,EAAQj8B,aACHE,SAASA,GACTwH,KAAK,KAAMm0B,GACXn0B,KAAK,KAAMm0B,GACX/vB,MAAM,UAAW,GAEtBmwB,EAAQ9oB,OAAOnT,aACVE,SAASA,GACTwH,KAAK,KAAMm0B,GACXn0B,KAAK,KAAMm0B,GACX/vB,MAAM,UAAW,MACjBH,QAGL,IAAIuwB,GAAUvxB,EAAEQ,UAAU,kBACrBT,KAAKkxB,EAAgBO,OAE1BD,GAAQjpB,QAAQN,OAAO,SAAU,QAC5BjL,KAAK,QAAS,WACdA,KAAK,IAAK,GACVA,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAAU7I,GAAK,MAAOg2B,GAAG9zB,EAAElC,MACtCiN,MAAM,UAAW,MACjB9L,aACAE,SAASA,GACTwH,KAAK,KAAM,SAAU7I,GAAK,MAAOg9B,GAAG96B,EAAElC,MACtCiN,MAAM,UAAW,GAEtBowB,EAAQl8B,aACHE,SAASA,GACTwH,KAAK,KAAM,SAAU7I,GAAK,MAAOg9B,GAAG96B,EAAElC,MACtCiN,MAAM,UAAW,GAEtBowB,EAAQ/oB,OAAOnT,aACVE,SAASA,GACTwH,KAAK,KAAM,SAAU7I,GAAK,MAAOg9B,GAAG96B,EAAElC,MACtCiN,MAAM,UAAW,MACjBH,QAGL,IAAI7I,GAASs5B,GAAcP,EAAGO,WAAW,GAGrCC,EAAU1xB,EAAEQ,UAAU,YACrBT,KAAK6wB,EAEVc,GAAQppB,QAAQ3N,OAAO,QAClBoC,KAAK,QAAS,OACdA,KAAK,KAAM,QACXA,KAAK,KAAM,SAAU3G,EAAGlC,GAAK,MAAW,GAAJA,EAAQ,EAAI,KAChD6I,KAAK,IAAK,SAAU3G,EAAGlC,GAAK,MAAW,GAAJA,EAAQ8I,EAAQ,IACnDD,KAAK,IAAKmtB,GACVntB,KAAK,cAAe,SAAU3G,EAAGlC,GAAK,MAAW,GAAJA,EAAQ,QAAU,QAC/DkN,KAAKjJ,GACL9C,aACAE,SAASA,GACTwH,KAAK,IAAKm0B,GAEfQ,EAAQr8B,aACHE,SAASA,GACT6L,KAAKjJ,GACL4E,KAAK,IAAKm0B,EAKf,IAAIS,GAAc3xB,EAAEQ,UAAU,gBACzBT,KAAKixB,MAEVW,GAAYrpB,QAAQ3N,OAAO,QACtBoC,KAAK,QAAS,WACdA,KAAK,KAAM,QACXA,KAAK,KAAM,GACXA,KAAK,IAAKC,GACVD,KAAK,IAAKmtB,GACV9oB,KAAKjJ,GACLgJ,MAAM,UAAW,MACjB9L,aACAE,SAASA,GACTwH,KAAK,IAAKm0B,GACV/vB,MAAM,UAAW,GAEtBwwB,EAAYt8B,aACPE,SAASA,GACT6L,KAAKjJ,GACL4E,KAAK,IAAKm0B,GACV/vB,MAAM,UAAW,GAEtBwwB,EAAYnpB,OAAOnT,aACdE,SAASA,GACTwH,KAAK,IAAKm0B,GACV/vB,MAAM,UAAW,MACjBH,WAETzO,EAAGq/B,MAAMC,QArOb,GAAI70B,GAAQ,EACRC,EAAS,EACT1H,EAAW,EACXS,EAAS,KACTkG,EAAQs1B,OACRT,EAAWP,EACXK,EAAYJ,EACZgB,EAAa,IAiSjB,OAhEAd,GAAI3zB,MAAQ,SAAUR,GAClB,MAAKrF,WAAUhD,QAGf6I,EAAQR,EACDm0B,GAHI3zB,GAMf2zB,EAAI1zB,OAAS,SAAUT,GACnB,MAAKrF,WAAUhD,QAGf8I,EAAST,EACFm0B,GAHI1zB,GAMf0zB,EAAIc,WAAa,SAAUj1B,GACvB,MAAKrF,WAAUhD,QAGfs9B,EAAaj1B,EACNm0B,GAHIc,GAMfd,EAAIp7B,SAAW,SAAUiH,GACrB,MAAKrF,WAAUhD,QAGfoB,EAAWiH,EACJm0B,GAHIp7B,GAMfo7B,EAAI36B,OAAS,SAAUwG,GACnB,MAAKrF,WAAUhD,QAGf6B,EAAe,OAANwG,EAAaA,EAAIjK,EAAGkN,QAAQjD,GAC9Bm0B,GAHI36B,GAMf26B,EAAIz0B,MAAQ,SAAUM,GAClB,MAAKrF,WAAUhD,QAGf+H,EAAQM,EACDm0B,GAHIz0B,GAMfy0B,EAAII,SAAW,SAAUv0B,GACrB,MAAKrF,WAAUhD,QAGf48B,EAAWv0B,EACJm0B,GAHII,GAMfJ,EAAIE,UAAY,SAAUr0B,GACtB,MAAKrF,WAAUhD,QAGf08B,EAAYr0B,EACLm0B,GAHIE,GAMRF,MA6Cfl+B,EAAGq/B,QAAU,SAAUz3B,EAAQqG,GAI3B,QAASqxB,GAAsBC,GAC3B,MAAO,UAAU57B,GAQb,IAPA,GAAI67B,GAAK77B,EAAEy6B,UAAU,GACjBqB,EAAK97B,EAAEy6B,UAAU,GACjBsB,GAAOD,EAAKD,GAAMD,EAClB99B,EAAI,GACJswB,EAAIpuB,EAAEjC,OAGHiC,IAAIlC,GAAK+9B,EAAKE,IACrB,KAAO/7B,IAAIouB,GAAK0N,EAAKC,IAErB,OAAQj+B,EAAGswB,IA0GnB,QAAS4N,GAAYC,GACjB,GAAIC,GAAcD,EAAO/pB,QAAQ3N,OAAO,IAExC23B,GACKv1B,KAAK,QAAS,OACdA,KAAK,YAAaw1B,GAClB55B,KAAK65B,GACLzuB,GAAG,QAAS,SAAU3N,GACnBuG,EAAOrE,OAAOlC,EAAE8c,KAChBvW,EAAOqF,gBAInB,QAASywB,GAAYJ,GACjB5/B,EAAG4C,WAAWg9B,EAAQ11B,EAAO2E,sBACxBvE,KAAK,YAAaw1B,GAClB55B,KAAK65B,GACL3wB,KAAK,WACFtP,EAAGkI,OAAO7C,MAAM6C,OAAO,YAAYsC,KAAK,OAAQJ,EAAOqJ,YAInE,QAAS0sB,GAAYL,GACjBA,EAAO7pB,OAAOxH,SAASrI,KAAK65B,GAhJhC,GAAI71B,GAASlK,EAAGyT,wBAoBZysB,EAAoB,IACpBC,EAAeb,EACfc,EAAYD,EAAaD,GAEzBH,EAAOjgC,EAAGo+B,MACVmC,EAAc,KAEdC,EAAY,SAAUC,EAAiBjmB,GACvC,MAAIpQ,GAAOkK,YACAlK,EAAOH,IAAImd,YAEXqZ,GAAmB,EAAIr2B,EAAOs2B,cAAgBlmB,EAK7DpQ,GAAOiS,aAAa,IAGpBjS,EAAOH,EAAEjK,EAAGyS,MAAMjP,WAClB4G,EAAOoQ,OAAOta,EAAGkD,MAAMI,SAKvB4G,EAAOoD,KAAK,SAAUtM,GAClB,MAAOA,GAAM8L,MAAM8N,IAAI,SAAUjX,GAE7B,MADAA,GAAEiX,IAAM,SAAUgD,GAAY,MAAOA,GAAS1X,KAAKvC,EAAGA,IAC/CA,IACRkC,OAAO,SAAUlC,GAChB,GAAIma,GAAS5T,EAAOkC,gBAAgBzI,EACpC,OAAyB,KAAlBma,EAAOpc,WAYtBwI,EAAOs2B,WAAat2B,EAAO6K,kBAC3B7K,EAAOs2B,WAAW,IASlBt2B,EAAO8d,aAAe9d,EAAO+K,uBAC7B/K,EAAO8d,aAAa,IAQpB9d,EAAO+yB,SAAW,SAAUx4B,GACxB,MAAKC,WAAUhD,QAGf4+B,EAAYxgC,EAAGkN,QAAQvI,GAChByF,GAHIo2B,EAMf,IAAIR,GAAe,SAAUn8B,EAAGlC,GAC5B,GAAIg/B,GAAUv2B,EAAOH,IAAIG,EAAOiC,cAAcxI,EAAGlC,GACjD,OAAO,aAAeg/B,EAAU,OA0GpC,OAvGAv2B,GAAO+S,gBAAkB,WACjB/S,EAAOmK,YACPnK,EAAOH,IAAIxG,YAInB2G,EAAO0M,SAAW,WACd,GAAI8pB,GAAsBJ,EAAUp2B,EAAOiI,iBAAkBjI,EAAOuQ,aAEpEslB,GAAKzB,SAAS8B,GACT71B,MAAMm2B,GACNl2B,OAAON,EAAOkI,mBACd3I,MAAMS,EAAOkC,iBACb7I,OAAO2G,EAAOF,IAAIzG,UAClBT,SAASoH,EAAO2E,sBAChBmwB,WAAWqB,EAEhB,IAAIT,GAAS11B,EAAOkQ,aAAarM,UAAU,SAAST,KAAKpD,EAAOoD,OAAQ,SAAU3J,GAAK,MAAOA,GAAE8c,KAEhGkf,GAAYC,GACZI,EAAYJ,GACZK,EAAYL,GAEZ11B,EAAO4S,sBA6BX5S,EAAO4S,mBAAqB,WAEpB5S,EAAOqD,IAAIQ,UAAU,SAASqB,KAD9BlF,EAAO8F,YAC4B,SAAUrM,GACrCuG,EAAOsY,eAAe7e,GACtBuG,EAAOsG,kBAAkBrL,MAEzB+E,EAAOuG,eAAetL,OAIK,WAC/B+E,EAAOwG,eAAevL,SAKlC+E,EAAOsY,eAAiB,SAAU7e,GAC9B,MAAOuG,GAAO8F,UAAUrM,EAAE8c,MAG9BvW,EAAO8Q,SAAW,WACd,GAAI5T,GAAMtH,EAAGsH,IAAI8C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAOtB,GAAGsH,IAAI8C,EAAOkC,gBAAgBhL,KAEzC,OAAOpB,GAAG6D,MAAMmD,SAASI,EAAK8C,EAAOiS,iBAGzCjS,EAAO+Q,SAAW,WACd,GAAI5T,GAAMvH,EAAGuH,IAAI6C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAOtB,GAAGuH,IAAI6C,EAAOkC,gBAAgBhL,KAEzC,OAAOpB,GAAG6D,MAAM0C,IAAIc,EAAK6C,EAAOiS,iBAYpCjS,EAAO80B,WAAa,SAAUj1B,GAC1B,MAAKrF,WAAUhD,QAGf2+B,EAAct2B,EACPG,GAHIm2B,GAMRn2B,EAAO8D,OAAOpG,EAAQqG,IAKjCjO,EAAG2gC,oBAAsB3gC,EAAGghB,YAC5BhhB,EAAG4gC,UAAY5gC,EAAGiK,UAClBjK,EAAG6gC,OAAS7gC,EAAG2f,SACf3f,EAAG8gC,WAAa9gC,EAAGqS,WACnBrS,EAAG+gC,oBAAsB/gC,EAAGyT,oBAC5BzT,EAAGghC,WAAahhC,EAAG2R,YACnB3R,EAAGihC,eAAiBjhC,EAAGud,WAIvBvd,EAAGF,GAAKA,EACRE,EAAGD,YAAcA,EAEVC,EACH,GAAqB,kBAAXkhC,SAAyBA,OAAOC,IACtCD,QAAQ,KAAM,eAAgBrhC,OAC3B,IAAqB,gBAAXuhC,SAAuBA,OAAOC,QAAS,CACpD,GAAIC,GAAMC,QAAQ,MACdC,EAAeD,QAAQ,cAMC,mBAAjBC,KACPA,EAAeA,EAAazhC,aAEhCqhC,OAAOC,QAAUxhC,EAAIyhC,EAAKE,OAE1Br8B,MAAKnF,GAAKH,EAAIC,GAAIC"} \ No newline at end of file +{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_legendLabelAccessor","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","legendLabelAccessor","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file diff --git a/spec/pie-chart-spec.js b/spec/pie-chart-spec.js index 919226bdc..5d5562833 100644 --- a/spec/pie-chart-spec.js +++ b/spec/pie-chart-spec.js @@ -658,6 +658,32 @@ describe('dc.pieChart', function() { valueDimension.filterAll(); }); }); + + + describe('legends with label', function() { + var chart; + beforeEach(function() { + chart = buildChart("pie-chart-legend") + .cap(3) + .legend(dc.legend()) + .legendLabelAccessor(function(d){ + return d.key + " labeled"; + }) + .render(); + }); + it('should generate items for each slice', function() { + expect(chart.selectAll('g.dc-legend g.dc-legend-item').size()).toEqual(chart.data().length); + }); + it('should include "others" item labeled', function() { + var numOthersGroups = chart.selectAll('g.dc-legend g.dc-legend-item text').filter(function(d, i) { + return d.name == "Others labeled"; + }).size(); + expect(numOthersGroups).toEqual(1); + }); + afterEach(function() { + valueDimension.filterAll(); + }); + }); }); diff --git a/src/base-mixin.js b/src/base-mixin.js index e26ce0a77..370d1d99e 100644 --- a/src/base-mixin.js +++ b/src/base-mixin.js @@ -31,6 +31,7 @@ dc.baseMixin = function (_chart) { var _keyAccessor = dc.pluck('key'); var _valueAccessor = dc.pluck('value'); var _label = dc.pluck('key'); + var _legendLabelAccessor = dc.pluck('key'); var _ordering = dc.pluck('key'); var _orderSort; @@ -894,6 +895,27 @@ dc.baseMixin = function (_chart) { return _chart; }; + + /** + #### .legendLabelAccessor([legendLabelAccessorFunction]) + Set or get the legend label accessor function. The legend label accessor function is used to retrieve the + value from the legend label for the crossfilter group. + ```js + // default legenLabel accessor + chart.legendLabelAccessor(function(d) { return d.key; }); + // custom legen label accessor for a multi-value crossfilter reduction + chart.legendLabelAccessor(function(p) { return "Custom Legend:" + p.key; }); + ``` + + **/ + _chart.legendLabelAccessor = function (_) { + if (!arguments.length) { + return _legendLabelAccessor; + } + _legendLabelAccessor = _; + return _chart; + }; + /** #### .label([labelFunction]) Set or get the label function. The chart class will use this function to render labels for each diff --git a/src/pie-chart.js b/src/pie-chart.js index 8b54278c6..3ab352516 100644 --- a/src/pie-chart.js +++ b/src/pie-chart.js @@ -51,6 +51,7 @@ dc.pieChart = function (parent, chartGroup) { var _chart = dc.capMixin(dc.colorMixin(dc.baseMixin({}))); _chart.colorAccessor(_chart.cappedKeyAccessor); + _chart.legendLabelAccessor(_chart.cappedKeyAccessor); _chart.title(function (d) { return _chart.cappedKeyAccessor(d) + ': ' + _chart.cappedValueAccessor(d); @@ -428,7 +429,8 @@ dc.pieChart = function (parent, chartGroup) { _chart.legendables = function () { return _chart.data().map(function (d, i) { - var legendable = {name: d.key, data: d.value, others: d.others, chart:_chart}; + var legendable = { name: _chart.legendLabelAccessor().call(this, d, i), + data: d.value, others: d.others, chart:_chart }; legendable.color = _chart.getColor(d, i); return legendable; });