From af788e5620188b056a0925af591ee5c5d2b396da Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Sat, 20 Dec 2014 12:57:07 -0500 Subject: [PATCH] fixed browserify for bower & npm cherry-picking @vprus's fix from master (#702/#704) tests are still massively broken and won't be fixed! --- dc.js | 21 ++++++++++------ dc.min.js | 4 +-- dc.min.js.map | 2 +- package.json | 2 +- web/docs/index.html | 60 ++++++++++++++++++++++----------------------- web/js/dc.js | 21 ++++++++++------ 6 files changed, 62 insertions(+), 48 deletions(-) diff --git a/dc.js b/dc.js index 021026fda..005cf6fca 100644 --- a/dc.js +++ b/dc.js @@ -1,5 +1,5 @@ /*! - * dc 1.7.2 + * dc 1.7.3 * http://dc-js.github.io/dc.js/ * Copyright 2012 Nick Zhu and other contributors * @@ -20,7 +20,7 @@ 'use strict'; /** -#### Version 1.7.2 +#### Version 1.7.3 The entire dc.js library is scoped under **dc** name space. It does not introduce anything else into the global name space. @@ -57,7 +57,7 @@ The API references will highlight the fact if a particular function is not chain **/ var dc = { - version: "1.7.2", + version: "1.7.3", constants: { CHART_CLASS: "dc-chart", DEBUG_GROUP_CLASS: "debug", @@ -5402,10 +5402,17 @@ return dc;} if(typeof define === "function" && define.amd) { define(["d3", "crossfilter"], _dc); } else if(typeof module === "object" && module.exports) { - // When using window global, window.crossfilter is a function - // When using require, the value will be an object with 'crossfilter' - // field, so we need to access it here. - module.exports = _dc(require('d3'), require('crossfilter').crossfilter); + var _d3 = require('d3'); + var _crossfilter = require('crossfilter'); + // When using npm + browserify, 'crossfilter' is a function, + // since package.json specifies index.js as main function, and it + // does special handling. When using bower + browserify, + // there's no main in bower.json (in fact, there's no bower.json), + // so we need to fix it. + if (typeof _crossfilter !== "function") { + _crossfilter = _crossfilter.crossfilter; + } + module.exports = _dc(_d3, _crossfilter); } else { this.dc = _dc(d3, crossfilter); } diff --git a/dc.min.js b/dc.min.js index 30534e580..bf0aebaa2 100644 --- a/dc.min.js +++ b/dc.min.js @@ -1,3 +1,3 @@ -!function(){function a(a,b){"use strict";var c={version:"1.7.2",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};return 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)},clear:function(){b={}},list:function(c){return c=a(c),b[c]}}}(),c.registerChart=function(a,b){c.chartRegistry.register(a,b)},c.hasChart=function(a){return c.chartRegistry.has(a)},c.deregisterAllCharts=function(){c.chartRegistry.clear()},c.filterAll=function(a){for(var b=c.chartRegistry.list(a),d=0;d=b||void 0===b)return a;var d=a.transition().duration(b);return c instanceof Function&&c(d),d},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.__dc_flag__},c.errors={},c.errors.Exception=function(a){var b=void 0!==a?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 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.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.GroupStack=function(){function a(a){c[a]||(c[a]=[])}var b,c=[[]],d=[];this.setDataPoint=function(b,d,e){a(b),c[b][d]=e},this.getDataPoint=function(b,d){a(b);var e=c[b][d];return void 0===e&&(e=0),e},this.addGroup=function(a,c){return c||(c=b),d.push([a,c]),d.length-1},this.getGroupByIndex=function(a){return d[a][0]},this.getAccessorByIndex=function(a){return d[a][1]},this.size=function(){return d.length},this.clear=function(){c=[],d=[]},this.setDefaultAccessor=function(a){b=a},this.getDataLayers=function(){return c},this.toLayers=function(){for(var a=[],b=0;b-c.constants.NEGLIGIBLE_NUMBER},c.utils.groupMax=function(b,d){var e=a.max(b.all(),function(a){return d(a)});return c.utils.isNegligible(e)&&(e=0),e},c.utils.groupMin=function(b,d){var e=a.min(b.all(),function(a){return d(a)});return c.utils.isNegligible(e)&&(e=0),e},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b){var c=a.select(b);return c.empty()&&(c=a.append(b)),c},c.utils.createLegendable=function(a,b,c,d){var e={name:a._getGroupName(b,d),data:b};return"function"==typeof a.colors&&(e.color=a.colors()(c)),e},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},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.cumulative={},c.cumulative.Base=function(){this._keyIndex=[],this._map={},this.sanitizeKey=function(a){return a+=""},this.clear=function(){this._keyIndex=[],this._map={}},this.size=function(){return this._keyIndex.length},this.getValueByKey=function(a){a=this.sanitizeKey(a);var b=this._map[a];return b},this.setValueByKey=function(a,b){return a=this.sanitizeKey(a),this._map[a]=b},this.indexOfKey=function(a){return a=this.sanitizeKey(a),this._keyIndex.indexOf(a)},this.addToIndex=function(a){a=this.sanitizeKey(a),this._keyIndex.push(a)},this.getKeyByIndex=function(a){return this._keyIndex[a]}},c.cumulative.Sum=function(){c.cumulative.Base.apply(this,arguments),this.add=function(a,b){b||(b=0),void 0===this.getValueByKey(a)?(this.addToIndex(a),this.setValueByKey(a,b)):this.setValueByKey(a,this.getValueByKey(a)+b)},this.minus=function(a,b){this.setValueByKey(a,this.getValueByKey(a)-b)},this.cumulativeSum=function(a){var b=this.indexOfKey(a);if(0>b)return 0;for(var c=0,d=0;b>=d;++d){var e=this.getKeyByIndex(d);c+=this.getValueByKey(e)}return c}},c.cumulative.Sum.prototype=new c.cumulative.Base,c.cumulative.CountUnique=function(){function a(a){var b,c=0;for(b in a)a.hasOwnProperty(b)&&c++;return c}c.cumulative.Base.apply(this,arguments),this.add=function(a,b){void 0===this.getValueByKey(a)&&(this.setValueByKey(a,{}),this.addToIndex(a)),void 0!==b&&(void 0===this.getValueByKey(a)[b]&&(this.getValueByKey(a)[b]=0),this.getValueByKey(a)[b]+=1)},this.minus=function(a,b){this.getValueByKey(a)[b]-=1,this.getValueByKey(a)[b]<=0&&delete this.getValueByKey(a)[b]},this.count=function(b){return a(this.getValueByKey(b))},this.cumulativeCount=function(a){var b=this.indexOfKey(a);if(0>b)return 0;for(var c=0,d=0;b>=d;++d){var e=this.getKeyByIndex(d);c+=this.count(e)}return c}},c.cumulative.CountUnique.prototype=new c.cumulative.Base,c.baseChart=function(d){function e(a,b,c){var d=a.anchor(),e="__names__";c&&c!=a.valueAccessor()||(c="default"),b[e]||(b[e]={}),b[e][d]||(b[e][d]={a:[],n:[]});var f=b[e][d].a.indexOf(c);return-1==f&&(f=b[e][d].a.length,b[e][d].a[f]=c,b[e][d].n[f]={name:""}),b[e][d].n[f]}function f(){return p=d.root().append("svg").attr("width",d.width()).attr("height",d.height())}function g(a){G.splice(G.indexOf(a),1),j(),d._invokeFilteredListener(a)}function h(a){G.push(a),j(),d._invokeFilteredListener(a)}function i(){G=[],j(),d._invokeFilteredListener(null)}function j(){if(d.dataSet()&&void 0!==d.dimension().filter){var a=H(d.dimension(),G);G=a?a:G}}function k(){for(var a=0;a=0}),b};return d.width=function(a){return arguments.length?(r=a,d):r},d.height=function(a){return arguments.length?(s=a,d):s},d.dimension=function(a){return arguments.length?(l=a,d.expireCache(),d):l},d.group=function(a,b){return arguments.length?(m=a,d.expireCache(),"string"==typeof b&&d._setGroupName(m,b),d):m},d._getGroupName=function(a,b){return e(d,a,b).name},d._setGroupName=function(a,b,c){e(d,a,c).name=b},d.ordering=function(a){return arguments.length?(v=a,d.expireCache(),d):v},d.computeOrderedGroups=function(a){var c=a?a:d.group().all().slice(0);if(c.length<2)return c;var e=b.quicksort.by(d.ordering());return e(c,0,c.length)},d.filterAll=function(){return d.filter(null)},d.dataSet=function(){return void 0!==l&&void 0!==m},d.select=function(a){return o.select(a)},d.selectAll=function(a){return o?o.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(n=b.anchor(),o=b.root()):(n=b,o=a.select(n),o.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),D=e,d):n},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a?a.replace("#",""):""},d.root=function(a){return arguments.length?(o=a,d):o},d.svg=function(a){return arguments.length?(p=a,d):p},d.resetSvg=function(){return d.select("svg").remove(),f()},d.filterPrinter=function(a){return arguments.length?(B=a,d):B},d.turnOnControls=function(){return o&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(B(d.filters())).style("display",null)),d},d.turnOffControls=function(){return o&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(A=a,d):A},d.render=function(){if(F.preRender(d),void 0===l)throw new c.errors.InvalidStateException("Mandatory attribute chart.dimension is missing on chart[#"+d.anchorName()+"]");if(void 0===m)throw new c.errors.InvalidStateException("Mandatory attribute chart.group is missing on chart[#"+d.anchorName()+"]");var a=d.doRender();return q&&q.render(),d.activateRenderlets("postRender"),a},d.activateRenderlets=function(a){d.transitionDuration()>0&&p?p.transition().duration(d.transitionDuration()).each("end",function(){k(),a&&F[a](d)}):(k(),a&&F[a](d))},d.redraw=function(){F.preRedraw(d);var a=d.doRedraw();return d.activateRenderlets("postRedraw"),a},d._invokeFilteredListener=function(a){void 0!==a&&F.filtered(d,a)},d._invokeZoomedListener=function(){F.zoomed(d)},d.hasFilter=function(a){return arguments.length?G.indexOf(a)>=0:G.length>0},d.filter=function(a){return arguments.length?(null===a?i():d.hasFilter(a)?g(a):h(a),null!==o&&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),c.redrawAll(d.chartGroup())})},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.keyAccessor=function(a){return arguments.length?(t=a,d):t},d.valueAccessor=function(a){return arguments.length?(u=a,d):u},d.label=function(a){return arguments.length?(w=a,x=!0,d):w},d.renderLabel=function(a){return arguments.length?(x=a,d):x},d.title=function(a){return arguments.length?(y=a,z=!0,d):y},d.renderTitle=function(a){return arguments.length?(z=a,d):z},d.renderlet=function(a){return C.push(a),d},d.chartGroup=function(a){return arguments.length?(D=a,d):D},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(q=a,q.parent(d),d):q},d.on=function(a,b){return F[a]=b,d},d},c.marginable=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.coordinateGridChart=function(b){function d(a){b.elasticX()&&!b.isOrdinal()?x.domain([b.xAxisMin(),b.xAxisMax()]):b.isOrdinal()&&0===x.domain().length&&x.domain(b.computeOrderedGroups().map(function(a){return a.key})),b.isOrdinal()?b.prepareOrdinalXAxis():x.range([0,b.xAxisLength()]),G=G.scale(b.x()).orient("bottom"),e(a)}function e(a){var d=a.selectAll("g."+q);if(S){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.yAxisX()+","+b.margins().top+")"));var e=G.tickValues()?G.tickValues():x.ticks(G.ticks()[0]),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 f(c){(void 0===A||b.elasticY())&&(A=a.scale.linear(),A.domain([b.yAxisMin(),b.yAxisMax()]).rangeRound([b.yAxisHeight(),0])),A.range([b.yAxisHeight(),0]),L=L.scale(A).orient("left"),g(c)}function g(a){var d=a.selectAll("g."+p);if(R){var e=L.tickValues()?L.tickValues():A.ticks(L.ticks()[0]);d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.yAxisX()+","+b.margins().top+")"));var f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",1).attr("y1",function(a){return A(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return A(a)}).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return A(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return A(a)}),f.exit().remove()}else d.selectAll("line").remove()}function h(){return b.xAxisY()-b.margins().top}function i(){var a=b.extendBrush();b.redrawBrush(v),b.brushIsEmpty(a)?c.events.trigger(function(){b.filter(null),c.redrawAll(b.chartGroup())}):c.events.trigger(function(){b.filter(null),b.filter([a[0],a[1]]),c.redrawAll(b.chartGroup())},c.constants.EVENT_DELAY)}function j(){return b.anchorName()+"-clip"}function k(){var a=c.utils.appendOrSelect(u,"defs"),d=c.utils.appendOrSelect(a,"clipPath").attr("id",j()),e=2*X;c.utils.appendOrSelect(d,"rect").attr("width",b.xAxisLength()+e).attr("height",b.yAxisHeight()+e)}function l(){W&&b.root().call(a.behavior.zoom().x(b.x()).scaleExtent(U).on("zoom",function(){b.focus(b.x().domain()),b._invokeZoomedListener(),m()}))}function m(){if(E){var a=b.x().domain();if(V){var d=E.xOriginalDomain(),e=[a[0]d[1]?a[1]:d[1]];E.focus(e)}else E.focus(a);E.filter(null),E.filter(a),c.events.trigger(function(){c.redrawAll(b.chartGroup())})}}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.colorChart(c.marginable(c.baseChart(b))),b.colors(a.scale.category10());var u,v,w,x,y,z,A,B,C,D,E,F,G=a.svg.axis(),H=c.units.integers,I=0,J=!1,K=0,L=a.svg.axis(),M=0,N=!1,O=0,P=a.svg.brush(),Q=!0,R=!1,S=!1,T=!1,U=[-10,100],V=!0,W=!1,X=0;return b.title(function(a){return a.data.key+": "+a.data.value}),b.rescale=function(){D=void 0,b.xUnitCount()},b.rangeChart=function(a){return arguments.length?(E=a,E.focusChart(b),b):E},b.zoomScale=function(a){return arguments.length?(U=a,b):U},b.zoomOutRestrict=function(a){return arguments.length?(V=a,b):V},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(#"+j()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?(W=a,b):W},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?(H=a,b):H},b.xAxis=function(a){return arguments.length?(G=a,b):G},b.elasticX=function(a){return arguments.length?(J=a,b):J},b.xAxisPadding=function(a){return arguments.length?(I=a,b):I},b.xUnitCount=function(){if(void 0===D){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());D=a instanceof Array?a.length:a}return D},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b.prepareOrdinalXAxis=function(a){a||(a=b.xUnitCount());for(var c=[],d=b.xAxisLength()/(a+1),e=d/2,f=0;a>f;f++)c[f]=e,e+=d;x.range(c)},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.xAxisLength()/2+","+(b.height()-K)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!=b.xAxisLabel()&&axisYLab.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(G)},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-=K,K=void 0===c?t:c,b.margins().bottom+=K,b):z},b.renderYAxis=function(a){var d=a.selectAll("g.y");d.empty()&&(d=a.append("g").attr("class","axis y").attr("transform","translate("+b.yAxisX()+","+b.margins().top+")"));var e=a.selectAll("text."+r);e.empty()&&b.yAxisLabel()&&(e=a.append("text").attr("transform","translate("+O+","+b.yAxisHeight()/2+"),rotate(-90)").attr("class",r).attr("text-anchor","middle").text(b.yAxisLabel())),b.yAxisLabel()&&e.text()!=b.yAxisLabel()&&e.text(b.yAxisLabel()),c.transition(d,b.transitionDuration()).call(L)},b.yAxisX=function(){return b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(B=a,b.margins().left-=O,O=void 0===c?t:c,b.margins().left+=O,b):B},b.y=function(a){return arguments.length?(A=a,b):A},b.yAxis=function(a){return arguments.length?(L=a,b):L},b.elasticY=function(a){return arguments.length?(N=a,b):N},b.renderHorizontalGridLines=function(a){return arguments.length?(R=a,b):R},b.renderVerticalGridLines=function(a){return arguments.length?(S=a,b):S},b.xAxisMin=function(){var d=a.min(b.group().all(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,I)},b.xAxisMax=function(){var d=a.max(b.group().all(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,I)},b.yAxisMin=function(){var d=a.min(b.group().all(),function(a){return b.valueAccessor()(a)});return d=c.utils.subtract(d,M)},b.yAxisMax=function(){var d=a.max(b.group().all(),function(a){return b.valueAccessor()(a)});return d=c.utils.add(d,M)},b.yAxisPadding=function(a){return arguments.length?(M=a,b):M},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(C=a,b):C},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?(P=a,b):P},b.renderBrush=function(a){if(b.isOrdinal()&&(Q=!1),Q){P.on("brush",i);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(P.x(b.x()));c.selectAll("rect").attr("height",h()),c.selectAll(".resize").append("path").attr("d",b.resizeHandlePath),b.hasFilter()&&b.redrawBrush(a)}},b.extendBrush=function(){var a=P.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(P.extent(a))),a},b.brushIsEmpty=function(a){return P.empty()||!a||a[1]<=a[0]},b.redrawBrush=function(a){if(Q){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),c.selectAll("rect").attr("height",h())}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"==a),c=b?1:-1,d=h()/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?(X=a,b):X},b.doRender=function(){if(void 0===x)throw new c.errors.InvalidStateException("Mandatory attribute chart.x is missing on chart[#"+b.anchorName()+"]");return b.resetSvg(),b.dataSet()&&(b._generateG(),k(),d(b.g()),f(b.g()),b.plotData(),b.renderXAxis(b.g()),b.renderYAxis(b.g()),b.renderBrush(b.g()),l()),b},b.doRedraw=function(){return d(b.g()),f(b.g()),b.plotData(),b.elasticY()&&b.renderYAxis(b.g()),(b.elasticX()||T)&&b.renderXAxis(b.g()),b.redrawBrush(b.g()),b},b.subRender=function(){return b.dataSet()&&b.plotData(),b},b.brushOn=function(a){return arguments.length?(Q=a,b):Q},b.focus=function(a){T=!0,b.x().domain(n(a)?a:b.xOriginalDomain()),b.rescale(),b.redraw(),n(a)||(T=!1)},b.refocused=function(){return T},b.focusChart=function(a){return arguments.length?(F=a,b.on("filtered",function(a){c.events.trigger(function(){F.focus(a.filter()),F.filter(a.filter()),c.redrawAll(a.chartGroup())})}),b):F},b},c.colorChart=function(b){var d=a.scale.category20c(),e=[0,d.range().length],f=function(a){var f=e;"function"==typeof e&&(f=e.call(b));var g=f[0],h=f[1];if(isNaN(a)&&(a=0),!c.utils.isNumber(h))return d(a);var i=b.colors().range().length,j=(h-g)/i,k=Math.abs(Math.min(i-1,Math.round((a-g)/j)));return b.colors()(k)},g=function(a,b){return b};return b.colors=function(c){if(!arguments.length)return d;if(c instanceof Array){d=a.scale.ordinal().range(c);for(var f=[],g=0;g=e[0]&&a.x<=e[e.length-1]};b.stackLayers().forEach(function(a){a.points.forEach(function(a){d(a)&&c.push(a)})})}else b.stackLayers().forEach(function(a){c=c.concat(a.points)});return c}function e(a,c){return b.getKeyAccessorByIndex(a)(c)}function f(a,c){return b.getValueAccessorByIndex(a)(c)}function g(a,b){for(var c=0;cg)&&(a=g)}return c.utils.subtract(a,b.xAxisPadding())},b.xAxisMax=function(){for(var a=null,d=b.allGroups(),e=0;ea)&&(a=g)}return c.utils.add(a,b.xAxisPadding())},b.calculateDataPointMatrixForAll=function(){for(var a=b.allGroups(),c=0;c=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.initBubbleColor=function(a,d){return this[c.constants.NODE_INDEX_NAME]=d,b.getColor(a,d)},b.updateBubbleColor=function(a){return b.getColor(a,this[c.constants.NODE_INDEX_NAME])},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),c.redrawAll(b.chartGroup())})},b},c.pieChart=function(b,d){function e(){if(D.dataSet()){var b=q();x=x?x:a.min([D.width(),D.height()])/2;var c=D.buildArcs(),d=b(D.assembleCappedData());if(y){var e=y.selectAll("g."+A).data(d);f(e,c,d),k(d,c),o(e),p()}}}function f(a,b,c){var d=g(a);h(d,b),i(d),j(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return A+" _"+b});return b}function h(a,b){var c=a.append("path").attr("fill",function(a,b){return D.getColor(a,b)}).on("click",v).attr("d",function(a,c){return w(a,c,b)});c.transition().duration(D.transitionDuration()).attrTween("d",t)}function i(a){D.renderTitle()&&a.append("title").text(function(a){return D.title()(a)})}function j(a,b){if(D.renderLabel()){var d=y.selectAll("text."+A).data(a);d.exit().remove();var e=d.enter().append("text").attr("class",function(a,b){return A+" _"+b}).on("click",v);c.transition(e,D.transitionDuration()).attr("transform",function(a){a.innerRadius=D.innerRadius(),a.outerRadius=x;var c=b.centroid(a);return isNaN(c[0])||isNaN(c[1])?"translate(0,0)":"translate("+c+")"}).attr("text-anchor","middle").text(function(a){var b=a.data;return s(b)||r(a)?"":D.label()(a)})}}function k(a,b){l(a,b),m(a,b),n(a)}function l(a,b){var d=y.selectAll("g."+A).data(a).select("path").attr("d",function(a,c){return w(a,c,b)});c.transition(d,D.transitionDuration(),function(a){a.attrTween("d",t)}).attr("fill",function(a,b){return D.getColor(a,b)})}function m(a,b){if(D.renderLabel()){var d=y.selectAll("text."+A).data(a);c.transition(d,D.transitionDuration()).attr("transform",function(a){a.innerRadius=D.innerRadius(),a.outerRadius=x;var c=b.centroid(a);return isNaN(c[0])||isNaN(c[1])?"translate(0,0)":"translate("+c+")"}).attr("text-anchor","middle").text(function(a){var b=a.data;return s(b)||r(a)?"":D.label()(a)})}}function n(a){D.renderTitle()&&y.selectAll("g."+A).data(a).select("title").text(function(a){return D.title()(a)})}function o(a){a.exit().remove()}function p(){D.selectAll("g."+A).each(D.hasFilter()?function(a){D.isSelectedSlice(a)?D.highlightSelected(this):D.fadeDeselected(this)}:function(){D.resetHighlight(this)})}function q(){return a.layout.pie().sort(null).value(function(a){return D.valueAccessor()(a)})}function r(a){var b=a.endAngle-a.startAngle;return isNaN(b)||C>b}function s(a){return 0===D.valueAccessor()(a)}function t(b){b.innerRadius=D.innerRadius();var c=this._current;u(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return w(d(a),0,D.buildArcs())}}function u(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function v(a){D.onClick(a.data)}function w(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}var x,y,z=.5,A="pie-slice",B=0,C=z,D=c.capped(c.colorChart(c.baseChart({})));return D.slicesCap=D.cap,D.label(function(a){return D.keyAccessor()(a.data)}),D.renderLabel(!0),D.title(function(a){return D.keyAccessor()(a.data)+": "+D.valueAccessor()(a.data)}),D.transitionDuration(350),D.doRender=function(){return D.resetSvg(),y=D.svg().append("g").attr("transform","translate("+D.cx()+","+D.cy()+")"),e(),D},D.innerRadius=function(a){return arguments.length?(B=a,D):B},D.radius=function(a){return arguments.length?(x=a,D):x},D.cx=function(){return D.width()/2},D.cy=function(){return D.height()/2},D.buildArcs=function(){return a.svg.arc().outerRadius(x).innerRadius(B)},D.isSelectedSlice=function(a){return D.hasFilter(D.keyAccessor()(a.data))},D.doRedraw=function(){return e(),D},D.minAngleForLabel=function(a){return arguments.length?(C=a,D):C},D.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(n.y()(a.y+a.y0)-n.y()(a.y0)))}function f(a,b){var d=a.selectAll("rect.bar").data(b.points);d.enter().append("rect").attr("class","bar").attr("fill",n.getColor).append("title").text(n.title()),n.isOrdinal()&&d.on("click",i),c.transition(d,n.transitionDuration()).attr("x",function(a){var b=n.x()(a.x);return(p||n.isOrdinal())&&(b-=k/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=n.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",k).attr("height",function(a){return e(a)}).select("title").text(n.title()),c.transition(d.exit(),n.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===k){var a=n.isOrdinal()?h()+1:h(),b=Math.floor((n.xAxisLength()-(a-1)*o)/a);(1/0==b||isNaN(b)||l>b)&&(b=l),k=b}}function h(){return void 0===j&&(j=n.xUnitCount()),j -}function i(a){n.onClick(a.data)}var j,k,l=1,m=2,n=c.stackableChart(c.coordinateGridChart({})),o=m,p=!1;return c.override(n,"rescale",function(){n._rescale(),j=void 0,k=void 0,h()}),n.plotData=function(){var b=n.chartBodyG().selectAll("g.stack").data(n.stackLayers());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,b,c)}),n.stackLayers(null)},n.fadeDeselectedArea=function(){var a=n.chartBodyG().selectAll("rect.bar"),b=n.brush().extent();if(n.isOrdinal())n.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return n.hasFilter(n.keyAccessor()(a.data))}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!n.hasFilter(n.keyAccessor()(a.data))})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(n.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){var b=n.keyAccessor()(a.data);return d>b||b>=e})}},n.centerBar=function(a){return arguments.length?(p=a,n):p},n.gap=function(a){return arguments.length?(o=a,n):o},n.extendBrush=function(){var a=n.brush().extent();return n.round()&&!p&&(a[0]=a.map(n.round())[0],a[1]=a.map(n.round())[1],n.chartBodyG().select(".brush").call(n.brush().extent(a))),a},n.legendHighlight=function(b){n.select(".chart-body").selectAll("rect.bar").filter(function(){return a.select(this).attr("fill")==b.color}).classed("highlight",!0),n.select(".chart-body").selectAll("rect.bar").filter(function(){return a.select(this).attr("fill")!=b.color}).classed("fadeout",!0)},n.legendReset=function(b){n.selectAll(".chart-body").selectAll("rect.bar").filter(function(){return a.select(this).attr("fill")==b.color}).classed("highlight",!1),n.selectAll(".chart-body").selectAll("rect.bar").filter(function(){return a.select(this).attr("fill")!=b.color}).classed("fadeout",!1)},n.anchor(b,d)},c.lineChart=function(b,d){function e(b,d){var e=a.svg.line().x(function(a){return t.x()(a.x)}).y(function(a){return t.y()(a.y+a.y0)}).interpolate(w).tension(x);n&&e.defined(n),b.append("path").attr("class","line").attr("stroke",t.getColor).attr("fill",t.getColor),c.transition(d.select("path.line"),t.transitionDuration()).attr("d",function(a){return g(e(a.points))})}function f(b,d){if(u){var e=a.svg.area().x(function(a){return t.x()(a.x)}).y(function(a){return t.y()(a.y+a.y0)}).y0(function(a){return t.y()(a.y0)}).interpolate(w).tension(x);n&&e.defined(n),b.append("path").attr("class","area").attr("fill",t.getColor).attr("d",function(a){return g(e(a.points))}),c.transition(d.select("path.area"),t.transitionDuration()).attr("d",function(a){return g(e(a.points))})}}function g(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function h(b){t.brushOn()||b.each(function(){var b=a.select(this),d=b.select("g."+p);d.empty()&&(d=b.append("g").attr("class",p)),i(d);var e=d.selectAll("circle."+q).data(d.datum().points);e.enter().append("circle").attr("class",q).attr("r",v).attr("fill",t.getColor).style("fill-opacity",1e-6).style("stroke-opacity",1e-6).on("mousemove",function(){var b=a.select(this);j(b),k(b,d)}).on("mouseout",function(){var b=a.select(this);l(b),m(d)}).append("title").text(t.title()),e.attr("cx",function(a){return c.utils.safeNumber(t.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(t.y()(a.y+a.y0))}).select("title").text(t.title()),e.exit().remove()})}function i(a){var b=a.select("path."+r).empty()?a.append("path").attr("class",r):a.select("path."+r);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+s).empty()?a.append("path").attr("class",s):a.select("path."+s);c.style("display","none").attr("stroke-dasharray","5,5")}function j(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a}function k(a,b){var c=a.attr("cx"),d=a.attr("cy");b.select("path."+r).style("display","").attr("d","M0 "+d+"L"+c+" "+d),b.select("path."+s).style("display","").attr("d","M"+c+" "+t.yAxisHeight()+"L"+c+" "+d)}function l(a){a.style("fill-opacity",1e-6).style("stroke-opacity",1e-6)}function m(a){a.select("path."+r).style("display","none"),a.select("path."+s).style("display","none")}var n,o=5,p="dc-tooltip",q="dot",r="yRef",s="xRef",t=c.stackableChart(c.coordinateGridChart({})),u=!1,v=o,w="linear",x=.7;return t.transitionDuration(500),t.plotData=function(){var a=t.chartBodyG().selectAll("g.stack").data(t.stackLayers()),b=a.enter().append("g").attr("class",function(a,b){return"stack _"+b});e(b,a),f(b,a),h(a),t.stackLayers(null)},t.interpolate=function(a){return arguments.length?(w=a,t):w},t.tension=function(a){return arguments.length?(x=a,t):x},t.defined=function(a){return arguments.length?(n=a,t):n},t.renderArea=function(a){return arguments.length?(u=a,t):u},t.dotRadius=function(a){return arguments.length?(v=a,t):v},t.legendHighlight=function(b){t.selectAll(".chart-body").selectAll("path").filter(function(){return a.select(this).attr("fill")==b.color}).classed("highlight",!0),t.selectAll(".chart-body").selectAll("path").filter(function(){return a.select(this).attr("fill")!=b.color}).classed("fadeout",!0)},t.legendReset=function(b){t.selectAll(".chart-body").selectAll("path").filter(function(){return a.select(this).attr("fill")==b.color}).classed("highlight",!1),t.selectAll(".chart-body").selectAll("path").filter(function(){return a.select(this).attr("fill")!=b.color}).classed("fadeout",!1)},t.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseChart({});return f.doRender=function(){return f.selectAll(".total-count").text(e(f.dimension().size())),f.selectAll(".filter-count").text(e(f.group().value())),f},f.doRedraw=function(){return f.doRender()},f.anchor(b,d)},c.dataTable=function(d,e){function f(){var a=n.root().selectAll("tbody").data(g(),function(a){return n.keyAccessor()(a)}),b=a.enter().append("tbody");return b.append("tr").attr("class",m).append("td").attr("class",j).attr("colspan",p.length).html(function(a){return n.keyAccessor()(a)}),a.exit().remove(),b}function g(){i||(i=b.quicksort.by(q));var c=n.dimension().top(o);return a.nest().key(n.group()).sortKeys(r).sortValues(r).entries(i(c,0,c.length))}function h(a){for(var b=a.order().selectAll("tr."+k).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",k),d=0;d0?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.updateBubbleColor).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.abstractBubbleChart(c.coordinateGridChart({})),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.group().all());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(a,b){a._generateG(k.g()),a.g().attr("class",j+" _"+b)}function f(){for(var a=[],b=0;b1?a.push.apply(a,e):a.push(c.utils.createLegendable(b,b.group(),d,b.valueAccessor()))}),a},k.legendHighlight=function(a){for(var b=0;b0&&(b[0]=0),r=a.scale.linear().domain(b).range([0,y.effectiveWidth()]),z.scale(r)}}function f(){var a=q.select("g.axis");e(),a.empty()&&(a=q.append("g").attr("class","axis").attr("transform","translate(0, "+y.effectiveHeight()+")")),c.transition(a,y.transitionDuration()).call(z)}function g(){q.selectAll("g.tick").select("line.grid-line").remove(),q.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-y.effectiveHeight()})}function h(){t=y.assembleCappedData(),f(),g();var a=q.selectAll("g."+x).data(t);i(a),j(a),k(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return x+" _"+b});b.append("rect").attr("width",0),m(b),n(a)}function j(a){a.exit().remove()}function k(a){var b=t.length,d=(y.effectiveHeight()-(b+1)*w)/b,e=a.attr("transform",function(a,b){return"translate(0,"+((b+1)*w+b*d)+")"}).select("rect").attr("height",d).attr("fill",y.getColor).on("click",o).classed("deselected",function(a){return y.hasFilter()?!y.isSelectedRow(a):!1}).classed("selected",function(a){return y.hasFilter()?y.isSelectedRow(a):!1});c.transition(e,y.transitionDuration()).attr("width",function(a){var b=r(r(0)==-1/0?1:0);return Math.abs(b-r(y.valueAccessor()(a)))}).attr("transform",p),l(a),n(a)}function l(a){y.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(function(a){return y.title()(a)}))}function m(a){y.renderLabel()&&a.append("text").on("click",o)}function n(a){if(y.renderLabel()){var b=a.select("text").attr("x",u).attr("y",v).on("click",o).attr("class",function(a,b){return x+" _"+b}).text(function(a){return y.label()(a)});c.transition(b,y.transitionDuration()).attr("transform",p)}}function o(a){y.onClick(a)}function p(a){var b=r(y.valueAccessor()(a)),c=r(0),d=b>c?c:b;return"translate("+d+",0)"}var q,r,s,t,u=10,v=15,w=5,x="row",y=c.capped(c.marginable(c.colorChart(c.baseChart({})))),z=a.svg.axis().orient("bottom");return y.rowsCap=y.cap,y.doRender=function(){return y.resetSvg(),q=y.svg().append("g").attr("transform","translate("+y.margins().left+","+y.margins().top+")"),h(),y},y.title(function(a){return y.keyAccessor()(a)+": "+y.valueAccessor()(a)}),y.label(function(a){return y.keyAccessor()(a)}),y.x=function(a){return arguments.length?(r=a,y):r},y.doRedraw=function(){return h(),y},y.xAxis=function(){return z},y.gap=function(a){return arguments.length?(w=a,y):w},y.elasticX=function(a){return arguments.length?(s=a,y):s},y.labelOffsetX=function(a){return arguments.length?(u=a,y):u},y.labelOffsetY=function(a){return arguments.length?(v=a,y):v},y.isSelectedRow=function(a){return y.hasFilter(y.keyAccessor()(a))},y.anchor(b,d)},c.legend=function(){function a(){return i+h}var b,c,d=2,e={},f=0,g=0,h=12,i=5;return e.parent=function(a){return arguments.length?(b=a,e):b},e.render=function(){c=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+f+","+g+")");var e=c.selectAll("g.dc-legend-item").data(b.legendables()).enter().append("g").attr("class","dc-legend-item").attr("transform",function(b,c){return"translate(0,"+c*a()+")"}).on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)});e.append("rect").attr("width",h).attr("height",h).attr("fill",function(a){return a.color}),e.append("text").text(function(a){return a.name}).attr("x",h+d).attr("y",function(){return h/2+(this.clientHeight?this.clientHeight:13)/2-2})},e.x=function(a){return arguments.length?(f=a,e):f},e.y=function(a){return arguments.length?(g=a,e):g},e.gap=function(a){return arguments.length?(i=a,e):i},e.itemHeight=function(a){return arguments.length?(h=a,e):h},e},c.capped=function(b){var d=1/0,e="Others",f=function(c){var d=a.sum(c,b.valueAccessor()),f=b.group().all(),g=a.sum(f,b.valueAccessor()),h=c.map(b.keyAccessor()),i=f.map(b.keyAccessor()),j=a.set(h),k=i.filter(function(a){return!j.has(a)});c.push({others:k,key:e,value:g-d})};return b.assembleCappedData=function(){if(1/0==d)return b.computeOrderedGroups();var a=b.group().top(d);return a=b.computeOrderedGroups(a),f&&f(a),a},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&&a.others.forEach(function(a){b.filter(a)}),b._onClick(a)}),b},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseChart({});return g.dimension({}),g.value=function(){var a=g.group().all&&g.group().all()[0]||g.group().value();return g.valueAccessor()(a)},g.transitionDuration(250),g.doRender=function(){var b=g.value(),c=g.selectAll("."+e);return 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){this.textContent=g.formatNumber()(c(a))}}),g},g.doRedraw=function(){return g.doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c}"function"==typeof define&&define.amd?define(["d3","crossfilter"],a):"object"==typeof module&&module.exports?module.exports=a(require("d3"),require("crossfilter").crossfilter):this.dc=a(d3,crossfilter)}(); +!function(){function a(a,b){"use strict";var c={version:"1.7.3",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};return 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)},clear:function(){b={}},list:function(c){return c=a(c),b[c]}}}(),c.registerChart=function(a,b){c.chartRegistry.register(a,b)},c.hasChart=function(a){return c.chartRegistry.has(a)},c.deregisterAllCharts=function(){c.chartRegistry.clear()},c.filterAll=function(a){for(var b=c.chartRegistry.list(a),d=0;d=b||void 0===b)return a;var d=a.transition().duration(b);return c instanceof Function&&c(d),d},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.__dc_flag__},c.errors={},c.errors.Exception=function(a){var b=void 0!==a?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 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.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.GroupStack=function(){function a(a){c[a]||(c[a]=[])}var b,c=[[]],d=[];this.setDataPoint=function(b,d,e){a(b),c[b][d]=e},this.getDataPoint=function(b,d){a(b);var e=c[b][d];return void 0===e&&(e=0),e},this.addGroup=function(a,c){return c||(c=b),d.push([a,c]),d.length-1},this.getGroupByIndex=function(a){return d[a][0]},this.getAccessorByIndex=function(a){return d[a][1]},this.size=function(){return d.length},this.clear=function(){c=[],d=[]},this.setDefaultAccessor=function(a){b=a},this.getDataLayers=function(){return c},this.toLayers=function(){for(var a=[],b=0;b-c.constants.NEGLIGIBLE_NUMBER},c.utils.groupMax=function(b,d){var e=a.max(b.all(),function(a){return d(a)});return c.utils.isNegligible(e)&&(e=0),e},c.utils.groupMin=function(b,d){var e=a.min(b.all(),function(a){return d(a)});return c.utils.isNegligible(e)&&(e=0),e},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b){var c=a.select(b);return c.empty()&&(c=a.append(b)),c},c.utils.createLegendable=function(a,b,c,d){var e={name:a._getGroupName(b,d),data:b};return"function"==typeof a.colors&&(e.color=a.colors()(c)),e},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},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.cumulative={},c.cumulative.Base=function(){this._keyIndex=[],this._map={},this.sanitizeKey=function(a){return a+=""},this.clear=function(){this._keyIndex=[],this._map={}},this.size=function(){return this._keyIndex.length},this.getValueByKey=function(a){a=this.sanitizeKey(a);var b=this._map[a];return b},this.setValueByKey=function(a,b){return a=this.sanitizeKey(a),this._map[a]=b},this.indexOfKey=function(a){return a=this.sanitizeKey(a),this._keyIndex.indexOf(a)},this.addToIndex=function(a){a=this.sanitizeKey(a),this._keyIndex.push(a)},this.getKeyByIndex=function(a){return this._keyIndex[a]}},c.cumulative.Sum=function(){c.cumulative.Base.apply(this,arguments),this.add=function(a,b){b||(b=0),void 0===this.getValueByKey(a)?(this.addToIndex(a),this.setValueByKey(a,b)):this.setValueByKey(a,this.getValueByKey(a)+b)},this.minus=function(a,b){this.setValueByKey(a,this.getValueByKey(a)-b)},this.cumulativeSum=function(a){var b=this.indexOfKey(a);if(0>b)return 0;for(var c=0,d=0;b>=d;++d){var e=this.getKeyByIndex(d);c+=this.getValueByKey(e)}return c}},c.cumulative.Sum.prototype=new c.cumulative.Base,c.cumulative.CountUnique=function(){function a(a){var b,c=0;for(b in a)a.hasOwnProperty(b)&&c++;return c}c.cumulative.Base.apply(this,arguments),this.add=function(a,b){void 0===this.getValueByKey(a)&&(this.setValueByKey(a,{}),this.addToIndex(a)),void 0!==b&&(void 0===this.getValueByKey(a)[b]&&(this.getValueByKey(a)[b]=0),this.getValueByKey(a)[b]+=1)},this.minus=function(a,b){this.getValueByKey(a)[b]-=1,this.getValueByKey(a)[b]<=0&&delete this.getValueByKey(a)[b]},this.count=function(b){return a(this.getValueByKey(b))},this.cumulativeCount=function(a){var b=this.indexOfKey(a);if(0>b)return 0;for(var c=0,d=0;b>=d;++d){var e=this.getKeyByIndex(d);c+=this.count(e)}return c}},c.cumulative.CountUnique.prototype=new c.cumulative.Base,c.baseChart=function(d){function e(a,b,c){var d=a.anchor(),e="__names__";c&&c!=a.valueAccessor()||(c="default"),b[e]||(b[e]={}),b[e][d]||(b[e][d]={a:[],n:[]});var f=b[e][d].a.indexOf(c);return-1==f&&(f=b[e][d].a.length,b[e][d].a[f]=c,b[e][d].n[f]={name:""}),b[e][d].n[f]}function f(){return p=d.root().append("svg").attr("width",d.width()).attr("height",d.height())}function g(a){G.splice(G.indexOf(a),1),j(),d._invokeFilteredListener(a)}function h(a){G.push(a),j(),d._invokeFilteredListener(a)}function i(){G=[],j(),d._invokeFilteredListener(null)}function j(){if(d.dataSet()&&void 0!==d.dimension().filter){var a=H(d.dimension(),G);G=a?a:G}}function k(){for(var a=0;a=0}),b};return d.width=function(a){return arguments.length?(r=a,d):r},d.height=function(a){return arguments.length?(s=a,d):s},d.dimension=function(a){return arguments.length?(l=a,d.expireCache(),d):l},d.group=function(a,b){return arguments.length?(m=a,d.expireCache(),"string"==typeof b&&d._setGroupName(m,b),d):m},d._getGroupName=function(a,b){return e(d,a,b).name},d._setGroupName=function(a,b,c){e(d,a,c).name=b},d.ordering=function(a){return arguments.length?(v=a,d.expireCache(),d):v},d.computeOrderedGroups=function(a){var c=a?a:d.group().all().slice(0);if(c.length<2)return c;var e=b.quicksort.by(d.ordering());return e(c,0,c.length)},d.filterAll=function(){return d.filter(null)},d.dataSet=function(){return void 0!==l&&void 0!==m},d.select=function(a){return o.select(a)},d.selectAll=function(a){return o?o.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(n=b.anchor(),o=b.root()):(n=b,o=a.select(n),o.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),D=e,d):n},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a?a.replace("#",""):""},d.root=function(a){return arguments.length?(o=a,d):o},d.svg=function(a){return arguments.length?(p=a,d):p},d.resetSvg=function(){return d.select("svg").remove(),f()},d.filterPrinter=function(a){return arguments.length?(B=a,d):B},d.turnOnControls=function(){return o&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(B(d.filters())).style("display",null)),d},d.turnOffControls=function(){return o&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(A=a,d):A},d.render=function(){if(F.preRender(d),void 0===l)throw new c.errors.InvalidStateException("Mandatory attribute chart.dimension is missing on chart[#"+d.anchorName()+"]");if(void 0===m)throw new c.errors.InvalidStateException("Mandatory attribute chart.group is missing on chart[#"+d.anchorName()+"]");var a=d.doRender();return q&&q.render(),d.activateRenderlets("postRender"),a},d.activateRenderlets=function(a){d.transitionDuration()>0&&p?p.transition().duration(d.transitionDuration()).each("end",function(){k(),a&&F[a](d)}):(k(),a&&F[a](d))},d.redraw=function(){F.preRedraw(d);var a=d.doRedraw();return d.activateRenderlets("postRedraw"),a},d._invokeFilteredListener=function(a){void 0!==a&&F.filtered(d,a)},d._invokeZoomedListener=function(){F.zoomed(d)},d.hasFilter=function(a){return arguments.length?G.indexOf(a)>=0:G.length>0},d.filter=function(a){return arguments.length?(null===a?i():d.hasFilter(a)?g(a):h(a),null!==o&&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),c.redrawAll(d.chartGroup())})},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.keyAccessor=function(a){return arguments.length?(t=a,d):t},d.valueAccessor=function(a){return arguments.length?(u=a,d):u},d.label=function(a){return arguments.length?(w=a,x=!0,d):w},d.renderLabel=function(a){return arguments.length?(x=a,d):x},d.title=function(a){return arguments.length?(y=a,z=!0,d):y},d.renderTitle=function(a){return arguments.length?(z=a,d):z},d.renderlet=function(a){return C.push(a),d},d.chartGroup=function(a){return arguments.length?(D=a,d):D},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(q=a,q.parent(d),d):q},d.on=function(a,b){return F[a]=b,d},d},c.marginable=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.coordinateGridChart=function(b){function d(a){b.elasticX()&&!b.isOrdinal()?x.domain([b.xAxisMin(),b.xAxisMax()]):b.isOrdinal()&&0===x.domain().length&&x.domain(b.computeOrderedGroups().map(function(a){return a.key})),b.isOrdinal()?b.prepareOrdinalXAxis():x.range([0,b.xAxisLength()]),G=G.scale(b.x()).orient("bottom"),e(a)}function e(a){var d=a.selectAll("g."+q);if(S){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.yAxisX()+","+b.margins().top+")"));var e=G.tickValues()?G.tickValues():x.ticks(G.ticks()[0]),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 f(c){(void 0===A||b.elasticY())&&(A=a.scale.linear(),A.domain([b.yAxisMin(),b.yAxisMax()]).rangeRound([b.yAxisHeight(),0])),A.range([b.yAxisHeight(),0]),L=L.scale(A).orient("left"),g(c)}function g(a){var d=a.selectAll("g."+p);if(R){var e=L.tickValues()?L.tickValues():A.ticks(L.ticks()[0]);d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.yAxisX()+","+b.margins().top+")"));var f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",1).attr("y1",function(a){return A(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return A(a)}).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return A(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return A(a)}),f.exit().remove()}else d.selectAll("line").remove()}function h(){return b.xAxisY()-b.margins().top}function i(){var a=b.extendBrush();b.redrawBrush(v),b.brushIsEmpty(a)?c.events.trigger(function(){b.filter(null),c.redrawAll(b.chartGroup())}):c.events.trigger(function(){b.filter(null),b.filter([a[0],a[1]]),c.redrawAll(b.chartGroup())},c.constants.EVENT_DELAY)}function j(){return b.anchorName()+"-clip"}function k(){var a=c.utils.appendOrSelect(u,"defs"),d=c.utils.appendOrSelect(a,"clipPath").attr("id",j()),e=2*X;c.utils.appendOrSelect(d,"rect").attr("width",b.xAxisLength()+e).attr("height",b.yAxisHeight()+e)}function l(){W&&b.root().call(a.behavior.zoom().x(b.x()).scaleExtent(U).on("zoom",function(){b.focus(b.x().domain()),b._invokeZoomedListener(),m()}))}function m(){if(E){var a=b.x().domain();if(V){var d=E.xOriginalDomain(),e=[a[0]d[1]?a[1]:d[1]];E.focus(e)}else E.focus(a);E.filter(null),E.filter(a),c.events.trigger(function(){c.redrawAll(b.chartGroup())})}}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.colorChart(c.marginable(c.baseChart(b))),b.colors(a.scale.category10());var u,v,w,x,y,z,A,B,C,D,E,F,G=a.svg.axis(),H=c.units.integers,I=0,J=!1,K=0,L=a.svg.axis(),M=0,N=!1,O=0,P=a.svg.brush(),Q=!0,R=!1,S=!1,T=!1,U=[-10,100],V=!0,W=!1,X=0;return b.title(function(a){return a.data.key+": "+a.data.value}),b.rescale=function(){D=void 0,b.xUnitCount()},b.rangeChart=function(a){return arguments.length?(E=a,E.focusChart(b),b):E},b.zoomScale=function(a){return arguments.length?(U=a,b):U},b.zoomOutRestrict=function(a){return arguments.length?(V=a,b):V},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(#"+j()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?(W=a,b):W},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?(H=a,b):H},b.xAxis=function(a){return arguments.length?(G=a,b):G},b.elasticX=function(a){return arguments.length?(J=a,b):J},b.xAxisPadding=function(a){return arguments.length?(I=a,b):I},b.xUnitCount=function(){if(void 0===D){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());D=a instanceof Array?a.length:a}return D},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b.prepareOrdinalXAxis=function(a){a||(a=b.xUnitCount());for(var c=[],d=b.xAxisLength()/(a+1),e=d/2,f=0;a>f;f++)c[f]=e,e+=d;x.range(c)},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.xAxisLength()/2+","+(b.height()-K)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!=b.xAxisLabel()&&axisYLab.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(G)},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-=K,K=void 0===c?t:c,b.margins().bottom+=K,b):z},b.renderYAxis=function(a){var d=a.selectAll("g.y");d.empty()&&(d=a.append("g").attr("class","axis y").attr("transform","translate("+b.yAxisX()+","+b.margins().top+")"));var e=a.selectAll("text."+r);e.empty()&&b.yAxisLabel()&&(e=a.append("text").attr("transform","translate("+O+","+b.yAxisHeight()/2+"),rotate(-90)").attr("class",r).attr("text-anchor","middle").text(b.yAxisLabel())),b.yAxisLabel()&&e.text()!=b.yAxisLabel()&&e.text(b.yAxisLabel()),c.transition(d,b.transitionDuration()).call(L)},b.yAxisX=function(){return b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(B=a,b.margins().left-=O,O=void 0===c?t:c,b.margins().left+=O,b):B},b.y=function(a){return arguments.length?(A=a,b):A},b.yAxis=function(a){return arguments.length?(L=a,b):L},b.elasticY=function(a){return arguments.length?(N=a,b):N},b.renderHorizontalGridLines=function(a){return arguments.length?(R=a,b):R},b.renderVerticalGridLines=function(a){return arguments.length?(S=a,b):S},b.xAxisMin=function(){var d=a.min(b.group().all(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,I)},b.xAxisMax=function(){var d=a.max(b.group().all(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,I)},b.yAxisMin=function(){var d=a.min(b.group().all(),function(a){return b.valueAccessor()(a)});return d=c.utils.subtract(d,M)},b.yAxisMax=function(){var d=a.max(b.group().all(),function(a){return b.valueAccessor()(a)});return d=c.utils.add(d,M)},b.yAxisPadding=function(a){return arguments.length?(M=a,b):M},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(C=a,b):C},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?(P=a,b):P},b.renderBrush=function(a){if(b.isOrdinal()&&(Q=!1),Q){P.on("brush",i);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(P.x(b.x()));c.selectAll("rect").attr("height",h()),c.selectAll(".resize").append("path").attr("d",b.resizeHandlePath),b.hasFilter()&&b.redrawBrush(a)}},b.extendBrush=function(){var a=P.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(P.extent(a))),a},b.brushIsEmpty=function(a){return P.empty()||!a||a[1]<=a[0]},b.redrawBrush=function(a){if(Q){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),c.selectAll("rect").attr("height",h())}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"==a),c=b?1:-1,d=h()/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?(X=a,b):X},b.doRender=function(){if(void 0===x)throw new c.errors.InvalidStateException("Mandatory attribute chart.x is missing on chart[#"+b.anchorName()+"]");return b.resetSvg(),b.dataSet()&&(b._generateG(),k(),d(b.g()),f(b.g()),b.plotData(),b.renderXAxis(b.g()),b.renderYAxis(b.g()),b.renderBrush(b.g()),l()),b},b.doRedraw=function(){return d(b.g()),f(b.g()),b.plotData(),b.elasticY()&&b.renderYAxis(b.g()),(b.elasticX()||T)&&b.renderXAxis(b.g()),b.redrawBrush(b.g()),b},b.subRender=function(){return b.dataSet()&&b.plotData(),b},b.brushOn=function(a){return arguments.length?(Q=a,b):Q},b.focus=function(a){T=!0,b.x().domain(n(a)?a:b.xOriginalDomain()),b.rescale(),b.redraw(),n(a)||(T=!1)},b.refocused=function(){return T},b.focusChart=function(a){return arguments.length?(F=a,b.on("filtered",function(a){c.events.trigger(function(){F.focus(a.filter()),F.filter(a.filter()),c.redrawAll(a.chartGroup())})}),b):F},b},c.colorChart=function(b){var d=a.scale.category20c(),e=[0,d.range().length],f=function(a){var f=e;"function"==typeof e&&(f=e.call(b));var g=f[0],h=f[1];if(isNaN(a)&&(a=0),!c.utils.isNumber(h))return d(a);var i=b.colors().range().length,j=(h-g)/i,k=Math.abs(Math.min(i-1,Math.round((a-g)/j)));return b.colors()(k)},g=function(a,b){return b};return b.colors=function(c){if(!arguments.length)return d;if(c instanceof Array){d=a.scale.ordinal().range(c);for(var f=[],g=0;g=e[0]&&a.x<=e[e.length-1]};b.stackLayers().forEach(function(a){a.points.forEach(function(a){d(a)&&c.push(a)})})}else b.stackLayers().forEach(function(a){c=c.concat(a.points)});return c}function e(a,c){return b.getKeyAccessorByIndex(a)(c)}function f(a,c){return b.getValueAccessorByIndex(a)(c)}function g(a,b){for(var c=0;cg)&&(a=g)}return c.utils.subtract(a,b.xAxisPadding())},b.xAxisMax=function(){for(var a=null,d=b.allGroups(),e=0;ea)&&(a=g)}return c.utils.add(a,b.xAxisPadding())},b.calculateDataPointMatrixForAll=function(){for(var a=b.allGroups(),c=0;c=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.initBubbleColor=function(a,d){return this[c.constants.NODE_INDEX_NAME]=d,b.getColor(a,d)},b.updateBubbleColor=function(a){return b.getColor(a,this[c.constants.NODE_INDEX_NAME])},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),c.redrawAll(b.chartGroup())})},b},c.pieChart=function(b,d){function e(){if(D.dataSet()){var b=q();x=x?x:a.min([D.width(),D.height()])/2;var c=D.buildArcs(),d=b(D.assembleCappedData());if(y){var e=y.selectAll("g."+A).data(d);f(e,c,d),k(d,c),o(e),p()}}}function f(a,b,c){var d=g(a);h(d,b),i(d),j(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return A+" _"+b});return b}function h(a,b){var c=a.append("path").attr("fill",function(a,b){return D.getColor(a,b)}).on("click",v).attr("d",function(a,c){return w(a,c,b)});c.transition().duration(D.transitionDuration()).attrTween("d",t)}function i(a){D.renderTitle()&&a.append("title").text(function(a){return D.title()(a)})}function j(a,b){if(D.renderLabel()){var d=y.selectAll("text."+A).data(a);d.exit().remove();var e=d.enter().append("text").attr("class",function(a,b){return A+" _"+b}).on("click",v);c.transition(e,D.transitionDuration()).attr("transform",function(a){a.innerRadius=D.innerRadius(),a.outerRadius=x;var c=b.centroid(a);return isNaN(c[0])||isNaN(c[1])?"translate(0,0)":"translate("+c+")"}).attr("text-anchor","middle").text(function(a){var b=a.data;return s(b)||r(a)?"":D.label()(a)})}}function k(a,b){l(a,b),m(a,b),n(a)}function l(a,b){var d=y.selectAll("g."+A).data(a).select("path").attr("d",function(a,c){return w(a,c,b)});c.transition(d,D.transitionDuration(),function(a){a.attrTween("d",t)}).attr("fill",function(a,b){return D.getColor(a,b)})}function m(a,b){if(D.renderLabel()){var d=y.selectAll("text."+A).data(a);c.transition(d,D.transitionDuration()).attr("transform",function(a){a.innerRadius=D.innerRadius(),a.outerRadius=x;var c=b.centroid(a);return isNaN(c[0])||isNaN(c[1])?"translate(0,0)":"translate("+c+")"}).attr("text-anchor","middle").text(function(a){var b=a.data;return s(b)||r(a)?"":D.label()(a)})}}function n(a){D.renderTitle()&&y.selectAll("g."+A).data(a).select("title").text(function(a){return D.title()(a)})}function o(a){a.exit().remove()}function p(){D.selectAll("g."+A).each(D.hasFilter()?function(a){D.isSelectedSlice(a)?D.highlightSelected(this):D.fadeDeselected(this)}:function(){D.resetHighlight(this)})}function q(){return a.layout.pie().sort(null).value(function(a){return D.valueAccessor()(a)})}function r(a){var b=a.endAngle-a.startAngle;return isNaN(b)||C>b}function s(a){return 0===D.valueAccessor()(a)}function t(b){b.innerRadius=D.innerRadius();var c=this._current;u(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return w(d(a),0,D.buildArcs())}}function u(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function v(a){D.onClick(a.data)}function w(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}var x,y,z=.5,A="pie-slice",B=0,C=z,D=c.capped(c.colorChart(c.baseChart({})));return D.slicesCap=D.cap,D.label(function(a){return D.keyAccessor()(a.data)}),D.renderLabel(!0),D.title(function(a){return D.keyAccessor()(a.data)+": "+D.valueAccessor()(a.data)}),D.transitionDuration(350),D.doRender=function(){return D.resetSvg(),y=D.svg().append("g").attr("transform","translate("+D.cx()+","+D.cy()+")"),e(),D},D.innerRadius=function(a){return arguments.length?(B=a,D):B},D.radius=function(a){return arguments.length?(x=a,D):x},D.cx=function(){return D.width()/2},D.cy=function(){return D.height()/2},D.buildArcs=function(){return a.svg.arc().outerRadius(x).innerRadius(B)},D.isSelectedSlice=function(a){return D.hasFilter(D.keyAccessor()(a.data))},D.doRedraw=function(){return e(),D},D.minAngleForLabel=function(a){return arguments.length?(C=a,D):C},D.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(n.y()(a.y+a.y0)-n.y()(a.y0)))}function f(a,b){var d=a.selectAll("rect.bar").data(b.points);d.enter().append("rect").attr("class","bar").attr("fill",n.getColor).append("title").text(n.title()),n.isOrdinal()&&d.on("click",i),c.transition(d,n.transitionDuration()).attr("x",function(a){var b=n.x()(a.x);return(p||n.isOrdinal())&&(b-=k/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=n.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",k).attr("height",function(a){return e(a)}).select("title").text(n.title()),c.transition(d.exit(),n.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===k){var a=n.isOrdinal()?h()+1:h(),b=Math.floor((n.xAxisLength()-(a-1)*o)/a);(1/0==b||isNaN(b)||l>b)&&(b=l),k=b}}function h(){return void 0===j&&(j=n.xUnitCount()),j +}function i(a){n.onClick(a.data)}var j,k,l=1,m=2,n=c.stackableChart(c.coordinateGridChart({})),o=m,p=!1;return c.override(n,"rescale",function(){n._rescale(),j=void 0,k=void 0,h()}),n.plotData=function(){var b=n.chartBodyG().selectAll("g.stack").data(n.stackLayers());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,b,c)}),n.stackLayers(null)},n.fadeDeselectedArea=function(){var a=n.chartBodyG().selectAll("rect.bar"),b=n.brush().extent();if(n.isOrdinal())n.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return n.hasFilter(n.keyAccessor()(a.data))}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!n.hasFilter(n.keyAccessor()(a.data))})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(n.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){var b=n.keyAccessor()(a.data);return d>b||b>=e})}},n.centerBar=function(a){return arguments.length?(p=a,n):p},n.gap=function(a){return arguments.length?(o=a,n):o},n.extendBrush=function(){var a=n.brush().extent();return n.round()&&!p&&(a[0]=a.map(n.round())[0],a[1]=a.map(n.round())[1],n.chartBodyG().select(".brush").call(n.brush().extent(a))),a},n.legendHighlight=function(b){n.select(".chart-body").selectAll("rect.bar").filter(function(){return a.select(this).attr("fill")==b.color}).classed("highlight",!0),n.select(".chart-body").selectAll("rect.bar").filter(function(){return a.select(this).attr("fill")!=b.color}).classed("fadeout",!0)},n.legendReset=function(b){n.selectAll(".chart-body").selectAll("rect.bar").filter(function(){return a.select(this).attr("fill")==b.color}).classed("highlight",!1),n.selectAll(".chart-body").selectAll("rect.bar").filter(function(){return a.select(this).attr("fill")!=b.color}).classed("fadeout",!1)},n.anchor(b,d)},c.lineChart=function(b,d){function e(b,d){var e=a.svg.line().x(function(a){return t.x()(a.x)}).y(function(a){return t.y()(a.y+a.y0)}).interpolate(w).tension(x);n&&e.defined(n),b.append("path").attr("class","line").attr("stroke",t.getColor).attr("fill",t.getColor),c.transition(d.select("path.line"),t.transitionDuration()).attr("d",function(a){return g(e(a.points))})}function f(b,d){if(u){var e=a.svg.area().x(function(a){return t.x()(a.x)}).y(function(a){return t.y()(a.y+a.y0)}).y0(function(a){return t.y()(a.y0)}).interpolate(w).tension(x);n&&e.defined(n),b.append("path").attr("class","area").attr("fill",t.getColor).attr("d",function(a){return g(e(a.points))}),c.transition(d.select("path.area"),t.transitionDuration()).attr("d",function(a){return g(e(a.points))})}}function g(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function h(b){t.brushOn()||b.each(function(){var b=a.select(this),d=b.select("g."+p);d.empty()&&(d=b.append("g").attr("class",p)),i(d);var e=d.selectAll("circle."+q).data(d.datum().points);e.enter().append("circle").attr("class",q).attr("r",v).attr("fill",t.getColor).style("fill-opacity",1e-6).style("stroke-opacity",1e-6).on("mousemove",function(){var b=a.select(this);j(b),k(b,d)}).on("mouseout",function(){var b=a.select(this);l(b),m(d)}).append("title").text(t.title()),e.attr("cx",function(a){return c.utils.safeNumber(t.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(t.y()(a.y+a.y0))}).select("title").text(t.title()),e.exit().remove()})}function i(a){var b=a.select("path."+r).empty()?a.append("path").attr("class",r):a.select("path."+r);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+s).empty()?a.append("path").attr("class",s):a.select("path."+s);c.style("display","none").attr("stroke-dasharray","5,5")}function j(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a}function k(a,b){var c=a.attr("cx"),d=a.attr("cy");b.select("path."+r).style("display","").attr("d","M0 "+d+"L"+c+" "+d),b.select("path."+s).style("display","").attr("d","M"+c+" "+t.yAxisHeight()+"L"+c+" "+d)}function l(a){a.style("fill-opacity",1e-6).style("stroke-opacity",1e-6)}function m(a){a.select("path."+r).style("display","none"),a.select("path."+s).style("display","none")}var n,o=5,p="dc-tooltip",q="dot",r="yRef",s="xRef",t=c.stackableChart(c.coordinateGridChart({})),u=!1,v=o,w="linear",x=.7;return t.transitionDuration(500),t.plotData=function(){var a=t.chartBodyG().selectAll("g.stack").data(t.stackLayers()),b=a.enter().append("g").attr("class",function(a,b){return"stack _"+b});e(b,a),f(b,a),h(a),t.stackLayers(null)},t.interpolate=function(a){return arguments.length?(w=a,t):w},t.tension=function(a){return arguments.length?(x=a,t):x},t.defined=function(a){return arguments.length?(n=a,t):n},t.renderArea=function(a){return arguments.length?(u=a,t):u},t.dotRadius=function(a){return arguments.length?(v=a,t):v},t.legendHighlight=function(b){t.selectAll(".chart-body").selectAll("path").filter(function(){return a.select(this).attr("fill")==b.color}).classed("highlight",!0),t.selectAll(".chart-body").selectAll("path").filter(function(){return a.select(this).attr("fill")!=b.color}).classed("fadeout",!0)},t.legendReset=function(b){t.selectAll(".chart-body").selectAll("path").filter(function(){return a.select(this).attr("fill")==b.color}).classed("highlight",!1),t.selectAll(".chart-body").selectAll("path").filter(function(){return a.select(this).attr("fill")!=b.color}).classed("fadeout",!1)},t.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseChart({});return f.doRender=function(){return f.selectAll(".total-count").text(e(f.dimension().size())),f.selectAll(".filter-count").text(e(f.group().value())),f},f.doRedraw=function(){return f.doRender()},f.anchor(b,d)},c.dataTable=function(d,e){function f(){var a=n.root().selectAll("tbody").data(g(),function(a){return n.keyAccessor()(a)}),b=a.enter().append("tbody");return b.append("tr").attr("class",m).append("td").attr("class",j).attr("colspan",p.length).html(function(a){return n.keyAccessor()(a)}),a.exit().remove(),b}function g(){i||(i=b.quicksort.by(q));var c=n.dimension().top(o);return a.nest().key(n.group()).sortKeys(r).sortValues(r).entries(i(c,0,c.length))}function h(a){for(var b=a.order().selectAll("tr."+k).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",k),d=0;d0?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.updateBubbleColor).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.abstractBubbleChart(c.coordinateGridChart({})),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.group().all());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(a,b){a._generateG(k.g()),a.g().attr("class",j+" _"+b)}function f(){for(var a=[],b=0;b1?a.push.apply(a,e):a.push(c.utils.createLegendable(b,b.group(),d,b.valueAccessor()))}),a},k.legendHighlight=function(a){for(var b=0;b0&&(b[0]=0),r=a.scale.linear().domain(b).range([0,y.effectiveWidth()]),z.scale(r)}}function f(){var a=q.select("g.axis");e(),a.empty()&&(a=q.append("g").attr("class","axis").attr("transform","translate(0, "+y.effectiveHeight()+")")),c.transition(a,y.transitionDuration()).call(z)}function g(){q.selectAll("g.tick").select("line.grid-line").remove(),q.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-y.effectiveHeight()})}function h(){t=y.assembleCappedData(),f(),g();var a=q.selectAll("g."+x).data(t);i(a),j(a),k(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return x+" _"+b});b.append("rect").attr("width",0),m(b),n(a)}function j(a){a.exit().remove()}function k(a){var b=t.length,d=(y.effectiveHeight()-(b+1)*w)/b,e=a.attr("transform",function(a,b){return"translate(0,"+((b+1)*w+b*d)+")"}).select("rect").attr("height",d).attr("fill",y.getColor).on("click",o).classed("deselected",function(a){return y.hasFilter()?!y.isSelectedRow(a):!1}).classed("selected",function(a){return y.hasFilter()?y.isSelectedRow(a):!1});c.transition(e,y.transitionDuration()).attr("width",function(a){var b=r(r(0)==-1/0?1:0);return Math.abs(b-r(y.valueAccessor()(a)))}).attr("transform",p),l(a),n(a)}function l(a){y.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(function(a){return y.title()(a)}))}function m(a){y.renderLabel()&&a.append("text").on("click",o)}function n(a){if(y.renderLabel()){var b=a.select("text").attr("x",u).attr("y",v).on("click",o).attr("class",function(a,b){return x+" _"+b}).text(function(a){return y.label()(a)});c.transition(b,y.transitionDuration()).attr("transform",p)}}function o(a){y.onClick(a)}function p(a){var b=r(y.valueAccessor()(a)),c=r(0),d=b>c?c:b;return"translate("+d+",0)"}var q,r,s,t,u=10,v=15,w=5,x="row",y=c.capped(c.marginable(c.colorChart(c.baseChart({})))),z=a.svg.axis().orient("bottom");return y.rowsCap=y.cap,y.doRender=function(){return y.resetSvg(),q=y.svg().append("g").attr("transform","translate("+y.margins().left+","+y.margins().top+")"),h(),y},y.title(function(a){return y.keyAccessor()(a)+": "+y.valueAccessor()(a)}),y.label(function(a){return y.keyAccessor()(a)}),y.x=function(a){return arguments.length?(r=a,y):r},y.doRedraw=function(){return h(),y},y.xAxis=function(){return z},y.gap=function(a){return arguments.length?(w=a,y):w},y.elasticX=function(a){return arguments.length?(s=a,y):s},y.labelOffsetX=function(a){return arguments.length?(u=a,y):u},y.labelOffsetY=function(a){return arguments.length?(v=a,y):v},y.isSelectedRow=function(a){return y.hasFilter(y.keyAccessor()(a))},y.anchor(b,d)},c.legend=function(){function a(){return i+h}var b,c,d=2,e={},f=0,g=0,h=12,i=5;return e.parent=function(a){return arguments.length?(b=a,e):b},e.render=function(){c=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+f+","+g+")");var e=c.selectAll("g.dc-legend-item").data(b.legendables()).enter().append("g").attr("class","dc-legend-item").attr("transform",function(b,c){return"translate(0,"+c*a()+")"}).on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)});e.append("rect").attr("width",h).attr("height",h).attr("fill",function(a){return a.color}),e.append("text").text(function(a){return a.name}).attr("x",h+d).attr("y",function(){return h/2+(this.clientHeight?this.clientHeight:13)/2-2})},e.x=function(a){return arguments.length?(f=a,e):f},e.y=function(a){return arguments.length?(g=a,e):g},e.gap=function(a){return arguments.length?(i=a,e):i},e.itemHeight=function(a){return arguments.length?(h=a,e):h},e},c.capped=function(b){var d=1/0,e="Others",f=function(c){var d=a.sum(c,b.valueAccessor()),f=b.group().all(),g=a.sum(f,b.valueAccessor()),h=c.map(b.keyAccessor()),i=f.map(b.keyAccessor()),j=a.set(h),k=i.filter(function(a){return!j.has(a)});c.push({others:k,key:e,value:g-d})};return b.assembleCappedData=function(){if(1/0==d)return b.computeOrderedGroups();var a=b.group().top(d);return a=b.computeOrderedGroups(a),f&&f(a),a},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&&a.others.forEach(function(a){b.filter(a)}),b._onClick(a)}),b},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseChart({});return g.dimension({}),g.value=function(){var a=g.group().all&&g.group().all()[0]||g.group().value();return g.valueAccessor()(a)},g.transitionDuration(250),g.doRender=function(){var b=g.value(),c=g.selectAll("."+e);return 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){this.textContent=g.formatNumber()(c(a))}}),g},g.doRedraw=function(){return g.doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},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 2436aac4c..1f4f36cd9 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","clear","list","registerChart","hasChart","deregisterAllCharts","filterAll","charts","i","length","renderAll","render","redrawAll","redraw","transition","selections","duration","callback","undefined","s","Function","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","__dc_flag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","GroupStack","initializeDataLayer","_dataLayers","_defaultAccessor","_groups","setDataPoint","layerIndex","pointIndex","data","getDataPoint","x","y","dataPoint","addGroup","accessor","getGroupByIndex","index","getAccessorByIndex","size","setDefaultAccessor","retriever","getDataLayers","toLayers","layers","layer","points","dataPoints","j","isNumber","max","groupMax","all","groupMin","min","nameToId","name","toLowerCase","appendOrSelect","parent","element","select","empty","append","createLegendable","legendable","_getGroupName","colors","color","safeNumber","events","current","trigger","closure","delay","setTimeout","cumulative","Base","_keyIndex","_map","sanitizeKey","key","getValueByKey","value","setValueByKey","indexOfKey","addToIndex","getKeyByIndex","Sum","minus","cumulativeSum","keyIndex","cumulativeValue","k","prototype","CountUnique","hashSize","hash","hasOwnProperty","count","cumulativeCount","baseChart","_chart","groupName","g","c","anchor","valueAccessor","a","generateSvg","_svg","root","attr","width","height","removeFilter","_filters","splice","applyFilters","_invokeFilteredListener","addFilter","resetFilters","dataSet","dimension","fs","_filterHandler","runAllRenderlets","_renderlets","_dimension","_group","_anchor","_root","_legend","_width","_height","_keyAccessor","_valueAccessor","_ordering","p","_label","_renderLabel","_title","_renderTitle","_transitionDuration","_filterPrinter","_chartGroup","NULL_LISTENER","_listeners","preRender","postRender","preRedraw","postRedraw","filtered","zoomed","filterFunction","w","h","expireCache","_setGroupName","ordering","computeOrderedGroups","arr","slice","sort","quicksort","by","selectAll","chartGroup","classed","anchorName","id","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","result","doRender","activateRenderlets","event","each","doRedraw","f","_invokeZoomedListener","hasFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","keyAccessor","filterHandler","legendables","legendHighlight","legendReset","label","renderLabel","title","renderTitle","legend","on","listener","marginable","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","coordinateGridChart","prepareXAxis","elasticX","isOrdinal","_x","xAxisMin","xAxisMax","map","kv","prepareOrdinalXAxis","range","xAxisLength","_xAxis","scale","orient","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","yAxisX","ticks","tickValues","lines","linesGEnter","enter","xAxisY","exit","prepareYAxis","_y","elasticY","linear","yAxisMin","yAxisMax","rangeRound","yAxisHeight","_yAxis","renderHorizontalGridLines","HORIZONTAL_CLASS","_renderHorizontalGridLine","brushHeight","brushing","extent","extendBrush","redrawBrush","_g","brushIsEmpty","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","enableMouseZoom","_mouseZoomable","call","behavior","zoom","scaleExtent","_zoomScale","focus","updateRangeSelChart","_rangeChart","refDom","_zoomOutRestrict","origDom","xOriginalDomain","newDom","hasRangeSelected","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABLEL_PADDING","colorChart","category10","_chartBodyG","_xOriginalDomain","_xAxisLabel","_yAxisLabel","_round","_unitCount","_focusChart","axis","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_brushOn","_refocused","rescale","xUnitCount","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xUnits","xAxis","xAxisPadding","increment","currentPosition","renderXAxis","axisXG","axisXLab","xAxisLabel","axisYLab","pad","renderYAxis","axisYG","yAxisLabel","yAxis","yAxisPadding","_filter","renderBrush","gBrush","resizeHandlePath","fadeDeselectedArea","clipPadding","plotData","subRender","brushOn","refocused","_colors","category20c","_colorDomain","_colorCalculator","minValue","maxValue","isNaN","colorsLength","denominator","colorValue","_colorAccessor","colorCalculator","getColor","colorAccessor","colorDomain","stackableChart","flattenStack","test","xDomain","domainSet","set","stackLayers","forEach","concat","getKeyFromData","groupIndex","getKeyAccessorByIndex","getValueFromData","getValueAccessorByIndex","calculateDataPointMatrix","dataIndex","_groupStack","_allGroups","_allValueAccessors","_allKeyAccessors","_stackLayers","_stackLayout","layout","stack","offset","order","values","p2","allGroups","allValueAccessors","y0","allKeyAccessors","calculateDataPointMatrixForAll","groups","getChartStack","stackLayout","items","abstractBubbleChart","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","labelFunction","labelOpacity","doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","initBubbleColor","updateBubbleColor","isSelectedNode","pieChart","drawChart","pie","calculateDataPie","_radius","arc","buildArcs","pieData","assembleCappedData","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","safeArc","attrTween","tweenPie","labelsEnter","innerRadius","outerRadius","centroid","sliceHasNoData","sliceTooSmall","updateSlicePaths","updateLabels","updateTitles","slicePaths","isSelectedSlice","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","interpolate","t","path","DEFAULT_MIN_ANGLE_FOR_LABEL","_innerRadius","capped","slicesCap","cap","cx","cy","radius","minAngleForLabel","barChart","barHeight","renderBars","bars","_centerBar","_barWidth","calculateBarWidth","numberOfBars","getNumberOfBars","_gap","Infinity","MIN_BAR_WIDTH","_numberOfBars","DEFAULT_GAP_BETWEEN_BARS","_rescale","start","end","xValue","centerBar","gap","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","safeD","drawArea","_renderArea","area","drawDots","TOOLTIP_G_CLASS","createRefLines","dots","DOT_CIRCLE_CLASS","datum","_dotRadius","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","DEFAULT_DOT_RADIUS","renderArea","dotRadius","dataCount","_formatNumber","dataTable","renderGroups","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","_columns","html","_sort","_sortBy","entries","_size","nest","sortKeys","_order","sortValues","renderRows","rows","ROW_CSS_CLASS","rowEnter","COLUMN_CSS_CLASS","ascending","columns","sortBy","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","generateChildG","child","SUB_CHART_CLASS","getAllYAxisMinFromChildCharts","allMins","_children","getAllYAxisMaxFromChildCharts","allMaxes","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","__generateG","compose","children","childChart","childLegendables","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","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","bubbleNodeClass","updateBubbles","debug","flag","debugG","debugText","position","mouse","node","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rect","isSelectedRow","translateX","lab","_labelOffsetX","_labelOffsetY","x0","rowsCap","labelOffsetX","labelOffsetY","legendItemHeight","_itemHeight","LABEL_GAP","itemEnter","clientHeight","itemHeight","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","others","othersLabel","othersGrouper","_onClick","numberDisplay","SPAN_CLASS","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","textContent","formatNumber","define","amd","module","exports","require"],"mappings":"CAkBA,WAAc,QAASA,GAAIC,EAAIC,GAC/B,YAuCA,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,KAgtKhB,OA7sKAb,GAAGc,cAAgB,WAIf,QAASC,GAAqBC,GAO1B,MANKA,KACDA,EAAQhB,EAAGE,UAAUQ,qBAEpBO,EAAUD,KACXC,EAAUD,OAEPA,EATX,GAAIC,KAYJ,QACIC,IAAK,SAASC,GACV,IAAK,GAAIC,KAAKH,GACV,GAAIA,EAAUG,GAAGC,QAAQF,IAAU,EAC/B,OAAO,CAEf,QAAO,GAGXG,SAAU,SAASH,EAAOH,GACtBA,EAAQD,EAAqBC,GAC7BC,EAAUD,GAAOO,KAAKJ,IAG1BK,MAAO,WACHP,MAGJQ,KAAM,SAAST,GAEX,MADAA,GAAQD,EAAqBC,GACtBC,EAAUD,QAK7BhB,EAAG0B,cAAgB,SAASP,EAAOH,GAC/BhB,EAAGc,cAAcQ,SAASH,EAAOH,IAGrChB,EAAG2B,SAAW,SAASR,GACnB,MAAOnB,GAAGc,cAAcI,IAAIC,IAGhCnB,EAAG4B,oBAAsB,WACrB5B,EAAGc,cAAcU,SAYrBxB,EAAG6B,UAAY,SAASb,GAEpB,IAAK,GADDc,GAAS9B,EAAGc,cAAcW,KAAKT,GAC1Be,EAAI,EAAGA,EAAID,EAAOE,SAAUD,EACjCD,EAAOC,GAAGF,aASlB7B,EAAGiC,UAAY,SAASjB,GAEpB,IAAK,GADDc,GAAS9B,EAAGc,cAAcW,KAAKT,GAC1Be,EAAI,EAAGA,EAAID,EAAOE,SAAUD,EACjCD,EAAOC,GAAGG,QAGO,QAAlBlC,EAAGa,YACFb,EAAGa,WAAWG,IAStBhB,EAAGmC,UAAY,SAASnB,GAEpB,IAAK,GADDc,GAAS9B,EAAGc,cAAcW,KAAKT,GAC1Be,EAAI,EAAGA,EAAID,EAAOE,SAAUD,EACjCD,EAAOC,GAAGK,QAGO,QAAlBpC,EAAGa,YACFb,EAAGa,WAAWG,IAGtBhB,EAAGqC,WAAa,SAASC,EAAYC,EAAUC,GAC3C,GAAgB,GAAZD,GAA8BE,SAAbF,EACjB,MAAOD,EAEX,IAAII,GAAIJ,EACHD,aACAE,SAASA,EAMd,OAJIC,aAAoBG,WACpBH,EAASE,GAGNA,GAGX1C,EAAG4C,SASH5C,EAAG4C,MAAMC,SAAW,SAASH,EAAGtB,GAC5B,MAAO0B,MAAKC,IAAI3B,EAAIsB,IAQxB1C,EAAG4C,MAAMI,QAAU,SAASN,EAAGtB,EAAG6B,GAC9B,MAAOA,IASXjD,EAAG4C,MAAMM,MACTlD,EAAG4C,MAAMM,GAAGC,UAAY,SAASA,GAC7B,GAAIC,GAAK,SAASV,EAAGtB,GACjB,GAAIiC,GAAIP,KAAKC,KAAK3B,EAAEsB,GAAGU,EAAGE,WAC1B,OAAGtD,GAAGuD,MAAMC,aAAaH,EAAIP,KAAKW,MAAMJ,IAC7BP,KAAKW,MAAMJ,GAEXP,KAAKY,KAAKL,GAGzB,OADAD,GAAGE,WAAaH,EACTC,GAGXpD,EAAG2D,SACH3D,EAAG2D,MAAMF,MAAQ,SAASG,GACtB,MAAOd,MAAKW,MAAMG,IAEtB5D,EAAG2D,MAAMD,KAAO,SAASE,GACrB,MAAOd,MAAKY,KAAKE,IAErB5D,EAAG2D,MAAMA,MAAQ,SAASC,GACtB,MAAOd,MAAKa,MAAMC,IAGtB5D,EAAG6D,SAAW,SAASC,EAAKC,EAAcC,GACtC,GAAIC,GAAmBH,EAAIC,EAC3BD,GAAI,IAAMC,GAAgBE,EAC1BH,EAAIC,GAAgBC,GAGxBhE,EAAGkE,UAAY,SAASC,GACpB,MAAIC,WAAUpC,QACdhC,EAAGa,WAAasD,EACTnE,GAFsBA,EAAGa,YAKpCb,EAAGqE,gBAAkB,SAAUC,GAC3B,MAAOA,aAAaC,SAAUD,EAAEE,aAGpCxE,EAAGyE,UAEHzE,EAAGyE,OAAOC,UAAY,SAASC,GAC3B,GAAIC,GAAenC,SAARkC,EAAoBA,EAAM,2BAErCE,MAAKC,QAAUF,EAEfC,KAAKE,SAAW,WACZ,MAAOH,KAIf5E,EAAGyE,OAAOO,sBAAwB,WAC9BhF,EAAGyE,OAAOC,UAAUO,MAAMJ,KAAMT,YAGpCpE,EAAGkF,WAAapF,EAAGqF,KAAKC,OAAO,YAE/BpF,EAAGqF,YAEHrF,EAAGqF,SAASC,QAAU,SAAUA,GAG5B,IAAK,GAFD5C,GAAI,GAECX,EAAI,EAAGA,EAAIuD,EAAQtD,SAAUD,EAC9BA,EAAI,IAAGW,GAAK,MAChBA,GAAK1C,EAAGqF,SAASE,OAAOD,EAAQvD,GAGpC,OAAOW,IAGX1C,EAAGqF,SAASE,OAAS,SAAUA,GAC3B,GAAI7C,GAAI,EAaR,OAXI6C,KACIA,YAAkBC,OACdD,EAAOvD,QAAU,EACjBU,EAAI,IAAM1C,EAAGuD,MAAMkC,iBAAiBF,EAAO,IAAM,OAASvF,EAAGuD,MAAMkC,iBAAiBF,EAAO,IAAM,IAC5FA,EAAOvD,QAAU,IACtBU,EAAI1C,EAAGuD,MAAMkC,iBAAiBF,EAAO,KAEzC7C,EAAI1C,EAAGuD,MAAMkC,iBAAiBF,IAI/B7C,GAGX1C,EAAGuD,SAEHvD,EAAGuD,MAAMkC,iBAAmB,SAAUF,GAClC,GAAI7C,GAAI,GAAK6C,CAWb,OATIA,aAAkBG,MAClBhD,EAAI1C,EAAGkF,WAAWK,GACK,gBAAZ,GACX7C,EAAI6C,EACCvF,EAAGuD,MAAMoC,QAAQJ,GACtB7C,EAAI1C,EAAGuD,MAAMkC,iBAAiBG,QAAQL,GACjCvF,EAAGuD,MAAMsC,UAAUN,KACxB7C,EAAII,KAAKa,MAAM4B,IAEZ7C,GAEX1C,EAAGuD,MAAMkC,iBAAiBG,QAAU9F,EAAGsF,OAAO,OAE9CpF,EAAGuD,MAAMuC,IAAM,SAAUC,EAAGC,GAIxB,GAHiB,gBAANA,KACPA,EAAIA,EAAEC,QAAQ,IAAK,KAEnBF,YAAaL,MAAM,CACF,gBAANM,KAAgBA,GAAKA,EAChC,IAAI3C,GAAI,GAAIqC,KAGZ,OAFArC,GAAE6C,QAAQH,EAAEI,WACZ9C,EAAE+C,QAAQL,EAAEM,UAAYL,GACjB3C,EACJ,GAAiB,gBAAN2C,GAAgB,CAC9B,GAAIM,IAAeN,EAAI,GACvB,OAAOD,GAAI,EAAIA,GAAK,EAAIO,GAAcP,GAAK,EAAIO,GAE/C,MAAOP,GAAIC,GAInBhG,EAAGuD,MAAMgD,SAAW,SAAUR,EAAGC,GAI7B,GAHiB,gBAANA,KACPA,EAAIA,EAAEC,QAAQ,IAAK,KAEnBF,YAAaL,MAAM,CACF,gBAANM,KAAgBA,GAAKA,EAChC,IAAI3C,GAAI,GAAIqC,KAGZ,OAFArC,GAAE6C,QAAQH,EAAEI,WACZ9C,EAAE+C,QAAQL,EAAEM,UAAYL,GACjB3C,EACJ,GAAiB,gBAAN2C,GAAgB,CAC9B,GAAIM,IAAeN,EAAI,GACvB,OAAW,GAAJD,EAAQA,GAAK,EAAIO,GAAcP,GAAK,EAAIO,GAE/C,MAAOP,GAAIC,GAInBhG,EAAGuD,MAAMiD,WAAa,WAKlB,QAASC,GAAoB1E,GACpB2E,EAAY3E,KACb2E,EAAY3E,OANpB,GAEI4E,GAFAD,OACAE,IAQJ/B,MAAKgC,aAAe,SAAUC,EAAYC,EAAYC,GAClDP,EAAoBK,GACpBJ,EAAYI,GAAYC,GAAcC,GAG1CnC,KAAKoC,aAAe,SAAUC,EAAGC,GAC7BV,EAAoBS,EACpB,IAAIE,GAAYV,EAAYQ,GAAGC,EAG/B,OAFkB1E,UAAd2E,IACAA,EAAY,GACTA,GAGXvC,KAAKwC,SAAW,SAAUrG,EAAOsG,GAI7B,MAHKA,KACDA,EAAWX,GACfC,EAAQrF,MAAMP,EAAOsG,IACdV,EAAQ5E,OAAS,GAG5B6C,KAAK0C,gBAAkB,SAAUC,GAC7B,MAAOZ,GAAQY,GAAO,IAG1B3C,KAAK4C,mBAAqB,SAAUD,GAChC,MAAOZ,GAAQY,GAAO,IAG1B3C,KAAK6C,KAAO,WACR,MAAOd,GAAQ5E,QAGnB6C,KAAKrD,MAAQ,WACTkF,KACAE,MAGJ/B,KAAK8C,mBAAqB,SAAUC,GAChCjB,EAAmBiB,GAGvB/C,KAAKgD,cAAgB,WACjB,MAAOnB,IAGX7B,KAAKiD,SAAW,WAGZ,IAAK,GAFDC,MAEKhG,EAAI,EAAGA,EAAI2E,EAAY1E,SAAUD,EAAG,CAIzC,IAAK,GAHDiG,IAASR,MAAOzF,EAAGkG,WACnBC,EAAaxB,EAAY3E,GAEpBoG,EAAI,EAAGA,EAAID,EAAWlG,SAAUmG,EACrCH,EAAMC,OAAO1G,KAAK2G,EAAWC,GAEjCJ,GAAOxG,KAAKyG,GAGhB,MAAOD,KAIf/H,EAAGuD,MAAM6E,SAAW,SAASxE,GACzB,MAAOA,MAAKA,GAGhB5D,EAAGuD,MAAMoC,QAAU,SAAU/B,GACzB,MAAOA,MAAKA,GAAKA,KAAO,EAAFA,IAG1B5D,EAAGuD,MAAMsC,UAAY,SAAUjC,GAC3B,MAAOA,MAAKA,GAAKA,KAAO,EAAFA,IAG1B5D,EAAGuD,MAAMC,aAAe,SAAU6E,GAC9B,MAAe5F,UAAR4F,GAAsBA,EAAMrI,EAAGE,UAAUU,mBAAqByH,GAAOrI,EAAGE,UAAUU,mBAG7FZ,EAAGuD,MAAM+E,SAAW,SAAUtH,EAAOsG,GACjC,GAAIe,GAAMvI,EAAGuI,IAAIrH,EAAMuH,MAAO,SAAUnH,GACpC,MAAOkG,GAASlG,IAGpB,OADIpB,GAAGuD,MAAMC,aAAa6E,KAAMA,EAAM,GAC/BA,GAGXrI,EAAGuD,MAAMiF,SAAW,SAAUxH,EAAOsG,GACjC,GAAImB,GAAM3I,EAAG2I,IAAIzH,EAAMuH,MAAO,SAAUnH,GACpC,MAAOkG,GAASlG,IAGpB,OADIpB,GAAGuD,MAAMC,aAAaiF,KAAMA,EAAM,GAC/BA,GAGXzI,EAAGuD,MAAMmF,SAAW,SAAUC,GAC1B,MAAOA,GAAKC,cAAc3C,QAAQ,QAAS,KAAKA,QAAQ,SAAU,KAGtEjG,EAAGuD,MAAMsF,eAAiB,SAAUC,EAAQH,GACxC,GAAII,GAAUD,EAAOE,OAAOL,EAE5B,OADII,GAAQE,UAASF,EAAUD,EAAOI,OAAOP,IACtCI,GAGX/I,EAAGuD,MAAM4F,iBAAmB,SAAUhI,EAAOH,EAAOwG,EAAOF,GACvD,GAAI8B,IAAcT,KAAMxH,EAAMkI,cAAcrI,EAAOsG,GAAWN,KAAMhG,EAEpE,OAD4B,kBAAjBG,GAAMmI,SAAuBF,EAAWG,MAAQpI,EAAMmI,SAAS9B,IACnE4B,GAGXpJ,EAAGuD,MAAMiG,WAAa,SAAS5F,GAAG,MAAO5D,GAAGuD,MAAM6E,UAAUxE,IAAIA,EAAE,GAElE5D,EAAGyJ,QACCC,QAAS,MAoBb1J,EAAGyJ,OAAOE,QAAU,SAASC,EAASC,GAClC,MAAKA,IAKL7J,EAAGyJ,OAAOC,QAAUE,MAEpBE,YAAW,WACHF,GAAW5J,EAAGyJ,OAAOC,SACrBE,KACLC,QATCD,MAYR5J,EAAG+J,cAEH/J,EAAG+J,WAAWC,KAAO,WACjBnF,KAAKoF,aACLpF,KAAKqF,QAELrF,KAAKsF,YAAc,SAASC,GAExB,MADAA,IAAY,IAIhBvF,KAAKrD,MAAQ,WACTqD,KAAKoF,aACLpF,KAAKqF,SAGTrF,KAAK6C,KAAO,WACR,MAAO7C,MAAKoF,UAAUjI,QAG1B6C,KAAKwF,cAAgB,SAASD,GAC1BA,EAAMvF,KAAKsF,YAAYC,EACvB,IAAIE,GAAQzF,KAAKqF,KAAKE,EACtB,OAAOE,IAGXzF,KAAK0F,cAAgB,SAASH,EAAKE,GAE/B,MADAF,GAAMvF,KAAKsF,YAAYC,GAChBvF,KAAKqF,KAAKE,GAAOE,GAG5BzF,KAAK2F,WAAa,SAASJ,GAEvB,MADAA,GAAMvF,KAAKsF,YAAYC,GAChBvF,KAAKoF,UAAU5I,QAAQ+I,IAGlCvF,KAAK4F,WAAa,SAASL,GACvBA,EAAMvF,KAAKsF,YAAYC,GACvBvF,KAAKoF,UAAU1I,KAAK6I,IAGxBvF,KAAK6F,cAAgB,SAASlD,GAC1B,MAAO3C,MAAKoF,UAAUzC,KAI9BxH,EAAG+J,WAAWY,IAAM,WAChB3K,EAAG+J,WAAWC,KAAK/E,MAAMJ,KAAMT,WAE/BS,KAAKiB,IAAM,SAASsE,EAAKE,GAChBA,IACDA,EAAQ,GAEoB7H,SAA5BoC,KAAKwF,cAAcD,IACnBvF,KAAK4F,WAAWL,GAChBvF,KAAK0F,cAAcH,EAAKE,IAExBzF,KAAK0F,cAAcH,EAAKvF,KAAKwF,cAAcD,GAAOE,IAI1DzF,KAAK+F,MAAQ,SAASR,EAAKE,GACvBzF,KAAK0F,cAAcH,EAAKvF,KAAKwF,cAAcD,GAAOE,IAGtDzF,KAAKgG,cAAgB,SAAST,GAC1B,GAAIU,GAAWjG,KAAK2F,WAAWJ,EAC/B,IAAe,EAAXU,EAAc,MAAO,EAEzB,KAAK,GADDC,GAAkB,EACbhJ,EAAI,EAAQ+I,GAAL/I,IAAiBA,EAAG,CAChC,GAAIiJ,GAAInG,KAAK6F,cAAc3I,EAC3BgJ,IAAmBlG,KAAKwF,cAAcW,GAE1C,MAAOD,KAGf/K,EAAG+J,WAAWY,IAAIM,UAAY,GAAIjL,GAAG+J,WAAWC,KAEhDhK,EAAG+J,WAAWmB,YAAc,WAGxB,QAASC,GAASC,GACd,GAAchB,GAAV1C,EAAO,CACX,KAAK0C,IAAOgB,GACJA,EAAKC,eAAejB,IAAM1C,GAElC,OAAOA,GAPX1H,EAAG+J,WAAWC,KAAK/E,MAAMJ,KAAMT,WAU/BS,KAAKiB,IAAM,SAASsE,EAAKhJ,GACWqB,SAA5BoC,KAAKwF,cAAcD,KACnBvF,KAAK0F,cAAcH,MACnBvF,KAAK4F,WAAWL,IAGV3H,SAANrB,IACmCqB,SAA/BoC,KAAKwF,cAAcD,GAAKhJ,KACxByD,KAAKwF,cAAcD,GAAKhJ,GAAK,GAEjCyD,KAAKwF,cAAcD,GAAKhJ,IAAM,IAItCyD,KAAK+F,MAAQ,SAASR,EAAKhJ,GACvByD,KAAKwF,cAAcD,GAAKhJ,IAAM,EAC1ByD,KAAKwF,cAAcD,GAAKhJ,IAAM,SACvByD,MAAKwF,cAAcD,GAAKhJ,IAGvCyD,KAAKyG,MAAQ,SAASlB,GAClB,MAAOe,GAAStG,KAAKwF,cAAcD,KAGvCvF,KAAK0G,gBAAkB,SAASnB,GAC5B,GAAIU,GAAWjG,KAAK2F,WAAWJ,EAC/B,IAAe,EAAXU,EAAc,MAAO,EAEzB,KAAK,GADDS,GAAkB,EACbxJ,EAAI,EAAQ+I,GAAL/I,IAAiBA,EAAG,CAChC,GAAIiJ,GAAInG,KAAK6F,cAAc3I,EAC3BwJ,IAAmB1G,KAAKyG,MAAMN,GAElC,MAAOO,KAGfvL,EAAG+J,WAAWmB,YAAYD,UAAY,GAAIjL,GAAG+J,WAAWC,KAQxDhK,EAAGwL,UAAY,SAAUC,GAkIrB,QAASC,GAAUvK,EAAOwK,EAAGrE,GACzB,GAAIsE,GAAIzK,EAAM0K,SACVb,EAAI,WACH1D,IAAYA,GAAYnG,EAAM2K,kBAC/BxE,EAAW,WACVqE,EAAEX,KAAIW,EAAEX,OACRW,EAAEX,GAAGY,KAAID,EAAEX,GAAGY,IAAMG,KAAKnI,MAC9B,IAAI7B,GAAI4J,EAAEX,GAAGY,GAAGG,EAAE1K,QAAQiG,EAM1B,OALS,IAALvF,IACFA,EAAI4J,EAAEX,GAAGY,GAAGG,EAAE/J,OACd2J,EAAEX,GAAGY,GAAGG,EAAEhK,GAAKuF,EACfqE,EAAEX,GAAGY,GAAGhI,EAAE7B,IAAM4G,KAAK,KAEhBgD,EAAEX,GAAGY,GAAGhI,EAAE7B,GAuIrB,QAASiK,KAIL,MAHAC,GAAOR,EAAOS,OAAOhD,OAAO,OACvBiD,KAAK,QAASV,EAAOW,SACrBD,KAAK,SAAUV,EAAOY,UAkI/B,QAASC,GAAanI,GAClBoI,EAASC,OAAOD,EAASlL,QAAQ8C,GAAI,GACrCsI,IACAhB,EAAOiB,wBAAwBvI,GAGnC,QAASwI,GAAUxI,GACfoI,EAAShL,KAAK4C,GACdsI,IACAhB,EAAOiB,wBAAwBvI,GAGnC,QAASyI,KACLL,KACAE,IACAhB,EAAOiB,wBAAwB,MAGnC,QAASD,KACL,GAAIhB,EAAOoB,WAA2CpK,SAA9BgJ,EAAOqB,YAAYvH,OAAsB,CAC7D,GAAIwH,GAAKC,EAAevB,EAAOqB,YAAaP,EAC5CA,GAAWQ,EAAKA,EAAKR,GAyP7B,QAASU,KACL,IAAK,GAAIlL,GAAI,EAAGA,EAAImL,EAAYlL,SAAUD,EACtCmL,EAAYnL,GAAG0J,GA1qBvBA,EAAOjH,aAAc,CAErB,IAAI2I,GACAC,EAEAC,EACAC,EACArB,EA2CAsB,EAzCAC,EAAS,IAAKC,EAAU,IAExBC,EAAe,SAAUrK,GACzB,MAAOA,GAAE+G,KAETuD,EAAiB,SAAUtK,GAC3B,MAAOA,GAAEiH,OAETsD,EAAY,SAAUC,GACtB,MAAOA,GAAEzD,KAGT0D,EAAS,SAAUzK,GACnB,MAAOA,GAAE+G,KAET2D,GAAe,EAEfC,EAAS,SAAU3K,GACnB,MAAOA,GAAE+G,IAAM,KAAO/G,EAAEiH,OAExB2D,GAAe,EAEfC,EAAsB,IAEtBC,EAAiBnO,EAAGqF,SAASC,QAE7B4H,KAEAkB,EAAcpO,EAAGE,UAAUQ,oBAE3B2N,EAAgB,aAEhBC,GACAC,UAAWF,EACXG,WAAYH,EACZI,UAAWJ,EACXK,WAAYL,EACZM,SAAUN,EACVO,OAAQP,GAKR9B,KACAS,EAAiB,SAAUF,EAAWxH,GAYtC,MAXAwH,GAAUvH,OAAO,MAEM,IAAnBD,EAAQtD,OACR8K,EAAUvH,OAAO,MACO,IAAnBD,EAAQtD,OACb8K,EAAUvH,OAAOD,EAAQ,IAEzBwH,EAAU+B,eAAe,SAAUxL,GAC/B,MAAOiC,GAAQjE,QAAQgC,IAAM,IAG9BiC,EA6qBX,OAnqBAmG,GAAOW,MAAQ,SAAU0C,GACrB,MAAK1K,WAAUpC,QACfwL,EAASsB,EACFrD,GAFuB+B,GAYlC/B,EAAOY,OAAS,SAAU0C,GACtB,MAAK3K,WAAUpC,QACfyL,EAAUsB,EACHtD,GAFuBgC,GAclChC,EAAOqB,UAAY,SAAUzJ,GACzB,MAAKe,WAAUpC,QACfmL,EAAa9J,EACboI,EAAOuD,cACAvD,GAHuB0B,GAiBlC1B,EAAOzK,MAAQ,SAAU2K,EAAGhD,GACxB,MAAKvE,WAAUpC,QACfoL,EAASzB,EACTF,EAAOuD,cACa,gBAATrG,IAAmB8C,EAAOwD,cAAc7B,EAAQzE,GACpD8C,GAJuB2B,GAwBlC3B,EAAOpC,cAAgB,SAAUsC,EAAGrE,GAClC,MAAOoE,GAAUD,EAAQE,EAAGrE,GAAUqB,MAGxC8C,EAAOwD,cAAgB,SAAUtD,EAAGhD,EAAMrB,GACxCoE,EAAUD,EAAQE,EAAGrE,GAAUqB,KAAOA,GAGxC8C,EAAOyD,SAAW,SAAS5K,GACvB,MAAKF,WAAUpC,QACf4L,EAAYtJ,EACZmH,EAAOuD,cACAvD,GAHuBmC,GAMlCnC,EAAO0D,qBAAuB,SAASC,GACnC,GAAIpI,GAAOoI,EAAMA,EAAM3D,EAAOzK,QAAQuH,MAAM8G,MAAM,EAClD,IAAGrI,EAAKhF,OAAS,EACb,MAAOgF,EACX,IAAIsI,GAAOvP,EAAYwP,UAAUC,GAAG/D,EAAOyD,WAC3C,OAAOI,GAAKtI,EAAK,EAAEA,EAAKhF,SAQ5ByJ,EAAO5J,UAAY,WACf,MAAO4J,GAAOlG,OAAO,OAGzBkG,EAAOoB,QAAU,WACb,MAAsBpK,UAAf0K,GAAuC1K,SAAX2K,GAavC3B,EAAOzC,OAAS,SAAUtG,GACtB,MAAO4K,GAAMtE,OAAOtG,IAaxB+I,EAAOgE,UAAY,SAAU/M,GACzB,MAAO4K,GAAQA,EAAMmC,UAAU/M,GAAK,MAQxC+I,EAAOI,OAAS,SAAUE,EAAG2D,GACzB,MAAKtL,WAAUpC,QACXhC,EAAGqE,gBAAgB0H,IACnBsB,EAAUtB,EAAEF,SACZyB,EAAQvB,EAAEG,SAEVmB,EAAUtB,EACVuB,EAAQxN,EAAGkJ,OAAOqE,GAClBC,EAAMqC,QAAQ3P,EAAGE,UAAUC,aAAa,GACxCH,EAAG0B,cAAc+J,EAAQiE,IAE7BtB,EAAcsB,EACPjE,GAXuB4B,GAmBlC5B,EAAOmE,WAAa,WAChB,GAAI7D,GAAIN,EAAOI,QACf,OAAIE,IAAKA,EAAE8D,GAAW9D,EAAE8D,GACpB9D,EAAUA,EAAE9F,QAAQ,IAAI,IACrB,IAUXwF,EAAOS,KAAO,SAAUlG,GACpB,MAAK5B,WAAUpC,QACfsL,EAAQtH,EACDyF,GAFuB6B,GAYlC7B,EAAOqE,IAAM,SAAU3L,GACnB,MAAKC,WAAUpC,QACfiK,EAAO9H,EACAsH,GAFuBQ,GASlCR,EAAOsE,SAAW,WAEd,MADAtE,GAAOzC,OAAO,OAAOgH,SACdhE,KAiBXP,EAAOwE,cAAgB,SAAU9L,GAC7B,MAAKC,WAAUpC,QACfmM,EAAiBhK,EACVsH,GAFuB0C,GAalC1C,EAAOyE,eAAiB,WAKpB,MAJI5C,KACA7B,EAAOgE,UAAU,UAAUU,MAAM,UAAW,MAC5C1E,EAAOgE,UAAU,WAAWW,KAAKjC,EAAe1C,EAAOnG,YAAY6K,MAAM,UAAW,OAEjF1E,GAGXA,EAAO4E,gBAAkB,WAKrB,MAJI/C,KACA7B,EAAOgE,UAAU,UAAUU,MAAM,UAAW,QAC5C1E,EAAOgE,UAAU,WAAWU,MAAM,UAAW,QAAQC,KAAK3E,EAAOlG,WAE9DkG,GAQXA,EAAO6E,mBAAqB,SAAUjN,GAClC,MAAKe,WAAUpC,QACfkM,EAAsB7K,EACfoI,GAFuByC,GAYlCzC,EAAOvJ,OAAS,WAGZ,GAFAoM,EAAWC,UAAU9C,GAEFhJ,SAAf0K,EACA,KAAM,IAAInN,GAAGyE,OAAOO,sBAAsB,4DACpCyG,EAAOmE,aAAe,IAEhC,IAAenN,SAAX2K,EACA,KAAM,IAAIpN,GAAGyE,OAAOO,sBAAsB,wDACpCyG,EAAOmE,aAAe,IAEhC,IAAIW,GAAS9E,EAAO+E,UAMpB,OAJIjD,IAASA,EAAQrL,SAErBuJ,EAAOgF,mBAAmB,cAEnBF,GAGX9E,EAAOgF,mBAAqB,SAAUC,GAC9BjF,EAAO6E,qBAAuB,GAAKrE,EACnCA,EAAK5J,aAAaE,SAASkJ,EAAO6E,sBAC7BK,KAAK,MAAO,WACT1D,IACIyD,GAAOpC,EAAWoC,GAAOjF,MAGrCwB,IACIyD,GAAOpC,EAAWoC,GAAOjF,KAarCA,EAAOrJ,OAAS,WACZkM,EAAWG,UAAUhD,EAErB,IAAI8E,GAAS9E,EAAOmF,UAIpB,OAFAnF,GAAOgF,mBAAmB,cAEnBF,GAGX9E,EAAOiB,wBAA0B,SAAUmE,GAC7BpO,SAANoO,GAAiBvC,EAAWK,SAASlD,EAAQoF,IAGrDpF,EAAOqF,sBAAwB,WAC3BxC,EAAWM,OAAOnD,IAStBA,EAAOsF,UAAY,SAAUxL,GACzB,MAAKnB,WAAUpC,OACRuK,EAASlL,QAAQkE,IAAW,EADLgH,EAASvK,OAAS,GAwCpDyJ,EAAOlG,OAAS,SAAUpB,GACtB,MAAKC,WAAUpC,QAEL,OAANmC,EACAyI,IAEInB,EAAOsF,UAAU5M,GACjBmI,EAAanI,GAEbwI,EAAUxI,GAGJ,OAAVmJ,GAAkB7B,EAAOsF,YACzBtF,EAAOyE,iBAEPzE,EAAO4E,kBAGJ5E,GAjBuBc,EAASvK,OAAS,EAAIuK,EAAS,GAAK,MA0BtEd,EAAOnG,QAAU,WACb,MAAOiH,IAGXd,EAAOuF,kBAAoB,SAAU5P,GACjCtB,EAAGkJ,OAAO5H,GAAGuO,QAAQ3P,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkJ,OAAO5H,GAAGuO,QAAQ3P,EAAGE,UAAUI,kBAAkB,IAGxDmL,EAAOwF,eAAiB,SAAU7P,GAC9BtB,EAAGkJ,OAAO5H,GAAGuO,QAAQ3P,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkJ,OAAO5H,GAAGuO,QAAQ3P,EAAGE,UAAUI,kBAAkB,IAGxDmL,EAAOyF,eAAiB,SAAU9P,GAC9BtB,EAAGkJ,OAAO5H,GAAGuO,QAAQ3P,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkJ,OAAO5H,GAAGuO,QAAQ3P,EAAGE,UAAUI,kBAAkB,IAGxDmL,EAAO0F,QAAU,SAAU9N,GACvB,GAAIkC,GAASkG,EAAO2F,cAAc/N,EAClCrD,GAAGyJ,OAAOE,QAAQ,WACd8B,EAAOlG,OAAOA,GACdvF,EAAGmC,UAAUsJ,EAAOiE,iBAyB5BjE,EAAO4F,cAAgB,SAAUlN,GAC7B,MAAKC,WAAUpC,QACfgL,EAAiB7I,EACVsH,GAFuBuB,GAMlCvB,EAAO+E,SAAW,WAEd,MAAO/E,IAGXA,EAAOmF,SAAW,WAEd,MAAOnF,IAGXA,EAAO6F,YAAc,WAEjB,UAGJ7F,EAAO8F,gBAAkB,aAIzB9F,EAAO+F,YAAc,aAiBrB/F,EAAO2F,YAAc,SAAUjN,GAC3B,MAAKC,WAAUpC,QACf0L,EAAevJ,EACRsH,GAFuBiC,GAkBlCjC,EAAOK,cAAgB,SAAU3H,GAC7B,MAAKC,WAAUpC,QACf2L,EAAiBxJ,EACVsH,GAFuBkC,GAkBlClC,EAAOgG,MAAQ,SAAUtN,GACrB,MAAKC,WAAUpC,QACf8L,EAAS3J,EACT4J,GAAe,EACRtC,GAHuBqC,GAWlCrC,EAAOiG,YAAc,SAAUvN,GAC3B,MAAKC,WAAUpC,QACf+L,EAAe5J,EACRsH,GAFuBsC,GAyBlCtC,EAAOkG,MAAQ,SAAUxN,GACrB,MAAKC,WAAUpC,QACfgM,EAAS7J,EACT8J,GAAe,EACRxC,GAHuBuC,GAWlCvC,EAAOmG,YAAc,SAAUzN,GAC3B,MAAKC,WAAUpC,QACfiM,EAAe9J,EACRsH,GAFuBwC,GAsBlCxC,EAAOvH,UAAY,SAAUC,GAEzB,MADA+I,GAAY3L,KAAK4C,GACVsH,GASXA,EAAOiE,WAAa,SAAUvL,GAC1B,MAAKC,WAAUpC,QACfoM,EAAcjK,EACPsH,GAFuB2C,GAalC3C,EAAOuD,YAAc,WAEjB,MAAOvD,IAaXA,EAAOoG,OAAS,SAAU9L,GACtB,MAAK3B,WAAUpC,QACfuL,EAAUxH,EACVwH,EAAQzE,OAAO2C,GACRA,GAHuB8B,GA6BlC9B,EAAOqG,GAAK,SAAUpB,EAAOqB,GAEzB,MADAzD,GAAWoC,GAASqB,EACbtG,GAGJA,GASXzL,EAAGgS,WAAa,SAAUvG,GACtB,GAAIwG,IAAWC,IAAK,GAAIC,MAAO,GAAIC,OAAQ,GAAIC,KAAM,GA6BrD,OAdA5G,GAAO6G,QAAU,SAAUC,GACvB,MAAKnO,WAAUpC,QACfiQ,EAAUM,EACH9G,GAFuBwG,GAKlCxG,EAAO+G,eAAiB,WACpB,MAAO/G,GAAOW,QAAUX,EAAO6G,UAAUD,KAAO5G,EAAO6G,UAAUH,OAGrE1G,EAAOgH,gBAAkB,WACrB,MAAOhH,GAAOY,SAAWZ,EAAO6G,UAAUJ,IAAMzG,EAAO6G,UAAUF,QAG9D3G,GASXzL,EAAG0S,oBAAsB,SAAUjH,GA2R/B,QAASkH,GAAahH,GACdF,EAAOmH,aAAenH,EAAOoH,YAC7BC,EAAG7P,QAAQwI,EAAOsH,WAAYtH,EAAOuH,aAEhCvH,EAAOoH,aAAoC,IAArBC,EAAG7P,SAASjB,QACvC8Q,EAAG7P,OAAOwI,EAAO0D,uBAAuB8D,IAAI,SAASC,GAAM,MAAOA,GAAG9I,OAGrEqB,EAAOoH,YACPpH,EAAO0H,sBAEPL,EAAGM,OAAO,EAAG3H,EAAO4H,gBAGxBC,EAASA,EAAOC,MAAM9H,EAAOvE,KAAKsM,OAAO,UAEzCC,EAAwB9H,GAyB5B,QAAS8H,GAAwB9H,GAC7B,GAAI+H,GAAY/H,EAAE8D,UAAU,KAAOkE,EAEnC,IAAIC,EAAyB,CACrBF,EAAUzK,UACVyK,EAAY/H,EAAEkI,OAAO,IAAK,gBACrB1H,KAAK,QAAS2H,EAAkB,IAAMH,GACtCxH,KAAK,YAAa,aAAeV,EAAOsI,SAAW,IAAMtI,EAAO6G,UAAUJ,IAAM,KAEzF,IAAI8B,GAAQV,EAAOW,aAAeX,EAAOW,aAAenB,EAAGkB,MAAMV,EAAOU,QAAQ,IAE5EE,EAAQR,EAAUjE,UAAU,QAC3BzI,KAAKgN,GAGNG,EAAcD,EAAME,QACnBlL,OAAO,QACPiD,KAAK,KAAM,SAAU9I,GAClB,MAAOyP,GAAGzP,KAEb8I,KAAK,KAAMV,EAAO4I,SAAW5I,EAAO6G,UAAUJ,KAC9C/F,KAAK,KAAM,SAAU9I,GAClB,MAAOyP,GAAGzP,KAEb8I,KAAK,KAAM,GACXA,KAAK,UAAW,EACrBnM,GAAGqC,WAAW8R,EAAa1I,EAAO6E,sBAC7BnE,KAAK,UAAW,GAGrBnM,EAAGqC,WAAW6R,EAAOzI,EAAO6E,sBACvBnE,KAAK,KAAM,SAAU9I,GAClB,MAAOyP,GAAGzP,KAEb8I,KAAK,KAAMV,EAAO4I,SAAW5I,EAAO6G,UAAUJ,KAC9C/F,KAAK,KAAM,SAAU9I,GAClB,MAAOyP,GAAGzP,KAEb8I,KAAK,KAAM,GAGhB+H,EAAMI,OAAOtE,aAGb0D,GAAUjE,UAAU,QAAQO,SAqBpC,QAASuE,GAAa5I,IACPlJ,SAAP+R,GAAoB/I,EAAOgJ,cAC3BD,EAAK1U,EAAGyT,MAAMmB,SACdF,EAAGvR,QAAQwI,EAAOkJ,WAAYlJ,EAAOmJ,aAAaC,YAAYpJ,EAAOqJ,cAAe,KAGxFN,EAAGpB,OAAO3H,EAAOqJ,cAAe,IAChCC,EAASA,EAAOxB,MAAMiB,GAAIhB,OAAO,QAEjCwB,EAA0BrJ,GAyB9B,QAASqJ,GAA0BrJ,GAC/B,GAAI+H,GAAY/H,EAAE8D,UAAU,KAAOwF,EAEnC,IAAIC,EAA2B,CAC3B,GAAIlB,GAAQe,EAAOd,aAAec,EAAOd,aAAeO,EAAGR,MAAMe,EAAOf,QAAQ,GAE5EN,GAAUzK,UACVyK,EAAY/H,EAAEkI,OAAO,IAAK,gBACrB1H,KAAK,QAAS2H,EAAkB,IAAMmB,GACtC9I,KAAK,YAAa,aAAeV,EAAOsI,SAAW,IAAMtI,EAAO6G,UAAUJ,IAAM,KAEzF,IAAIgC,GAAQR,EAAUjE,UAAU,QAC3BzI,KAAKgN,GAGNG,EAAcD,EAAME,QACnBlL,OAAO,QACPiD,KAAK,KAAM,GACXA,KAAK,KAAM,SAAU9I,GAClB,MAAOmR,GAAGnR,KAEb8I,KAAK,KAAMV,EAAO4H,eAClBlH,KAAK,KAAM,SAAU9I,GAClB,MAAOmR,GAAGnR,KAEb8I,KAAK,UAAW,EACrBnM,GAAGqC,WAAW8R,EAAa1I,EAAO6E,sBAC7BnE,KAAK,UAAW,GAGrBnM,EAAGqC,WAAW6R,EAAOzI,EAAO6E,sBACvBnE,KAAK,KAAM,GACXA,KAAK,KAAM,SAAU9I,GAClB,MAAOmR,GAAGnR,KAEb8I,KAAK,KAAMV,EAAO4H,eAClBlH,KAAK,KAAM,SAAU9I,GAClB,MAAOmR,GAAGnR,KAIlB6Q,EAAMI,OAAOtE,aAGb0D,GAAUjE,UAAU,QAAQO,SA0KpC,QAASmF,KACL,MAAO1J,GAAO4I,SAAW5I,EAAO6G,UAAUJ,IAuC9C,QAASkD,KACL,GAAIC,GAAS5J,EAAO6J,aAEpB7J,GAAO8J,YAAYC,GAEf/J,EAAOgK,aAAaJ,GACpBrV,EAAGyJ,OAAOE,QAAQ,WACd8B,EAAOlG,OAAO,MACdvF,EAAGmC,UAAUsJ,EAAOiE,gBAGxB1P,EAAGyJ,OAAOE,QAAQ,WACd8B,EAAOlG,OAAO,MACdkG,EAAOlG,QAAQ8P,EAAO,GAAIA,EAAO,KACjCrV,EAAGmC,UAAUsJ,EAAOiE,eACrB1P,EAAGE,UAAUS,aAmCxB,QAAS+U,KACL,MAAOjK,GAAOmE,aAAe,QAgBjC,QAAS+F,KACL,GAAIC,GAAO5V,EAAGuD,MAAMsF,eAAegN,EAAS,QAExCC,EAAgB9V,EAAGuD,MAAMsF,eAAe+M,EAAM,YAAYzJ,KAAK,KAAMuJ,KAErEK,EAAyB,EAAfC,CAEdhW,GAAGuD,MAAMsF,eAAeiN,EAAe,QAClC3J,KAAK,QAASV,EAAO4H,cAAgB0C,GACrC5J,KAAK,SAAUV,EAAOqJ,cAAgBiB,GA8B/C,QAASE,KACDC,GACAzK,EAAOS,OAAOiK,KAAKrW,EAAGsW,SAASC,OAC1BnP,EAAEuE,EAAOvE,KACToP,YAAYC,GACZzE,GAAG,OAAQ,WACRrG,EAAO+K,MAAM/K,EAAOvE,IAAIjE,UACxBwI,EAAOqF,wBACP2F,OAKhB,QAASA,KACL,GAAIC,EAAa,CACb,GAAIC,GAASlL,EAAOvE,IAAIjE,QACxB,IAAI2T,EAAkB,CAClB,GAAIC,GAAUH,EAAYI,kBACtBC,GACFJ,EAAO,GAAKE,EAAQ,GAAKF,EAAO,GAAKE,EAAQ,GAC7CF,EAAO,GAAKE,EAAQ,GAAKF,EAAO,GAAKE,EAAQ,GAC/CH,GAAYF,MAAMO,OAEpBL,GAAYF,MAAMG,EAEpBD,GAAYnR,OAAO,MACnBmR,EAAYnR,OAAOoR,GAEnB3W,EAAGyJ,OAAOE,QAAQ,WACd3J,EAAGmC,UAAUsJ,EAAOiE,iBA4ChC,QAASsH,GAAiB5D,GACtB,MAAOA,aAAiB5N,QAAS4N,EAAMpR,OAAS,EAx1BpD,GAAI8R,GAAkB,YAClBmB,EAAmB,aACnBtB,EAAiB,WACjBsD,EAAqB,eACrBC,EAAqB,eACrBC,EAA8B,EAElC1L,GAASzL,EAAGoX,WAAWpX,EAAGgS,WAAWhS,EAAGwL,UAAUC,KAElDA,EAAOnC,OAAOxJ,EAAGyT,MAAM8D,aAEvB,IAAIxB,GACAL,EACA8B,EAEAxE,EACAyE,EAKAC,EAGAhD,EAIAiD,EAKAC,EAMAC,EAKAjB,EACAkB,EA5BAtE,EAASxT,EAAGgQ,IAAI+H,OAChBC,EAAU9X,EAAG4C,MAAMC,SACnBkV,EAAgB,EAChBC,GAAe,EAEfC,EAAqB,EAGrBlD,EAASjV,EAAGgQ,IAAI+H,OAChBK,EAAgB,EAChBC,GAAe,EAEfC,EAAqB,EAErBC,EAASvY,EAAGgQ,IAAIwI,QAChBC,GAAW,EAGXrD,GAA4B,EAC5BtB,GAA0B,EAE1B4E,GAAa,EAGbjC,GAAc,IAAK,KACnBK,GAAmB,EAKnBV,GAAiB,EACjBF,EAAe,CA21BnB,OAz1BAvK,GAAOkG,MAAM,SAAUtO,GACnB,MAAOA,GAAE2D,KAAKoD,IAAM,KAAO/G,EAAE2D,KAAKsD,QAGtCmB,EAAOgN,QAAU,WACbd,EAAalV,OACbgJ,EAAOiN,cAWXjN,EAAOkN,WAAa,SAAUxU,GAC1B,MAAKC,WAAUpC,QACf0U,EAAcvS,EACduS,EAAYkC,WAAWnN,GAChBA,GAHuBiL,GAWlCjL,EAAOoN,UAAY,SAAU1U,GACzB,MAAKC,WAAUpC,QACfuU,EAAapS,EACNsH,GAFuB8K,GASlC9K,EAAOqN,gBAAkB,SAAU3U,GAC/B,MAAKC,WAAUpC,QACf4U,EAAmBzS,EACZsH,GAFuBmL,GAKlCnL,EAAOsN,WAAa,SAAUjQ,GAY1B,MAVI+M,GADWpT,SAAXqG,EACU2C,EAAOqE,MAEPhH,EAEd0M,EAAKK,EAAQ3M,OAAO,KAEpBoO,EAAc9B,EAAGtM,OAAO,KAAKiD,KAAK,QAAS,cACtCA,KAAK,YAAa,aAAeV,EAAO6G,UAAUD,KAAO,KAAO5G,EAAO6G,UAAUJ,IAAM,KACvF/F,KAAK,YAAa,QAAUuJ,IAAkB,KAE5CF,GASX/J,EAAOE,EAAI,SAAUxH,GACjB,MAAKC,WAAUpC,QACfwT,EAAKrR,EACEsH,GAFuB+J,GAYlC/J,EAAOuN,cAAgB,SAAUC,GAC7B,MAAK7U,WAAUpC,QACfkU,EAAiB+C,EACVxN,GAFuByK,GASlCzK,EAAOyN,WAAa,SAAU/U,GAC1B,MAAKC,WAAUpC,QACfsV,EAAcnT,EACPsH,GAFuB6L,GAiBlC7L,EAAOvE,EAAI,SAAU/C,GACjB,MAAKC,WAAUpC,QACf8Q,EAAK3O,EACLoT,EAAmBzE,EAAG7P,SACfwI,GAHuBqH,GAMlCrH,EAAOqL,gBAAkB,WACrB,MAAOS,IAgCX9L,EAAO0N,OAAS,SAAUhV,GACtB,MAAKC,WAAUpC,QACf8V,EAAU3T,EACHsH,GAFuBqM,GAoBlCrM,EAAO2N,MAAQ,SAAUjV,GACrB,MAAKC,WAAUpC,QACfsR,EAASnP,EACFsH,GAFuB6H,GAWlC7H,EAAOmH,SAAW,SAAUzO,GACxB,MAAKC,WAAUpC,QACfgW,EAAe7T,EACRsH,GAFuBuM,GAelCvM,EAAO4N,aAAe,SAAUlV,GAC5B,MAAKC,WAAUpC,QACf+V,EAAgB5T,EACTsH,GAFuBsM,GAKlCtM,EAAOiN,WAAa,WAChB,GAAmBjW,SAAfkV,EAA0B,CAC1B,GAAI/U,GAAQ6I,EAAO0N,SAAS1N,EAAOvE,IAAIjE,SAAS,GAAIwI,EAAOvE,IAAIjE,SAAS,GAAIwI,EAAOvE,IAAIjE,SAGnF0U,GADA/U,YAAiB4C,OACJ5C,EAAMZ,OAENY,EAGrB,MAAO+U,IAGXlM,EAAOoH,UAAY,WACf,MAAOpH,GAAO0N,WAAanZ,EAAG4C,MAAMI,SAGxCyI,EAAO0H,oBAAsB,SAAU7H,GAC9BA,IACDA,EAAQG,EAAOiN,aAInB,KAAK,GAHDtF,MACAkG,EAAY7N,EAAO4H,eAAiB/H,EAAQ,GAC5CiO,EAAkBD,EAAU,EACvBvX,EAAI,EAAOuJ,EAAJvJ,EAAWA,IACvBqR,EAAMrR,GAAKwX,EACXA,GAAmBD,CAEvBxG,GAAGM,MAAMA,IAsBb3H,EAAO+N,YAAc,SAAU7N,GAC3B,GAAI8N,GAAS9N,EAAE8D,UAAU,MAErBgK,GAAOxQ,UACPwQ,EAAS9N,EAAEzC,OAAO,KACbiD,KAAK,QAAS,UACdA,KAAK,YAAa,aAAeV,EAAO6G,UAAUD,KAAO,IAAM5G,EAAO4I,SAAW,KAE1F,IAAIqF,GAAW/N,EAAE8D,UAAU,QAAQyH,EAC/BwC,GAASzQ,SAAWwC,EAAOkO,eAC/BD,EAAW/N,EAAEzC,OAAO,QACfiD,KAAK,YAAa,aAAeV,EAAO4H,cAAgB,EAAI,KAAO5H,EAAOY,SAAW4L,GAAsB,KAC3G9L,KAAK,QAAS+K,GACd/K,KAAK,cAAe,UACpBiE,KAAK3E,EAAOkO,eACblO,EAAOkO,cAAgBD,EAAStJ,QAAU3E,EAAOkO,cACjDC,SAASxJ,KAAK3E,EAAOkO,cAEzB3Z,EAAGqC,WAAWoX,EAAQhO,EAAO6E,sBACxB6F,KAAK7C,IAmDd7H,EAAO4I,OAAS,WACZ,MAAQ5I,GAAOY,SAAWZ,EAAO6G,UAAUF,QAG/C3G,EAAO4H,YAAc,WACjB,MAAO5H,GAAO+G,kBAGlB/G,EAAOkO,WAAa,SAAUxV,EAAE0V,GAC5B,MAAKzV,WAAUpC,QACfwV,EAAcrT,EACdsH,EAAO6G,UAAUF,QAAU6F,EAC3BA,EAA4BxV,SAANoX,EAAmB1C,EAA8B0C,EACvEpO,EAAO6G,UAAUF,QAAU6F,EACpBxM,GALuB+L,GAoBlC/L,EAAOqO,YAAc,SAAUnO,GAC3B,GAAIoO,GAASpO,EAAE8D,UAAU,MACrBsK,GAAO9Q,UACP8Q,EAASpO,EAAEzC,OAAO,KACbiD,KAAK,QAAS,UACdA,KAAK,YAAa,aAAeV,EAAOsI,SAAW,IAAMtI,EAAO6G,UAAUJ,IAAM,KAEzF,IAAI0H,GAAWjO,EAAE8D,UAAU,QAAQwH,EAC/B2C,GAAS3Q,SAAWwC,EAAOuO,eAC/BJ,EAAWjO,EAAEzC,OAAO,QACfiD,KAAK,YAAa,aAAeiM,EAAqB,IAAM3M,EAAOqJ,cAAc,EAAI,iBACrF3I,KAAK,QAAS8K,GACd9K,KAAK,cAAe,UACpBiE,KAAK3E,EAAOuO,eACbvO,EAAOuO,cAAgBJ,EAASxJ,QAAU3E,EAAOuO,cACjDJ,EAASxJ,KAAK3E,EAAOuO,cAEzBha,EAAGqC,WAAW0X,EAAQtO,EAAO6E,sBACxB6F,KAAKpB,IAoDdtJ,EAAOsI,OAAS,WACZ,MAAOtI,GAAO6G,UAAUD,MAG5B5G,EAAOuO,WAAa,SAAU7V,EAAE0V,GAC5B,MAAKzV,WAAUpC,QACfyV,EAActT,EACdsH,EAAO6G,UAAUD,MAAQ+F,EACzBA,EAA4B3V,SAANoX,EAAmB1C,EAA8B0C,EACvEpO,EAAO6G,UAAUD,MAAQ+F,EAClB3M,GALuBgM,GAalChM,EAAOtE,EAAI,SAAUhD,GACjB,MAAKC,WAAUpC,QACfwS,EAAKrQ,EACEsH,GAFuB+I,GAoBlC/I,EAAOwO,MAAQ,SAAU9S,GACrB,MAAK/C,WAAUpC,QACf+S,EAAS5N,EACFsE,GAFuBsJ,GAWlCtJ,EAAOgJ,SAAW,SAAUtQ,GACxB,MAAKC,WAAUpC,QACfmW,EAAehU,EACRsH,GAFuB0M,GAUlC1M,EAAOuJ,0BAA4B,SAAU7Q,GACzC,MAAKC,WAAUpC,QACfkT,EAA4B/Q,EACrBsH,GAFuByJ,GAUlCzJ,EAAOgI,wBAA0B,SAAUtP,GACvC,MAAKC,WAAUpC,QACf4R,EAA0BzP,EACnBsH,GAFuBmI,GAKlCnI,EAAOsH,SAAW,WACd,GAAItK,GAAM3I,EAAG2I,IAAIgD,EAAOzK,QAAQuH,MAAO,SAAUnH,GAC7C,MAAOqK,GAAO2F,cAAchQ,IAEhC,OAAOpB,GAAGuD,MAAMgD,SAASkC,EAAKsP,IAGlCtM,EAAOuH,SAAW,WACd,GAAI3K,GAAMvI,EAAGuI,IAAIoD,EAAOzK,QAAQuH,MAAO,SAAUnH,GAC7C,MAAOqK,GAAO2F,cAAchQ,IAEhC,OAAOpB,GAAGuD,MAAMuC,IAAIuC,EAAK0P,IAG7BtM,EAAOkJ,SAAW,WACd,GAAIlM,GAAM3I,EAAG2I,IAAIgD,EAAOzK,QAAQuH,MAAO,SAAUnH,GAC7C,MAAOqK,GAAOK,gBAAgB1K,IAGlC,OADAqH,GAAMzI,EAAGuD,MAAMgD,SAASkC,EAAKyP,IAIjCzM,EAAOmJ,SAAW,WACd,GAAIvM,GAAMvI,EAAGuI,IAAIoD,EAAOzK,QAAQuH,MAAO,SAAUnH,GAC7C,MAAOqK,GAAOK,gBAAgB1K,IAGlC,OADAiH,GAAMrI,EAAGuD,MAAMuC,IAAIuC,EAAK6P,IAc5BzM,EAAOyO,aAAe,SAAU/V,GAC5B,MAAKC,WAAUpC,QACfkW,EAAgB/T,EACTsH,GAFuByM,GAKlCzM,EAAOqJ,YAAc,WACjB,MAAOrJ,GAAOgH,mBAclBhH,EAAO9H,MAAQ,SAAUQ,GACrB,MAAKC,WAAUpC,QACf0V,EAASvT,EACFsH,GAFuBiM,GAKlC1X,EAAG6D,SAAS4H,EAAQ,SAAU,SAAUtH,GACpC,MAAKC,WAAUpC,QAEfyJ,EAAO0O,QAAQhW,GAEXA,EACAsH,EAAO6M,QAAQjD,OAAOlR,GAEtBsH,EAAO6M,QAAQ9W,QAGZiK,GAVuBA,EAAO0O,YAazC1O,EAAO6M,MAAQ,SAAUnU,GACrB,MAAKC,WAAUpC,QACfqW,EAASlU,EACFsH,GAFuB4M,GASlC5M,EAAO2O,YAAc,SAAUzO,GAI3B,GAHIF,EAAOoH,cACP0F,GAAW,GAEXA,EAAU,CACVF,EAAOvG,GAAG,QAASsD,EAEnB,IAAIiF,GAAS1O,EAAEzC,OAAO,KACjBiD,KAAK,QAAS,SACdA,KAAK,YAAa,aAAeV,EAAO6G,UAAUD,KAAO,IAAM5G,EAAO6G,UAAUJ,IAAM,KACtFiE,KAAKkC,EAAOnR,EAAEuE,EAAOvE,KAC1BmT,GAAO5K,UAAU,QAAQtD,KAAK,SAAUgJ,KACxCkF,EAAO5K,UAAU,WAAWvG,OAAO,QAAQiD,KAAK,IAAKV,EAAO6O,kBAExD7O,EAAOsF,aACPtF,EAAO8J,YAAY5J,KAK/BF,EAAO6J,YAAc,WACjB,GAAID,GAASgD,EAAOhD,QAQpB,OAPI5J,GAAO9H,UACP0R,EAAO,GAAKA,EAAOpC,IAAIxH,EAAO9H,SAAS,GACvC0R,EAAO,GAAKA,EAAOpC,IAAIxH,EAAO9H,SAAS,GAEvC6R,EAAGxM,OAAO,UACLmN,KAAKkC,EAAOhD,OAAOA,KAErBA,GAGX5J,EAAOgK,aAAe,SAAUJ,GAC5B,MAAOgD,GAAOpP,UAAYoM,GAAUA,EAAO,IAAMA,EAAO,IAsB5D5J,EAAO8J,YAAc,SAAU5J,GAC3B,GAAI4M,EAAU,CACN9M,EAAOlG,UAAYkG,EAAO6M,QAAQrP,SAClCwC,EAAO6M,QAAQjD,OAAO5J,EAAOlG,SAEjC,IAAI8U,GAAS1O,EAAE3C,OAAO,UACtBqR,GAAOlE,KAAK1K,EAAO6M,QAAQpR,EAAEuE,EAAOvE,MACpCmT,EAAO5K,UAAU,QAAQtD,KAAK,SAAUgJ,KAG5C1J,EAAO8O,sBAGX9O,EAAO8O,mBAAqB,aAK5B9O,EAAO6O,iBAAmB,SAAUjX,GAChC,GAAIjC,KAAW,KAALiC,GAAW6D,EAAI9F,EAAI,EAAI,GAAI+F,EAAIgO,IAAgB,CACzD,OAAO,IAAO,GAAMjO,EAAK,IAAMC,EACzB,YAAc/F,EAAI,IAAO,IAAM8F,EAAK,KAAOC,EAAI,GAC/C,KAAO,EAAIA,EAAI,GACf,YAAc/F,EAAI,IAAO,GAAM8F,EAAK,IAAO,EAAIC,EAC/C,KACO,IAAMD,EAAK,KAAOC,EAAI,GAC7B,KAAO,EAAIA,EAAI,GACf,IAAO,IAAMD,EAAK,KAAOC,EAAI,GAC7B,KAAO,EAAIA,EAAI,IAczBsE,EAAO+O,YAAc,SAAU3M,GAC3B,MAAKzJ,WAAUpC,QACfgU,EAAenI,EACRpC,GAFuBuK,GAiBlCvK,EAAO+E,SAAW,WACd,GAAW/N,SAAPqQ,EACA,KAAM,IAAI9S,GAAGyE,OAAOO,sBAAsB,oDACpCyG,EAAOmE,aAAe,IAqBhC,OAnBAnE,GAAOsE,WAEHtE,EAAOoB,YACPpB,EAAOsN,aAEPpD,IACAhD,EAAalH,EAAOE,KACpB4I,EAAa9I,EAAOE,KAEpBF,EAAOgP,WAEPhP,EAAO+N,YAAY/N,EAAOE,KAC1BF,EAAOqO,YAAYrO,EAAOE,KAE1BF,EAAO2O,YAAY3O,EAAOE,KAE1BsK,KAGGxK,GAqCXA,EAAOmF,SAAW,WAcd,MAbA+B,GAAalH,EAAOE,KACpB4I,EAAa9I,EAAOE,KAEpBF,EAAOgP,WAEHhP,EAAOgJ,YACPhJ,EAAOqO,YAAYrO,EAAOE,MAE1BF,EAAOmH,YAAc4F,IACrB/M,EAAO+N,YAAY/N,EAAOE,KAE9BF,EAAO8J,YAAY9J,EAAOE,KAEnBF,GAGXA,EAAOiP,UAAY,WAKf,MAJIjP,GAAOoB,WACPpB,EAAOgP,WAGJhP,GAWXA,EAAOkP,QAAU,SAAUxW,GACvB,MAAKC,WAAUpC,QACfuW,EAAWpU,EACJsH,GAFuB8M,GAuBlC9M,EAAO+K,MAAQ,SAAUpD,GACrBoF,GAAa,EAGT/M,EAAOvE,IAAIjE,OADX+T,EAAiB5D,GACCA,EAEA3H,EAAOqL,mBAG7BrL,EAAOgN,UAEPhN,EAAOrJ,SAEF4U,EAAiB5D,KAClBoF,GAAa,IAGrB/M,EAAOmP,UAAY,WACf,MAAOpC,IAGX/M,EAAOmN,WAAa,SAAUhN,GAC1B,MAAKxH,WAAUpC,QACf4V,EAAchM,EACdH,EAAOqG,GAAG,WAAY,SAAU3Q,GAC5BnB,EAAGyJ,OAAOE,QAAQ,WACdiO,EAAYpB,MAAMrV,EAAMoE,UACxBqS,EAAYrS,OAAOpE,EAAMoE,UACzBvF,EAAGmC,UAAUhB,EAAMuO,kBAGpBjE,GATuBmM,GAY3BnM,GAUXzL,EAAGoX,WAAa,SAAS3L,GACrB,GAAIoP,GAAU/a,EAAGyT,MAAMuH,cAEnBC,GAAgB,EAAGF,EAAQzH,QAAQpR,QAEnCgZ,EAAmB,SAAS1Q,GAC5B,GAAIrH,GAAS8X,CACe,mBAAjBA,KACP9X,EAAS8X,EAAa5E,KAAK1K,GAC/B,IAAIwP,GAAWhY,EAAO,GAClBiY,EAAWjY,EAAO,EAGtB,IADIkY,MAAM7Q,KAAQA,EAAQ,IACrBtK,EAAGuD,MAAM6E,SAAS8S,GAAW,MAAOL,GAAQvQ,EAEjD,IAAI8Q,GAAe3P,EAAOnC,SAAS8J,QAAQpR,OACvCqZ,GAAeH,EAAWD,GAAYG,EACtCE,EAAaxY,KAAKC,IAAID,KAAK2F,IAAI2S,EAAe,EAAGtY,KAAKa,OAAO2G,EAAQ2Q,GAAYI,IAErF,OAAO5P,GAAOnC,SAASgS,IAGvBC,EAAiB,SAASlY,EAAGtB,GAAG,MAAOA,GAuF3C,OAzEA0J,GAAOnC,OAAS,SAASnF,GACrB,IAAKC,UAAUpC,OAAQ,MAAO6Y,EAE9B,IAAI1W,YAAaqB,OAAO,CACpBqV,EAAU/a,EAAGyT,MAAMvQ,UAAUoQ,MAAMjP,EAEnC,KAAI,GADAlB,MACIlB,EAAI,EAAGA,EAAIoC,EAAEnC,SAAUD,EAC3BkB,EAAO1B,KAAKQ,EAEhB8Y,GAAQ5X,OAAOA,OAEf4X,GAAU1W,CAKd,OAFA4W,IAAgB,EAAGF,EAAQzH,QAAQpR,QAE5ByJ,GAGXA,EAAO+P,gBAAkB,SAASrX,GAC9B,MAAIC,WAAUpC,QACdgZ,EAAmB7W,EACZsH,GAFsBuP,GAKjCvP,EAAOgQ,SAAW,SAASpY,EAAGtB,GAC1B,MAAOiZ,GAAiBO,EAAelY,EAAGtB,KAgB9C0J,EAAOiQ,cAAgB,SAASvX,GAC5B,MAAIC,WAAUpC,QACduZ,EAAiBpX,EACVsH,GAFsB8P,GAwBjC9P,EAAOkQ,YAAc,SAASxX,GAC1B,MAAIC,WAAUpC,QACd+Y,EAAe5W,EACRsH,GAFsBsP,GAK1BtP,GASXzL,EAAG4b,eAAiB,SAAUnQ,GA0G1B,QAASoQ,KACL,GAAItT,KAEJ,IAAIkD,EAAOvE,IAAK,CACZ,GACI4U,GADAC,EAAUtQ,EAAOvE,IAAIjE,QAEzB,IAAGwI,EAAOoH,YAAa,CACnB,GAAImJ,GAAYlc,EAAGmc,IAAIF,EACvBD,GAAO,SAASjO,GACZ,MAAOmO,GAAU9a,IAAI2M,EAAE3G,QAG1B4U,GAAO,SAASjO,GACjB,MAAOA,GAAE3G,GAAK6U,EAAQ,IAAMlO,EAAE3G,GAAK6U,EAAQA,EAAQ/Z,OAAO,GAE9DyJ,GAAOyQ,cAAcC,QAAQ,SAAU/a,GACnCA,EAAE6G,OAAOkU,QAAQ,SAAUtO,GACnBiO,EAAKjO,IACLtF,EAAIhH,KAAKsM,WAIrBpC,GAAOyQ,cAAcC,QAAQ,SAAU/a,GACnCmH,EAAMA,EAAI6T,OAAOhb,EAAE6G,SAI3B,OAAOM,GA8CX,QAAS8T,GAAeC,EAAYjZ,GAChC,MAAOoI,GAAO8Q,sBAAsBD,GAAYjZ,GAGpD,QAASmZ,GAAiBF,EAAYjZ,GAClC,MAAOoI,GAAOgR,wBAAwBH,GAAYjZ,GAGtD,QAASqZ,GAAyB1V,EAAMsV,GACpC,IAAK,GAAIK,GAAY,EAAGA,EAAY3V,EAAKhF,SAAU2a,EAAW,CAC1D,GAAItZ,GAAI2D,EAAK2V,GACTvS,EAAMiS,EAAeC,EAAYjZ,GACjCiH,EAAQkS,EAAiBF,EAAYjZ,EAEzCuZ,GAAY/V,aAAayV,EAAYK,GAAY3V,KAAM3D,EAAG6D,EAAGkD,EAAKjD,EAAGmD,EAAOtC,MAAOsU,KAhM3F,GAOIO,GACAC,EACAC,EACAC,EAVAJ,EAAc,GAAI5c,GAAGuD,MAAMiD,WAC3ByW,EAAend,EAAGod,OAAOC,QACxBC,OAAO,QACPC,MAAM,WACNC,OAAO,SAAUja,GACd,MAAOA,GAAE4E,QAqPjB,OAhOAwD,GAAO0R,MAAQ,SAAUnc,EAAOuc,EAAI3V,GAchC,MAbIxD,WAAUpC,QACV4a,EAAYpb,QAEE,gBAAP+b,GACP9R,EAAOwD,cAAcjO,EAAOuc,EAAI3V,GACb,kBAAP2V,KACZ3V,EAAY2V,GAEhBX,EAAYjV,mBAAmB8D,EAAOK,iBACtC8Q,EAAYvV,SAASrG,EAAO4G,GAE5B6D,EAAOuD,cAEAvD,GAGXA,EAAOuD,YAAc,WAKjB,MAJA6N,GAAa,KACbC,EAAqB,KACrBC,EAAmB,KACnBC,EAAe,KACRvR,GAGXA,EAAO+R,UAAY,WACf,GAAmB,OAAfX,EAAqB,CACrBA,KAEAA,EAAWtb,KAAKkK,EAAOzK,QAEvB,KAAK,GAAIe,GAAI,EAAGA,EAAI6a,EAAYlV,SAAU3F,EACtC8a,EAAWtb,KAAKqb,EAAYrV,gBAAgBxF,IAGpD,MAAO8a,IAGXpR,EAAOgS,kBAAoB,WACvB,GAA2B,OAAvBX,EAA6B,CAC7BA,KAEAA,EAAmBvb,KAAKkK,EAAOK,gBAE/B,KAAK,GAAI/J,GAAI,EAAGA,EAAI6a,EAAYlV,SAAU3F,EACtC+a,EAAmBvb,KAAKqb,EAAYnV,mBAAmB1F,IAG/D,MAAO+a,IAGXrR,EAAOgR,wBAA0B,SAAUH,GACvC,MAAO7Q,GAAOgS,oBAAoBnB,IAGtC7Q,EAAOkJ,SAAW,WACd,GAAIlM,GAAKF,EAAMsT,GAQf,OANApT,GAAM3I,EAAG2I,IAAIF,EAAK,SAAUsF,GACxB,MAASA,GAAE1G,EAAI0G,EAAE6P,GAAK7P,EAAE6P,GAAO7P,EAAE1G,EAAI0G,EAAE6P,GAAM7P,EAAE6P,KAGnDjV,EAAMzI,EAAGuD,MAAMgD,SAASkC,EAAKgD,EAAOyO,iBAKxCzO,EAAOmJ,SAAW,WACd,GAAIvM,GAAKE,EAAMsT,GAQf,OANAxT,GAAMvI,EAAGuI,IAAIE,EAAK,SAAUsF,GACxB,MAAOA,GAAE1G,EAAI0G,EAAE6P,KAGnBrV,EAAMrI,EAAGuD,MAAMuC,IAAIuC,EAAKoD,EAAOyO,iBAmCnCzO,EAAOkS,gBAAkB,WACrB,GAAyB,OAArBZ,EAA2B,CAC3BA,KAEAA,EAAiBxb,KAAKkK,EAAO2F,cAE7B,KAAK,GAAIrP,GAAI,EAAGA,EAAI6a,EAAYlV,SAAU3F,EACtCgb,EAAiBxb,KAAKkK,EAAO2F,eAGrC,MAAO2L,IAGXtR,EAAO8Q,sBAAwB,SAAUD,GACrC,MAAO7Q,GAAOkS,kBAAkBrB,IAGpC7Q,EAAOsH,SAAW,WAId,IAAK,GAHDtK,GAAM,KACN+U,EAAY/R,EAAO+R,YAEdlB,EAAa,EAAGA,EAAakB,EAAUxb,SAAUsa,EAAY,CAClE,GAAItb,GAAQwc,EAAUlB,GAClB/J,EAAIvS,EAAGuD,MAAMiF,SAASxH,EAAOyK,EAAO8Q,sBAAsBD,KAClD,OAAR7T,GAAgBA,EAAM8J,KAAG9J,EAAM8J,GAGvC,MAAOvS,GAAGuD,MAAMgD,SAASkC,EAAKgD,EAAO4N,iBAGzC5N,EAAOuH,SAAW,WAId,IAAK,GAHD3K,GAAM,KACNmV,EAAY/R,EAAO+R,YAEdlB,EAAa,EAAGA,EAAakB,EAAUxb,SAAUsa,EAAY,CAClE,GAAItb,GAAQwc,EAAUlB,GAClB/J,EAAIvS,EAAGuD,MAAM+E,SAAStH,EAAOyK,EAAO8Q,sBAAsBD,KAClD,OAARjU,GAAsBkK,EAANlK,KAASA,EAAMkK,GAGvC,MAAOvS,GAAGuD,MAAMuC,IAAIuC,EAAKoD,EAAO4N,iBAqBpC5N,EAAOmS,+BAAiC,WAEpC,IAAK,GADDC,GAASpS,EAAO+R,YACXlB,EAAa,EAAGA,EAAauB,EAAO7b,SAAUsa,EAAY,CAC/D,GAAItb,GAAQ6c,EAAOvB,GACftV,EAAOhG,EAAMuH,KAEjBmU,GAAyB1V,EAAMsV,KAIvC7Q,EAAOqS,cAAgB,WACnB,MAAOlB,IAGX5c,EAAG6D,SAAS4H,EAAQ,gBAAiB,SAAUtH,GAC3C,MAAKC,WAAUpC,QACfyJ,EAAOuD,cACAvD,EAAOkC,eAAexJ,IAFCsH,EAAOkC,mBAKzC3N,EAAG6D,SAAS4H,EAAQ,cAAe,SAAUtH,GACzC,MAAKC,WAAUpC,QACfyJ,EAAOuD,cACAvD,EAAOiC,aAAavJ,IAFGsH,EAAOiC,iBAKzCjC,EAAOsS,YAAc,SAAUZ,GAC3B,MAAK/Y,WAAUpC,QACfib,EAAeE,EACR1R,GAFuBwR,GAKlCxR,EAAOyQ,YAAc,SAAU/X,GAC3B,MAAKC,WAAUpC,YAOXgb,EAAe7Y,IANM,OAAjB6Y,IACAvR,EAAOmS,iCACPZ,EAAevR,EAAOsS,cAAcnB,EAAY9U,aAE7CkV,IAMfvR,EAAOiQ,cAAc,SAASrY,GAAG,MAAOA,GAAE2E,OAAS3E,EAAEmE,QAErDiE,EAAO6F,YAAc,WACjB,GAAI0M,KAIJ,OAHAnB,GAAWV,QAAQ,SAAUxQ,EAAG5J,GAC5Bic,EAAMzc,KAAKvB,EAAGuD,MAAM4F,iBAAiBsC,EAAQE,EAAG5J,EAAG0J,EAAOgR,wBAAwB1a,OAE/Eic,GAGJvS,GAQXzL,EAAGie,oBAAsB,SAAUxS,GAC/B,GAAIyS,GAAyB,GACzBC,EAAsB,EAE1B1S,GAAO2S,kBAAoB,OAC3B3S,EAAO4S,aAAe,SACtB5S,EAAO6S,WAAa,GAEpB7S,EAASzL,EAAGoX,WAAW3L,GAEvBA,EAAOiG,aAAY,GACnBjG,EAAOmG,aAAY,EAEnB,IAAI2M,GAAKze,EAAGyT,MAAMmB,SAASzR,QAAQ,EAAG,MAElCub,EAAkB,SAAUnb,GAC5B,MAAOA,GAAE2C,EAQbyF,GAAOzF,EAAI,SAAU7B,GACjB,MAAKC,WAAUpC,QACfuc,EAAKpa,EACEsH,GAFuB8S,GAYlC9S,EAAOgT,oBAAsB,SAAUta,GACnC,MAAKC,WAAUpC,QACfwc,EAAkBra,EACXsH,GAFuB+S,GAKlC/S,EAAOiT,KAAO,WACV,GAAIjW,GAAM3I,EAAG2I,IAAIgD,EAAOzK,QAAQuH,MAAO,SAAUnH,GAC7C,MAAOqK,GAAOgT,sBAAsBrd,IAExC,OAAOqH,IAGXgD,EAAOkT,KAAO,WACV,GAAItW,GAAMvI,EAAGuI,IAAIoD,EAAOzK,QAAQuH,MAAO,SAAUnH,GAC7C,MAAOqK,GAAOgT,sBAAsBrd,IAExC,OAAOiH,IAGXoD,EAAOmT,QAAU,SAAUvb,GACvB,GAAIiH,GAAQmB,EAAOgT,sBAAsBpb,GACrC2C,EAAIyF,EAAOzF,IAAIsE,EAGnB,QAFI6Q,MAAMnV,IAAe,GAATsE,KACZtE,EAAI,GACDA,EAGX,IAAI6Y,GAAgB,SAAUxb,GAC1B,MAAOoI,GAAOgG,QAAQpO,IAGtByb,EAAe,SAAUzb,GACzB,MAAQoI,GAAOmT,QAAQvb,GAAK8a,EAAuB,EAAI,EAG3D1S,GAAOsT,cAAgB,SAAUC,GAC7B,GAAIvT,EAAOiG,cAAe,CACtB,GAAID,GAAQuN,EAAahW,OAAO,OAE5ByI,GAAMxI,UACNwI,EAAQuN,EAAa9V,OAAO,QACvBiD,KAAK,cAAe,UACpBA,KAAK,KAAM,QACX2F,GAAG,QAASrG,EAAO0F,UAG5BM,EACKtF,KAAK,UAAW,GAChBiE,KAAKyO,GACV7e,EAAGqC,WAAWoP,EAAOhG,EAAO6E,sBACvBnE,KAAK,UAAW2S,KAI7BrT,EAAOwT,eAAiB,SAAUD,GAC9B,GAAIvT,EAAOiG,cAAe,CACtB,GAAIwN,GAASF,EAAavP,UAAU,QAC/BW,KAAKyO,EACV7e,GAAGqC,WAAW6c,EAAQzT,EAAO6E,sBACxBnE,KAAK,UAAW2S,IAI7B,IAAIK,GAAgB,SAAU9b,GAC1B,MAAOoI,GAAOkG,QAAQtO,GAgF1B,OA7EAoI,GAAO2T,eAAiB,SAAUzT,GAC9B,GAAIF,EAAOmG,cAAe,CACtB,GAAID,GAAQhG,EAAE3C,OAAO,QAEjB2I,GAAM1I,SACN0C,EAAEzC,OAAO,SAASkH,KAAK+O,KAInC1T,EAAO4T,eAAiB,SAAU1T,GAC1BF,EAAOmG,eACPjG,EAAE8D,UAAU,SAASW,KAAK+O,IAUlC1T,EAAO6T,mBAAqB,SAAUnb,GAClC,MAAKC,WAAUpC,QACfmc,EAAsBha,EACfsH,GAFuB0S,GAWlC1S,EAAO8T,sBAAwB,SAAUpb,GACrC,MAAKC,WAAUpC,QACfkc,EAAyB/Z,EAClBsH,GAFuByS,GAKlCzS,EAAO+T,gBAAkB,SAAUnc,EAAGtB,GAElC,MADA8C,MAAK7E,EAAGE,UAAUM,iBAAmBuB,EAC9B0J,EAAOgQ,SAASpY,EAAGtB,IAG9B0J,EAAOgU,kBAAoB,SAAUpc,GAEjC,MAAOoI,GAAOgQ,SAASpY,EAAGwB,KAAK7E,EAAGE,UAAUM,mBAGhDiL,EAAO8O,mBAAqB,WAEpB9O,EAAOgE,UAAU,KAAOhE,EAAO2S,mBAAmBzN,KADlDlF,EAAOsF,YACgD,SAAU1N,GACzDoI,EAAOiU,eAAerc,GACtBoI,EAAOuF,kBAAkBnM,MAEzB4G,EAAOwF,eAAepM,OAIyB,WACnD4G,EAAOyF,eAAerM,SAKlC4G,EAAOiU,eAAiB,SAAUrc,GAC9B,MAAOoI,GAAOsF,UAAU1N,EAAE+G,MAG9BqB,EAAO0F,QAAU,SAAU9N,GACvB,GAAIkC,GAASlC,EAAE+G,GACfpK,GAAGyJ,OAAOE,QAAQ,WACd8B,EAAOlG,OAAOA,GACdvF,EAAGmC,UAAUsJ,EAAOiE,iBAIrBjE,GAmCXzL,EAAG2f,SAAW,SAAU7W,EAAQ4G,GA8C5B,QAASkQ,KACL,GAAInU,EAAOoB,UAAW,CAClB,GAAIgT,GAAMC,GAGVC,GAAUA,EAAUA,EAAUjgB,EAAG2I,KAAKgD,EAAOW,QAASX,EAAOY,WAAY,CAEzE,IAAI2T,GAAMvU,EAAOwU,YAEbC,EAAUL,EAAIpU,EAAO0U,qBAEzB,IAAI3K,EAAI,CACJ,GAAI4K,GAAS5K,EAAG/F,UAAU,KAAO4Q,GAC5BrZ,KAAKkZ,EAEVI,GAAeF,EAAQJ,EAAKE,GAE5BK,EAAeL,EAASF,GAExBQ,EAAeJ,GAEfK,MAKZ,QAASH,GAAeF,EAAQJ,EAAKE,GACjC,GAAIQ,GAAcC,EAAiBP,EAEnCQ,GAAgBF,EAAaV,GAE7Ba,EAAaH,GAEbI,EAAaZ,EAASF,GAG1B,QAASW,GAAiBP,GACtB,GAAIM,GAAcN,EACbhM,QACAlL,OAAO,KACPiD,KAAK,QAAS,SAAU9I,EAAGtB,GACxB,MAAOse,GAAiB,KAAOte,GAEvC,OAAO2e,GAGX,QAASE,GAAgBF,EAAaV,GAClC,GAAIe,GAAYL,EAAYxX,OAAO,QAC9BiD,KAAK,OAAQ,SAAU9I,EAAGtB,GACvB,MAAO0J,GAAOgQ,SAASpY,EAAGtB,KAE7B+P,GAAG,QAASX,GACZhF,KAAK,IAAK,SAAU9I,EAAGtB,GACpB,MAAOif,GAAQ3d,EAAGtB,EAAGie,IAE7Be,GAAU1e,aACLE,SAASkJ,EAAO6E,sBAChB2Q,UAAU,IAAKC,GAGxB,QAASL,GAAaH,GACdjV,EAAOmG,eACP8O,EAAYxX,OAAO,SAASkH,KAAK,SAAU/M,GACvC,MAAOoI,GAAOkG,QAAQtO,KAKlC,QAASyd,GAAaZ,EAASF,GAC3B,GAAIvU,EAAOiG,cAAe,CACtB,GAAIwN,GAAS1J,EAAG/F,UAAU,QAAU4Q,GAC/BrZ,KAAKkZ,EAEVhB,GAAO5K,OAAOtE,QAEd,IAAImR,GAAcjC,EACb9K,QACAlL,OAAO,QACPiD,KAAK,QAAS,SAAU9I,EAAGtB,GACxB,MAAOse,GAAiB,KAAOte,IAElC+P,GAAG,QAASX,EACjBnR,GAAGqC,WAAW8e,EAAa1V,EAAO6E,sBAC7BnE,KAAK,YAAa,SAAU9I,GACzBA,EAAE+d,YAAc3V,EAAO2V,cACvB/d,EAAEge,YAActB,CAChB,IAAIuB,GAAWtB,EAAIsB,SAASje,EAC5B,OAAI8X,OAAMmG,EAAS,KAAOnG,MAAMmG,EAAS,IAC9B,iBAEA,aAAeA,EAAW,MAGxCnV,KAAK,cAAe,UACpBiE,KAAK,SAAU/M,GACZ,GAAI2D,GAAO3D,EAAE2D,IACb,OAAIua,GAAeva,IAASwa,EAAcne,GAC/B,GACJoI,EAAOgG,QAAQpO,MAKtC,QAASkd,GAAeL,EAASF,GAC7ByB,EAAiBvB,EAASF,GAC1B0B,EAAaxB,EAASF,GACtB2B,EAAazB,GAGjB,QAASuB,GAAiBvB,EAASF,GAC/B,GAAI4B,GAAapM,EAAG/F,UAAU,KAAO4Q,GAChCrZ,KAAKkZ,GACLlX,OAAO,QACPmD,KAAK,IAAK,SAAU9I,EAAGtB,GACpB,MAAOif,GAAQ3d,EAAGtB,EAAGie,IAE7BhgB,GAAGqC,WAAWuf,EAAYnW,EAAO6E,qBAC7B,SAAU5N,GACNA,EAAEue,UAAU,IAAKC,KAClB/U,KAAK,OAAQ,SAAU9I,EAAGtB,GACzB,MAAO0J,GAAOgQ,SAASpY,EAAGtB,KAItC,QAAS2f,GAAaxB,EAASF,GAC3B,GAAIvU,EAAOiG,cAAe,CACtB,GAAIwN,GAAS1J,EAAG/F,UAAU,QAAU4Q,GAC/BrZ,KAAKkZ,EACVlgB,GAAGqC,WAAW6c,EAAQzT,EAAO6E,sBACxBnE,KAAK,YAAa,SAAU9I,GACzBA,EAAE+d,YAAc3V,EAAO2V,cACvB/d,EAAEge,YAActB,CAChB,IAAIuB,GAAWtB,EAAIsB,SAASje,EAC5B,OAAI8X,OAAMmG,EAAS,KAAOnG,MAAMmG,EAAS,IAC9B,iBAEA,aAAeA,EAAW,MAGxCnV,KAAK,cAAe,UACpBiE,KAAK,SAAU/M,GACZ,GAAI2D,GAAO3D,EAAE2D,IACb,OAAIua,GAAeva,IAASwa,EAAcne,GAC/B,GACJoI,EAAOgG,QAAQpO,MAKtC,QAASse,GAAazB,GACdzU,EAAOmG,eACP4D,EAAG/F,UAAU,KAAO4Q,GACfrZ,KAAKkZ,GACLlX,OAAO,SACPoH,KAAK,SAAU/M,GACZ,MAAOoI,GAAOkG,QAAQtO,KAKtC,QAASmd,GAAeJ,GACpBA,EAAO9L,OAAOtE,SAGlB,QAASyQ,KAEDhV,EAAOgE,UAAU,KAAO4Q,GAAgB1P,KADxClF,EAAOsF,YACsC,SAAU1N,GAC/CoI,EAAOoW,gBAAgBxe,GACvBoI,EAAOuF,kBAAkBnM,MAEzB4G,EAAOwF,eAAepM,OAIe,WACzC4G,EAAOyF,eAAerM,QAsElC,QAASib,KACL,MAAOhgB,GAAGod,OAAO2C,MAAMvQ,KAAK,MAAMhF,MAAM,SAAUjH,GAC9C,MAAOoI,GAAOK,gBAAgBzI,KAItC,QAASme,GAAcne,GACnB,GAAIye,GAASze,EAAE0e,SAAW1e,EAAE2e,UAC5B,OAAO7G,OAAM2G,IAAkBG,EAARH,EAG3B,QAASP,GAAeva,GACpB,MAAwC,KAAjCyE,EAAOK,gBAAgB9E,GAGlC,QAASka,GAASgB,GACdA,EAAEd,YAAc3V,EAAO2V,aACvB,IAAI1X,GAAU7E,KAAKsd,QACfC,GAAY1Y,KACZA,GAAWsY,WAAY,EAAGD,SAAU,GACxC,IAAIhgB,GAAIjC,EAAGuiB,YAAY3Y,EAASwY,EAEhC,OADArd,MAAKsd,SAAWpgB,EAAE,GACX,SAAUugB,GACb,MAAOtB,GAAQjf,EAAEugB,GAAI,EAAG7W,EAAOwU,cAIvC,QAASmC,GAAY1Y,GACjB,OAAQA,GAAWyR,MAAMzR,EAAQsY,aAAe7G,MAAMzR,EAAQqY,UAGlE,QAAS5Q,GAAQ9N,GACboI,EAAO0F,QAAQ9N,EAAE2D,MAGrB,QAASga,GAAQ3d,EAAGtB,EAAGie,GACnB,GAAIuC,GAAOvC,EAAI3c,EAAGtB,EAGlB,OAFIwgB,GAAKlhB,QAAQ,QAAU,IACvBkhB,EAAO,QACJA,EAzUX,GAIIxC,GAGAvK,EAPAgN,EAA8B,GAE9BnC,EAAiB,YAGjBoC,EAAe,EAIfR,EAAoBO,EAEpB/W,EAASzL,EAAG0iB,OAAO1iB,EAAGoX,WAAWpX,EAAGwL,eAiUxC,OAzTAC,GAAOkX,UAAYlX,EAAOmX,IAE1BnX,EAAOgG,MAAM,SAAUpO,GACnB,MAAOoI,GAAO2F,cAAc/N,EAAE2D,QAGlCyE,EAAOiG,aAAY,GAEnBjG,EAAOkG,MAAM,SAAUtO,GACnB,MAAOoI,GAAO2F,cAAc/N,EAAE2D,MAAQ,KAAOyE,EAAOK,gBAAgBzI,EAAE2D,QAG1EyE,EAAO6E,mBAAmB,KAE1B7E,EAAO+E,SAAW,WASd,MARA/E,GAAOsE,WAEPyF,EAAK/J,EAAOqE,MACP5G,OAAO,KACPiD,KAAK,YAAa,aAAeV,EAAOoX,KAAO,IAAMpX,EAAOqX,KAAO,KAExElD,IAEOnU,GA6LXA,EAAO2V,YAAc,SAAUpb,GAC3B,MAAK5B,WAAUpC,QACfygB,EAAezc,EACRyF,GAFuBgX,GAUlChX,EAAOsX,OAAS,SAAU/c,GACtB,MAAK5B,WAAUpC,QACf+d,EAAU/Z,EACHyF,GAFuBsU,GAUlCtU,EAAOoX,GAAK,WACR,MAAOpX,GAAOW,QAAU,GAQ5BX,EAAOqX,GAAK,WACR,MAAOrX,GAAOY,SAAW,GAG7BZ,EAAOwU,UAAY,WACf,MAAOngB,GAAGgQ,IAAIkQ,MAAMqB,YAAYtB,GAASqB,YAAYqB,IAGzDhX,EAAOoW,gBAAkB,SAAUxe,GAC/B,MAAOoI,GAAOsF,UAAUtF,EAAO2F,cAAc/N,EAAE2D,QAGnDyE,EAAOmF,SAAW,WAEd,MADAgP,KACOnU,GAQXA,EAAOuX,iBAAmB,SAAU7e,GAChC,MAAKC,WAAUpC,QACfigB,EAAoB9d,EACbsH,GAFuBwW,GA+C3BxW,EAAOI,OAAO/C,EAAQ4G,IAmCjC1P,EAAGijB,SAAW,SAAUna,EAAQ4G,GAyC5B,QAASwT,GAAU7f,GACf,MAAOrD,GAAGuD,MAAMiG,WAAW1G,KAAKC,IAAI0I,EAAOtE,IAAI9D,EAAE8D,EAAI9D,EAAEqa,IAAMjS,EAAOtE,IAAI9D,EAAEqa,MAG9E,QAASyF,GAAWnb,EAAO3E,GACvB,GAAI+f,GAAOpb,EAAMyH,UAAU,YACtBzI,KAAK3D,EAAE4E,OAEZmb,GAAKhP,QACAlL,OAAO,QACPiD,KAAK,QAAS,OACdA,KAAK,OAAQV,EAAOgQ,UACpBvS,OAAO,SAASkH,KAAK3E,EAAOkG,SAE7BlG,EAAOoH,aACPuQ,EAAKtR,GAAG,QAASX,GAErBnR,EAAGqC,WAAW+gB,EAAM3X,EAAO6E,sBACtBnE,KAAK,IAAK,SAAU9I,GACjB,GAAI6D,GAAIuE,EAAOvE,IAAI7D,EAAE6D,EAErB,QADImc,GAAc5X,EAAOoH,eAAa3L,GAAKoc,EAAY,GAC/CtjB,EAAGuD,MAAMiG,WAAWtC,KAE/BiF,KAAK,IAAK,SAAU9I,GACjB,GAAI8D,GAAIsE,EAAOtE,IAAI9D,EAAE8D,EAAI9D,EAAEqa,GAK3B,OAHIra,GAAE8D,EAAI,IACNA,GAAK+b,EAAU7f,IAEZrD,EAAGuD,MAAMiG,WAAWrC,KAE9BgF,KAAK,QAASmX,GACdnX,KAAK,SAAU,SAAU9I,GACtB,MAAO6f,GAAU7f,KAEpB2F,OAAO,SAASoH,KAAK3E,EAAOkG,SAEjC3R,EAAGqC,WAAW+gB,EAAK9O,OAAQ7I,EAAO6E,sBAC7BnE,KAAK,SAAU,GACf6D,SAGT,QAASuT,KACL,GAAkB9gB,SAAd6gB,EAAyB,CACzB,GAAIE,GAAe/X,EAAOoH,YAAc4Q,IAAoB,EAAIA,IAE5D3U,EAAIhM,KAAKW,OAAOgI,EAAO4H,eAAiBmQ,EAAe,GAAKE,GAAQF,IAE/DG,KAAL7U,GAAiBqM,MAAMrM,IAAU8U,EAAJ9U,KAC7BA,EAAI8U,GAERN,EAAYxU,GAIpB,QAAS2U,KAKL,MAJsBhhB,UAAlBohB,IACAA,EAAgBpY,EAAOiN,cAGpBmL;CA6CX,QAAS1S,GAAQ9N,GACboI,EAAO0F,QAAQ9N,EAAE2D,MAlJrB,GAQI6c,GACAP,EATAM,EAAgB,EAChBE,EAA2B,EAE3BrY,EAASzL,EAAG4b,eAAe5b,EAAG0S,yBAE9BgR,EAAOI,EACPT,GAAa,CAyLjB,OApLArjB,GAAG6D,SAAS4H,EAAQ,UAAW,WAC3BA,EAAOsY,WACPF,EAAgBphB,OAChB6gB,EAAY7gB,OACZghB,MAGJhY,EAAOgP,SAAW,WACd,GAAI1S,GAAS0D,EAAOyN,aAAazJ,UAAU,WACtCzI,KAAKyE,EAAOyQ,cAEjBqH,KAEAxb,EACKqM,QACAlL,OAAO,KACPiD,KAAK,QAAS,SAAU9I,EAAGtB,GACxB,MAAO,UAAiBA,IAGhCgG,EAAO4I,KAAK,SAAUtN,EAAGtB,GACrB,GAAIiG,GAAQlI,EAAGkJ,OAAOnE,KAEtBse,GAAWnb,EAAO3E,EAAGtB,KAGzB0J,EAAOyQ,YAAY,OAkEvBzQ,EAAO8O,mBAAqB,WACxB,GAAI6I,GAAO3X,EAAOyN,aAAazJ,UAAU,YACrC4F,EAAS5J,EAAO6M,QAAQjD,QAE5B,IAAI5J,EAAOoH,YACHpH,EAAOsF,aACPqS,EAAKzT,QAAQ3P,EAAGE,UAAUK,eAAgB,SAAU8C,GAChD,MAAOoI,GAAOsF,UAAUtF,EAAO2F,cAAc/N,EAAE2D,SAEnDoc,EAAKzT,QAAQ3P,EAAGE,UAAUI,iBAAkB,SAAU+C,GAClD,OAAQoI,EAAOsF,UAAUtF,EAAO2F,cAAc/N,EAAE2D,WAGpDoc,EAAKzT,QAAQ3P,EAAGE,UAAUK,gBAAgB,GAC1C6iB,EAAKzT,QAAQ3P,EAAGE,UAAUI,kBAAkB,QAGhD,IAAKmL,EAAOgK,aAAaJ,GASrB+N,EAAKzT,QAAQ3P,EAAGE,UAAUI,kBAAkB,OATd,CAC9B,GAAI0jB,GAAQ3O,EAAO,GACf4O,EAAM5O,EAAO,EAEjB+N,GAAKzT,QAAQ3P,EAAGE,UAAUI,iBAAkB,SAAU+C,GAClD,GAAI6gB,GAASzY,EAAO2F,cAAc/N,EAAE2D,KACpC,OAAgBgd,GAATE,GAAkBA,GAAUD,MAanDxY,EAAO0Y,UAAY,SAAUhgB,GACzB,MAAKC,WAAUpC,QACfqhB,EAAalf,EACNsH,GAFuB4X,GAelC5X,EAAO2Y,IAAM,SAAUjgB,GACnB,MAAKC,WAAUpC,QACf0hB,EAAOvf,EACAsH,GAFuBiY,GAKlCjY,EAAO6J,YAAc,WACjB,GAAID,GAAS5J,EAAO6M,QAAQjD,QAQ5B,OAPI5J,GAAO9H,UAAY0f,IACnBhO,EAAO,GAAKA,EAAOpC,IAAIxH,EAAO9H,SAAS,GACvC0R,EAAO,GAAKA,EAAOpC,IAAIxH,EAAO9H,SAAS,GAEvC8H,EAAOyN,aAAalQ,OAAO,UACtBmN,KAAK1K,EAAO6M,QAAQjD,OAAOA,KAE7BA,GAGX5J,EAAO8F,gBAAkB,SAAUlO,GAC/BoI,EAAOzC,OAAO,eAAeyG,UAAU,YAAYlK,OAAO,WACtD,MAAOzF,GAAGkJ,OAAOnE,MAAMsH,KAAK,SAAW9I,EAAEkG,QAC1CoG,QAAQ,aAAa,GACxBlE,EAAOzC,OAAO,eAAeyG,UAAU,YAAYlK,OAAO,WACtD,MAAOzF,GAAGkJ,OAAOnE,MAAMsH,KAAK,SAAW9I,EAAEkG,QAC1CoG,QAAQ,WAAW,IAG1BlE,EAAO+F,YAAc,SAAUnO,GAC3BoI,EAAOgE,UAAU,eAAeA,UAAU,YAAYlK,OAAO,WACzD,MAAOzF,GAAGkJ,OAAOnE,MAAMsH,KAAK,SAAW9I,EAAEkG,QAC1CoG,QAAQ,aAAa,GACxBlE,EAAOgE,UAAU,eAAeA,UAAU,YAAYlK,OAAO,WACzD,MAAOzF,GAAGkJ,OAAOnE,MAAMsH,KAAK,SAAW9I,EAAEkG,QAC1CoG,QAAQ,WAAW,IAGnBlE,EAAOI,OAAO/C,EAAQ4G,IAmCjC1P,EAAGqkB,UAAY,SAAUvb,EAAQ4G,GAkE7B,QAAS4U,GAASC,EAAaxc,GAC3B,GAAIyc,GAAO1kB,EAAGgQ,IAAI0U,OACbtd,EAAE,SAAU7D,GACT,MAAOoI,GAAOvE,IAAI7D,EAAE6D,KAEvBC,EAAE,SAAU9D,GACT,MAAOoI,GAAOtE,IAAI9D,EAAE8D,EAAI9D,EAAEqa,MAE7B2E,YAAYoC,GACZC,QAAQC,EACTC,IACAJ,EAAKK,QAAQD,GAGjBL,EAAYrb,OAAO,QACdiD,KAAK,QAAS,QACdA,KAAK,SAAUV,EAAOgQ,UACtBtP,KAAK,OAAQV,EAAOgQ,UAEzBzb,EAAGqC,WAAW0F,EAAOiB,OAAO,aAAcyC,EAAO6E,sBAC5CnE,KAAK,IAAK,SAAU9I,GACjB,MAAOyhB,GAAMN,EAAKnhB,EAAE4E,WAIhC,QAAS8c,GAASR,EAAaxc,GAC3B,GAAIid,EAAa,CACb,GAAIC,GAAOnlB,EAAGgQ,IAAImV,OACb/d,EAAE,SAAU7D,GACT,MAAOoI,GAAOvE,IAAI7D,EAAE6D,KAEvBC,EAAE,SAAU9D,GACT,MAAOoI,GAAOtE,IAAI9D,EAAE8D,EAAI9D,EAAEqa,MAE7BA,GAAG,SAAUra,GACV,MAAOoI,GAAOtE,IAAI9D,EAAEqa,MAEvB2E,YAAYoC,GACZC,QAAQC,EACTC,IACAK,EAAKJ,QAAQD,GAGjBL,EAAYrb,OAAO,QACdiD,KAAK,QAAS,QACdA,KAAK,OAAQV,EAAOgQ,UACpBtP,KAAK,IAAK,SAAU9I,GACjB,MAAOyhB,GAAMG,EAAK5hB,EAAE4E,WAG5BjI,EAAGqC,WAAW0F,EAAOiB,OAAO,aAAcyC,EAAO6E,sBAC5CnE,KAAK,IAAK,SAAU9I,GACjB,MAAOyhB,GAAMG,EAAK5hB,EAAE4E,YAKpC,QAAS6c,GAAMzhB,GACX,OAASA,GAAKA,EAAEhC,QAAQ,QAAU,EAAK,OAASgC,EAGpD,QAAS6hB,GAASX,GACT9Y,EAAOkP,WACR4J,EAAY5T,KAAK,WACb,GAAI3I,GAAQlI,EAAGkJ,OAAOnE,MAElB8G,EAAI3D,EAAMgB,OAAO,KAAOmc,EACxBxZ,GAAE1C,UAAS0C,EAAI3D,EAAMkB,OAAO,KAAKiD,KAAK,QAASgZ,IAEnDC,EAAezZ,EAEf,IAAI0Z,GAAO1Z,EAAE8D,UAAU,UAAY6V,GAC9Bte,KAAK2E,EAAE4Z,QAAQtd,OAEpBod,GAAKjR,QACAlL,OAAO,UACPiD,KAAK,QAASmZ,GACdnZ,KAAK,IAAKqZ,GACVrZ,KAAK,OAAQV,EAAOgQ,UACpBtL,MAAM,eAAgB,MACtBA,MAAM,iBAAkB,MACxB2B,GAAG,YAAa,WACb,GAAI2T,GAAM3lB,EAAGkJ,OAAOnE,KACpB6gB,GAAQD,GACRE,EAAaF,EAAK9Z,KAErBmG,GAAG,WAAY,WACZ,GAAI2T,GAAM3lB,EAAGkJ,OAAOnE,KACpB+gB,GAAQH,GACRI,EAAala,KAEhBzC,OAAO,SAASkH,KAAK3E,EAAOkG,SAEjC0T,EAAKlZ,KAAK,KAAM,SAAU9I,GAClB,MAAOrD,GAAGuD,MAAMiG,WAAWiC,EAAOvE,IAAI7D,EAAE6D,MAE3CiF,KAAK,KAAM,SAAU9I,GAClB,MAAOrD,GAAGuD,MAAMiG,WAAWiC,EAAOtE,IAAI9D,EAAE8D,EAAI9D,EAAEqa,OAEjD1U,OAAO,SAASoH,KAAK3E,EAAOkG,SAEjC0T,EAAK/Q,OAAOtE,WAKxB,QAASoV,GAAezZ,GACpB,GAAIma,GAAWna,EAAE3C,OAAO,QAAU+c,GAAuB9c,QAAU0C,EAAEzC,OAAO,QAAQiD,KAAK,QAAS4Z,GAAyBpa,EAAE3C,OAAO,QAAU+c,EAC9ID,GAAS3V,MAAM,UAAW,QAAQhE,KAAK,mBAAoB,MAE3D,IAAI6Z,GAAWra,EAAE3C,OAAO,QAAUid,GAAuBhd,QAAU0C,EAAEzC,OAAO,QAAQiD,KAAK,QAAS8Z,GAAyBta,EAAE3C,OAAO,QAAUid,EAC9ID,GAAS7V,MAAM,UAAW,QAAQhE,KAAK,mBAAoB,OAG/D,QAASuZ,GAAQD,GAGb,MAFAA,GAAItV,MAAM,eAAgB,IAC1BsV,EAAItV,MAAM,iBAAkB,IACrBsV,EAGX,QAASE,GAAaF,EAAK9Z,GACvB,GAAIzE,GAAIue,EAAItZ,KAAK,MACbhF,EAAIse,EAAItZ,KAAK,KACjBR,GAAE3C,OAAO,QAAU+c,GAAuB5V,MAAM,UAAW,IAAIhE,KAAK,IAAK,MAAQhF,EAAI,IAAM,EAAM,IAAM,GACvGwE,EAAE3C,OAAO,QAAUid,GAAuB9V,MAAM,UAAW,IAAIhE,KAAK,IAAK,IAAMjF,EAAI,IAAMuE,EAAOqJ,cAAgB,IAAM5N,EAAI,IAAMC,GAGpI,QAASye,GAAQH,GACbA,EAAItV,MAAM,eAAgB,MAAMA,MAAM,iBAAkB,MAG5D,QAAS0V,GAAala,GAClBA,EAAE3C,OAAO,QAAU+c,GAAuB5V,MAAM,UAAW,QAC3DxE,EAAE3C,OAAO,QAAUid,GAAuB9V,MAAM,UAAW,QAtM/D,GAWIyU,GAXAsB,EAAqB,EACrBf,EAAkB,aAClBG,EAAmB,MACnBS,EAAwB,OACxBE,EAAwB,OAExBxa,EAASzL,EAAG4b,eAAe5b,EAAG0S,yBAC9BsS,GAAc,EACdQ,EAAaU,EACbzB,EAAe,SACfE,EAAW,EA4Nf,OAzNAlZ,GAAO6E,mBAAmB,KAE1B7E,EAAOgP,SAAW,WACd,GAAI1S,GAAS0D,EAAOyN,aAAazJ,UAAU,WACtCzI,KAAKyE,EAAOyQ,eAEbqI,EAAcxc,EACbqM,QACAlL,OAAO,KACPiD,KAAK,QAAS,SAAU9I,EAAGtB,GACxB,MAAO,UAAiBA,GAGhCuiB,GAASC,EAAaxc,GAEtBgd,EAASR,EAAaxc,GAEtBmd,EAASnd,GAET0D,EAAOyQ,YAAY,OAGvBzQ,EAAO4W,YAAc,SAASle,GAC1B,MAAKC,WAAUpC,QACfyiB,EAAetgB,EACRsH,GAFuBgZ,GAKlChZ,EAAOiZ,QAAU,SAASvgB,GACtB,MAAKC,WAAUpC,QACf2iB,EAAWxgB,EACJsH,GAFuBkZ,GAKlClZ,EAAOoZ,QAAU,SAAS1gB,GACtB,MAAKC,WAAUpC,QACf4iB,EAAWzgB,EACJsH,GAFuBmZ,GAWlCnZ,EAAO0a,WAAa,SAAUhiB,GAC1B,MAAKC,WAAUpC,QACfgjB,EAAc7gB,EACPsH,GAFuBuZ,GAkJlCvZ,EAAO2a,UAAY,SAAUjiB,GACzB,MAAKC,WAAUpC,QACfwjB,EAAarhB,EACNsH,GAFuB+Z,GAKlC/Z,EAAO8F,gBAAkB,SAAUlO,GAC/BoI,EAAOgE,UAAU,eAAeA,UAAU,QAAQlK,OAAO,WACrD,MAAOzF,GAAGkJ,OAAOnE,MAAMsH,KAAK,SAAW9I,EAAEkG,QAC1CoG,QAAQ,aAAa,GACxBlE,EAAOgE,UAAU,eAAeA,UAAU,QAAQlK,OAAO,WACrD,MAAOzF,GAAGkJ,OAAOnE,MAAMsH,KAAK,SAAW9I,EAAEkG,QAC1CoG,QAAQ,WAAW,IAG1BlE,EAAO+F,YAAc,SAAUnO,GAC3BoI,EAAOgE,UAAU,eAAeA,UAAU,QAAQlK,OAAO,WACrD,MAAOzF,GAAGkJ,OAAOnE,MAAMsH,KAAK,SAAW9I,EAAEkG,QAC1CoG,QAAQ,aAAa,GACxBlE,EAAOgE,UAAU,eAAeA,UAAU,QAAQlK,OAAO,WACrD,MAAOzF,GAAGkJ,OAAOnE,MAAMsH,KAAK,SAAW9I,EAAEkG,QAC1CoG,QAAQ,WAAW,IAGnBlE,EAAOI,OAAO/C,EAAQ4G,IA6CjC1P,EAAGqmB,UAAY,SAASvd,EAAQ4G,GAC5B,GAAI4W,GAAgBxmB,EAAGsF,OAAO,MAC1BqG,EAASzL,EAAGwL,aAahB,OAXAC,GAAO+E,SAAW,WAId,MAHA/E,GAAOgE,UAAU,gBAAgBW,KAAKkW,EAAc7a,EAAOqB,YAAYpF,SACvE+D,EAAOgE,UAAU,iBAAiBW,KAAKkW,EAAc7a,EAAOzK,QAAQsJ,UAE7DmB,GAGXA,EAAOmF,SAAW,WACd,MAAOnF,GAAO+E,YAGX/E,EAAOI,OAAO/C,EAAQ4G,IAwBjC1P,EAAGumB,UAAY,SAASzd,EAAQ4G,GAwB5B,QAAS8W,KACL,GAAI3I,GAASpS,EAAOS,OAAOuD,UAAU,SAChCzI,KAAKyf,IAAe,SAASpjB,GAC1B,MAAOoI,GAAO2F,cAAc/N,KAGhCqjB,EAAW7I,EACVzJ,QACAlL,OAAO,QAcZ,OAZAwd,GACKxd,OAAO,MACPiD,KAAK,QAASwa,GACVzd,OAAO,MACPiD,KAAK,QAASya,GACdza,KAAK,UAAW0a,EAAS7kB,QACzB8kB,KAAK,SAASzjB,GACX,MAAOoI,GAAO2F,cAAc/N,KAGxCwa,EAAOvJ,OAAOtE,SAEP0W,EAGX,QAASD,KACAM,IACDA,EAAQhnB,EAAYwP,UAAUC,GAAGwX,GAErC,IAAIC,GAAUxb,EAAOqB,YAAYoF,IAAIgV,EAErC,OAAOpnB,GAAGqnB,OACL/c,IAAIqB,EAAOzK,SACXomB,SAASC,GACTC,WAAWD,GACXJ,QAAQF,EAAME,EAAS,EAAGA,EAAQjlB,SAG3C,QAASulB,GAAW1J,GAWhB,IAAK,GAVD2J,GAAO3J,EAAOR,QACb5N,UAAU,MAAQgY,GAClBzgB,KAAK,SAAS3D,GACX,MAAOA,GAAEia,SAGboK,EAAWF,EAAKpT,QACflL,OAAO,MACPiD,KAAK,QAASsb,GAEV1lB,EAAI,EAAGA,EAAI8kB,EAAS7kB,SAAUD,EAAG,CACtC,GAAI8O,GAAIgW,EAAS9kB,EACjB2lB,GAASxe,OAAO,MACXiD,KAAK,QAASwb,EAAmB,KAAO5lB,GACxC+kB,KAAK,SAASzjB,GACX,MAAOwN,GAAExN,KAMrB,MAFAmkB,GAAKlT,OAAOtE,SAELwX,EAnFX,GAaIT,GAbAH,EAAkB,iBAClBa,EAAgB,eAChBE,EAAmB,kBACnBhB,EAAkB,iBAElBlb,EAASzL,EAAGwL,cAEZ0b,EAAQ,GACRL,KACAG,EAAU,SAAS3jB,GACnB,MAAOA,IAEPgkB,EAASvnB,EAAG8nB,SA2JhB,OAxJAnc,GAAO+E,SAAW,WAKd,MAJA/E,GAAOgE,UAAU,SAASO,SAE1BuX,EAAWf,KAEJ/a,GAkEXA,EAAOmF,SAAW,WACd,MAAOnF,GAAO+E,YAQlB/E,EAAO/D,KAAO,SAAShF,GACnB,MAAK0B,WAAUpC,QACfklB,EAAQxkB,EACD+I,GAFuByb,GAgClCzb,EAAOoc,QAAU,SAAS1jB,GACtB,MAAKC,WAAUpC,QACf6kB,EAAW1iB,EACJsH,GAFuBob,GAiBlCpb,EAAOqc,OAAS,SAAS3jB,GACrB,MAAKC,WAAUpC,QACfglB,EAAU7iB,EACHsH,GAFuBub,GAclCvb,EAAO4R,MAAQ,SAASlZ,GACpB,MAAKC,WAAUpC,QACfqlB,EAASljB,EACFsH,GAFuB4b,GAK3B5b,EAAOI,OAAO/C,EAAQ4G,IAoCjC1P,EAAG+nB,YAAc,SAASjf,EAAQ4G,GAyC9B,QAASsY,GAAYC,GACjB,GAAIjJ,GAAeiJ,EAAQ7T,QAAQlL,OAAO,IAE1C8V,GACK7S,KAAK,QAASV,EAAO2S,mBACrBjS,KAAK,YAAa+b,GAClBhf,OAAO,UAAUiD,KAAK,QAAS,SAAS9I,EAAGtB,GACxC,MAAO0J,GAAO4S,aAAe,KAAOtc,IAEvC+P,GAAG,QAASrG,EAAO0F,SACnBhF,KAAK,OAAQV,EAAO+T,iBACpBrT,KAAK,IAAK,GACfnM,EAAGqC,WAAW4lB,EAASxc,EAAO6E,sBACzBnE,KAAK,IAAK,SAAS9I,GAChB,MAAOoI,GAAOmT,QAAQvb,KAEzB8I,KAAK,UAAW,SAAS9I,GACtB,MAAQoI,GAAOmT,QAAQvb,GAAK,EAAK,EAAI,IAG7CoI,EAAOsT,cAAcC,GAErBvT,EAAO2T,eAAeJ,GAG1B,QAASmJ,GAAYF,GACjBjoB,EAAGqC,WAAW4lB,EAASxc,EAAO6E,sBACzBnE,KAAK,YAAa+b,GAClBzY,UAAU,UAAYhE,EAAO4S,cAC7BlS,KAAK,OAAQV,EAAOgU,mBACpBtT,KAAK,IAAK,SAAS9I,GAChB,MAAOoI,GAAOmT,QAAQvb,KAEzB8I,KAAK,UAAW,SAAS9I,GACtB,MAAQoI,GAAOmT,QAAQvb,GAAK,EAAK,EAAI,IAG7CoI,EAAOwT,eAAegJ,GACtBxc,EAAO4T,eAAe4I,GAG1B,QAASG,GAAYH,GACjBA,EAAQ3T,OAAOtE,SAGnB,QAASqY,GAAQhlB,GACb,GAAI6D,GAAIuE,EAAOvE,IAAIuE,EAAO2F,cAAc/N,GAGxC,OAFI8X,OAAMjU,KACNA,EAAI,GACDA,EAGX,QAASohB,GAAQjlB,GACb,GAAI8D,GAAIsE,EAAOtE,IAAIsE,EAAOK,gBAAgBzI,GAG1C,OAFI8X,OAAMhU,KACNA,EAAI,GACDA,EAhGX,GAAIsE,GAASzL,EAAGie,oBAAoBje,EAAG0S,yBAEnC6V,GAAiB,CAErB9c,GAAO6E,mBAAmB,IAE1B,IAAI4X,GAAgB,SAAS7kB,GACzB,MAAO,aAAgBglB,EAAQhlB,GAAM,IAAOilB,EAAQjlB,GAAM,IAqG9D,OA5FAoI,GAAO+c,cAAgB,SAASrkB,GAC5B,MAAKC,WAAUpC,QACfumB,EAAiBpkB,EACVsH,GAFuB8c,GAKlC9c,EAAOgP,SAAW,WACV8N,GACA9c,EAAOzF,IAAI/C,QAAQwI,EAAOiT,OAAQjT,EAAOkT,SAE7ClT,EAAOzF,IAAIoN,OAAO3H,EAAO6S,WAAY7S,EAAO4H,cAAgB5H,EAAO8T,yBAEnE,IAAI0I,GAAUxc,EAAOyN,aAAazJ,UAAU,KAAOhE,EAAO2S,mBACrDpX,KAAKyE,EAAOzK,QAAQuH,MAEzByf,GAAYC,GAEZE,EAAYF,GAEZG,EAAYH,GAEZxc,EAAO8O,sBA8DX9O,EAAO2O,YAAc,aAIrB3O,EAAO8J,YAAc,WAEjB9J,EAAO8O,sBAGJ9O,EAAOI,OAAO/C,EAAQ4G,IAiCjC1P,EAAGyoB,eAAiB,SAAU3f,EAAQ4G,GA6BlC,QAASgZ,GAAeC,EAAO5mB,GAC3B4mB,EAAM5P,WAAWtN,EAAOE,KACxBgd,EAAMhd,IAAIQ,KAAK,QAASyc,EAAkB,KAAO7mB,GAuErD,QAAS8mB,KAEL,IAAK,GADDC,MACK/mB,EAAI,EAAGA,EAAIgnB,EAAU/mB,SAAUD,EACpC+mB,EAAQvnB,KAAKwnB,EAAUhnB,GAAG4S,WAE9B,OAAOmU,GAOX,QAASE,KAEL,IAAK,GADDC,MACKlnB,EAAI,EAAGA,EAAIgnB,EAAU/mB,SAAUD,EACpCknB,EAAS1nB,KAAKwnB,EAAUhnB,GAAG6S,WAE/B,OAAOqU,GAOX,QAASC,KAEL,IAAK,GADDJ,MACK/mB,EAAI,EAAGA,EAAIgnB,EAAU/mB,SAAUD,EACpC+mB,EAAQvnB,KAAKwnB,EAAUhnB,GAAGgR,WAE9B,OAAO+V,GAOX,QAASK,KAEL,IAAK,GADDF,MACKlnB,EAAI,EAAGA,EAAIgnB,EAAU/mB,SAAUD,EACpCknB,EAAS1nB,KAAKwnB,EAAUhnB,GAAGiR,WAE/B,OAAOiW,GA9IX,GAAIL,GAAkB,MAElBnd,EAASzL,EAAG0S,wBACZqW,IA4KJ,OA1KAtd,GAAO6E,mBAAmB,KAC1B7E,EAAOzK,UAEPhB,EAAG6D,SAAS4H,EAAQ,aAAc,WAG9B,IAAK,GAFDE,GAAI9G,KAAKukB,cAEJrnB,EAAI,EAAGA,EAAIgnB,EAAU/mB,SAAUD,EAAG,CACvC,GAAI4mB,GAAQI,EAAUhnB,EAEtB2mB,GAAeC,EAAO5mB,GAEIU,SAAtBkmB,EAAM7b,aAA2B6b,EAAM7b,UAAUrB,EAAOqB,aACtCrK,SAAlBkmB,EAAM3nB,SAAuB2nB,EAAM3nB,MAAMyK,EAAOzK,SACpD2nB,EAAMjZ,WAAWjE,EAAOiE,cACxBiZ,EAAM7Y,IAAIrE,EAAOqE,OACjB6Y,EAAMxP,OAAO1N,EAAO0N,UACpBwP,EAAMrY,mBAAmB7E,EAAO6E,sBAChCqY,EAAMhO,QAAQlP,EAAOkP,WAGzB,MAAOhP,KAQXF,EAAOgP,SAAW,WACd,IAAK,GAAI1Y,GAAI,EAAGA,EAAIgnB,EAAU/mB,SAAUD,EAAG,CACvC,GAAI4mB,GAAQI,EAAUhnB,EAEJU,UAAdkmB,EAAMhd,KACN+c,EAAeC,EAAO5mB,GAG1B4mB,EAAMzhB,EAAEuE,EAAOvE,KACfyhB,EAAMxhB,EAAEsE,EAAOtE,KACfwhB,EAAMvP,MAAM3N,EAAO2N,SACnBuP,EAAM1O,MAAMxO,EAAOwO,SAEnB0O,EAAMlO,WAENkO,EAAMlY,uBAIdhF,EAAO8O,mBAAqB,WACxB,IAAK,GAAIxY,GAAI,EAAGA,EAAIgnB,EAAU/mB,SAAUD,EAAG,CACvC,GAAI4mB,GAAQI,EAAUhnB,EACtB4mB,GAAMrQ,MAAM7M,EAAO6M,SACnBqQ,EAAMpO,uBA8Bd9O,EAAO4d,QAAU,SAAUvnB,GACvBinB,EAAYjnB,CACZ,KAAK,GAAIC,GAAI,EAAGA,EAAIgnB,EAAU/mB,SAAUD,EAAG,CACvC,GAAI4mB,GAAQI,EAAUhnB,EACtB4mB,GAAMtc,OAAOZ,EAAOY,UACpBsc,EAAMvc,MAAMX,EAAOW,SACnBuc,EAAMrW,QAAQ7G,EAAO6G,WAEzB,MAAO7G,IAGXA,EAAO6d,SAAW,WACd,MAAOP,IAWXtd,EAAOkJ,SAAW,WACd,MAAO7U,GAAG2I,IAAIogB,MAWlBpd,EAAOmJ,SAAW,WACd,MAAO5U,GAAGuD,MAAMuC,IAAIhG,EAAGuI,IAAI2gB,KAAkCvd,EAAOyO,iBAWxEzO,EAAOsH,SAAW,WACd,MAAO/S,GAAGuD,MAAMgD,SAASzG,EAAG2I,IAAIygB,KAAkCzd,EAAO4N,iBAW7E5N,EAAOuH,SAAW,WACd,MAAOhT,GAAGuD,MAAMuC,IAAIhG,EAAGuI,IAAI8gB,KAAkC1d,EAAO4N,iBAGxE5N,EAAO6F,YAAc,WACjB,GAAI0M,KAQJ,OAPA+K,GAAU5M,QAAQ,SAASoN,EAAYphB,GACnC,GAAIqhB,GAAmBD,EAAWjY,aAC9BkY,GAAiBxnB,OAAS,EAC1Bgc,EAAMzc,KAAK0D,MAAM+Y,EAAMwL,GAEvBxL,EAAMzc,KAAKvB,EAAGuD,MAAM4F,iBAAiBogB,EAAYA,EAAWvoB,QAASmH,EAAGohB,EAAWzd,oBAEpFkS,GAGXvS,EAAO8F,gBAAkB,SAAUlO,GAC/B,IAAK,GAAI8E,GAAI,EAAGA,EAAI4gB,EAAU/mB,SAAUmG,EAAG,CACvC,GAAIwgB,GAAQI,EAAU5gB,EACtBwgB,GAAMpX,gBAAgBlO,KAI9BoI,EAAO+F,YAAc,SAAUnO,GAC3B,IAAK,GAAI8E,GAAI,EAAGA,EAAI4gB,EAAU/mB,SAAUmG,EAAG,CACvC,GAAIwgB,GAAQI,EAAU5gB,EACtBwgB,GAAMnX,YAAYnO,KAInBoI,EAAOI,OAAO/C,EAAQ4G,IA+BjC1P,EAAGypB,mBAAqB,SAAU3gB,EAAQ4G,GAoCtC,QAAS+K,GAAS3T,GACd,GAAIE,GAAO0iB,GAEX,IAAIC,EAAY7iB,GAAa,CACzB,GAAI8iB,GAAUC,EAAc/iB,EAE5BgjB,GAAYF,EAAS9iB,EAAYE,GAEjC4K,EAAYgY,EAAS9iB,EAAYE,IAIzC,QAAS0iB,KAGL,IAAK,GAFD1iB,MACA+iB,EAAWte,EAAOzK,QAAQuH,MACrBxG,EAAI,EAAGA,EAAIgoB,EAAS/nB,SAAUD,EACnCiF,EAAKyE,EAAO2F,cAAc2Y,EAAShoB,KAAO0J,EAAOK,gBAAgBie,EAAShoB,GAE9E,OAAOiF,GAGX,QAAS2iB,GAAY7iB,GACjB,MAAOkjB,GAAQljB,GAAYsK,YAG/B,QAASyY,GAAc/iB,GACnB,GAAI8iB,GAAUne,EAAOqE,MAChBL,UAAUwa,EAAcnjB,IACxB6I,QAAQ,WAAY,SAAUtM,GAC3B,MAAO6mB,GAAWpjB,EAAYzD,KAEjCsM,QAAQ,aAAc,SAAUtM,GAC7B,MAAO8mB,GAAarjB,EAAYzD,KAEnC8I,KAAK,QAAS,SAAU9I,GACrB,GAAI+mB,GAAiBJ,EAAQljB,GAAY6B,KACrC0hB,EAAcrqB,EAAGuD,MAAMmF,SAASshB,EAAQljB,GAAYsK,YAAY/N,IAChEinB,EAAcF,EAAiB,IAAMC,CAGzC,OAFIH,GAAWpjB,EAAYzD,KAAIinB,GAAe,aAC1CH,EAAarjB,EAAYzD,KAAIinB,GAAe,eACzCA,GAEf,OAAOV,GAGX,QAASK,GAAcnjB,GACnB,MAAO,UAAYA,EAAa,MAAQkjB,EAAQljB,GAAY6B,KAGhE,QAASuhB,GAAWpjB,EAAYzD,GAC5B,MAAOoI,GAAOsF,aAAetF,EAAOsF,UAAUwZ,EAAOzjB,EAAYzD,IAGrE,QAAS8mB,GAAarjB,EAAYzD,GAC9B,MAAOoI,GAAOsF,cAAgBtF,EAAOsF,UAAUwZ,EAAOzjB,EAAYzD,IAGtE,QAASknB,GAAOzjB,EAAYzD,GACxB,MAAO2mB,GAAQljB,GAAYsK,YAAY/N,GAG3C,QAAS2mB,GAAQxiB,GACb,MAAOgjB,GAAUhjB,GAGrB,QAASsiB,GAAYF,EAAS9iB,EAAYE,GACtC,GAAIyjB,GAAQb,EACP5gB,OAAO,QACPmD,KAAK,OAAQ,WACV,GAAIue,GAAc5qB,EAAGkJ,OAAOnE,MAAMsH,KAAK,OACvC,OAAIue,GACOA,EACJ,SAEV5Y,GAAG,QAAS,SAAUzO,GACnB,MAAOoI,GAAO0F,QAAQ9N,EAAGyD,IAGjC9G,GAAGqC,WAAWooB,EAAOhf,EAAO6E,sBAAsBnE,KAAK,OAAQ,SAAU9I,EAAGtB,GACxE,MAAO0J,GAAOgQ,SAASzU,EAAKgjB,EAAQljB,GAAYsK,YAAY/N,IAAKtB,KAYzE,QAAS6P,GAAYgY,EAAS9iB,EAAYE,GAClCyE,EAAOmG,eACPgY,EAAQna,UAAU,SAASW,KAAK,SAAU/M,GACtC,GAAI+G,GAAMmgB,EAAOzjB,EAAYzD,GACzBiH,EAAQtD,EAAKoD,EACjB,OAAOqB,GAAOkG,SAASvH,IAAKA,EAAKE,MAAOA,MAnIpD,GAAImB,GAASzL,EAAGoX,WAAWpX,EAAGwL,cAE9BC,GAAOiQ,cAAc,SAAUrY,GAC3B,MAAOA,IAGX,IACIsnB,GADAC,EAAW9qB,EAAG+qB,IAAItI,OAGlBiI,IAyNJ,OAvNA/e,GAAO+E,SAAW,WACd/E,EAAOsE,UACP,KAAK,GAAIjJ,GAAa,EAAGA,EAAa0jB,EAAUxoB,SAAU8E,EAAY,CAClE,GAAIgkB,GAASrf,EAAOqE,MAAM5G,OAAO,KAC5BiD,KAAK,QAAS,QAAUrF,GAEzB8iB,EAAUkB,EAAOrb,UAAU,KAAOua,EAAQljB,GAAY6B,MACrD3B,KAAKgjB,EAAQljB,GAAYE,MACzBoN,QACAlL,OAAO,KACPiD,KAAK,QAAS6d,EAAQljB,GAAY6B,KAEvCihB,GACK1gB,OAAO,QACPiD,KAAK,OAAQ,SACbA,KAAK,IAAKye,GAEfhB,EAAQ1gB,OAAO,SAEfuR,EAAS3T,GAEb6jB,GAAkB,GAsFtBlf,EAAO0F,QAAU,SAAU9N,EAAGyD,GAC1B,GAAIikB,GAAiBf,EAAQljB,GAAYsK,YAAY/N,EACrDrD,GAAGyJ,OAAOE,QAAQ,WACd8B,EAAOlG,OAAOwlB,GACd/qB,EAAGmC,UAAUsJ,EAAOiE,iBAc5BjE,EAAOmF,SAAW,WACd,IAAK,GAAI9J,GAAa,EAAGA,EAAa0jB,EAAUxoB,SAAU8E,EACtD2T,EAAS3T,GACN6jB,GACClf,EAAOqE,MAAML,UAAU,KAAOua,EAAQljB,GAAY6B,KAAO,SAASwD,KAAK,IAAKye,EAGpFD,IAAkB,GAuBtBlf,EAAOuf,eAAiB,SAAUC,EAAMtiB,EAAMyI,GAC1C,IAAK,GAAIrP,GAAI,EAAGA,EAAIyoB,EAAUxoB,SAAUD,EACpC,GAAIyoB,EAAUzoB,GAAG4G,MAAQA,EAGrB,MAFA6hB,GAAUzoB,GAAGiF,KAAOikB,EACpBT,EAAUzoB,GAAGqP,YAAcA,EACpB3F,CAIf,OADA+e,GAAUjpB,MAAMoH,KAAMA,EAAM3B,KAAMikB,EAAM7Z,YAAaA,IAC9C3F,GASXA,EAAOyf,WAAa,SAAUA,GAG1B,MAFAN,GAASM,WAAWA,GACpBP,GAAkB,EACXlf,GAaXA,EAAO0f,SAAW,WACd,MAAOX,IAUX/e,EAAO2f,cAAgB,SAAUziB,GAG7B,IAAK,GAFDwiB,MAEKppB,EAAI,EAAGA,EAAIyoB,EAAUxoB,SAAUD,EAAG,CACvC,GAAIiG,GAAQwiB,EAAUzoB,EAClBiG,GAAMW,MAAQA,GACdwiB,EAAS5pB,KAAKyG,GAMtB,MAFAwiB,GAAYW,EAEL1f,GAGJA,EAAOI,OAAO/C,EAAQ4G,IA4CjC1P,EAAGqrB,cAAgB,SAASnf,EAAMwD,GAuC9B,QAAS4b,KAIL,MAHA9V,GAAK/J,EAAOzC,OAAO,KAAOuiB,GACtB/V,EAAGvM,UACHuM,EAAK/J,EAAOqE,MAAM5G,OAAO,KAAKiD,KAAK,QAASof,IACzC/V,EAGX,QAASgW,KACL,GAAIxkB,GAAOykB,GAEXC,GAAQvP,QAAQ,SAASwP,GACrB,GAAIC,GAAQC,EAASF,EAAO3kB,GAExB8kB,EAASF,EAAM5iB,OAAO,UAAYqV,EAElCyN,GAAO7iB,UACP6iB,EAASF,EAAM1iB,OAAO,UACjBiD,KAAK,QAASkS,GACdlS,KAAK,IAAK,GACVA,KAAK,OAAQV,EAAO+T,iBACpB1N,GAAG,QAASrG,EAAO0F,UAE5BnR,EAAGqC,WAAWypB,EAAQrgB,EAAO6E,sBACxBnE,KAAK,IAAK,SAAS9I,GAChB,MAAOoI,GAAOmT,QAAQvb,KAG9BoI,EAAOsT,cAAc6M,GAErBngB,EAAO2T,eAAewM,KAI9B,QAASH,KACL,GAAIzkB,KAIJ,OAHAyE,GAAOzK,QAAQuH,MAAM4T,QAAQ,SAASoJ,GAClCve,EAAKyE,EAAO2F,cAAcmU,IAAUA,IAEjCve,EAGX,QAAS6kB,GAASF,EAAO3kB,GACrB,GAAI+kB,GAAkB3N,EAAoB,IAAMpe,EAAGuD,MAAMmF,SAASijB,EAAMhjB,MAEpEijB,EAAQpW,EAAGxM,OAAO,KAAOhJ,EAAGuD,MAAMmF,SAASijB,EAAMhjB,MAUrD,OARIijB,GAAM3iB,UACN2iB,EAAQpW,EAAGtM,OAAO,KACbiD,KAAK,QAAS4f,GACd5f,KAAK,YAAa,aAAewf,EAAMzkB,EAAI,IAAMykB,EAAMxkB,EAAI,MAGpEykB,EAAMrG,MAAMve,EAAK2kB,EAAMhjB,OAEhBijB,EAWX,QAASI,KACL,GAAIhlB,GAAOykB,GAEXC,GAAQvP,QAAQ,SAASwP,GACrB,GAAIC,GAAQC,EAASF,EAAO3kB,GAExB8kB,EAASF,EAAM5iB,OAAO,UAAYqV,EAEtCre,GAAGqC,WAAWypB,EAAQrgB,EAAO6E,sBACxBnE,KAAK,IAAK,SAAS9I,GAChB,MAAOoI,GAAOmT,QAAQvb,KAEzB8I,KAAK,OAAQV,EAAOgU,mBAEzBhU,EAAOwT,eAAe2M,GAEtBngB,EAAO4T,eAAeuM,KAvH9B,GAKIpW,GALA+V,EAAuB,iBACvBnN,EAAoB,OACpBC,EAAe,SAEf5S,EAASzL,EAAGie,oBAAoBje,EAAGwL,eAEnCkgB,IAoJJ,OAlJAjgB,GAAO6E,mBAAmB,KAE1B7E,EAAOgT,oBAAoB,SAASpb,GAChC,MAAOA,GAAEiH,QAUbmB,EAAOkgB,MAAQ,SAAShjB,EAAMzB,EAAGC,GAE7B,MADAukB,GAAQnqB,MAAMoH,KAAMA,EAAMzB,EAAGA,EAAGC,EAAGA,IAC5BsE,GAGXA,EAAO+E,SAAW,WASd,MARAgF,GAAK8V,IAEL7f,EAAOzF,IAAIoN,OAAO3H,EAAO6S,WAAY7S,EAAOW,QAAUX,EAAO8T,0BAE7DiM,IAEA/f,EAAO8O,qBAEA9O,GA4DXA,EAAOmF,SAAW,WAKd,MAJAob,KAEAvgB,EAAO8O,qBAEA9O,GAuBXA,EAAOwgB,MAAQ,SAASC,GACpB,GAAGA,EAAK,CACJ,GAAIC,GAAS1gB,EAAOzC,OAAO,KAAOhJ,EAAGE,UAAUE,kBAE5C+rB,GAAOljB,UACNkjB,EAAS1gB,EAAOqE,MACX5G,OAAO,KACPiD,KAAK,QAASnM,EAAGE,UAAUE,mBAEpC,IAAIgsB,GAAYD,EAAOjjB,OAAO,QACzBiD,KAAK,IAAK,IACVA,KAAK,IAAK,GAEfggB,GACKjjB,OAAO,QACPiD,KAAK,QAASV,EAAOW,SACrBD,KAAK,SAAUV,EAAOY,UACtByF,GAAG,YAAa,WACb,GAAIua,GAAWvsB,EAAGwsB,MAAMH,EAAOI,QAC3B5nB,EAAM0nB,EAAS,GAAK,KAAOA,EAAS,EACxCD,GAAUhc,KAAKzL,SAGvB8G,GAAOgE,UAAU,UAAUO,QAG/B,OAAOvE,IAGXA,EAAOI,OAAOK,EAAMwD,GAEbjE,GAyBXzL,EAAGwsB,SAAW,SAAU1jB,EAAQ4G,GAwB5B,QAAS+c,KACL,IAAK3Z,GAAM4Z,EAAW,CAClB,GAAIrX,GAASvV,EAAGuV,OAAOsX,EAAUlhB,EAAOK,gBACpCuJ,GAAO,GAAK,IAAGA,EAAO,GAAK,GAC/BvC,EAAKhT,EAAGyT,MAAMmB,SAASzR,OAAOoS,GACzBjC,OAAO,EAAG3H,EAAO+G,mBAEtBc,EAAOC,MAAMT,IAIrB,QAAS8Z,KACL,GAAIC,GAAQrX,EAAGxM,OAAO,SAEtByjB,KAEII,EAAM5jB,UACN4jB,EAAQrX,EAAGtM,OAAO,KAAKiD,KAAK,QAAS,QAChCA,KAAK,YAAa,gBAAkBV,EAAOgH,kBAAoB,MAExEzS,EAAGqC,WAAWwqB,EAAOphB,EAAO6E,sBACvB6F,KAAK7C,GA6Bd,QAASwZ,KACLtX,EAAG/F,UAAU,UACRzG,OAAO,kBACPgH,SAELwF,EAAG/F,UAAU,UACRvG,OAAO,QACPiD,KAAK,QAAS,aACdA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,KAAM,WACR,OAAQV,EAAOgH,oBAI3B,QAASmN,KACL+M,EAAWlhB,EAAO0U,qBAElByM,IACAE,GAEA,IAAItF,GAAOhS,EAAG/F,UAAU,KAAOsd,GAC1B/lB,KAAK2lB,EAEVrM,GAAekH,GACfhH,EAAegH,GACfjH,EAAeiH,GAGnB,QAASlH,GAAekH,GACpB,GAAIE,GAAWF,EAAKpT,QACflL,OAAO,KACPiD,KAAK,QAAS,SAAU9I,EAAGtB,GACxB,MAAOgrB,GAAe,KAAOhrB,GAGrC2lB,GAASxe,OAAO,QAAQiD,KAAK,QAAS,GAEtC2U,EAAa4G,GACbhG,EAAa8F,GAGjB,QAAShH,GAAegH,GACpBA,EAAKlT,OAAOtE,SAGhB,QAASuQ,GAAeiH,GACpB,GAAI5jB,GAAI+oB,EAAS3qB,OAEbqK,GAAUZ,EAAOgH,mBAAqB7O,EAAI,GAAK8f,GAAQ9f,EAEvDopB,EAAOxF,EAAKrb,KAAK,YAAY,SAAU9I,EAAGtB,GACtC,MAAO,iBAAmBA,EAAI,GAAK2hB,EAAO3hB,EAAIsK,GAAU,MACzDrD,OAAO,QACTmD,KAAK,SAAUE,GACfF,KAAK,OAAQV,EAAOgQ,UACpB3J,GAAG,QAASX,GACZxB,QAAQ,aAAc,SAAUtM,GAC7B,MAAQoI,GAAOsF,aAAgBtF,EAAOwhB,cAAc5pB,IAAK,IAE5DsM,QAAQ,WAAY,SAAUtM,GAC3B,MAAQoI,GAAOsF,YAAetF,EAAOwhB,cAAc5pB,IAAK,GAGhErD,GAAGqC,WAAW2qB,EAAMvhB,EAAO6E,sBACtBnE,KAAK,QAAS,SAAU9I,GACrB,GAAI2gB,GAA6BlR,EAArBA,EAAG,KAAO6Q,IAAc,EAAQ,EAC5C,OAAO7gB,MAAKC,IAAIihB,EAAQlR,EAAGrH,EAAOK,gBAAgBzI,OAErD8I,KAAK,YAAa+gB,GAEvBrM,EAAa2G,GACb9F,EAAa8F,GAGjB,QAAS3G,GAAa2G,GACd/b,EAAOmG,gBACP4V,EAAK/X,UAAU,SAASO,SACxBwX,EAAKte,OAAO,SAASkH,KAAK,SAAU/M,GAChC,MAAOoI,GAAOkG,QAAQtO,MAKlC,QAASyd,GAAa4G,GACdjc,EAAOiG,eACPgW,EAASxe,OAAO,QACX4I,GAAG,QAASX,GAIzB,QAASuQ,GAAa8F,GAClB,GAAI/b,EAAOiG,cAAe,CACtB,GAAIyb,GAAM3F,EAAKxe,OAAO,QACjBmD,KAAK,IAAKihB,GACVjhB,KAAK,IAAKkhB,GACVvb,GAAG,QAASX,GACZhF,KAAK,QAAS,SAAU9I,EAAGtB,GACxB,MAAOgrB,GAAe,KAAOhrB,IAEhCqO,KAAK,SAAU/M,GACZ,MAAOoI,GAAOgG,QAAQpO,IAE9BrD,GAAGqC,WAAW8qB,EAAK1hB,EAAO6E,sBACrBnE,KAAK,YAAa+gB,IAI/B,QAAS/b,GAAQ9N,GACboI,EAAO0F,QAAQ9N,GAGnB,QAAS6pB,GAAW7pB,GAChB,GAAI6D,GAAI4L,EAAGrH,EAAOK,gBAAgBzI,IAC9BiqB,EAAKxa,EAAG,GACRpQ,EAAIwE,EAAIomB,EAAKA,EAAKpmB,CACtB,OAAO,aAAaxE,EAAE,MA7L1B,GAAI8S,GAYA1C,EAEA4Z,EAIAC,EAhBAS,EAAgB,GAEhBC,EAAgB,GAEhB3J,EAAO,EAEPqJ,EAAe,MAEfthB,EAASzL,EAAG0iB,OAAO1iB,EAAGgS,WAAWhS,EAAGoX,WAAWpX,EAAGwL,iBAMlD8H,EAASxT,EAAGgQ,IAAI+H,OAAOrE,OAAO,SA0OlC,OAtOA/H,GAAO8hB,QAAU9hB,EAAOmX,IA0BxBnX,EAAO+E,SAAW,WASd,MARA/E,GAAOsE,WAEPyF,EAAK/J,EAAOqE,MACP5G,OAAO,KACPiD,KAAK,YAAa,aAAeV,EAAO6G,UAAUD,KAAO,IAAM5G,EAAO6G,UAAUJ,IAAM,KAE3F0N,IAEOnU,GAGXA,EAAOkG,MAAM,SAAUtO,GACnB,MAAOoI,GAAO2F,cAAc/N,GAAK,KAAOoI,EAAOK,gBAAgBzI,KAGnEoI,EAAOgG,MAAM,SAAUpO,GACnB,MAAOoI,GAAO2F,cAAc/N,KAGhCoI,EAAOvE,EAAI,SAASA,GAChB,MAAI9C,WAAUpC,QACd8Q,EAAK5L,EACEuE,GAFsBqH,GA6HjCrH,EAAOmF,SAAW,WAEd,MADAgP,KACOnU,GAGXA,EAAO2N,MAAQ,WACX,MAAO9F,IAQX7H,EAAO2Y,IAAM,SAAUzY,GACnB,MAAKvH,WAAUpC,QACf0hB,EAAO/X,EACAF,GAFuBiY,GAWlCjY,EAAOmH,SAAW,SAAUzO,GACxB,MAAKC,WAAUpC,QACf0qB,EAAYvoB,EACLsH,GAFuBihB,GAUlCjhB,EAAO+hB,aAAe,SAAUlpB,GAC5B,MAAKF,WAAUpC,QACforB,EAAgB9oB,EACTmH,GAFuB2hB,GAUlC3hB,EAAOgiB,aAAe,SAAUnpB,GAC5B,MAAKF,WAAUpC,QACfqrB,EAAgB/oB,EACTmH,GAFuB4hB,GAKlC5hB,EAAOwhB,cAAgB,SAAU5pB,GAC7B,MAAOoI,GAAOsF,UAAUtF,EAAO2F,cAAc/N,KAG1CoI,EAAOI,OAAO/C,EAAQ4G,IAgBjC1P,EAAG6R,OAAS,WAkDR,QAAS6b,KACL,MAAOhK,GAAOiK,EAlDlB,GAGI9X,GAMAL,EATAoY,EAAY,EAEZrgB,KAEAuF,EAAK,EACL0B,EAAK,EACLmZ,EAAc,GACdjK,EAAO,CAsFX,OAlFAnW,GAAQzE,OAAS,SAAU+E,GACvB,MAAKzJ,WAAUpC,QACf6T,EAAUhI,EACHN,GAFuBsI,GAKlCtI,EAAQrL,OAAS,WACbsT,EAAKK,EAAQ/F,MAAM5G,OAAO,KACrBiD,KAAK,QAAS,aACdA,KAAK,YAAa,aAAe2G,EAAK,IAAM0B,EAAK,IAEtD,IAAIqZ,GAAYrY,EAAG/F,UAAU,oBACxBzI,KAAK6O,EAAQvE,eACb8C,QACAlL,OAAO,KACPiD,KAAK,QAAS,kBACdA,KAAK,YAAa,SAAU9I,EAAGtB,GAC5B,MAAO,eAAiBA,EAAI2rB,IAAqB,MAEpD5b,GAAG,YAAa,SAASzO,GAClBwS,EAAQtE,gBAAgBlO,KAE/ByO,GAAG,WAAY,SAAUzO,GAClBwS,EAAQrE,YAAYnO,IAGhCwqB,GACK3kB,OAAO,QACHiD,KAAK,QAASwhB,GACdxhB,KAAK,SAAUwhB,GACfxhB,KAAK,OAAQ,SAAS9I,GAAG,MAAOA,GAAEkG,QAE3CskB,EAAU3kB,OAAO,QACRkH,KAAK,SAAS/M,GAAG,MAAOA,GAAEsF,OAC1BwD,KAAK,IAAKwhB,EAAcC,GACxBzhB,KAAK,IAAK,WAAW,MAAOwhB,GAAc,GAAK9oB,KAAKipB,aAAajpB,KAAKipB,aAAa,IAAM,EAAI,KAW1GvgB,EAAQrG,EAAI,SAAUA,GAClB,MAAK9C,WAAUpC,QACf8Q,EAAK5L,EACEqG,GAFuBuF,GASlCvF,EAAQpG,EAAI,SAAUA,GAClB,MAAK/C,WAAUpC,QACfwS,EAAKrN,EACEoG,GAFuBiH,GASlCjH,EAAQ6W,IAAM,SAAUA,GACpB,MAAKhgB,WAAUpC,QACf0hB,EAAOU,EACA7W,GAFuBmW,GASlCnW,EAAQwgB,WAAa,SAAUhf,GAC3B,MAAK3K,WAAUpC,QACf2rB,EAAc5e,EACPxB,GAFuBogB,GAK3BpgB,GAGXvN,EAAG0iB,OAAS,SAAUjX,GAElB,GAAIuiB,GAAOrK,IAEPsK,EAAe,SAEfC,EAAiB,SAAUC,GAC3B,GAAIC,GAAatuB,EAAGuuB,IAAIF,EAAS1iB,EAAOK,iBACpCwiB,EAAU7iB,EAAOzK,QAAQuH,MACzBgmB,EAAazuB,EAAGuuB,IAAIC,EAAS7iB,EAAOK,iBACpC0iB,EAAUL,EAAQlb,IAAIxH,EAAO2F,eAC7Bqd,EAAUH,EAAQrb,IAAIxH,EAAO2F,eAC7Bsd,EAAS5uB,EAAGmc,IAAIuS,GAChBG,EAASF,EAAQlpB,OAAO,SAASlC,GAAG,OAAQqrB,EAAOxtB,IAAImC,IAC3D8qB,GAAQ5sB,MAAMotB,OAAUA,EAAOvkB,IAAO6jB,EAAc3jB,MAASikB,EAAaH,IAuD9E,OApDA3iB,GAAO0U,mBAAqB,WACxB,GAAYwD,KAARqK,EACA,MAAOviB,GAAO0D,sBAEd,IAAIgf,GAAU1iB,EAAOzK,QAAQkR,IAAI8b,EAGjC,OAFAG,GAAU1iB,EAAO0D,qBAAqBgf,GAClCD,GAAgBA,EAAeC,GAC5BA,GAIf1iB,EAAOmX,IAAM,SAAUze,GACnB,MAAKC,WAAUpC,QACfgsB,EAAO7pB,EACAsH,GAFuBuiB,GASlCviB,EAAOmjB,YAAc,SAAUzqB,GAC3B,MAAKC,WAAUpC,QACfisB,EAAe9pB,EACRsH,GAFuBwiB,GAgBlCxiB,EAAOojB,cAAgB,SAAU1qB,GAC7B,MAAKC,WAAUpC,QACfksB,EAAiB/pB,EACVsH,GAFuByiB,GAKlCluB,EAAG6D,SAAS4H,EAAQ,UAAW,SAAUpI,GACjCA,EAAEsrB,QACFtrB,EAAEsrB,OAAOxS,QAAQ,SAAStL,GACtBpF,EAAOlG,OAAOsL,KAEtBpF,EAAOqjB,SAASzrB,KAGboI,GAgCXzL,EAAG+uB,cAAgB,SAAUjmB,EAAQ4G,GACjC,GAAIsf,GAAa,iBACb1I,EAAgBxmB,EAAGsF,OAAO,OAC1BqG,EAASzL,EAAGwL,aAsDhB,OApDAC,GAAOqB,cAMPrB,EAAOnB,MAAQ,WACV,GAAI2kB,GAASxjB,EAAOzK,QAAQuH,KAAOkD,EAAOzK,QAAQuH,MAAM,IAAMkD,EAAOzK,QAAQsJ,OAC7E,OAAOmB,GAAOK,gBAAgBmjB,IAGnCxjB,EAAO6E,mBAAmB,KAE1B7E,EAAO+E,SAAW,WACd,GAAI0e,GAAWzjB,EAAOnB,QAClB6kB,EAAW1jB,EAAOgE,UAAU,IAAIuf,EAmBpC,OAjBGG,GAAKlmB,UACJkmB,EAAOA,EAAKnoB,MAAM,IACboN,QACAlL,OAAO,QACPiD,KAAK,QAAS6iB,IAEvBG,EAAK9sB,aACAE,SAASkJ,EAAO6E,sBAChB8e,KAAK,eACLC,MAAM,OAAQ,WACX,GAAIC,GAASxvB,EAAGyvB,kBAAkB1qB,KAAK2qB,WAAa,EAAGN,EAEvD,OADArqB,MAAK2qB,UAAYN,EACV,SAAU5M,GACbzd,KAAK4qB,YAAchkB,EAAOikB,eAAeJ,EAAOhN,OAIrD7W,GAGXA,EAAOmF,SAAW,WACd,MAAOnF,GAAO+E,YAQlB/E,EAAOikB,aAAe,SAAUvrB,GAC5B,MAAKC,WAAUpC,QACfskB,EAAgBniB,EACTsH,GAFuB6a,GAK3B7a,EAAOI,OAAO/C,EAAQ4G,IAK1B1P,EACkB,kBAAX2vB,SAAyBA,OAAOC,IACtCD,QAAQ,KAAM,eAAgB9vB,GACN,gBAAXgwB,SAAuBA,OAAOC,QAI3CD,OAAOC,QAAUjwB,EAAIkwB,QAAQ,MAAOA,QAAQ,eAAehwB,aAE3D8E,KAAK7E,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","clear","list","registerChart","hasChart","deregisterAllCharts","filterAll","charts","i","length","renderAll","render","redrawAll","redraw","transition","selections","duration","callback","undefined","s","Function","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","__dc_flag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","GroupStack","initializeDataLayer","_dataLayers","_defaultAccessor","_groups","setDataPoint","layerIndex","pointIndex","data","getDataPoint","x","y","dataPoint","addGroup","accessor","getGroupByIndex","index","getAccessorByIndex","size","setDefaultAccessor","retriever","getDataLayers","toLayers","layers","layer","points","dataPoints","j","isNumber","max","groupMax","all","groupMin","min","nameToId","name","toLowerCase","appendOrSelect","parent","element","select","empty","append","createLegendable","legendable","_getGroupName","colors","color","safeNumber","events","current","trigger","closure","delay","setTimeout","cumulative","Base","_keyIndex","_map","sanitizeKey","key","getValueByKey","value","setValueByKey","indexOfKey","addToIndex","getKeyByIndex","Sum","minus","cumulativeSum","keyIndex","cumulativeValue","k","prototype","CountUnique","hashSize","hash","hasOwnProperty","count","cumulativeCount","baseChart","_chart","groupName","g","c","anchor","valueAccessor","a","generateSvg","_svg","root","attr","width","height","removeFilter","_filters","splice","applyFilters","_invokeFilteredListener","addFilter","resetFilters","dataSet","dimension","fs","_filterHandler","runAllRenderlets","_renderlets","_dimension","_group","_anchor","_root","_legend","_width","_height","_keyAccessor","_valueAccessor","_ordering","p","_label","_renderLabel","_title","_renderTitle","_transitionDuration","_filterPrinter","_chartGroup","NULL_LISTENER","_listeners","preRender","postRender","preRedraw","postRedraw","filtered","zoomed","filterFunction","w","h","expireCache","_setGroupName","ordering","computeOrderedGroups","arr","slice","sort","quicksort","by","selectAll","chartGroup","classed","anchorName","id","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","result","doRender","activateRenderlets","event","each","doRedraw","f","_invokeZoomedListener","hasFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","keyAccessor","filterHandler","legendables","legendHighlight","legendReset","label","renderLabel","title","renderTitle","legend","on","listener","marginable","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","coordinateGridChart","prepareXAxis","elasticX","isOrdinal","_x","xAxisMin","xAxisMax","map","kv","prepareOrdinalXAxis","range","xAxisLength","_xAxis","scale","orient","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","yAxisX","ticks","tickValues","lines","linesGEnter","enter","xAxisY","exit","prepareYAxis","_y","elasticY","linear","yAxisMin","yAxisMax","rangeRound","yAxisHeight","_yAxis","renderHorizontalGridLines","HORIZONTAL_CLASS","_renderHorizontalGridLine","brushHeight","brushing","extent","extendBrush","redrawBrush","_g","brushIsEmpty","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","enableMouseZoom","_mouseZoomable","call","behavior","zoom","scaleExtent","_zoomScale","focus","updateRangeSelChart","_rangeChart","refDom","_zoomOutRestrict","origDom","xOriginalDomain","newDom","hasRangeSelected","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABLEL_PADDING","colorChart","category10","_chartBodyG","_xOriginalDomain","_xAxisLabel","_yAxisLabel","_round","_unitCount","_focusChart","axis","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_brushOn","_refocused","rescale","xUnitCount","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xUnits","xAxis","xAxisPadding","increment","currentPosition","renderXAxis","axisXG","axisXLab","xAxisLabel","axisYLab","pad","renderYAxis","axisYG","yAxisLabel","yAxis","yAxisPadding","_filter","renderBrush","gBrush","resizeHandlePath","fadeDeselectedArea","clipPadding","plotData","subRender","brushOn","refocused","_colors","category20c","_colorDomain","_colorCalculator","minValue","maxValue","isNaN","colorsLength","denominator","colorValue","_colorAccessor","colorCalculator","getColor","colorAccessor","colorDomain","stackableChart","flattenStack","test","xDomain","domainSet","set","stackLayers","forEach","concat","getKeyFromData","groupIndex","getKeyAccessorByIndex","getValueFromData","getValueAccessorByIndex","calculateDataPointMatrix","dataIndex","_groupStack","_allGroups","_allValueAccessors","_allKeyAccessors","_stackLayers","_stackLayout","layout","stack","offset","order","values","p2","allGroups","allValueAccessors","y0","allKeyAccessors","calculateDataPointMatrixForAll","groups","getChartStack","stackLayout","items","abstractBubbleChart","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","labelFunction","labelOpacity","doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","initBubbleColor","updateBubbleColor","isSelectedNode","pieChart","drawChart","pie","calculateDataPie","_radius","arc","buildArcs","pieData","assembleCappedData","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","safeArc","attrTween","tweenPie","labelsEnter","innerRadius","outerRadius","centroid","sliceHasNoData","sliceTooSmall","updateSlicePaths","updateLabels","updateTitles","slicePaths","isSelectedSlice","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","interpolate","t","path","DEFAULT_MIN_ANGLE_FOR_LABEL","_innerRadius","capped","slicesCap","cap","cx","cy","radius","minAngleForLabel","barChart","barHeight","renderBars","bars","_centerBar","_barWidth","calculateBarWidth","numberOfBars","getNumberOfBars","_gap","Infinity","MIN_BAR_WIDTH","_numberOfBars","DEFAULT_GAP_BETWEEN_BARS","_rescale","start","end","xValue","centerBar","gap","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","safeD","drawArea","_renderArea","area","drawDots","TOOLTIP_G_CLASS","createRefLines","dots","DOT_CIRCLE_CLASS","datum","_dotRadius","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","DEFAULT_DOT_RADIUS","renderArea","dotRadius","dataCount","_formatNumber","dataTable","renderGroups","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","_columns","html","_sort","_sortBy","entries","_size","nest","sortKeys","_order","sortValues","renderRows","rows","ROW_CSS_CLASS","rowEnter","COLUMN_CSS_CLASS","ascending","columns","sortBy","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","generateChildG","child","SUB_CHART_CLASS","getAllYAxisMinFromChildCharts","allMins","_children","getAllYAxisMaxFromChildCharts","allMaxes","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","__generateG","compose","children","childChart","childLegendables","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","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","bubbleNodeClass","updateBubbles","debug","flag","debugG","debugText","position","mouse","node","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rect","isSelectedRow","translateX","lab","_labelOffsetX","_labelOffsetY","x0","rowsCap","labelOffsetX","labelOffsetY","legendItemHeight","_itemHeight","LABEL_GAP","itemEnter","clientHeight","itemHeight","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","others","othersLabel","othersGrouper","_onClick","numberDisplay","SPAN_CLASS","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","textContent","formatNumber","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 112c38625..4a8b4c232 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "dc", "filename": "dc.min.js", - "version": "1.7.2", + "version": "1.7.3", "license": "Apache-2.0", "copyright": "2014", "description": "A multi-dimensional charting library built to work natively with crossfilter and rendered using d3.js ", diff --git a/web/docs/index.html b/web/docs/index.html index 5ccacb3e2..e86301338 100644 --- a/web/docs/index.html +++ b/web/docs/index.html @@ -112,7 +112,7 @@ -

Version 1.7.2

+

Version 1.7.3

The entire dc.js library is scoped under dc name space. It does not introduce anything else into the global name space.

    @@ -203,16 +203,16 @@

    .select(selector)

    Execute in scope d3 single selection using the given selector and return d3 selection result. Roughly the same as:

    d3.select("#chart-id").select(selector);

    This function is not chainable since it does not return a chart instance; however the d3 selection result is chainable -from d3’s perspective.

    +from d3's perspective.

    .selectAll(selector)

    Execute in scope d3 selectAll using the given selector and return d3 selection result. Roughly the same as:

    d3.select("#chart-id").selectAll(selector);

    This function is not chainable since it does not return a chart instance; however the d3 selection result is -chainable from d3’s perspective.

    +chainable from d3's perspective.

    .anchor([anchorChart/anchorSelector], [chartGroup])

    -

    Set the svg root to either be an existing chart’s root or the first element returned from a d3 css string selector. Optionally registers the chart within the chartGroup. This class is called internally on chart initialization, but be called again to relocate the chart. However, it will orphan any previously created SVG elements.

    +

    Set the svg root to either be an existing chart's root or the first element returned from a d3 css string selector. Optionally registers the chart within the chartGroup. This class is called internally on chart initialization, but be called again to relocate the chart. However, it will orphan any previously created SVG elements.

    .anchorName()

    -

    Return the dom ID for chart’s anchored location

    +

    Return the dom ID for chart's anchored location

    .root([rootElement])

    Returns the root element where a chart resides. Usually it will be the parent div element where svg was created. You can also pass in a new root element however this is usually handled as part of the dc internal. Resetting root element @@ -222,7 +222,7 @@

    .svg([svgElement])

    handled as part of the dc internal. Resetting svg element on a chart outside of dc internal might have unexpected consequences.

    .resetSvg()

    -

    Remove the chart’s SVG elements from the dom and recreate the container SVG element.

    +

    Remove the chart's SVG elements from the dom and recreate the container SVG element.

    .filterPrinter([filterPrinterFunction])

    Set or get filter printer function. Filter printer function is used to generate human friendly text for filter value(s) associated with the chart instance. By default dc charts shipped with a default filter printer implementation dc.printers.filter @@ -230,8 +230,8 @@

    .filterPrinter([filterPrinterFunc

    .turnOnControls() & .turnOffControls()

    Turn on/off optional control elements within the root element. dc.js currently support the following html control elements.

      -
    • root.selectAll(“.reset”) elements are turned on if the chart has an active filter. This type of control elements are usually used to store reset link to allow user to reset filter on a certain chart. This element will be turned off automatically if the filter is cleared.
    • -
    • root.selectAll(“.filter”) elements are turned on if the chart has an active filter. The text content of this element is then replaced with the current filter value using the filter printer function. This type of element will be turned off automatically if the filter is cleared.
    • +
    • root.selectAll(".reset") elements are turned on if the chart has an active filter. This type of control elements are usually used to store reset link to allow user to reset filter on a certain chart. This element will be turned off automatically if the filter is cleared.
    • +
    • root.selectAll(".filter") elements are turned on if the chart has an active filter. The text content of this element is then replaced with the current filter value using the filter printer function. This type of element will be turned off automatically if the filter is cleared.

    .transitionDuration([duration])

    Set or get animation transition duration(in milliseconds) for specific chart instance. Default duration is 750ms.

    @@ -243,7 +243,7 @@

    .redraw()

    Calling redraw will cause the chart to re-render delta in data change incrementally. If there is no change in the underlying data dimension then calling this method will have no effect on the chart. Most of the chart interaction in dc library will automatically trigger this method through its internal event engine, therefore you only need to manually -invoke this function if data is manipulated outside of dc’s control; for example if data is loaded on a periodic basis +invoke this function if data is manipulated outside of dc's control; for example if data is loaded on a periodic basis in the background using crossfilter.add().

    .hasFilter([filter])

    Check whether is any active filter or a specific filter is associated with particular chart instance. @@ -256,7 +256,7 @@

    .filter([filterValue])

    chart.filter(18);

    .filters()

    Return all current filters. This method does not perform defensive cloning of the internal filter array before returning -therefore any modification of returned array will affact chart’s internal filter storage.

    +therefore any modification of returned array will affact chart's internal filter storage.

    .filterHandler([function])

    Set or get filter handler. Filter handler is a function that performs the filter action on a specific dimension. Using custom filter handler give you the flexibility to perform additional logic before or after filtering.

    @@ -338,17 +338,17 @@

    .legend([dc.legend])

    chart.legend(dc.legend().x(400).y(10).itemHeight(13).gap(5))

    # Listeners

    All dc chart instance supports the following listeners.

    -

    .on(“preRender”, function(chart){…})

    +

    .on("preRender", function(chart){...})

    This listener function will be invoked before chart rendering.

    -

    .on(“postRender”, function(chart){…})

    -

    This listener function will be invoked after chart finish rendering including all renderlets’ logic.

    -

    .on(“preRedraw”, function(chart){…})

    +

    .on("postRender", function(chart){...})

    +

    This listener function will be invoked after chart finish rendering including all renderlets' logic.

    +

    .on("preRedraw", function(chart){...})

    This listener function will be invoked before chart redrawing.

    -

    .on(“postRedraw”, function(chart){…})

    -

    This listener function will be invoked after chart finish redrawing including all renderlets’ logic.

    -

    .on(“filtered”, function(chart, filter){…})

    +

    .on("postRedraw", function(chart){...})

    +

    This listener function will be invoked after chart finish redrawing including all renderlets' logic.

    +

    .on("filtered", function(chart, filter){...})

    This listener function will be invoked after a filter is applied, added or removed.

    -

    .on(“zoomed”, function(chart, filter){…})

    +

    .on("zoomed", function(chart, filter){...})

    This listener function will be invoked after a zoom is triggered.

    # Marginable

    Marginable is a mixin that provides margin utility functions for both the Row Chart and Coordinate Grid Charts.

    @@ -426,7 +426,7 @@

    .xAxisPadding([padding])

    Set or get x axis padding when elastic x axis is turned on. The padding will be added to both end of the x axis if and only if elasticX is turned on otherwise it will be simply ignored.

      -
    • padding - could be integer or percentage in string (e.g. “10%”). Padding can be applied to number or date. +
    • padding - could be integer or percentage in string (e.g. "10%"). Padding can be applied to number or date. When padding with date, integer represents number of days being padded while percentage string will be treated as number.
    @@ -453,7 +453,7 @@

    .yAxisPadding([padding])

    Set or get y axis padding when elastic y axis is turned on. The padding will be added to the top of the y axis if and only if elasticY is turned on otherwise it will be simply ignored.

      -
    • padding - could be integer or percentage in string (e.g. “10%”). Padding can be applied to number or date. +
    • padding - could be integer or percentage in string (e.g. "10%"). Padding can be applied to number or date. When padding with date, integer represents number of days being padded while percentage string will be treated as number.
    @@ -471,7 +471,7 @@

    .brushOn([boolean])

    Turn on/off the brush based in-place range filter. When the brush is on then user will be able to simply drag the mouse across the chart to perform range filtering based on the extend of the brush. However turning on brush filter will essentially disable other interactive elements on the chart such as the highlighting, tool-tip, and reference lines on a chart. Default -value is “true”.

    +value is "true".

    .focus([range])

    Zoom this chart to focus on the given range. The given range should be an array containing only 2 element([start, end]) defining an range in x domain. If the range is not given or set to null, then the zoom will be reset. For focus to work elasticX has to be turned off otherwise focus will be ignored.

    chart.renderlet(function(chart){
    @@ -528,13 +528,13 @@ 

    .stack(group[, name, retriever])

    # Abstract Bubble Chart [Abstract] < Color Chart

    An abstraction provides reusable functionalities for any chart that needs to visualize data using bubbles.

    .r([bubbleRadiusScale])

    -

    Get or set bubble radius scale. By default bubble chart uses d3.scale.linear().domain([0, 100]) as it’s r scale .

    +

    Get or set bubble radius scale. By default bubble chart uses d3.scale.linear().domain([0, 100]) as it's r scale .

    .radiusValueAccessor([radiusValueAccessor])

    Get or set the radius value accessor function. The radius value accessor function if set will be used to retrieve data value for each and every bubble rendered. The data retrieved then will be mapped using r scale to be used as the actual bubble radius. In other words, this allows you to encode a data dimension using bubble size.

    .minRadiusWithLabel([radius])

    -

    Get or set the minimum radius for label rendering. If a bubble’s radius is less than this value then no label will be rendered. +

    Get or set the minimum radius for label rendering. If a bubble's radius is less than this value then no label will be rendered. Default value: 10.

    .maxBubbleRelativeSize([relativeSize])

    Get or set the maximum relative size of a bubble to the length of x axis. This value is useful when the radius differences among @@ -643,8 +643,8 @@

    .overlayGeoJson(json,
    • json - GeoJson feed
    • name - name of the layer
    • -
    • keyAccessor - accessor function used to extract “key” from the GeoJson data. Key extracted by this function should match +
    • keyAccessor - accessor function used to extract "key" from the GeoJson data. Key extracted by this function should match the keys generated in crossfilter groups.
    // insert a layer for rendering US states
    @@ -837,8 +837,8 @@ 

    .projection(projection)

    Set custom geo projection function. Available d3 geo projection functions. Default value: albersUsa.

    .geoJsons()

    -

    Return all GeoJson layers currently registered with thit chart. The returned array is a reference to this chart’s internal -registration data structure without copying thus any modification to this array will also modify this chart’s internal +

    Return all GeoJson layers currently registered with thit chart. The returned array is a reference to this chart's internal +registration data structure without copying thus any modification to this array will also modify this chart's internal registration.

    Return: An array of objects containing fields {name, data, accessor}

    @@ -848,7 +848,7 @@

    .removeGeoJson(name)

    # Bubble Overlay Chart [Concrete] < Abstract Bubble Chart < Base Chart

    Bubble overlay chart is quite different from the typical bubble chart. With bubble overlay chart you can arbitrarily place a finite number of bubbles on an existing svg or bitmap image (overlay on top of it), thus losing the typical x and y -positioning that we are used to whiling retaining the capability to visualize data using it’s bubble radius and +positioning that we are used to whiling retaining the capability to visualize data using it's bubble radius and coloring.

    Examples:

      @@ -877,7 +877,7 @@

      .svg(imageElement) - mandatory// set up underlying svg element chart.svg(d3.select("#chart svg"));

    .point(name, x, y) - mandatory

    -

    Set up a data point on the overlay. The name of a data point should match a specific “key” among data groups generated using keyAccessor. +

    Set up a data point on the overlay. The name of a data point should match a specific "key" among data groups generated using keyAccessor. If a match is found (point name <-> data group key) then a bubble will be automatically generated at the position specified by the function. x and y value specified here are relative to the underlying svg.

    # Row Chart [Concrete] < Color Chart < Base Chart

    diff --git a/web/js/dc.js b/web/js/dc.js index 021026fda..005cf6fca 100644 --- a/web/js/dc.js +++ b/web/js/dc.js @@ -1,5 +1,5 @@ /*! - * dc 1.7.2 + * dc 1.7.3 * http://dc-js.github.io/dc.js/ * Copyright 2012 Nick Zhu and other contributors * @@ -20,7 +20,7 @@ 'use strict'; /** -#### Version 1.7.2 +#### Version 1.7.3 The entire dc.js library is scoped under **dc** name space. It does not introduce anything else into the global name space. @@ -57,7 +57,7 @@ The API references will highlight the fact if a particular function is not chain **/ var dc = { - version: "1.7.2", + version: "1.7.3", constants: { CHART_CLASS: "dc-chart", DEBUG_GROUP_CLASS: "debug", @@ -5402,10 +5402,17 @@ return dc;} if(typeof define === "function" && define.amd) { define(["d3", "crossfilter"], _dc); } else if(typeof module === "object" && module.exports) { - // When using window global, window.crossfilter is a function - // When using require, the value will be an object with 'crossfilter' - // field, so we need to access it here. - module.exports = _dc(require('d3'), require('crossfilter').crossfilter); + var _d3 = require('d3'); + var _crossfilter = require('crossfilter'); + // When using npm + browserify, 'crossfilter' is a function, + // since package.json specifies index.js as main function, and it + // does special handling. When using bower + browserify, + // there's no main in bower.json (in fact, there's no bower.json), + // so we need to fix it. + if (typeof _crossfilter !== "function") { + _crossfilter = _crossfilter.crossfilter; + } + module.exports = _dc(_d3, _crossfilter); } else { this.dc = _dc(d3, crossfilter); }