1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-11 13:42:49 +01:00
invoiceninja/public/js/d3.min.js.map
2016-07-20 23:12:46 +02:00

1 line
590 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"sources":["d3.js"],"names":["d3_ascending","a","b","NaN","d3_number","x","isNaN","d3_bisector","compare","left","lo","hi","arguments","length","mid","right","d3_zipLength","d","d3_range_integerScale","k","d3_class","ctor","properties","key","Object","defineProperty","prototype","value","enumerable","e","d3_Map","d3_map_has","d3_map_prefix","this","d3_map_remove","d3_map_keys","keys","forEach","push","d3_map_size","size","charCodeAt","d3_map_prefixCode","d3_map_empty","d3_Set","d3_rebind","target","source","method","apply","d3_vendorSymbol","object","name","charAt","toUpperCase","substring","i","n","d3_vendorPrefixes","prefixName","d3_noop","d3_dispatch","d3_dispatch_event","dispatch","event","l","z","listeners","on","listenerByName","listener","get","slice","indexOf","concat","remove","set","d3_eventPreventDefault","d3","preventDefault","d3_eventSource","s","sourceEvent","d3_eventDispatch","of","thiz","argumentz","e1","e0","type","d3_selection","groups","d3_subclass","d3_selectionPrototype","d3_selection_selector","selector","d3_select","d3_selection_selectorAll","d3_selectAll","d3_selection_attr","attrNull","removeAttribute","attrNullNS","removeAttributeNS","space","local","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","ns","qualify","d3_collapse","trim","replace","d3_selection_classedRe","RegExp","requote","d3_selection_classes","split","d3_selection_classed","classedConstant","classedFunction","map","d3_selection_classedName","re","node","c","classList","add","getAttribute","lastIndex","test","d3_selection_style","priority","styleNull","style","removeProperty","styleConstant","setProperty","styleFunction","d3_selection_property","propertyNull","propertyConstant","propertyFunction","d3_selection_creator","ownerDocument","createElementNS","namespaceURI","d3_selection_dataNode","data","__data__","d3_selection_filter","d3_selectMatches","d3_selection_sortComparator","comparator","d3_selection_each","callback","j","m","group","d3_selection_enter","selection","d3_selection_enterPrototype","d3_selection_enterInsertBefore","enter","i0","j0","update","d3_selection_interrupt","lock","__transition__","active","d3_selection_on","capture","onRemove","removeEventListener","$","onAdd","wrap","d3_array","call","addEventListener","_","removeAll","match","d3_selection_onListener","filter","d3_selection_onFilters","d3_selection_onFilter","o","related","relatedTarget","compareDocumentPosition","d3_event_dragSuppress","d3_event_dragId","click","w","select","d3_window","d3_event_dragSelect","d3_documentElement","suppressClick","off","setTimeout","d3_mousePoint","container","changedTouches","svg","ownerSVGElement","createSVGPoint","point","d3_mouse_bug44083","scrollX","scrollY","append","position","top","margin","padding","border","ctm","getScreenCTM","f","pageX","y","pageY","clientX","clientY","matrixTransform","inverse","rect","getBoundingClientRect","clientLeft","clientTop","d3_behavior_dragTouchId","identifier","d3_behavior_dragTouchSubject","d3_behavior_dragMouseSubject","d3_sgn","d3_cross2d","d3_acos","π","Math","acos","d3_asin","halfπ","asin","d3_sinh","exp","d3_cosh","d3_tanh","d3_haversin","sin","d3_color","d3_hsl","h","d3_rgb_parse","d3_rgb_hsl","d3_hsl_rgb","v","m1","m2","vv","round","d3_rgb","d3_hcl","d3_lab","d3_lab_hcl","d3_rgb_lab","rgb","r","g","d3_hcl_lab","cos","d3_radians","d3_lab_rgb","d3_lab_xyz","d3_lab_X","d3_lab_Y","d3_lab_Z","d3_xyz_rgb","atan2","d3_degrees","sqrt","d3_xyz_lab","pow","d3_rgbNumber","d3_rgbString","d3_rgb_hex","max","toString","min","format","hsl","color","exec","parseFloat","d3_rgb_parseNumber","d3_rgb_names","parseInt","d3_rgb_xyz","d3_functor","d3_identity","d3_xhrType","response","url","mimeType","d3_xhr","respond","result","status","request","responseText","xhr","error","load","headers","XMLHttpRequest","responseType","XDomainRequest","onload","onerror","onreadystatechange","readyState","onprogress","progress","header","toLowerCase","send","open","setRequestHeader","overrideMimeType","beforesend","abort","rebind","d3_xhr_fixCallback","d3_timer_step","now","d3_timer_mark","delay","d3_timer_sweep","isFinite","clearTimeout","d3_timer_timeout","d3_timer_interval","d3_timer_frame","Date","d3_timer_active","d3_timer_queueHead","t","t0","t1","time","Infinity","d3_timer_queueTail","d3_format_precision","p","ceil","log","LN10","d3_formatPrefix","abs","scale","symbol","d3_locale_numberFormat","locale","locale_decimal","decimal","locale_thousands","thousands","locale_grouping","grouping","locale_currency","currency","formatGroup","reverse","join","specifier","d3_format_re","fill","align","sign","zfill","width","comma","precision","prefix","suffix","integer","floor","d3_format_types","d3_format_typeDefault","zcomma","fullSuffix","negative","unit","formatPrefix","lastIndexOf","before","after","Array","d3_date_utc","UTC","d3_time_interval","step","number","date","d0","d1","offset","d3_date","range","dt","times","range_utc","utc","d3_time_interval_utc","d3_locale_timeFormat","d3_time_format","template","string","d3_time_formatPads","d3_time_formats","parse","H","M","S","L","Z","d3_time_parse","localZ","setFullYear","W","getDay","U","setHours","d3_time_parsers","d3_time_parseWeekdayAbbrev","d3_time_dayAbbrevRe","d3_time_dayAbbrevLookup","d3_time_parseWeekday","d3_time_dayRe","d3_time_dayLookup","d3_time_parseMonthAbbrev","d3_time_monthAbbrevRe","d3_time_monthAbbrevLookup","d3_time_parseMonth","d3_time_monthRe","d3_time_monthLookup","d3_time_parseLocaleFull","d3_time_parseLocaleDate","d3_time_parseLocaleTime","X","d3_time_parseAmPm","d3_time_periodLookup","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_days","days","locale_shortDays","shortDays","locale_months","months","locale_shortMonths","shortMonths","multi","d3_time_formatMulti","d3_time_formatRe","d3_time_formatLookup","A","getMonth","B","d3_time_formatPad","getDate","getHours","I","d3_time","dayOfYear","getMilliseconds","getMinutes","getSeconds","sundayOfYear","mondayOfYear","getFullYear","Y","d3_time_zone","%","d3_time_parseDay","d3_time_parseHour24","d3_time_parseDayOfYear","d3_time_parseMilliseconds","d3_time_parseMonthNumber","d3_time_parseMinutes","d3_time_parseSeconds","d3_time_parseWeekNumberSunday","d3_time_parseWeekdayNumber","d3_time_parseWeekNumberMonday","d3_time_parseYear","d3_time_parseFullYear","d3_time_parseZone","d3_time_parseLiteralPercent","names","d3_time_numberRe","d3_time_expandYear","getTimezoneOffset","zs","zh","zm","d3_time_percentRe","formats","d3_adder","d3_adderSum","bv","av","d3_geo_streamGeometry","geometry","d3_geo_streamGeometryType","hasOwnProperty","d3_geo_streamLine","coordinates","closed","coordinate","lineStart","lineEnd","d3_geo_streamPolygon","polygonStart","polygonEnd","d3_geo_areaRingStart","nextPoint","λ","φ","dλ","λ0","sdλ","adλ","cosφ","sinφ","sinφ0","u","cosφ0","d3_geo_areaRingSum","λ00","φ00","d3_geo_area","d3_geo_cartesian","spherical","d3_geo_cartesianDot","d3_geo_cartesianCross","d3_geo_cartesianAdd","d3_geo_cartesianScale","vector","d3_geo_cartesianNormalize","d3_geo_spherical","cartesian","d3_geo_sphericalEqual","ε","d3_geo_centroidPoint","d3_geo_centroidPointXYZ","d3_geo_centroidW0","d3_geo_centroidX0","d3_geo_centroidY0","d3_geo_centroidZ0","d3_geo_centroidLineStart","y0","z0","x0","d3_geo_centroidW1","d3_geo_centroidX1","d3_geo_centroidY1","d3_geo_centroidZ1","d3_geo_centroid","d3_geo_centroidLineEnd","d3_geo_centroidRingStart","cx","cy","cz","d3_geo_centroidX2","d3_geo_centroidY2","d3_geo_centroidZ2","d3_true","d3_geo_clipPolygon","segments","clipStartInside","interpolate","subject","clip","segment","p0","p1","d3_geo_clipPolygonIntersection","sort","d3_geo_clipPolygonLinkCircular","entry","points","start","current","isSubject","array","other","d3_geo_clip","pointVisible","clipLine","clipStart","rotate","pointLine","line","pointRing","ring","ringListener","ringStart","ringEnd","clean","ringSegments","buffer","pop","polygon","polygonStarted","shift","d3_geo_clipSegmentLength1","rotatedClipStart","invert","merge","d3_geo_pointInPolygon","d3_geo_clipSort","sphere","d3_geo_clipBufferListener","lines","rejoin","meridian","parallel","meridianNormal","polarAngle","winding","reset","point0","φ0","antimeridian","τ","arc","intersection","φarc","d3_geo_clipAntimeridianLine","sλ0","λ1","φ1","sλ1","d3_geo_clipAntimeridianIntersect","cosφ1","sinλ0_λ1","atan","d3_geo_clipAntimeridianInterpolate","from","to","direction","d3_geo_clipCircle","radius","visible","cr","c0","v0","v00","point2","point1","smallRadius","code","intersect","notHemisphere","two","pa","pb","n1","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","uu","t2","q","δλ","polar","q1","d3_geo_circleInterpolate","d3_geom_clipLine","x1","y1","ax","ay","bx","by","dx","dy","d3_geo_clipExtent","corner","comparePoints","ca","cb","insidePolygon","wn","a1","linePoint","first","v_","x_","y_","x__","y__","v__","bufferListener","d3_geo_clipExtentMAX","listener_","inside","d3_geo_compose","compose","d3_geo_conic","projectAt","d3_geo_projectionMutator","parallels","d3_geo_conicEqualArea","forward","ρ","C","ρ0","ρ0_y","d3_geo_pathAreaRingStart","d3_geo_pathAreaPolygon","x00","y00","d3_geo_pathArea","d3_geo_pathBoundsPoint","d3_geo_pathBoundsX0","d3_geo_pathBoundsX1","d3_geo_pathBoundsY0","d3_geo_pathBoundsY1","d3_geo_pathBuffer","pointCircle","pointLineStart","stream","lineEndPolygon","d3_geo_pathBufferCircle","pointRadius","d3_geo_pathCentroidPoint","d3_geo_pathCentroidLineStart","d3_geo_pathCentroid","d3_geo_pathCentroidLineEnd","d3_geo_pathCentroidRingStart","d3_geo_pathContext","context","moveTo","lineTo","closePath","d3_geo_resample","project","resample","maxDepth","resampleRecursive","resampleNone","d3_geo_transformPoint","resampleLineTo","a0","b0","ringPoint","a00","b00","c00","b1","depth","d2","δ2","φ2","λ2","x2","y2","dx2","dy2","dz","cosMinDistance","d3_geo_pathProjectStream","d3_geo_projectionRadians","d3_geo_transform","d3_geo_projection","projection","projectRotate","δx","δy","d3_geo_rotation","δφ","δγ","center","invalidate","valid","projectResample","preclip","d3_geo_clipAntimeridian","postclip","clipAngle","clipExtent","output","translate","d3_geo_equirectangular","d3_geo_identityRotation","d3_geo_rotationλ","d3_geo_rotationφγ","d3_geo_forwardRotationλ","rotation","cosδφ","sinδφ","cosδγ","sinδγ","sr","d3_geo_circleAngle","angle","PI","d3_geo_graticuleX","d3_geo_graticuleY","d3_source","d3_target","d3_geo_interpolate","cy0","sy0","cy1","sy1","kx0","ky0","kx1","ky1","distance","d3_geo_lengthLineStart","cosΔλ","d3_geo_lengthSum","d3_geo_length","d3_geo_azimuthal","azimuthal","cosλ","sinc","cosc","d3_geo_conicConformal","F","tan","d3_geo_mercator","d3_geo_conicEquidistant","G","d3_geo_mercatorProjection","clipAuto","d3_geo_transverseMercator","d3_geom_pointX","d3_geom_pointY","d3_geom_hullUpper","hull","hs","d3_geom_hullOrder","d3_geom_polygonInside","d3_geom_polygonIntersect","x3","x21","x43","y3","y21","y43","ua","d3_geom_polygonClosed","d3_geom_voronoiBeach","d3_geom_voronoiRedBlackNode","edge","site","circle","d3_geom_voronoiCreateBeach","beach","d3_geom_voronoiBeachPool","d3_geom_voronoiDetachBeach","d3_geom_voronoiDetachCircle","d3_geom_voronoiBeaches","d3_geom_voronoiRemoveBeach","vertex","previous","P","next","N","disappearing","lArc","unshift","rArc","iArc","nArcs","d3_geom_voronoiSetEdgeEnd","d3_geom_voronoiCreateEdge","d3_geom_voronoiAttachCircle","d3_geom_voronoiAddBeach","dxl","dxr","directrix","d3_geom_voronoiLeftBreakPoint","d3_geom_voronoiRightBreakPoint","R","newArc","insert","lSite","rSite","hb","hc","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","d3_geom_voronoiCell","edges","d3_geom_voronoiCloseCells","extent","cell","iHalfEdge","halfEdges","nHalfEdges","end","cells","d3_geom_voronoiCells","iCell","prepare","splice","d3_geom_voronoiHalfEdge","d3_geom_voronoiCreateBorderEdge","d3_geom_voronoiHalfEdgeOrder","d3_geom_voronoiCircle","cSite","ε2","ha","d3_geom_voronoiCirclePool","d3_geom_voronoiCircles","d3_geom_voronoiFirstCircle","d3_geom_voronoiClipEdges","d3_geom_voronoiEdges","d3_geom_voronoiConnectEdge","vb","fm","fb","va","lx","ly","rx","ry","fx","fy","d3_geom_voronoiEdge","d3_geom_voronoiRedBlackTree","d3_geom_voronoiRedBlackRotateLeft","tree","parent","d3_geom_voronoiRedBlackRotateRight","d3_geom_voronoiRedBlackFirst","d3_geom_voronoi","sites","bbox","d3_geom_voronoiVertexOrder","diagram","d3_geom_voronoiTriangleArea","d3_geom_quadtreeCompatX","d3_geom_quadtreeCompatY","d3_geom_quadtreeNode","leaf","nodes","d3_geom_quadtreeVisit","sx","sy","children","d3_interpolateRgb","ar","ag","ab","br","bg","bb","d3_interpolateObject","d3_interpolate","d3_interpolateNumber","d3_interpolateString","am","bm","bs","bi","d3_interpolate_numberA","d3_interpolate_numberB","index","interpolators","d3_interpolateArray","na","nb","n0","d3_ease_clamp","d3_ease_reverse","d3_ease_reflect","d3_ease_quad","d3_ease_cubic","d3_ease_cubicInOut","t3","d3_ease_poly","d3_ease_sin","d3_ease_exp","d3_ease_circle","d3_ease_elastic","d3_ease_back","d3_ease_bounce","d3_interpolateHcl","hcl","ah","ac","al","bh","bc","bl","d3_interpolateHsl","as","d3_interpolateLab","lab","aa","ba","d3_interpolateRound","d3_transform","r0","r1","kx","d3_transformNormalize","kz","d3_transformDot","ky","d3_transformCombine","skew","d3_interpolateTransform","transform","ta","tb","ra","rb","wa","wb","ka","kb","d3_uninterpolateNumber","d3_uninterpolateClamp","d3_layout_bundlePath","link","lca","d3_layout_bundleLeastCommonAncestor","d3_layout_bundleAncestors","ancestors","aNodes","bNodes","aNode","bNode","sharedNode","d3_layout_forceDragstart","fixed","d3_layout_forceDragend","d3_layout_forceMouseover","px","py","d3_layout_forceMouseout","d3_layout_forceAccumulate","quad","alpha","charges","charge","random","pointCharge","d3_layout_hierarchyRebind","hierarchy","links","d3_layout_hierarchyLinks","d3_layout_hierarchyVisitBefore","d3_layout_hierarchyVisitAfter","nodes2","d3_layout_hierarchyChildren","d3_layout_hierarchyValue","d3_layout_hierarchySort","child","d3_layout_stackX","d3_layout_stackY","d3_layout_stackOut","d3_layout_stackOrderDefault","d3_layout_stackOffsetZero","d3_layout_stackMaxIndex","d3_layout_stackReduceSum","reduce","d3_layout_stackSum","d3_layout_histogramBinSturges","values","d3_layout_histogramBinFixed","LN2","d3_layout_histogramRange","d3_layout_packSort","d3_layout_packInsert","_pack_next","_pack_prev","d3_layout_packSplice","d3_layout_packIntersects","dr","d3_layout_packSiblings","bound","xMin","xMax","yMin","yMax","d3_layout_packLink","d3_layout_packPlace","isect","s1","s2","d3_layout_packUnlink","d3_layout_packTransform","db","da","dc","d3_layout_treeSeparation","d3_layout_treeLeft","d3_layout_treeRight","d3_layout_treeMove","wm","wp","change","d3_layout_treeShift","d3_layout_treeAncestor","vim","ancestor","d3_layout_clusterY","d3_layout_clusterX","d3_layout_clusterLeft","d3_layout_clusterRight","d3_layout_treemapPadNull","d3_layout_treemapPad","d3_scaleExtent","domain","stop","d3_scaleRange","rangeExtent","d3_scale_bilinear","uninterpolate","d3_scale_nice","nice","i1","d3_scale_niceStep","d3_scale_niceIdentity","d3_scale_polylinear","bisect","d3_scale_linear","clamp","rescale","linear","input","Number","rangeRound","ticks","d3_scale_linearTicks","tickFormat","d3_scale_linearTickFormat","d3_scale_linearNice","copy","d3_scale_linearRebind","d3_scale_linearTickRange","span","err","d3_scale_linearPrecision","d3_scale_linearFormatPrecision","d3_scale_linearFormatSignificant","d3_scale_log","base","positive","niced","d3_scale_logNiceNegative","d3_scale_logFormat","d3_scale_pow","exponent","powp","d3_scale_powPow","powb","d3_scale_ordinal","ranger","steps","rangeBand","xi","has","rangePoints","rangeBands","outerPadding","rangeRoundBands","d3_scale_quantile","thresholds","quantile","quantiles","invertExtent","d3_scale_quantize","d3_scale_threshold","d3_scale_identity","identity","d3_svg_arcInnerRadius","innerRadius","d3_svg_arcOuterRadius","outerRadius","d3_svg_arcStartAngle","startAngle","d3_svg_arcEndAngle","endAngle","d3_svg_line","tension","defined","d3_svg_lineLinear","interpolateKey","d3_svg_lineInterpolators","d3_svg_lineLinearClosed","d3_svg_lineStep","path","d3_svg_lineStepBefore","d3_svg_lineStepAfter","d3_svg_lineCardinalOpen","d3_svg_lineHermite","d3_svg_lineCardinalTangents","d3_svg_lineCardinalClosed","d3_svg_lineCardinal","tangents","pi","lp","p2","d3_svg_lineBasis","d3_svg_lineDot4","d3_svg_lineBasisBezier3","d3_svg_lineBasisBezier","d3_svg_lineBasisOpen","d3_svg_lineBasisClosed","d3_svg_lineBundle","d3_svg_lineBasisBezier1","d3_svg_lineBasisBezier2","d3_svg_lineSlope","d3_svg_lineFiniteDifferences","d3_svg_lineMonotoneTangents","d3_svg_lineMonotone","d3_svg_lineRadial","d3_svg_arcOffset","d3_svg_area","area","points1","interpolateReverse","points0","fx0","fy0","fx1","fy1","d3_svg_chordRadius","d3_svg_diagonalProjection","d3_svg_diagonalRadialProjection","d3_svg_symbolSize","d3_svg_symbolType","d3_svg_symbolCircle","d3_transition","id","d3_transitionPrototype","d3_transition_tween","tween","d3_transition_text","textContent","d3_transitionNode","inherit","count","transition","ease","duration","timer","elapsed","tweened","tick","d3_svg_axisX","attr","d3_svg_axisY","d3_time_formatIsoNative","toISOString","d3_time_scale","methods","tickMethod","d3_time_scaleSteps","year","d3_time_scaleMilliseconds","d3_time_scaleDate","interval","skip","skipped","d3_json","JSON","d3_html","d3_document","createRange","selectNode","body","createContextualFragment","version","d3_arraySlice","list","document","documentElement","window","childNodes","nodeType","createElement","d3_element_prototype","Element","d3_element_setAttribute","d3_element_setAttributeNS","d3_style_prototype","CSSStyleDeclaration","d3_style_setProperty","ascending","descending","undefined","sum","mean","median","d3_bisect","bisectLeft","bisectRight","bisector","shuffle","permute","indexes","permutes","pairs","zip","zips","transpose","matrix","entries","arrays","merged","Error","empty","nest","mapType","rollup","sortValues","keyValue","setter","valuesByKey","sortKey","sortKeys","keyMap","order","behavior","d3_requote_re","__proto__","property","querySelector","querySelectorAll","d3_selectMatcher","matches","Sizzle","matchesSelector","d3_selectionRoot","subgroup","subnode","subgroups","parentNode","selectAll","d3_nsPrefix","xhtml","xlink","xml","xmlns","getAttributeNS","each","classed","contains","getComputedStyle","getPropertyValue","text","html","innerHTML","appendChild","insertBefore","removeChild","bind","groupData","nodeData","updateNodes","enterNodes","exitNodes","nodeByKeyValue","dataByKeyValue","keyValues","exit","datum","nextSibling","args","upgroup","d3_transitionInheritId","d3_transitionId","d3_transitionInherit","interrupt","mouseenter","mouseleave","mouse","navigator","userAgent","touches","touch","drag","mousedown","touchstart","dragstart","move","moved","position1","dragId","position0","dragged","dragOffset","ended","dragSubject","dragName","dragRestore","that","origin","SQRT2","ρ2","ρ4","interpolateZoom","coshr0","w0","ux0","uy0","ux1","uy1","w1","zoom","mousedowned","d3_behavior_zoomWheel","mousewheeled","dblclicked","touchstarted","location","view","scaleTo","scaleExtent","translateTo","zoomstarted","zoomed","zoomended","location0","mousemove","mouseup","relocate","scale0","locations0","started","touchmove","touchend","targets","changed","touchtime","distance0","l0","l1","distance1","scale1","zoomName","mousewheelTimer","translate0","center0","d3_behavior_zoomDelta","shiftKey","d3_behavior_zoomInfinity","view1","__chart__","deltaY","deltaMode","wheelDelta","detail","d3_hslPrototype","brighter","darker","d3_hclPrototype","d3_lab_K","d3_labPrototype","d3_rgbPrototype","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","functor","dsv","delimiter","row","typedResponse","formatRow","formatValue","reFormat","delimiterCode","parseRows","Function","stringify","token","EOF","eol","EOL","rows","isArray","formatRows","fieldSet","fields","field","csv","tsv","then","flush","d3_formatPrefixes","String","fromCharCode","toPrecision","toExponential","toFixed","getUTCDate","getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","getTime","valueOf","setDate","d3_time_prototype","setUTCDate","setDay","setUTCDay","setUTCFullYear","setUTCHours","setMilliseconds","setUTCMilliseconds","setMinutes","setUTCMinutes","setMonth","setUTCMonth","setSeconds","setUTCSeconds","setTime","day","years","week","sunday","weeks","weekOfYear","-","0","numberFormat","timeFormat","d3_locale_enUS","geo","d3_adderTemp","d3_geo_streamObjectType","Feature","feature","FeatureCollection","features","Sphere","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","GeometryCollection","geometries","d3_geo_areaSum","bounds","ranges","normal","equatorial","inflection","λ_","λi","φi","dλSum","λ__","φ__","compareRanges","withinRange","best","centroid","conicEqualArea","raw","albers","albersUsa","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","lower48Stream","alaskaStream","hawaiiStream","d3_geo_pathAreaSum","d3_geo_pathBounds","contextStream","cacheStream","projectStream","projectionMutator","equirectangular","Δλ","sinΔλ","sinφ1","graticule","X0","DX","X1","Y0","DY","Y1","outline","majorExtent","minorExtent","majorStep","minorStep","greatArc","source_","target_","d3_geo_azimuthalEqualArea","cosλcosφ","azimuthalEqualArea","d3_geo_azimuthalEquidistant","azimuthalEquidistant","conicConformal","conicEquidistant","d3_geo_gnomonic","gnomonic","mercator","d3_geo_orthographic","orthographic","d3_geo_stereographic","stereographic","transverseMercator","geom","vertices","flippedPoints","upper","lower","skipLeft","skipRight","d3_geom_polygonPrototype","grandpa","uncle","sibling","voronoi","polygons","d3_geom_voronoiClipExtent","triangles","s0","delaunay","quadtree","nx","ny","insertChild","nPoint","bottom","xs","ys","x1_","y1_","x2_","y2_","compat","root","visit","interpolateRgb","interpolateObject","interpolateNumber","interpolateString","interpolateArray","d3_ease_default","d3_ease","poly","cubic","elastic","back","bounce","d3_ease_mode","in","out","in-out","out-in","interpolateHcl","interpolateHsl","interpolateLab","interpolateRound","baseVal","consolidate","d3_transformIdentity","interpolateTransform","layout","bundle","paths","chord","relayout","groupSums","groupIndex","subgroupIndex","chords","sortGroups","sortSubgroups","di","dj","subindex","sortChords","resort","force","repulse","dw","dn","theta2","chargeDistance2","dragmove","resume","distances","strengths","friction","linkDistance","d3_layout_forceLinkDistance","linkStrength","d3_layout_forceLinkStrength","d3_layout_forceChargeDistance2","gravity","weight","chargeDistance","theta","dimension","neighbors","candidates","stack","childs","revalue","partition","pie","d3_layout_pieSortByValue","arcs","series","orders","offsets","d3_layout_stackOrders","d3_layout_stackOffsets","inside-out","sums","tops","bottoms","default","silhouette","wiggle","s3","o0","expand","zero","histogram","bin","bins","valuer","binner","frequency","pack","root0","root1","wrapTree","firstWalk","secondWalk","nodeSize","sizeNode","tx","separation","node1","queue","siblings","midpoint","apportion","vip","vop","vom","sip","sop","sim","som","cluster","previousNode","treemap","squarify","score","pad","remaining","mode","worst","stickify","rmax","rmin","ratio","stickies","sticky","padFunction","padConstant","µ","σ","logNormal","bates","irwinHall","ordinal","category10","d3_category10","category20","d3_category20","category20b","d3_category20b","category20c","d3_category20c","quantize","threshold","df","d3_svg_arcMax","linear-closed","step-before","step-after","basis","basis-open","basis-closed","cardinal","cardinal-open","cardinal-closed","monotone","radial","equals","curve","self","diagonal","p3","projection_","d3_svg_symbols","cross","diamond","d3_svg_symbolTan30","square","triangle-down","d3_svg_symbolSqrt3","triangle-up","symbolTypes","subnodes","nameNS","attrTween","attrTweenNS","styleString","styleTween","inheritId","id0","id1","create","axis","tickTransform","tickValues","tickArguments_","tickFormat_","tickEnter","tickExit","tickUpdate","pathUpdate","lineEnter","lineUpdate","textEnter","textUpdate","orient","innerTickSize","tickPadding","outerTickSize","d3_svg_axisDefaultOrient","d3_svg_axisOrients","tickSize","tickSubdivide","brush","brushstart","background","resize","resizes","d3_svg_brushCursor","gUpdate","backgroundUpdate","redrawX","redrawY","redraw","xExtent","yExtent","keydown","keyCode","dragging","keyup","brushmove","altKey","resizingX","move1","resizingY","event_","yClamp","xClamp","yExtentDomain","xExtentDomain","brushend","eventTarget","resizing","ex","ey","d3_svg_brushResizes","extent1","extent0","yi","clear","nw","ne","se","sw","d3_time_formatUtc","d3_time_formatIso","iso","second","seconds","minute","minutes","hour","timezone","hours","month","d3_time_scaleLocalMethods","d3_time_scaleLocalFormat","d3_time_scaleUtcMethods","d3_time_scaleUtcFormat","json","responseXML","define","amd","module","exports"],"mappings":"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","file":"d3.min.js","sourcesContent":["!function() {\n var d3 = {\n version: \"3.4.11\"\n };\n if (!Date.now) Date.now = function() {\n return +new Date();\n };\n var d3_arraySlice = [].slice, d3_array = function(list) {\n return d3_arraySlice.call(list);\n };\n var d3_document = document, d3_documentElement = d3_document.documentElement, d3_window = window;\n try {\n d3_array(d3_documentElement.childNodes)[0].nodeType;\n } catch (e) {\n d3_array = function(list) {\n var i = list.length, array = new Array(i);\n while (i--) array[i] = list[i];\n return array;\n };\n }\n try {\n d3_document.createElement(\"div\").style.setProperty(\"opacity\", 0, \"\");\n } catch (error) {\n var d3_element_prototype = d3_window.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;\n d3_element_prototype.setAttribute = function(name, value) {\n d3_element_setAttribute.call(this, name, value + \"\");\n };\n d3_element_prototype.setAttributeNS = function(space, local, value) {\n d3_element_setAttributeNS.call(this, space, local, value + \"\");\n };\n d3_style_prototype.setProperty = function(name, value, priority) {\n d3_style_setProperty.call(this, name, value + \"\", priority);\n };\n }\n d3.ascending = d3_ascending;\n function d3_ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n }\n d3.descending = function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n };\n d3.min = function(array, f) {\n var i = -1, n = array.length, a, b;\n if (arguments.length === 1) {\n while (++i < n && !((a = array[i]) != null && a <= a)) a = undefined;\n while (++i < n) if ((b = array[i]) != null && a > b) a = b;\n } else {\n while (++i < n && !((a = f.call(array, array[i], i)) != null && a <= a)) a = undefined;\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;\n }\n return a;\n };\n d3.max = function(array, f) {\n var i = -1, n = array.length, a, b;\n if (arguments.length === 1) {\n while (++i < n && !((a = array[i]) != null && a <= a)) a = undefined;\n while (++i < n) if ((b = array[i]) != null && b > a) a = b;\n } else {\n while (++i < n && !((a = f.call(array, array[i], i)) != null && a <= a)) a = undefined;\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;\n }\n return a;\n };\n d3.extent = function(array, f) {\n var i = -1, n = array.length, a, b, c;\n if (arguments.length === 1) {\n while (++i < n && !((a = c = array[i]) != null && a <= a)) a = c = undefined;\n while (++i < n) if ((b = array[i]) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n } else {\n while (++i < n && !((a = c = f.call(array, array[i], i)) != null && a <= a)) a = undefined;\n while (++i < n) if ((b = f.call(array, array[i], i)) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n }\n return [ a, c ];\n };\n d3.sum = function(array, f) {\n var s = 0, n = array.length, a, i = -1;\n if (arguments.length === 1) {\n while (++i < n) if (!isNaN(a = +array[i])) s += a;\n } else {\n while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a;\n }\n return s;\n };\n function d3_number(x) {\n return x != null && !isNaN(x);\n }\n d3.mean = function(array, f) {\n var s = 0, n = array.length, a, i = -1, j = n;\n if (arguments.length === 1) {\n while (++i < n) if (d3_number(a = array[i])) s += a; else --j;\n } else {\n while (++i < n) if (d3_number(a = f.call(array, array[i], i))) s += a; else --j;\n }\n return j ? s / j : undefined;\n };\n d3.quantile = function(values, p) {\n var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;\n return e ? v + e * (values[h] - v) : v;\n };\n d3.median = function(array, f) {\n if (arguments.length > 1) array = array.map(f);\n array = array.filter(d3_number);\n return array.length ? d3.quantile(array.sort(d3_ascending), .5) : undefined;\n };\n function d3_bisector(compare) {\n return {\n left: function(a, x, lo, hi) {\n if (arguments.length < 3) lo = 0;\n if (arguments.length < 4) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (arguments.length < 3) lo = 0;\n if (arguments.length < 4) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1;\n }\n return lo;\n }\n };\n }\n var d3_bisect = d3_bisector(d3_ascending);\n d3.bisectLeft = d3_bisect.left;\n d3.bisect = d3.bisectRight = d3_bisect.right;\n d3.bisector = function(f) {\n return d3_bisector(f.length === 1 ? function(d, x) {\n return d3_ascending(f(d), x);\n } : f);\n };\n d3.shuffle = function(array) {\n var m = array.length, t, i;\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m], array[m] = array[i], array[i] = t;\n }\n return array;\n };\n d3.permute = function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n };\n d3.pairs = function(array) {\n var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ];\n return pairs;\n };\n d3.zip = function() {\n if (!(n = arguments.length)) return [];\n for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) {\n for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) {\n zip[j] = arguments[j][i];\n }\n }\n return zips;\n };\n function d3_zipLength(d) {\n return d.length;\n }\n d3.transpose = function(matrix) {\n return d3.zip.apply(d3, matrix);\n };\n d3.keys = function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n };\n d3.values = function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n };\n d3.entries = function(map) {\n var entries = [];\n for (var key in map) entries.push({\n key: key,\n value: map[key]\n });\n return entries;\n };\n d3.merge = function(arrays) {\n var n = arrays.length, m, i = -1, j = 0, merged, array;\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n return merged;\n };\n var abs = Math.abs;\n d3.range = function(start, stop, step) {\n if (arguments.length < 3) {\n step = 1;\n if (arguments.length < 2) {\n stop = start;\n start = 0;\n }\n }\n if ((stop - start) / step === Infinity) throw new Error(\"infinite range\");\n var range = [], k = d3_range_integerScale(abs(step)), i = -1, j;\n start *= k, stop *= k, step *= k;\n if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);\n return range;\n };\n function d3_range_integerScale(x) {\n var k = 1;\n while (x * k % 1) k *= 10;\n return k;\n }\n function d3_class(ctor, properties) {\n try {\n for (var key in properties) {\n Object.defineProperty(ctor.prototype, key, {\n value: properties[key],\n enumerable: false\n });\n }\n } catch (e) {\n ctor.prototype = properties;\n }\n }\n d3.map = function(object) {\n var map = new d3_Map();\n if (object instanceof d3_Map) object.forEach(function(key, value) {\n map.set(key, value);\n }); else for (var key in object) map.set(key, object[key]);\n return map;\n };\n function d3_Map() {}\n d3_class(d3_Map, {\n has: d3_map_has,\n get: function(key) {\n return this[d3_map_prefix + key];\n },\n set: function(key, value) {\n return this[d3_map_prefix + key] = value;\n },\n remove: d3_map_remove,\n keys: d3_map_keys,\n values: function() {\n var values = [];\n this.forEach(function(key, value) {\n values.push(value);\n });\n return values;\n },\n entries: function() {\n var entries = [];\n this.forEach(function(key, value) {\n entries.push({\n key: key,\n value: value\n });\n });\n return entries;\n },\n size: d3_map_size,\n empty: d3_map_empty,\n forEach: function(f) {\n for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) f.call(this, key.substring(1), this[key]);\n }\n });\n var d3_map_prefix = \"\\x00\", d3_map_prefixCode = d3_map_prefix.charCodeAt(0);\n function d3_map_has(key) {\n return d3_map_prefix + key in this;\n }\n function d3_map_remove(key) {\n key = d3_map_prefix + key;\n return key in this && delete this[key];\n }\n function d3_map_keys() {\n var keys = [];\n this.forEach(function(key) {\n keys.push(key);\n });\n return keys;\n }\n function d3_map_size() {\n var size = 0;\n for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) ++size;\n return size;\n }\n function d3_map_empty() {\n for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) return false;\n return true;\n }\n d3.nest = function() {\n var nest = {}, keys = [], sortKeys = [], sortValues, rollup;\n function map(mapType, array, depth) {\n if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;\n var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(object = array[i]))) {\n values.push(object);\n } else {\n valuesByKey.set(keyValue, [ object ]);\n }\n }\n if (mapType) {\n object = mapType();\n setter = function(keyValue, values) {\n object.set(keyValue, map(mapType, values, depth));\n };\n } else {\n object = {};\n setter = function(keyValue, values) {\n object[keyValue] = map(mapType, values, depth);\n };\n }\n valuesByKey.forEach(setter);\n return object;\n }\n function entries(map, depth) {\n if (depth >= keys.length) return map;\n var array = [], sortKey = sortKeys[depth++];\n map.forEach(function(key, keyMap) {\n array.push({\n key: key,\n values: entries(keyMap, depth)\n });\n });\n return sortKey ? array.sort(function(a, b) {\n return sortKey(a.key, b.key);\n }) : array;\n }\n nest.map = function(array, mapType) {\n return map(mapType, array, 0);\n };\n nest.entries = function(array) {\n return entries(map(d3.map, array, 0), 0);\n };\n nest.key = function(d) {\n keys.push(d);\n return nest;\n };\n nest.sortKeys = function(order) {\n sortKeys[keys.length - 1] = order;\n return nest;\n };\n nest.sortValues = function(order) {\n sortValues = order;\n return nest;\n };\n nest.rollup = function(f) {\n rollup = f;\n return nest;\n };\n return nest;\n };\n d3.set = function(array) {\n var set = new d3_Set();\n if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);\n return set;\n };\n function d3_Set() {}\n d3_class(d3_Set, {\n has: d3_map_has,\n add: function(value) {\n this[d3_map_prefix + value] = true;\n return value;\n },\n remove: function(value) {\n value = d3_map_prefix + value;\n return value in this && delete this[value];\n },\n values: d3_map_keys,\n size: d3_map_size,\n empty: d3_map_empty,\n forEach: function(f) {\n for (var value in this) if (value.charCodeAt(0) === d3_map_prefixCode) f.call(this, value.substring(1));\n }\n });\n d3.behavior = {};\n d3.rebind = function(target, source) {\n var i = 1, n = arguments.length, method;\n while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);\n return target;\n };\n function d3_rebind(target, source, method) {\n return function() {\n var value = method.apply(source, arguments);\n return value === source ? target : value;\n };\n }\n function d3_vendorSymbol(object, name) {\n if (name in object) return name;\n name = name.charAt(0).toUpperCase() + name.substring(1);\n for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) {\n var prefixName = d3_vendorPrefixes[i] + name;\n if (prefixName in object) return prefixName;\n }\n }\n var d3_vendorPrefixes = [ \"webkit\", \"ms\", \"moz\", \"Moz\", \"o\", \"O\" ];\n function d3_noop() {}\n d3.dispatch = function() {\n var dispatch = new d3_dispatch(), i = -1, n = arguments.length;\n while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n return dispatch;\n };\n function d3_dispatch() {}\n d3_dispatch.prototype.on = function(type, listener) {\n var i = type.indexOf(\".\"), name = \"\";\n if (i >= 0) {\n name = type.substring(i + 1);\n type = type.substring(0, i);\n }\n if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);\n if (arguments.length === 2) {\n if (listener == null) for (type in this) {\n if (this.hasOwnProperty(type)) this[type].on(name, null);\n }\n return this;\n }\n };\n function d3_dispatch_event(dispatch) {\n var listeners = [], listenerByName = new d3_Map();\n function event() {\n var z = listeners, i = -1, n = z.length, l;\n while (++i < n) if (l = z[i].on) l.apply(this, arguments);\n return dispatch;\n }\n event.on = function(name, listener) {\n var l = listenerByName.get(name), i;\n if (arguments.length < 2) return l && l.on;\n if (l) {\n l.on = null;\n listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));\n listenerByName.remove(name);\n }\n if (listener) listeners.push(listenerByName.set(name, {\n on: listener\n }));\n return dispatch;\n };\n return event;\n }\n d3.event = null;\n function d3_eventPreventDefault() {\n d3.event.preventDefault();\n }\n function d3_eventSource() {\n var e = d3.event, s;\n while (s = e.sourceEvent) e = s;\n return e;\n }\n function d3_eventDispatch(target) {\n var dispatch = new d3_dispatch(), i = 0, n = arguments.length;\n while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n dispatch.of = function(thiz, argumentz) {\n return function(e1) {\n try {\n var e0 = e1.sourceEvent = d3.event;\n e1.target = target;\n d3.event = e1;\n dispatch[e1.type].apply(thiz, argumentz);\n } finally {\n d3.event = e0;\n }\n };\n };\n return dispatch;\n }\n d3.requote = function(s) {\n return s.replace(d3_requote_re, \"\\\\$&\");\n };\n var d3_requote_re = /[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;\n var d3_subclass = {}.__proto__ ? function(object, prototype) {\n object.__proto__ = prototype;\n } : function(object, prototype) {\n for (var property in prototype) object[property] = prototype[property];\n };\n function d3_selection(groups) {\n d3_subclass(groups, d3_selectionPrototype);\n return groups;\n }\n var d3_select = function(s, n) {\n return n.querySelector(s);\n }, d3_selectAll = function(s, n) {\n return n.querySelectorAll(s);\n }, d3_selectMatcher = d3_documentElement.matches || d3_documentElement[d3_vendorSymbol(d3_documentElement, \"matchesSelector\")], d3_selectMatches = function(n, s) {\n return d3_selectMatcher.call(n, s);\n };\n if (typeof Sizzle === \"function\") {\n d3_select = function(s, n) {\n return Sizzle(s, n)[0] || null;\n };\n d3_selectAll = Sizzle;\n d3_selectMatches = Sizzle.matchesSelector;\n }\n d3.selection = function() {\n return d3_selectionRoot;\n };\n var d3_selectionPrototype = d3.selection.prototype = [];\n d3_selectionPrototype.select = function(selector) {\n var subgroups = [], subgroup, subnode, group, node;\n selector = d3_selection_selector(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n subgroup.parentNode = (group = this[j]).parentNode;\n for (var i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroup.push(subnode = selector.call(node, node.__data__, i, j));\n if (subnode && \"__data__\" in node) subnode.__data__ = node.__data__;\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_selector(selector) {\n return typeof selector === \"function\" ? selector : function() {\n return d3_select(selector, this);\n };\n }\n d3_selectionPrototype.selectAll = function(selector) {\n var subgroups = [], subgroup, node;\n selector = d3_selection_selectorAll(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j)));\n subgroup.parentNode = node;\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_selectorAll(selector) {\n return typeof selector === \"function\" ? selector : function() {\n return d3_selectAll(selector, this);\n };\n }\n var d3_nsPrefix = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: \"http://www.w3.org/1999/xhtml\",\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n };\n d3.ns = {\n prefix: d3_nsPrefix,\n qualify: function(name) {\n var i = name.indexOf(\":\"), prefix = name;\n if (i >= 0) {\n prefix = name.substring(0, i);\n name = name.substring(i + 1);\n }\n return d3_nsPrefix.hasOwnProperty(prefix) ? {\n space: d3_nsPrefix[prefix],\n local: name\n } : name;\n }\n };\n d3_selectionPrototype.attr = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") {\n var node = this.node();\n name = d3.ns.qualify(name);\n return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);\n }\n for (value in name) this.each(d3_selection_attr(value, name[value]));\n return this;\n }\n return this.each(d3_selection_attr(name, value));\n };\n function d3_selection_attr(name, value) {\n name = d3.ns.qualify(name);\n function attrNull() {\n this.removeAttribute(name);\n }\n function attrNullNS() {\n this.removeAttributeNS(name.space, name.local);\n }\n function attrConstant() {\n this.setAttribute(name, value);\n }\n function attrConstantNS() {\n this.setAttributeNS(name.space, name.local, value);\n }\n function attrFunction() {\n var x = value.apply(this, arguments);\n if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);\n }\n function attrFunctionNS() {\n var x = value.apply(this, arguments);\n if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);\n }\n return value == null ? name.local ? attrNullNS : attrNull : typeof value === \"function\" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;\n }\n function d3_collapse(s) {\n return s.trim().replace(/\\s+/g, \" \");\n }\n d3_selectionPrototype.classed = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") {\n var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1;\n if (value = node.classList) {\n while (++i < n) if (!value.contains(name[i])) return false;\n } else {\n value = node.getAttribute(\"class\");\n while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;\n }\n return true;\n }\n for (value in name) this.each(d3_selection_classed(value, name[value]));\n return this;\n }\n return this.each(d3_selection_classed(name, value));\n };\n function d3_selection_classedRe(name) {\n return new RegExp(\"(?:^|\\\\s+)\" + d3.requote(name) + \"(?:\\\\s+|$)\", \"g\");\n }\n function d3_selection_classes(name) {\n return (name + \"\").trim().split(/^|\\s+/);\n }\n function d3_selection_classed(name, value) {\n name = d3_selection_classes(name).map(d3_selection_classedName);\n var n = name.length;\n function classedConstant() {\n var i = -1;\n while (++i < n) name[i](this, value);\n }\n function classedFunction() {\n var i = -1, x = value.apply(this, arguments);\n while (++i < n) name[i](this, x);\n }\n return typeof value === \"function\" ? classedFunction : classedConstant;\n }\n function d3_selection_classedName(name) {\n var re = d3_selection_classedRe(name);\n return function(node, value) {\n if (c = node.classList) return value ? c.add(name) : c.remove(name);\n var c = node.getAttribute(\"class\") || \"\";\n if (value) {\n re.lastIndex = 0;\n if (!re.test(c)) node.setAttribute(\"class\", d3_collapse(c + \" \" + name));\n } else {\n node.setAttribute(\"class\", d3_collapse(c.replace(re, \" \")));\n }\n };\n }\n d3_selectionPrototype.style = function(name, value, priority) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof name !== \"string\") {\n if (n < 2) value = \"\";\n for (priority in name) this.each(d3_selection_style(priority, name[priority], value));\n return this;\n }\n if (n < 2) return d3_window.getComputedStyle(this.node(), null).getPropertyValue(name);\n priority = \"\";\n }\n return this.each(d3_selection_style(name, value, priority));\n };\n function d3_selection_style(name, value, priority) {\n function styleNull() {\n this.style.removeProperty(name);\n }\n function styleConstant() {\n this.style.setProperty(name, value, priority);\n }\n function styleFunction() {\n var x = value.apply(this, arguments);\n if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);\n }\n return value == null ? styleNull : typeof value === \"function\" ? styleFunction : styleConstant;\n }\n d3_selectionPrototype.property = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") return this.node()[name];\n for (value in name) this.each(d3_selection_property(value, name[value]));\n return this;\n }\n return this.each(d3_selection_property(name, value));\n };\n function d3_selection_property(name, value) {\n function propertyNull() {\n delete this[name];\n }\n function propertyConstant() {\n this[name] = value;\n }\n function propertyFunction() {\n var x = value.apply(this, arguments);\n if (x == null) delete this[name]; else this[name] = x;\n }\n return value == null ? propertyNull : typeof value === \"function\" ? propertyFunction : propertyConstant;\n }\n d3_selectionPrototype.text = function(value) {\n return arguments.length ? this.each(typeof value === \"function\" ? function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n } : value == null ? function() {\n this.textContent = \"\";\n } : function() {\n this.textContent = value;\n }) : this.node().textContent;\n };\n d3_selectionPrototype.html = function(value) {\n return arguments.length ? this.each(typeof value === \"function\" ? function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n } : value == null ? function() {\n this.innerHTML = \"\";\n } : function() {\n this.innerHTML = value;\n }) : this.node().innerHTML;\n };\n d3_selectionPrototype.append = function(name) {\n name = d3_selection_creator(name);\n return this.select(function() {\n return this.appendChild(name.apply(this, arguments));\n });\n };\n function d3_selection_creator(name) {\n return typeof name === \"function\" ? name : (name = d3.ns.qualify(name)).local ? function() {\n return this.ownerDocument.createElementNS(name.space, name.local);\n } : function() {\n return this.ownerDocument.createElementNS(this.namespaceURI, name);\n };\n }\n d3_selectionPrototype.insert = function(name, before) {\n name = d3_selection_creator(name);\n before = d3_selection_selector(before);\n return this.select(function() {\n return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null);\n });\n };\n d3_selectionPrototype.remove = function() {\n return this.each(function() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n });\n };\n d3_selectionPrototype.data = function(value, key) {\n var i = -1, n = this.length, group, node;\n if (!arguments.length) {\n value = new Array(n = (group = this[0]).length);\n while (++i < n) {\n if (node = group[i]) {\n value[i] = node.__data__;\n }\n }\n return value;\n }\n function bind(group, groupData) {\n var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;\n if (key) {\n var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Map(), keyValues = [], keyValue;\n for (i = -1; ++i < n; ) {\n keyValue = key.call(node = group[i], node.__data__, i);\n if (nodeByKeyValue.has(keyValue)) {\n exitNodes[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n keyValues.push(keyValue);\n }\n for (i = -1; ++i < m; ) {\n keyValue = key.call(groupData, nodeData = groupData[i], i);\n if (node = nodeByKeyValue.get(keyValue)) {\n updateNodes[i] = node;\n node.__data__ = nodeData;\n } else if (!dataByKeyValue.has(keyValue)) {\n enterNodes[i] = d3_selection_dataNode(nodeData);\n }\n dataByKeyValue.set(keyValue, nodeData);\n nodeByKeyValue.remove(keyValue);\n }\n for (i = -1; ++i < n; ) {\n if (nodeByKeyValue.has(keyValues[i])) {\n exitNodes[i] = group[i];\n }\n }\n } else {\n for (i = -1; ++i < n0; ) {\n node = group[i];\n nodeData = groupData[i];\n if (node) {\n node.__data__ = nodeData;\n updateNodes[i] = node;\n } else {\n enterNodes[i] = d3_selection_dataNode(nodeData);\n }\n }\n for (;i < m; ++i) {\n enterNodes[i] = d3_selection_dataNode(groupData[i]);\n }\n for (;i < n; ++i) {\n exitNodes[i] = group[i];\n }\n }\n enterNodes.update = updateNodes;\n enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;\n enter.push(enterNodes);\n update.push(updateNodes);\n exit.push(exitNodes);\n }\n var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);\n if (typeof value === \"function\") {\n while (++i < n) {\n bind(group = this[i], value.call(group, group.parentNode.__data__, i));\n }\n } else {\n while (++i < n) {\n bind(group = this[i], value);\n }\n }\n update.enter = function() {\n return enter;\n };\n update.exit = function() {\n return exit;\n };\n return update;\n };\n function d3_selection_dataNode(data) {\n return {\n __data__: data\n };\n }\n d3_selectionPrototype.datum = function(value) {\n return arguments.length ? this.property(\"__data__\", value) : this.property(\"__data__\");\n };\n d3_selectionPrototype.filter = function(filter) {\n var subgroups = [], subgroup, group, node;\n if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n subgroup.parentNode = (group = this[j]).parentNode;\n for (var i = 0, n = group.length; i < n; i++) {\n if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n subgroup.push(node);\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_filter(selector) {\n return function() {\n return d3_selectMatches(this, selector);\n };\n }\n d3_selectionPrototype.order = function() {\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n return this;\n };\n d3_selectionPrototype.sort = function(comparator) {\n comparator = d3_selection_sortComparator.apply(this, arguments);\n for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);\n return this.order();\n };\n function d3_selection_sortComparator(comparator) {\n if (!arguments.length) comparator = d3_ascending;\n return function(a, b) {\n return a && b ? comparator(a.__data__, b.__data__) : !a - !b;\n };\n }\n d3_selectionPrototype.each = function(callback) {\n return d3_selection_each(this, function(node, i, j) {\n callback.call(node, node.__data__, i, j);\n });\n };\n function d3_selection_each(groups, callback) {\n for (var j = 0, m = groups.length; j < m; j++) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {\n if (node = group[i]) callback(node, i, j);\n }\n }\n return groups;\n }\n d3_selectionPrototype.call = function(callback) {\n var args = d3_array(arguments);\n callback.apply(args[0] = this, args);\n return this;\n };\n d3_selectionPrototype.empty = function() {\n return !this.node();\n };\n d3_selectionPrototype.node = function() {\n for (var j = 0, m = this.length; j < m; j++) {\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n var node = group[i];\n if (node) return node;\n }\n }\n return null;\n };\n d3_selectionPrototype.size = function() {\n var n = 0;\n this.each(function() {\n ++n;\n });\n return n;\n };\n function d3_selection_enter(selection) {\n d3_subclass(selection, d3_selection_enterPrototype);\n return selection;\n }\n var d3_selection_enterPrototype = [];\n d3.selection.enter = d3_selection_enter;\n d3.selection.enter.prototype = d3_selection_enterPrototype;\n d3_selection_enterPrototype.append = d3_selectionPrototype.append;\n d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;\n d3_selection_enterPrototype.node = d3_selectionPrototype.node;\n d3_selection_enterPrototype.call = d3_selectionPrototype.call;\n d3_selection_enterPrototype.size = d3_selectionPrototype.size;\n d3_selection_enterPrototype.select = function(selector) {\n var subgroups = [], subgroup, subnode, upgroup, group, node;\n for (var j = -1, m = this.length; ++j < m; ) {\n upgroup = (group = this[j]).update;\n subgroups.push(subgroup = []);\n subgroup.parentNode = group.parentNode;\n for (var i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j));\n subnode.__data__ = node.__data__;\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_selection(subgroups);\n };\n d3_selection_enterPrototype.insert = function(name, before) {\n if (arguments.length < 2) before = d3_selection_enterInsertBefore(this);\n return d3_selectionPrototype.insert.call(this, name, before);\n };\n function d3_selection_enterInsertBefore(enter) {\n var i0, j0;\n return function(d, i, j) {\n var group = enter[j].update, n = group.length, node;\n if (j != j0) j0 = j, i0 = 0;\n if (i >= i0) i0 = i + 1;\n while (!(node = group[i0]) && ++i0 < n) ;\n return node;\n };\n }\n d3_selectionPrototype.transition = function() {\n var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = d3_transitionInherit || {\n time: Date.now(),\n ease: d3_ease_cubicInOut,\n delay: 0,\n duration: 250\n };\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) d3_transitionNode(node, i, id, transition);\n subgroup.push(node);\n }\n }\n return d3_transition(subgroups, id);\n };\n d3_selectionPrototype.interrupt = function() {\n return this.each(d3_selection_interrupt);\n };\n function d3_selection_interrupt() {\n var lock = this.__transition__;\n if (lock) ++lock.active;\n }\n d3.select = function(node) {\n var group = [ typeof node === \"string\" ? d3_select(node, d3_document) : node ];\n group.parentNode = d3_documentElement;\n return d3_selection([ group ]);\n };\n d3.selectAll = function(nodes) {\n var group = d3_array(typeof nodes === \"string\" ? d3_selectAll(nodes, d3_document) : nodes);\n group.parentNode = d3_documentElement;\n return d3_selection([ group ]);\n };\n var d3_selectionRoot = d3.select(d3_documentElement);\n d3_selectionPrototype.on = function(type, listener, capture) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof type !== \"string\") {\n if (n < 2) listener = false;\n for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));\n return this;\n }\n if (n < 2) return (n = this.node()[\"__on\" + type]) && n._;\n capture = false;\n }\n return this.each(d3_selection_on(type, listener, capture));\n };\n function d3_selection_on(type, listener, capture) {\n var name = \"__on\" + type, i = type.indexOf(\".\"), wrap = d3_selection_onListener;\n if (i > 0) type = type.substring(0, i);\n var filter = d3_selection_onFilters.get(type);\n if (filter) type = filter, wrap = d3_selection_onFilter;\n function onRemove() {\n var l = this[name];\n if (l) {\n this.removeEventListener(type, l, l.$);\n delete this[name];\n }\n }\n function onAdd() {\n var l = wrap(listener, d3_array(arguments));\n onRemove.call(this);\n this.addEventListener(type, this[name] = l, l.$ = capture);\n l._ = listener;\n }\n function removeAll() {\n var re = new RegExp(\"^__on([^.]+)\" + d3.requote(type) + \"$\"), match;\n for (var name in this) {\n if (match = name.match(re)) {\n var l = this[name];\n this.removeEventListener(match[1], l, l.$);\n delete this[name];\n }\n }\n }\n return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;\n }\n var d3_selection_onFilters = d3.map({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n });\n d3_selection_onFilters.forEach(function(k) {\n if (\"on\" + k in d3_document) d3_selection_onFilters.remove(k);\n });\n function d3_selection_onListener(listener, argumentz) {\n return function(e) {\n var o = d3.event;\n d3.event = e;\n argumentz[0] = this.__data__;\n try {\n listener.apply(this, argumentz);\n } finally {\n d3.event = o;\n }\n };\n }\n function d3_selection_onFilter(listener, argumentz) {\n var l = d3_selection_onListener(listener, argumentz);\n return function(e) {\n var target = this, related = e.relatedTarget;\n if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {\n l.call(target, e);\n }\n };\n }\n var d3_event_dragSelect = \"onselectstart\" in d3_document ? null : d3_vendorSymbol(d3_documentElement.style, \"userSelect\"), d3_event_dragId = 0;\n function d3_event_dragSuppress() {\n var name = \".dragsuppress-\" + ++d3_event_dragId, click = \"click\" + name, w = d3.select(d3_window).on(\"touchmove\" + name, d3_eventPreventDefault).on(\"dragstart\" + name, d3_eventPreventDefault).on(\"selectstart\" + name, d3_eventPreventDefault);\n if (d3_event_dragSelect) {\n var style = d3_documentElement.style, select = style[d3_event_dragSelect];\n style[d3_event_dragSelect] = \"none\";\n }\n return function(suppressClick) {\n w.on(name, null);\n if (d3_event_dragSelect) style[d3_event_dragSelect] = select;\n if (suppressClick) {\n function off() {\n w.on(click, null);\n }\n w.on(click, function() {\n d3_eventPreventDefault();\n off();\n }, true);\n setTimeout(off, 0);\n }\n };\n }\n d3.mouse = function(container) {\n return d3_mousePoint(container, d3_eventSource());\n };\n var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0;\n function d3_mousePoint(container, e) {\n if (e.changedTouches) e = e.changedTouches[0];\n var svg = container.ownerSVGElement || container;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n if (d3_mouse_bug44083 < 0 && (d3_window.scrollX || d3_window.scrollY)) {\n svg = d3.select(\"body\").append(\"svg\").style({\n position: \"absolute\",\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n border: \"none\"\n }, \"important\");\n var ctm = svg[0][0].getScreenCTM();\n d3_mouse_bug44083 = !(ctm.f || ctm.e);\n svg.remove();\n }\n if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX, \n point.y = e.clientY;\n point = point.matrixTransform(container.getScreenCTM().inverse());\n return [ point.x, point.y ];\n }\n var rect = container.getBoundingClientRect();\n return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];\n }\n d3.touches = function(container, touches) {\n if (arguments.length < 2) touches = d3_eventSource().touches;\n return touches ? d3_array(touches).map(function(touch) {\n var point = d3_mousePoint(container, touch);\n point.identifier = touch.identifier;\n return point;\n }) : [];\n };\n d3.behavior.drag = function() {\n var event = d3_eventDispatch(drag, \"drag\", \"dragstart\", \"dragend\"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_behavior_dragMouseSubject, \"mousemove\", \"mouseup\"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_behavior_dragTouchSubject, \"touchmove\", \"touchend\");\n function drag() {\n this.on(\"mousedown.drag\", mousedown).on(\"touchstart.drag\", touchstart);\n }\n function dragstart(id, position, subject, move, end) {\n return function() {\n var that = this, target = d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = \".drag\" + (dragId == null ? \"\" : \"-\" + dragId), dragOffset, dragSubject = d3.select(subject()).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(), position0 = position(parent, dragId);\n if (origin) {\n dragOffset = origin.apply(that, arguments);\n dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ];\n } else {\n dragOffset = [ 0, 0 ];\n }\n dispatch({\n type: \"dragstart\"\n });\n function moved() {\n var position1 = position(parent, dragId), dx, dy;\n if (!position1) return;\n dx = position1[0] - position0[0];\n dy = position1[1] - position0[1];\n dragged |= dx | dy;\n position0 = position1;\n dispatch({\n type: \"drag\",\n x: position1[0] + dragOffset[0],\n y: position1[1] + dragOffset[1],\n dx: dx,\n dy: dy\n });\n }\n function ended() {\n if (!position(parent, dragId)) return;\n dragSubject.on(move + dragName, null).on(end + dragName, null);\n dragRestore(dragged && d3.event.target === target);\n dispatch({\n type: \"dragend\"\n });\n }\n };\n }\n drag.origin = function(x) {\n if (!arguments.length) return origin;\n origin = x;\n return drag;\n };\n return d3.rebind(drag, event, \"on\");\n };\n function d3_behavior_dragTouchId() {\n return d3.event.changedTouches[0].identifier;\n }\n function d3_behavior_dragTouchSubject() {\n return d3.event.target;\n }\n function d3_behavior_dragMouseSubject() {\n return d3_window;\n }\n var π = Math.PI, τ = 2 * π, halfπ = π / 2, ε = 1e-6, ε2 = ε * ε, d3_radians = π / 180, d3_degrees = 180 / π;\n function d3_sgn(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n }\n function d3_cross2d(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n }\n function d3_acos(x) {\n return x > 1 ? 0 : x < -1 ? π : Math.acos(x);\n }\n function d3_asin(x) {\n return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);\n }\n function d3_sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n }\n function d3_cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n }\n function d3_tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n }\n function d3_haversin(x) {\n return (x = Math.sin(x / 2)) * x;\n }\n var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4;\n d3.interpolateZoom = function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2];\n var dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1), dr = r1 - r0, S = (dr || Math.log(w1 / w0)) / ρ;\n function interpolate(t) {\n var s = t * S;\n if (dr) {\n var coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0));\n return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ];\n }\n return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * s) ];\n }\n interpolate.duration = S * 1e3;\n return interpolate;\n };\n d3.behavior.zoom = function() {\n var view = {\n x: 0,\n y: 0,\n k: 1\n }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, mousedown = \"mousedown.zoom\", mousemove = \"mousemove.zoom\", mouseup = \"mouseup.zoom\", mousewheelTimer, touchstart = \"touchstart.zoom\", touchtime, event = d3_eventDispatch(zoom, \"zoomstart\", \"zoom\", \"zoomend\"), x0, x1, y0, y1;\n function zoom(g) {\n g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + \".zoom\", mousewheeled).on(\"dblclick.zoom\", dblclicked).on(touchstart, touchstarted);\n }\n zoom.event = function(g) {\n g.each(function() {\n var dispatch = event.of(this, arguments), view1 = view;\n if (d3_transitionInheritId) {\n d3.select(this).transition().each(\"start.zoom\", function() {\n view = this.__chart__ || {\n x: 0,\n y: 0,\n k: 1\n };\n zoomstarted(dispatch);\n }).tween(\"zoom:zoom\", function() {\n var dx = size[0], dy = size[1], cx = dx / 2, cy = dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]);\n return function(t) {\n var l = i(t), k = dx / l[2];\n this.__chart__ = view = {\n x: cx - l[0] * k,\n y: cy - l[1] * k,\n k: k\n };\n zoomed(dispatch);\n };\n }).each(\"end.zoom\", function() {\n zoomended(dispatch);\n });\n } else {\n this.__chart__ = view;\n zoomstarted(dispatch);\n zoomed(dispatch);\n zoomended(dispatch);\n }\n });\n };\n zoom.translate = function(_) {\n if (!arguments.length) return [ view.x, view.y ];\n view = {\n x: +_[0],\n y: +_[1],\n k: view.k\n };\n rescale();\n return zoom;\n };\n zoom.scale = function(_) {\n if (!arguments.length) return view.k;\n view = {\n x: view.x,\n y: view.y,\n k: +_\n };\n rescale();\n return zoom;\n };\n zoom.scaleExtent = function(_) {\n if (!arguments.length) return scaleExtent;\n scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.center = function(_) {\n if (!arguments.length) return center;\n center = _ && [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.size = function(_) {\n if (!arguments.length) return size;\n size = _ && [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.x = function(z) {\n if (!arguments.length) return x1;\n x1 = z;\n x0 = z.copy();\n view = {\n x: 0,\n y: 0,\n k: 1\n };\n return zoom;\n };\n zoom.y = function(z) {\n if (!arguments.length) return y1;\n y1 = z;\n y0 = z.copy();\n view = {\n x: 0,\n y: 0,\n k: 1\n };\n return zoom;\n };\n function location(p) {\n return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ];\n }\n function point(l) {\n return [ l[0] * view.k + view.x, l[1] * view.k + view.y ];\n }\n function scaleTo(s) {\n view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));\n }\n function translateTo(p, l) {\n l = point(l);\n view.x += p[0] - l[0];\n view.y += p[1] - l[1];\n }\n function rescale() {\n if (x1) x1.domain(x0.range().map(function(x) {\n return (x - view.x) / view.k;\n }).map(x0.invert));\n if (y1) y1.domain(y0.range().map(function(y) {\n return (y - view.y) / view.k;\n }).map(y0.invert));\n }\n function zoomstarted(dispatch) {\n dispatch({\n type: \"zoomstart\"\n });\n }\n function zoomed(dispatch) {\n rescale();\n dispatch({\n type: \"zoom\",\n scale: view.k,\n translate: [ view.x, view.y ]\n });\n }\n function zoomended(dispatch) {\n dispatch({\n type: \"zoomend\"\n });\n }\n function mousedowned() {\n var that = this, target = d3.event.target, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress();\n d3_selection_interrupt.call(that);\n zoomstarted(dispatch);\n function moved() {\n dragged = 1;\n translateTo(d3.mouse(that), location0);\n zoomed(dispatch);\n }\n function ended() {\n subject.on(mousemove, null).on(mouseup, null);\n dragRestore(dragged && d3.event.target === target);\n zoomended(dispatch);\n }\n }\n function touchstarted() {\n var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = \".zoom-\" + d3.event.changedTouches[0].identifier, touchmove = \"touchmove\" + zoomName, touchend = \"touchend\" + zoomName, targets = [], subject = d3.select(that).on(mousedown, null).on(touchstart, started), dragRestore = d3_event_dragSuppress();\n d3_selection_interrupt.call(that);\n started();\n zoomstarted(dispatch);\n function relocate() {\n var touches = d3.touches(that);\n scale0 = view.k;\n touches.forEach(function(t) {\n if (t.identifier in locations0) locations0[t.identifier] = location(t);\n });\n return touches;\n }\n function started() {\n var target = d3.event.target;\n d3.select(target).on(touchmove, moved).on(touchend, ended);\n targets.push(target);\n var changed = d3.event.changedTouches;\n for (var i = 0, n = changed.length; i < n; ++i) {\n locations0[changed[i].identifier] = null;\n }\n var touches = relocate(), now = Date.now();\n if (touches.length === 1) {\n if (now - touchtime < 500) {\n var p = touches[0], l = locations0[p.identifier];\n scaleTo(view.k * 2);\n translateTo(p, l);\n d3_eventPreventDefault();\n zoomed(dispatch);\n }\n touchtime = now;\n } else if (touches.length > 1) {\n var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1];\n distance0 = dx * dx + dy * dy;\n }\n }\n function moved() {\n var touches = d3.touches(that), p0, l0, p1, l1;\n for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {\n p1 = touches[i];\n if (l1 = locations0[p1.identifier]) {\n if (l0) break;\n p0 = p1, l0 = l1;\n }\n }\n if (l1) {\n var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0);\n p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];\n l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];\n scaleTo(scale1 * scale0);\n }\n touchtime = null;\n translateTo(p0, l0);\n zoomed(dispatch);\n }\n function ended() {\n if (d3.event.touches.length) {\n var changed = d3.event.changedTouches;\n for (var i = 0, n = changed.length; i < n; ++i) {\n delete locations0[changed[i].identifier];\n }\n for (var identifier in locations0) {\n return void relocate();\n }\n }\n d3.selectAll(targets).on(zoomName, null);\n subject.on(mousedown, mousedowned).on(touchstart, touchstarted);\n dragRestore();\n zoomended(dispatch);\n }\n }\n function mousewheeled() {\n var dispatch = event.of(this, arguments);\n if (mousewheelTimer) clearTimeout(mousewheelTimer); else translate0 = location(center0 = center || d3.mouse(this)), \n d3_selection_interrupt.call(this), zoomstarted(dispatch);\n mousewheelTimer = setTimeout(function() {\n mousewheelTimer = null;\n zoomended(dispatch);\n }, 50);\n d3_eventPreventDefault();\n scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);\n translateTo(center0, translate0);\n zoomed(dispatch);\n }\n function dblclicked() {\n var dispatch = event.of(this, arguments), p = d3.mouse(this), l = location(p), k = Math.log(view.k) / Math.LN2;\n zoomstarted(dispatch);\n scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1));\n translateTo(p, l);\n zoomed(dispatch);\n zoomended(dispatch);\n }\n return d3.rebind(zoom, event, \"on\");\n };\n var d3_behavior_zoomInfinity = [ 0, Infinity ];\n var d3_behavior_zoomDelta, d3_behavior_zoomWheel = \"onwheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);\n }, \"wheel\") : \"onmousewheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n return d3.event.wheelDelta;\n }, \"mousewheel\") : (d3_behavior_zoomDelta = function() {\n return -d3.event.detail;\n }, \"MozMousePixelScroll\");\n d3.color = d3_color;\n function d3_color() {}\n d3_color.prototype.toString = function() {\n return this.rgb() + \"\";\n };\n d3.hsl = d3_hsl;\n function d3_hsl(h, s, l) {\n return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse(\"\" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l);\n }\n var d3_hslPrototype = d3_hsl.prototype = new d3_color();\n d3_hslPrototype.brighter = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_hsl(this.h, this.s, this.l / k);\n };\n d3_hslPrototype.darker = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_hsl(this.h, this.s, k * this.l);\n };\n d3_hslPrototype.rgb = function() {\n return d3_hsl_rgb(this.h, this.s, this.l);\n };\n function d3_hsl_rgb(h, s, l) {\n var m1, m2;\n h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h;\n s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n m2 = l <= .5 ? l * (1 + s) : l + s - l * s;\n m1 = 2 * l - m2;\n function v(h) {\n if (h > 360) h -= 360; else if (h < 0) h += 360;\n if (h < 60) return m1 + (m2 - m1) * h / 60;\n if (h < 180) return m2;\n if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;\n return m1;\n }\n function vv(h) {\n return Math.round(v(h) * 255);\n }\n return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));\n }\n d3.hcl = d3_hcl;\n function d3_hcl(h, c, l) {\n return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l);\n }\n var d3_hclPrototype = d3_hcl.prototype = new d3_color();\n d3_hclPrototype.brighter = function(k) {\n return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));\n };\n d3_hclPrototype.darker = function(k) {\n return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));\n };\n d3_hclPrototype.rgb = function() {\n return d3_hcl_lab(this.h, this.c, this.l).rgb();\n };\n function d3_hcl_lab(h, c, l) {\n if (isNaN(h)) h = 0;\n if (isNaN(c)) c = 0;\n return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);\n }\n d3.lab = d3_lab;\n function d3_lab(l, a, b) {\n return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b);\n }\n var d3_lab_K = 18;\n var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;\n var d3_labPrototype = d3_lab.prototype = new d3_color();\n d3_labPrototype.brighter = function(k) {\n return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n };\n d3_labPrototype.darker = function(k) {\n return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n };\n d3_labPrototype.rgb = function() {\n return d3_lab_rgb(this.l, this.a, this.b);\n };\n function d3_lab_rgb(l, a, b) {\n var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;\n x = d3_lab_xyz(x) * d3_lab_X;\n y = d3_lab_xyz(y) * d3_lab_Y;\n z = d3_lab_xyz(z) * d3_lab_Z;\n return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));\n }\n function d3_lab_hcl(l, a, b) {\n return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l);\n }\n function d3_lab_xyz(x) {\n return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;\n }\n function d3_xyz_lab(x) {\n return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;\n }\n function d3_xyz_rgb(r) {\n return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));\n }\n d3.rgb = d3_rgb;\n function d3_rgb(r, g, b) {\n return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse(\"\" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b);\n }\n function d3_rgbNumber(value) {\n return new d3_rgb(value >> 16, value >> 8 & 255, value & 255);\n }\n function d3_rgbString(value) {\n return d3_rgbNumber(value) + \"\";\n }\n var d3_rgbPrototype = d3_rgb.prototype = new d3_color();\n d3_rgbPrototype.brighter = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n var r = this.r, g = this.g, b = this.b, i = 30;\n if (!r && !g && !b) return new d3_rgb(i, i, i);\n if (r && r < i) r = i;\n if (g && g < i) g = i;\n if (b && b < i) b = i;\n return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));\n };\n d3_rgbPrototype.darker = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_rgb(k * this.r, k * this.g, k * this.b);\n };\n d3_rgbPrototype.hsl = function() {\n return d3_rgb_hsl(this.r, this.g, this.b);\n };\n d3_rgbPrototype.toString = function() {\n return \"#\" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);\n };\n function d3_rgb_hex(v) {\n return v < 16 ? \"0\" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);\n }\n function d3_rgb_parse(format, rgb, hsl) {\n var r = 0, g = 0, b = 0, m1, m2, color;\n m1 = /([a-z]+)\\((.*)\\)/i.exec(format);\n if (m1) {\n m2 = m1[2].split(\",\");\n switch (m1[1]) {\n case \"hsl\":\n {\n return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);\n }\n\n case \"rgb\":\n {\n return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));\n }\n }\n }\n if (color = d3_rgb_names.get(format)) return rgb(color.r, color.g, color.b);\n if (format != null && format.charAt(0) === \"#\" && !isNaN(color = parseInt(format.substring(1), 16))) {\n if (format.length === 4) {\n r = (color & 3840) >> 4;\n r = r >> 4 | r;\n g = color & 240;\n g = g >> 4 | g;\n b = color & 15;\n b = b << 4 | b;\n } else if (format.length === 7) {\n r = (color & 16711680) >> 16;\n g = (color & 65280) >> 8;\n b = color & 255;\n }\n }\n return rgb(r, g, b);\n }\n function d3_rgb_hsl(r, g, b) {\n var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;\n if (d) {\n s = l < .5 ? d / (max + min) : d / (2 - max - min);\n if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;\n h *= 60;\n } else {\n h = NaN;\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new d3_hsl(h, s, l);\n }\n function d3_rgb_lab(r, g, b) {\n r = d3_rgb_xyz(r);\n g = d3_rgb_xyz(g);\n b = d3_rgb_xyz(b);\n var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);\n return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));\n }\n function d3_rgb_xyz(r) {\n return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);\n }\n function d3_rgb_parseNumber(c) {\n var f = parseFloat(c);\n return c.charAt(c.length - 1) === \"%\" ? Math.round(f * 2.55) : f;\n }\n var d3_rgb_names = d3.map({\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n });\n d3_rgb_names.forEach(function(key, value) {\n d3_rgb_names.set(key, d3_rgbNumber(value));\n });\n function d3_functor(v) {\n return typeof v === \"function\" ? v : function() {\n return v;\n };\n }\n d3.functor = d3_functor;\n function d3_identity(d) {\n return d;\n }\n d3.xhr = d3_xhrType(d3_identity);\n function d3_xhrType(response) {\n return function(url, mimeType, callback) {\n if (arguments.length === 2 && typeof mimeType === \"function\") callback = mimeType, \n mimeType = null;\n return d3_xhr(url, mimeType, response, callback);\n };\n }\n function d3_xhr(url, mimeType, response, callback) {\n var xhr = {}, dispatch = d3.dispatch(\"beforesend\", \"progress\", \"load\", \"error\"), headers = {}, request = new XMLHttpRequest(), responseType = null;\n if (d3_window.XDomainRequest && !(\"withCredentials\" in request) && /^(http(s)?:)?\\/\\//.test(url)) request = new XDomainRequest();\n \"onload\" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {\n request.readyState > 3 && respond();\n };\n function respond() {\n var status = request.status, result;\n if (!status && request.responseText || status >= 200 && status < 300 || status === 304) {\n try {\n result = response.call(xhr, request);\n } catch (e) {\n dispatch.error.call(xhr, e);\n return;\n }\n dispatch.load.call(xhr, result);\n } else {\n dispatch.error.call(xhr, request);\n }\n }\n request.onprogress = function(event) {\n var o = d3.event;\n d3.event = event;\n try {\n dispatch.progress.call(xhr, request);\n } finally {\n d3.event = o;\n }\n };\n xhr.header = function(name, value) {\n name = (name + \"\").toLowerCase();\n if (arguments.length < 2) return headers[name];\n if (value == null) delete headers[name]; else headers[name] = value + \"\";\n return xhr;\n };\n xhr.mimeType = function(value) {\n if (!arguments.length) return mimeType;\n mimeType = value == null ? null : value + \"\";\n return xhr;\n };\n xhr.responseType = function(value) {\n if (!arguments.length) return responseType;\n responseType = value;\n return xhr;\n };\n xhr.response = function(value) {\n response = value;\n return xhr;\n };\n [ \"get\", \"post\" ].forEach(function(method) {\n xhr[method] = function() {\n return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));\n };\n });\n xhr.send = function(method, data, callback) {\n if (arguments.length === 2 && typeof data === \"function\") callback = data, data = null;\n request.open(method, url, true);\n if (mimeType != null && !(\"accept\" in headers)) headers[\"accept\"] = mimeType + \",*/*\";\n if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);\n if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);\n if (responseType != null) request.responseType = responseType;\n if (callback != null) xhr.on(\"error\", callback).on(\"load\", function(request) {\n callback(null, request);\n });\n dispatch.beforesend.call(xhr, request);\n request.send(data == null ? null : data);\n return xhr;\n };\n xhr.abort = function() {\n request.abort();\n return xhr;\n };\n d3.rebind(xhr, dispatch, \"on\");\n return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));\n }\n function d3_xhr_fixCallback(callback) {\n return callback.length === 1 ? function(error, request) {\n callback(error == null ? request : null);\n } : callback;\n }\n d3.dsv = function(delimiter, mimeType) {\n var reFormat = new RegExp('[\"' + delimiter + \"\\n]\"), delimiterCode = delimiter.charCodeAt(0);\n function dsv(url, row, callback) {\n if (arguments.length < 3) callback = row, row = null;\n var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback);\n xhr.row = function(_) {\n return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;\n };\n return xhr;\n }\n function response(request) {\n return dsv.parse(request.responseText);\n }\n function typedResponse(f) {\n return function(request) {\n return dsv.parse(request.responseText, f);\n };\n }\n dsv.parse = function(text, f) {\n var o;\n return dsv.parseRows(text, function(row, i) {\n if (o) return o(row, i - 1);\n var a = new Function(\"d\", \"return {\" + row.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"]\";\n }).join(\",\") + \"}\");\n o = f ? function(row, i) {\n return f(a(row), i);\n } : a;\n });\n };\n dsv.parseRows = function(text, f) {\n var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;\n function token() {\n if (I >= N) return EOF;\n if (eol) return eol = false, EOL;\n var j = I;\n if (text.charCodeAt(j) === 34) {\n var i = j;\n while (i++ < N) {\n if (text.charCodeAt(i) === 34) {\n if (text.charCodeAt(i + 1) !== 34) break;\n ++i;\n }\n }\n I = i + 2;\n var c = text.charCodeAt(i + 1);\n if (c === 13) {\n eol = true;\n if (text.charCodeAt(i + 2) === 10) ++I;\n } else if (c === 10) {\n eol = true;\n }\n return text.substring(j + 1, i).replace(/\"\"/g, '\"');\n }\n while (I < N) {\n var c = text.charCodeAt(I++), k = 1;\n if (c === 10) eol = true; else if (c === 13) {\n eol = true;\n if (text.charCodeAt(I) === 10) ++I, ++k;\n } else if (c !== delimiterCode) continue;\n return text.substring(j, I - k);\n }\n return text.substring(j);\n }\n while ((t = token()) !== EOF) {\n var a = [];\n while (t !== EOL && t !== EOF) {\n a.push(t);\n t = token();\n }\n if (f && !(a = f(a, n++))) continue;\n rows.push(a);\n }\n return rows;\n };\n dsv.format = function(rows) {\n if (Array.isArray(rows[0])) return dsv.formatRows(rows);\n var fieldSet = new d3_Set(), fields = [];\n rows.forEach(function(row) {\n for (var field in row) {\n if (!fieldSet.has(field)) {\n fields.push(fieldSet.add(field));\n }\n }\n });\n return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) {\n return fields.map(function(field) {\n return formatValue(row[field]);\n }).join(delimiter);\n })).join(\"\\n\");\n };\n dsv.formatRows = function(rows) {\n return rows.map(formatRow).join(\"\\n\");\n };\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n function formatValue(text) {\n return reFormat.test(text) ? '\"' + text.replace(/\\\"/g, '\"\"') + '\"' : text;\n }\n return dsv;\n };\n d3.csv = d3.dsv(\",\", \"text/csv\");\n d3.tsv = d3.dsv(\"\t\", \"text/tab-separated-values\");\n d3.touch = function(container, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;\n if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return d3_mousePoint(container, touch);\n }\n }\n };\n var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_active, d3_timer_frame = d3_window[d3_vendorSymbol(d3_window, \"requestAnimationFrame\")] || function(callback) {\n setTimeout(callback, 17);\n };\n d3.timer = function(callback, delay, then) {\n var n = arguments.length;\n if (n < 2) delay = 0;\n if (n < 3) then = Date.now();\n var time = then + delay, timer = {\n c: callback,\n t: time,\n f: false,\n n: null\n };\n if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer;\n d3_timer_queueTail = timer;\n if (!d3_timer_interval) {\n d3_timer_timeout = clearTimeout(d3_timer_timeout);\n d3_timer_interval = 1;\n d3_timer_frame(d3_timer_step);\n }\n };\n function d3_timer_step() {\n var now = d3_timer_mark(), delay = d3_timer_sweep() - now;\n if (delay > 24) {\n if (isFinite(delay)) {\n clearTimeout(d3_timer_timeout);\n d3_timer_timeout = setTimeout(d3_timer_step, delay);\n }\n d3_timer_interval = 0;\n } else {\n d3_timer_interval = 1;\n d3_timer_frame(d3_timer_step);\n }\n }\n d3.timer.flush = function() {\n d3_timer_mark();\n d3_timer_sweep();\n };\n function d3_timer_mark() {\n var now = Date.now();\n d3_timer_active = d3_timer_queueHead;\n while (d3_timer_active) {\n if (now >= d3_timer_active.t) d3_timer_active.f = d3_timer_active.c(now - d3_timer_active.t);\n d3_timer_active = d3_timer_active.n;\n }\n return now;\n }\n function d3_timer_sweep() {\n var t0, t1 = d3_timer_queueHead, time = Infinity;\n while (t1) {\n if (t1.f) {\n t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n;\n } else {\n if (t1.t < time) time = t1.t;\n t1 = (t0 = t1).n;\n }\n }\n d3_timer_queueTail = t0;\n return time;\n }\n function d3_format_precision(x, p) {\n return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);\n }\n d3.round = function(x, n) {\n return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);\n };\n var d3_formatPrefixes = [ \"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\" ].map(d3_formatPrefix);\n d3.formatPrefix = function(value, precision) {\n var i = 0;\n if (value) {\n if (value < 0) value *= -1;\n if (precision) value = d3.round(value, d3_format_precision(value, precision));\n i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);\n i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));\n }\n return d3_formatPrefixes[8 + i / 3];\n };\n function d3_formatPrefix(d, i) {\n var k = Math.pow(10, abs(8 - i) * 3);\n return {\n scale: i > 8 ? function(d) {\n return d / k;\n } : function(d) {\n return d * k;\n },\n symbol: d\n };\n }\n function d3_locale_numberFormat(locale) {\n var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping ? function(value) {\n var i = value.length, t = [], j = 0, g = locale_grouping[0];\n while (i > 0 && g > 0) {\n t.push(value.substring(i -= g, i + g));\n g = locale_grouping[j = (j + 1) % locale_grouping.length];\n }\n return t.reverse().join(locale_thousands);\n } : d3_identity;\n return function(specifier) {\n var match = d3_format_re.exec(specifier), fill = match[1] || \" \", align = match[2] || \">\", sign = match[3] || \"\", symbol = match[4] || \"\", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = \"\", suffix = \"\", integer = false;\n if (precision) precision = +precision.substring(1);\n if (zfill || fill === \"0\" && align === \"=\") {\n zfill = fill = \"0\";\n align = \"=\";\n if (comma) width -= Math.floor((width - 1) / 4);\n }\n switch (type) {\n case \"n\":\n comma = true;\n type = \"g\";\n break;\n\n case \"%\":\n scale = 100;\n suffix = \"%\";\n type = \"f\";\n break;\n\n case \"p\":\n scale = 100;\n suffix = \"%\";\n type = \"r\";\n break;\n\n case \"b\":\n case \"o\":\n case \"x\":\n case \"X\":\n if (symbol === \"#\") prefix = \"0\" + type.toLowerCase();\n\n case \"c\":\n case \"d\":\n integer = true;\n precision = 0;\n break;\n\n case \"s\":\n scale = -1;\n type = \"r\";\n break;\n }\n if (symbol === \"$\") prefix = locale_currency[0], suffix = locale_currency[1];\n if (type == \"r\" && !precision) type = \"g\";\n if (precision != null) {\n if (type == \"g\") precision = Math.max(1, Math.min(21, precision)); else if (type == \"e\" || type == \"f\") precision = Math.max(0, Math.min(20, precision));\n }\n type = d3_format_types.get(type) || d3_format_typeDefault;\n var zcomma = zfill && comma;\n return function(value) {\n var fullSuffix = suffix;\n if (integer && value % 1) return \"\";\n var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, \"-\") : sign;\n if (scale < 0) {\n var unit = d3.formatPrefix(value, precision);\n value = unit.scale(value);\n fullSuffix = unit.symbol + suffix;\n } else {\n value *= scale;\n }\n value = type(value, precision);\n var i = value.lastIndexOf(\".\"), before = i < 0 ? value : value.substring(0, i), after = i < 0 ? \"\" : locale_decimal + value.substring(i + 1);\n if (!zfill && comma) before = formatGroup(before);\n var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : \"\";\n if (zcomma) before = formatGroup(padding + before);\n negative += prefix;\n value = before + after;\n return (align === \"<\" ? negative + value + padding : align === \">\" ? padding + negative + value : align === \"^\" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix;\n };\n };\n }\n var d3_format_re = /(?:([^{])?([<>=^]))?([+\\- ])?([$#])?(0)?(\\d+)?(,)?(\\.-?\\d+)?([a-z%])?/i;\n var d3_format_types = d3.map({\n b: function(x) {\n return x.toString(2);\n },\n c: function(x) {\n return String.fromCharCode(x);\n },\n o: function(x) {\n return x.toString(8);\n },\n x: function(x) {\n return x.toString(16);\n },\n X: function(x) {\n return x.toString(16).toUpperCase();\n },\n g: function(x, p) {\n return x.toPrecision(p);\n },\n e: function(x, p) {\n return x.toExponential(p);\n },\n f: function(x, p) {\n return x.toFixed(p);\n },\n r: function(x, p) {\n return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));\n }\n });\n function d3_format_typeDefault(x) {\n return x + \"\";\n }\n var d3_time = d3.time = {}, d3_date = Date;\n function d3_date_utc() {\n this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);\n }\n d3_date_utc.prototype = {\n getDate: function() {\n return this._.getUTCDate();\n },\n getDay: function() {\n return this._.getUTCDay();\n },\n getFullYear: function() {\n return this._.getUTCFullYear();\n },\n getHours: function() {\n return this._.getUTCHours();\n },\n getMilliseconds: function() {\n return this._.getUTCMilliseconds();\n },\n getMinutes: function() {\n return this._.getUTCMinutes();\n },\n getMonth: function() {\n return this._.getUTCMonth();\n },\n getSeconds: function() {\n return this._.getUTCSeconds();\n },\n getTime: function() {\n return this._.getTime();\n },\n getTimezoneOffset: function() {\n return 0;\n },\n valueOf: function() {\n return this._.valueOf();\n },\n setDate: function() {\n d3_time_prototype.setUTCDate.apply(this._, arguments);\n },\n setDay: function() {\n d3_time_prototype.setUTCDay.apply(this._, arguments);\n },\n setFullYear: function() {\n d3_time_prototype.setUTCFullYear.apply(this._, arguments);\n },\n setHours: function() {\n d3_time_prototype.setUTCHours.apply(this._, arguments);\n },\n setMilliseconds: function() {\n d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);\n },\n setMinutes: function() {\n d3_time_prototype.setUTCMinutes.apply(this._, arguments);\n },\n setMonth: function() {\n d3_time_prototype.setUTCMonth.apply(this._, arguments);\n },\n setSeconds: function() {\n d3_time_prototype.setUTCSeconds.apply(this._, arguments);\n },\n setTime: function() {\n d3_time_prototype.setTime.apply(this._, arguments);\n }\n };\n var d3_time_prototype = Date.prototype;\n function d3_time_interval(local, step, number) {\n function round(date) {\n var d0 = local(date), d1 = offset(d0, 1);\n return date - d0 < d1 - date ? d0 : d1;\n }\n function ceil(date) {\n step(date = local(new d3_date(date - 1)), 1);\n return date;\n }\n function offset(date, k) {\n step(date = new d3_date(+date), k);\n return date;\n }\n function range(t0, t1, dt) {\n var time = ceil(t0), times = [];\n if (dt > 1) {\n while (time < t1) {\n if (!(number(time) % dt)) times.push(new Date(+time));\n step(time, 1);\n }\n } else {\n while (time < t1) times.push(new Date(+time)), step(time, 1);\n }\n return times;\n }\n function range_utc(t0, t1, dt) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date_utc();\n utc._ = t0;\n return range(utc, t1, dt);\n } finally {\n d3_date = Date;\n }\n }\n local.floor = local;\n local.round = round;\n local.ceil = ceil;\n local.offset = offset;\n local.range = range;\n var utc = local.utc = d3_time_interval_utc(local);\n utc.floor = utc;\n utc.round = d3_time_interval_utc(round);\n utc.ceil = d3_time_interval_utc(ceil);\n utc.offset = d3_time_interval_utc(offset);\n utc.range = range_utc;\n return local;\n }\n function d3_time_interval_utc(method) {\n return function(date, k) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date_utc();\n utc._ = date;\n return method(utc, k)._;\n } finally {\n d3_date = Date;\n }\n };\n }\n d3_time.year = d3_time_interval(function(date) {\n date = d3_time.day(date);\n date.setMonth(0, 1);\n return date;\n }, function(date, offset) {\n date.setFullYear(date.getFullYear() + offset);\n }, function(date) {\n return date.getFullYear();\n });\n d3_time.years = d3_time.year.range;\n d3_time.years.utc = d3_time.year.utc.range;\n d3_time.day = d3_time_interval(function(date) {\n var day = new d3_date(2e3, 0);\n day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n return day;\n }, function(date, offset) {\n date.setDate(date.getDate() + offset);\n }, function(date) {\n return date.getDate() - 1;\n });\n d3_time.days = d3_time.day.range;\n d3_time.days.utc = d3_time.day.utc.range;\n d3_time.dayOfYear = function(date) {\n var year = d3_time.year(date);\n return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);\n };\n [ \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\" ].forEach(function(day, i) {\n i = 7 - i;\n var interval = d3_time[day] = d3_time_interval(function(date) {\n (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);\n return date;\n }, function(date, offset) {\n date.setDate(date.getDate() + Math.floor(offset) * 7);\n }, function(date) {\n var day = d3_time.year(date).getDay();\n return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);\n });\n d3_time[day + \"s\"] = interval.range;\n d3_time[day + \"s\"].utc = interval.utc.range;\n d3_time[day + \"OfYear\"] = function(date) {\n var day = d3_time.year(date).getDay();\n return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7);\n };\n });\n d3_time.week = d3_time.sunday;\n d3_time.weeks = d3_time.sunday.range;\n d3_time.weeks.utc = d3_time.sunday.utc.range;\n d3_time.weekOfYear = d3_time.sundayOfYear;\n function d3_locale_timeFormat(locale) {\n var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths;\n function d3_time_format(template) {\n var n = template.length;\n function format(date) {\n var string = [], i = -1, j = 0, c, p, f;\n while (++i < n) {\n if (template.charCodeAt(i) === 37) {\n string.push(template.substring(j, i));\n if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);\n if (f = d3_time_formats[c]) c = f(date, p == null ? c === \"e\" ? \" \" : \"0\" : p);\n string.push(c);\n j = i + 1;\n }\n }\n string.push(template.substring(j, i));\n return string.join(\"\");\n }\n format.parse = function(string) {\n var d = {\n y: 1900,\n m: 0,\n d: 1,\n H: 0,\n M: 0,\n S: 0,\n L: 0,\n Z: null\n }, i = d3_time_parse(d, template, string, 0);\n if (i != string.length) return null;\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)();\n if (\"j\" in d) date.setFullYear(d.y, 0, d.j); else if (\"w\" in d && (\"W\" in d || \"U\" in d)) {\n date.setFullYear(d.y, 0, 1);\n date.setFullYear(d.y, 0, \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7);\n } else date.setFullYear(d.y, d.m, d.d);\n date.setHours(d.H + Math.floor(d.Z / 100), d.M + d.Z % 100, d.S, d.L);\n return localZ ? date._ : date;\n };\n format.toString = function() {\n return template;\n };\n return format;\n }\n function d3_time_parse(date, template, string, j) {\n var c, p, t, i = 0, n = template.length, m = string.length;\n while (i < n) {\n if (j >= m) return -1;\n c = template.charCodeAt(i++);\n if (c === 37) {\n t = template.charAt(i++);\n p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t];\n if (!p || (j = p(date, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n return j;\n }\n d3_time_format.utc = function(template) {\n var local = d3_time_format(template);\n function format(date) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date();\n utc._ = date;\n return local(utc);\n } finally {\n d3_date = Date;\n }\n }\n format.parse = function(string) {\n try {\n d3_date = d3_date_utc;\n var date = local.parse(string);\n return date && date._;\n } finally {\n d3_date = Date;\n }\n };\n format.toString = local.toString;\n return format;\n };\n d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti;\n var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths);\n locale_periods.forEach(function(p, i) {\n d3_time_periodLookup.set(p.toLowerCase(), i);\n });\n var d3_time_formats = {\n a: function(d) {\n return locale_shortDays[d.getDay()];\n },\n A: function(d) {\n return locale_days[d.getDay()];\n },\n b: function(d) {\n return locale_shortMonths[d.getMonth()];\n },\n B: function(d) {\n return locale_months[d.getMonth()];\n },\n c: d3_time_format(locale_dateTime),\n d: function(d, p) {\n return d3_time_formatPad(d.getDate(), p, 2);\n },\n e: function(d, p) {\n return d3_time_formatPad(d.getDate(), p, 2);\n },\n H: function(d, p) {\n return d3_time_formatPad(d.getHours(), p, 2);\n },\n I: function(d, p) {\n return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);\n },\n j: function(d, p) {\n return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3);\n },\n L: function(d, p) {\n return d3_time_formatPad(d.getMilliseconds(), p, 3);\n },\n m: function(d, p) {\n return d3_time_formatPad(d.getMonth() + 1, p, 2);\n },\n M: function(d, p) {\n return d3_time_formatPad(d.getMinutes(), p, 2);\n },\n p: function(d) {\n return locale_periods[+(d.getHours() >= 12)];\n },\n S: function(d, p) {\n return d3_time_formatPad(d.getSeconds(), p, 2);\n },\n U: function(d, p) {\n return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2);\n },\n w: function(d) {\n return d.getDay();\n },\n W: function(d, p) {\n return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2);\n },\n x: d3_time_format(locale_date),\n X: d3_time_format(locale_time),\n y: function(d, p) {\n return d3_time_formatPad(d.getFullYear() % 100, p, 2);\n },\n Y: function(d, p) {\n return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);\n },\n Z: d3_time_zone,\n \"%\": function() {\n return \"%\";\n }\n };\n var d3_time_parsers = {\n a: d3_time_parseWeekdayAbbrev,\n A: d3_time_parseWeekday,\n b: d3_time_parseMonthAbbrev,\n B: d3_time_parseMonth,\n c: d3_time_parseLocaleFull,\n d: d3_time_parseDay,\n e: d3_time_parseDay,\n H: d3_time_parseHour24,\n I: d3_time_parseHour24,\n j: d3_time_parseDayOfYear,\n L: d3_time_parseMilliseconds,\n m: d3_time_parseMonthNumber,\n M: d3_time_parseMinutes,\n p: d3_time_parseAmPm,\n S: d3_time_parseSeconds,\n U: d3_time_parseWeekNumberSunday,\n w: d3_time_parseWeekdayNumber,\n W: d3_time_parseWeekNumberMonday,\n x: d3_time_parseLocaleDate,\n X: d3_time_parseLocaleTime,\n y: d3_time_parseYear,\n Y: d3_time_parseFullYear,\n Z: d3_time_parseZone,\n \"%\": d3_time_parseLiteralPercent\n };\n function d3_time_parseWeekdayAbbrev(date, string, i) {\n d3_time_dayAbbrevRe.lastIndex = 0;\n var n = d3_time_dayAbbrevRe.exec(string.substring(i));\n return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseWeekday(date, string, i) {\n d3_time_dayRe.lastIndex = 0;\n var n = d3_time_dayRe.exec(string.substring(i));\n return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseMonthAbbrev(date, string, i) {\n d3_time_monthAbbrevRe.lastIndex = 0;\n var n = d3_time_monthAbbrevRe.exec(string.substring(i));\n return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseMonth(date, string, i) {\n d3_time_monthRe.lastIndex = 0;\n var n = d3_time_monthRe.exec(string.substring(i));\n return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseLocaleFull(date, string, i) {\n return d3_time_parse(date, d3_time_formats.c.toString(), string, i);\n }\n function d3_time_parseLocaleDate(date, string, i) {\n return d3_time_parse(date, d3_time_formats.x.toString(), string, i);\n }\n function d3_time_parseLocaleTime(date, string, i) {\n return d3_time_parse(date, d3_time_formats.X.toString(), string, i);\n }\n function d3_time_parseAmPm(date, string, i) {\n var n = d3_time_periodLookup.get(string.substring(i, i += 2).toLowerCase());\n return n == null ? -1 : (date.p = n, i);\n }\n return d3_time_format;\n }\n var d3_time_formatPads = {\n \"-\": \"\",\n _: \" \",\n \"0\": \"0\"\n }, d3_time_numberRe = /^\\s*\\d+/, d3_time_percentRe = /^%/;\n function d3_time_formatPad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\", string = (sign ? -value : value) + \"\", length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n }\n function d3_time_formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(d3.requote).join(\"|\") + \")\", \"i\");\n }\n function d3_time_formatLookup(names) {\n var map = new d3_Map(), i = -1, n = names.length;\n while (++i < n) map.set(names[i].toLowerCase(), i);\n return map;\n }\n function d3_time_parseWeekdayNumber(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.substring(i, i + 1));\n return n ? (date.w = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseWeekNumberSunday(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.substring(i));\n return n ? (date.U = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseWeekNumberMonday(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.substring(i));\n return n ? (date.W = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseFullYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.substring(i, i + 4));\n return n ? (date.y = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.substring(i, i + 2));\n return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1;\n }\n function d3_time_parseZone(date, string, i) {\n return /^[+-]\\d{4}$/.test(string = string.substring(i, i + 5)) ? (date.Z = -string, \n i + 5) : -1;\n }\n function d3_time_expandYear(d) {\n return d + (d > 68 ? 1900 : 2e3);\n }\n function d3_time_parseMonthNumber(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.substring(i, i + 2));\n return n ? (date.m = n[0] - 1, i + n[0].length) : -1;\n }\n function d3_time_parseDay(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.substring(i, i + 2));\n return n ? (date.d = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseDayOfYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.substring(i, i + 3));\n return n ? (date.j = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseHour24(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.substring(i, i + 2));\n return n ? (date.H = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseMinutes(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.substring(i, i + 2));\n return n ? (date.M = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseSeconds(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.substring(i, i + 2));\n return n ? (date.S = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseMilliseconds(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.substring(i, i + 3));\n return n ? (date.L = +n[0], i + n[0].length) : -1;\n }\n function d3_time_zone(d) {\n var z = d.getTimezoneOffset(), zs = z > 0 ? \"-\" : \"+\", zh = ~~(abs(z) / 60), zm = abs(z) % 60;\n return zs + d3_time_formatPad(zh, \"0\", 2) + d3_time_formatPad(zm, \"0\", 2);\n }\n function d3_time_parseLiteralPercent(date, string, i) {\n d3_time_percentRe.lastIndex = 0;\n var n = d3_time_percentRe.exec(string.substring(i, i + 1));\n return n ? i + n[0].length : -1;\n }\n function d3_time_formatMulti(formats) {\n var n = formats.length, i = -1;\n while (++i < n) formats[i][0] = this(formats[i][0]);\n return function(date) {\n var i = 0, f = formats[i];\n while (!f[1](date)) f = formats[++i];\n return f[0](date);\n };\n }\n d3.locale = function(locale) {\n return {\n numberFormat: d3_locale_numberFormat(locale),\n timeFormat: d3_locale_timeFormat(locale)\n };\n };\n var d3_locale_enUS = d3.locale({\n decimal: \".\",\n thousands: \",\",\n grouping: [ 3 ],\n currency: [ \"$\", \"\" ],\n dateTime: \"%a %b %e %X %Y\",\n date: \"%m/%d/%Y\",\n time: \"%H:%M:%S\",\n periods: [ \"AM\", \"PM\" ],\n days: [ \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\" ],\n shortDays: [ \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\" ],\n months: [ \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ],\n shortMonths: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\" ]\n });\n d3.format = d3_locale_enUS.numberFormat;\n d3.geo = {};\n function d3_adder() {}\n d3_adder.prototype = {\n s: 0,\n t: 0,\n add: function(y) {\n d3_adderSum(y, this.t, d3_adderTemp);\n d3_adderSum(d3_adderTemp.s, this.s, this);\n if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t;\n },\n reset: function() {\n this.s = this.t = 0;\n },\n valueOf: function() {\n return this.s;\n }\n };\n var d3_adderTemp = new d3_adder();\n function d3_adderSum(a, b, o) {\n var x = o.s = a + b, bv = x - a, av = x - bv;\n o.t = a - av + (b - bv);\n }\n d3.geo.stream = function(object, listener) {\n if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) {\n d3_geo_streamObjectType[object.type](object, listener);\n } else {\n d3_geo_streamGeometry(object, listener);\n }\n };\n function d3_geo_streamGeometry(geometry, listener) {\n if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {\n d3_geo_streamGeometryType[geometry.type](geometry, listener);\n }\n }\n var d3_geo_streamObjectType = {\n Feature: function(feature, listener) {\n d3_geo_streamGeometry(feature.geometry, listener);\n },\n FeatureCollection: function(object, listener) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);\n }\n };\n var d3_geo_streamGeometryType = {\n Sphere: function(object, listener) {\n listener.sphere();\n },\n Point: function(object, listener) {\n object = object.coordinates;\n listener.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]);\n },\n LineString: function(object, listener) {\n d3_geo_streamLine(object.coordinates, listener, 0);\n },\n MultiLineString: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);\n },\n Polygon: function(object, listener) {\n d3_geo_streamPolygon(object.coordinates, listener);\n },\n MultiPolygon: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);\n },\n GeometryCollection: function(object, listener) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) d3_geo_streamGeometry(geometries[i], listener);\n }\n };\n function d3_geo_streamLine(coordinates, listener, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n listener.lineStart();\n while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]);\n listener.lineEnd();\n }\n function d3_geo_streamPolygon(coordinates, listener) {\n var i = -1, n = coordinates.length;\n listener.polygonStart();\n while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);\n listener.polygonEnd();\n }\n d3.geo.area = function(object) {\n d3_geo_areaSum = 0;\n d3.geo.stream(object, d3_geo_area);\n return d3_geo_areaSum;\n };\n var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder();\n var d3_geo_area = {\n sphere: function() {\n d3_geo_areaSum += 4 * π;\n },\n point: d3_noop,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: function() {\n d3_geo_areaRingSum.reset();\n d3_geo_area.lineStart = d3_geo_areaRingStart;\n },\n polygonEnd: function() {\n var area = 2 * d3_geo_areaRingSum;\n d3_geo_areaSum += area < 0 ? 4 * π + area : area;\n d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;\n }\n };\n function d3_geo_areaRingStart() {\n var λ00, φ00, λ0, cosφ0, sinφ0;\n d3_geo_area.point = function(λ, φ) {\n d3_geo_area.point = nextPoint;\n λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), \n sinφ0 = Math.sin(φ);\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n φ = φ * d3_radians / 2 + π / 4;\n var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ);\n d3_geo_areaRingSum.add(Math.atan2(v, u));\n λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;\n }\n d3_geo_area.lineEnd = function() {\n nextPoint(λ00, φ00);\n };\n }\n function d3_geo_cartesian(spherical) {\n var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);\n return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];\n }\n function d3_geo_cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n }\n function d3_geo_cartesianCross(a, b) {\n return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];\n }\n function d3_geo_cartesianAdd(a, b) {\n a[0] += b[0];\n a[1] += b[1];\n a[2] += b[2];\n }\n function d3_geo_cartesianScale(vector, k) {\n return [ vector[0] * k, vector[1] * k, vector[2] * k ];\n }\n function d3_geo_cartesianNormalize(d) {\n var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l;\n d[1] /= l;\n d[2] /= l;\n }\n function d3_geo_spherical(cartesian) {\n return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ];\n }\n function d3_geo_sphericalEqual(a, b) {\n return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε;\n }\n d3.geo.bounds = function() {\n var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range;\n var bound = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n bound.point = ringPoint;\n bound.lineStart = ringStart;\n bound.lineEnd = ringEnd;\n dλSum = 0;\n d3_geo_area.polygonStart();\n },\n polygonEnd: function() {\n d3_geo_area.polygonEnd();\n bound.point = point;\n bound.lineStart = lineStart;\n bound.lineEnd = lineEnd;\n if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90;\n range[0] = λ0, range[1] = λ1;\n }\n };\n function point(λ, φ) {\n ranges.push(range = [ λ0 = λ, λ1 = λ ]);\n if (φ < φ0) φ0 = φ;\n if (φ > φ1) φ1 = φ;\n }\n function linePoint(λ, φ) {\n var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]);\n if (p0) {\n var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal);\n d3_geo_cartesianNormalize(inflection);\n inflection = d3_geo_spherical(inflection);\n var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180;\n if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) {\n var φi = inflection[1] * d3_degrees;\n if (φi > φ1) φ1 = φi;\n } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) {\n var φi = -inflection[1] * d3_degrees;\n if (φi < φ0) φ0 = φi;\n } else {\n if (φ < φ0) φ0 = φ;\n if (φ > φ1) φ1 = φ;\n }\n if (antimeridian) {\n if (λ < λ_) {\n if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;\n } else {\n if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;\n }\n } else {\n if (λ1 >= λ0) {\n if (λ < λ0) λ0 = λ;\n if (λ > λ1) λ1 = λ;\n } else {\n if (λ > λ_) {\n if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;\n } else {\n if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;\n }\n }\n }\n } else {\n point(λ, φ);\n }\n p0 = p, λ_ = λ;\n }\n function lineStart() {\n bound.point = linePoint;\n }\n function lineEnd() {\n range[0] = λ0, range[1] = λ1;\n bound.point = point;\n p0 = null;\n }\n function ringPoint(λ, φ) {\n if (p0) {\n var dλ = λ - λ_;\n dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ;\n } else λ__ = λ, φ__ = φ;\n d3_geo_area.point(λ, φ);\n linePoint(λ, φ);\n }\n function ringStart() {\n d3_geo_area.lineStart();\n }\n function ringEnd() {\n ringPoint(λ__, φ__);\n d3_geo_area.lineEnd();\n if (abs(dλSum) > ε) λ0 = -(λ1 = 180);\n range[0] = λ0, range[1] = λ1;\n p0 = null;\n }\n function angle(λ0, λ1) {\n return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1;\n }\n function compareRanges(a, b) {\n return a[0] - b[0];\n }\n function withinRange(x, range) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n }\n return function(feature) {\n φ1 = λ1 = -(λ0 = φ0 = Infinity);\n ranges = [];\n d3.geo.stream(feature, bound);\n var n = ranges.length;\n if (n) {\n ranges.sort(compareRanges);\n for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) {\n b = ranges[i];\n if (withinRange(b[0], a) || withinRange(b[1], a)) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n var best = -Infinity, dλ;\n for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) {\n b = merged[i];\n if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1];\n }\n }\n ranges = range = null;\n return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ];\n };\n }();\n d3.geo.centroid = function(object) {\n d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;\n d3.geo.stream(object, d3_geo_centroid);\n var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z;\n if (m < ε2) {\n x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1;\n if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0;\n m = x * x + y * y + z * z;\n if (m < ε2) return [ NaN, NaN ];\n }\n return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ];\n };\n var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2;\n var d3_geo_centroid = {\n sphere: d3_noop,\n point: d3_geo_centroidPoint,\n lineStart: d3_geo_centroidLineStart,\n lineEnd: d3_geo_centroidLineEnd,\n polygonStart: function() {\n d3_geo_centroid.lineStart = d3_geo_centroidRingStart;\n },\n polygonEnd: function() {\n d3_geo_centroid.lineStart = d3_geo_centroidLineStart;\n }\n };\n function d3_geo_centroidPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ));\n }\n function d3_geo_centroidPointXYZ(x, y, z) {\n ++d3_geo_centroidW0;\n d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0;\n d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0;\n d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0;\n }\n function d3_geo_centroidLineStart() {\n var x0, y0, z0;\n d3_geo_centroid.point = function(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n x0 = cosφ * Math.cos(λ);\n y0 = cosφ * Math.sin(λ);\n z0 = Math.sin(φ);\n d3_geo_centroid.point = nextPoint;\n d3_geo_centroidPointXYZ(x0, y0, z0);\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n d3_geo_centroidW1 += w;\n d3_geo_centroidX1 += w * (x0 + (x0 = x));\n d3_geo_centroidY1 += w * (y0 + (y0 = y));\n d3_geo_centroidZ1 += w * (z0 + (z0 = z));\n d3_geo_centroidPointXYZ(x0, y0, z0);\n }\n }\n function d3_geo_centroidLineEnd() {\n d3_geo_centroid.point = d3_geo_centroidPoint;\n }\n function d3_geo_centroidRingStart() {\n var λ00, φ00, x0, y0, z0;\n d3_geo_centroid.point = function(λ, φ) {\n λ00 = λ, φ00 = φ;\n d3_geo_centroid.point = nextPoint;\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n x0 = cosφ * Math.cos(λ);\n y0 = cosφ * Math.sin(λ);\n z0 = Math.sin(φ);\n d3_geo_centroidPointXYZ(x0, y0, z0);\n };\n d3_geo_centroid.lineEnd = function() {\n nextPoint(λ00, φ00);\n d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;\n d3_geo_centroid.point = d3_geo_centroidPoint;\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u);\n d3_geo_centroidX2 += v * cx;\n d3_geo_centroidY2 += v * cy;\n d3_geo_centroidZ2 += v * cz;\n d3_geo_centroidW1 += w;\n d3_geo_centroidX1 += w * (x0 + (x0 = x));\n d3_geo_centroidY1 += w * (y0 + (y0 = y));\n d3_geo_centroidZ1 += w * (z0 + (z0 = z));\n d3_geo_centroidPointXYZ(x0, y0, z0);\n }\n }\n function d3_true() {\n return true;\n }\n function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) {\n var subject = [], clip = [];\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n];\n if (d3_geo_sphericalEqual(p0, p1)) {\n listener.lineStart();\n for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);\n listener.lineEnd();\n return;\n }\n var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false);\n a.o = b;\n subject.push(a);\n clip.push(b);\n a = new d3_geo_clipPolygonIntersection(p1, segment, null, false);\n b = new d3_geo_clipPolygonIntersection(p1, null, a, true);\n a.o = b;\n subject.push(a);\n clip.push(b);\n });\n clip.sort(compare);\n d3_geo_clipPolygonLinkCircular(subject);\n d3_geo_clipPolygonLinkCircular(clip);\n if (!subject.length) return;\n for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) {\n clip[i].e = entry = !entry;\n }\n var start = subject[0], points, point;\n while (1) {\n var current = start, isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n listener.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, listener);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, listener);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n listener.lineEnd();\n }\n }\n function d3_geo_clipPolygonLinkCircular(array) {\n if (!(n = array.length)) return;\n var n, i = 0, a = array[0], b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n }\n function d3_geo_clipPolygonIntersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other;\n this.e = entry;\n this.v = false;\n this.n = this.p = null;\n }\n function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) {\n return function(rotate, listener) {\n var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]);\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = d3.merge(segments);\n var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon);\n if (segments.length) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener);\n } else if (clipStartInside) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n }\n if (polygonStarted) listener.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n listener.polygonStart();\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n listener.polygonEnd();\n }\n };\n function point(λ, φ) {\n var point = rotate(λ, φ);\n if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ);\n }\n function pointLine(λ, φ) {\n var point = rotate(λ, φ);\n line.point(point[0], point[1]);\n }\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n var segments;\n var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring;\n function pointRing(λ, φ) {\n ring.push([ λ, φ ]);\n var point = rotate(λ, φ);\n ringListener.point(point[0], point[1]);\n }\n function ringStart() {\n ringListener.lineStart();\n ring = [];\n }\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringListener.lineEnd();\n var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;\n ring.pop();\n polygon.push(ring);\n ring = null;\n if (!n) return;\n if (clean & 1) {\n segment = ringSegments[0];\n var n = segment.length - 1, i = -1, point;\n if (n > 0) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n listener.lineStart();\n while (++i < n) listener.point((point = segment[i])[0], point[1]);\n listener.lineEnd();\n }\n return;\n }\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));\n }\n return clip;\n };\n }\n function d3_geo_clipSegmentLength1(segment) {\n return segment.length > 1;\n }\n function d3_geo_clipBufferListener() {\n var lines = [], line;\n return {\n lineStart: function() {\n lines.push(line = []);\n },\n point: function(λ, φ) {\n line.push([ λ, φ ]);\n },\n lineEnd: d3_noop,\n buffer: function() {\n var buffer = lines;\n lines = [];\n line = null;\n return buffer;\n },\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n }\n };\n }\n function d3_geo_clipSort(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]);\n }\n function d3_geo_pointInPolygon(point, polygon) {\n var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0;\n d3_geo_areaRingSum.reset();\n for (var i = 0, n = polygon.length; i < n; ++i) {\n var ring = polygon[i], m = ring.length;\n if (!m) continue;\n var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1;\n while (true) {\n if (j === m) j = 0;\n point = ring[j];\n var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ;\n d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ)));\n polarAngle += antimeridian ? dλ + sdλ * τ : dλ;\n if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) {\n var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point));\n d3_geo_cartesianNormalize(arc);\n var intersection = d3_geo_cartesianCross(meridianNormal, arc);\n d3_geo_cartesianNormalize(intersection);\n var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]);\n if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) {\n winding += antimeridian ^ dλ >= 0 ? 1 : -1;\n }\n }\n if (!j++) break;\n λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point;\n }\n }\n return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < 0) ^ winding & 1;\n }\n var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]);\n function d3_geo_clipAntimeridianLine(listener) {\n var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;\n return {\n lineStart: function() {\n listener.lineStart();\n clean = 1;\n },\n point: function(λ1, φ1) {\n var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0);\n if (abs(dλ - π) < ε) {\n listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ);\n listener.point(sλ0, φ0);\n listener.lineEnd();\n listener.lineStart();\n listener.point(sλ1, φ0);\n listener.point(λ1, φ0);\n clean = 0;\n } else if (sλ0 !== sλ1 && dλ >= π) {\n if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;\n if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;\n φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);\n listener.point(sλ0, φ0);\n listener.lineEnd();\n listener.lineStart();\n listener.point(sλ1, φ0);\n clean = 0;\n }\n listener.point(λ0 = λ1, φ0 = φ1);\n sλ0 = sλ1;\n },\n lineEnd: function() {\n listener.lineEnd();\n λ0 = φ0 = NaN;\n },\n clean: function() {\n return 2 - clean;\n }\n };\n }\n function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {\n var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);\n return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;\n }\n function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {\n var φ;\n if (from == null) {\n φ = direction * halfπ;\n listener.point(-π, φ);\n listener.point(0, φ);\n listener.point(π, φ);\n listener.point(π, 0);\n listener.point(π, -φ);\n listener.point(0, -φ);\n listener.point(-π, -φ);\n listener.point(-π, 0);\n listener.point(-π, φ);\n } else if (abs(from[0] - to[0]) > ε) {\n var s = from[0] < to[0] ? π : -π;\n φ = direction * s / 2;\n listener.point(-s, φ);\n listener.point(0, φ);\n listener.point(s, φ);\n } else {\n listener.point(to[0], to[1]);\n }\n }\n function d3_geo_clipCircle(radius) {\n var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);\n return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]);\n function visible(λ, φ) {\n return Math.cos(λ) * Math.cos(φ) > cr;\n }\n function clipLine(listener) {\n var point0, c0, v0, v00, clean;\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(λ, φ) {\n var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0;\n if (!point0 && (v00 = v0 = v)) listener.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {\n point1[0] += ε;\n point1[1] += ε;\n v = visible(point1[0], point1[1]);\n }\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n listener.lineStart();\n point2 = intersect(point1, point0);\n listener.point(point2[0], point2[1]);\n } else {\n point2 = intersect(point0, point1);\n listener.point(point2[0], point2[1]);\n listener.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n listener.lineStart();\n listener.point(t[0][0], t[0][1]);\n listener.point(t[1][0], t[1][1]);\n listener.lineEnd();\n } else {\n listener.point(t[1][0], t[1][1]);\n listener.lineEnd();\n listener.lineStart();\n listener.point(t[0][0], t[0][1]);\n }\n }\n }\n if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) {\n listener.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) listener.lineEnd();\n point0 = null;\n },\n clean: function() {\n return clean | (v00 && v0) << 1;\n }\n };\n }\n function intersect(a, b, two) {\n var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b);\n var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;\n if (!determinant) return !two && a;\n var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);\n d3_geo_cartesianAdd(A, B);\n var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1);\n if (t2 < 0) return;\n var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu);\n d3_geo_cartesianAdd(q, A);\n q = d3_geo_spherical(q);\n if (!two) return q;\n var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z;\n if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;\n var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε;\n if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;\n if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {\n var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);\n d3_geo_cartesianAdd(q1, A);\n return [ q, d3_geo_spherical(q1) ];\n }\n }\n function code(λ, φ) {\n var r = smallRadius ? radius : π - radius, code = 0;\n if (λ < -r) code |= 1; else if (λ > r) code |= 2;\n if (φ < -r) code |= 4; else if (φ > r) code |= 8;\n return code;\n }\n }\n function d3_geom_clipLine(x0, y0, x1, y1) {\n return function(line) {\n var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n if (t0 > 0) line.a = {\n x: ax + t0 * dx,\n y: ay + t0 * dy\n };\n if (t1 < 1) line.b = {\n x: ax + t1 * dx,\n y: ay + t1 * dy\n };\n return line;\n };\n }\n var d3_geo_clipExtentMAX = 1e9;\n d3.geo.clipExtent = function() {\n var x0, y0, x1, y1, stream, clip, clipExtent = {\n stream: function(output) {\n if (stream) stream.valid = false;\n stream = clip(output);\n stream.valid = true;\n return stream;\n },\n extent: function(_) {\n if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];\n clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]);\n if (stream) stream.valid = false, stream = null;\n return clipExtent;\n }\n };\n return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]);\n };\n function d3_geo_clipExtent(x0, y0, x1, y1) {\n return function(listener) {\n var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring;\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n listener = bufferListener;\n segments = [];\n polygon = [];\n clean = true;\n },\n polygonEnd: function() {\n listener = listener_;\n segments = d3.merge(segments);\n var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length;\n if (inside || visible) {\n listener.polygonStart();\n if (inside) {\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n }\n if (visible) {\n d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener);\n }\n listener.polygonEnd();\n }\n segments = polygon = ring = null;\n }\n };\n function insidePolygon(p) {\n var wn = 0, n = polygon.length, y = p[1];\n for (var i = 0; i < n; ++i) {\n for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) {\n b = v[j];\n if (a[1] <= y) {\n if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn;\n } else {\n if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn;\n }\n a = b;\n }\n }\n return wn !== 0;\n }\n function interpolate(from, to, direction, listener) {\n var a = 0, a1 = 0;\n if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) {\n do {\n listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n } while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n listener.point(to[0], to[1]);\n }\n }\n function pointVisible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n function point(x, y) {\n if (pointVisible(x, y)) listener.point(x, y);\n }\n var x__, y__, v__, x_, y_, v_, first, clean;\n function lineStart() {\n clip.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferListener.rejoin();\n segments.push(bufferListener.buffer());\n }\n clip.point = point;\n if (v_) listener.lineEnd();\n }\n function linePoint(x, y) {\n x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x));\n y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y));\n var v = pointVisible(x, y);\n if (polygon) ring.push([ x, y ]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n listener.lineStart();\n listener.point(x, y);\n }\n } else {\n if (v && v_) listener.point(x, y); else {\n var l = {\n a: {\n x: x_,\n y: y_\n },\n b: {\n x: x,\n y: y\n }\n };\n if (clipLine(l)) {\n if (!v_) {\n listener.lineStart();\n listener.point(l.a.x, l.a.y);\n }\n listener.point(l.b.x, l.b.y);\n if (!v) listener.lineEnd();\n clean = false;\n } else if (v) {\n listener.lineStart();\n listener.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n return clip;\n };\n function corner(p, direction) {\n return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;\n }\n function compare(a, b) {\n return comparePoints(a.x, b.x);\n }\n function comparePoints(a, b) {\n var ca = corner(a, 1), cb = corner(b, 1);\n return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];\n }\n }\n function d3_geo_compose(a, b) {\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n return compose;\n }\n function d3_geo_conic(projectAt) {\n var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1);\n p.parallels = function(_) {\n if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ];\n return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180);\n };\n return p;\n }\n function d3_geo_conicEqualArea(φ0, φ1) {\n var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;\n function forward(λ, φ) {\n var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;\n return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = ρ0 - y;\n return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];\n };\n return forward;\n }\n (d3.geo.conicEqualArea = function() {\n return d3_geo_conic(d3_geo_conicEqualArea);\n }).raw = d3_geo_conicEqualArea;\n d3.geo.albers = function() {\n return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070);\n };\n d3.geo.albersUsa = function() {\n var lower48 = d3.geo.albers();\n var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]);\n var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]);\n var point, pointStream = {\n point: function(x, y) {\n point = [ x, y ];\n }\n }, lower48Point, alaskaPoint, hawaiiPoint;\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n point = null;\n (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y);\n return point;\n }\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k;\n return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates);\n };\n albersUsa.stream = function(stream) {\n var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream);\n return {\n point: function(x, y) {\n lower48Stream.point(x, y);\n alaskaStream.point(x, y);\n hawaiiStream.point(x, y);\n },\n sphere: function() {\n lower48Stream.sphere();\n alaskaStream.sphere();\n hawaiiStream.sphere();\n },\n lineStart: function() {\n lower48Stream.lineStart();\n alaskaStream.lineStart();\n hawaiiStream.lineStart();\n },\n lineEnd: function() {\n lower48Stream.lineEnd();\n alaskaStream.lineEnd();\n hawaiiStream.lineEnd();\n },\n polygonStart: function() {\n lower48Stream.polygonStart();\n alaskaStream.polygonStart();\n hawaiiStream.polygonStart();\n },\n polygonEnd: function() {\n lower48Stream.polygonEnd();\n alaskaStream.polygonEnd();\n hawaiiStream.polygonEnd();\n }\n };\n };\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_);\n alaska.precision(_);\n hawaii.precision(_);\n return albersUsa;\n };\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_);\n alaska.scale(_ * .35);\n hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point;\n alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;\n hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;\n return albersUsa;\n };\n return albersUsa.scale(1070);\n };\n var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {\n point: d3_noop,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: function() {\n d3_geo_pathAreaPolygon = 0;\n d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;\n },\n polygonEnd: function() {\n d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;\n d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2);\n }\n };\n function d3_geo_pathAreaRingStart() {\n var x00, y00, x0, y0;\n d3_geo_pathArea.point = function(x, y) {\n d3_geo_pathArea.point = nextPoint;\n x00 = x0 = x, y00 = y0 = y;\n };\n function nextPoint(x, y) {\n d3_geo_pathAreaPolygon += y0 * x - x0 * y;\n x0 = x, y0 = y;\n }\n d3_geo_pathArea.lineEnd = function() {\n nextPoint(x00, y00);\n };\n }\n var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1;\n var d3_geo_pathBounds = {\n point: d3_geo_pathBoundsPoint,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: d3_noop,\n polygonEnd: d3_noop\n };\n function d3_geo_pathBoundsPoint(x, y) {\n if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x;\n if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x;\n if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y;\n if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y;\n }\n function d3_geo_pathBuffer() {\n var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = [];\n var stream = {\n point: point,\n lineStart: function() {\n stream.point = pointLineStart;\n },\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.lineEnd = lineEndPolygon;\n },\n polygonEnd: function() {\n stream.lineEnd = lineEnd;\n stream.point = point;\n },\n pointRadius: function(_) {\n pointCircle = d3_geo_pathBufferCircle(_);\n return stream;\n },\n result: function() {\n if (buffer.length) {\n var result = buffer.join(\"\");\n buffer = [];\n return result;\n }\n }\n };\n function point(x, y) {\n buffer.push(\"M\", x, \",\", y, pointCircle);\n }\n function pointLineStart(x, y) {\n buffer.push(\"M\", x, \",\", y);\n stream.point = pointLine;\n }\n function pointLine(x, y) {\n buffer.push(\"L\", x, \",\", y);\n }\n function lineEnd() {\n stream.point = point;\n }\n function lineEndPolygon() {\n buffer.push(\"Z\");\n }\n return stream;\n }\n function d3_geo_pathBufferCircle(radius) {\n return \"m0,\" + radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius + \"z\";\n }\n var d3_geo_pathCentroid = {\n point: d3_geo_pathCentroidPoint,\n lineStart: d3_geo_pathCentroidLineStart,\n lineEnd: d3_geo_pathCentroidLineEnd,\n polygonStart: function() {\n d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;\n },\n polygonEnd: function() {\n d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;\n d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;\n d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;\n }\n };\n function d3_geo_pathCentroidPoint(x, y) {\n d3_geo_centroidX0 += x;\n d3_geo_centroidY0 += y;\n ++d3_geo_centroidZ0;\n }\n function d3_geo_pathCentroidLineStart() {\n var x0, y0;\n d3_geo_pathCentroid.point = function(x, y) {\n d3_geo_pathCentroid.point = nextPoint;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n };\n function nextPoint(x, y) {\n var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);\n d3_geo_centroidX1 += z * (x0 + x) / 2;\n d3_geo_centroidY1 += z * (y0 + y) / 2;\n d3_geo_centroidZ1 += z;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n }\n }\n function d3_geo_pathCentroidLineEnd() {\n d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;\n }\n function d3_geo_pathCentroidRingStart() {\n var x00, y00, x0, y0;\n d3_geo_pathCentroid.point = function(x, y) {\n d3_geo_pathCentroid.point = nextPoint;\n d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y);\n };\n function nextPoint(x, y) {\n var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);\n d3_geo_centroidX1 += z * (x0 + x) / 2;\n d3_geo_centroidY1 += z * (y0 + y) / 2;\n d3_geo_centroidZ1 += z;\n z = y0 * x - x0 * y;\n d3_geo_centroidX2 += z * (x0 + x);\n d3_geo_centroidY2 += z * (y0 + y);\n d3_geo_centroidZ2 += z * 3;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n }\n d3_geo_pathCentroid.lineEnd = function() {\n nextPoint(x00, y00);\n };\n }\n function d3_geo_pathContext(context) {\n var pointRadius = 4.5;\n var stream = {\n point: point,\n lineStart: function() {\n stream.point = pointLineStart;\n },\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.lineEnd = lineEndPolygon;\n },\n polygonEnd: function() {\n stream.lineEnd = lineEnd;\n stream.point = point;\n },\n pointRadius: function(_) {\n pointRadius = _;\n return stream;\n },\n result: d3_noop\n };\n function point(x, y) {\n context.moveTo(x, y);\n context.arc(x, y, pointRadius, 0, τ);\n }\n function pointLineStart(x, y) {\n context.moveTo(x, y);\n stream.point = pointLine;\n }\n function pointLine(x, y) {\n context.lineTo(x, y);\n }\n function lineEnd() {\n stream.point = point;\n }\n function lineEndPolygon() {\n context.closePath();\n }\n return stream;\n }\n function d3_geo_resample(project) {\n var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16;\n function resample(stream) {\n return (maxDepth ? resampleRecursive : resampleNone)(stream);\n }\n function resampleNone(stream) {\n return d3_geo_transformPoint(stream, function(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n });\n }\n function resampleRecursive(stream) {\n var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0;\n var resample = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.polygonStart();\n resample.lineStart = ringStart;\n },\n polygonEnd: function() {\n stream.polygonEnd();\n resample.lineStart = lineStart;\n }\n };\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n function lineStart() {\n x0 = NaN;\n resample.point = linePoint;\n stream.lineStart();\n }\n function linePoint(λ, φ) {\n var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ);\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n function lineEnd() {\n resample.point = point;\n stream.lineEnd();\n }\n function ringStart() {\n lineStart();\n resample.point = ringPoint;\n resample.lineEnd = ringEnd;\n }\n function ringPoint(λ, φ) {\n linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resample.point = linePoint;\n }\n function ringEnd() {\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);\n resample.lineEnd = lineEnd;\n lineEnd();\n }\n return resample;\n }\n function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;\n if (d2 > 4 * δ2 && depth--) {\n var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);\n }\n }\n }\n resample.precision = function(_) {\n if (!arguments.length) return Math.sqrt(δ2);\n maxDepth = (δ2 = _ * _) > 0 && 16;\n return resample;\n };\n return resample;\n }\n d3.geo.path = function() {\n var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream;\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream);\n d3.geo.stream(object, cacheStream);\n }\n return contextStream.result();\n }\n path.area = function(object) {\n d3_geo_pathAreaSum = 0;\n d3.geo.stream(object, projectStream(d3_geo_pathArea));\n return d3_geo_pathAreaSum;\n };\n path.centroid = function(object) {\n d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;\n d3.geo.stream(object, projectStream(d3_geo_pathCentroid));\n return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ];\n };\n path.bounds = function(object) {\n d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity);\n d3.geo.stream(object, projectStream(d3_geo_pathBounds));\n return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ];\n };\n path.projection = function(_) {\n if (!arguments.length) return projection;\n projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;\n return reset();\n };\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return reset();\n };\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n function reset() {\n cacheStream = null;\n return path;\n }\n return path.projection(d3.geo.albersUsa()).context(null);\n };\n function d3_geo_pathProjectStream(project) {\n var resample = d3_geo_resample(function(x, y) {\n return project([ x * d3_degrees, y * d3_degrees ]);\n });\n return function(stream) {\n return d3_geo_projectionRadians(resample(stream));\n };\n }\n d3.geo.transform = function(methods) {\n return {\n stream: function(stream) {\n var transform = new d3_geo_transform(stream);\n for (var k in methods) transform[k] = methods[k];\n return transform;\n }\n };\n };\n function d3_geo_transform(stream) {\n this.stream = stream;\n }\n d3_geo_transform.prototype = {\n point: function(x, y) {\n this.stream.point(x, y);\n },\n sphere: function() {\n this.stream.sphere();\n },\n lineStart: function() {\n this.stream.lineStart();\n },\n lineEnd: function() {\n this.stream.lineEnd();\n },\n polygonStart: function() {\n this.stream.polygonStart();\n },\n polygonEnd: function() {\n this.stream.polygonEnd();\n }\n };\n function d3_geo_transformPoint(stream, point) {\n return {\n point: point,\n sphere: function() {\n stream.sphere();\n },\n lineStart: function() {\n stream.lineStart();\n },\n lineEnd: function() {\n stream.lineEnd();\n },\n polygonStart: function() {\n stream.polygonStart();\n },\n polygonEnd: function() {\n stream.polygonEnd();\n }\n };\n }\n d3.geo.projection = d3_geo_projection;\n d3.geo.projectionMutator = d3_geo_projectionMutator;\n function d3_geo_projection(project) {\n return d3_geo_projectionMutator(function() {\n return project;\n })();\n }\n function d3_geo_projectionMutator(projectAt) {\n var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {\n x = project(x, y);\n return [ x[0] * k + δx, δy - x[1] * k ];\n }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream;\n function projection(point) {\n point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);\n return [ point[0] * k + δx, δy - point[1] * k ];\n }\n function invert(point) {\n point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);\n return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];\n }\n projection.stream = function(output) {\n if (stream) stream.valid = false;\n stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output))));\n stream.valid = true;\n return stream;\n };\n projection.clipAngle = function(_) {\n if (!arguments.length) return clipAngle;\n preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians);\n return invalidate();\n };\n projection.clipExtent = function(_) {\n if (!arguments.length) return clipExtent;\n clipExtent = _;\n postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity;\n return invalidate();\n };\n projection.scale = function(_) {\n if (!arguments.length) return k;\n k = +_;\n return reset();\n };\n projection.translate = function(_) {\n if (!arguments.length) return [ x, y ];\n x = +_[0];\n y = +_[1];\n return reset();\n };\n projection.center = function(_) {\n if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];\n λ = _[0] % 360 * d3_radians;\n φ = _[1] % 360 * d3_radians;\n return reset();\n };\n projection.rotate = function(_) {\n if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];\n δλ = _[0] % 360 * d3_radians;\n δφ = _[1] % 360 * d3_radians;\n δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;\n return reset();\n };\n d3.rebind(projection, projectResample, \"precision\");\n function reset() {\n projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);\n var center = project(λ, φ);\n δx = x - center[0] * k;\n δy = y + center[1] * k;\n return invalidate();\n }\n function invalidate() {\n if (stream) stream.valid = false, stream = null;\n return projection;\n }\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return reset();\n };\n }\n function d3_geo_projectionRadians(stream) {\n return d3_geo_transformPoint(stream, function(x, y) {\n stream.point(x * d3_radians, y * d3_radians);\n });\n }\n function d3_geo_equirectangular(λ, φ) {\n return [ λ, φ ];\n }\n (d3.geo.equirectangular = function() {\n return d3_geo_projection(d3_geo_equirectangular);\n }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;\n d3.geo.rotation = function(rotate) {\n rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0);\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians);\n return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;\n }\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians);\n return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;\n };\n return forward;\n };\n function d3_geo_identityRotation(λ, φ) {\n return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];\n }\n d3_geo_identityRotation.invert = d3_geo_equirectangular;\n function d3_geo_rotation(δλ, δφ, δγ) {\n return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation;\n }\n function d3_geo_forwardRotationλ(δλ) {\n return function(λ, φ) {\n return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];\n };\n }\n function d3_geo_rotationλ(δλ) {\n var rotation = d3_geo_forwardRotationλ(δλ);\n rotation.invert = d3_geo_forwardRotationλ(-δλ);\n return rotation;\n }\n function d3_geo_rotationφγ(δφ, δγ) {\n var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);\n function rotation(λ, φ) {\n var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;\n return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ];\n }\n rotation.invert = function(λ, φ) {\n var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;\n return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ];\n };\n return rotation;\n }\n d3.geo.circle = function() {\n var origin = [ 0, 0 ], angle, precision = 6, interpolate;\n function circle() {\n var center = typeof origin === \"function\" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];\n interpolate(null, null, 1, {\n point: function(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= d3_degrees, x[1] *= d3_degrees;\n }\n });\n return {\n type: \"Polygon\",\n coordinates: [ ring ]\n };\n }\n circle.origin = function(x) {\n if (!arguments.length) return origin;\n origin = x;\n return circle;\n };\n circle.angle = function(x) {\n if (!arguments.length) return angle;\n interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);\n return circle;\n };\n circle.precision = function(_) {\n if (!arguments.length) return precision;\n interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);\n return circle;\n };\n return circle.angle(90);\n };\n function d3_geo_circleInterpolate(radius, precision) {\n var cr = Math.cos(radius), sr = Math.sin(radius);\n return function(from, to, direction, listener) {\n var step = direction * precision;\n if (from != null) {\n from = d3_geo_circleAngle(cr, from);\n to = d3_geo_circleAngle(cr, to);\n if (direction > 0 ? from < to : from > to) from += direction * τ;\n } else {\n from = radius + direction * τ;\n to = radius - .5 * step;\n }\n for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) {\n listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);\n }\n };\n }\n function d3_geo_circleAngle(cr, point) {\n var a = d3_geo_cartesian(point);\n a[0] -= cr;\n d3_geo_cartesianNormalize(a);\n var angle = d3_acos(-a[1]);\n return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);\n }\n d3.geo.distance = function(a, b) {\n var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t;\n return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ);\n };\n d3.geo.graticule = function() {\n var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;\n function graticule() {\n return {\n type: \"MultiLineString\",\n coordinates: lines()\n };\n }\n function lines() {\n return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) {\n return abs(x % DX) > ε;\n }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) {\n return abs(y % DY) > ε;\n }).map(y));\n }\n graticule.lines = function() {\n return lines().map(function(coordinates) {\n return {\n type: \"LineString\",\n coordinates: coordinates\n };\n });\n };\n graticule.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ]\n };\n };\n graticule.extent = function(_) {\n if (!arguments.length) return graticule.minorExtent();\n return graticule.majorExtent(_).minorExtent(_);\n };\n graticule.majorExtent = function(_) {\n if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n graticule.minorExtent = function(_) {\n if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n graticule.step = function(_) {\n if (!arguments.length) return graticule.minorStep();\n return graticule.majorStep(_).minorStep(_);\n };\n graticule.majorStep = function(_) {\n if (!arguments.length) return [ DX, DY ];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n graticule.minorStep = function(_) {\n if (!arguments.length) return [ dx, dy ];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n graticule.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = d3_geo_graticuleX(y0, y1, 90);\n y = d3_geo_graticuleY(x0, x1, precision);\n X = d3_geo_graticuleX(Y0, Y1, 90);\n Y = d3_geo_graticuleY(X0, X1, precision);\n return graticule;\n };\n return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]);\n };\n function d3_geo_graticuleX(y0, y1, dy) {\n var y = d3.range(y0, y1 - ε, dy).concat(y1);\n return function(x) {\n return y.map(function(y) {\n return [ x, y ];\n });\n };\n }\n function d3_geo_graticuleY(x0, x1, dx) {\n var x = d3.range(x0, x1 - ε, dx).concat(x1);\n return function(y) {\n return x.map(function(x) {\n return [ x, y ];\n });\n };\n }\n function d3_source(d) {\n return d.source;\n }\n function d3_target(d) {\n return d.target;\n }\n d3.geo.greatArc = function() {\n var source = d3_source, source_, target = d3_target, target_;\n function greatArc() {\n return {\n type: \"LineString\",\n coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ]\n };\n }\n greatArc.distance = function() {\n return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments));\n };\n greatArc.source = function(_) {\n if (!arguments.length) return source;\n source = _, source_ = typeof _ === \"function\" ? null : _;\n return greatArc;\n };\n greatArc.target = function(_) {\n if (!arguments.length) return target;\n target = _, target_ = typeof _ === \"function\" ? null : _;\n return greatArc;\n };\n greatArc.precision = function() {\n return arguments.length ? greatArc : 0;\n };\n return greatArc;\n };\n d3.geo.interpolate = function(source, target) {\n return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);\n };\n function d3_geo_interpolate(x0, y0, x1, y1) {\n var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d);\n var interpolate = d ? function(t) {\n var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;\n return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ];\n } : function() {\n return [ x0 * d3_degrees, y0 * d3_degrees ];\n };\n interpolate.distance = d;\n return interpolate;\n }\n d3.geo.length = function(object) {\n d3_geo_lengthSum = 0;\n d3.geo.stream(object, d3_geo_length);\n return d3_geo_lengthSum;\n };\n var d3_geo_lengthSum;\n var d3_geo_length = {\n sphere: d3_noop,\n point: d3_noop,\n lineStart: d3_geo_lengthLineStart,\n lineEnd: d3_noop,\n polygonStart: d3_noop,\n polygonEnd: d3_noop\n };\n function d3_geo_lengthLineStart() {\n var λ0, sinφ0, cosφ0;\n d3_geo_length.point = function(λ, φ) {\n λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ);\n d3_geo_length.point = nextPoint;\n };\n d3_geo_length.lineEnd = function() {\n d3_geo_length.point = d3_geo_length.lineEnd = d3_noop;\n };\n function nextPoint(λ, φ) {\n var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t);\n d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ);\n λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ;\n }\n }\n function d3_geo_azimuthal(scale, angle) {\n function azimuthal(λ, φ) {\n var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);\n return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];\n }\n azimuthal.invert = function(x, y) {\n var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);\n return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];\n };\n return azimuthal;\n }\n var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {\n return Math.sqrt(2 / (1 + cosλcosφ));\n }, function(ρ) {\n return 2 * Math.asin(ρ / 2);\n });\n (d3.geo.azimuthalEqualArea = function() {\n return d3_geo_projection(d3_geo_azimuthalEqualArea);\n }).raw = d3_geo_azimuthalEqualArea;\n var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {\n var c = Math.acos(cosλcosφ);\n return c && c / Math.sin(c);\n }, d3_identity);\n (d3.geo.azimuthalEquidistant = function() {\n return d3_geo_projection(d3_geo_azimuthalEquidistant);\n }).raw = d3_geo_azimuthalEquidistant;\n function d3_geo_conicConformal(φ0, φ1) {\n var cosφ0 = Math.cos(φ0), t = function(φ) {\n return Math.tan(π / 4 + φ / 2);\n }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;\n if (!n) return d3_geo_mercator;\n function forward(λ, φ) {\n if (F > 0) {\n if (φ < -halfπ + ε) φ = -halfπ + ε;\n } else {\n if (φ > halfπ - ε) φ = halfπ - ε;\n }\n var ρ = F / Math.pow(t(φ), n);\n return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y);\n return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ];\n };\n return forward;\n }\n (d3.geo.conicConformal = function() {\n return d3_geo_conic(d3_geo_conicConformal);\n }).raw = d3_geo_conicConformal;\n function d3_geo_conicEquidistant(φ0, φ1) {\n var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0;\n if (abs(n) < ε) return d3_geo_equirectangular;\n function forward(λ, φ) {\n var ρ = G - φ;\n return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = G - y;\n return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ];\n };\n return forward;\n }\n (d3.geo.conicEquidistant = function() {\n return d3_geo_conic(d3_geo_conicEquidistant);\n }).raw = d3_geo_conicEquidistant;\n var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {\n return 1 / cosλcosφ;\n }, Math.atan);\n (d3.geo.gnomonic = function() {\n return d3_geo_projection(d3_geo_gnomonic);\n }).raw = d3_geo_gnomonic;\n function d3_geo_mercator(λ, φ) {\n return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ];\n }\n d3_geo_mercator.invert = function(x, y) {\n return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ];\n };\n function d3_geo_mercatorProjection(project) {\n var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto;\n m.scale = function() {\n var v = scale.apply(m, arguments);\n return v === m ? clipAuto ? m.clipExtent(null) : m : v;\n };\n m.translate = function() {\n var v = translate.apply(m, arguments);\n return v === m ? clipAuto ? m.clipExtent(null) : m : v;\n };\n m.clipExtent = function(_) {\n var v = clipExtent.apply(m, arguments);\n if (v === m) {\n if (clipAuto = _ == null) {\n var k = π * scale(), t = translate();\n clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]);\n }\n } else if (clipAuto) {\n v = null;\n }\n return v;\n };\n return m.clipExtent(null);\n }\n (d3.geo.mercator = function() {\n return d3_geo_mercatorProjection(d3_geo_mercator);\n }).raw = d3_geo_mercator;\n var d3_geo_orthographic = d3_geo_azimuthal(function() {\n return 1;\n }, Math.asin);\n (d3.geo.orthographic = function() {\n return d3_geo_projection(d3_geo_orthographic);\n }).raw = d3_geo_orthographic;\n var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {\n return 1 / (1 + cosλcosφ);\n }, function(ρ) {\n return 2 * Math.atan(ρ);\n });\n (d3.geo.stereographic = function() {\n return d3_geo_projection(d3_geo_stereographic);\n }).raw = d3_geo_stereographic;\n function d3_geo_transverseMercator(λ, φ) {\n return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ];\n }\n d3_geo_transverseMercator.invert = function(x, y) {\n return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ];\n };\n (d3.geo.transverseMercator = function() {\n var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate;\n projection.center = function(_) {\n return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]);\n };\n projection.rotate = function(_) {\n return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(), \n [ _[0], _[1], _[2] - 90 ]);\n };\n return rotate([ 0, 0, 90 ]);\n }).raw = d3_geo_transverseMercator;\n d3.geom = {};\n function d3_geom_pointX(d) {\n return d[0];\n }\n function d3_geom_pointY(d) {\n return d[1];\n }\n d3.geom.hull = function(vertices) {\n var x = d3_geom_pointX, y = d3_geom_pointY;\n if (arguments.length) return hull(vertices);\n function hull(data) {\n if (data.length < 3) return [];\n var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = [];\n for (i = 0; i < n; i++) {\n points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]);\n }\n points.sort(d3_geom_hullOrder);\n for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]);\n var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints);\n var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = [];\n for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]);\n for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]);\n return polygon;\n }\n hull.x = function(_) {\n return arguments.length ? (x = _, hull) : x;\n };\n hull.y = function(_) {\n return arguments.length ? (y = _, hull) : y;\n };\n return hull;\n };\n function d3_geom_hullUpper(points) {\n var n = points.length, hull = [ 0, 1 ], hs = 2;\n for (var i = 2; i < n; i++) {\n while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs;\n hull[hs++] = i;\n }\n return hull.slice(0, hs);\n }\n function d3_geom_hullOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n }\n d3.geom.polygon = function(coordinates) {\n d3_subclass(coordinates, d3_geom_polygonPrototype);\n return coordinates;\n };\n var d3_geom_polygonPrototype = d3.geom.polygon.prototype = [];\n d3_geom_polygonPrototype.area = function() {\n var i = -1, n = this.length, a, b = this[n - 1], area = 0;\n while (++i < n) {\n a = b;\n b = this[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n return area * .5;\n };\n d3_geom_polygonPrototype.centroid = function(k) {\n var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c;\n if (!arguments.length) k = -1 / (6 * this.area());\n while (++i < n) {\n a = b;\n b = this[i];\n c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n return [ x * k, y * k ];\n };\n d3_geom_polygonPrototype.clip = function(subject) {\n var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d;\n while (++i < n) {\n input = subject.slice();\n subject.length = 0;\n b = this[i];\n c = input[(m = input.length - closed) - 1];\n j = -1;\n while (++j < m) {\n d = input[j];\n if (d3_geom_polygonInside(d, a, b)) {\n if (!d3_geom_polygonInside(c, a, b)) {\n subject.push(d3_geom_polygonIntersect(c, d, a, b));\n }\n subject.push(d);\n } else if (d3_geom_polygonInside(c, a, b)) {\n subject.push(d3_geom_polygonIntersect(c, d, a, b));\n }\n c = d;\n }\n if (closed) subject.push(subject[0]);\n a = b;\n }\n return subject;\n };\n function d3_geom_polygonInside(p, a, b) {\n return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);\n }\n function d3_geom_polygonIntersect(c, d, a, b) {\n var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);\n return [ x1 + ua * x21, y1 + ua * y21 ];\n }\n function d3_geom_polygonClosed(coordinates) {\n var a = coordinates[0], b = coordinates[coordinates.length - 1];\n return !(a[0] - b[0] || a[1] - b[1]);\n }\n var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = [];\n function d3_geom_voronoiBeach() {\n d3_geom_voronoiRedBlackNode(this);\n this.edge = this.site = this.circle = null;\n }\n function d3_geom_voronoiCreateBeach(site) {\n var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach();\n beach.site = site;\n return beach;\n }\n function d3_geom_voronoiDetachBeach(beach) {\n d3_geom_voronoiDetachCircle(beach);\n d3_geom_voronoiBeaches.remove(beach);\n d3_geom_voronoiBeachPool.push(beach);\n d3_geom_voronoiRedBlackNode(beach);\n }\n function d3_geom_voronoiRemoveBeach(beach) {\n var circle = beach.circle, x = circle.x, y = circle.cy, vertex = {\n x: x,\n y: y\n }, previous = beach.P, next = beach.N, disappearing = [ beach ];\n d3_geom_voronoiDetachBeach(beach);\n var lArc = previous;\n while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n d3_geom_voronoiDetachBeach(lArc);\n lArc = previous;\n }\n disappearing.unshift(lArc);\n d3_geom_voronoiDetachCircle(lArc);\n var rArc = next;\n while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) {\n next = rArc.N;\n disappearing.push(rArc);\n d3_geom_voronoiDetachBeach(rArc);\n rArc = next;\n }\n disappearing.push(rArc);\n d3_geom_voronoiDetachCircle(rArc);\n var nArcs = disappearing.length, iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n }\n function d3_geom_voronoiAddBeach(site) {\n var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._;\n while (node) {\n dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x;\n if (dxl > ε) node = node.L; else {\n dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix);\n if (dxr > ε) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -ε) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -ε) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n var newArc = d3_geom_voronoiCreateBeach(site);\n d3_geom_voronoiBeaches.insert(lArc, newArc);\n if (!lArc && !rArc) return;\n if (lArc === rArc) {\n d3_geom_voronoiDetachCircle(lArc);\n rArc = d3_geom_voronoiCreateBeach(lArc.site);\n d3_geom_voronoiBeaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n return;\n }\n if (!rArc) {\n newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n return;\n }\n d3_geom_voronoiDetachCircle(lArc);\n d3_geom_voronoiDetachCircle(rArc);\n var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = {\n x: (cy * hb - by * hc) / d + ax,\n y: (bx * hc - cx * hb) / d + ay\n };\n d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex);\n rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n }\n function d3_geom_voronoiLeftBreakPoint(arc, directrix) {\n var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix;\n if (!pby2) return rfocx;\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n site = lArc.site;\n var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix;\n if (!plby2) return lfocx;\n var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2;\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n return (rfocx + lfocx) / 2;\n }\n function d3_geom_voronoiRightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site.y === directrix ? site.x : Infinity;\n }\n function d3_geom_voronoiCell(site) {\n this.site = site;\n this.edges = [];\n }\n d3_geom_voronoiCell.prototype.prepare = function() {\n var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge;\n while (iHalfEdge--) {\n edge = halfEdges[iHalfEdge].edge;\n if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1);\n }\n halfEdges.sort(d3_geom_voronoiHalfEdgeOrder);\n return halfEdges.length;\n };\n function d3_geom_voronoiCloseCells(extent) {\n var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end;\n while (iCell--) {\n cell = cells[iCell];\n if (!cell || !cell.prepare()) continue;\n halfEdges = cell.edges;\n nHalfEdges = halfEdges.length;\n iHalfEdge = 0;\n while (iHalfEdge < nHalfEdges) {\n end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y;\n start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y;\n if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) {\n halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? {\n x: x0,\n y: abs(x2 - x0) < ε ? y2 : y1\n } : abs(y3 - y1) < ε && x1 - x3 > ε ? {\n x: abs(y2 - y1) < ε ? x2 : x1,\n y: y1\n } : abs(x3 - x1) < ε && y3 - y0 > ε ? {\n x: x1,\n y: abs(x2 - x1) < ε ? y2 : y0\n } : abs(y3 - y0) < ε && x3 - x0 > ε ? {\n x: abs(y2 - y0) < ε ? x2 : x0,\n y: y0\n } : null), cell.site, null));\n ++nHalfEdges;\n }\n }\n }\n }\n function d3_geom_voronoiHalfEdgeOrder(a, b) {\n return b.angle - a.angle;\n }\n function d3_geom_voronoiCircle() {\n d3_geom_voronoiRedBlackNode(this);\n this.x = this.y = this.arc = this.site = this.cy = null;\n }\n function d3_geom_voronoiAttachCircle(arc) {\n var lArc = arc.P, rArc = arc.N;\n if (!lArc || !rArc) return;\n var lSite = lArc.site, cSite = arc.site, rSite = rArc.site;\n if (lSite === rSite) return;\n var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by;\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -ε2) return;\n var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by;\n var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle();\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = cy + Math.sqrt(x * x + y * y);\n circle.cy = cy;\n arc.circle = circle;\n var before = null, node = d3_geom_voronoiCircles._;\n while (node) {\n if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {\n if (node.L) node = node.L; else {\n before = node.P;\n break;\n }\n } else {\n if (node.R) node = node.R; else {\n before = node;\n break;\n }\n }\n }\n d3_geom_voronoiCircles.insert(before, circle);\n if (!before) d3_geom_voronoiFirstCircle = circle;\n }\n function d3_geom_voronoiDetachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) d3_geom_voronoiFirstCircle = circle.N;\n d3_geom_voronoiCircles.remove(circle);\n d3_geom_voronoiCirclePool.push(circle);\n d3_geom_voronoiRedBlackNode(circle);\n arc.circle = null;\n }\n }\n function d3_geom_voronoiClipEdges(extent) {\n var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e;\n while (i--) {\n e = edges[i];\n if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) {\n e.a = e.b = null;\n edges.splice(i, 1);\n }\n }\n }\n function d3_geom_voronoiConnectEdge(edge, extent) {\n var vb = edge.b;\n if (vb) return true;\n var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb;\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!va) va = {\n x: fx,\n y: y0\n }; else if (va.y >= y1) return;\n vb = {\n x: fx,\n y: y1\n };\n } else {\n if (!va) va = {\n x: fx,\n y: y1\n }; else if (va.y < y0) return;\n vb = {\n x: fx,\n y: y0\n };\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!va) va = {\n x: (y0 - fb) / fm,\n y: y0\n }; else if (va.y >= y1) return;\n vb = {\n x: (y1 - fb) / fm,\n y: y1\n };\n } else {\n if (!va) va = {\n x: (y1 - fb) / fm,\n y: y1\n }; else if (va.y < y0) return;\n vb = {\n x: (y0 - fb) / fm,\n y: y0\n };\n }\n } else {\n if (ly < ry) {\n if (!va) va = {\n x: x0,\n y: fm * x0 + fb\n }; else if (va.x >= x1) return;\n vb = {\n x: x1,\n y: fm * x1 + fb\n };\n } else {\n if (!va) va = {\n x: x1,\n y: fm * x1 + fb\n }; else if (va.x < x0) return;\n vb = {\n x: x0,\n y: fm * x0 + fb\n };\n }\n }\n }\n edge.a = va;\n edge.b = vb;\n return true;\n }\n function d3_geom_voronoiEdge(lSite, rSite) {\n this.l = lSite;\n this.r = rSite;\n this.a = this.b = null;\n }\n function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) {\n var edge = new d3_geom_voronoiEdge(lSite, rSite);\n d3_geom_voronoiEdges.push(edge);\n if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va);\n if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb);\n d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite));\n d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite));\n return edge;\n }\n function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) {\n var edge = new d3_geom_voronoiEdge(lSite, null);\n edge.a = va;\n edge.b = vb;\n d3_geom_voronoiEdges.push(edge);\n return edge;\n }\n function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) {\n if (!edge.a && !edge.b) {\n edge.a = vertex;\n edge.l = lSite;\n edge.r = rSite;\n } else if (edge.l === rSite) {\n edge.b = vertex;\n } else {\n edge.a = vertex;\n }\n }\n function d3_geom_voronoiHalfEdge(edge, lSite, rSite) {\n var va = edge.a, vb = edge.b;\n this.edge = edge;\n this.site = lSite;\n this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y);\n }\n d3_geom_voronoiHalfEdge.prototype = {\n start: function() {\n return this.edge.l === this.site ? this.edge.a : this.edge.b;\n },\n end: function() {\n return this.edge.l === this.site ? this.edge.b : this.edge.a;\n }\n };\n function d3_geom_voronoiRedBlackTree() {\n this._ = null;\n }\n function d3_geom_voronoiRedBlackNode(node) {\n node.U = node.C = node.L = node.R = node.P = node.N = null;\n }\n d3_geom_voronoiRedBlackTree.prototype = {\n insert: function(after, node) {\n var parent, grandpa, uncle;\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = d3_geom_voronoiRedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n var parent = node.U, sibling, left = node.L, right = node.R, next, red;\n if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right);\n if (parent) {\n if (parent.L === node) parent.L = next; else parent.R = next;\n } else {\n this._ = next;\n }\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) {\n node.C = false;\n return;\n }\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n if (node) node.C = false;\n }\n };\n function d3_geom_voronoiRedBlackRotateLeft(tree, node) {\n var p = node, q = node.R, parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q; else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n }\n function d3_geom_voronoiRedBlackRotateRight(tree, node) {\n var p = node, q = node.L, parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q; else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n }\n function d3_geom_voronoiRedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n }\n function d3_geom_voronoi(sites, bbox) {\n var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle;\n d3_geom_voronoiEdges = [];\n d3_geom_voronoiCells = new Array(sites.length);\n d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree();\n d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree();\n while (true) {\n circle = d3_geom_voronoiFirstCircle;\n if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) {\n if (site.x !== x0 || site.y !== y0) {\n d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site);\n d3_geom_voronoiAddBeach(site);\n x0 = site.x, y0 = site.y;\n }\n site = sites.pop();\n } else if (circle) {\n d3_geom_voronoiRemoveBeach(circle.arc);\n } else {\n break;\n }\n }\n if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox);\n var diagram = {\n cells: d3_geom_voronoiCells,\n edges: d3_geom_voronoiEdges\n };\n d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null;\n return diagram;\n }\n function d3_geom_voronoiVertexOrder(a, b) {\n return b.y - a.y || b.x - a.x;\n }\n d3.geom.voronoi = function(points) {\n var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent;\n if (points) return voronoi(points);\n function voronoi(data) {\n var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1];\n d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) {\n var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) {\n var s = e.start();\n return [ s.x, s.y ];\n }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : [];\n polygon.point = data[i];\n });\n return polygons;\n }\n function sites(data) {\n return data.map(function(d, i) {\n return {\n x: Math.round(fx(d, i) / ε) * ε,\n y: Math.round(fy(d, i) / ε) * ε,\n i: i\n };\n });\n }\n voronoi.links = function(data) {\n return d3_geom_voronoi(sites(data)).edges.filter(function(edge) {\n return edge.l && edge.r;\n }).map(function(edge) {\n return {\n source: data[edge.l.i],\n target: data[edge.r.i]\n };\n });\n };\n voronoi.triangles = function(data) {\n var triangles = [];\n d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) {\n var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l;\n while (++j < m) {\n e0 = e1;\n s0 = s1;\n e1 = edges[j].edge;\n s1 = e1.l === site ? e1.r : e1.l;\n if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) {\n triangles.push([ data[i], data[s0.i], data[s1.i] ]);\n }\n }\n });\n return triangles;\n };\n voronoi.x = function(_) {\n return arguments.length ? (fx = d3_functor(x = _), voronoi) : x;\n };\n voronoi.y = function(_) {\n return arguments.length ? (fy = d3_functor(y = _), voronoi) : y;\n };\n voronoi.clipExtent = function(_) {\n if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent;\n clipExtent = _ == null ? d3_geom_voronoiClipExtent : _;\n return voronoi;\n };\n voronoi.size = function(_) {\n if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1];\n return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]);\n };\n return voronoi;\n };\n var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ];\n function d3_geom_voronoiTriangleArea(a, b, c) {\n return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y);\n }\n d3.geom.delaunay = function(vertices) {\n return d3.geom.voronoi().triangles(vertices);\n };\n d3.geom.quadtree = function(points, x1, y1, x2, y2) {\n var x = d3_geom_pointX, y = d3_geom_pointY, compat;\n if (compat = arguments.length) {\n x = d3_geom_quadtreeCompatX;\n y = d3_geom_quadtreeCompatY;\n if (compat === 3) {\n y2 = y1;\n x2 = x1;\n y1 = x1 = 0;\n }\n return quadtree(points);\n }\n function quadtree(data) {\n var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;\n if (x1 != null) {\n x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;\n } else {\n x2_ = y2_ = -(x1_ = y1_ = Infinity);\n xs = [], ys = [];\n n = data.length;\n if (compat) for (i = 0; i < n; ++i) {\n d = data[i];\n if (d.x < x1_) x1_ = d.x;\n if (d.y < y1_) y1_ = d.y;\n if (d.x > x2_) x2_ = d.x;\n if (d.y > y2_) y2_ = d.y;\n xs.push(d.x);\n ys.push(d.y);\n } else for (i = 0; i < n; ++i) {\n var x_ = +fx(d = data[i], i), y_ = +fy(d, i);\n if (x_ < x1_) x1_ = x_;\n if (y_ < y1_) y1_ = y_;\n if (x_ > x2_) x2_ = x_;\n if (y_ > y2_) y2_ = y_;\n xs.push(x_);\n ys.push(y_);\n }\n }\n var dx = x2_ - x1_, dy = y2_ - y1_;\n if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy;\n function insert(n, d, x, y, x1, y1, x2, y2) {\n if (isNaN(x) || isNaN(y)) return;\n if (n.leaf) {\n var nx = n.x, ny = n.y;\n if (nx != null) {\n if (abs(nx - x) + abs(ny - y) < .01) {\n insertChild(n, d, x, y, x1, y1, x2, y2);\n } else {\n var nPoint = n.point;\n n.x = n.y = n.point = null;\n insertChild(n, nPoint, nx, ny, x1, y1, x2, y2);\n insertChild(n, d, x, y, x1, y1, x2, y2);\n }\n } else {\n n.x = x, n.y = y, n.point = d;\n }\n } else {\n insertChild(n, d, x, y, x1, y1, x2, y2);\n }\n }\n function insertChild(n, d, x, y, x1, y1, x2, y2) {\n var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = x >= sx, bottom = y >= sy, i = (bottom << 1) + right;\n n.leaf = false;\n n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());\n if (right) x1 = sx; else x2 = sx;\n if (bottom) y1 = sy; else y2 = sy;\n insert(n, d, x, y, x1, y1, x2, y2);\n }\n var root = d3_geom_quadtreeNode();\n root.add = function(d) {\n insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_);\n };\n root.visit = function(f) {\n d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);\n };\n i = -1;\n if (x1 == null) {\n while (++i < n) {\n insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);\n }\n --i;\n } else data.forEach(root.add);\n xs = ys = data = d = null;\n return root;\n }\n quadtree.x = function(_) {\n return arguments.length ? (x = _, quadtree) : x;\n };\n quadtree.y = function(_) {\n return arguments.length ? (y = _, quadtree) : y;\n };\n quadtree.extent = function(_) {\n if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ];\n if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], \n y2 = +_[1][1];\n return quadtree;\n };\n quadtree.size = function(_) {\n if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ];\n if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1];\n return quadtree;\n };\n return quadtree;\n };\n function d3_geom_quadtreeCompatX(d) {\n return d.x;\n }\n function d3_geom_quadtreeCompatY(d) {\n return d.y;\n }\n function d3_geom_quadtreeNode() {\n return {\n leaf: true,\n nodes: [],\n point: null,\n x: null,\n y: null\n };\n }\n function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {\n if (!f(node, x1, y1, x2, y2)) {\n var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;\n if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);\n if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);\n if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);\n if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);\n }\n }\n d3.interpolateRgb = d3_interpolateRgb;\n function d3_interpolateRgb(a, b) {\n a = d3.rgb(a);\n b = d3.rgb(b);\n var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;\n return function(t) {\n return \"#\" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));\n };\n }\n d3.interpolateObject = d3_interpolateObject;\n function d3_interpolateObject(a, b) {\n var i = {}, c = {}, k;\n for (k in a) {\n if (k in b) {\n i[k] = d3_interpolate(a[k], b[k]);\n } else {\n c[k] = a[k];\n }\n }\n for (k in b) {\n if (!(k in a)) {\n c[k] = b[k];\n }\n }\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n }\n d3.interpolateNumber = d3_interpolateNumber;\n function d3_interpolateNumber(a, b) {\n b -= a = +a;\n return function(t) {\n return a + b * t;\n };\n }\n d3.interpolateString = d3_interpolateString;\n function d3_interpolateString(a, b) {\n var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];\n a = a + \"\", b = b + \"\";\n while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) {\n if ((bs = bm.index) > bi) {\n bs = b.substring(bi, bs);\n if (s[i]) s[i] += bs; else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) {\n if (s[i]) s[i] += bm; else s[++i] = bm;\n } else {\n s[++i] = null;\n q.push({\n i: i,\n x: d3_interpolateNumber(am, bm)\n });\n }\n bi = d3_interpolate_numberB.lastIndex;\n }\n if (bi < b.length) {\n bs = b.substring(bi);\n if (s[i]) s[i] += bs; else s[++i] = bs;\n }\n return s.length < 2 ? q[0] ? (b = q[0].x, function(t) {\n return b(t) + \"\";\n }) : function() {\n return b;\n } : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n }\n var d3_interpolate_numberA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, \"g\");\n d3.interpolate = d3_interpolate;\n function d3_interpolate(a, b) {\n var i = d3.interpolators.length, f;\n while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;\n return f;\n }\n d3.interpolators = [ function(a, b) {\n var t = typeof b;\n return (t === \"string\" ? d3_rgb_names.has(b) || /^(#|rgb\\(|hsl\\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === \"object\" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b);\n } ];\n d3.interpolateArray = d3_interpolateArray;\n function d3_interpolateArray(a, b) {\n var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;\n for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));\n for (;i < na; ++i) c[i] = a[i];\n for (;i < nb; ++i) c[i] = b[i];\n return function(t) {\n for (i = 0; i < n0; ++i) c[i] = x[i](t);\n return c;\n };\n }\n var d3_ease_default = function() {\n return d3_identity;\n };\n var d3_ease = d3.map({\n linear: d3_ease_default,\n poly: d3_ease_poly,\n quad: function() {\n return d3_ease_quad;\n },\n cubic: function() {\n return d3_ease_cubic;\n },\n sin: function() {\n return d3_ease_sin;\n },\n exp: function() {\n return d3_ease_exp;\n },\n circle: function() {\n return d3_ease_circle;\n },\n elastic: d3_ease_elastic,\n back: d3_ease_back,\n bounce: function() {\n return d3_ease_bounce;\n }\n });\n var d3_ease_mode = d3.map({\n \"in\": d3_identity,\n out: d3_ease_reverse,\n \"in-out\": d3_ease_reflect,\n \"out-in\": function(f) {\n return d3_ease_reflect(d3_ease_reverse(f));\n }\n });\n d3.ease = function(name) {\n var i = name.indexOf(\"-\"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : \"in\";\n t = d3_ease.get(t) || d3_ease_default;\n m = d3_ease_mode.get(m) || d3_identity;\n return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));\n };\n function d3_ease_clamp(f) {\n return function(t) {\n return t <= 0 ? 0 : t >= 1 ? 1 : f(t);\n };\n }\n function d3_ease_reverse(f) {\n return function(t) {\n return 1 - f(1 - t);\n };\n }\n function d3_ease_reflect(f) {\n return function(t) {\n return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));\n };\n }\n function d3_ease_quad(t) {\n return t * t;\n }\n function d3_ease_cubic(t) {\n return t * t * t;\n }\n function d3_ease_cubicInOut(t) {\n if (t <= 0) return 0;\n if (t >= 1) return 1;\n var t2 = t * t, t3 = t2 * t;\n return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);\n }\n function d3_ease_poly(e) {\n return function(t) {\n return Math.pow(t, e);\n };\n }\n function d3_ease_sin(t) {\n return 1 - Math.cos(t * halfπ);\n }\n function d3_ease_exp(t) {\n return Math.pow(2, 10 * (t - 1));\n }\n function d3_ease_circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n function d3_ease_elastic(a, p) {\n var s;\n if (arguments.length < 2) p = .45;\n if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4;\n return function(t) {\n return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p);\n };\n }\n function d3_ease_back(s) {\n if (!s) s = 1.70158;\n return function(t) {\n return t * t * ((s + 1) * t - s);\n };\n }\n function d3_ease_bounce(t) {\n return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;\n }\n d3.interpolateHcl = d3_interpolateHcl;\n function d3_interpolateHcl(a, b) {\n a = d3.hcl(a);\n b = d3.hcl(b);\n var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;\n if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac;\n if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;\n return function(t) {\n return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + \"\";\n };\n }\n d3.interpolateHsl = d3_interpolateHsl;\n function d3_interpolateHsl(a, b) {\n a = d3.hsl(a);\n b = d3.hsl(b);\n var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al;\n if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as;\n if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;\n return function(t) {\n return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + \"\";\n };\n }\n d3.interpolateLab = d3_interpolateLab;\n function d3_interpolateLab(a, b) {\n a = d3.lab(a);\n b = d3.lab(b);\n var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;\n return function(t) {\n return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + \"\";\n };\n }\n d3.interpolateRound = d3_interpolateRound;\n function d3_interpolateRound(a, b) {\n b -= a;\n return function(t) {\n return Math.round(a + b * t);\n };\n }\n d3.transform = function(string) {\n var g = d3_document.createElementNS(d3.ns.prefix.svg, \"g\");\n return (d3.transform = function(string) {\n if (string != null) {\n g.setAttribute(\"transform\", string);\n var t = g.transform.baseVal.consolidate();\n }\n return new d3_transform(t ? t.matrix : d3_transformIdentity);\n })(string);\n };\n function d3_transform(m) {\n var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;\n if (r0[0] * r1[1] < r1[0] * r0[1]) {\n r0[0] *= -1;\n r0[1] *= -1;\n kx *= -1;\n kz *= -1;\n }\n this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;\n this.translate = [ m.e, m.f ];\n this.scale = [ kx, ky ];\n this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;\n }\n d3_transform.prototype.toString = function() {\n return \"translate(\" + this.translate + \")rotate(\" + this.rotate + \")skewX(\" + this.skew + \")scale(\" + this.scale + \")\";\n };\n function d3_transformDot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n }\n function d3_transformNormalize(a) {\n var k = Math.sqrt(d3_transformDot(a, a));\n if (k) {\n a[0] /= k;\n a[1] /= k;\n }\n return k;\n }\n function d3_transformCombine(a, b, k) {\n a[0] += k * b[0];\n a[1] += k * b[1];\n return a;\n }\n var d3_transformIdentity = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: 0,\n f: 0\n };\n d3.interpolateTransform = d3_interpolateTransform;\n function d3_interpolateTransform(a, b) {\n var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale;\n if (ta[0] != tb[0] || ta[1] != tb[1]) {\n s.push(\"translate(\", null, \",\", null, \")\");\n q.push({\n i: 1,\n x: d3_interpolateNumber(ta[0], tb[0])\n }, {\n i: 3,\n x: d3_interpolateNumber(ta[1], tb[1])\n });\n } else if (tb[0] || tb[1]) {\n s.push(\"translate(\" + tb + \")\");\n } else {\n s.push(\"\");\n }\n if (ra != rb) {\n if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;\n q.push({\n i: s.push(s.pop() + \"rotate(\", null, \")\") - 2,\n x: d3_interpolateNumber(ra, rb)\n });\n } else if (rb) {\n s.push(s.pop() + \"rotate(\" + rb + \")\");\n }\n if (wa != wb) {\n q.push({\n i: s.push(s.pop() + \"skewX(\", null, \")\") - 2,\n x: d3_interpolateNumber(wa, wb)\n });\n } else if (wb) {\n s.push(s.pop() + \"skewX(\" + wb + \")\");\n }\n if (ka[0] != kb[0] || ka[1] != kb[1]) {\n n = s.push(s.pop() + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: n - 4,\n x: d3_interpolateNumber(ka[0], kb[0])\n }, {\n i: n - 2,\n x: d3_interpolateNumber(ka[1], kb[1])\n });\n } else if (kb[0] != 1 || kb[1] != 1) {\n s.push(s.pop() + \"scale(\" + kb + \")\");\n }\n n = q.length;\n return function(t) {\n var i = -1, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n }\n function d3_uninterpolateNumber(a, b) {\n b = b - (a = +a) ? 1 / (b - a) : 0;\n return function(x) {\n return (x - a) * b;\n };\n }\n function d3_uninterpolateClamp(a, b) {\n b = b - (a = +a) ? 1 / (b - a) : 0;\n return function(x) {\n return Math.max(0, Math.min(1, (x - a) * b));\n };\n }\n d3.layout = {};\n d3.layout.bundle = function() {\n return function(links) {\n var paths = [], i = -1, n = links.length;\n while (++i < n) paths.push(d3_layout_bundlePath(links[i]));\n return paths;\n };\n };\n function d3_layout_bundlePath(link) {\n var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];\n while (start !== lca) {\n start = start.parent;\n points.push(start);\n }\n var k = points.length;\n while (end !== lca) {\n points.splice(k, 0, end);\n end = end.parent;\n }\n return points;\n }\n function d3_layout_bundleAncestors(node) {\n var ancestors = [], parent = node.parent;\n while (parent != null) {\n ancestors.push(node);\n node = parent;\n parent = parent.parent;\n }\n ancestors.push(node);\n return ancestors;\n }\n function d3_layout_bundleLeastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;\n while (aNode === bNode) {\n sharedNode = aNode;\n aNode = aNodes.pop();\n bNode = bNodes.pop();\n }\n return sharedNode;\n }\n d3.layout.chord = function() {\n var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;\n function relayout() {\n var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;\n chords = [];\n groups = [];\n k = 0, i = -1;\n while (++i < n) {\n x = 0, j = -1;\n while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(d3.range(n));\n k += x;\n }\n if (sortGroups) {\n groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n }\n if (sortSubgroups) {\n subgroupIndex.forEach(function(d, i) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n });\n }\n k = (τ - padding * n) / k;\n x = 0, i = -1;\n while (++i < n) {\n x0 = x, j = -1;\n while (++j < n) {\n var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;\n subgroups[di + \"-\" + dj] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: (x - x0) / k\n };\n x += padding;\n }\n i = -1;\n while (++i < n) {\n j = i - 1;\n while (++j < n) {\n var source = subgroups[i + \"-\" + j], target = subgroups[j + \"-\" + i];\n if (source.value || target.value) {\n chords.push(source.value < target.value ? {\n source: target,\n target: source\n } : {\n source: source,\n target: target\n });\n }\n }\n }\n if (sortChords) resort();\n }\n function resort() {\n chords.sort(function(a, b) {\n return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);\n });\n }\n chord.matrix = function(x) {\n if (!arguments.length) return matrix;\n n = (matrix = x) && matrix.length;\n chords = groups = null;\n return chord;\n };\n chord.padding = function(x) {\n if (!arguments.length) return padding;\n padding = x;\n chords = groups = null;\n return chord;\n };\n chord.sortGroups = function(x) {\n if (!arguments.length) return sortGroups;\n sortGroups = x;\n chords = groups = null;\n return chord;\n };\n chord.sortSubgroups = function(x) {\n if (!arguments.length) return sortSubgroups;\n sortSubgroups = x;\n chords = null;\n return chord;\n };\n chord.sortChords = function(x) {\n if (!arguments.length) return sortChords;\n sortChords = x;\n if (chords) resort();\n return chord;\n };\n chord.chords = function() {\n if (!chords) relayout();\n return chords;\n };\n chord.groups = function() {\n if (!groups) relayout();\n return groups;\n };\n return chord;\n };\n d3.layout.force = function() {\n var force = {}, event = d3.dispatch(\"start\", \"tick\", \"end\"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges;\n function repulse(node) {\n return function(quad, x1, _, x2) {\n if (quad.point !== node) {\n var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy;\n if (dw * dw / theta2 < dn) {\n if (dn < chargeDistance2) {\n var k = quad.charge / dn;\n node.px -= dx * k;\n node.py -= dy * k;\n }\n return true;\n }\n if (quad.point && dn && dn < chargeDistance2) {\n var k = quad.pointCharge / dn;\n node.px -= dx * k;\n node.py -= dy * k;\n }\n }\n return !quad.charge;\n };\n }\n force.tick = function() {\n if ((alpha *= .99) < .005) {\n event.end({\n type: \"end\",\n alpha: alpha = 0\n });\n return true;\n }\n var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;\n for (i = 0; i < m; ++i) {\n o = links[i];\n s = o.source;\n t = o.target;\n x = t.x - s.x;\n y = t.y - s.y;\n if (l = x * x + y * y) {\n l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;\n x *= l;\n y *= l;\n t.x -= x * (k = s.weight / (t.weight + s.weight));\n t.y -= y * k;\n s.x += x * (k = 1 - k);\n s.y += y * k;\n }\n }\n if (k = alpha * gravity) {\n x = size[0] / 2;\n y = size[1] / 2;\n i = -1;\n if (k) while (++i < n) {\n o = nodes[i];\n o.x += (x - o.x) * k;\n o.y += (y - o.y) * k;\n }\n }\n if (charge) {\n d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);\n i = -1;\n while (++i < n) {\n if (!(o = nodes[i]).fixed) {\n q.visit(repulse(o));\n }\n }\n }\n i = -1;\n while (++i < n) {\n o = nodes[i];\n if (o.fixed) {\n o.x = o.px;\n o.y = o.py;\n } else {\n o.x -= (o.px - (o.px = o.x)) * friction;\n o.y -= (o.py - (o.py = o.y)) * friction;\n }\n }\n event.tick({\n type: \"tick\",\n alpha: alpha\n });\n };\n force.nodes = function(x) {\n if (!arguments.length) return nodes;\n nodes = x;\n return force;\n };\n force.links = function(x) {\n if (!arguments.length) return links;\n links = x;\n return force;\n };\n force.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return force;\n };\n force.linkDistance = function(x) {\n if (!arguments.length) return linkDistance;\n linkDistance = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.distance = force.linkDistance;\n force.linkStrength = function(x) {\n if (!arguments.length) return linkStrength;\n linkStrength = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.friction = function(x) {\n if (!arguments.length) return friction;\n friction = +x;\n return force;\n };\n force.charge = function(x) {\n if (!arguments.length) return charge;\n charge = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.chargeDistance = function(x) {\n if (!arguments.length) return Math.sqrt(chargeDistance2);\n chargeDistance2 = x * x;\n return force;\n };\n force.gravity = function(x) {\n if (!arguments.length) return gravity;\n gravity = +x;\n return force;\n };\n force.theta = function(x) {\n if (!arguments.length) return Math.sqrt(theta2);\n theta2 = x * x;\n return force;\n };\n force.alpha = function(x) {\n if (!arguments.length) return alpha;\n x = +x;\n if (alpha) {\n if (x > 0) alpha = x; else alpha = 0;\n } else if (x > 0) {\n event.start({\n type: \"start\",\n alpha: alpha = x\n });\n d3.timer(force.tick);\n }\n return force;\n };\n force.start = function() {\n var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;\n for (i = 0; i < n; ++i) {\n (o = nodes[i]).index = i;\n o.weight = 0;\n }\n for (i = 0; i < m; ++i) {\n o = links[i];\n if (typeof o.source == \"number\") o.source = nodes[o.source];\n if (typeof o.target == \"number\") o.target = nodes[o.target];\n ++o.source.weight;\n ++o.target.weight;\n }\n for (i = 0; i < n; ++i) {\n o = nodes[i];\n if (isNaN(o.x)) o.x = position(\"x\", w);\n if (isNaN(o.y)) o.y = position(\"y\", h);\n if (isNaN(o.px)) o.px = o.x;\n if (isNaN(o.py)) o.py = o.y;\n }\n distances = [];\n if (typeof linkDistance === \"function\") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;\n strengths = [];\n if (typeof linkStrength === \"function\") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;\n charges = [];\n if (typeof charge === \"function\") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;\n function position(dimension, size) {\n if (!neighbors) {\n neighbors = new Array(n);\n for (j = 0; j < n; ++j) {\n neighbors[j] = [];\n }\n for (j = 0; j < m; ++j) {\n var o = links[j];\n neighbors[o.source.index].push(o.target);\n neighbors[o.target.index].push(o.source);\n }\n }\n var candidates = neighbors[i], j = -1, m = candidates.length, x;\n while (++j < m) if (!isNaN(x = candidates[j][dimension])) return x;\n return Math.random() * size;\n }\n return force.resume();\n };\n force.resume = function() {\n return force.alpha(.1);\n };\n force.stop = function() {\n return force.alpha(0);\n };\n force.drag = function() {\n if (!drag) drag = d3.behavior.drag().origin(d3_identity).on(\"dragstart.force\", d3_layout_forceDragstart).on(\"drag.force\", dragmove).on(\"dragend.force\", d3_layout_forceDragend);\n if (!arguments.length) return drag;\n this.on(\"mouseover.force\", d3_layout_forceMouseover).on(\"mouseout.force\", d3_layout_forceMouseout).call(drag);\n };\n function dragmove(d) {\n d.px = d3.event.x, d.py = d3.event.y;\n force.resume();\n }\n return d3.rebind(force, event, \"on\");\n };\n function d3_layout_forceDragstart(d) {\n d.fixed |= 2;\n }\n function d3_layout_forceDragend(d) {\n d.fixed &= ~6;\n }\n function d3_layout_forceMouseover(d) {\n d.fixed |= 4;\n d.px = d.x, d.py = d.y;\n }\n function d3_layout_forceMouseout(d) {\n d.fixed &= ~4;\n }\n function d3_layout_forceAccumulate(quad, alpha, charges) {\n var cx = 0, cy = 0;\n quad.charge = 0;\n if (!quad.leaf) {\n var nodes = quad.nodes, n = nodes.length, i = -1, c;\n while (++i < n) {\n c = nodes[i];\n if (c == null) continue;\n d3_layout_forceAccumulate(c, alpha, charges);\n quad.charge += c.charge;\n cx += c.charge * c.cx;\n cy += c.charge * c.cy;\n }\n }\n if (quad.point) {\n if (!quad.leaf) {\n quad.point.x += Math.random() - .5;\n quad.point.y += Math.random() - .5;\n }\n var k = alpha * charges[quad.point.index];\n quad.charge += quad.pointCharge = k;\n cx += k * quad.point.x;\n cy += k * quad.point.y;\n }\n quad.cx = cx / quad.charge;\n quad.cy = cy / quad.charge;\n }\n var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity;\n d3.layout.hierarchy = function() {\n var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;\n function hierarchy(root) {\n var stack = [ root ], nodes = [], node;\n root.depth = 0;\n while ((node = stack.pop()) != null) {\n nodes.push(node);\n if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) {\n var n, childs, child;\n while (--n >= 0) {\n stack.push(child = childs[n]);\n child.parent = node;\n child.depth = node.depth + 1;\n }\n if (value) node.value = 0;\n node.children = childs;\n } else {\n if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;\n delete node.children;\n }\n }\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var childs, parent;\n if (sort && (childs = node.children)) childs.sort(sort);\n if (value && (parent = node.parent)) parent.value += node.value;\n });\n return nodes;\n }\n hierarchy.sort = function(x) {\n if (!arguments.length) return sort;\n sort = x;\n return hierarchy;\n };\n hierarchy.children = function(x) {\n if (!arguments.length) return children;\n children = x;\n return hierarchy;\n };\n hierarchy.value = function(x) {\n if (!arguments.length) return value;\n value = x;\n return hierarchy;\n };\n hierarchy.revalue = function(root) {\n if (value) {\n d3_layout_hierarchyVisitBefore(root, function(node) {\n if (node.children) node.value = 0;\n });\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var parent;\n if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0;\n if (parent = node.parent) parent.value += node.value;\n });\n }\n return root;\n };\n return hierarchy;\n };\n function d3_layout_hierarchyRebind(object, hierarchy) {\n d3.rebind(object, hierarchy, \"sort\", \"children\", \"value\");\n object.nodes = object;\n object.links = d3_layout_hierarchyLinks;\n return object;\n }\n function d3_layout_hierarchyVisitBefore(node, callback) {\n var nodes = [ node ];\n while ((node = nodes.pop()) != null) {\n callback(node);\n if ((children = node.children) && (n = children.length)) {\n var n, children;\n while (--n >= 0) nodes.push(children[n]);\n }\n }\n }\n function d3_layout_hierarchyVisitAfter(node, callback) {\n var nodes = [ node ], nodes2 = [];\n while ((node = nodes.pop()) != null) {\n nodes2.push(node);\n if ((children = node.children) && (n = children.length)) {\n var i = -1, n, children;\n while (++i < n) nodes.push(children[i]);\n }\n }\n while ((node = nodes2.pop()) != null) {\n callback(node);\n }\n }\n function d3_layout_hierarchyChildren(d) {\n return d.children;\n }\n function d3_layout_hierarchyValue(d) {\n return d.value;\n }\n function d3_layout_hierarchySort(a, b) {\n return b.value - a.value;\n }\n function d3_layout_hierarchyLinks(nodes) {\n return d3.merge(nodes.map(function(parent) {\n return (parent.children || []).map(function(child) {\n return {\n source: parent,\n target: child\n };\n });\n }));\n }\n d3.layout.partition = function() {\n var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];\n function position(node, x, dx, dy) {\n var children = node.children;\n node.x = x;\n node.y = node.depth * dy;\n node.dx = dx;\n node.dy = dy;\n if (children && (n = children.length)) {\n var i = -1, n, c, d;\n dx = node.value ? dx / node.value : 0;\n while (++i < n) {\n position(c = children[i], x, d = c.value * dx, dy);\n x += d;\n }\n }\n }\n function depth(node) {\n var children = node.children, d = 0;\n if (children && (n = children.length)) {\n var i = -1, n;\n while (++i < n) d = Math.max(d, depth(children[i]));\n }\n return 1 + d;\n }\n function partition(d, i) {\n var nodes = hierarchy.call(this, d, i);\n position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));\n return nodes;\n }\n partition.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return partition;\n };\n return d3_layout_hierarchyRebind(partition, hierarchy);\n };\n d3.layout.pie = function() {\n var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ;\n function pie(data) {\n var values = data.map(function(d, i) {\n return +value.call(pie, d, i);\n });\n var a = +(typeof startAngle === \"function\" ? startAngle.apply(this, arguments) : startAngle);\n var k = ((typeof endAngle === \"function\" ? endAngle.apply(this, arguments) : endAngle) - a) / d3.sum(values);\n var index = d3.range(data.length);\n if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {\n return values[j] - values[i];\n } : function(i, j) {\n return sort(data[i], data[j]);\n });\n var arcs = [];\n index.forEach(function(i) {\n var d;\n arcs[i] = {\n data: data[i],\n value: d = values[i],\n startAngle: a,\n endAngle: a += d * k\n };\n });\n return arcs;\n }\n pie.value = function(x) {\n if (!arguments.length) return value;\n value = x;\n return pie;\n };\n pie.sort = function(x) {\n if (!arguments.length) return sort;\n sort = x;\n return pie;\n };\n pie.startAngle = function(x) {\n if (!arguments.length) return startAngle;\n startAngle = x;\n return pie;\n };\n pie.endAngle = function(x) {\n if (!arguments.length) return endAngle;\n endAngle = x;\n return pie;\n };\n return pie;\n };\n var d3_layout_pieSortByValue = {};\n d3.layout.stack = function() {\n var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;\n function stack(data, index) {\n var series = data.map(function(d, i) {\n return values.call(stack, d, i);\n });\n var points = series.map(function(d) {\n return d.map(function(v, i) {\n return [ x.call(stack, v, i), y.call(stack, v, i) ];\n });\n });\n var orders = order.call(stack, points, index);\n series = d3.permute(series, orders);\n points = d3.permute(points, orders);\n var offsets = offset.call(stack, points, index);\n var n = series.length, m = series[0].length, i, j, o;\n for (j = 0; j < m; ++j) {\n out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);\n for (i = 1; i < n; ++i) {\n out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);\n }\n }\n return data;\n }\n stack.values = function(x) {\n if (!arguments.length) return values;\n values = x;\n return stack;\n };\n stack.order = function(x) {\n if (!arguments.length) return order;\n order = typeof x === \"function\" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;\n return stack;\n };\n stack.offset = function(x) {\n if (!arguments.length) return offset;\n offset = typeof x === \"function\" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;\n return stack;\n };\n stack.x = function(z) {\n if (!arguments.length) return x;\n x = z;\n return stack;\n };\n stack.y = function(z) {\n if (!arguments.length) return y;\n y = z;\n return stack;\n };\n stack.out = function(z) {\n if (!arguments.length) return out;\n out = z;\n return stack;\n };\n return stack;\n };\n function d3_layout_stackX(d) {\n return d.x;\n }\n function d3_layout_stackY(d) {\n return d.y;\n }\n function d3_layout_stackOut(d, y0, y) {\n d.y0 = y0;\n d.y = y;\n }\n var d3_layout_stackOrders = d3.map({\n \"inside-out\": function(data) {\n var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {\n return max[a] - max[b];\n }), top = 0, bottom = 0, tops = [], bottoms = [];\n for (i = 0; i < n; ++i) {\n j = index[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n return bottoms.reverse().concat(tops);\n },\n reverse: function(data) {\n return d3.range(data.length).reverse();\n },\n \"default\": d3_layout_stackOrderDefault\n });\n var d3_layout_stackOffsets = d3.map({\n silhouette: function(data) {\n var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];\n for (j = 0; j < m; ++j) {\n for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n if (o > max) max = o;\n sums.push(o);\n }\n for (j = 0; j < m; ++j) {\n y0[j] = (max - sums[j]) / 2;\n }\n return y0;\n },\n wiggle: function(data) {\n var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];\n y0[0] = o = o0 = 0;\n for (j = 1; j < m; ++j) {\n for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];\n for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {\n for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {\n s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;\n }\n s2 += s3 * data[i][j][1];\n }\n y0[j] = o -= s1 ? s2 / s1 * dx : 0;\n if (o < o0) o0 = o;\n }\n for (j = 0; j < m; ++j) y0[j] -= o0;\n return y0;\n },\n expand: function(data) {\n var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];\n for (j = 0; j < m; ++j) {\n for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;\n }\n for (j = 0; j < m; ++j) y0[j] = 0;\n return y0;\n },\n zero: d3_layout_stackOffsetZero\n });\n function d3_layout_stackOrderDefault(data) {\n return d3.range(data.length);\n }\n function d3_layout_stackOffsetZero(data) {\n var j = -1, m = data[0].length, y0 = [];\n while (++j < m) y0[j] = 0;\n return y0;\n }\n function d3_layout_stackMaxIndex(array) {\n var i = 1, j = 0, v = array[0][1], k, n = array.length;\n for (;i < n; ++i) {\n if ((k = array[i][1]) > v) {\n j = i;\n v = k;\n }\n }\n return j;\n }\n function d3_layout_stackReduceSum(d) {\n return d.reduce(d3_layout_stackSum, 0);\n }\n function d3_layout_stackSum(p, d) {\n return p + d[1];\n }\n d3.layout.histogram = function() {\n var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;\n function histogram(data, i) {\n var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;\n while (++i < m) {\n bin = bins[i] = [];\n bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);\n bin.y = 0;\n }\n if (m > 0) {\n i = -1;\n while (++i < n) {\n x = values[i];\n if (x >= range[0] && x <= range[1]) {\n bin = bins[d3.bisect(thresholds, x, 1, m) - 1];\n bin.y += k;\n bin.push(data[i]);\n }\n }\n }\n return bins;\n }\n histogram.value = function(x) {\n if (!arguments.length) return valuer;\n valuer = x;\n return histogram;\n };\n histogram.range = function(x) {\n if (!arguments.length) return ranger;\n ranger = d3_functor(x);\n return histogram;\n };\n histogram.bins = function(x) {\n if (!arguments.length) return binner;\n binner = typeof x === \"number\" ? function(range) {\n return d3_layout_histogramBinFixed(range, x);\n } : d3_functor(x);\n return histogram;\n };\n histogram.frequency = function(x) {\n if (!arguments.length) return frequency;\n frequency = !!x;\n return histogram;\n };\n return histogram;\n };\n function d3_layout_histogramBinSturges(range, values) {\n return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));\n }\n function d3_layout_histogramBinFixed(range, n) {\n var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];\n while (++x <= n) f[x] = m * x + b;\n return f;\n }\n function d3_layout_histogramRange(values) {\n return [ d3.min(values), d3.max(values) ];\n }\n d3.layout.pack = function() {\n var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius;\n function pack(d, i) {\n var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === \"function\" ? radius : function() {\n return radius;\n };\n root.x = root.y = 0;\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r = +r(d.value);\n });\n d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n if (padding) {\n var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2;\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r += dr;\n });\n d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r -= dr;\n });\n }\n d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h));\n return nodes;\n }\n pack.size = function(_) {\n if (!arguments.length) return size;\n size = _;\n return pack;\n };\n pack.radius = function(_) {\n if (!arguments.length) return radius;\n radius = _ == null || typeof _ === \"function\" ? _ : +_;\n return pack;\n };\n pack.padding = function(_) {\n if (!arguments.length) return padding;\n padding = +_;\n return pack;\n };\n return d3_layout_hierarchyRebind(pack, hierarchy);\n };\n function d3_layout_packSort(a, b) {\n return a.value - b.value;\n }\n function d3_layout_packInsert(a, b) {\n var c = a._pack_next;\n a._pack_next = b;\n b._pack_prev = a;\n b._pack_next = c;\n c._pack_prev = b;\n }\n function d3_layout_packSplice(a, b) {\n a._pack_next = b;\n b._pack_prev = a;\n }\n function d3_layout_packIntersects(a, b) {\n var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;\n return .999 * dr * dr > dx * dx + dy * dy;\n }\n function d3_layout_packSiblings(node) {\n if (!(nodes = node.children) || !(n = nodes.length)) return;\n var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;\n function bound(node) {\n xMin = Math.min(node.x - node.r, xMin);\n xMax = Math.max(node.x + node.r, xMax);\n yMin = Math.min(node.y - node.r, yMin);\n yMax = Math.max(node.y + node.r, yMax);\n }\n nodes.forEach(d3_layout_packLink);\n a = nodes[0];\n a.x = -a.r;\n a.y = 0;\n bound(a);\n if (n > 1) {\n b = nodes[1];\n b.x = b.r;\n b.y = 0;\n bound(b);\n if (n > 2) {\n c = nodes[2];\n d3_layout_packPlace(a, b, c);\n bound(c);\n d3_layout_packInsert(a, c);\n a._pack_prev = c;\n d3_layout_packInsert(c, b);\n b = a._pack_next;\n for (i = 3; i < n; i++) {\n d3_layout_packPlace(a, b, c = nodes[i]);\n var isect = 0, s1 = 1, s2 = 1;\n for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {\n if (d3_layout_packIntersects(j, c)) {\n isect = 1;\n break;\n }\n }\n if (isect == 1) {\n for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {\n if (d3_layout_packIntersects(k, c)) {\n break;\n }\n }\n }\n if (isect) {\n if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);\n i--;\n } else {\n d3_layout_packInsert(a, c);\n b = c;\n bound(c);\n }\n }\n }\n }\n var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;\n for (i = 0; i < n; i++) {\n c = nodes[i];\n c.x -= cx;\n c.y -= cy;\n cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));\n }\n node.r = cr;\n nodes.forEach(d3_layout_packUnlink);\n }\n function d3_layout_packLink(node) {\n node._pack_next = node._pack_prev = node;\n }\n function d3_layout_packUnlink(node) {\n delete node._pack_next;\n delete node._pack_prev;\n }\n function d3_layout_packTransform(node, x, y, k) {\n var children = node.children;\n node.x = x += k * node.x;\n node.y = y += k * node.y;\n node.r *= k;\n if (children) {\n var i = -1, n = children.length;\n while (++i < n) d3_layout_packTransform(children[i], x, y, k);\n }\n }\n function d3_layout_packPlace(a, b, c) {\n var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;\n if (db && (dx || dy)) {\n var da = b.r + c.r, dc = dx * dx + dy * dy;\n da *= da;\n db *= db;\n var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);\n c.x = a.x + x * dx + y * dy;\n c.y = a.y + x * dy - y * dx;\n } else {\n c.x = a.x + db;\n c.y = a.y;\n }\n }\n d3.layout.tree = function() {\n var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null;\n function tree(d, i) {\n var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0);\n d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z;\n d3_layout_hierarchyVisitBefore(root1, secondWalk);\n if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else {\n var left = root0, right = root0, bottom = root0;\n d3_layout_hierarchyVisitBefore(root0, function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1);\n d3_layout_hierarchyVisitBefore(root0, function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n return nodes;\n }\n function wrapTree(root0) {\n var root1 = {\n A: null,\n children: [ root0 ]\n }, queue = [ root1 ], node1;\n while ((node1 = queue.pop()) != null) {\n for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) {\n queue.push((children[i] = child = {\n _: children[i],\n parent: node1,\n children: (child = children[i].children) && child.slice() || [],\n A: null,\n a: null,\n z: 0,\n m: 0,\n c: 0,\n s: 0,\n t: null,\n i: i\n }).a = child);\n }\n }\n return root1.children[0];\n }\n function firstWalk(v) {\n var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;\n if (children.length) {\n d3_layout_treeShift(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;\n while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {\n vom = d3_layout_treeLeft(vom);\n vop = d3_layout_treeRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !d3_layout_treeRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !d3_layout_treeLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n function sizeNode(node) {\n node.x *= size[0];\n node.y = node.depth * size[1];\n }\n tree.separation = function(x) {\n if (!arguments.length) return separation;\n separation = x;\n return tree;\n };\n tree.size = function(x) {\n if (!arguments.length) return nodeSize ? null : size;\n nodeSize = (size = x) == null ? sizeNode : null;\n return tree;\n };\n tree.nodeSize = function(x) {\n if (!arguments.length) return nodeSize ? size : null;\n nodeSize = (size = x) == null ? null : sizeNode;\n return tree;\n };\n return d3_layout_hierarchyRebind(tree, hierarchy);\n };\n function d3_layout_treeSeparation(a, b) {\n return a.parent == b.parent ? 1 : 2;\n }\n function d3_layout_treeLeft(v) {\n var children = v.children;\n return children.length ? children[0] : v.t;\n }\n function d3_layout_treeRight(v) {\n var children = v.children, n;\n return (n = children.length) ? children[n - 1] : v.t;\n }\n function d3_layout_treeMove(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n }\n function d3_layout_treeShift(v) {\n var shift = 0, change = 0, children = v.children, i = children.length, w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n }\n function d3_layout_treeAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n }\n d3.layout.cluster = function() {\n var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false;\n function cluster(d, i) {\n var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var children = node.children;\n if (children && children.length) {\n node.x = d3_layout_clusterX(children);\n node.y = d3_layout_clusterY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;\n d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) {\n node.x = (node.x - root.x) * size[0];\n node.y = (root.y - node.y) * size[1];\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * size[0];\n node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];\n });\n return nodes;\n }\n cluster.separation = function(x) {\n if (!arguments.length) return separation;\n separation = x;\n return cluster;\n };\n cluster.size = function(x) {\n if (!arguments.length) return nodeSize ? null : size;\n nodeSize = (size = x) == null;\n return cluster;\n };\n cluster.nodeSize = function(x) {\n if (!arguments.length) return nodeSize ? size : null;\n nodeSize = (size = x) != null;\n return cluster;\n };\n return d3_layout_hierarchyRebind(cluster, hierarchy);\n };\n function d3_layout_clusterY(children) {\n return 1 + d3.max(children, function(child) {\n return child.y;\n });\n }\n function d3_layout_clusterX(children) {\n return children.reduce(function(x, child) {\n return x + child.x;\n }, 0) / children.length;\n }\n function d3_layout_clusterLeft(node) {\n var children = node.children;\n return children && children.length ? d3_layout_clusterLeft(children[0]) : node;\n }\n function d3_layout_clusterRight(node) {\n var children = node.children, n;\n return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;\n }\n d3.layout.treemap = function() {\n var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = \"squarify\", ratio = .5 * (1 + Math.sqrt(5));\n function scale(children, k) {\n var i = -1, n = children.length, child, area;\n while (++i < n) {\n area = (child = children[i]).value * (k < 0 ? 0 : k);\n child.area = isNaN(area) || area <= 0 ? 0 : area;\n }\n }\n function squarify(node) {\n var children = node.children;\n if (children && children.length) {\n var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === \"slice\" ? rect.dx : mode === \"dice\" ? rect.dy : mode === \"slice-dice\" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;\n scale(remaining, rect.dx * rect.dy / node.value);\n row.area = 0;\n while ((n = remaining.length) > 0) {\n row.push(child = remaining[n - 1]);\n row.area += child.area;\n if (mode !== \"squarify\" || (score = worst(row, u)) <= best) {\n remaining.pop();\n best = score;\n } else {\n row.area -= row.pop().area;\n position(row, u, rect, false);\n u = Math.min(rect.dx, rect.dy);\n row.length = row.area = 0;\n best = Infinity;\n }\n }\n if (row.length) {\n position(row, u, rect, true);\n row.length = row.area = 0;\n }\n children.forEach(squarify);\n }\n }\n function stickify(node) {\n var children = node.children;\n if (children && children.length) {\n var rect = pad(node), remaining = children.slice(), child, row = [];\n scale(remaining, rect.dx * rect.dy / node.value);\n row.area = 0;\n while (child = remaining.pop()) {\n row.push(child);\n row.area += child.area;\n if (child.z != null) {\n position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);\n row.length = row.area = 0;\n }\n }\n children.forEach(stickify);\n }\n }\n function worst(row, u) {\n var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;\n while (++i < n) {\n if (!(r = row[i].area)) continue;\n if (r < rmin) rmin = r;\n if (r > rmax) rmax = r;\n }\n s *= s;\n u *= u;\n return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;\n }\n function position(row, u, rect, flush) {\n var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;\n if (u == rect.dx) {\n if (flush || v > rect.dy) v = rect.dy;\n while (++i < n) {\n o = row[i];\n o.x = x;\n o.y = y;\n o.dy = v;\n x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);\n }\n o.z = true;\n o.dx += rect.x + rect.dx - x;\n rect.y += v;\n rect.dy -= v;\n } else {\n if (flush || v > rect.dx) v = rect.dx;\n while (++i < n) {\n o = row[i];\n o.x = x;\n o.y = y;\n o.dx = v;\n y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);\n }\n o.z = false;\n o.dy += rect.y + rect.dy - y;\n rect.x += v;\n rect.dx -= v;\n }\n }\n function treemap(d) {\n var nodes = stickies || hierarchy(d), root = nodes[0];\n root.x = 0;\n root.y = 0;\n root.dx = size[0];\n root.dy = size[1];\n if (stickies) hierarchy.revalue(root);\n scale([ root ], root.dx * root.dy / root.value);\n (stickies ? stickify : squarify)(root);\n if (sticky) stickies = nodes;\n return nodes;\n }\n treemap.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return treemap;\n };\n treemap.padding = function(x) {\n if (!arguments.length) return padding;\n function padFunction(node) {\n var p = x.call(treemap, node, node.depth);\n return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === \"number\" ? [ p, p, p, p ] : p);\n }\n function padConstant(node) {\n return d3_layout_treemapPad(node, x);\n }\n var type;\n pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === \"function\" ? padFunction : type === \"number\" ? (x = [ x, x, x, x ], \n padConstant) : padConstant;\n return treemap;\n };\n treemap.round = function(x) {\n if (!arguments.length) return round != Number;\n round = x ? Math.round : Number;\n return treemap;\n };\n treemap.sticky = function(x) {\n if (!arguments.length) return sticky;\n sticky = x;\n stickies = null;\n return treemap;\n };\n treemap.ratio = function(x) {\n if (!arguments.length) return ratio;\n ratio = x;\n return treemap;\n };\n treemap.mode = function(x) {\n if (!arguments.length) return mode;\n mode = x + \"\";\n return treemap;\n };\n return d3_layout_hierarchyRebind(treemap, hierarchy);\n };\n function d3_layout_treemapPadNull(node) {\n return {\n x: node.x,\n y: node.y,\n dx: node.dx,\n dy: node.dy\n };\n }\n function d3_layout_treemapPad(node, padding) {\n var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];\n if (dx < 0) {\n x += dx / 2;\n dx = 0;\n }\n if (dy < 0) {\n y += dy / 2;\n dy = 0;\n }\n return {\n x: x,\n y: y,\n dx: dx,\n dy: dy\n };\n }\n d3.random = {\n normal: function(µ, σ) {\n var n = arguments.length;\n if (n < 2) σ = 1;\n if (n < 1) µ = 0;\n return function() {\n var x, y, r;\n do {\n x = Math.random() * 2 - 1;\n y = Math.random() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);\n };\n },\n logNormal: function() {\n var random = d3.random.normal.apply(d3, arguments);\n return function() {\n return Math.exp(random());\n };\n },\n bates: function(m) {\n var random = d3.random.irwinHall(m);\n return function() {\n return random() / m;\n };\n },\n irwinHall: function(m) {\n return function() {\n for (var s = 0, j = 0; j < m; j++) s += Math.random();\n return s;\n };\n }\n };\n d3.scale = {};\n function d3_scaleExtent(domain) {\n var start = domain[0], stop = domain[domain.length - 1];\n return start < stop ? [ start, stop ] : [ stop, start ];\n }\n function d3_scaleRange(scale) {\n return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());\n }\n function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {\n var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);\n return function(x) {\n return i(u(x));\n };\n }\n function d3_scale_nice(domain, nice) {\n var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;\n if (x1 < x0) {\n dx = i0, i0 = i1, i1 = dx;\n dx = x0, x0 = x1, x1 = dx;\n }\n domain[i0] = nice.floor(x0);\n domain[i1] = nice.ceil(x1);\n return domain;\n }\n function d3_scale_niceStep(step) {\n return step ? {\n floor: function(x) {\n return Math.floor(x / step) * step;\n },\n ceil: function(x) {\n return Math.ceil(x / step) * step;\n }\n } : d3_scale_niceIdentity;\n }\n var d3_scale_niceIdentity = {\n floor: d3_identity,\n ceil: d3_identity\n };\n function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {\n var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;\n if (domain[k] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n while (++j <= k) {\n u.push(uninterpolate(domain[j - 1], domain[j]));\n i.push(interpolate(range[j - 1], range[j]));\n }\n return function(x) {\n var j = d3.bisect(domain, x, 1, k) - 1;\n return i[j](u[j](x));\n };\n }\n d3.scale.linear = function() {\n return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);\n };\n function d3_scale_linear(domain, range, interpolate, clamp) {\n var output, input;\n function rescale() {\n var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;\n output = linear(domain, range, uninterpolate, interpolate);\n input = linear(range, domain, uninterpolate, d3_interpolate);\n return scale;\n }\n function scale(x) {\n return output(x);\n }\n scale.invert = function(y) {\n return input(y);\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(Number);\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.rangeRound = function(x) {\n return scale.range(x).interpolate(d3_interpolateRound);\n };\n scale.clamp = function(x) {\n if (!arguments.length) return clamp;\n clamp = x;\n return rescale();\n };\n scale.interpolate = function(x) {\n if (!arguments.length) return interpolate;\n interpolate = x;\n return rescale();\n };\n scale.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n scale.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n scale.nice = function(m) {\n d3_scale_linearNice(domain, m);\n return rescale();\n };\n scale.copy = function() {\n return d3_scale_linear(domain, range, interpolate, clamp);\n };\n return rescale();\n }\n function d3_scale_linearRebind(scale, linear) {\n return d3.rebind(scale, linear, \"range\", \"rangeRound\", \"interpolate\", \"clamp\");\n }\n function d3_scale_linearNice(domain, m) {\n return d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n }\n function d3_scale_linearTickRange(domain, m) {\n if (m == null) m = 10;\n var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;\n if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;\n extent[0] = Math.ceil(extent[0] / step) * step;\n extent[1] = Math.floor(extent[1] / step) * step + step * .5;\n extent[2] = step;\n return extent;\n }\n function d3_scale_linearTicks(domain, m) {\n return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));\n }\n function d3_scale_linearTickFormat(domain, m, format) {\n var range = d3_scale_linearTickRange(domain, m);\n if (format) {\n var match = d3_format_re.exec(format);\n match.shift();\n if (match[8] === \"s\") {\n var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1])));\n if (!match[7]) match[7] = \".\" + d3_scale_linearPrecision(prefix.scale(range[2]));\n match[8] = \"f\";\n format = d3.format(match.join(\"\"));\n return function(d) {\n return format(prefix.scale(d)) + prefix.symbol;\n };\n }\n if (!match[7]) match[7] = \".\" + d3_scale_linearFormatPrecision(match[8], range);\n format = match.join(\"\");\n } else {\n format = \",.\" + d3_scale_linearPrecision(range[2]) + \"f\";\n }\n return d3.format(format);\n }\n var d3_scale_linearFormatSignificant = {\n s: 1,\n g: 1,\n p: 1,\n r: 1,\n e: 1\n };\n function d3_scale_linearPrecision(value) {\n return -Math.floor(Math.log(value) / Math.LN10 + .01);\n }\n function d3_scale_linearFormatPrecision(type, range) {\n var p = d3_scale_linearPrecision(range[2]);\n return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== \"e\") : p - (type === \"%\") * 2;\n }\n d3.scale.log = function() {\n return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]);\n };\n function d3_scale_log(linear, base, positive, domain) {\n function log(x) {\n return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base);\n }\n function pow(x) {\n return positive ? Math.pow(base, x) : -Math.pow(base, -x);\n }\n function scale(x) {\n return linear(log(x));\n }\n scale.invert = function(x) {\n return pow(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n positive = x[0] >= 0;\n linear.domain((domain = x.map(Number)).map(log));\n return scale;\n };\n scale.base = function(_) {\n if (!arguments.length) return base;\n base = +_;\n linear.domain(domain.map(log));\n return scale;\n };\n scale.nice = function() {\n var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative);\n linear.domain(niced);\n domain = niced.map(pow);\n return scale;\n };\n scale.ticks = function() {\n var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base;\n if (isFinite(j - i)) {\n if (positive) {\n for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k);\n ticks.push(pow(i));\n } else {\n ticks.push(pow(i));\n for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k);\n }\n for (i = 0; ticks[i] < u; i++) {}\n for (j = ticks.length; ticks[j - 1] > v; j--) {}\n ticks = ticks.slice(i, j);\n }\n return ticks;\n };\n scale.tickFormat = function(n, format) {\n if (!arguments.length) return d3_scale_logFormat;\n if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== \"function\") format = d3.format(format);\n var k = Math.max(.1, n / scale.ticks().length), f = positive ? (e = 1e-12, Math.ceil) : (e = -1e-12, \n Math.floor), e;\n return function(d) {\n return d / pow(f(log(d) + e)) <= k ? format(d) : \"\";\n };\n };\n scale.copy = function() {\n return d3_scale_log(linear.copy(), base, positive, domain);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n var d3_scale_logFormat = d3.format(\".0e\"), d3_scale_logNiceNegative = {\n floor: function(x) {\n return -Math.ceil(-x);\n },\n ceil: function(x) {\n return -Math.floor(-x);\n }\n };\n d3.scale.pow = function() {\n return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]);\n };\n function d3_scale_pow(linear, exponent, domain) {\n var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);\n function scale(x) {\n return linear(powp(x));\n }\n scale.invert = function(x) {\n return powb(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n linear.domain((domain = x.map(Number)).map(powp));\n return scale;\n };\n scale.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n scale.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n scale.nice = function(m) {\n return scale.domain(d3_scale_linearNice(domain, m));\n };\n scale.exponent = function(x) {\n if (!arguments.length) return exponent;\n powp = d3_scale_powPow(exponent = x);\n powb = d3_scale_powPow(1 / exponent);\n linear.domain(domain.map(powp));\n return scale;\n };\n scale.copy = function() {\n return d3_scale_pow(linear.copy(), exponent, domain);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n function d3_scale_powPow(e) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);\n };\n }\n d3.scale.sqrt = function() {\n return d3.scale.pow().exponent(.5);\n };\n d3.scale.ordinal = function() {\n return d3_scale_ordinal([], {\n t: \"range\",\n a: [ [] ]\n });\n };\n function d3_scale_ordinal(domain, ranger) {\n var index, range, rangeBand;\n function scale(x) {\n return range[((index.get(x) || (ranger.t === \"range\" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length];\n }\n function steps(start, step) {\n return d3.range(domain.length).map(function(i) {\n return start + step * i;\n });\n }\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = [];\n index = new d3_Map();\n var i = -1, n = x.length, xi;\n while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));\n return scale[ranger.t].apply(scale, ranger.a);\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n rangeBand = 0;\n ranger = {\n t: \"range\",\n a: arguments\n };\n return scale;\n };\n scale.rangePoints = function(x, padding) {\n if (arguments.length < 2) padding = 0;\n var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding);\n range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);\n rangeBand = 0;\n ranger = {\n t: \"rangePoints\",\n a: arguments\n };\n return scale;\n };\n scale.rangeBands = function(x, padding, outerPadding) {\n if (arguments.length < 2) padding = 0;\n if (arguments.length < 3) outerPadding = padding;\n var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);\n range = steps(start + step * outerPadding, step);\n if (reverse) range.reverse();\n rangeBand = step * (1 - padding);\n ranger = {\n t: \"rangeBands\",\n a: arguments\n };\n return scale;\n };\n scale.rangeRoundBands = function(x, padding, outerPadding) {\n if (arguments.length < 2) padding = 0;\n if (arguments.length < 3) outerPadding = padding;\n var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step;\n range = steps(start + Math.round(error / 2), step);\n if (reverse) range.reverse();\n rangeBand = Math.round(step * (1 - padding));\n ranger = {\n t: \"rangeRoundBands\",\n a: arguments\n };\n return scale;\n };\n scale.rangeBand = function() {\n return rangeBand;\n };\n scale.rangeExtent = function() {\n return d3_scaleExtent(ranger.a[0]);\n };\n scale.copy = function() {\n return d3_scale_ordinal(domain, ranger);\n };\n return scale.domain(domain);\n }\n d3.scale.category10 = function() {\n return d3.scale.ordinal().range(d3_category10);\n };\n d3.scale.category20 = function() {\n return d3.scale.ordinal().range(d3_category20);\n };\n d3.scale.category20b = function() {\n return d3.scale.ordinal().range(d3_category20b);\n };\n d3.scale.category20c = function() {\n return d3.scale.ordinal().range(d3_category20c);\n };\n var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString);\n var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString);\n var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString);\n var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString);\n d3.scale.quantile = function() {\n return d3_scale_quantile([], []);\n };\n function d3_scale_quantile(domain, range) {\n var thresholds;\n function rescale() {\n var k = 0, q = range.length;\n thresholds = [];\n while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);\n return scale;\n }\n function scale(x) {\n if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)];\n }\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = x.filter(d3_number).sort(d3_ascending);\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.quantiles = function() {\n return thresholds;\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ];\n };\n scale.copy = function() {\n return d3_scale_quantile(domain, range);\n };\n return rescale();\n }\n d3.scale.quantize = function() {\n return d3_scale_quantize(0, 1, [ 0, 1 ]);\n };\n function d3_scale_quantize(x0, x1, range) {\n var kx, i;\n function scale(x) {\n return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];\n }\n function rescale() {\n kx = range.length / (x1 - x0);\n i = range.length - 1;\n return scale;\n }\n scale.domain = function(x) {\n if (!arguments.length) return [ x0, x1 ];\n x0 = +x[0];\n x1 = +x[x.length - 1];\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n y = y < 0 ? NaN : y / kx + x0;\n return [ y, y + 1 / kx ];\n };\n scale.copy = function() {\n return d3_scale_quantize(x0, x1, range);\n };\n return rescale();\n }\n d3.scale.threshold = function() {\n return d3_scale_threshold([ .5 ], [ 0, 1 ]);\n };\n function d3_scale_threshold(domain, range) {\n function scale(x) {\n if (x <= x) return range[d3.bisect(domain, x)];\n }\n scale.domain = function(_) {\n if (!arguments.length) return domain;\n domain = _;\n return scale;\n };\n scale.range = function(_) {\n if (!arguments.length) return range;\n range = _;\n return scale;\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n return [ domain[y - 1], domain[y] ];\n };\n scale.copy = function() {\n return d3_scale_threshold(domain, range);\n };\n return scale;\n }\n d3.scale.identity = function() {\n return d3_scale_identity([ 0, 1 ]);\n };\n function d3_scale_identity(domain) {\n function identity(x) {\n return +x;\n }\n identity.invert = identity;\n identity.domain = identity.range = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(identity);\n return identity;\n };\n identity.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n identity.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n identity.copy = function() {\n return d3_scale_identity(domain);\n };\n return identity;\n }\n d3.svg = {};\n d3.svg.arc = function() {\n var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;\n function arc() {\n var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0, \n a0 = a1, a1 = da), a1 - a0), df = da < π ? \"0\" : \"1\", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1);\n return da >= d3_svg_arcMax ? r0 ? \"M0,\" + r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,1 0,\" + -r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,1 0,\" + r1 + \"M0,\" + r0 + \"A\" + r0 + \",\" + r0 + \" 0 1,0 0,\" + -r0 + \"A\" + r0 + \",\" + r0 + \" 0 1,0 0,\" + r0 + \"Z\" : \"M0,\" + r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,1 0,\" + -r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,1 0,\" + r1 + \"Z\" : r0 ? \"M\" + r1 * c0 + \",\" + r1 * s0 + \"A\" + r1 + \",\" + r1 + \" 0 \" + df + \",1 \" + r1 * c1 + \",\" + r1 * s1 + \"L\" + r0 * c1 + \",\" + r0 * s1 + \"A\" + r0 + \",\" + r0 + \" 0 \" + df + \",0 \" + r0 * c0 + \",\" + r0 * s0 + \"Z\" : \"M\" + r1 * c0 + \",\" + r1 * s0 + \"A\" + r1 + \",\" + r1 + \" 0 \" + df + \",1 \" + r1 * c1 + \",\" + r1 * s1 + \"L0,0\" + \"Z\";\n }\n arc.innerRadius = function(v) {\n if (!arguments.length) return innerRadius;\n innerRadius = d3_functor(v);\n return arc;\n };\n arc.outerRadius = function(v) {\n if (!arguments.length) return outerRadius;\n outerRadius = d3_functor(v);\n return arc;\n };\n arc.startAngle = function(v) {\n if (!arguments.length) return startAngle;\n startAngle = d3_functor(v);\n return arc;\n };\n arc.endAngle = function(v) {\n if (!arguments.length) return endAngle;\n endAngle = d3_functor(v);\n return arc;\n };\n arc.centroid = function() {\n var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset;\n return [ Math.cos(a) * r, Math.sin(a) * r ];\n };\n return arc;\n };\n var d3_svg_arcOffset = -halfπ, d3_svg_arcMax = τ - ε;\n function d3_svg_arcInnerRadius(d) {\n return d.innerRadius;\n }\n function d3_svg_arcOuterRadius(d) {\n return d.outerRadius;\n }\n function d3_svg_arcStartAngle(d) {\n return d.startAngle;\n }\n function d3_svg_arcEndAngle(d) {\n return d.endAngle;\n }\n function d3_svg_line(projection) {\n var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;\n function line(data) {\n var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);\n function segment() {\n segments.push(\"M\", interpolate(projection(points), tension));\n }\n while (++i < n) {\n if (defined.call(this, d = data[i], i)) {\n points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);\n } else if (points.length) {\n segment();\n points = [];\n }\n }\n if (points.length) segment();\n return segments.length ? segments.join(\"\") : null;\n }\n line.x = function(_) {\n if (!arguments.length) return x;\n x = _;\n return line;\n };\n line.y = function(_) {\n if (!arguments.length) return y;\n y = _;\n return line;\n };\n line.defined = function(_) {\n if (!arguments.length) return defined;\n defined = _;\n return line;\n };\n line.interpolate = function(_) {\n if (!arguments.length) return interpolateKey;\n if (typeof _ === \"function\") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n return line;\n };\n line.tension = function(_) {\n if (!arguments.length) return tension;\n tension = _;\n return line;\n };\n return line;\n }\n d3.svg.line = function() {\n return d3_svg_line(d3_identity);\n };\n var d3_svg_lineInterpolators = d3.map({\n linear: d3_svg_lineLinear,\n \"linear-closed\": d3_svg_lineLinearClosed,\n step: d3_svg_lineStep,\n \"step-before\": d3_svg_lineStepBefore,\n \"step-after\": d3_svg_lineStepAfter,\n basis: d3_svg_lineBasis,\n \"basis-open\": d3_svg_lineBasisOpen,\n \"basis-closed\": d3_svg_lineBasisClosed,\n bundle: d3_svg_lineBundle,\n cardinal: d3_svg_lineCardinal,\n \"cardinal-open\": d3_svg_lineCardinalOpen,\n \"cardinal-closed\": d3_svg_lineCardinalClosed,\n monotone: d3_svg_lineMonotone\n });\n d3_svg_lineInterpolators.forEach(function(key, value) {\n value.key = key;\n value.closed = /-closed$/.test(key);\n });\n function d3_svg_lineLinear(points) {\n return points.join(\"L\");\n }\n function d3_svg_lineLinearClosed(points) {\n return d3_svg_lineLinear(points) + \"Z\";\n }\n function d3_svg_lineStep(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"H\", (p[0] + (p = points[i])[0]) / 2, \"V\", p[1]);\n if (n > 1) path.push(\"H\", p[0]);\n return path.join(\"\");\n }\n function d3_svg_lineStepBefore(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"V\", (p = points[i])[1], \"H\", p[0]);\n return path.join(\"\");\n }\n function d3_svg_lineStepAfter(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"H\", (p = points[i])[0], \"V\", p[1]);\n return path.join(\"\");\n }\n function d3_svg_lineCardinalOpen(points, tension) {\n return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension));\n }\n function d3_svg_lineCardinalClosed(points, tension) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), \n points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));\n }\n function d3_svg_lineCardinal(points, tension) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));\n }\n function d3_svg_lineHermite(points, tangents) {\n if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {\n return d3_svg_lineLinear(points);\n }\n var quad = points.length != tangents.length, path = \"\", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;\n if (quad) {\n path += \"Q\" + (p[0] - t0[0] * 2 / 3) + \",\" + (p[1] - t0[1] * 2 / 3) + \",\" + p[0] + \",\" + p[1];\n p0 = points[1];\n pi = 2;\n }\n if (tangents.length > 1) {\n t = tangents[1];\n p = points[pi];\n pi++;\n path += \"C\" + (p0[0] + t0[0]) + \",\" + (p0[1] + t0[1]) + \",\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n for (var i = 2; i < tangents.length; i++, pi++) {\n p = points[pi];\n t = tangents[i];\n path += \"S\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n }\n }\n if (quad) {\n var lp = points[pi];\n path += \"Q\" + (p[0] + t[0] * 2 / 3) + \",\" + (p[1] + t[1] * 2 / 3) + \",\" + lp[0] + \",\" + lp[1];\n }\n return path;\n }\n function d3_svg_lineCardinalTangents(points, tension) {\n var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;\n while (++i < n) {\n p0 = p1;\n p1 = p2;\n p2 = points[i];\n tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);\n }\n return tangents;\n }\n function d3_svg_lineBasis(points) {\n if (points.length < 3) return d3_svg_lineLinear(points);\n var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, \",\", y0, \"L\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];\n points.push(points[n - 1]);\n while (++i <= n) {\n pi = points[i];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n points.pop();\n path.push(\"L\", pi);\n return path.join(\"\");\n }\n function d3_svg_lineBasisOpen(points) {\n if (points.length < 4) return d3_svg_lineLinear(points);\n var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];\n while (++i < 3) {\n pi = points[i];\n px.push(pi[0]);\n py.push(pi[1]);\n }\n path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + \",\" + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));\n --i;\n while (++i < n) {\n pi = points[i];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n return path.join(\"\");\n }\n function d3_svg_lineBasisClosed(points) {\n var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];\n while (++i < 4) {\n pi = points[i % n];\n px.push(pi[0]);\n py.push(pi[1]);\n }\n path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];\n --i;\n while (++i < m) {\n pi = points[i % n];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n return path.join(\"\");\n }\n function d3_svg_lineBundle(points, tension) {\n var n = points.length - 1;\n if (n) {\n var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;\n while (++i <= n) {\n p = points[i];\n t = i / n;\n p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);\n p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);\n }\n }\n return d3_svg_lineBasis(points);\n }\n function d3_svg_lineDot4(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n }\n var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];\n function d3_svg_lineBasisBezier(path, x, y) {\n path.push(\"C\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));\n }\n function d3_svg_lineSlope(p0, p1) {\n return (p1[1] - p0[1]) / (p1[0] - p0[0]);\n }\n function d3_svg_lineFiniteDifferences(points) {\n var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);\n while (++i < j) {\n m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;\n }\n m[i] = d;\n return m;\n }\n function d3_svg_lineMonotoneTangents(points) {\n var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;\n while (++i < j) {\n d = d3_svg_lineSlope(points[i], points[i + 1]);\n if (abs(d) < ε) {\n m[i] = m[i + 1] = 0;\n } else {\n a = m[i] / d;\n b = m[i + 1] / d;\n s = a * a + b * b;\n if (s > 9) {\n s = d * 3 / Math.sqrt(s);\n m[i] = s * a;\n m[i + 1] = s * b;\n }\n }\n }\n i = -1;\n while (++i <= j) {\n s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));\n tangents.push([ s || 0, m[i] * s || 0 ]);\n }\n return tangents;\n }\n function d3_svg_lineMonotone(points) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));\n }\n d3.svg.line.radial = function() {\n var line = d3_svg_line(d3_svg_lineRadial);\n line.radius = line.x, delete line.x;\n line.angle = line.y, delete line.y;\n return line;\n };\n function d3_svg_lineRadial(points) {\n var point, i = -1, n = points.length, r, a;\n while (++i < n) {\n point = points[i];\n r = point[0];\n a = point[1] + d3_svg_arcOffset;\n point[0] = r * Math.cos(a);\n point[1] = r * Math.sin(a);\n }\n return points;\n }\n function d3_svg_area(projection) {\n var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = \"L\", tension = .7;\n function area(data) {\n var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {\n return x;\n } : d3_functor(x1), fy1 = y0 === y1 ? function() {\n return y;\n } : d3_functor(y1), x, y;\n function segment() {\n segments.push(\"M\", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), \"Z\");\n }\n while (++i < n) {\n if (defined.call(this, d = data[i], i)) {\n points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);\n points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);\n } else if (points0.length) {\n segment();\n points0 = [];\n points1 = [];\n }\n }\n if (points0.length) segment();\n return segments.length ? segments.join(\"\") : null;\n }\n area.x = function(_) {\n if (!arguments.length) return x1;\n x0 = x1 = _;\n return area;\n };\n area.x0 = function(_) {\n if (!arguments.length) return x0;\n x0 = _;\n return area;\n };\n area.x1 = function(_) {\n if (!arguments.length) return x1;\n x1 = _;\n return area;\n };\n area.y = function(_) {\n if (!arguments.length) return y1;\n y0 = y1 = _;\n return area;\n };\n area.y0 = function(_) {\n if (!arguments.length) return y0;\n y0 = _;\n return area;\n };\n area.y1 = function(_) {\n if (!arguments.length) return y1;\n y1 = _;\n return area;\n };\n area.defined = function(_) {\n if (!arguments.length) return defined;\n defined = _;\n return area;\n };\n area.interpolate = function(_) {\n if (!arguments.length) return interpolateKey;\n if (typeof _ === \"function\") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n interpolateReverse = interpolate.reverse || interpolate;\n L = interpolate.closed ? \"M\" : \"L\";\n return area;\n };\n area.tension = function(_) {\n if (!arguments.length) return tension;\n tension = _;\n return area;\n };\n return area;\n }\n d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;\n d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;\n d3.svg.area = function() {\n return d3_svg_area(d3_identity);\n };\n d3.svg.area.radial = function() {\n var area = d3_svg_area(d3_svg_lineRadial);\n area.radius = area.x, delete area.x;\n area.innerRadius = area.x0, delete area.x0;\n area.outerRadius = area.x1, delete area.x1;\n area.angle = area.y, delete area.y;\n area.startAngle = area.y0, delete area.y0;\n area.endAngle = area.y1, delete area.y1;\n return area;\n };\n d3.svg.chord = function() {\n var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;\n function chord(d, i) {\n var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);\n return \"M\" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + \"Z\";\n }\n function subgroup(self, f, d, i) {\n var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;\n return {\n r: r,\n a0: a0,\n a1: a1,\n p0: [ r * Math.cos(a0), r * Math.sin(a0) ],\n p1: [ r * Math.cos(a1), r * Math.sin(a1) ]\n };\n }\n function equals(a, b) {\n return a.a0 == b.a0 && a.a1 == b.a1;\n }\n function arc(r, p, a) {\n return \"A\" + r + \",\" + r + \" 0 \" + +(a > π) + \",1 \" + p;\n }\n function curve(r0, p0, r1, p1) {\n return \"Q 0,0 \" + p1;\n }\n chord.radius = function(v) {\n if (!arguments.length) return radius;\n radius = d3_functor(v);\n return chord;\n };\n chord.source = function(v) {\n if (!arguments.length) return source;\n source = d3_functor(v);\n return chord;\n };\n chord.target = function(v) {\n if (!arguments.length) return target;\n target = d3_functor(v);\n return chord;\n };\n chord.startAngle = function(v) {\n if (!arguments.length) return startAngle;\n startAngle = d3_functor(v);\n return chord;\n };\n chord.endAngle = function(v) {\n if (!arguments.length) return endAngle;\n endAngle = d3_functor(v);\n return chord;\n };\n return chord;\n };\n function d3_svg_chordRadius(d) {\n return d.radius;\n }\n d3.svg.diagonal = function() {\n var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;\n function diagonal(d, i) {\n var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {\n x: p0.x,\n y: m\n }, {\n x: p3.x,\n y: m\n }, p3 ];\n p = p.map(projection);\n return \"M\" + p[0] + \"C\" + p[1] + \" \" + p[2] + \" \" + p[3];\n }\n diagonal.source = function(x) {\n if (!arguments.length) return source;\n source = d3_functor(x);\n return diagonal;\n };\n diagonal.target = function(x) {\n if (!arguments.length) return target;\n target = d3_functor(x);\n return diagonal;\n };\n diagonal.projection = function(x) {\n if (!arguments.length) return projection;\n projection = x;\n return diagonal;\n };\n return diagonal;\n };\n function d3_svg_diagonalProjection(d) {\n return [ d.x, d.y ];\n }\n d3.svg.diagonal.radial = function() {\n var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;\n diagonal.projection = function(x) {\n return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;\n };\n return diagonal;\n };\n function d3_svg_diagonalRadialProjection(projection) {\n return function() {\n var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset;\n return [ r * Math.cos(a), r * Math.sin(a) ];\n };\n }\n d3.svg.symbol = function() {\n var type = d3_svg_symbolType, size = d3_svg_symbolSize;\n function symbol(d, i) {\n return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));\n }\n symbol.type = function(x) {\n if (!arguments.length) return type;\n type = d3_functor(x);\n return symbol;\n };\n symbol.size = function(x) {\n if (!arguments.length) return size;\n size = d3_functor(x);\n return symbol;\n };\n return symbol;\n };\n function d3_svg_symbolSize() {\n return 64;\n }\n function d3_svg_symbolType() {\n return \"circle\";\n }\n function d3_svg_symbolCircle(size) {\n var r = Math.sqrt(size / π);\n return \"M0,\" + r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + -r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + r + \"Z\";\n }\n var d3_svg_symbols = d3.map({\n circle: d3_svg_symbolCircle,\n cross: function(size) {\n var r = Math.sqrt(size / 5) / 2;\n return \"M\" + -3 * r + \",\" + -r + \"H\" + -r + \"V\" + -3 * r + \"H\" + r + \"V\" + -r + \"H\" + 3 * r + \"V\" + r + \"H\" + r + \"V\" + 3 * r + \"H\" + -r + \"V\" + r + \"H\" + -3 * r + \"Z\";\n },\n diamond: function(size) {\n var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;\n return \"M0,\" + -ry + \"L\" + rx + \",0\" + \" 0,\" + ry + \" \" + -rx + \",0\" + \"Z\";\n },\n square: function(size) {\n var r = Math.sqrt(size) / 2;\n return \"M\" + -r + \",\" + -r + \"L\" + r + \",\" + -r + \" \" + r + \",\" + r + \" \" + -r + \",\" + r + \"Z\";\n },\n \"triangle-down\": function(size) {\n var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n return \"M0,\" + ry + \"L\" + rx + \",\" + -ry + \" \" + -rx + \",\" + -ry + \"Z\";\n },\n \"triangle-up\": function(size) {\n var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n return \"M0,\" + -ry + \"L\" + rx + \",\" + ry + \" \" + -rx + \",\" + ry + \"Z\";\n }\n });\n d3.svg.symbolTypes = d3_svg_symbols.keys();\n var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);\n function d3_transition(groups, id) {\n d3_subclass(groups, d3_transitionPrototype);\n groups.id = id;\n return groups;\n }\n var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit;\n d3_transitionPrototype.call = d3_selectionPrototype.call;\n d3_transitionPrototype.empty = d3_selectionPrototype.empty;\n d3_transitionPrototype.node = d3_selectionPrototype.node;\n d3_transitionPrototype.size = d3_selectionPrototype.size;\n d3.transition = function(selection) {\n return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition();\n };\n d3.transition.prototype = d3_transitionPrototype;\n d3_transitionPrototype.select = function(selector) {\n var id = this.id, subgroups = [], subgroup, subnode, node;\n selector = d3_selection_selector(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n d3_transitionNode(subnode, i, id, node.__transition__[id]);\n subgroup.push(subnode);\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_transition(subgroups, id);\n };\n d3_transitionPrototype.selectAll = function(selector) {\n var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition;\n selector = d3_selection_selectorAll(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n transition = node.__transition__[id];\n subnodes = selector.call(node, node.__data__, i, j);\n subgroups.push(subgroup = []);\n for (var k = -1, o = subnodes.length; ++k < o; ) {\n if (subnode = subnodes[k]) d3_transitionNode(subnode, k, id, transition);\n subgroup.push(subnode);\n }\n }\n }\n }\n return d3_transition(subgroups, id);\n };\n d3_transitionPrototype.filter = function(filter) {\n var subgroups = [], subgroup, group, node;\n if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n subgroup.push(node);\n }\n }\n }\n return d3_transition(subgroups, this.id);\n };\n d3_transitionPrototype.tween = function(name, tween) {\n var id = this.id;\n if (arguments.length < 2) return this.node().__transition__[id].tween.get(name);\n return d3_selection_each(this, tween == null ? function(node) {\n node.__transition__[id].tween.remove(name);\n } : function(node) {\n node.__transition__[id].tween.set(name, tween);\n });\n };\n function d3_transition_tween(groups, name, value, tween) {\n var id = groups.id;\n return d3_selection_each(groups, typeof value === \"function\" ? function(node, i, j) {\n node.__transition__[id].tween.set(name, tween(value.call(node, node.__data__, i, j)));\n } : (value = tween(value), function(node) {\n node.__transition__[id].tween.set(name, value);\n }));\n }\n d3_transitionPrototype.attr = function(nameNS, value) {\n if (arguments.length < 2) {\n for (value in nameNS) this.attr(value, nameNS[value]);\n return this;\n }\n var interpolate = nameNS == \"transform\" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS);\n function attrNull() {\n this.removeAttribute(name);\n }\n function attrNullNS() {\n this.removeAttributeNS(name.space, name.local);\n }\n function attrTween(b) {\n return b == null ? attrNull : (b += \"\", function() {\n var a = this.getAttribute(name), i;\n return a !== b && (i = interpolate(a, b), function(t) {\n this.setAttribute(name, i(t));\n });\n });\n }\n function attrTweenNS(b) {\n return b == null ? attrNullNS : (b += \"\", function() {\n var a = this.getAttributeNS(name.space, name.local), i;\n return a !== b && (i = interpolate(a, b), function(t) {\n this.setAttributeNS(name.space, name.local, i(t));\n });\n });\n }\n return d3_transition_tween(this, \"attr.\" + nameNS, value, name.local ? attrTweenNS : attrTween);\n };\n d3_transitionPrototype.attrTween = function(nameNS, tween) {\n var name = d3.ns.qualify(nameNS);\n function attrTween(d, i) {\n var f = tween.call(this, d, i, this.getAttribute(name));\n return f && function(t) {\n this.setAttribute(name, f(t));\n };\n }\n function attrTweenNS(d, i) {\n var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));\n return f && function(t) {\n this.setAttributeNS(name.space, name.local, f(t));\n };\n }\n return this.tween(\"attr.\" + nameNS, name.local ? attrTweenNS : attrTween);\n };\n d3_transitionPrototype.style = function(name, value, priority) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof name !== \"string\") {\n if (n < 2) value = \"\";\n for (priority in name) this.style(priority, name[priority], value);\n return this;\n }\n priority = \"\";\n }\n function styleNull() {\n this.style.removeProperty(name);\n }\n function styleString(b) {\n return b == null ? styleNull : (b += \"\", function() {\n var a = d3_window.getComputedStyle(this, null).getPropertyValue(name), i;\n return a !== b && (i = d3_interpolate(a, b), function(t) {\n this.style.setProperty(name, i(t), priority);\n });\n });\n }\n return d3_transition_tween(this, \"style.\" + name, value, styleString);\n };\n d3_transitionPrototype.styleTween = function(name, tween, priority) {\n if (arguments.length < 3) priority = \"\";\n function styleTween(d, i) {\n var f = tween.call(this, d, i, d3_window.getComputedStyle(this, null).getPropertyValue(name));\n return f && function(t) {\n this.style.setProperty(name, f(t), priority);\n };\n }\n return this.tween(\"style.\" + name, styleTween);\n };\n d3_transitionPrototype.text = function(value) {\n return d3_transition_tween(this, \"text\", value, d3_transition_text);\n };\n function d3_transition_text(b) {\n if (b == null) b = \"\";\n return function() {\n this.textContent = b;\n };\n }\n d3_transitionPrototype.remove = function() {\n return this.each(\"end.transition\", function() {\n var p;\n if (this.__transition__.count < 2 && (p = this.parentNode)) p.removeChild(this);\n });\n };\n d3_transitionPrototype.ease = function(value) {\n var id = this.id;\n if (arguments.length < 1) return this.node().__transition__[id].ease;\n if (typeof value !== \"function\") value = d3.ease.apply(d3, arguments);\n return d3_selection_each(this, function(node) {\n node.__transition__[id].ease = value;\n });\n };\n d3_transitionPrototype.delay = function(value) {\n var id = this.id;\n if (arguments.length < 1) return this.node().__transition__[id].delay;\n return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n node.__transition__[id].delay = +value.call(node, node.__data__, i, j);\n } : (value = +value, function(node) {\n node.__transition__[id].delay = value;\n }));\n };\n d3_transitionPrototype.duration = function(value) {\n var id = this.id;\n if (arguments.length < 1) return this.node().__transition__[id].duration;\n return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j));\n } : (value = Math.max(1, value), function(node) {\n node.__transition__[id].duration = value;\n }));\n };\n d3_transitionPrototype.each = function(type, listener) {\n var id = this.id;\n if (arguments.length < 2) {\n var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;\n d3_transitionInheritId = id;\n d3_selection_each(this, function(node, i, j) {\n d3_transitionInherit = node.__transition__[id];\n type.call(node, node.__data__, i, j);\n });\n d3_transitionInherit = inherit;\n d3_transitionInheritId = inheritId;\n } else {\n d3_selection_each(this, function(node) {\n var transition = node.__transition__[id];\n (transition.event || (transition.event = d3.dispatch(\"start\", \"end\"))).on(type, listener);\n });\n }\n return this;\n };\n d3_transitionPrototype.transition = function() {\n var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition;\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n if (node = group[i]) {\n transition = Object.create(node.__transition__[id0]);\n transition.delay += transition.duration;\n d3_transitionNode(node, i, id1, transition);\n }\n subgroup.push(node);\n }\n }\n return d3_transition(subgroups, id1);\n };\n function d3_transitionNode(node, i, id, inherit) {\n var lock = node.__transition__ || (node.__transition__ = {\n active: 0,\n count: 0\n }), transition = lock[id];\n if (!transition) {\n var time = inherit.time;\n transition = lock[id] = {\n tween: new d3_Map(),\n time: time,\n ease: inherit.ease,\n delay: inherit.delay,\n duration: inherit.duration\n };\n ++lock.count;\n d3.timer(function(elapsed) {\n var d = node.__data__, ease = transition.ease, delay = transition.delay, duration = transition.duration, timer = d3_timer_active, tweened = [];\n timer.t = delay + time;\n if (delay <= elapsed) return start(elapsed - delay);\n timer.c = start;\n function start(elapsed) {\n if (lock.active > id) return stop();\n lock.active = id;\n transition.event && transition.event.start.call(node, d, i);\n transition.tween.forEach(function(key, value) {\n if (value = value.call(node, d, i)) {\n tweened.push(value);\n }\n });\n d3.timer(function() {\n timer.c = tick(elapsed || 1) ? d3_true : tick;\n return 1;\n }, 0, time);\n }\n function tick(elapsed) {\n if (lock.active !== id) return stop();\n var t = elapsed / duration, e = ease(t), n = tweened.length;\n while (n > 0) {\n tweened[--n].call(node, e);\n }\n if (t >= 1) {\n transition.event && transition.event.end.call(node, d, i);\n return stop();\n }\n }\n function stop() {\n if (--lock.count) delete lock[id]; else delete node.__transition__;\n return 1;\n }\n }, 0, time);\n }\n }\n d3.svg.axis = function() {\n var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_;\n function axis(g) {\n g.each(function() {\n var g = d3.select(this);\n var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();\n var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(\".tick\").data(ticks, scale1), tickEnter = tick.enter().insert(\"g\", \".domain\").attr(\"class\", \"tick\").style(\"opacity\", ε), tickExit = d3.transition(tick.exit()).style(\"opacity\", ε).remove(), tickUpdate = d3.transition(tick.order()).style(\"opacity\", 1), tickTransform;\n var range = d3_scaleRange(scale1), path = g.selectAll(\".domain\").data([ 0 ]), pathUpdate = (path.enter().append(\"path\").attr(\"class\", \"domain\"), \n d3.transition(path));\n tickEnter.append(\"line\");\n tickEnter.append(\"text\");\n var lineEnter = tickEnter.select(\"line\"), lineUpdate = tickUpdate.select(\"line\"), text = tick.select(\"text\").text(tickFormat), textEnter = tickEnter.select(\"text\"), textUpdate = tickUpdate.select(\"text\");\n switch (orient) {\n case \"bottom\":\n {\n tickTransform = d3_svg_axisX;\n lineEnter.attr(\"y2\", innerTickSize);\n textEnter.attr(\"y\", Math.max(innerTickSize, 0) + tickPadding);\n lineUpdate.attr(\"x2\", 0).attr(\"y2\", innerTickSize);\n textUpdate.attr(\"x\", 0).attr(\"y\", Math.max(innerTickSize, 0) + tickPadding);\n text.attr(\"dy\", \".71em\").style(\"text-anchor\", \"middle\");\n pathUpdate.attr(\"d\", \"M\" + range[0] + \",\" + outerTickSize + \"V0H\" + range[1] + \"V\" + outerTickSize);\n break;\n }\n\n case \"top\":\n {\n tickTransform = d3_svg_axisX;\n lineEnter.attr(\"y2\", -innerTickSize);\n textEnter.attr(\"y\", -(Math.max(innerTickSize, 0) + tickPadding));\n lineUpdate.attr(\"x2\", 0).attr(\"y2\", -innerTickSize);\n textUpdate.attr(\"x\", 0).attr(\"y\", -(Math.max(innerTickSize, 0) + tickPadding));\n text.attr(\"dy\", \"0em\").style(\"text-anchor\", \"middle\");\n pathUpdate.attr(\"d\", \"M\" + range[0] + \",\" + -outerTickSize + \"V0H\" + range[1] + \"V\" + -outerTickSize);\n break;\n }\n\n case \"left\":\n {\n tickTransform = d3_svg_axisY;\n lineEnter.attr(\"x2\", -innerTickSize);\n textEnter.attr(\"x\", -(Math.max(innerTickSize, 0) + tickPadding));\n lineUpdate.attr(\"x2\", -innerTickSize).attr(\"y2\", 0);\n textUpdate.attr(\"x\", -(Math.max(innerTickSize, 0) + tickPadding)).attr(\"y\", 0);\n text.attr(\"dy\", \".32em\").style(\"text-anchor\", \"end\");\n pathUpdate.attr(\"d\", \"M\" + -outerTickSize + \",\" + range[0] + \"H0V\" + range[1] + \"H\" + -outerTickSize);\n break;\n }\n\n case \"right\":\n {\n tickTransform = d3_svg_axisY;\n lineEnter.attr(\"x2\", innerTickSize);\n textEnter.attr(\"x\", Math.max(innerTickSize, 0) + tickPadding);\n lineUpdate.attr(\"x2\", innerTickSize).attr(\"y2\", 0);\n textUpdate.attr(\"x\", Math.max(innerTickSize, 0) + tickPadding).attr(\"y\", 0);\n text.attr(\"dy\", \".32em\").style(\"text-anchor\", \"start\");\n pathUpdate.attr(\"d\", \"M\" + outerTickSize + \",\" + range[0] + \"H0V\" + range[1] + \"H\" + outerTickSize);\n break;\n }\n }\n if (scale1.rangeBand) {\n var x = scale1, dx = x.rangeBand() / 2;\n scale0 = scale1 = function(d) {\n return x(d) + dx;\n };\n } else if (scale0.rangeBand) {\n scale0 = scale1;\n } else {\n tickExit.call(tickTransform, scale1);\n }\n tickEnter.call(tickTransform, scale0);\n tickUpdate.call(tickTransform, scale1);\n });\n }\n axis.scale = function(x) {\n if (!arguments.length) return scale;\n scale = x;\n return axis;\n };\n axis.orient = function(x) {\n if (!arguments.length) return orient;\n orient = x in d3_svg_axisOrients ? x + \"\" : d3_svg_axisDefaultOrient;\n return axis;\n };\n axis.ticks = function() {\n if (!arguments.length) return tickArguments_;\n tickArguments_ = arguments;\n return axis;\n };\n axis.tickValues = function(x) {\n if (!arguments.length) return tickValues;\n tickValues = x;\n return axis;\n };\n axis.tickFormat = function(x) {\n if (!arguments.length) return tickFormat_;\n tickFormat_ = x;\n return axis;\n };\n axis.tickSize = function(x) {\n var n = arguments.length;\n if (!n) return innerTickSize;\n innerTickSize = +x;\n outerTickSize = +arguments[n - 1];\n return axis;\n };\n axis.innerTickSize = function(x) {\n if (!arguments.length) return innerTickSize;\n innerTickSize = +x;\n return axis;\n };\n axis.outerTickSize = function(x) {\n if (!arguments.length) return outerTickSize;\n outerTickSize = +x;\n return axis;\n };\n axis.tickPadding = function(x) {\n if (!arguments.length) return tickPadding;\n tickPadding = +x;\n return axis;\n };\n axis.tickSubdivide = function() {\n return arguments.length && axis;\n };\n return axis;\n };\n var d3_svg_axisDefaultOrient = \"bottom\", d3_svg_axisOrients = {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n };\n function d3_svg_axisX(selection, x) {\n selection.attr(\"transform\", function(d) {\n return \"translate(\" + x(d) + \",0)\";\n });\n }\n function d3_svg_axisY(selection, y) {\n selection.attr(\"transform\", function(d) {\n return \"translate(0,\" + y(d) + \")\";\n });\n }\n d3.svg.brush = function() {\n var event = d3_eventDispatch(brush, \"brushstart\", \"brush\", \"brushend\"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0];\n function brush(g) {\n g.each(function() {\n var g = d3.select(this).style(\"pointer-events\", \"all\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\").on(\"mousedown.brush\", brushstart).on(\"touchstart.brush\", brushstart);\n var background = g.selectAll(\".background\").data([ 0 ]);\n background.enter().append(\"rect\").attr(\"class\", \"background\").style(\"visibility\", \"hidden\").style(\"cursor\", \"crosshair\");\n g.selectAll(\".extent\").data([ 0 ]).enter().append(\"rect\").attr(\"class\", \"extent\").style(\"cursor\", \"move\");\n var resize = g.selectAll(\".resize\").data(resizes, d3_identity);\n resize.exit().remove();\n resize.enter().append(\"g\").attr(\"class\", function(d) {\n return \"resize \" + d;\n }).style(\"cursor\", function(d) {\n return d3_svg_brushCursor[d];\n }).append(\"rect\").attr(\"x\", function(d) {\n return /[ew]$/.test(d) ? -3 : null;\n }).attr(\"y\", function(d) {\n return /^[ns]/.test(d) ? -3 : null;\n }).attr(\"width\", 6).attr(\"height\", 6).style(\"visibility\", \"hidden\");\n resize.style(\"display\", brush.empty() ? \"none\" : null);\n var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range;\n if (x) {\n range = d3_scaleRange(x);\n backgroundUpdate.attr(\"x\", range[0]).attr(\"width\", range[1] - range[0]);\n redrawX(gUpdate);\n }\n if (y) {\n range = d3_scaleRange(y);\n backgroundUpdate.attr(\"y\", range[0]).attr(\"height\", range[1] - range[0]);\n redrawY(gUpdate);\n }\n redraw(gUpdate);\n });\n }\n brush.event = function(g) {\n g.each(function() {\n var event_ = event.of(this, arguments), extent1 = {\n x: xExtent,\n y: yExtent,\n i: xExtentDomain,\n j: yExtentDomain\n }, extent0 = this.__chart__ || extent1;\n this.__chart__ = extent1;\n if (d3_transitionInheritId) {\n d3.select(this).transition().each(\"start.brush\", function() {\n xExtentDomain = extent0.i;\n yExtentDomain = extent0.j;\n xExtent = extent0.x;\n yExtent = extent0.y;\n event_({\n type: \"brushstart\"\n });\n }).tween(\"brush:brush\", function() {\n var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y);\n xExtentDomain = yExtentDomain = null;\n return function(t) {\n xExtent = extent1.x = xi(t);\n yExtent = extent1.y = yi(t);\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n };\n }).each(\"end.brush\", function() {\n xExtentDomain = extent1.i;\n yExtentDomain = extent1.j;\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n event_({\n type: \"brushend\"\n });\n });\n } else {\n event_({\n type: \"brushstart\"\n });\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n event_({\n type: \"brushend\"\n });\n }\n });\n };\n function redraw(g) {\n g.selectAll(\".resize\").attr(\"transform\", function(d) {\n return \"translate(\" + xExtent[+/e$/.test(d)] + \",\" + yExtent[+/^s/.test(d)] + \")\";\n });\n }\n function redrawX(g) {\n g.select(\".extent\").attr(\"x\", xExtent[0]);\n g.selectAll(\".extent,.n>rect,.s>rect\").attr(\"width\", xExtent[1] - xExtent[0]);\n }\n function redrawY(g) {\n g.select(\".extent\").attr(\"y\", yExtent[0]);\n g.selectAll(\".extent,.e>rect,.w>rect\").attr(\"height\", yExtent[1] - yExtent[0]);\n }\n function brushstart() {\n var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed(\"extent\"), dragRestore = d3_event_dragSuppress(), center, origin = d3.mouse(target), offset;\n var w = d3.select(d3_window).on(\"keydown.brush\", keydown).on(\"keyup.brush\", keyup);\n if (d3.event.changedTouches) {\n w.on(\"touchmove.brush\", brushmove).on(\"touchend.brush\", brushend);\n } else {\n w.on(\"mousemove.brush\", brushmove).on(\"mouseup.brush\", brushend);\n }\n g.interrupt().selectAll(\"*\").interrupt();\n if (dragging) {\n origin[0] = xExtent[0] - origin[0];\n origin[1] = yExtent[0] - origin[1];\n } else if (resizing) {\n var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);\n offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ];\n origin[0] = xExtent[ex];\n origin[1] = yExtent[ey];\n } else if (d3.event.altKey) center = origin.slice();\n g.style(\"pointer-events\", \"none\").selectAll(\".resize\").style(\"display\", null);\n d3.select(\"body\").style(\"cursor\", eventTarget.style(\"cursor\"));\n event_({\n type: \"brushstart\"\n });\n brushmove();\n function keydown() {\n if (d3.event.keyCode == 32) {\n if (!dragging) {\n center = null;\n origin[0] -= xExtent[1];\n origin[1] -= yExtent[1];\n dragging = 2;\n }\n d3_eventPreventDefault();\n }\n }\n function keyup() {\n if (d3.event.keyCode == 32 && dragging == 2) {\n origin[0] += xExtent[1];\n origin[1] += yExtent[1];\n dragging = 0;\n d3_eventPreventDefault();\n }\n }\n function brushmove() {\n var point = d3.mouse(target), moved = false;\n if (offset) {\n point[0] += offset[0];\n point[1] += offset[1];\n }\n if (!dragging) {\n if (d3.event.altKey) {\n if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ];\n origin[0] = xExtent[+(point[0] < center[0])];\n origin[1] = yExtent[+(point[1] < center[1])];\n } else center = null;\n }\n if (resizingX && move1(point, x, 0)) {\n redrawX(g);\n moved = true;\n }\n if (resizingY && move1(point, y, 1)) {\n redrawY(g);\n moved = true;\n }\n if (moved) {\n redraw(g);\n event_({\n type: \"brush\",\n mode: dragging ? \"move\" : \"resize\"\n });\n }\n }\n function move1(point, scale, i) {\n var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max;\n if (dragging) {\n r0 -= position;\n r1 -= size + position;\n }\n min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i];\n if (dragging) {\n max = (min += position) + size;\n } else {\n if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));\n if (position < min) {\n max = min;\n min = position;\n } else {\n max = position;\n }\n }\n if (extent[0] != min || extent[1] != max) {\n if (i) yExtentDomain = null; else xExtentDomain = null;\n extent[0] = min;\n extent[1] = max;\n return true;\n }\n }\n function brushend() {\n brushmove();\n g.style(\"pointer-events\", \"all\").selectAll(\".resize\").style(\"display\", brush.empty() ? \"none\" : null);\n d3.select(\"body\").style(\"cursor\", null);\n w.on(\"mousemove.brush\", null).on(\"mouseup.brush\", null).on(\"touchmove.brush\", null).on(\"touchend.brush\", null).on(\"keydown.brush\", null).on(\"keyup.brush\", null);\n dragRestore();\n event_({\n type: \"brushend\"\n });\n }\n }\n brush.x = function(z) {\n if (!arguments.length) return x;\n x = z;\n resizes = d3_svg_brushResizes[!x << 1 | !y];\n return brush;\n };\n brush.y = function(z) {\n if (!arguments.length) return y;\n y = z;\n resizes = d3_svg_brushResizes[!x << 1 | !y];\n return brush;\n };\n brush.clamp = function(z) {\n if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null;\n if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z;\n return brush;\n };\n brush.extent = function(z) {\n var x0, x1, y0, y1, t;\n if (!arguments.length) {\n if (x) {\n if (xExtentDomain) {\n x0 = xExtentDomain[0], x1 = xExtentDomain[1];\n } else {\n x0 = xExtent[0], x1 = xExtent[1];\n if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);\n if (x1 < x0) t = x0, x0 = x1, x1 = t;\n }\n }\n if (y) {\n if (yExtentDomain) {\n y0 = yExtentDomain[0], y1 = yExtentDomain[1];\n } else {\n y0 = yExtent[0], y1 = yExtent[1];\n if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);\n if (y1 < y0) t = y0, y0 = y1, y1 = t;\n }\n }\n return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];\n }\n if (x) {\n x0 = z[0], x1 = z[1];\n if (y) x0 = x0[0], x1 = x1[0];\n xExtentDomain = [ x0, x1 ];\n if (x.invert) x0 = x(x0), x1 = x(x1);\n if (x1 < x0) t = x0, x0 = x1, x1 = t;\n if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ];\n }\n if (y) {\n y0 = z[0], y1 = z[1];\n if (x) y0 = y0[1], y1 = y1[1];\n yExtentDomain = [ y0, y1 ];\n if (y.invert) y0 = y(y0), y1 = y(y1);\n if (y1 < y0) t = y0, y0 = y1, y1 = t;\n if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ];\n }\n return brush;\n };\n brush.clear = function() {\n if (!brush.empty()) {\n xExtent = [ 0, 0 ], yExtent = [ 0, 0 ];\n xExtentDomain = yExtentDomain = null;\n }\n return brush;\n };\n brush.empty = function() {\n return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1];\n };\n return d3.rebind(brush, event, \"on\");\n };\n var d3_svg_brushCursor = {\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n };\n var d3_svg_brushResizes = [ [ \"n\", \"e\", \"s\", \"w\", \"nw\", \"ne\", \"se\", \"sw\" ], [ \"e\", \"w\" ], [ \"n\", \"s\" ], [] ];\n var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat;\n var d3_time_formatUtc = d3_time_format.utc;\n var d3_time_formatIso = d3_time_formatUtc(\"%Y-%m-%dT%H:%M:%S.%LZ\");\n d3_time_format.iso = Date.prototype.toISOString && +new Date(\"2000-01-01T00:00:00.000Z\") ? d3_time_formatIsoNative : d3_time_formatIso;\n function d3_time_formatIsoNative(date) {\n return date.toISOString();\n }\n d3_time_formatIsoNative.parse = function(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n };\n d3_time_formatIsoNative.toString = d3_time_formatIso.toString;\n d3_time.second = d3_time_interval(function(date) {\n return new d3_date(Math.floor(date / 1e3) * 1e3);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 1e3);\n }, function(date) {\n return date.getSeconds();\n });\n d3_time.seconds = d3_time.second.range;\n d3_time.seconds.utc = d3_time.second.utc.range;\n d3_time.minute = d3_time_interval(function(date) {\n return new d3_date(Math.floor(date / 6e4) * 6e4);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 6e4);\n }, function(date) {\n return date.getMinutes();\n });\n d3_time.minutes = d3_time.minute.range;\n d3_time.minutes.utc = d3_time.minute.utc.range;\n d3_time.hour = d3_time_interval(function(date) {\n var timezone = date.getTimezoneOffset() / 60;\n return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 36e5);\n }, function(date) {\n return date.getHours();\n });\n d3_time.hours = d3_time.hour.range;\n d3_time.hours.utc = d3_time.hour.utc.range;\n d3_time.month = d3_time_interval(function(date) {\n date = d3_time.day(date);\n date.setDate(1);\n return date;\n }, function(date, offset) {\n date.setMonth(date.getMonth() + offset);\n }, function(date) {\n return date.getMonth();\n });\n d3_time.months = d3_time.month.range;\n d3_time.months.utc = d3_time.month.utc.range;\n function d3_time_scale(linear, methods, format) {\n function scale(x) {\n return linear(x);\n }\n scale.invert = function(x) {\n return d3_time_scaleDate(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return linear.domain().map(d3_time_scaleDate);\n linear.domain(x);\n return scale;\n };\n function tickMethod(extent, count) {\n var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target);\n return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) {\n return d / 31536e6;\n }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i];\n }\n scale.nice = function(interval, skip) {\n var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === \"number\" && tickMethod(extent, interval);\n if (method) interval = method[0], skip = method[1];\n function skipped(date) {\n return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length;\n }\n return scale.domain(d3_scale_nice(domain, skip > 1 ? {\n floor: function(date) {\n while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1);\n return date;\n },\n ceil: function(date) {\n while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1);\n return date;\n }\n } : interval));\n };\n scale.ticks = function(interval, skip) {\n var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === \"number\" ? tickMethod(extent, interval) : !interval.range && [ {\n range: interval\n }, skip ];\n if (method) interval = method[0], skip = method[1];\n return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip);\n };\n scale.tickFormat = function() {\n return format;\n };\n scale.copy = function() {\n return d3_time_scale(linear.copy(), methods, format);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n function d3_time_scaleDate(t) {\n return new Date(t);\n }\n var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];\n var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ];\n var d3_time_scaleLocalFormat = d3_time_format.multi([ [ \".%L\", function(d) {\n return d.getMilliseconds();\n } ], [ \":%S\", function(d) {\n return d.getSeconds();\n } ], [ \"%I:%M\", function(d) {\n return d.getMinutes();\n } ], [ \"%I %p\", function(d) {\n return d.getHours();\n } ], [ \"%a %d\", function(d) {\n return d.getDay() && d.getDate() != 1;\n } ], [ \"%b %d\", function(d) {\n return d.getDate() != 1;\n } ], [ \"%B\", function(d) {\n return d.getMonth();\n } ], [ \"%Y\", d3_true ] ]);\n var d3_time_scaleMilliseconds = {\n range: function(start, stop, step) {\n return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate);\n },\n floor: d3_identity,\n ceil: d3_identity\n };\n d3_time_scaleLocalMethods.year = d3_time.year;\n d3_time.scale = function() {\n return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);\n };\n var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) {\n return [ m[0].utc, m[1] ];\n });\n var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ \".%L\", function(d) {\n return d.getUTCMilliseconds();\n } ], [ \":%S\", function(d) {\n return d.getUTCSeconds();\n } ], [ \"%I:%M\", function(d) {\n return d.getUTCMinutes();\n } ], [ \"%I %p\", function(d) {\n return d.getUTCHours();\n } ], [ \"%a %d\", function(d) {\n return d.getUTCDay() && d.getUTCDate() != 1;\n } ], [ \"%b %d\", function(d) {\n return d.getUTCDate() != 1;\n } ], [ \"%B\", function(d) {\n return d.getUTCMonth();\n } ], [ \"%Y\", d3_true ] ]);\n d3_time_scaleUtcMethods.year = d3_time.year.utc;\n d3_time.scale.utc = function() {\n return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat);\n };\n d3.text = d3_xhrType(function(request) {\n return request.responseText;\n });\n d3.json = function(url, callback) {\n return d3_xhr(url, \"application/json\", d3_json, callback);\n };\n function d3_json(request) {\n return JSON.parse(request.responseText);\n }\n d3.html = function(url, callback) {\n return d3_xhr(url, \"text/html\", d3_html, callback);\n };\n function d3_html(request) {\n var range = d3_document.createRange();\n range.selectNode(d3_document.body);\n return range.createContextualFragment(request.responseText);\n }\n d3.xml = d3_xhrType(function(request) {\n return request.responseXML;\n });\n if (typeof define === \"function\" && define.amd) define(d3); else if (typeof module === \"object\" && module.exports) module.exports = d3;\n this.d3 = d3;\n}();"],"sourceRoot":"/source/"}