/*! nvd3 - v0.0.1 - 2013-12-03 */ ! function ( ) { function a ( a , b ) { return new Date ( b , a + 1 , 0 ) . getDate ( ) } function b ( a , b , c ) { return function ( d , e , f ) { var g = a ( d ) , h = [ ] ; if ( d > g && b ( g ) , f > 1 ) for ( ; e > g ; ) { var i = new Date ( + g ) ; 0 === c ( i ) % f && h . push ( i ) , b ( g ) } else for ( ; e > g ; ) h . push ( new Date ( + g ) ) , b ( g ) ; return h } } var c = window . nv || { } ; c . version = "1.1.15b" , c . dev = ! 0 , window . nv = c , c . tooltip = c . tooltip || { } , c . utils = c . utils || { } , c . models = c . models || { } , c . charts = { } , c . graphs = [ ] , c . logs = { } , c . dispatch = d3 . dispatch ( "render_start" , "render_end" ) , c . dev && ( c . dispatch . on ( "render_start" , function ( ) { c . logs . startTime = + new Date } ) , c . dispatch . on ( "render_end" , function ( ) { c . logs . endTime = + new Date , c . logs . totalTime = c . logs . endTime - c . logs . startTime , c . log ( "total" , c . logs . totalTime ) } ) ) , c . log = function ( ) { if ( c . dev && console . log && console . log . apply ) console . log . apply ( console , arguments ) ; else if ( c . dev && "function" == typeof console . log && Function . prototype . bind ) { var a = Function . prototype . bind . call ( console . log , console ) ; a . apply ( console , arguments ) } return arguments [ arguments . length - 1 ] } , c . render = function ( a ) { a = a || 1 , c . render . active = ! 0 , c . dispatch . render _start ( ) , setTimeout ( function ( ) { for ( var b , d , e = 0 ; a > e && ( d = c . render . queue [ e ] ) ; e ++ ) b = d . generate ( ) , typeof d . callback == typeof Function && d . callback ( b ) , c . graphs . push ( b ) ; c . render . queue . splice ( 0 , e ) , c . render . queue . length ? setTimeout ( arguments . callee , 0 ) : ( c . dispatch . render _end ( ) , c . render . active = ! 1 ) } , 0 ) } , c . render . active = ! 1 , c . render . queue = [ ] , c . addGraph = function ( a ) { typeof arguments [ 0 ] == typeof Function && ( a = { generate : arguments [ 0 ] , callback : arguments [ 1 ] } ) , c . render . queue . push ( a ) , c . render . active || c . render ( ) } , c . identity = function ( a ) { return a } , c . strip = function ( a ) { return a . replace ( /(\s|&)/g , "" ) } , d3 . time . monthEnd = function ( a ) { return new Date ( a . getFullYear ( ) , a . getMonth ( ) , 0 ) } , d3 . time . monthEnds = b ( d3 . time . monthEnd , function ( b ) { b . setUTCDate ( b . getUTCDate ( ) + 1 ) , b . setDate ( a ( b . getMonth ( ) + 1 , b . getFullYear ( ) ) ) } , function ( a ) { return a . getMonth ( ) } ) , c . interactiveGuideline = function ( ) { "use strict" ; function a ( l ) { l . each ( function ( l ) { function m ( ) { var c = d3 . mouse ( this ) , d = c [ 0 ] , e = c [ 1 ] , i = ! 0 , j = ! 1 ; if ( k && ( d = d3 . event . offsetX , e = d3 . event . offsetY , "svg" !== d3 . event . target . tagName && ( i = ! 1 ) , d3 . event . target . className . baseVal . match ( "nv-legend" ) && ( j = ! 0 ) ) , i && ( d -= f . left , e -= f . top ) , 0 > d || 0 > e || d > o || e > p || d3 . event . relatedTarget && void 0 === d3 . event . relatedTarget . ownerSVGElement || j ) { if ( k && d3 . event . relatedTarget && void 0 === d3 . event . relatedTarget . ownerSVGElement && d3 . event . relatedTarget . className . match ( b . nvPointerEventsClass ) ) return ; return h . elementMouseout ( { mouseX : d , mouseY : e } ) , a . renderGuideLine ( null ) , void 0 } var l = g . invert ( d ) ; h . elementMousemove ( { mouseX : d , mouseY : e , pointXValue : l } ) , "dblclick" === d3 . event . type && h . elementDblclick ( { mouseX : d , mouseY : e , pointXValue : l } ) } var n = d3 . select ( this ) , o = d || 960 , p = e || 400 , q = n . selectAll ( "g.nv-wrap.nv-interactiveLineLayer" ) . data ( [ l ] ) , r = q . enter ( ) . append ( "g" ) . attr ( "class" , " nv-wrap nv-interactiveLineLayer" ) ; r . append ( "g" ) . attr ( "class" , "nv-interactiveGuideLine" ) , j && ( j . on ( "mousemove" , m , ! 0 ) . on ( "mouseout" , m , ! 0 ) . on ( "dblclick" , m ) , a . renderGuideLine = function ( a ) { if ( i ) { var b = q . select ( ".nv-interactiveGuideLine" ) . selectAll ( "line" ) . data ( null != a ? [ c . utils . NaNtoZero ( a ) ] : [ ] , String ) ; b . enter ( ) . append ( "line" ) . attr ( "class" , "nv-guideline" ) . attr ( "x1" , function ( a ) { return a } ) . attr ( "x2" , function ( a ) { return a } ) . attr ( "y1" , p ) . attr ( "y2" , 0 ) , b . exit ( ) . remove ( ) } } ) } ) } var b = c . models . tooltip ( ) , d = null , e = null , f = { left : 0 , top : 0 } , g = d3 . scale . linear ( ) , h = ( d3 . scale . linear ( ) , d3 . dispatch ( "elementMousemove" , "elementMouseout" , "elementDblclick" ) ) , i = ! 0 , j = null , k = - 1 !== navigator . userAgent . indexOf ( "MSIE" ) ; return a . dispatch = h , a . tooltip = b , a . margin = function ( b ) { return arguments . length ? ( f . top = "undefined" != typeof b . top ? b . top : f . top , f . left = "undefined" != typeof b . left ? b . left : f . left , a ) : f } , a . width = function ( b ) { return arguments . length ? ( d = b , a ) : d } , a . height = function ( b ) { return arguments . length ? ( e = b , a ) : e } , a . xScale = function ( b ) { return arguments . length ? ( g = b , a ) : g } , a . showGuideLine = function ( b ) { return arguments . length ? ( i = b , a ) : i } , a . svgContainer = function ( b ) { return arguments . length ? ( j = b , a ) : j } , a } , c . interactiveBisect = function ( a , b , c ) { "use strict" ; if ( ! a instanceof Array ) return null ; "function" != typeof c && ( c = function ( a ) { return a . x } ) ;
if ( X . append ( "g" ) . attr ( "class" , "nv-interactive" ) , X . append ( "g" ) . attr ( "class" , "nv-x nv-axis" ) . style ( "pointer-events" , "none" ) , X . append ( "g" ) . attr ( "class" , "nv-y nv-axis" ) , X . append ( "g" ) . attr ( "class" , "nv-background" ) , X . append ( "g" ) . attr ( "class" , "nv-linesWrap" ) . style ( "pointer-events" , V ) , X . append ( "g" ) . attr ( "class" , "nv-avgLinesWrap" ) . style ( "pointer-events" , "none" ) , X . append ( "g" ) . attr ( "class" , "nv-legendWrap" ) , X . append ( "g" ) . attr ( "class" , "nv-controlsWrap" ) , p && ( i . width ( O ) , Y . select ( ".nv-legendWrap" ) . datum ( x ) . call ( i ) , l . top != i . height ( ) && ( l . top = i . height ( ) , P = ( o || parseInt ( M . style ( "height" ) ) || 400 ) - l . top - l . bottom ) , Y . select ( ".nv-legendWrap" ) . attr ( "transform" , "translate(0," + - l . top + ")" ) ) , u ) { var Z = [ { key : "Re-scale y-axis" , disabled : ! w } ] ; j . width ( 140 ) . color ( [ "#444" , "#444" , "#444" ] ) . rightAlign ( ! 1 ) . margin ( { top : 5 , right : 0 , bottom : 5 , left : 20 } ) , Y . select ( ".nv-controlsWrap" ) . datum ( Z ) . attr ( "transform" , "translate(0," + - l . top + ")" ) . call ( j ) } W . attr ( "transform" , "translate(" + l . left + "," + l . top + ")" ) , s && Y . select ( ".nv-y.nv-axis" ) . attr ( "transform" , "translate(" + O + ",0)" ) ; var $ = x . filter ( function ( a ) { return a . tempDisabled } ) ; W . select ( ".tempDisabled" ) . remove ( ) , $ . length && W . append ( "text" ) . attr ( "class" , "tempDisabled" ) . attr ( "x" , O / 2 ) . attr ( "y" , "-.71em" ) . style ( "text-anchor" , "end" ) . text ( $ . map ( function ( a ) { return a . key } ) . join ( ", " ) + " values cannot be calculated for this time period." ) , v && ( k . width ( O ) . height ( P ) . margin ( { left : l . left , top : l . top } ) . svgContainer ( M ) . xScale ( d ) , W . select ( ".nv-interactive" ) . call ( k ) ) , X . select ( ".nv-background" ) . append ( "rect" ) , Y . select ( ".nv-background rect" ) . attr ( "width" , O ) . attr ( "height" , P ) , f . y ( function ( a ) { return a . display . y } ) . width ( O ) . height ( P ) . color ( x . map ( function ( a , b ) { return a . color || m ( a , b ) } ) . filter ( function ( a , b ) { return ! x [ b ] . disabled && ! x [ b ] . tempDisabled } ) ) ; var _ = Y . select ( ".nv-linesWrap" ) . datum ( x . filter ( function ( a ) { return ! a . disabled && ! a . tempDisabled } ) ) ; _ . call ( f ) , x . forEach ( function ( a , b ) { a . seriesIndex = b } ) ; var ab = x . filter ( function ( a ) { return ! a . disabled && ! ! C ( a ) } ) , bb = Y . select ( ".nv-avgLinesWrap" ) . selectAll ( "line" ) . data ( ab , function ( a ) { return a . key } ) , cb = function ( a ) { var b = e ( C ( a ) ) ; return 0 > b ? 0 : b > P ? P : b } ; bb . enter ( ) . append ( "line" ) . style ( "stroke-width" , 2 ) . style ( "stroke-dasharray" , "10,10" ) . style ( "stroke" , function ( a ) { return f . color ( ) ( a , a . seriesIndex ) } ) . attr ( "x1" , 0 ) . attr ( "x2" , O ) . attr ( "y1" , cb ) . attr ( "y2" , cb ) , bb . style ( "stroke-opacity" , function ( a ) { var b = e ( C ( a ) ) ; return 0 > b || b > P ? 0 : 1 } ) . attr ( "x1" , 0 ) . attr ( "x2" , O ) . attr ( "y1" , cb ) . attr ( "y2" , cb ) , bb . exit ( ) . remove ( ) ; var db = _ . selectAll ( ".nv-indexLine" ) . data ( [ G ] ) ; db . enter ( ) . append ( "rect" ) . attr ( "class" , "nv-indexLine" ) . attr ( "width" , 3 ) . attr ( "x" , - 2 ) . attr ( "fill" , "red" ) . attr ( "fill-opacity" , . 5 ) . style ( "pointer-events" , "all" ) . call ( R ) , db . attr ( "transform" , function ( a ) { return "translate(" + F ( a . i ) + ",0)" } ) . attr ( "height" , P ) , q && ( g . scale ( d ) . ticks ( Math . min ( x [ 0 ] . values . length , O / 70 ) ) . tickSize ( - P , 0 ) , Y . select ( ".nv-x.nv-axis" ) . attr ( "transform" , "translate(0," + e . range ( ) [ 0 ] + ")" ) , d3 . transition ( Y . select ( ".nv-x.nv-axis" ) ) . call ( g ) ) , r && ( h . scale ( e ) . ticks ( P / 36 ) . tickSize ( - O , 0 ) , d3 . transition ( Y . select ( ".nv-y.nv-axis" ) ) . call ( h ) ) , Y . select ( ".nv-background rect" ) . on ( "click" , function ( ) { G . x = d3 . mouse ( this ) [ 0 ] , G . i = Math . round ( F . invert ( G . x ) ) , z . index = G . i , D . stateChange ( z ) , L ( ) } ) , f . dispatch . on ( "elementClick" , function ( a ) { G . i = a . pointIndex , G . x = F ( G . i ) , z . index = G . i , D . stateChange ( z ) , L ( ) } ) , j . dispatch . on ( "legendClick" , function ( b ) { b . disabled = ! b . disabled , w = ! b . disabled , z . rescaleY = w , D . stateChange ( z ) , a . update ( ) } ) , i . dispatch . on ( "stateChange" , function ( b ) { z . disabled = b . disabled , D . stateChange ( z ) , a . update ( ) } ) , k . dispatch . on ( "elementMousemove" , function ( b ) { f . clearHighlights ( ) ; var d , e , i , j = [ ] ; if ( x . filter ( function ( a , b ) { return a . seriesIndex = b , ! a . disabled } ) . forEach ( function ( g , h ) { e = c . interactiveBisect ( g . values , b . pointXValue , a . x ( ) ) , f . highlightPoint ( h , e , ! 0 ) ; var k = g . values [ e ] ; "undefined" != typeof k && ( "undefined" == typeof d && ( d = k ) , "undefined" == typeof i && ( i = a . xScale ( ) ( a . x ( ) ( k , e ) ) ) , j . push ( { key : g . key , value : a . y ( ) ( k , e ) , color : m ( g , g . seriesIndex ) } ) ) } ) , j . length > 2 ) { var n = a . yScale ( ) . invert ( b . mouseY ) , o = Math . abs ( a . yScale ( ) . domain ( ) [ 0 ] - a . yScale ( ) . domain ( ) [ 1 ] ) , p = . 03 * o , q = c . nearestValueIndex ( j . map ( function ( a ) { return a . value } ) , n , p ) ; null !== q && ( j [ q ] . highlight = ! 0 ) } var
var A = u . select ( ".nv-groups" ) . selectAll ( ".nv-group" ) . data ( function ( a ) { return a } , function ( a ) { return a . key } ) ; A . enter ( ) . append ( "g" ) . style ( "stroke-opacity" , 1e-6 ) . style ( "fill-opacity" , 1e-6 ) , A . exit ( ) . remove ( ) , A . attr ( "class" , function ( a , b ) { return "nv-group nv-series-" + b } ) . classed ( "hover" , function ( a ) { return a . hover } ) . style ( "fill" , function ( a , b ) { return i ( a , b ) } ) . style ( "stroke" , function ( a , b ) { return i ( a , b ) } ) , A . transition ( ) . style ( "stroke-opacity" , 1 ) . style ( "fill-opacity" , . 5 ) ; var B = A . selectAll ( "path.nv-area" ) . data ( function ( a ) { return m ( a ) ? [ a ] : [ ] } ) ; B . enter ( ) . append ( "path" ) . attr ( "class" , "nv-area" ) . attr ( "d" , function ( a ) { return d3 . svg . area ( ) . interpolate ( o ) . defined ( l ) . x ( function ( a , b ) { return c . utils . NaNtoZero ( p ( j ( a , b ) ) ) } ) . y0 ( function ( a , b ) { return c . utils . NaNtoZero ( q ( k ( a , b ) ) ) } ) . y1 ( function ( ) { return q ( d . domain ( ) [ 0 ] <= 0 ? d . domain ( ) [ 1 ] >= 0 ? 0 : d . domain ( ) [ 1 ] : d . domain ( ) [ 0 ] ) } ) . apply ( this , [ a . values ] ) } ) , A . exit ( ) . selectAll ( "path.nv-area" ) . remove ( ) , B . transition ( ) . attr ( "d" , function ( a ) { return d3 . svg . area ( ) . interpolate ( o ) . defined ( l ) . x ( function ( a , d ) { return c . utils . NaNtoZero ( b ( j ( a , d ) ) ) } ) . y0 ( function ( a , b ) { return c . utils . NaNtoZero ( d ( k ( a , b ) ) ) } ) . y1 ( function ( ) { return d ( d . domain ( ) [ 0 ] <= 0 ? d . domain ( ) [ 1 ] >= 0 ? 0 : d . domain ( ) [ 1 ] : d . domain ( ) [ 0 ] ) } ) . apply ( this , [ a . values ] ) } ) ; var C = A . selectAll ( "path.nv-line" ) . data ( function ( a ) { return [ a . values ] } ) ; C . enter ( ) . append ( "path" ) . attr ( "class" , "nv-line" ) . attr ( "d" , d3 . svg . line ( ) . interpolate ( o ) . defined ( l ) . x ( function ( a , b ) { return c . utils . NaNtoZero ( p ( j ( a , b ) ) ) } ) . y ( function ( a , b ) { return c . utils . NaNtoZero ( q ( k ( a , b ) ) ) } ) ) , C . transition ( ) . attr ( "d" , d3 . svg . line ( ) . interpolate ( o ) . defined ( l ) . x ( function ( a , d ) { return c . utils . NaNtoZero ( b ( j ( a , d ) ) ) } ) . y ( function ( a , b ) { return c . utils . NaNtoZero ( d ( k ( a , b ) ) ) } ) ) , p = b . copy ( ) , q = d . copy ( ) } ) , a } var b , d , e = c . models . scatter ( ) , f = { top : 0 , right : 0 , bottom : 0 , left : 0 } , g = 960 , h = 500 , i = c . utils . defaultColor ( ) , j = function ( a ) { return a . x } , k = function ( a ) { return a . y } , l = function ( a , b ) { return ! isNaN ( k ( a , b ) ) && null !== k ( a , b ) } , m = function ( a ) { return a . area } , n = ! 1 , o = "linear" ; e . size ( 16 ) . sizeDomain ( [ 16 , 256 ] ) ; var p , q ; return a . dispatch = e . dispatch , a . scatter = e , d3 . rebind ( a , e , "id" , "interactive" , "size" , "xScale" , "yScale" , "zScale" , "xDomain" , "yDomain" , "xRange" , "yRange" , "sizeDomain" , "forceX" , "forceY" , "forceSize" , "clipVoronoi" , "useVoronoi" , "clipRadius" , "padData" , "highlightPoint" , "clearHighlights" ) , a . options = c . utils . optionsFunc . bind ( a ) , a . margin = function ( b ) { return arguments . length ? ( f . top = "undefined" != typeof b . top ? b . top : f . top , f . right = "undefined" != typeof b . right ? b . right : f . right , f . bottom = "undefined" != typeof b . bottom ? b . bottom : f . bottom , f . left = "undefined" != typeof b . left ? b . left : f . left , a ) : f } , a . width = function ( b ) { return arguments . length ? ( g = b , a ) : g } , a . height = function ( b ) { return arguments . length ? ( h = b , a ) : h } , a . x = function ( b ) { return arguments . length ? ( j = b , e . x ( b ) , a ) : j } , a . y = function ( b ) { return arguments . length ? ( k = b , e . y ( b ) , a ) : k } , a . clipEdge = function ( b ) { return arguments . length ? ( n = b , a ) : n } , a . color = function ( b ) { return arguments . length ? ( i = c . utils . getColor ( b ) , e . color ( i ) , a ) : i } , a . interpolate = function ( b ) { return arguments . length ? ( o = b , a ) : o } , a . defined = function ( b ) { return arguments . length ? ( l = b , a ) : l } , a . isArea = function ( b ) { return arguments . length ? ( m = d3 . functor ( b ) , a ) : m } , a } , c . models . lineChart = function ( ) { "use strict" ; function a ( t ) { return t . each ( function ( t ) { var A = d3 . select ( this ) , B = this , C = ( l || parseInt ( A . style ( "width" ) ) || 960 ) - j . left - j . right , D = ( m || parseInt ( A . style ( "height" ) ) || 400 ) - j . top - j . bottom ; if ( a . update = function ( ) { A . transition ( ) . duration ( y ) . call ( a ) } , a . container = this , u . disabled = t . map ( function ( a ) { return ! ! a . disabled } ) , ! v ) { var E ; v = { } ; for ( E in u ) v [ E ] = u [ E ] instanceof Array ? u [ E ] . slice ( 0 ) : u [ E ] } if ( ! ( t && t . length && t . filter ( function ( a ) { return a . values . length } ) . length ) ) { var F = A . selectAll ( ".nv-noData" ) . data ( [ w ] ) ; return F . enter ( ) . append ( "text" ) . attr ( "class" , "nvd3 nv-noData" ) . attr ( "dy" , "-.7em" ) . style ( "text-anchor" , "middle" ) , F . attr ( "x" , j . left + C / 2 ) . attr ( "y" , j . top + D / 2 ) . text ( function ( a ) { return a } ) , a } A . selectAll ( ".nv-noData" ) . remove ( ) , b = e . xScale ( ) , d = e . yScale ( ) ; var G = A . selectAll ( "g.nv-wrap.nv-lineChart" ) . data ( [ t ] ) , H = G . enter ( ) . append ( "g" ) . attr ( "class" , "nvd3 nv-wrap nv-lineChart" ) . append ( "g" ) , I = G . select ( "g" ) ; H . append ( "rect" ) . style ( "opacity" , 0 ) , H . append ( "g" ) . att
} ) . classed ( "hover" , function ( a ) { return a . hover } ) . style ( "fill" , function ( a , b ) { return v ( a , b ) } ) . style ( "stroke" , function ( a , b ) { return v ( a , b ) } ) , J . transition ( ) . style ( "stroke-opacity" , 1 ) . style ( "fill-opacity" , . 75 ) ; var K = J . selectAll ( "rect.nv-bar" ) . data ( function ( b ) { return w && ! a . length ? w . values : b . values } ) ; K . exit ( ) . remove ( ) , K . enter ( ) . append ( "rect" ) . attr ( "class" , function ( a , b ) { return q ( a , b ) < 0 ? "nv-bar negative" : "nv-bar positive" } ) . attr ( "x" , function ( b , c , d ) { return t ? 0 : d * m . rangeBand ( ) / a . length } ) . attr ( "y" , function ( a ) { return i ( t ? a . y0 : 0 ) } ) . attr ( "height" , 0 ) . attr ( "width" , m . rangeBand ( ) / ( t ? 1 : a . length ) ) . attr ( "transform" , function ( a , b ) { return "translate(" + m ( p ( a , b ) ) + ",0)" } ) , K . style ( "fill" , function ( a , b , c ) { return v ( a , c , b ) } ) . style ( "stroke" , function ( a , b , c ) { return v ( a , c , b ) } ) . on ( "mouseover" , function ( b , c ) { d3 . select ( this ) . classed ( "hover" , ! 0 ) , A . elementMouseover ( { value : q ( b , c ) , point : b , series : a [ b . series ] , pos : [ m ( p ( b , c ) ) + m . rangeBand ( ) * ( t ? a . length / 2 : b . series + . 5 ) / a . length , n ( q ( b , c ) + ( t ? b . y0 : 0 ) ) ] , pointIndex : c , seriesIndex : b . series , e : d3 . event } ) } ) . on ( "mouseout" , function ( b , c ) { d3 . select ( this ) . classed ( "hover" , ! 1 ) , A . elementMouseout ( { value : q ( b , c ) , point : b , series : a [ b . series ] , pointIndex : c , seriesIndex : b . series , e : d3 . event } ) } ) . on ( "click" , function ( b , c ) { A . elementClick ( { value : q ( b , c ) , point : b , series : a [ b . series ] , pos : [ m ( p ( b , c ) ) + m . rangeBand ( ) * ( t ? a . length / 2 : b . series + . 5 ) / a . length , n ( q ( b , c ) + ( t ? b . y0 : 0 ) ) ] , pointIndex : c , seriesIndex : b . series , e : d3 . event } ) , d3 . event . stopPropagation ( ) } ) . on ( "dblclick" , function ( b , c ) { A . elementDblClick ( { value : q ( b , c ) , point : b , series : a [ b . series ] , pos : [ m ( p ( b , c ) ) + m . rangeBand ( ) * ( t ? a . length / 2 : b . series + . 5 ) / a . length , n ( q ( b , c ) + ( t ? b . y0 : 0 ) ) ] , pointIndex : c , seriesIndex : b . series , e : d3 . event } ) , d3 . event . stopPropagation ( ) } ) , K . attr ( "class" , function ( a , b ) { return q ( a , b ) < 0 ? "nv-bar negative" : "nv-bar positive" } ) . transition ( ) . attr ( "transform" , function ( a , b ) { return "translate(" + m ( p ( a , b ) ) + ",0)" } ) , x && ( b || ( b = a . map ( function ( ) { return ! 0 } ) ) , K . style ( "fill" , function ( a , c , d ) { return d3 . rgb ( x ( a , c ) ) . darker ( b . map ( function ( a , b ) { return b } ) . filter ( function ( a , c ) { return ! b [ c ] } ) [ d ] ) . toString ( ) } ) . style ( "stroke" , function ( a , c , d ) { return d3 . rgb ( x ( a , c ) ) . darker ( b . map ( function ( a , b ) { return b } ) . filter ( function ( a , c ) { return ! b [ c ] } ) [ d ] ) . toString ( ) } ) ) , t ? K . transition ( ) . delay ( function ( b , c ) { return c * y / a [ 0 ] . values . length } ) . attr ( "y" , function ( a ) { return n ( t ? a . y1 : 0 ) } ) . attr ( "height" , function ( a ) { return Math . max ( Math . abs ( n ( a . y + ( t ? a . y0 : 0 ) ) - n ( t ? a . y0 : 0 ) ) , 1 ) } ) . attr ( "x" , function ( b ) { return t ? 0 : b . series * m . rangeBand ( ) / a . length } ) . attr ( "width" , m . rangeBand ( ) / ( t ? 1 : a . length ) ) : K . transition ( ) . delay ( function ( b , c ) { return c * y / a [ 0 ] . values . length } ) . attr ( "x" , function ( b ) { return b . series * m . rangeBand ( ) / a . length } ) . attr ( "width" , m . rangeBand ( ) / a . length ) . attr ( "y" , function ( a , b ) { return q ( a , b ) < 0 ? n ( 0 ) : n ( 0 ) - n ( q ( a , b ) ) < 1 ? n ( 0 ) - 1 : n ( q ( a , b ) ) || 0 } ) . attr ( "height" , function ( a , b ) { return Math . max ( Math . abs ( n ( q ( a , b ) ) - n ( 0 ) ) , 1 ) || 0 } ) , h = m . copy ( ) , i = n . copy ( ) } ) , a } var b , d , e , f , g , h , i , j = { top : 0 , right : 0 , bottom : 0 , left : 0 } , k = 960 , l = 500 , m = d3 . scale . ordinal ( ) , n = d3 . scale . linear ( ) , o = Math . floor ( 1e4 * Math . random ( ) ) , p = function ( a ) { return a . x } , q = function ( a ) { return a . y } , r = [ 0 ] , s = ! 0 , t = ! 1 , u = "zero" , v = c . utils . defaultColor ( ) , w = ! 1 , x = null , y = 1200 , z = . 1 , A = d3 . dispatch ( "chartClick" , "elementClick" , "elementDblClick" , "elementMouseover" , "elementMouseout" ) ; return a . dispatch = A , a . options = c . utils . optionsFunc . bind ( a ) , a . x = function ( b ) { return arguments . length ? ( p = b , a ) : p } , a . y = function ( b ) { return arguments . length ? ( q = b , a ) : q } , a . margin = function ( b ) { return arguments . length ? ( j . top = "undefined" != typeof b . top ? b . top : j . top , j . right = "undefined" != typeof b . right ? b . right : j . right , j . bottom = "undefined" != typeof b . bottom ? b . bottom : j . bottom , j . left = "undefined" != typeof b . left ? b . left : j . left , a ) : j } , a . width = function ( b ) { return arguments . length ? ( k = b , a ) : k } , a . height = function ( b ) { return arguments . length ? ( l = b , a ) : l } , a . xScale = function ( b ) { return arguments . length ? ( m = b , a ) : m } , a . yScale = function ( b ) { return arguments . length ? ( n = b , a ) : n } , a . xDomain = function ( b ) { return arguments . length ? ( d = b , a ) : d } , a . yDomain = function ( b ) { return arguments . length ? ( e = b , a ) : e } , a . xRange = function ( b ) { return arguments . length ? ( f = b , a ) : f } , a . yRange = function ( b ) { return arguments . length ? ( g = b , a ) : g } , a . forceY = function ( b ) { return arguments . length ? ( r = b
C . append ( "g" ) . attr ( "class" , "nv-ticks" ) , z . attr ( "transform" , "translate(" + g . left + "," + g . top + ")" ) , y . on ( "click" , function ( a , b ) { x . chartClick ( { data : a , index : b , pos : d3 . event , id : j } ) } ) , B . append ( "clipPath" ) . attr ( "id" , "nv-chart-clip-path-" + j ) . append ( "rect" ) , z . select ( "#nv-chart-clip-path-" + j + " rect" ) . attr ( "width" , c ) . attr ( "height" , w ) , D . attr ( "clip-path" , v ? "url(#nv-chart-clip-path-" + j + ")" : "" ) ; var E = z . select ( ".nv-ticks" ) . selectAll ( ".nv-tick" ) . data ( function ( a ) { return a } ) ; E . exit ( ) . remove ( ) , E . enter ( ) . append ( "path" ) . attr ( "class" , function ( a , b , c ) { return ( o ( a , b ) > p ( a , b ) ? "nv-tick negative" : "nv-tick positive" ) + " nv-tick-" + c + "-" + b } ) . attr ( "d" , function ( b , d ) { var e = . 9 * ( c / a [ 0 ] . values . length ) ; return "m0,0l0," + ( l ( o ( b , d ) ) - l ( q ( b , d ) ) ) + "l" + - e / 2 + ",0l" + e / 2 + ",0l0," + ( l ( r ( b , d ) ) - l ( o ( b , d ) ) ) + "l0," + ( l ( p ( b , d ) ) - l ( r ( b , d ) ) ) + "l" + e / 2 + ",0l" + - e / 2 + ",0z" } ) . attr ( "transform" , function ( a , b ) { return "translate(" + k ( m ( a , b ) ) + "," + l ( q ( a , b ) ) + ")" } ) . on ( "mouseover" , function ( b , c ) { d3 . select ( this ) . classed ( "hover" , ! 0 ) , x . elementMouseover ( { point : b , series : a [ 0 ] , pos : [ k ( m ( b , c ) ) , l ( n ( b , c ) ) ] , pointIndex : c , seriesIndex : 0 , e : d3 . event } ) } ) . on ( "mouseout" , function ( b , c ) { d3 . select ( this ) . classed ( "hover" , ! 1 ) , x . elementMouseout ( { point : b , series : a [ 0 ] , pointIndex : c , seriesIndex : 0 , e : d3 . event } ) } ) . on ( "click" , function ( a , b ) { x . elementClick ( { value : n ( a , b ) , data : a , index : b , pos : [ k ( m ( a , b ) ) , l ( n ( a , b ) ) ] , e : d3 . event , id : j } ) , d3 . event . stopPropagation ( ) } ) . on ( "dblclick" , function ( a , b ) { x . elementDblClick ( { value : n ( a , b ) , data : a , index : b , pos : [ k ( m ( a , b ) ) , l ( n ( a , b ) ) ] , e : d3 . event , id : j } ) , d3 . event . stopPropagation ( ) } ) , E . attr ( "class" , function ( a , b , c ) { return ( o ( a , b ) > p ( a , b ) ? "nv-tick negative" : "nv-tick positive" ) + " nv-tick-" + c + "-" + b } ) , d3 . transition ( E ) . attr ( "transform" , function ( a , b ) { return "translate(" + k ( m ( a , b ) ) + "," + l ( q ( a , b ) ) + ")" } ) . attr ( "d" , function ( b , d ) { var e = . 9 * ( c / a [ 0 ] . values . length ) ; return "m0,0l0," + ( l ( o ( b , d ) ) - l ( q ( b , d ) ) ) + "l" + - e / 2 + ",0l" + e / 2 + ",0l0," + ( l ( r ( b , d ) ) - l ( o ( b , d ) ) ) + "l0," + ( l ( p ( b , d ) ) - l ( r ( b , d ) ) ) + "l" + e / 2 + ",0l" + - e / 2 + ",0z" } ) } ) , a } var b , d , e , f , g = { top : 0 , right : 0 , bottom : 0 , left : 0 } , h = 960 , i = 500 , j = Math . floor ( 1e4 * Math . random ( ) ) , k = d3 . scale . linear ( ) , l = d3 . scale . linear ( ) , m = function ( a ) { return a . x } , n = function ( a ) { return a . y } , o = function ( a ) { return a . open } , p = function ( a ) { return a . close } , q = function ( a ) { return a . high } , r = function ( a ) { return a . low } , s = [ ] , t = [ ] , u = ! 1 , v = ! 0 , w = c . utils . defaultColor ( ) , x = d3 . dispatch ( "chartClick" , "elementClick" , "elementDblClick" , "elementMouseover" , "elementMouseout" ) ; return a . dispatch = x , a . options = c . utils . optionsFunc . bind ( a ) , a . x = function ( b ) { return arguments . length ? ( m = b , a ) : m } , a . y = function ( b ) { return arguments . length ? ( n = b , a ) : n } , a . open = function ( b ) { return arguments . length ? ( o = b , a ) : o } , a . close = function ( b ) { return arguments . length ? ( p = b , a ) : p } , a . high = function ( b ) { return arguments . length ? ( q = b , a ) : q } , a . low = function ( b ) { return arguments . length ? ( r = b , a ) : r } , a . margin = function ( b ) { return arguments . length ? ( g . top = "undefined" != typeof b . top ? b . top : g . top , g . right = "undefined" != typeof b . right ? b . right : g . right , g . bottom = "undefined" != typeof b . bottom ? b . bottom : g . bottom , g . left = "undefined" != typeof b . left ? b . left : g . left , a ) : g } , a . width = function ( b ) { return arguments . length ? ( h = b , a ) : h } , a . height = function ( b ) { return arguments . length ? ( i = b , a ) : i } , a . xScale = function ( b ) { return arguments . length ? ( k = b , a ) : k } , a . yScale = function ( b ) { return arguments . length ? ( l = b , a ) : l } , a . xDomain = function ( c ) { return arguments . length ? ( b = c , a ) : b } , a . yDomain = function ( b ) { return arguments . length ? ( d = b , a ) : d } , a . xRange = function ( b ) { return arguments . length ? ( e = b , a ) : e } , a . yRange = function ( b ) { return arguments . length ? ( f = b , a ) : f } , a . forceX = function ( b ) { return arguments . length ? ( s = b , a ) : s } , a . forceY = function ( b ) { return arguments . length ? ( t = b , a ) : t } , a . padData = function ( b ) { return arguments . length ? ( u = b , a ) : u } , a . clipEdge = function ( b ) { return arguments . length ? ( v = b , a ) : v } , a . color = function ( b ) { return arguments . length ? ( w = c . utils . getColor ( b ) , a ) : w } , a . id = function ( b ) { return arguments . length ? ( j = b , a ) : j } , a } , c . models . pie = function ( ) { "use strict" ; function a ( c ) { return c . each ( function ( a ) { function c ( a ) { a . endAngle = isNaN ( a . endAngle ) ? 0 : a . endAngle , a . startAngle = isNaN ( a . startAngle ) ? 0 : a . startAngle , r || ( a . innerRadius = 0 ) ; var b = d3 . interpolate ( this . _current , a ) ; return this . _current = b ( 0 ) , function ( a ) { return E ( b ( a ) ) } } var i = e - b . left - b . right , l
} ) . filter ( function ( a , b ) { return ! c [ b ] . disabled } ) ) , P . select ( ".nv-scatterWrap" ) . datum ( c . filter ( function ( a ) { return ! a . disabled } ) ) . call ( b ) , P . select ( ".nv-regressionLinesWrap" ) . attr ( "clip-path" , "url(#nv-edge-clip-" + b . id ( ) + ")" ) ; var T = P . select ( ".nv-regressionLinesWrap" ) . selectAll ( ".nv-regLines" ) . data ( function ( a ) { return a } ) ; T . enter ( ) . append ( "g" ) . attr ( "class" , "nv-regLines" ) ; var U = T . selectAll ( ".nv-regLine" ) . data ( function ( a ) { return [ a ] } ) ; U . enter ( ) . append ( "line" ) . attr ( "class" , "nv-regLine" ) . style ( "stroke-opacity" , 0 ) , U . transition ( ) . attr ( "x1" , n . range ( ) [ 0 ] ) . attr ( "x2" , n . range ( ) [ 1 ] ) . attr ( "y1" , function ( a ) { return o ( n . domain ( ) [ 0 ] * a . slope + a . intercept ) } ) . attr ( "y2" , function ( a ) { return o ( n . domain ( ) [ 1 ] * a . slope + a . intercept ) } ) . style ( "stroke" , function ( a , b , c ) { return m ( a , c ) } ) . style ( "stroke-opacity" , function ( a ) { return a . disabled || "undefined" == typeof a . slope || "undefined" == typeof a . intercept ? 0 : 1 } ) , s && ( d . scale ( n ) . ticks ( d . ticks ( ) ? d . ticks ( ) : L / 100 ) . tickSize ( - M , 0 ) , S . select ( ".nv-x.nv-axis" ) . attr ( "transform" , "translate(0," + o . range ( ) [ 0 ] + ")" ) . call ( d ) ) , t && ( e . scale ( o ) . ticks ( e . ticks ( ) ? e . ticks ( ) : M / 36 ) . tickSize ( - L , 0 ) , S . select ( ".nv-y.nv-axis" ) . call ( e ) ) , p && ( h . getData ( b . x ( ) ) . scale ( n ) . width ( L ) . color ( c . map ( function ( a , b ) { return a . color || m ( a , b ) } ) . filter ( function ( a , b ) { return ! c [ b ] . disabled } ) ) , R . select ( ".nv-distWrap" ) . append ( "g" ) . attr ( "class" , "nv-distributionX" ) , S . select ( ".nv-distributionX" ) . attr ( "transform" , "translate(0," + o . range ( ) [ 0 ] + ")" ) . datum ( c . filter ( function ( a ) { return ! a . disabled } ) ) . call ( h ) ) , q && ( i . getData ( b . y ( ) ) . scale ( o ) . width ( M ) . color ( c . map ( function ( a , b ) { return a . color || m ( a , b ) } ) . filter ( function ( a , b ) { return ! c [ b ] . disabled } ) ) , R . select ( ".nv-distWrap" ) . append ( "g" ) . attr ( "class" , "nv-distributionY" ) , S . select ( ".nv-distributionY" ) . attr ( "transform" , "translate(" + ( u ? L : - i . size ( ) ) + ",0)" ) . datum ( c . filter ( function ( a ) { return ! a . disabled } ) ) . call ( i ) ) , d3 . fisheye && ( S . select ( ".nv-background" ) . attr ( "width" , L ) . attr ( "height" , M ) , S . select ( ".nv-background" ) . on ( "mousemove" , z ) , S . select ( ".nv-background" ) . on ( "click" , function ( ) { x = ! x } ) , b . dispatch . on ( "elementClick.freezeFisheye" , function ( ) { x = ! x } ) ) , g . dispatch . on ( "legendClick" , function ( c ) { c . disabled = ! c . disabled , w = c . disabled ? 0 : 2.5 , S . select ( ".nv-background" ) . style ( "pointer-events" , c . disabled ? "none" : "all" ) , S . select ( ".nv-point-paths" ) . style ( "pointer-events" , c . disabled ? "all" : "none" ) , c . disabled ? ( n . distortion ( w ) . focus ( 0 ) , o . distortion ( w ) . focus ( 0 ) , S . select ( ".nv-scatterWrap" ) . call ( b ) , S . select ( ".nv-x.nv-axis" ) . call ( d ) , S . select ( ".nv-y.nv-axis" ) . call ( e ) ) : x = ! 1 , a . update ( ) } ) , f . dispatch . on ( "stateChange" , function ( b ) { C = b , E . stateChange ( C ) , a . update ( ) } ) , b . dispatch . on ( "elementMouseover.tooltip" , function ( a ) { d3 . select ( ".nv-chart-" + b . id ( ) + " .nv-series-" + a . seriesIndex + " .nv-distx-" + a . pointIndex ) . attr ( "y1" , a . pos [ 1 ] - M ) , d3 . select ( ".nv-chart-" + b . id ( ) + " .nv-series-" + a . seriesIndex + " .nv-disty-" + a . pointIndex ) . attr ( "x2" , a . pos [ 0 ] + h . size ( ) ) , a . pos = [ a . pos [ 0 ] + j . left , a . pos [ 1 ] + j . top ] , E . tooltipShow ( a ) } ) , E . on ( "tooltipShow" , function ( a ) { y && J ( a , B . parentNode ) } ) , E . on ( "changeState" , function ( b ) { "undefined" != typeof b . disabled && ( c . forEach ( function ( a , c ) { a . disabled = b . disabled [ c ] } ) , C . disabled = b . disabled ) , a . update ( ) } ) , H = n . copy ( ) , I = o . copy ( ) } ) , a } var b = c . models . scatter ( ) , d = c . models . axis ( ) , e = c . models . axis ( ) , f = c . models . legend ( ) , g = c . models . legend ( ) , h = c . models . distribution ( ) , i = c . models . distribution ( ) , j = { top : 30 , right : 20 , bottom : 50 , left : 75 } , k = null , l = null , m = c . utils . defaultColor ( ) , n = d3 . fisheye ? d3 . fisheye . scale ( d3 . scale . linear ) . distortion ( 0 ) : b . xScale ( ) , o = d3 . fisheye ? d3 . fisheye . scale ( d3 . scale . linear ) . distortion ( 0 ) : b . yScale ( ) , p = ! 1 , q = ! 1 , r = ! 0 , s = ! 0 , t = ! 0 , u = ! 1 , v = ! ! d3 . fisheye , w = 0 , x = ! 1 , y = ! 0 , z = function ( a , b ) { return "<strong>" + b + "</strong>" } , A = function ( a , b , c ) { return "<strong>" + c + "</strong>" } , B = function ( a , b , c , d ) { return "<h3>" + a + "</h3>" + "<p>" + d + "</p>" } , C = { } , D = null , E = d3 . dispatch ( "tooltipShow" , "tooltipHide" , "stateChange" , "changeState" ) , F = "No Data Available." , G = 250 ; b . xScale ( n ) . yScale ( o ) , d . orient ( "bottom" ) . tickPadding ( 10 ) , e . orient ( u ? "right" : "left" ) . tickPadding ( 10 ) , h . axis ( "x" ) , i . axis ( "y" ) , g . updateState ( ! 1 ) ; var H , I , J = function ( f , g ) { var h = f . pos [ 0 ] + ( g . offsetLeft || 0 ) , i = f . pos [ 1 ] + ( g . offsetTop || 0 ) , k = f . pos [ 0 ] + ( g . offsetLeft || 0 ) , l = o . range ( ) [ 0 ] + j . top + ( g . offsetTop || 0 ) , m