{"version":3,"sources":["webpack:///./node_modules/is-plain-object/index.js","webpack:///./node_modules/fbjs/lib/hyphenateStyleName.js","webpack:///./node_modules/fbjs/lib/hyphenate.js","webpack:///./node_modules/d3-array/dist/d3-array.js","webpack:///./node_modules/inline-style-prefixer/static.js","webpack:///./node_modules/styled-components/lib/utils/generateAlphabeticName.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/stringify.js","webpack:///./node_modules/inline-style-prefixer/lib/static/plugins/flex.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/root.js","webpack:///./node_modules/inline-style-prefixer/lib/static/plugins/transition.js","webpack:///./node_modules/d3-time-format/dist/d3-time-format.js","webpack:///./node_modules/styled-components/node_modules/supports-color/browser.js","webpack:///./node_modules/styled-components/lib/constructors/styled.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/terminal-highlight.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/list.js","webpack:///./node_modules/styled-components/lib/vendor/postcss-safe-parser/safe-parser.js","webpack:///./node_modules/styled-components/lib/models/ComponentStyle.js","webpack:///./node_modules/styled-components/lib/utils/create-broadcast.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./src/constants/breakpoints.js","webpack:///./src/helpers/mediaTemplates.js","webpack:///./src/components/title/title.css.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/stringifier.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/styled-components/lib/models/StyledComponent.js","webpack:///./node_modules/inline-style-prefixer/lib/utils/sortPrefixedStyle.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/node.js","webpack:///./node_modules/inline-style-prefixer/lib/static/plugins/calc.js","webpack:///./node_modules/styled-components/lib/constructors/injectGlobal.js","webpack:///./node_modules/styled-components/lib/vendor/glamor/hash.js","webpack:///./node_modules/styled-components/lib/hoc/withTheme.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/styled-components/lib/utils/isTag.js","webpack:///./node_modules/styled-components/lib/models/AbstractStyledComponent.js","webpack:///./node_modules/styled-components/lib/constructors/keyframes.js","webpack:///./node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","webpack:///./node_modules/styled-components/lib/models/GlobalStyle.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/styled-components/lib/types.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/parser.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/css-syntax-error.js","webpack:///./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js","webpack:///./node_modules/fbjs/lib/camelize.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/inline-style-prefixer/lib/static/plugins/position.js","webpack:///./node_modules/styled-components/lib/constructors/css.js","webpack:///./node_modules/styled-components/lib/index.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/input.js","webpack:///./node_modules/styled-components/lib/utils/interleave.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/declaration.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/rule.js","webpack:///./node_modules/d3-geo/dist/d3-geo.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/tokenize.js","webpack:///./node_modules/styled-components/lib/models/ThemeProvider.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/inline-style-prefixer/lib/static/plugins/sizing.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/lazy-result.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/parse.js","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/d3-time/dist/d3-time.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/container.js","webpack:///./node_modules/d3-format/dist/d3-format.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/inline-style-prefixer/lib/utils/isPrefixedValue.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack:///./node_modules/styled-components/lib/vendor/postcss-safe-parser/parse.js","webpack:///./node_modules/inline-style-prefixer/lib/static/plugins/gradient.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/result.js","webpack:///./node_modules/d3-interpolate/dist/d3-interpolate.js","webpack:///./node_modules/hyphenate-style-name/index.cjs.js","webpack:///./node_modules/inline-style-prefixer/lib/utils/isPrefixedProperty.js","webpack:///./node_modules/styled-components/lib/utils/domElements.js","webpack:///./node_modules/is-function/index.js","webpack:///./node_modules/styled-components/lib/models/StyleSheet.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/warning.js","webpack:///./node_modules/inline-style-prefixer/lib/static/prefixProps.js","webpack:///./node_modules/@babel/runtime/helpers/get.js","webpack:///./src/components/box/box.css.js","webpack:///./src/components/box/box.js","webpack:///./node_modules/is-plain-object/node_modules/isobject/index.js","webpack:///./node_modules/styled-components/lib/vendor/glamor/sheet.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/processor.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/fbjs/lib/camelizeStyleName.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/inline-style-prefixer/lib/utils/joinPrefixedValue.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es.math.hypot.js","webpack:///./node_modules/d3-color/dist/d3-color.js","webpack:///./node_modules/@babel/runtime/helpers/superPropBase.js","webpack:///./node_modules/inline-style-prefixer/lib/static/prefixAll.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/memoize-one/dist/memoize-one.cjs.js","webpack:///./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack:///./node_modules/d3-scale/dist/d3-scale.js","webpack:///./node_modules/inline-style-prefixer/lib/static/plugins/flexboxOld.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/at-rule.js","webpack:///./node_modules/inline-style-prefixer/lib/static/plugins/flexboxIE.js","webpack:///./node_modules/@babel/runtime/helpers/construct.js","webpack:///./node_modules/styled-components/lib/vendor/postcss-nested/index.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/warn-once.js","webpack:///./node_modules/styled-components/lib/utils/validAttr.js","webpack:///./node_modules/styled-components/lib/vendor/postcss/comment.js","webpack:///./src/components/seo-component.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/isNativeFunction.js","webpack:///./node_modules/styled-components/lib/utils/flatten.js","webpack:///./node_modules/styled-components/lib/utils/autoprefix.js","webpack:///./node_modules/inline-style-prefixer/lib/static/plugins/cursor.js","webpack:///./node_modules/d3-path/dist/d3-path.js"],"names":["isObject","isObjectObject","o","Object","prototype","toString","call","module","exports","ctor","prot","constructor","hasOwnProperty","hyphenate","msPattern","string","replace","_uppercasePattern","toLowerCase","_slicedToArray","_assertThisInitialized","_get","_inherits","_possibleConstructorReturn","_getPrototypeOf","_wrapNativeSuper","_classCallCheck","_createClass","_toConsumableArray","_regeneratorRuntime","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","e","_isNativeReflectConstruct","result","Super","NewTarget","this","arguments","apply","_createForOfIteratorHelper","allowArrayLike","it","Symbol","iterator","Array","isArray","minLen","_arrayLikeToArray","n","slice","name","from","test","_unsupportedIterableToArray","length","i","F","s","done","value","_e","f","TypeError","err","normalCompletion","didErr","step","next","_e2","return","arr","len","arr2","_marked","mark","numbers","_marked2","flatten","ascending","a","b","NaN","bisector","delta","compare","left","x","lo","hi","mid","d","ascendingComparator","center","right","number","values","valueof","_iterator","_step","_index","_iterator2","_step2","_value","wrap","_context","prev","undefined","t0","finish","t1","stop","ascendingBisect","bisectRight","bisectLeft","bisectCenter","count","_step3","_iterator3","_step4","_index2","_iterator4","_value2","array","empty","arrayify","reducer","reduce","variance","mean","sum","_step5","_iterator5","_step6","_index3","_iterator6","_value3","deviation","v","Math","sqrt","extent","min","max","_step7","_iterator7","_step8","_index4","_iterator8","_value4","Adder","_partials","Float64Array","_n","key","p","j","y","abs","InternMap","_Map","_super","_this","entries","keyof","defineProperties","_intern","Map","_key","_step11","_iterator11","_step11$value","_key3","set","intern_get","intern_set","intern_delete","InternSet","_Set","_super2","_this2","_step12","_iterator12","add","Set","_ref","has","get","_ref2","_ref3","delete","valueOf","identity","group","_len2","keys","_key4","nest","rollup","_len4","_key6","unique","Error","map","regroup","_step13","groups","index","_iterator13","_group","push","_step14","_iterator14","_step14$value","_key10","_values","permute","source","sort","_len8","_key11","_F","_F2","_F2$","_index6","Uint32Array","_step15","_iterator15","_f","c","constant","e10","e5","e2","ticks","start","reverse","tickIncrement","isFinite","ceil","floor","power","log","LN10","error","pow","nice","prestep","sturges","LN2","bin","domain","threshold","histogram","data","xz","x0","x1","tz","_max","tn","_nice","_nice2","pop","m","shift","bins","_","thresholds","_step16","_iterator16","_step17","_index7","_iterator17","_value6","_step18","_iterator18","_step19","_index8","_iterator19","_value7","quickselect","k","z","exp","sd","newLeft","newRight","t","swap","quantile","i0","value0","subarray","maxIndex","_step20","_iterator20","_step21","_iterator21","_value8","arrays","_iterator24","_step24","_array","_context2","delegateYield","minIndex","_step25","_iterator25","_step26","_iterator26","_value10","pair","leastIndex","minValue","_step30","_iterator30","shuffle","shuffler","random","i1","transpose","matrix","length$1","row","superset","other","_step43","_iterator43","_iterator$next4","is","bisect","cross","_len","_key2","lengths","fill","product","some","cumsum","descending","difference","_len9","others","_key12","_i","_others","_step39","_iterator39","disjoint","_step40","_iterator40","_iterator$next3","every","_step36","_iterator36","filter","_step38","_iterator38","fsum","adder","_step9","_iterator9","_step10","_index5","_iterator10","_value5","greatest","defined","maxValue","_step31","_iterator31","element","_step32","_iterator32","_value12","greatestIndex","_step33","_iterator33","groupSort","_ref4","_ref5","_ref6","ak","av","_ref7","bk","_ref8","_ref9","_ref10","_ref11","bv","_ref12","_len3","_key5","_len6","_key8","indexes","_len7","_key9","intersection","_len10","_key13","_step41","_iterator41","out","_step42","_iterator42","least","_step28","_iterator28","_step29","_iterator29","_value11","mapper","_step22","_iterator22","_step23","_index9","_iterator23","_value9","median","merge","pairs","previous","_step27","pairof","first","_iterator27","quantileSorted","value1","range","_iterator$next","_iterator$next2","rollups","_len5","_key7","scan","_step37","_iterator37","subset","_step34","_iterator34","_step35","_index10","_iterator35","_value13","thresholdFreedmanDiaconis","thresholdScott","thresholdSturges","tickStep","step0","step1","union","_len11","_key14","_i2","_others2","_step44","_iterator44","zip","defineProperty","factory","chars","split","default","generateAlphabeticName","code","lastDigit","node","builder","_stringifier2","stringify","obj","_stringifier","__esModule","property","display","flex","target","props","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","object","receiver","Function","desc","getOwnPropertyDescriptor","parent","getPrototypeOf","getter","_container2","_interopRequireDefault","_lazyResult2","_processor2","_warnOnce2","Root","_Container","defaults","instance","self","ReferenceError","__proto__","type","nodes","subClass","superClass","create","setPrototypeOf","child","raws","before","sample","forEach","opts","lazy","removeChild","input","properties","outputValue","_isPrefixedValue2","multipleValues","val","_prefixProps2","prefix","dashCasePrefix","prop","dashCaseProperty","_hyphenateStyleName2","indexOf","join","prefixValue","webkitOutput","match","_defineProperty","_capitalizeString2","transition","transitionProperty","WebkitTransition","WebkitTransitionProperty","d3Time","localDate","date","H","M","S","L","setFullYear","utcDate","UTC","setUTCFullYear","newDate","formatLocale","locale","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","getDay","getMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","getHours","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","getUTCDay","getUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","getUTCHours","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","exec","w","parseSpecifier","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseZone","parseLiteralPercent","newFormat","specifier","pad","format","charCodeAt","pads","charAt","newParse","Z","week","day","Q","q","V","utcMonday","utcDay","offset","getUTCFullYear","getUTCDate","timeMonday","timeDay","getFullYear","getDate","u","W","U","parse","X","utcFormat","utcParse","numberRe","percentRe","requoteRe","width","sign","requote","names","RegExp","timeYear","getMilliseconds","getMinutes","getSeconds","timeSunday","dISO","timeThursday","getTimezoneOffset","utcYear","getUTCMilliseconds","getUTCMinutes","getUTCSeconds","dow","utcSunday","UTCdISO","utcThursday","defaultLocale","definition","timeFormat","timeParse","formatIso","toISOString","parseIso","isNaN","isoFormat","isoParse","timeFormatDefaultLocale","timeFormatLocale","_css2","_domElements2","babelPluginFlowReactPropTypes_proptype_Target","any","babelPluginFlowReactPropTypes_proptype_Interpolation","styledComponent","styled","tag","strings","interpolations","concat","domElement","_tokenize2","_input2","HIGHLIGHT_THEME","color","css","tokens","ignoreErrors","token","list","separators","last","current","func","quote","escape","letter","trim","space","comma","_tokenize3","_comment2","SafeParser","_Parser","init","end","line","column","text","buffer","pos","spaces","after","colon","splice","decl","semicolon","_hash2","_flatten2","_parse2","_postcssNested2","_autoprefix2","_StyleSheet2","babelPluginFlowReactPropTypes_proptype_GlamorInsertedRule","babelPluginFlowReactPropTypes_proptype_NameGenerator","babelPluginFlowReactPropTypes_proptype_RuleSet","nameGenerator","inserted","ComponentStyle","rules","injected","inject","insertedRule","insert","executionContext","flatCSS","hash","selector","root","appendRule","toResult","shape","publish","isRequired","subscribe","initialValue","listeners","currentValue","listener","item","DESKTOP","TABLET","PHONE","MEDIA","BREAKPOINTS","acc","label","span","size","defaultRaw","indent","beforeDecl","beforeRule","beforeOpen","beforeClose","beforeComment","emptyBody","commentLeft","commentRight","Stringifier","body","raw","between","rawValue","important","block","params","afterName","own","detect","rawCache","beforeAfter","str","method","toUpperCase","walk","parts","walkComments","walkDecls","buf","depth","_extends","assign","_react","_validAttr2","_isTag2","_AbstractStyledComponent2","_ThemeProvider","babelPluginFlowReactPropTypes_proptype_Theme","createStyledComponent","isStyledComponent","isPrototypeOf","componentStyle","ParentComponent","StyledComponent","_ParentComponent","_temp","args","state","theme","generatedClassName","generateAndInjectStyles","context","CHANNEL","unsubscribe","nextTheme","defaultProps","isDefaultTheme","setState","_theme","nextProps","_this3","oldState","_this4","_props","className","children","innerRef","propsForElement","propName","ref","createElement","contextTypes","displayName","style","_isPrefixedProperty2","sortedStyle","_isPrefixedProperty","_typeof","_cssSyntaxError2","_stringify2","cloneNode","cloned","Node","message","positionBy","warn","stringifier","overrides","clone","insertBefore","insertAfter","remove","newParent","cleanRaws","append","otherNode","fixed","toJSON","defaultType","keepBetween","positionInside","word","replaceWith","_joinPrefixedValue2","_GlobalStyle2","globalStyle","generateAndInject","UInt32","UInt16","Umul32","seed","h","currentIndex","_react2","_propTypes2","Component","_class","_temp2","_React$Component","iter","_propTypes","AbstractStyledComponent","_Component","replaceWhitespace","JSON","keyframes","keyframesWebkit","global","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","cssText","_declaration2","_atRule2","_root2","_rule2","Parser","comment","atrule","emptyRule","endFile","bracket","brackets","rule","unclosedBracket","unknownWord","spacesFromEnd","spacesFromStart","precheckMissedSemicolon","stringFrom","cache","_type","checkMissedSemicolon","unnamedAtrule","open","unexpectedClose","unclosedBlock","clean","all","lastTokenType","doubleColon","founded","_supportsColor2","_terminalHighlight2","CssSyntaxError","file","plugin","reason","setMessage","captureStackTrace","lines","maxWidth","String","gutter","spacing","showSourceCode","_taggedTemplateLiteralLoose","_hyphenPattern","character","position","_interleave2","withTheme","ThemeProvider","injectGlobal","_generateAlphabeticName2","_injectGlobal2","_StyledComponent2","_styled3","_keyframes3","_ComponentStyle3","_ThemeProvider2","_withTheme2","_cssSyntaxError","sequence","Input","path","resolve","id","origin","consumer","originalPositionFor","mapResolve","sourceContentFor","sourceRoot","interp","Declaration","_Node","_list2","Rule","sep","d3Array","epsilon","pi","PI","halfPi","quarterPi","tau","degrees","radians","atan","atan2","cos","hypot","sin","tan","acos","asin","haversin","noop","streamGeometry","geometry","stream","streamGeometryType","streamObjectType","Feature","FeatureCollection","features","Sphere","sphere","Point","coordinates","point","MultiPoint","LineString","streamLine","MultiLineString","Polygon","streamPolygon","MultiPolygon","GeometryCollection","geometries","closed","coordinate","lineStart","lineEnd","polygonStart","polygonEnd","geoStream","lambda00","phi00","lambda0","cosPhi0","sinPhi0","lambda0$1","phi0","lambda1","phi1","lambda2","lambda00$1","phi00$1","p0","deltaSum","ranges","areaRingSum","areaSum","areaStream","areaRingStart","areaRingEnd","areaRing","areaPointFirst","areaPoint","lambda","phi","dLambda","sdLambda","adLambda","cosPhi","sinPhi","spherical","cartesian","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","vector","cartesianNormalizeInPlace","l","W0","W1","X0","Y0","Z0","X1","Y1","Z1","X2","Y2","Z2","lambda00$2","phi00$2","y0","z0","boundsStream","boundsPoint","boundsLineStart","boundsLineEnd","boundsRingPoint","boundsRingStart","boundsRingEnd","linePoint","normal","inflection","phii","lambdai","antimeridian","angle","rangeCompare","rangeContains","centroidStream","centroidPoint","centroidLineStart","centroidLineEnd","centroidRingStart","centroidRingEnd","centroidPointCartesian","centroidLinePointFirst","centroidLinePoint","centroidRingPointFirst","centroidRingPoint","cx","cy","cz","compose","invert","rotationIdentity","round","rotateRadians","deltaLambda","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","rotation","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","rotate","forward","circleStream","radius","direction","cosRadius","sinRadius","circleRadius","clipBuffer","rejoin","pointEqual","Intersection","points","entry","clipRejoin","segments","compareIntersection","startInside","interpolate","subject","clip","segment","p1","link","isSubject","longitude","polygonContains","polygon","winding","ring","point0","sinPhi1","cosPhi1","point1","absDelta","arc","phiArc","pointVisible","clipLine","sink","ringBuffer","ringSink","polygonStarted","pointRing","ringStart","ringEnd","pointLine","ringSegments","validSegment","lengthSum","lambda0$2","sinPhi0$1","cosPhi0$1","clipAntimeridian","_clean","sign0","sign1","sinLambda0Lambda1","clipAntimeridianIntersect","to","clipCircle","cr","smallRadius","notHemisphere","visible","intersect","two","n1","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","A","uu","t2","polar","q1","r","c0","v0","v00","_clean2","point2","clipRectangle","y1","a1","corner","comparePoint","ca","cb","x__","y__","v__","x_","y_","v_","activeStream","bufferStream","clipStream","a0","b0","b1","polygonInside","cleanInside","ax","ay","dx","dy","lengthStream","lengthPointFirst","lengthLineEnd","lengthPoint","cosDelta","distance","containsObjectType","containsGeometry","containsGeometryType","containsPoint","containsLine","containsPolygon","ao","bo","ab","ringRadians","pointRadians","graticuleX","graticuleY","graticule","Y","DX","DY","precision","outline","extentMajor","extentMinor","stepMajor","stepMinor","x00","y00","x0$1","y0$1","areaSum$1","areaRingSum$1","areaStream$1","areaRingStart$1","areaRingEnd$1","area","areaPointFirst$1","areaPoint$1","x00$1","y00$1","x0$3","y0$3","x0$2","Infinity","y0$2","boundsStream$1","bounds","X0$1","Y0$1","Z0$1","X1$1","Y1$1","Z1$1","X2$1","Y2$1","Z2$1","centroidStream$1","centroidPoint$1","centroidLineStart$1","centroidLineEnd$1","centroidRingStart$1","centroidRingEnd$1","centroid","centroidPointFirstLine","centroidPointLine","centroidPointFirstRing","centroidPointRing","PathContext","_radius","pointRadius","_line","_point","closePath","moveTo","lineTo","lengthRing","x00$2","y00$2","x0$4","y0$4","lengthSum$1","lengthStream$1","lengthPointFirst$1","lengthPoint$1","PathString","_string","circle$1","transformer","methods","TransformStream","fit","projection","fitBounds","clipExtent","scale","translate","fitExtent","fitSize","fitWidth","fitHeight","height","_circle","cosMinDistance","resample","project","delta2","resampleLineTo","d2","phi2","x2","y2","dx2","dy2","dz","a00","b00","c00","resampleStream","ringPoint","resample$1","resampleNone","transformRadians","scaleTranslateRotate","sx","sy","alpha","transform","scaleTranslate","cosAlpha","sinAlpha","ai","bi","ci","fi","projectionMutator","projectAt","projectResample","projectTransform","projectRotateTransform","cacheStream","theta","preclip","postclip","recenter","reset","transformRotate","clipAngle","reflectX","reflectY","conicProjection","parallels","conicEqualAreaRaw","sy0","cylindricalEqualAreaRaw","r0","r0y","conicEqualArea","albers","azimuthalRaw","azimuthalInvert","sc","cc","azimuthalEqualAreaRaw","cxcy","azimuthalEquidistantRaw","mercatorRaw","mercatorProjection","reclip","tany","conicConformalRaw","cy0","fy","equirectangularRaw","conicEquidistantRaw","g","gy","nx","A1","A2","A3","A4","equalEarthRaw","l2","l6","gnomonicRaw","naturalEarth1Raw","phi4","orthographicRaw","stereographicRaw","transverseMercatorRaw","geoAlbers","geoAlbersUsa","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","albersUsa","streams","geoArea","geoAzimuthalEqualArea","geoAzimuthalEqualAreaRaw","geoAzimuthalEquidistant","geoAzimuthalEquidistantRaw","geoBounds","feature","merged","deltaMax","geoCentroid","geoCircle","circle","geoClipAntimeridian","geoClipCircle","geoClipExtent","_stream","geoClipRectangle","geoConicConformal","geoConicConformalRaw","geoConicEqualArea","geoConicEqualAreaRaw","geoConicEquidistant","geoConicEquidistantRaw","geoContains","geoDistance","geoEqualEarth","geoEqualEarthRaw","geoEquirectangular","geoEquirectangularRaw","geoGnomonic","geoGnomonicRaw","geoGraticule","geoGraticule10","geoIdentity","sa","tx","ty","kx","ky","geoInterpolate","cy1","sy1","kx0","ky0","kx1","ky1","B","geoLength","geoMercator","geoMercatorRaw","geoNaturalEarth1","geoNaturalEarth1Raw","geoOrthographic","geoOrthographicRaw","geoPath","projectionStream","contextStream","measure","geoProjection","geoProjectionMutator","geoRotation","geoStereographic","geoStereographicRaw","geoTransform","geoTransverseMercator","geoTransverseMercatorRaw","arrayWithoutHoles","iterableToArray","nonIterableSpread","options","ignore","content","nextLine","nextOffset","escaped","escapePos","unclosed","what","NEWLINE","FEED","CR","SPACE","TAB","OPEN_SQUARE","CLOSE_SQUARE","OPEN_CURLY","CLOSE_CURLY","COLON","SEMICOLON","OPEN_PARENTHESES","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","RE_BAD_BRACKET","CLOSE_PARENTHESES","AT","RE_AT_END","lastIndex","SLASH","ASTERISK","RE_WORD_END","_isFunction2","_isPlainObject2","_createBroadcast2","babelPluginFlowReactPropTypes_proptype_Broadcast","getTheme","bind","unsubscribeToOuter","outerTheme","broadcast","passedTheme","mergedTheme","Children","only","propTypes","oneOfType","childContextTypes","_defineProperties","_joinPrefixedValue","maxHeight","columnWidth","minWidth","minHeight","_stringify3","_result2","isPromise","then","LazyResult","processor","stringified","processed","inline","parser","syntax","sync","warnings","onFulfilled","onRejected","async","catch","postcssVersion","pluginName","postcssPlugin","pluginVer","runtimeVer","version","parseInt","console","reject","plugins","promise","run","asyncTick","handleError","Promise","processing","lastPlugin","messages","safe","_parser2","tokenize","loop","newInterval","floori","offseti","field","interval","d0","d1","setTime","millisecond","milliseconds","second","seconds","minute","minutes","hour","hours","setHours","setDate","weekday","sunday","monday","tuesday","wednesday","thursday","friday","saturday","sundays","mondays","tuesdays","wednesdays","thursdays","fridays","saturdays","month","setMonth","year","years","utcMinute","setUTCSeconds","utcMinutes","utcHour","setUTCMinutes","utcHours","setUTCHours","setUTCDate","utcDays","utcWeekday","utcTuesday","utcWednesday","utcFriday","utcSaturday","utcSundays","utcMondays","utcTuesdays","utcWednesdays","utcThursdays","utcFridays","utcSaturdays","utcMonth","setUTCMonth","utcMonths","utcYears","timeDays","timeFriday","timeFridays","timeHour","timeHours","timeInterval","timeMillisecond","timeMilliseconds","timeMinute","timeMinutes","timeMondays","timeMonth","timeMonths","timeSaturday","timeSaturdays","timeSecond","timeSeconds","timeSundays","timeThursdays","timeTuesday","timeTuesdays","timeWednesday","timeWednesdays","timeWeek","timeWeeks","timeYears","utcMillisecond","utcMilliseconds","utcSecond","utcSeconds","utcWeek","utcWeeks","Container","callback","lastEach","each","normalize","unshift","exist","_this5","pattern","fast","condition","_this6","cleanSource","rebuild","_this7","fix","walkRules","walkAtRules","formatDecimalParts","toExponential","coefficient","exponent","prefixExponent","re","formatSpecifier","FormatSpecifier","align","symbol","zero","formatRounded","formatTypes","toFixed","toLocaleString","toPrecision","_p","_x","prefixes","grouping","thousands","Number","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","minus","nan","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","padding","formatPrefix","formatDefaultLocale","precisionFixed","precisionPrefix","precisionRound","assertThisInitialized","_safeParser2","_warning","_warning2","Result","warning","d3Color","basis","v1","v2","v3","t3","basis$1","basisClosed","linear","hue","gamma","nogamma","exponential","rgb","rgbGamma","opacity","rgbSpline","spline","colors","rgbBasis","rgbBasisClosed","numberArray","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","reA","reB","am","bm","bs","one","svgNode","translateX","translateY","skewX","scaleX","scaleY","decompose","interpolateTransform","pxComma","pxParen","degParen","xa","ya","xb","yb","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","interpolateTransformSvg","document","createElementNS","setAttribute","baseVal","consolidate","cosh","zoom","zoomRho","rho","rho2","rho4","ux0","uy0","w0","ux1","uy1","w1","r1","coshr0","sinh","duration","SQRT2","_1","_2","hsl","hsl$1","hslLong","hcl","hcl$1","hclLong","cubehelix","cubehelixGamma","cubehelix$1","cubehelixLong","interpolateArray","interpolateBasis","interpolateBasisClosed","interpolateCubehelix","interpolateCubehelixLong","interpolateDate","interpolateDiscrete","interpolateHcl","interpolateHclLong","interpolateHsl","interpolateHslLong","interpolateHue","interpolateLab","lab","interpolateNumber","interpolateNumberArray","interpolateObject","interpolateRgb","interpolateRgbBasis","interpolateRgbBasisClosed","interpolateRound","interpolateString","interpolateZoom","piecewise","I","quantize","interpolator","samples","uppercasePattern","toHyphenLower","hName","fn","window","setTimeout","alert","confirm","prompt","_sheet","babelPluginFlowReactPropTypes_proptype_GlamorRule","StyleSheet","globalStyleSheet","speedy","componentStyleSheet","maxLength","sheet","flush","Warning","opt","superPropBase","base","div","Box","sheetForTag","styleSheets","ownerNode","isBrowser","oldIE","innerHTML","getElementsByTagName","makeStyleTag","appendChild","createTextNode","head","_ref$speedy","_ref$maxLength","isSpeedy","tags","ctr","cssRules","insertRule","serverRule","newCss","bool","_insert","textNode","appendData","parentNode","_lazyResult","Processor","normalized","postcss","camelize","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","arg","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","awrap","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","regeneratorRuntime","accidentalStrictMode","_arr","_d","_s","replacer","$","$hypot","stat","forced","value2","aLen","larg","extend","Color","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgba","hsla","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","m1","m2","copy","channels","displayable","formatHsl","brighter","darker","labConvert","Lab","Hcl","hcl2lab","rgb2lrgb","xyz2lab","lab2xyz","lrgb2rgb","hclConvert","C","D","E","ED","EB","BC_DA","cubehelixConvert","Cubehelix","bl","lch","prefixAll","styles","baseValue","valueIndex","assignStyles","_sortPrefixedStyle2","_position2","_calc2","_cursor2","_flex2","_sizing2","_gradient2","_transition2","_flexboxIE2","_flexboxOld2","areInputsEqual","newInputs","lastInputs","resultFn","isEqual","lastThis","lastResult","lastArgs","calledOnce","newArgs","isNativeFunction","Class","_cache","Wrapper","d3Interpolate","d3Format","d3TimeFormat","initRange","initInterpolator","implicit","ordinal","unknown","band","bandwidth","ordinalRange","paddingInner","paddingOuter","rescale","rangeRound","pointish","unit","bimap","polymap","clamp","untransform","output","continuous","tickFormat","linearish","maxIter","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","log10","log2","logp","powp","transformSymlog","log1p","transformSymexp","expm1","symlogish","transformPow","transformSqrt","transformSquare","powish","square","unsquare","number$1","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","tickIntervals","durationSecond","durationMinute","durationHour","durationDay","tickInterval","transformer$1","k10","copy$1","sequentialPow","transformer$2","k21","_ref14","r2","divergingPow","scaleBand","scaleDiverging","diverging","scaleDivergingLog","divergingLog","scaleDivergingPow","scaleDivergingSqrt","scaleDivergingSymlog","divergingSymlog","scaleIdentity","identity$1","scaleImplicit","scaleLinear","scaleLog","scaleOrdinal","scalePoint","scalePow","scaleQuantile","invertExtent","quantiles","scaleQuantize","scaleRadial","radial","squared","scaleSequential","sequential","scaleSequentialLog","sequentialLog","scaleSequentialPow","scaleSequentialQuantile","sequentialQuantile","scaleSequentialSqrt","scaleSequentialSymlog","sequentialSymlog","scaleSqrt","scaleSymlog","symlog","scaleThreshold","scaleTime","scaleUtc","WebkitBoxOrient","WebkitBoxDirection","alternativeProps","alternativeValues","alignItems","justifyContent","flexWrap","AtRule","_get2","_get3","alignContent","alignSelf","order","flexGrow","flexShrink","flexBasis","isNativeReflectConstruct","_construct","Parent","selectors","pickComment","moveAfter","processRule","bubble","atruleChilds","prepend","process","printed","reactProps","dangerouslySetInnerHTML","autoFocus","defaultValue","valueLink","defaultChecked","checkedLink","suppressContentEditableWarning","onFocusIn","onFocusOut","onCopy","onCut","onPaste","onCompositionEnd","onCompositionStart","onCompositionUpdate","onKeyDown","onKeyPress","onKeyUp","onFocus","onBlur","onChange","onInput","onSubmit","onClick","onContextMenu","onDoubleClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onSelect","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onScroll","onWheel","onAbort","onCanPlay","onCanPlayThrough","onDurationChange","onEmptied","onEncrypted","onEnded","onError","onLoadedData","onLoadedMetadata","onLoadStart","onPause","onPlay","onPlaying","onProgress","onRateChange","onSeeked","onSeeking","onStalled","onSuspend","onTimeUpdate","onVolumeChange","onWaiting","onLoad","onAnimationStart","onAnimationEnd","onAnimationIteration","onTransitionEnd","onCopyCapture","onCutCapture","onPasteCapture","onCompositionEndCapture","onCompositionStartCapture","onCompositionUpdateCapture","onKeyDownCapture","onKeyPressCapture","onKeyUpCapture","onFocusCapture","onBlurCapture","onChangeCapture","onInputCapture","onSubmitCapture","onClickCapture","onContextMenuCapture","onDoubleClickCapture","onDragCapture","onDragEndCapture","onDragEnterCapture","onDragExitCapture","onDragLeaveCapture","onDragOverCapture","onDragStartCapture","onDropCapture","onMouseDownCapture","onMouseEnterCapture","onMouseLeaveCapture","onMouseMoveCapture","onMouseOutCapture","onMouseOverCapture","onMouseUpCapture","onSelectCapture","onTouchCancelCapture","onTouchEndCapture","onTouchMoveCapture","onTouchStartCapture","onScrollCapture","onWheelCapture","onAbortCapture","onCanPlayCapture","onCanPlayThroughCapture","onDurationChangeCapture","onEmptiedCapture","onEncryptedCapture","onEndedCapture","onErrorCapture","onLoadedDataCapture","onLoadedMetadataCapture","onLoadStartCapture","onPauseCapture","onPlayCapture","onPlayingCapture","onProgressCapture","onRateChangeCapture","onSeekedCapture","onSeekingCapture","onStalledCapture","onSuspendCapture","onTimeUpdateCapture","onVolumeChangeCapture","onWaitingCapture","onLoadCapture","onAnimationStartCapture","onAnimationEndCapture","onAnimationIterationCapture","onTransitionEndCapture","htmlProps","accept","acceptCharset","accessKey","action","allowFullScreen","allowTransparency","alt","as","autoComplete","autoPlay","capture","cellPadding","cellSpacing","charSet","challenge","checked","cite","classID","cols","colSpan","contentEditable","contextMenu","controls","coords","crossOrigin","defer","dir","disabled","download","draggable","encType","form","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","headers","hidden","high","href","hrefLang","htmlFor","httpEquiv","icon","inputMode","integrity","keyParams","keyType","kind","lang","low","manifest","marginHeight","marginWidth","media","mediaGroup","minLength","multiple","muted","nonce","noValidate","optimum","placeholder","playsInline","poster","preload","profile","radioGroup","readOnly","referrerPolicy","rel","required","reversed","role","rows","rowSpan","sandbox","scope","scoped","scrolling","seamless","selected","sizes","spellCheck","src","srcDoc","srcLang","srcSet","summary","tabIndex","title","useMap","wmode","about","datatype","inlist","resource","typeof","vocab","autoCapitalize","autoCorrect","autoSave","itemProp","itemScope","itemType","itemID","itemRef","results","security","unselectable","svgProps","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baseProfile","baselineShift","bbox","begin","bias","by","calcMode","capHeight","clipPath","clipRule","clipPathUnits","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","decelerate","descent","diffuseConstant","divisor","dominantBaseline","dur","edgeMode","elevation","enableBackground","externalResourcesRequired","fillOpacity","fillRule","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","fx","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","ideographic","imageRendering","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerMid","markerStart","markerHeight","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","operator","orient","orientation","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","rx","ry","shapeRendering","slope","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textRendering","textLength","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","viewBox","viewTarget","visibility","widths","wordSpacing","writingMode","xHeight","xChannelSelector","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlns","xmlnsXlink","xmlLang","xmlSpace","yChannelSelector","zoomAndPan","isCustomAttribute","Comment","SEO","description","meta","site","useStaticQuery","metaDescription","siteMetadata","htmlAttributes","titleTemplate","author","objToCss","prevKey","chunks","ruleSet","chunk","_camelizeStyleName2","_static2","babelPluginFlowReactPropTypes_proptype_Container","objStyle","prefixed","newProp","newVals","newVal","cloneBefore","grab","grabbing","tauEpsilon","Path","_x0","_y0","_x1","_y1","quadraticCurveTo","bezierCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","ccw","cw","da","rect"],"mappings":"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","file":"34386511650b0b9d9567e480c9c6f486c816c42e-b799d1c162d7b897e66d.js","sourcesContent":["/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n'use strict';\n\nvar isObject = require('isobject');\n\nfunction isObjectObject(o) {\n return isObject(o) === true && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor, prot;\n if (isObjectObject(o) === false) return false; // If has modified constructor\n\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false; // If has modified prototype\n\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false; // If constructor does not have an Object-specific method\n\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n'use strict';\n\nvar hyphenate = require('./hyphenate');\n\nvar msPattern = /^ms-/;\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;","'use strict';\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _uppercasePattern = /([A-Z])/g;\n/**\n * Hyphenates a camelcased string, for example:\n *\n * > hyphenate('backgroundColor')\n * < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction hyphenate(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;","require(\"core-js/modules/es.array.reduce.js\");\n\nvar _slicedToArray = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/slicedToArray\");\n\nvar _assertThisInitialized = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/assertThisInitialized\");\n\nvar _get = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/get\");\n\nvar _inherits = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/inherits\");\n\nvar _possibleConstructorReturn = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _wrapNativeSuper = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/wrapNativeSuper\");\n\nvar _classCallCheck = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _toConsumableArray = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/toConsumableArray\");\n\nvar _regeneratorRuntime = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/regenerator\");\n\nrequire(\"regenerator-runtime/runtime.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// https://d3js.org/d3-array/ v2.11.0 Copyright 2021 Mike Bostock\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));\n})(this, function (exports) {\n 'use strict';\n\n var _marked = /*#__PURE__*/_regeneratorRuntime.mark(numbers),\n _marked2 = /*#__PURE__*/_regeneratorRuntime.mark(flatten);\n\n function ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n }\n\n function bisector(f) {\n var delta = f;\n var compare = f;\n\n if (f.length === 1) {\n delta = function delta(d, x) {\n return f(d) - x;\n };\n\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\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\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\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\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n var i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {\n left: left,\n center: center,\n right: right\n };\n }\n\n function ascendingComparator(f) {\n return function (d, x) {\n return ascending(f(d), x);\n };\n }\n\n function number(x) {\n return x === null ? NaN : +x;\n }\n\n function numbers(values, valueof) {\n var _iterator, _step, value, _index, _iterator2, _step2, _value;\n\n return _regeneratorRuntime.wrap(function numbers$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(valueof === undefined)) {\n _context.next = 21;\n break;\n }\n\n _iterator = _createForOfIteratorHelper(values);\n _context.prev = 2;\n\n _iterator.s();\n\n case 4:\n if ((_step = _iterator.n()).done) {\n _context.next = 11;\n break;\n }\n\n value = _step.value;\n\n if (!(value != null && (value = +value) >= value)) {\n _context.next = 9;\n break;\n }\n\n _context.next = 9;\n return value;\n\n case 9:\n _context.next = 4;\n break;\n\n case 11:\n _context.next = 16;\n break;\n\n case 13:\n _context.prev = 13;\n _context.t0 = _context[\"catch\"](2);\n\n _iterator.e(_context.t0);\n\n case 16:\n _context.prev = 16;\n\n _iterator.f();\n\n return _context.finish(16);\n\n case 19:\n _context.next = 40;\n break;\n\n case 21:\n _index = -1;\n _iterator2 = _createForOfIteratorHelper(values);\n _context.prev = 23;\n\n _iterator2.s();\n\n case 25:\n if ((_step2 = _iterator2.n()).done) {\n _context.next = 32;\n break;\n }\n\n _value = _step2.value;\n\n if (!((_value = valueof(_value, ++_index, values)) != null && (_value = +_value) >= _value)) {\n _context.next = 30;\n break;\n }\n\n _context.next = 30;\n return _value;\n\n case 30:\n _context.next = 25;\n break;\n\n case 32:\n _context.next = 37;\n break;\n\n case 34:\n _context.prev = 34;\n _context.t1 = _context[\"catch\"](23);\n\n _iterator2.e(_context.t1);\n\n case 37:\n _context.prev = 37;\n\n _iterator2.f();\n\n return _context.finish(37);\n\n case 40:\n case \"end\":\n return _context.stop();\n }\n }\n }, _marked, null, [[2, 13, 16, 19], [23, 34, 37, 40]]);\n }\n\n var ascendingBisect = bisector(ascending);\n var bisectRight = ascendingBisect.right;\n var bisectLeft = ascendingBisect.left;\n var bisectCenter = bisector(number).center;\n\n function count(values, valueof) {\n var count = 0;\n\n if (valueof === undefined) {\n var _iterator3 = _createForOfIteratorHelper(values),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var value = _step3.value;\n\n if (value != null && (value = +value) >= value) {\n ++count;\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n } else {\n var _index2 = -1;\n\n var _iterator4 = _createForOfIteratorHelper(values),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _value2 = _step4.value;\n\n if ((_value2 = valueof(_value2, ++_index2, values)) != null && (_value2 = +_value2) >= _value2) {\n ++count;\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n\n return count;\n }\n\n function length(array) {\n return array.length | 0;\n }\n\n function empty(length) {\n return !(length > 0);\n }\n\n function arrayify(values) {\n return typeof values !== \"object\" || \"length\" in values ? values : Array.from(values);\n }\n\n function reducer(reduce) {\n return function (values) {\n return reduce.apply(void 0, _toConsumableArray(values));\n };\n }\n\n function cross() {\n for (var _len = arguments.length, values = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n values[_key2] = arguments[_key2];\n }\n\n var reduce = typeof values[values.length - 1] === \"function\" && reducer(values.pop());\n values = values.map(arrayify);\n var lengths = values.map(length);\n var j = values.length - 1;\n var index = new Array(j + 1).fill(0);\n var product = [];\n if (j < 0 || lengths.some(empty)) return product;\n\n while (true) {\n product.push(index.map(function (j, i) {\n return values[i][j];\n }));\n var i = j;\n\n while (++index[i] === lengths[i]) {\n if (i === 0) return reduce ? product.map(reduce) : product;\n index[i--] = 0;\n }\n }\n }\n\n function cumsum(values, valueof) {\n var sum = 0,\n index = 0;\n return Float64Array.from(values, valueof === undefined ? function (v) {\n return sum += +v || 0;\n } : function (v) {\n return sum += +valueof(v, index++, values) || 0;\n });\n }\n\n function descending(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n }\n\n function variance(values, valueof) {\n var count = 0;\n var delta;\n var mean = 0;\n var sum = 0;\n\n if (valueof === undefined) {\n var _iterator5 = _createForOfIteratorHelper(values),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var value = _step5.value;\n\n if (value != null && (value = +value) >= value) {\n delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n } else {\n var _index3 = -1;\n\n var _iterator6 = _createForOfIteratorHelper(values),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var _value3 = _step6.value;\n\n if ((_value3 = valueof(_value3, ++_index3, values)) != null && (_value3 = +_value3) >= _value3) {\n delta = _value3 - mean;\n mean += delta / ++count;\n sum += delta * (_value3 - mean);\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n }\n\n if (count > 1) return sum / (count - 1);\n }\n\n function deviation(values, valueof) {\n var v = variance(values, valueof);\n return v ? Math.sqrt(v) : v;\n }\n\n function extent(values, valueof) {\n var min;\n var max;\n\n if (valueof === undefined) {\n var _iterator7 = _createForOfIteratorHelper(values),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var value = _step7.value;\n\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n } else {\n var _index4 = -1;\n\n var _iterator8 = _createForOfIteratorHelper(values),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var _value4 = _step8.value;\n\n if ((_value4 = valueof(_value4, ++_index4, values)) != null) {\n if (min === undefined) {\n if (_value4 >= _value4) min = max = _value4;\n } else {\n if (min > _value4) min = _value4;\n if (max < _value4) max = _value4;\n }\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n\n return [min, max];\n } // https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\n\n\n var Adder = /*#__PURE__*/function () {\n function Adder() {\n _classCallCheck(this, Adder);\n\n this._partials = new Float64Array(32);\n this._n = 0;\n }\n\n _createClass(Adder, [{\n key: \"add\",\n value: function add(x) {\n var p = this._partials;\n var i = 0;\n\n for (var j = 0; j < this._n && j < 32; j++) {\n var y = p[j],\n hi = x + y,\n lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n if (lo) p[i++] = lo;\n x = hi;\n }\n\n p[i] = x;\n this._n = i + 1;\n return this;\n }\n }, {\n key: \"valueOf\",\n value: function valueOf() {\n var p = this._partials;\n var n = this._n,\n x,\n y,\n lo,\n hi = 0;\n\n if (n > 0) {\n hi = p[--n];\n\n while (n > 0) {\n x = hi;\n y = p[--n];\n hi = x + y;\n lo = y - (hi - x);\n if (lo) break;\n }\n\n if (n > 0 && (lo < 0 && p[n - 1] < 0 || lo > 0 && p[n - 1] > 0)) {\n y = lo * 2;\n x = hi + y;\n if (y == x - hi) hi = x;\n }\n }\n\n return hi;\n }\n }]);\n\n return Adder;\n }();\n\n function fsum(values, valueof) {\n var adder = new Adder();\n\n if (valueof === undefined) {\n var _iterator9 = _createForOfIteratorHelper(values),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var value = _step9.value;\n\n if (value = +value) {\n adder.add(value);\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n } else {\n var _index5 = -1;\n\n var _iterator10 = _createForOfIteratorHelper(values),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var _value5 = _step10.value;\n\n if (_value5 = +valueof(_value5, ++_index5, values)) {\n adder.add(_value5);\n }\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n }\n\n return +adder;\n }\n\n var InternMap = /*#__PURE__*/function (_Map) {\n _inherits(InternMap, _Map);\n\n var _super = _createSuper(InternMap);\n\n function InternMap() {\n var _this;\n\n var entries = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : keyof;\n\n _classCallCheck(this, InternMap);\n\n _this = _super.call(this);\n Object.defineProperties(_assertThisInitialized(_this), {\n _intern: {\n value: new Map()\n },\n _key: {\n value: key\n }\n });\n\n var _iterator11 = _createForOfIteratorHelper(entries),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var _step11$value = _slicedToArray(_step11.value, 2),\n _key3 = _step11$value[0],\n value = _step11$value[1];\n\n _this.set(_key3, value);\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n return _this;\n }\n\n _createClass(InternMap, [{\n key: \"get\",\n value: function get(key) {\n return _get(_getPrototypeOf(InternMap.prototype), \"get\", this).call(this, intern_get(this, key));\n }\n }, {\n key: \"has\",\n value: function has(key) {\n return _get(_getPrototypeOf(InternMap.prototype), \"has\", this).call(this, intern_get(this, key));\n }\n }, {\n key: \"set\",\n value: function set(key, value) {\n return _get(_getPrototypeOf(InternMap.prototype), \"set\", this).call(this, intern_set(this, key), value);\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n return _get(_getPrototypeOf(InternMap.prototype), \"delete\", this).call(this, intern_delete(this, key));\n }\n }]);\n\n return InternMap;\n }( /*#__PURE__*/_wrapNativeSuper(Map));\n\n var InternSet = /*#__PURE__*/function (_Set) {\n _inherits(InternSet, _Set);\n\n var _super2 = _createSuper(InternSet);\n\n function InternSet() {\n var _this2;\n\n var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : keyof;\n\n _classCallCheck(this, InternSet);\n\n _this2 = _super2.call(this);\n Object.defineProperties(_assertThisInitialized(_this2), {\n _intern: {\n value: new Map()\n },\n _key: {\n value: key\n }\n });\n\n var _iterator12 = _createForOfIteratorHelper(values),\n _step12;\n\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var value = _step12.value;\n\n _this2.add(value);\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n\n return _this2;\n }\n\n _createClass(InternSet, [{\n key: \"has\",\n value: function has(value) {\n return _get(_getPrototypeOf(InternSet.prototype), \"has\", this).call(this, intern_get(this, value));\n }\n }, {\n key: \"add\",\n value: function add(value) {\n return _get(_getPrototypeOf(InternSet.prototype), \"add\", this).call(this, intern_set(this, value));\n }\n }, {\n key: \"delete\",\n value: function _delete(value) {\n return _get(_getPrototypeOf(InternSet.prototype), \"delete\", this).call(this, intern_delete(this, value));\n }\n }]);\n\n return InternSet;\n }( /*#__PURE__*/_wrapNativeSuper(Set));\n\n function intern_get(_ref, value) {\n var _intern = _ref._intern,\n _key = _ref._key;\n\n var key = _key(value);\n\n return _intern.has(key) ? _intern.get(key) : value;\n }\n\n function intern_set(_ref2, value) {\n var _intern = _ref2._intern,\n _key = _ref2._key;\n\n var key = _key(value);\n\n if (_intern.has(key)) return _intern.get(key);\n\n _intern.set(key, value);\n\n return value;\n }\n\n function intern_delete(_ref3, value) {\n var _intern = _ref3._intern,\n _key = _ref3._key;\n\n var key = _key(value);\n\n if (_intern.has(key)) {\n value = _intern.get(value);\n\n _intern.delete(key);\n }\n\n return value;\n }\n\n function keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n }\n\n function identity(x) {\n return x;\n }\n\n function group(values) {\n for (var _len2 = arguments.length, keys = new Array(_len2 > 1 ? _len2 - 1 : 0), _key4 = 1; _key4 < _len2; _key4++) {\n keys[_key4 - 1] = arguments[_key4];\n }\n\n return nest(values, identity, identity, keys);\n }\n\n function groups(values) {\n for (var _len3 = arguments.length, keys = new Array(_len3 > 1 ? _len3 - 1 : 0), _key5 = 1; _key5 < _len3; _key5++) {\n keys[_key5 - 1] = arguments[_key5];\n }\n\n return nest(values, Array.from, identity, keys);\n }\n\n function rollup(values, reduce) {\n for (var _len4 = arguments.length, keys = new Array(_len4 > 2 ? _len4 - 2 : 0), _key6 = 2; _key6 < _len4; _key6++) {\n keys[_key6 - 2] = arguments[_key6];\n }\n\n return nest(values, identity, reduce, keys);\n }\n\n function rollups(values, reduce) {\n for (var _len5 = arguments.length, keys = new Array(_len5 > 2 ? _len5 - 2 : 0), _key7 = 2; _key7 < _len5; _key7++) {\n keys[_key7 - 2] = arguments[_key7];\n }\n\n return nest(values, Array.from, reduce, keys);\n }\n\n function index(values) {\n for (var _len6 = arguments.length, keys = new Array(_len6 > 1 ? _len6 - 1 : 0), _key8 = 1; _key8 < _len6; _key8++) {\n keys[_key8 - 1] = arguments[_key8];\n }\n\n return nest(values, identity, unique, keys);\n }\n\n function indexes(values) {\n for (var _len7 = arguments.length, keys = new Array(_len7 > 1 ? _len7 - 1 : 0), _key9 = 1; _key9 < _len7; _key9++) {\n keys[_key9 - 1] = arguments[_key9];\n }\n\n return nest(values, Array.from, unique, keys);\n }\n\n function unique(values) {\n if (values.length !== 1) throw new Error(\"duplicate key\");\n return values[0];\n }\n\n function nest(values, map, reduce, keys) {\n return function regroup(values, i) {\n if (i >= keys.length) return reduce(values);\n var groups = new InternMap();\n var keyof = keys[i++];\n var index = -1;\n\n var _iterator13 = _createForOfIteratorHelper(values),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var value = _step13.value;\n var key = keyof(value, ++index, values);\n\n var _group = groups.get(key);\n\n if (_group) _group.push(value);else groups.set(key, [value]);\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n\n var _iterator14 = _createForOfIteratorHelper(groups),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var _step14$value = _slicedToArray(_step14.value, 2),\n _key10 = _step14$value[0],\n _values = _step14$value[1];\n\n groups.set(_key10, regroup(_values, i));\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n\n return map(groups);\n }(values, 0);\n }\n\n function permute(source, keys) {\n return Array.from(keys, function (key) {\n return source[key];\n });\n }\n\n function sort(values) {\n for (var _len8 = arguments.length, F = new Array(_len8 > 1 ? _len8 - 1 : 0), _key11 = 1; _key11 < _len8; _key11++) {\n F[_key11 - 1] = arguments[_key11];\n }\n\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n\n var _F = F,\n _F2 = _slicedToArray(_F, 1),\n _F2$ = _F2[0],\n f = _F2$ === void 0 ? ascending : _F2$;\n\n if (f.length === 1 || F.length > 1) {\n var _index6 = Uint32Array.from(values, function (d, i) {\n return i;\n });\n\n if (F.length > 1) {\n F = F.map(function (f) {\n return values.map(f);\n });\n\n _index6.sort(function (i, j) {\n var _iterator15 = _createForOfIteratorHelper(F),\n _step15;\n\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var _f = _step15.value;\n var c = ascending(_f[i], _f[j]);\n if (c) return c;\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n });\n } else {\n f = values.map(f);\n\n _index6.sort(function (i, j) {\n return ascending(f[i], f[j]);\n });\n }\n\n return permute(values, _index6);\n }\n\n return values.sort(f);\n }\n\n function groupSort(values, reduce, key) {\n return (reduce.length === 1 ? sort(rollup(values, reduce, key), function (_ref4, _ref5) {\n var _ref6 = _slicedToArray(_ref4, 2),\n ak = _ref6[0],\n av = _ref6[1];\n\n var _ref7 = _slicedToArray(_ref5, 2),\n bk = _ref7[0],\n bv = _ref7[1];\n\n return ascending(av, bv) || ascending(ak, bk);\n }) : sort(group(values, key), function (_ref8, _ref9) {\n var _ref10 = _slicedToArray(_ref8, 2),\n ak = _ref10[0],\n av = _ref10[1];\n\n var _ref11 = _slicedToArray(_ref9, 2),\n bk = _ref11[0],\n bv = _ref11[1];\n\n return reduce(av, bv) || ascending(ak, bk);\n })).map(function (_ref12) {\n var _ref13 = _slicedToArray(_ref12, 1),\n key = _ref13[0];\n\n return key;\n });\n }\n\n var array = Array.prototype;\n var slice = array.slice;\n\n function constant(x) {\n return function () {\n return x;\n };\n }\n\n var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\n function ticks(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n\n while (++i < n) {\n ticks[i] = (start + i) * step;\n }\n } else {\n step = -step;\n start = Math.ceil(start * step);\n stop = Math.floor(stop * step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n\n while (++i < n) {\n ticks[i] = (start + i) / step;\n }\n }\n\n if (reverse) ticks.reverse();\n return ticks;\n }\n\n function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n }\n\n function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n }\n\n function nice(start, stop, count) {\n var prestep;\n\n while (true) {\n var step = tickIncrement(start, stop, count);\n\n if (step === prestep || step === 0 || !isFinite(step)) {\n return [start, stop];\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n }\n\n prestep = step;\n }\n }\n\n function sturges(values) {\n return Math.ceil(Math.log(count(values)) / Math.LN2) + 1;\n }\n\n function bin() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n if (!Array.isArray(data)) data = Array.from(data);\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1); // Convert number of thresholds into uniform thresholds, and nice the\n // default domain accordingly.\n\n if (!Array.isArray(tz)) {\n var _max = x1,\n tn = +tz;\n\n if (domain === extent) {\n var _nice = nice(x0, x1, tn);\n\n var _nice2 = _slicedToArray(_nice, 2);\n\n x0 = _nice2[0];\n x1 = _nice2[1];\n }\n\n tz = ticks(x0, x1, tn); // If the last threshold is coincident with the domain’s upper bound, the\n // last bin will be zero-width. If the default domain is used, and this\n // last threshold is coincident with the maximum input value, we can\n // extend the niced upper bound by one tick to ensure uniform bin widths;\n // otherwise, we simply remove the last threshold. Note that we don’t\n // coerce values or the domain to numbers, and thus must be careful to\n // compare order (>=) rather than strict equality (===)!\n\n if (tz[tz.length - 1] >= x1) {\n if (_max >= x1 && domain === extent) {\n var step = tickIncrement(x0, x1, tn);\n\n if (isFinite(step)) {\n if (step > 0) {\n x1 = (Math.floor(x1 / step) + 1) * step;\n } else if (step < 0) {\n x1 = (Math.ceil(x1 * -step) + 1) / -step;\n }\n }\n } else {\n tz.pop();\n }\n }\n } // Remove any thresholds outside the domain.\n\n\n var m = tz.length;\n\n while (tz[0] <= x0) {\n tz.shift(), --m;\n }\n\n while (tz[m - 1] > x1) {\n tz.pop(), --m;\n }\n\n var bins = new Array(m + 1),\n bin; // Initialize bins.\n\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n } // Assign data to bins by value, ignoring any outside the domain.\n\n\n for (i = 0; i < n; ++i) {\n x = values[i];\n\n if (x0 <= x && x <= x1) {\n bins[bisectRight(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function (_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function (_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function (_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n }\n\n function max(values, valueof) {\n var max;\n\n if (valueof === undefined) {\n var _iterator16 = _createForOfIteratorHelper(values),\n _step16;\n\n try {\n for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n var value = _step16.value;\n\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n }\n } catch (err) {\n _iterator16.e(err);\n } finally {\n _iterator16.f();\n }\n } else {\n var _index7 = -1;\n\n var _iterator17 = _createForOfIteratorHelper(values),\n _step17;\n\n try {\n for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {\n var _value6 = _step17.value;\n\n if ((_value6 = valueof(_value6, ++_index7, values)) != null && (max < _value6 || max === undefined && _value6 >= _value6)) {\n max = _value6;\n }\n }\n } catch (err) {\n _iterator17.e(err);\n } finally {\n _iterator17.f();\n }\n }\n\n return max;\n }\n\n function min(values, valueof) {\n var min;\n\n if (valueof === undefined) {\n var _iterator18 = _createForOfIteratorHelper(values),\n _step18;\n\n try {\n for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {\n var value = _step18.value;\n\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n }\n } catch (err) {\n _iterator18.e(err);\n } finally {\n _iterator18.f();\n }\n } else {\n var _index8 = -1;\n\n var _iterator19 = _createForOfIteratorHelper(values),\n _step19;\n\n try {\n for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {\n var _value7 = _step19.value;\n\n if ((_value7 = valueof(_value7, ++_index8, values)) != null && (min > _value7 || min === undefined && _value7 >= _value7)) {\n min = _value7;\n }\n }\n } catch (err) {\n _iterator19.e(err);\n } finally {\n _iterator19.f();\n }\n }\n\n return min;\n } // Based on https://github.com/mourner/quickselect\n // ISC license, Copyright 2018 Vladimir Agafonkin.\n\n\n function quickselect(array, k) {\n var left = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var right = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : array.length - 1;\n var compare = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : ascending;\n\n while (right > left) {\n if (right - left > 600) {\n var n = right - left + 1;\n var m = k - left + 1;\n var z = Math.log(n);\n var s = 0.5 * Math.exp(2 * z / 3);\n var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n var t = array[k];\n var i = left;\n var j = right;\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n\n while (compare(array[i], t) < 0) {\n ++i;\n }\n\n while (compare(array[j], t) > 0) {\n --j;\n }\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);else ++j, swap(array, j, right);\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n }\n\n function swap(array, i, j) {\n var t = array[i];\n array[i] = array[j];\n array[j] = t;\n }\n\n function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n }\n\n function quantileSorted(values, p) {\n var valueof = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n }\n\n function freedmanDiaconis(values, min, max) {\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(count(values), -1 / 3)));\n }\n\n function scott(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(count(values), -1 / 3)));\n }\n\n function maxIndex(values, valueof) {\n var max;\n var maxIndex = -1;\n var index = -1;\n\n if (valueof === undefined) {\n var _iterator20 = _createForOfIteratorHelper(values),\n _step20;\n\n try {\n for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {\n var value = _step20.value;\n ++index;\n\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value, maxIndex = index;\n }\n }\n } catch (err) {\n _iterator20.e(err);\n } finally {\n _iterator20.f();\n }\n } else {\n var _iterator21 = _createForOfIteratorHelper(values),\n _step21;\n\n try {\n for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {\n var _value8 = _step21.value;\n\n if ((_value8 = valueof(_value8, ++index, values)) != null && (max < _value8 || max === undefined && _value8 >= _value8)) {\n max = _value8, maxIndex = index;\n }\n }\n } catch (err) {\n _iterator21.e(err);\n } finally {\n _iterator21.f();\n }\n }\n\n return maxIndex;\n }\n\n function mean(values, valueof) {\n var count = 0;\n var sum = 0;\n\n if (valueof === undefined) {\n var _iterator22 = _createForOfIteratorHelper(values),\n _step22;\n\n try {\n for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {\n var value = _step22.value;\n\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n }\n } catch (err) {\n _iterator22.e(err);\n } finally {\n _iterator22.f();\n }\n } else {\n var _index9 = -1;\n\n var _iterator23 = _createForOfIteratorHelper(values),\n _step23;\n\n try {\n for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {\n var _value9 = _step23.value;\n\n if ((_value9 = valueof(_value9, ++_index9, values)) != null && (_value9 = +_value9) >= _value9) {\n ++count, sum += _value9;\n }\n }\n } catch (err) {\n _iterator23.e(err);\n } finally {\n _iterator23.f();\n }\n }\n\n if (count) return sum / count;\n }\n\n function median(values, valueof) {\n return quantile(values, 0.5, valueof);\n }\n\n function flatten(arrays) {\n var _iterator24, _step24, _array;\n\n return _regeneratorRuntime.wrap(function flatten$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _iterator24 = _createForOfIteratorHelper(arrays);\n _context2.prev = 1;\n\n _iterator24.s();\n\n case 3:\n if ((_step24 = _iterator24.n()).done) {\n _context2.next = 8;\n break;\n }\n\n _array = _step24.value;\n return _context2.delegateYield(_array, \"t0\", 6);\n\n case 6:\n _context2.next = 3;\n break;\n\n case 8:\n _context2.next = 13;\n break;\n\n case 10:\n _context2.prev = 10;\n _context2.t1 = _context2[\"catch\"](1);\n\n _iterator24.e(_context2.t1);\n\n case 13:\n _context2.prev = 13;\n\n _iterator24.f();\n\n return _context2.finish(13);\n\n case 16:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _marked2, null, [[1, 10, 13, 16]]);\n }\n\n function merge(arrays) {\n return Array.from(flatten(arrays));\n }\n\n function minIndex(values, valueof) {\n var min;\n var minIndex = -1;\n var index = -1;\n\n if (valueof === undefined) {\n var _iterator25 = _createForOfIteratorHelper(values),\n _step25;\n\n try {\n for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {\n var value = _step25.value;\n ++index;\n\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value, minIndex = index;\n }\n }\n } catch (err) {\n _iterator25.e(err);\n } finally {\n _iterator25.f();\n }\n } else {\n var _iterator26 = _createForOfIteratorHelper(values),\n _step26;\n\n try {\n for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {\n var _value10 = _step26.value;\n\n if ((_value10 = valueof(_value10, ++index, values)) != null && (min > _value10 || min === undefined && _value10 >= _value10)) {\n min = _value10, minIndex = index;\n }\n }\n } catch (err) {\n _iterator26.e(err);\n } finally {\n _iterator26.f();\n }\n }\n\n return minIndex;\n }\n\n function pairs(values) {\n var pairof = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : pair;\n var pairs = [];\n var previous;\n var first = false;\n\n var _iterator27 = _createForOfIteratorHelper(values),\n _step27;\n\n try {\n for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {\n var value = _step27.value;\n if (first) pairs.push(pairof(previous, value));\n previous = value;\n first = true;\n }\n } catch (err) {\n _iterator27.e(err);\n } finally {\n _iterator27.f();\n }\n\n return pairs;\n }\n\n function pair(a, b) {\n return [a, b];\n }\n\n function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n }\n\n function least(values) {\n var compare = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ascending;\n var min;\n var defined = false;\n\n if (compare.length === 1) {\n var minValue;\n\n var _iterator28 = _createForOfIteratorHelper(values),\n _step28;\n\n try {\n for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) {\n var element = _step28.value;\n var value = compare(element);\n\n if (defined ? ascending(value, minValue) < 0 : ascending(value, value) === 0) {\n min = element;\n minValue = value;\n defined = true;\n }\n }\n } catch (err) {\n _iterator28.e(err);\n } finally {\n _iterator28.f();\n }\n } else {\n var _iterator29 = _createForOfIteratorHelper(values),\n _step29;\n\n try {\n for (_iterator29.s(); !(_step29 = _iterator29.n()).done;) {\n var _value11 = _step29.value;\n\n if (defined ? compare(_value11, min) < 0 : compare(_value11, _value11) === 0) {\n min = _value11;\n defined = true;\n }\n }\n } catch (err) {\n _iterator29.e(err);\n } finally {\n _iterator29.f();\n }\n }\n\n return min;\n }\n\n function leastIndex(values) {\n var compare = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ascending;\n if (compare.length === 1) return minIndex(values, compare);\n var minValue;\n var min = -1;\n var index = -1;\n\n var _iterator30 = _createForOfIteratorHelper(values),\n _step30;\n\n try {\n for (_iterator30.s(); !(_step30 = _iterator30.n()).done;) {\n var value = _step30.value;\n ++index;\n\n if (min < 0 ? compare(value, value) === 0 : compare(value, minValue) < 0) {\n minValue = value;\n min = index;\n }\n }\n } catch (err) {\n _iterator30.e(err);\n } finally {\n _iterator30.f();\n }\n\n return min;\n }\n\n function greatest(values) {\n var compare = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ascending;\n var max;\n var defined = false;\n\n if (compare.length === 1) {\n var maxValue;\n\n var _iterator31 = _createForOfIteratorHelper(values),\n _step31;\n\n try {\n for (_iterator31.s(); !(_step31 = _iterator31.n()).done;) {\n var element = _step31.value;\n var value = compare(element);\n\n if (defined ? ascending(value, maxValue) > 0 : ascending(value, value) === 0) {\n max = element;\n maxValue = value;\n defined = true;\n }\n }\n } catch (err) {\n _iterator31.e(err);\n } finally {\n _iterator31.f();\n }\n } else {\n var _iterator32 = _createForOfIteratorHelper(values),\n _step32;\n\n try {\n for (_iterator32.s(); !(_step32 = _iterator32.n()).done;) {\n var _value12 = _step32.value;\n\n if (defined ? compare(_value12, max) > 0 : compare(_value12, _value12) === 0) {\n max = _value12;\n defined = true;\n }\n }\n } catch (err) {\n _iterator32.e(err);\n } finally {\n _iterator32.f();\n }\n }\n\n return max;\n }\n\n function greatestIndex(values) {\n var compare = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ascending;\n if (compare.length === 1) return maxIndex(values, compare);\n var maxValue;\n var max = -1;\n var index = -1;\n\n var _iterator33 = _createForOfIteratorHelper(values),\n _step33;\n\n try {\n for (_iterator33.s(); !(_step33 = _iterator33.n()).done;) {\n var value = _step33.value;\n ++index;\n\n if (max < 0 ? compare(value, value) === 0 : compare(value, maxValue) > 0) {\n maxValue = value;\n max = index;\n }\n }\n } catch (err) {\n _iterator33.e(err);\n } finally {\n _iterator33.f();\n }\n\n return max;\n }\n\n function scan(values, compare) {\n var index = leastIndex(values, compare);\n return index < 0 ? undefined : index;\n }\n\n var shuffle = shuffler(Math.random);\n\n function shuffler(random) {\n return function shuffle(array) {\n var i0 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var i1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : array.length;\n var m = i1 - (i0 = +i0);\n\n while (m) {\n var i = random() * m-- | 0,\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n };\n }\n\n function sum(values, valueof) {\n var sum = 0;\n\n if (valueof === undefined) {\n var _iterator34 = _createForOfIteratorHelper(values),\n _step34;\n\n try {\n for (_iterator34.s(); !(_step34 = _iterator34.n()).done;) {\n var value = _step34.value;\n\n if (value = +value) {\n sum += value;\n }\n }\n } catch (err) {\n _iterator34.e(err);\n } finally {\n _iterator34.f();\n }\n } else {\n var _index10 = -1;\n\n var _iterator35 = _createForOfIteratorHelper(values),\n _step35;\n\n try {\n for (_iterator35.s(); !(_step35 = _iterator35.n()).done;) {\n var _value13 = _step35.value;\n\n if (_value13 = +valueof(_value13, ++_index10, values)) {\n sum += _value13;\n }\n }\n } catch (err) {\n _iterator35.e(err);\n } finally {\n _iterator35.f();\n }\n }\n\n return sum;\n }\n\n function transpose(matrix) {\n if (!(n = matrix.length)) return [];\n\n for (var i = -1, m = min(matrix, length$1), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n\n return transpose;\n }\n\n function length$1(d) {\n return d.length;\n }\n\n function zip() {\n return transpose(arguments);\n }\n\n function every(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n var index = -1;\n\n var _iterator36 = _createForOfIteratorHelper(values),\n _step36;\n\n try {\n for (_iterator36.s(); !(_step36 = _iterator36.n()).done;) {\n var value = _step36.value;\n\n if (!test(value, ++index, values)) {\n return false;\n }\n }\n } catch (err) {\n _iterator36.e(err);\n } finally {\n _iterator36.f();\n }\n\n return true;\n }\n\n function some(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n var index = -1;\n\n var _iterator37 = _createForOfIteratorHelper(values),\n _step37;\n\n try {\n for (_iterator37.s(); !(_step37 = _iterator37.n()).done;) {\n var value = _step37.value;\n\n if (test(value, ++index, values)) {\n return true;\n }\n }\n } catch (err) {\n _iterator37.e(err);\n } finally {\n _iterator37.f();\n }\n\n return false;\n }\n\n function filter(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n var array = [];\n var index = -1;\n\n var _iterator38 = _createForOfIteratorHelper(values),\n _step38;\n\n try {\n for (_iterator38.s(); !(_step38 = _iterator38.n()).done;) {\n var value = _step38.value;\n\n if (test(value, ++index, values)) {\n array.push(value);\n }\n }\n } catch (err) {\n _iterator38.e(err);\n } finally {\n _iterator38.f();\n }\n\n return array;\n }\n\n function map(values, mapper) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n if (typeof mapper !== \"function\") throw new TypeError(\"mapper is not a function\");\n return Array.from(values, function (value, index) {\n return mapper(value, index, values);\n });\n }\n\n function reduce(values, reducer, value) {\n if (typeof reducer !== \"function\") throw new TypeError(\"reducer is not a function\");\n var iterator = values[Symbol.iterator]();\n var done,\n next,\n index = -1;\n\n if (arguments.length < 3) {\n var _iterator$next = iterator.next();\n\n done = _iterator$next.done;\n value = _iterator$next.value;\n if (done) return;\n ++index;\n }\n\n while ((_iterator$next2 = iterator.next(), done = _iterator$next2.done, next = _iterator$next2.value, _iterator$next2), !done) {\n var _iterator$next2;\n\n value = reducer(value, next, ++index, values);\n }\n\n return value;\n }\n\n function reverse(values) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n return Array.from(values).reverse();\n }\n\n function difference(values) {\n values = new Set(values);\n\n for (var _len9 = arguments.length, others = new Array(_len9 > 1 ? _len9 - 1 : 0), _key12 = 1; _key12 < _len9; _key12++) {\n others[_key12 - 1] = arguments[_key12];\n }\n\n for (var _i = 0, _others = others; _i < _others.length; _i++) {\n var other = _others[_i];\n\n var _iterator39 = _createForOfIteratorHelper(other),\n _step39;\n\n try {\n for (_iterator39.s(); !(_step39 = _iterator39.n()).done;) {\n var value = _step39.value;\n values.delete(value);\n }\n } catch (err) {\n _iterator39.e(err);\n } finally {\n _iterator39.f();\n }\n }\n\n return values;\n }\n\n function disjoint(values, other) {\n var iterator = other[Symbol.iterator](),\n set = new Set();\n\n var _iterator40 = _createForOfIteratorHelper(values),\n _step40;\n\n try {\n for (_iterator40.s(); !(_step40 = _iterator40.n()).done;) {\n var v = _step40.value;\n if (set.has(v)) return false;\n var value = void 0,\n done = void 0;\n\n while (_iterator$next3 = iterator.next(), value = _iterator$next3.value, done = _iterator$next3.done, _iterator$next3) {\n var _iterator$next3;\n\n if (done) break;\n if (Object.is(v, value)) return false;\n set.add(value);\n }\n }\n } catch (err) {\n _iterator40.e(err);\n } finally {\n _iterator40.f();\n }\n\n return true;\n }\n\n function set(values) {\n return values instanceof Set ? values : new Set(values);\n }\n\n function intersection(values) {\n for (var _len10 = arguments.length, others = new Array(_len10 > 1 ? _len10 - 1 : 0), _key13 = 1; _key13 < _len10; _key13++) {\n others[_key13 - 1] = arguments[_key13];\n }\n\n values = new Set(values);\n others = others.map(set);\n\n var _iterator41 = _createForOfIteratorHelper(values),\n _step41;\n\n try {\n out: for (_iterator41.s(); !(_step41 = _iterator41.n()).done;) {\n var value = _step41.value;\n\n var _iterator42 = _createForOfIteratorHelper(others),\n _step42;\n\n try {\n for (_iterator42.s(); !(_step42 = _iterator42.n()).done;) {\n var other = _step42.value;\n\n if (!other.has(value)) {\n values.delete(value);\n continue out;\n }\n }\n } catch (err) {\n _iterator42.e(err);\n } finally {\n _iterator42.f();\n }\n }\n } catch (err) {\n _iterator41.e(err);\n } finally {\n _iterator41.f();\n }\n\n return values;\n }\n\n function superset(values, other) {\n var iterator = values[Symbol.iterator](),\n set = new Set();\n\n var _iterator43 = _createForOfIteratorHelper(other),\n _step43;\n\n try {\n for (_iterator43.s(); !(_step43 = _iterator43.n()).done;) {\n var o = _step43.value;\n if (set.has(o)) continue;\n var value = void 0,\n done = void 0;\n\n while (_iterator$next4 = iterator.next(), value = _iterator$next4.value, done = _iterator$next4.done, _iterator$next4) {\n var _iterator$next4;\n\n if (done) return false;\n set.add(value);\n if (Object.is(o, value)) break;\n }\n }\n } catch (err) {\n _iterator43.e(err);\n } finally {\n _iterator43.f();\n }\n\n return true;\n }\n\n function subset(values, other) {\n return superset(other, values);\n }\n\n function union() {\n var set = new Set();\n\n for (var _len11 = arguments.length, others = new Array(_len11), _key14 = 0; _key14 < _len11; _key14++) {\n others[_key14] = arguments[_key14];\n }\n\n for (var _i2 = 0, _others2 = others; _i2 < _others2.length; _i2++) {\n var other = _others2[_i2];\n\n var _iterator44 = _createForOfIteratorHelper(other),\n _step44;\n\n try {\n for (_iterator44.s(); !(_step44 = _iterator44.n()).done;) {\n var o = _step44.value;\n set.add(o);\n }\n } catch (err) {\n _iterator44.e(err);\n } finally {\n _iterator44.f();\n }\n }\n\n return set;\n }\n\n exports.Adder = Adder;\n exports.InternMap = InternMap;\n exports.InternSet = InternSet;\n exports.ascending = ascending;\n exports.bin = bin;\n exports.bisect = bisectRight;\n exports.bisectCenter = bisectCenter;\n exports.bisectLeft = bisectLeft;\n exports.bisectRight = bisectRight;\n exports.bisector = bisector;\n exports.count = count;\n exports.cross = cross;\n exports.cumsum = cumsum;\n exports.descending = descending;\n exports.deviation = deviation;\n exports.difference = difference;\n exports.disjoint = disjoint;\n exports.every = every;\n exports.extent = extent;\n exports.filter = filter;\n exports.fsum = fsum;\n exports.greatest = greatest;\n exports.greatestIndex = greatestIndex;\n exports.group = group;\n exports.groupSort = groupSort;\n exports.groups = groups;\n exports.histogram = bin;\n exports.index = index;\n exports.indexes = indexes;\n exports.intersection = intersection;\n exports.least = least;\n exports.leastIndex = leastIndex;\n exports.map = map;\n exports.max = max;\n exports.maxIndex = maxIndex;\n exports.mean = mean;\n exports.median = median;\n exports.merge = merge;\n exports.min = min;\n exports.minIndex = minIndex;\n exports.nice = nice;\n exports.pairs = pairs;\n exports.permute = permute;\n exports.quantile = quantile;\n exports.quantileSorted = quantileSorted;\n exports.quickselect = quickselect;\n exports.range = range;\n exports.reduce = reduce;\n exports.reverse = reverse;\n exports.rollup = rollup;\n exports.rollups = rollups;\n exports.scan = scan;\n exports.shuffle = shuffle;\n exports.shuffler = shuffler;\n exports.some = some;\n exports.sort = sort;\n exports.subset = subset;\n exports.sum = sum;\n exports.superset = superset;\n exports.thresholdFreedmanDiaconis = freedmanDiaconis;\n exports.thresholdScott = scott;\n exports.thresholdSturges = sturges;\n exports.tickIncrement = tickIncrement;\n exports.tickStep = tickStep;\n exports.ticks = ticks;\n exports.transpose = transpose;\n exports.union = union;\n exports.variance = variance;\n exports.zip = zip;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});","module.exports = require('./lib/static/prefixAll');","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');\n/* Some high number, usually 9-digit base-10. Map it to base-😎 */\n\nvar generateAlphabeticName = function generateAlphabeticName(code) {\n var lastDigit = chars[code % chars.length];\n return code > chars.length ? '' + generateAlphabeticName(Math.floor(code / chars.length)) + lastDigit : lastDigit;\n};\n\nexports.default = generateAlphabeticName;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = stringify;\n\nvar _stringifier = require('./stringifier');\n\nvar _stringifier2 = _interopRequireDefault(_stringifier);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction stringify(node, builder) {\n var str = new _stringifier2.default(builder);\n str.stringify(node);\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flex;\nvar values = {\n flex: true,\n 'inline-flex': true\n};\n\nfunction flex(property, value) {\n if (property === 'display' && values[value]) {\n return {\n display: ['-webkit-box', '-moz-box', '-ms-' + value + 'box', '-webkit-' + value, value]\n };\n }\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};\n\nrequire('./rule');\n\nvar _container = require('./container');\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _lazyResult = require('./lazy-result');\n\nvar _lazyResult2 = _interopRequireDefault(_lazyResult);\n\nvar _processor = require('./processor');\n\nvar _processor2 = _interopRequireDefault(_processor);\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // break cyclical dependency deadlock – #87\n\n/**\n * Represents a CSS file and contains all its parsed nodes.\n *\n * @extends Container\n *\n * @example\n * const root = postcss.parse('a{color:black} b{z-index:2}');\n * root.type //=> 'root'\n * root.nodes.length //=> 2\n */\n\n\nvar Root = function (_Container) {\n _inherits(Root, _Container);\n\n function Root(defaults) {\n _classCallCheck(this, Root);\n\n var _this = _possibleConstructorReturn(this, (Root.__proto__ || Object.getPrototypeOf(Root)).call(this, defaults));\n\n _this.type = 'root';\n if (!_this.nodes) _this.nodes = [];\n return _this;\n }\n\n _createClass(Root, [{\n key: 'removeChild',\n value: function removeChild(child) {\n child = this.index(child);\n\n if (child === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[child].raws.before;\n }\n\n return _get(Root.prototype.__proto__ || Object.getPrototypeOf(Root.prototype), 'removeChild', this).call(this, child);\n }\n }, {\n key: 'normalize',\n value: function normalize(child, sample, type) {\n var nodes = _get(Root.prototype.__proto__ || Object.getPrototypeOf(Root.prototype), 'normalize', this).call(this, child);\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n nodes.forEach(function (node) {\n node.raws.before = sample.raws.before;\n });\n }\n }\n\n return nodes;\n }\n /**\n * Returns a {@link Result} instance representing the root’s CSS.\n *\n * @param {processOptions} [opts] - options with only `to` and `map` keys\n *\n * @return {Result} result with current root’s CSS\n *\n * @example\n * const root1 = postcss.parse(css1, { from: 'a.css' });\n * const root2 = postcss.parse(css2, { from: 'b.css' });\n * root1.append(root2);\n * const result = root1.toResult({ to: 'all.css', map: true });\n */\n\n }, {\n key: 'toResult',\n value: function toResult() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var lazy = new _lazyResult2.default(new _processor2.default(), this, opts);\n return lazy.stringify();\n }\n }, {\n key: 'remove',\n value: function remove(child) {\n (0, _warnOnce2.default)('Root#remove is deprecated. Use Root#removeChild');\n this.removeChild(child);\n }\n }, {\n key: 'prevMap',\n value: function prevMap() {\n (0, _warnOnce2.default)('Root#prevMap is deprecated. Use Root#source.input.map');\n return this.source.input.map;\n }\n /**\n * @memberof Root#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `after`: the space symbols after the last child to the end of file.\n * * `semicolon`: is the last child has an (optional) semicolon.\n *\n * @example\n * postcss.parse('a {}\\n').raws //=> { after: '\\n' }\n * postcss.parse('a {}').raws //=> { after: '' }\n */\n\n }]);\n\n return Root;\n}(_container2.default);\n\nexports.default = Root;\nmodule.exports = exports['default'];","'use strict';\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = transition;\n\nvar _hyphenateStyleName = require('hyphenate-style-name');\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nvar _capitalizeString = require('../../utils/capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nvar _isPrefixedValue = require('../../utils/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nvar _prefixProps = require('../prefixProps');\n\nvar _prefixProps2 = _interopRequireDefault(_prefixProps);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true\n};\n\nfunction transition(property, value) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties[property]) {\n var _ref2;\n\n var outputValue = prefixValue(value);\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (value) {\n return value.match(/-moz-|-ms-/) === null;\n }).join(','); // if the property is already prefixed\n\n if (property.indexOf('Webkit') > -1) {\n return _defineProperty({}, property, webkitOutput);\n }\n\n return _ref2 = {}, _defineProperty(_ref2, 'Webkit' + (0, _capitalizeString2.default)(property), webkitOutput), _defineProperty(_ref2, property, outputValue), _ref2;\n }\n}\n\nfunction prefixValue(value) {\n if ((0, _isPrefixedValue2.default)(value)) {\n return value;\n } // only split multi values, not cubic beziers\n\n\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g); // iterate each single value and check for transitioned properties\n // that need to be prefixed as well\n\n multipleValues.forEach(function (val, index) {\n multipleValues[index] = Object.keys(_prefixProps2.default).reduce(function (out, prefix) {\n var dashCasePrefix = '-' + prefix.toLowerCase() + '-';\n Object.keys(_prefixProps2.default[prefix]).forEach(function (prop) {\n var dashCaseProperty = (0, _hyphenateStyleName2.default)(prop);\n\n if (val.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n // join all prefixes and create a new value\n out = val.replace(dashCaseProperty, dashCasePrefix + dashCaseProperty) + ',' + out;\n }\n });\n return out;\n }, val);\n });\n return multipleValues.join(',');\n}\n\nmodule.exports = exports['default'];","// https://d3js.org/d3-time-format/ v3.0.0 Copyright 2020 Mike Bostock\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-time')) : typeof define === 'function' && define.amd ? define(['exports', 'd3-time'], factory) : (global = global || self, factory(global.d3 = global.d3 || {}, global.d3));\n})(this, function (exports, d3Time) {\n 'use strict';\n\n function localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n }\n\n function utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n }\n\n function newDate(y, m, d) {\n return {\n y: y,\n m: m,\n d: d,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\n }\n\n function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n }; // These recursive directive definitions must be deferred.\n\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function (date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function (string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week,\n day;\n if (i != string.length) return null; // If a UNIX timestamp is specified, return it.\n\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0)); // If this is utcParse, never use the local timezone.\n\n if (Z && !(\"Z\" in d)) d.Z = 0; // The am-pm flag is 0 for AM, and 1 for PM.\n\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12; // If the month was not specified, inherit from the quarter.\n\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0; // Convert day-of-week and week-of-year to day-of-year.\n\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? d3Time.utcMonday.ceil(week) : d3Time.utcMonday(week);\n week = d3Time.utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? d3Time.timeMonday.ceil(week) : d3Time.timeMonday(week);\n week = d3Time.timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n } // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n\n\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n } // Otherwise, all fields are in local time.\n\n\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || (j = parse(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function format(specifier) {\n var f = newFormat(specifier += \"\", formats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n parse: function parse(specifier) {\n var p = newParse(specifier += \"\", false);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n },\n utcFormat: function utcFormat(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n utcParse: function utcParse(specifier) {\n var p = newParse(specifier += \"\", true);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n }\n };\n }\n\n var pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n },\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\n function pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n }\n\n function requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n }\n\n function formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n }\n\n function formatLookup(names) {\n return new Map(names.map(function (name, i) {\n return [name.toLowerCase(), i];\n }));\n }\n\n function parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n }\n\n function parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n }\n\n function parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n }\n\n function parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n }\n\n function parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n }\n\n function parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n }\n\n function parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n }\n\n function parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n }\n\n function parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n }\n\n function parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n }\n\n function parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n }\n\n function parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n }\n\n function parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n }\n\n function parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n }\n\n function parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n }\n\n function parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n }\n\n function parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n }\n\n function parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n }\n\n function parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n }\n\n function parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n }\n\n function formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n }\n\n function formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n }\n\n function formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n }\n\n function formatDayOfYear(d, p) {\n return pad(1 + d3Time.timeDay.count(d3Time.timeYear(d), d), p, 3);\n }\n\n function formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n }\n\n function formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n }\n\n function formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n }\n\n function formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n }\n\n function formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n }\n\n function formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n }\n\n function formatWeekNumberSunday(d, p) {\n return pad(d3Time.timeSunday.count(d3Time.timeYear(d) - 1, d), p, 2);\n }\n\n function dISO(d) {\n var day = d.getDay();\n return day >= 4 || day === 0 ? d3Time.timeThursday(d) : d3Time.timeThursday.ceil(d);\n }\n\n function formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(d3Time.timeThursday.count(d3Time.timeYear(d), d) + (d3Time.timeYear(d).getDay() === 4), p, 2);\n }\n\n function formatWeekdayNumberSunday(d) {\n return d.getDay();\n }\n\n function formatWeekNumberMonday(d, p) {\n return pad(d3Time.timeMonday.count(d3Time.timeYear(d) - 1, d), p, 2);\n }\n\n function formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n }\n\n function formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n }\n\n function formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n }\n\n function formatFullYearISO(d, p) {\n var day = d.getDay();\n d = day >= 4 || day === 0 ? d3Time.timeThursday(d) : d3Time.timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n }\n\n function formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n }\n\n function formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n }\n\n function formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n }\n\n function formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n }\n\n function formatUTCDayOfYear(d, p) {\n return pad(1 + d3Time.utcDay.count(d3Time.utcYear(d), d), p, 3);\n }\n\n function formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n }\n\n function formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n }\n\n function formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n }\n\n function formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n }\n\n function formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n }\n\n function formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n }\n\n function formatUTCWeekNumberSunday(d, p) {\n return pad(d3Time.utcSunday.count(d3Time.utcYear(d) - 1, d), p, 2);\n }\n\n function UTCdISO(d) {\n var day = d.getUTCDay();\n return day >= 4 || day === 0 ? d3Time.utcThursday(d) : d3Time.utcThursday.ceil(d);\n }\n\n function formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(d3Time.utcThursday.count(d3Time.utcYear(d), d) + (d3Time.utcYear(d).getUTCDay() === 4), p, 2);\n }\n\n function formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n }\n\n function formatUTCWeekNumberMonday(d, p) {\n return pad(d3Time.utcMonday.count(d3Time.utcYear(d) - 1, d), p, 2);\n }\n\n function formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n }\n\n function formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n }\n\n function formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n }\n\n function formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = day >= 4 || day === 0 ? d3Time.utcThursday(d) : d3Time.utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n }\n\n function formatUTCZone() {\n return \"+0000\";\n }\n\n function formatLiteralPercent() {\n return \"%\";\n }\n\n function formatUnixTimestamp(d) {\n return +d;\n }\n\n function formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n }\n\n var locale;\n defaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n });\n\n function defaultLocale(definition) {\n locale = formatLocale(definition);\n exports.timeFormat = locale.format;\n exports.timeParse = locale.parse;\n exports.utcFormat = locale.utcFormat;\n exports.utcParse = locale.utcParse;\n return locale;\n }\n\n var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\n function formatIsoNative(date) {\n return date.toISOString();\n }\n\n var formatIso = Date.prototype.toISOString ? formatIsoNative : exports.utcFormat(isoSpecifier);\n\n function parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n }\n\n var parseIso = +new Date(\"2000-01-01T00:00:00.000Z\") ? parseIsoNative : exports.utcParse(isoSpecifier);\n exports.isoFormat = formatIso;\n exports.isoParse = parseIso;\n exports.timeFormatDefaultLocale = defaultLocale;\n exports.timeFormatLocale = formatLocale;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});","'use strict';\n\nmodule.exports = false;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _css = require('./css');\n\nvar _css2 = _interopRequireDefault(_css);\n\nvar _domElements = require('../utils/domElements');\n\nvar _domElements2 = _interopRequireDefault(_domElements);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar babelPluginFlowReactPropTypes_proptype_Target = require('../types').babelPluginFlowReactPropTypes_proptype_Target || require('prop-types').any;\n\nvar babelPluginFlowReactPropTypes_proptype_Interpolation = require('../types').babelPluginFlowReactPropTypes_proptype_Interpolation || require('prop-types').any;\n\nexports.default = function (styledComponent) {\n var styled = function styled(tag) {\n return function (strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n return styledComponent(tag, _css2.default.apply(undefined, [strings].concat(interpolations)));\n };\n }; // Shorthands for all valid HTML Elements\n\n\n _domElements2.default.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n });\n\n return styled;\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _tokenize = require('./tokenize');\n\nvar _tokenize2 = _interopRequireDefault(_tokenize);\n\nvar _input = require('./input');\n\nvar _input2 = _interopRequireDefault(_input);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar HIGHLIGHT_THEME = {\n 'brackets': [36, 39],\n // cyan\n 'string': [31, 39],\n // red\n 'at-word': [31, 39],\n // red\n 'comment': [90, 39],\n // gray\n '{': [32, 39],\n // green\n '}': [32, 39],\n // green\n ':': [1, 22],\n // bold\n ';': [1, 22],\n // bold\n '(': [1, 22],\n // bold\n ')': [1, 22] // bold\n\n};\n\nfunction code(color) {\n return '\\x1B[' + color + 'm';\n}\n\nfunction terminalHighlight(css) {\n var tokens = (0, _tokenize2.default)(new _input2.default(css), {\n ignoreErrors: true\n });\n var result = [];\n tokens.forEach(function (token) {\n var color = HIGHLIGHT_THEME[token[0]];\n\n if (color) {\n result.push(token[1].split(/\\r?\\n/).map(function (i) {\n return code(color[0]) + i + code(color[1]);\n }).join('\\n'));\n } else {\n result.push(token[1]);\n }\n });\n return result.join('');\n}\n\nexports.default = terminalHighlight;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Contains helpers for safely splitting lists of CSS values,\n * preserving parentheses and quotes.\n *\n * @example\n * const list = postcss.list;\n *\n * @namespace list\n */\n\nvar list = {\n split: function split(string, separators, last) {\n var array = [];\n var current = '';\n var split = false;\n var func = 0;\n var quote = false;\n var escape = false;\n\n for (var i = 0; i < string.length; i++) {\n var letter = string[i];\n\n if (quote) {\n if (escape) {\n escape = false;\n } else if (letter === '\\\\') {\n escape = true;\n } else if (letter === quote) {\n quote = false;\n }\n } else if (letter === '\"' || letter === '\\'') {\n quote = letter;\n } else if (letter === '(') {\n func += 1;\n } else if (letter === ')') {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.indexOf(letter) !== -1) split = true;\n }\n\n if (split) {\n if (current !== '') array.push(current.trim());\n current = '';\n split = false;\n } else {\n current += letter;\n }\n }\n\n if (last || current !== '') array.push(current.trim());\n return array;\n },\n\n /**\n * Safely splits space-separated values (such as those for `background`,\n * `border-radius`, and other shorthand properties).\n *\n * @param {string} string - space-separated values\n *\n * @return {string[]} splitted values\n *\n * @example\n * postcss.list.space('1px calc(10% + 1px)') //=> ['1px', 'calc(10% + 1px)']\n */\n space: function space(string) {\n var spaces = [' ', '\\n', '\\t'];\n return list.split(string, spaces);\n },\n\n /**\n * Safely splits comma-separated values (such as those for `transition-*`\n * and `background` properties).\n *\n * @param {string} string - comma-separated values\n *\n * @return {string[]} splitted values\n *\n * @example\n * postcss.list.comma('black, linear-gradient(white, black)')\n * //=> ['black', 'linear-gradient(white, black)']\n */\n comma: function comma(string) {\n var comma = ',';\n return list.split(string, [comma], true);\n }\n};\nexports.default = list;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _tokenize2 = require('../postcss/tokenize');\n\nvar _tokenize3 = _interopRequireDefault(_tokenize2);\n\nvar _comment = require('../postcss/comment');\n\nvar _comment2 = _interopRequireDefault(_comment);\n\nvar _parser = require('../postcss/parser');\n\nvar _parser2 = _interopRequireDefault(_parser);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar SafeParser = function (_Parser) {\n _inherits(SafeParser, _Parser);\n\n function SafeParser() {\n _classCallCheck(this, SafeParser);\n\n return _possibleConstructorReturn(this, (SafeParser.__proto__ || Object.getPrototypeOf(SafeParser)).apply(this, arguments));\n }\n\n _createClass(SafeParser, [{\n key: 'tokenize',\n value: function tokenize() {\n this.tokens = (0, _tokenize3.default)(this.input, {\n ignoreErrors: true\n });\n }\n }, {\n key: 'comment',\n value: function comment(token) {\n var node = new _comment2.default();\n this.init(node, token[2], token[3]);\n node.source.end = {\n line: token[4],\n column: token[5]\n };\n var text = token[1].slice(2);\n if (text.slice(-2) === '*/') text = text.slice(0, -2);\n\n if (/^\\s*$/.test(text)) {\n node.text = '';\n node.raws.left = text;\n node.raws.right = '';\n } else {\n var match = text.match(/^(\\s*)([^]*[^\\s])(\\s*)$/);\n node.text = match[2];\n node.raws.left = match[1];\n node.raws.right = match[3];\n }\n }\n }, {\n key: 'unclosedBracket',\n value: function unclosedBracket() {}\n }, {\n key: 'unknownWord',\n value: function unknownWord(start) {\n var buffer = this.tokens.slice(start, this.pos + 1);\n this.spaces += buffer.map(function (i) {\n return i[1];\n }).join('');\n }\n }, {\n key: 'unexpectedClose',\n value: function unexpectedClose() {\n this.current.raws.after += '}';\n }\n }, {\n key: 'doubleColon',\n value: function doubleColon() {}\n }, {\n key: 'unnamedAtrule',\n value: function unnamedAtrule(node) {\n node.name = '';\n }\n }, {\n key: 'precheckMissedSemicolon',\n value: function precheckMissedSemicolon(tokens) {\n var colon = this.colon(tokens);\n if (colon === false) return;\n var split = void 0;\n\n for (split = colon - 1; split >= 0; split--) {\n if (tokens[split][0] === 'word') break;\n }\n\n for (split -= 1; split >= 0; split--) {\n if (tokens[split][0] !== 'space') {\n split += 1;\n break;\n }\n }\n\n var other = tokens.splice(split, tokens.length - split);\n this.decl(other);\n }\n }, {\n key: 'checkMissedSemicolon',\n value: function checkMissedSemicolon() {}\n }, {\n key: 'endFile',\n value: function endFile() {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces;\n\n while (this.current.parent) {\n this.current = this.current.parent;\n this.current.raws.after = '';\n }\n }\n }]);\n\n return SafeParser;\n}(_parser2.default);\n\nexports.default = SafeParser;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _hash = require('../vendor/glamor/hash');\n\nvar _hash2 = _interopRequireDefault(_hash);\n\nvar _flatten = require('../utils/flatten');\n\nvar _flatten2 = _interopRequireDefault(_flatten);\n\nvar _parse = require('../vendor/postcss-safe-parser/parse');\n\nvar _parse2 = _interopRequireDefault(_parse);\n\nvar _postcssNested = require('../vendor/postcss-nested');\n\nvar _postcssNested2 = _interopRequireDefault(_postcssNested);\n\nvar _autoprefix = require('../utils/autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _StyleSheet = require('./StyleSheet');\n\nvar _StyleSheet2 = _interopRequireDefault(_StyleSheet);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar babelPluginFlowReactPropTypes_proptype_GlamorInsertedRule = require('../types').babelPluginFlowReactPropTypes_proptype_GlamorInsertedRule || require('prop-types').any;\n\nvar babelPluginFlowReactPropTypes_proptype_NameGenerator = require('../types').babelPluginFlowReactPropTypes_proptype_NameGenerator || require('prop-types').any;\n\nvar babelPluginFlowReactPropTypes_proptype_RuleSet = require('../types').babelPluginFlowReactPropTypes_proptype_RuleSet || require('prop-types').any;\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\n\nexports.default = function (nameGenerator) {\n var inserted = {};\n\n var ComponentStyle = function () {\n function ComponentStyle(rules) {\n _classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n if (!_StyleSheet2.default.injected) _StyleSheet2.default.inject();\n this.insertedRule = _StyleSheet2.default.insert('');\n }\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a ._hashName {}\n * Parses that with PostCSS then runs PostCSS-Nested on it\n * Returns the hash to be injected on render()\n * */\n\n\n _createClass(ComponentStyle, [{\n key: 'generateAndInjectStyles',\n value: function generateAndInjectStyles(executionContext) {\n var flatCSS = (0, _flatten2.default)(this.rules, executionContext).join('').replace(/^\\s*\\/\\/.*$/gm, ''); // replace JS comments\n\n var hash = (0, _hash2.default)(flatCSS);\n\n if (!inserted[hash]) {\n var selector = nameGenerator(hash);\n inserted[hash] = selector;\n var root = (0, _parse2.default)('.' + selector + ' { ' + flatCSS + ' }');\n (0, _postcssNested2.default)(root);\n (0, _autoprefix2.default)(root);\n this.insertedRule.appendRule(root.toResult().css);\n }\n\n return inserted[hash];\n }\n }]);\n\n return ComponentStyle;\n }();\n\n return ComponentStyle;\n};\n\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nif (typeof exports !== \"undefined\") Object.defineProperty(exports, \"babelPluginFlowReactPropTypes_proptype_Broadcast\", {\n value: require(\"prop-types\").shape({\n publish: require(\"prop-types\").func.isRequired,\n subscribe: require(\"prop-types\").func.isRequired\n })\n});\n/**\n * Creates a broadcast that can be listened to, i.e. simple event emitter\n *\n * @see https://github.com/ReactTraining/react-broadcast\n */\n\nvar createBroadcast = function createBroadcast(initialValue) {\n var listeners = [];\n var currentValue = initialValue;\n return {\n publish: function publish(value) {\n currentValue = value;\n listeners.forEach(function (listener) {\n return listener(currentValue);\n });\n },\n subscribe: function subscribe(listener) {\n listeners.push(listener); // Publish to this subscriber once immediately.\n\n listener(currentValue);\n return function () {\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n };\n};\n\nexports.default = createBroadcast;\nmodule.exports = exports[\"default\"];","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","export default {\n DESKTOP: 992,\n TABLET: 768,\n PHONE: 376,\n};\n","import { css } from 'styled-components';\nimport BREAKPOINTS from 'constants/breakpoints';\n\n// This creates the media templates, which allows for simple\n// breakpoint usage inside styled-components, e.g.:\n//\n// ${MEDIA.PHONE`\n// font-size: 1.6rem;\n// `};\n//\n// ${MEDIA.MIN_TABLET`\n// display: flex;\n// `};\n//\n// Edit or add breakpoints inside constants/breakpoints.js\n\nconst MEDIA = Object.keys(BREAKPOINTS).reduce((acc, label) => {\n acc[label] = (...args) => css`\n @media (max-width: ${BREAKPOINTS[label] / 16}em) {\n ${css(...args)};\n }\n `;\n\n acc[`MIN_${label}`] = (...args) => css`\n @media (min-width: ${BREAKPOINTS[label] / 16}em) {\n ${css(...args)};\n }\n `;\n\n return acc;\n}, {});\n\nexport default MEDIA;\n","import styled from 'styled-components';\nimport MEDIA from 'helpers/mediaTemplates';\n\nexport const Text = styled.span`\n display: block;\n font-weight: ${({ size }) => () => {\n switch (size) {\n case 'large':\n return '400';\n default:\n return '500';\n }\n }};\n font-size: ${({ size }) => () => {\n switch (size) {\n case 'large':\n return '3.2rem';\n default:\n return '2rem';\n }\n }};\n line-height: 1.2;\n\n ${MEDIA.TABLET`\n font-size: ${({ size }) => () => {\n switch (size) {\n case 'large':\n return '2.6rem';\n default:\n return '2rem';\n }\n }};\n `};\n`;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n/* eslint-disable valid-jsdoc */\n\n\nvar defaultRaw = {\n colon: ': ',\n indent: ' ',\n beforeDecl: '\\n',\n beforeRule: '\\n',\n beforeOpen: ' ',\n beforeClose: '\\n',\n beforeComment: '\\n',\n after: '\\n',\n emptyBody: '',\n commentLeft: ' ',\n commentRight: ' '\n};\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\n\nvar Stringifier = function () {\n function Stringifier(builder) {\n _classCallCheck(this, Stringifier);\n\n this.builder = builder;\n }\n\n _createClass(Stringifier, [{\n key: 'stringify',\n value: function stringify(node, semicolon) {\n this[node.type](node, semicolon);\n }\n }, {\n key: 'root',\n value: function root(node) {\n this.body(node);\n if (node.raws.after) this.builder(node.raws.after);\n }\n }, {\n key: 'comment',\n value: function comment(node) {\n var left = this.raw(node, 'left', 'commentLeft');\n var right = this.raw(node, 'right', 'commentRight');\n this.builder('/*' + left + node.text + right + '*/', node);\n }\n }, {\n key: 'decl',\n value: function decl(node, semicolon) {\n var between = this.raw(node, 'between', 'colon');\n var string = node.prop + between + this.rawValue(node, 'value');\n\n if (node.important) {\n string += node.raws.important || ' !important';\n }\n\n if (semicolon) string += ';';\n this.builder(string, node);\n }\n }, {\n key: 'rule',\n value: function rule(node) {\n this.block(node, this.rawValue(node, 'selector'));\n }\n }, {\n key: 'atrule',\n value: function atrule(node, semicolon) {\n var name = '@' + node.name;\n var params = node.params ? this.rawValue(node, 'params') : '';\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName;\n } else if (params) {\n name += ' ';\n }\n\n if (node.nodes) {\n this.block(node, name + params);\n } else {\n var end = (node.raws.between || '') + (semicolon ? ';' : '');\n this.builder(name + params + end, node);\n }\n }\n }, {\n key: 'body',\n value: function body(node) {\n var last = node.nodes.length - 1;\n\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break;\n last -= 1;\n }\n\n var semicolon = this.raw(node, 'semicolon');\n\n for (var i = 0; i < node.nodes.length; i++) {\n var child = node.nodes[i];\n var before = this.raw(child, 'before');\n if (before) this.builder(before);\n this.stringify(child, last !== i || semicolon);\n }\n }\n }, {\n key: 'block',\n value: function block(node, start) {\n var between = this.raw(node, 'between', 'beforeOpen');\n this.builder(start + between + '{', node, 'start');\n var after = void 0;\n\n if (node.nodes && node.nodes.length) {\n this.body(node);\n after = this.raw(node, 'after');\n } else {\n after = this.raw(node, 'after', 'emptyBody');\n }\n\n if (after) this.builder(after);\n this.builder('}', node, 'end');\n }\n }, {\n key: 'raw',\n value: function raw(node, own, detect) {\n var value = void 0;\n if (!detect) detect = own; // Already had\n\n if (own) {\n value = node.raws[own];\n if (typeof value !== 'undefined') return value;\n }\n\n var parent = node.parent; // Hack for first rule in CSS\n\n if (detect === 'before') {\n if (!parent || parent.type === 'root' && parent.first === node) {\n return '';\n }\n } // Floating child without parent\n\n\n if (!parent) return defaultRaw[detect]; // Detect style by other nodes\n\n var root = node.root();\n if (!root.rawCache) root.rawCache = {};\n\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect];\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect);\n } else {\n var method = 'raw' + capitalize(detect);\n\n if (this[method]) {\n value = this[method](root, node);\n } else {\n root.walk(function (i) {\n value = i.raws[own];\n if (typeof value !== 'undefined') return false;\n });\n }\n }\n\n if (typeof value === 'undefined') value = defaultRaw[detect];\n root.rawCache[detect] = value;\n return value;\n }\n }, {\n key: 'rawSemicolon',\n value: function rawSemicolon(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon;\n if (typeof value !== 'undefined') return false;\n }\n });\n return value;\n }\n }, {\n key: 'rawEmptyBody',\n value: function rawEmptyBody(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after;\n if (typeof value !== 'undefined') return false;\n }\n });\n return value;\n }\n }, {\n key: 'rawIndent',\n value: function rawIndent(root) {\n if (root.raws.indent) return root.raws.indent;\n var value = void 0;\n root.walk(function (i) {\n var p = i.parent;\n\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n var parts = i.raws.before.split('\\n');\n value = parts[parts.length - 1];\n value = value.replace(/[^\\s]/g, '');\n return false;\n }\n }\n });\n return value;\n }\n }, {\n key: 'rawBeforeComment',\n value: function rawBeforeComment(root, node) {\n var value = void 0;\n root.walkComments(function (i) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before;\n\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n\n return false;\n }\n });\n\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl');\n }\n\n return value;\n }\n }, {\n key: 'rawBeforeDecl',\n value: function rawBeforeDecl(root, node) {\n var value = void 0;\n root.walkDecls(function (i) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before;\n\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n\n return false;\n }\n });\n\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule');\n }\n\n return value;\n }\n }, {\n key: 'rawBeforeRule',\n value: function rawBeforeRule(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before;\n\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n\n return false;\n }\n }\n });\n return value;\n }\n }, {\n key: 'rawBeforeClose',\n value: function rawBeforeClose(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after;\n\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n\n return false;\n }\n }\n });\n return value;\n }\n }, {\n key: 'rawBeforeOpen',\n value: function rawBeforeOpen(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.type !== 'decl') {\n value = i.raws.between;\n if (typeof value !== 'undefined') return false;\n }\n });\n return value;\n }\n }, {\n key: 'rawColon',\n value: function rawColon(root) {\n var value = void 0;\n root.walkDecls(function (i) {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '');\n return false;\n }\n });\n return value;\n }\n }, {\n key: 'beforeAfter',\n value: function beforeAfter(node, detect) {\n var value = void 0;\n\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl');\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment');\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule');\n } else {\n value = this.raw(node, null, 'beforeClose');\n }\n\n var buf = node.parent;\n var depth = 0;\n\n while (buf && buf.type !== 'root') {\n depth += 1;\n buf = buf.parent;\n }\n\n if (value.indexOf('\\n') !== -1) {\n var indent = this.raw(node, null, 'indent');\n\n if (indent.length) {\n for (var step = 0; step < depth; step++) {\n value += indent;\n }\n }\n }\n\n return value;\n }\n }, {\n key: 'rawValue',\n value: function rawValue(node, prop) {\n var value = node[prop];\n var raw = node.raws[prop];\n\n if (raw && raw.value === value) {\n return raw.raw;\n } else {\n return value;\n }\n }\n }]);\n\n return Stringifier;\n}();\n\nexports.default = Stringifier;\nmodule.exports = exports['default'];","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _validAttr = require('../utils/validAttr');\n\nvar _validAttr2 = _interopRequireDefault(_validAttr);\n\nvar _isTag = require('../utils/isTag');\n\nvar _isTag2 = _interopRequireDefault(_isTag);\n\nvar _AbstractStyledComponent = require('./AbstractStyledComponent');\n\nvar _AbstractStyledComponent2 = _interopRequireDefault(_AbstractStyledComponent);\n\nvar _ThemeProvider = require('./ThemeProvider');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar babelPluginFlowReactPropTypes_proptype_Theme = require('./ThemeProvider').babelPluginFlowReactPropTypes_proptype_Theme || require('prop-types').any;\n\nvar babelPluginFlowReactPropTypes_proptype_Target = require('../types').babelPluginFlowReactPropTypes_proptype_Target || require('prop-types').any;\n\nvar babelPluginFlowReactPropTypes_proptype_RuleSet = require('../types').babelPluginFlowReactPropTypes_proptype_RuleSet || require('prop-types').any;\n\nexports.default = function (ComponentStyle) {\n // eslint-disable-next-line no-undef\n var createStyledComponent = function createStyledComponent(target, rules, parent) {\n /* Handle styled(OtherStyledComponent) differently */\n var isStyledComponent = _AbstractStyledComponent2.default.isPrototypeOf(target);\n\n if (!(0, _isTag2.default)(target) && isStyledComponent) {\n return createStyledComponent(target.target, target.rules.concat(rules), target);\n }\n\n var componentStyle = new ComponentStyle(rules);\n var ParentComponent = parent || _AbstractStyledComponent2.default;\n\n var StyledComponent = function (_ParentComponent) {\n _inherits(StyledComponent, _ParentComponent);\n\n function StyledComponent() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, StyledComponent);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = StyledComponent.__proto__ || Object.getPrototypeOf(StyledComponent)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n theme: null,\n generatedClassName: ''\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(StyledComponent, [{\n key: 'generateAndInjectStyles',\n value: function generateAndInjectStyles(theme, props) {\n var executionContext = _extends({}, props, {\n theme: theme\n });\n\n return componentStyle.generateAndInjectStyles(executionContext);\n }\n }, {\n key: 'componentWillMount',\n value: function componentWillMount() {\n var _this2 = this; // If there is a theme in the context, subscribe to the event emitter. This\n // is necessary due to pure components blocking context updates, this circumvents\n // that by updating when an event is emitted\n\n\n if (this.context[_ThemeProvider.CHANNEL]) {\n var subscribe = this.context[_ThemeProvider.CHANNEL];\n this.unsubscribe = subscribe(function (nextTheme) {\n // This will be called once immediately\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n var defaultProps = _this2.constructor.defaultProps;\n var isDefaultTheme = defaultProps && _this2.props.theme === defaultProps.theme;\n var theme = _this2.props.theme && !isDefaultTheme ? _this2.props.theme : nextTheme;\n\n var generatedClassName = _this2.generateAndInjectStyles(theme, _this2.props);\n\n _this2.setState({\n theme: theme,\n generatedClassName: generatedClassName\n });\n });\n } else {\n var _theme = this.props.theme || {};\n\n var generatedClassName = this.generateAndInjectStyles(_theme, this.props);\n this.setState({\n theme: _theme,\n generatedClassName: generatedClassName\n });\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var _this3 = this;\n\n this.setState(function (oldState) {\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n var defaultProps = _this3.constructor.defaultProps;\n var isDefaultTheme = defaultProps && nextProps.theme === defaultProps.theme;\n var theme = nextProps.theme && !isDefaultTheme ? nextProps.theme : oldState.theme;\n\n var generatedClassName = _this3.generateAndInjectStyles(theme, nextProps);\n\n return {\n theme: theme,\n generatedClassName: generatedClassName\n };\n });\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props = this.props,\n className = _props.className,\n children = _props.children,\n innerRef = _props.innerRef;\n var generatedClassName = this.state.generatedClassName;\n var propsForElement = {};\n /* Don't pass through non HTML tags through to HTML elements */\n\n Object.keys(this.props).filter(function (propName) {\n return !(0, _isTag2.default)(target) || (0, _validAttr2.default)(propName);\n }).forEach(function (propName) {\n propsForElement[propName] = _this4.props[propName];\n });\n propsForElement.className = [className, generatedClassName].filter(function (x) {\n return x;\n }).join(' ');\n\n if (innerRef) {\n propsForElement.ref = innerRef;\n if ((0, _isTag2.default)(target)) delete propsForElement.innerRef;\n }\n\n return (0, _react.createElement)(target, propsForElement, children);\n }\n }]);\n\n return StyledComponent;\n }(ParentComponent);\n\n StyledComponent.contextTypes = ParentComponent.contextTypes;\n StyledComponent.target = target;\n StyledComponent.rules = rules;\n StyledComponent.displayName = (0, _isTag2.default)(target) ? 'styled.' + target : 'Styled(' + (target.displayName || target.name || 'Component') + ')';\n return StyledComponent;\n };\n\n return createStyledComponent;\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sortPrefixedStyle;\n\nvar _isPrefixedProperty = require('./isPrefixedProperty');\n\nvar _isPrefixedProperty2 = _interopRequireDefault(_isPrefixedProperty);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction sortPrefixedStyle(style) {\n return Object.keys(style).sort(function (left, right) {\n if ((0, _isPrefixedProperty2.default)(left) && !(0, _isPrefixedProperty2.default)(right)) {\n return -1;\n } else if (!(0, _isPrefixedProperty2.default)(left) && (0, _isPrefixedProperty2.default)(right)) {\n return 1;\n }\n\n return 0;\n }).reduce(function (sortedStyle, prop) {\n sortedStyle[prop] = style[prop];\n return sortedStyle;\n }, {});\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar _cssSyntaxError = require('./css-syntax-error');\n\nvar _cssSyntaxError2 = _interopRequireDefault(_cssSyntaxError);\n\nvar _stringifier = require('./stringifier');\n\nvar _stringifier2 = _interopRequireDefault(_stringifier);\n\nvar _stringify = require('./stringify');\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n/**\n * @typedef {object} position\n * @property {number} line - source line in file\n * @property {number} column - source column in file\n */\n\n/**\n * @typedef {object} source\n * @property {Input} input - {@link Input} with input file\n * @property {position} start - The starting position of the node’s source\n * @property {position} end - The ending position of the node’s source\n */\n\n\nvar cloneNode = function cloneNode(obj, parent) {\n var cloned = new obj.constructor();\n\n for (var i in obj) {\n if (!obj.hasOwnProperty(i)) continue;\n var value = obj[i];\n var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent;\n } else if (i === 'source') {\n cloned[i] = value;\n } else if (value instanceof Array) {\n cloned[i] = value.map(function (j) {\n return cloneNode(j, cloned);\n });\n } else if (i !== 'before' && i !== 'after' && i !== 'between' && i !== 'semicolon') {\n if (type === 'object' && value !== null) value = cloneNode(value);\n cloned[i] = value;\n }\n }\n\n return cloned;\n};\n/**\n * All node classes inherit the following common methods.\n *\n * @abstract\n */\n\n\nvar Node = function () {\n /**\n * @param {object} [defaults] - value for node properties\n */\n function Node() {\n var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Node);\n\n this.raws = {};\n\n for (var name in defaults) {\n this[name] = defaults[name];\n }\n }\n /**\n * Returns a CssSyntaxError instance containing the original position\n * of the node in the source, showing line and column numbers and also\n * a small excerpt to facilitate debugging.\n *\n * If present, an input source map will be used to get the original position\n * of the source, even from a previous compilation step\n * (e.g., from Sass compilation).\n *\n * This method produces very useful error messages.\n *\n * @param {string} message - error description\n * @param {object} [opts] - options\n * @param {string} opts.plugin - plugin name that created this error.\n * PostCSS will set it automatically.\n * @param {string} opts.word - a word inside a node’s string that should\n * be highlighted as the source of the error\n * @param {number} opts.index - an index inside a node’s string that should\n * be highlighted as the source of the error\n *\n * @return {CssSyntaxError} error object to throw it\n *\n * @example\n * if ( !variables[name] ) {\n * throw decl.error('Unknown variable ' + name, { word: name });\n * // CssSyntaxError: postcss-vars:a.sass:4:3: Unknown variable $black\n * // color: $black\n * // a\n * // ^\n * // background: white\n * }\n */\n\n\n _createClass(Node, [{\n key: 'error',\n value: function error(message) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.source) {\n var pos = this.positionBy(opts);\n return this.source.input.error(message, pos.line, pos.column, opts);\n } else {\n return new _cssSyntaxError2.default(message);\n }\n }\n /**\n * This method is provided as a convenience wrapper for {@link Result#warn}.\n *\n * @param {Result} result - the {@link Result} instance\n * that will receive the warning\n * @param {string} text - warning message\n * @param {object} [opts] - options\n * @param {string} opts.plugin - plugin name that created this warning.\n * PostCSS will set it automatically.\n * @param {string} opts.word - a word inside a node’s string that should\n * be highlighted as the source of the warning\n * @param {number} opts.index - an index inside a node’s string that should\n * be highlighted as the source of the warning\n *\n * @return {Warning} created warning object\n *\n * @example\n * const plugin = postcss.plugin('postcss-deprecated', () => {\n * return (root, result) => {\n * root.walkDecls('bad', decl => {\n * decl.warn(result, 'Deprecated property bad');\n * });\n * };\n * });\n */\n\n }, {\n key: 'warn',\n value: function warn(result, text, opts) {\n var data = {\n node: this\n };\n\n for (var i in opts) {\n data[i] = opts[i];\n }\n\n return result.warn(text, data);\n }\n /**\n * Removes the node from its parent and cleans the parent properties\n * from the node and its children.\n *\n * @example\n * if ( decl.prop.match(/^-webkit-/) ) {\n * decl.remove();\n * }\n *\n * @return {Node} node to make calls chain\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n\n this.parent = undefined;\n return this;\n }\n /**\n * Returns a CSS string representing the node.\n *\n * @param {stringifier|syntax} [stringifier] - a syntax to use\n * in string generation\n *\n * @return {string} CSS string of this node\n *\n * @example\n * postcss.rule({ selector: 'a' }).toString() //=> \"a {}\"\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n var stringifier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _stringify2.default;\n if (stringifier.stringify) stringifier = stringifier.stringify;\n var result = '';\n stringifier(this, function (i) {\n result += i;\n });\n return result;\n }\n /**\n * Returns a clone of the node.\n *\n * The resulting cloned node and its (cloned) children will have\n * a clean parent and code style properties.\n *\n * @param {object} [overrides] - new properties to override in the clone.\n *\n * @example\n * const cloned = decl.clone({ prop: '-moz-' + decl.prop });\n * cloned.raws.before //=> undefined\n * cloned.parent //=> undefined\n * cloned.toString() //=> -moz-transform: scale(0)\n *\n * @return {Node} clone of the node\n */\n\n }, {\n key: 'clone',\n value: function clone() {\n var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var cloned = cloneNode(this);\n\n for (var name in overrides) {\n cloned[name] = overrides[name];\n }\n\n return cloned;\n }\n /**\n * Shortcut to clone the node and insert the resulting cloned node\n * before the current node.\n *\n * @param {object} [overrides] - new properties to override in the clone.\n *\n * @example\n * decl.cloneBefore({ prop: '-moz-' + decl.prop });\n *\n * @return {Node} - new node\n */\n\n }, {\n key: 'cloneBefore',\n value: function cloneBefore() {\n var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n /**\n * Shortcut to clone the node and insert the resulting cloned node\n * after the current node.\n *\n * @param {object} [overrides] - new properties to override in the clone.\n *\n * @return {Node} - new node\n */\n\n }, {\n key: 'cloneAfter',\n value: function cloneAfter() {\n var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n /**\n * Inserts node(s) before the current node and removes the current node.\n *\n * @param {...Node} nodes - node(s) to replace current one\n *\n * @example\n * if ( atrule.name == 'mixin' ) {\n * atrule.replaceWith(mixinRules[atrule.params]);\n * }\n *\n * @return {Node} current node to methods chain\n */\n\n }, {\n key: 'replaceWith',\n value: function replaceWith() {\n var _this = this;\n\n if (this.parent) {\n for (var _len = arguments.length, nodes = Array(_len), _key = 0; _key < _len; _key++) {\n nodes[_key] = arguments[_key];\n }\n\n nodes.forEach(function (node) {\n _this.parent.insertBefore(_this, node);\n });\n this.remove();\n }\n\n return this;\n }\n /**\n * Removes the node from its current parent and inserts it\n * at the end of `newParent`.\n *\n * This will clean the `before` and `after` code {@link Node#raws} data\n * from the node and replace them with the indentation style of `newParent`.\n * It will also clean the `between` property\n * if `newParent` is in another {@link Root}.\n *\n * @param {Container} newParent - container node where the current node\n * will be moved\n *\n * @example\n * atrule.moveTo(atrule.root());\n *\n * @return {Node} current node to methods chain\n */\n\n }, {\n key: 'moveTo',\n value: function moveTo(newParent) {\n this.cleanRaws(this.root() === newParent.root());\n this.remove();\n newParent.append(this);\n return this;\n }\n /**\n * Removes the node from its current parent and inserts it into\n * a new parent before `otherNode`.\n *\n * This will also clean the node’s code style properties just as it would\n * in {@link Node#moveTo}.\n *\n * @param {Node} otherNode - node that will be before current node\n *\n * @return {Node} current node to methods chain\n */\n\n }, {\n key: 'moveBefore',\n value: function moveBefore(otherNode) {\n this.cleanRaws(this.root() === otherNode.root());\n this.remove();\n otherNode.parent.insertBefore(otherNode, this);\n return this;\n }\n /**\n * Removes the node from its current parent and inserts it into\n * a new parent after `otherNode`.\n *\n * This will also clean the node’s code style properties just as it would\n * in {@link Node#moveTo}.\n *\n * @param {Node} otherNode - node that will be after current node\n *\n * @return {Node} current node to methods chain\n */\n\n }, {\n key: 'moveAfter',\n value: function moveAfter(otherNode) {\n this.cleanRaws(this.root() === otherNode.root());\n this.remove();\n otherNode.parent.insertAfter(otherNode, this);\n return this;\n }\n /**\n * Returns the next child of the node’s parent.\n * Returns `undefined` if the current node is the last child.\n *\n * @return {Node|undefined} next node\n *\n * @example\n * if ( comment.text === 'delete next' ) {\n * const next = comment.next();\n * if ( next ) {\n * next.remove();\n * }\n * }\n */\n\n }, {\n key: 'next',\n value: function next() {\n var index = this.parent.index(this);\n return this.parent.nodes[index + 1];\n }\n /**\n * Returns the previous child of the node’s parent.\n * Returns `undefined` if the current node is the first child.\n *\n * @return {Node|undefined} previous node\n *\n * @example\n * const annotation = decl.prev();\n * if ( annotation.type == 'comment' ) {\n * readAnnotation(annotation.text);\n * }\n */\n\n }, {\n key: 'prev',\n value: function prev() {\n var index = this.parent.index(this);\n return this.parent.nodes[index - 1];\n }\n }, {\n key: 'toJSON',\n value: function toJSON() {\n var fixed = {};\n\n for (var name in this) {\n if (!this.hasOwnProperty(name)) continue;\n if (name === 'parent') continue;\n var value = this[name];\n\n if (value instanceof Array) {\n fixed[name] = value.map(function (i) {\n if ((typeof i === 'undefined' ? 'undefined' : _typeof(i)) === 'object' && i.toJSON) {\n return i.toJSON();\n } else {\n return i;\n }\n });\n } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.toJSON) {\n fixed[name] = value.toJSON();\n } else {\n fixed[name] = value;\n }\n }\n\n return fixed;\n }\n /**\n * Returns a {@link Node#raws} value. If the node is missing\n * the code style property (because the node was manually built or cloned),\n * PostCSS will try to autodetect the code style property by looking\n * at other nodes in the tree.\n *\n * @param {string} prop - name of code style property\n * @param {string} [defaultType] - name of default value, it can be missed\n * if the value is the same as prop\n *\n * @example\n * const root = postcss.parse('a { background: white }');\n * root.nodes[0].append({ prop: 'color', value: 'black' });\n * root.nodes[0].nodes[1].raws.before //=> undefined\n * root.nodes[0].nodes[1].raw('before') //=> ' '\n *\n * @return {string} code style value\n */\n\n }, {\n key: 'raw',\n value: function raw(prop, defaultType) {\n var str = new _stringifier2.default();\n return str.raw(this, prop, defaultType);\n }\n /**\n * Finds the Root instance of the node’s tree.\n *\n * @example\n * root.nodes[0].nodes[0].root() === root\n *\n * @return {Root} root parent\n */\n\n }, {\n key: 'root',\n value: function root() {\n var result = this;\n\n while (result.parent) {\n result = result.parent;\n }\n\n return result;\n }\n }, {\n key: 'cleanRaws',\n value: function cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n }, {\n key: 'positionInside',\n value: function positionInside(index) {\n var string = this.toString();\n var column = this.source.start.column;\n var line = this.source.start.line;\n\n for (var i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n\n return {\n line: line,\n column: column\n };\n }\n }, {\n key: 'positionBy',\n value: function positionBy(opts) {\n var pos = this.source.start;\n\n if (opts.index) {\n pos = this.positionInside(opts.index);\n } else if (opts.word) {\n var index = this.toString().indexOf(opts.word);\n if (index !== -1) pos = this.positionInside(index);\n }\n\n return pos;\n }\n }, {\n key: 'removeSelf',\n value: function removeSelf() {\n (0, _warnOnce2.default)('Node#removeSelf is deprecated. Use Node#remove.');\n return this.remove();\n }\n }, {\n key: 'replace',\n value: function replace(nodes) {\n (0, _warnOnce2.default)('Node#replace is deprecated. Use Node#replaceWith');\n return this.replaceWith(nodes);\n }\n }, {\n key: 'style',\n value: function style(own, detect) {\n (0, _warnOnce2.default)('Node#style() is deprecated. Use Node#raw()');\n return this.raw(own, detect);\n }\n }, {\n key: 'cleanStyles',\n value: function cleanStyles(keepBetween) {\n (0, _warnOnce2.default)('Node#cleanStyles() is deprecated. Use Node#cleanRaws()');\n return this.cleanRaws(keepBetween);\n }\n }, {\n key: 'before',\n get: function get() {\n (0, _warnOnce2.default)('Node#before is deprecated. Use Node#raws.before');\n return this.raws.before;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Node#before is deprecated. Use Node#raws.before');\n this.raws.before = val;\n }\n }, {\n key: 'between',\n get: function get() {\n (0, _warnOnce2.default)('Node#between is deprecated. Use Node#raws.between');\n return this.raws.between;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Node#between is deprecated. Use Node#raws.between');\n this.raws.between = val;\n }\n /**\n * @memberof Node#\n * @member {string} type - String representing the node’s type.\n * Possible values are `root`, `atrule`, `rule`,\n * `decl`, or `comment`.\n *\n * @example\n * postcss.decl({ prop: 'color', value: 'black' }).type //=> 'decl'\n */\n\n /**\n * @memberof Node#\n * @member {Container} parent - the node’s parent node.\n *\n * @example\n * root.nodes[0].parent == root;\n */\n\n /**\n * @memberof Node#\n * @member {source} source - the input source of the node\n *\n * The property is used in source map generation.\n *\n * If you create a node manually (e.g., with `postcss.decl()`),\n * that node will not have a `source` property and will be absent\n * from the source map. For this reason, the plugin developer should\n * consider cloning nodes to create new ones (in which case the new node’s\n * source will reference the original, cloned node) or setting\n * the `source` property manually.\n *\n * ```js\n * // Bad\n * const prefixed = postcss.decl({\n * prop: '-moz-' + decl.prop,\n * value: decl.value\n * });\n *\n * // Good\n * const prefixed = decl.clone({ prop: '-moz-' + decl.prop });\n * ```\n *\n * ```js\n * if ( atrule.name == 'add-link' ) {\n * const rule = postcss.rule({ selector: 'a', source: atrule.source });\n * atrule.parent.insertBefore(atrule, rule);\n * }\n * ```\n *\n * @example\n * decl.source.input.from //=> '/home/ai/a.sass'\n * decl.source.start //=> { line: 10, column: 2 }\n * decl.source.end //=> { line: 10, column: 12 }\n */\n\n /**\n * @memberof Node#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `after`: the space symbols after the last child of the node\n * to the end of the node.\n * * `between`: the symbols between the property and value\n * for declarations, selector and `{` for rules, or last parameter\n * and `{` for at-rules.\n * * `semicolon`: contains true if the last child has\n * an (optional) semicolon.\n * * `afterName`: the space between the at-rule name and its parameters.\n * * `left`: the space symbols between `/*` and the comment’s text.\n * * `right`: the space symbols between the comment’s text\n * and */.\n * * `important`: the content of the important statement,\n * if it is not just `!important`.\n *\n * PostCSS cleans selectors, declaration values and at-rule parameters\n * from comments and extra spaces, but it stores origin content in raws\n * properties. As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse('a {\\n color:black\\n}')\n * root.first.first.raws //=> { before: '\\n ', between: ':' }\n */\n\n }]);\n\n return Node;\n}();\n\nexports.default = Node;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = calc;\n\nvar _joinPrefixedValue = require('../../utils/joinPrefixedValue');\n\nvar _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);\n\nvar _isPrefixedValue = require('../../utils/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction calc(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('calc(') > -1) {\n return (0, _joinPrefixedValue2.default)(property, value, function (prefix, value) {\n return value.replace(/calc\\(/g, prefix + 'calc(');\n });\n }\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _css = require('./css');\n\nvar _css2 = _interopRequireDefault(_css);\n\nvar _GlobalStyle = require('../models/GlobalStyle');\n\nvar _GlobalStyle2 = _interopRequireDefault(_GlobalStyle);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar babelPluginFlowReactPropTypes_proptype_Interpolation = require('../types').babelPluginFlowReactPropTypes_proptype_Interpolation || require('prop-types').any;\n\nvar injectGlobal = function injectGlobal(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var globalStyle = new _GlobalStyle2.default(_css2.default.apply(undefined, [strings].concat(interpolations)));\n globalStyle.generateAndInject();\n};\n\nexports.default = injectGlobal;\nmodule.exports = exports['default'];","/**\n * Stolen directly from glamor, thanks @threepointone!\n */\n\n/* eslint-disable */\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = doHash; // murmurhash2 via https://gist.github.com/raycmorgan/588423\n\nfunction doHash(str, seed) {\n var m = 0x5bd1e995;\n var r = 24;\n var h = seed ^ str.length;\n var length = str.length;\n var currentIndex = 0;\n\n while (length >= 4) {\n var k = UInt32(str, currentIndex);\n k = Umul32(k, m);\n k ^= k >>> r;\n k = Umul32(k, m);\n h = Umul32(h, m);\n h ^= k;\n currentIndex += 4;\n length -= 4;\n }\n\n switch (length) {\n case 3:\n h ^= UInt16(str, currentIndex);\n h ^= str.charCodeAt(currentIndex + 2) << 16;\n h = Umul32(h, m);\n break;\n\n case 2:\n h ^= UInt16(str, currentIndex);\n h = Umul32(h, m);\n break;\n\n case 1:\n h ^= str.charCodeAt(currentIndex);\n h = Umul32(h, m);\n break;\n }\n\n h ^= h >>> 13;\n h = Umul32(h, m);\n h ^= h >>> 15;\n return h >>> 0;\n}\n\nfunction UInt32(str, pos) {\n return str.charCodeAt(pos++) + (str.charCodeAt(pos++) << 8) + (str.charCodeAt(pos++) << 16) + (str.charCodeAt(pos) << 24);\n}\n\nfunction UInt16(str, pos) {\n return str.charCodeAt(pos++) + (str.charCodeAt(pos++) << 8);\n}\n\nfunction Umul32(n, m) {\n n = n | 0;\n m = m | 0;\n var nlo = n & 0xffff;\n var nhi = n >>> 16;\n var res = nlo * m + ((nhi * m & 0xffff) << 16) | 0;\n return res;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ThemeProvider = require('../models/ThemeProvider');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/* globals ReactClass */\n\n\nexports.default = function (Component) {\n var _class, _temp2;\n\n return _temp2 = _class = function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, _class);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = _class.__proto__ || Object.getPrototypeOf(_class)).call.apply(_ref, [this].concat(args))), _this), _this.state = {}, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(_class, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n var _this2 = this;\n\n if (!this.context[_ThemeProvider.CHANNEL]) {\n throw new Error('[withTheme] Please use ThemeProvider to be able to use withTheme');\n }\n\n var subscribe = this.context[_ThemeProvider.CHANNEL];\n this.unsubscribe = subscribe(function (theme) {\n _this2.setState({\n theme: theme\n });\n });\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof this.unsubscribe === 'function') this.unsubscribe();\n }\n }, {\n key: 'render',\n value: function render() {\n var theme = this.state.theme;\n return _react2.default.createElement(Component, _extends({\n theme: theme\n }, this.props));\n }\n }]);\n\n return _class;\n }(_react2.default.Component), _class.contextTypes = _defineProperty({}, _ThemeProvider.CHANNEL, _propTypes2.default.func), _temp2;\n};\n\nmodule.exports = exports['default'];","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isTag;\n\nvar babelPluginFlowReactPropTypes_proptype_Target = require('../types').babelPluginFlowReactPropTypes_proptype_Target || require('prop-types').any;\n\nfunction isTag(target)\n/* : %checks */\n{\n return typeof target === 'string';\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ThemeProvider = require('./ThemeProvider');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar AbstractStyledComponent = function (_Component) {\n _inherits(AbstractStyledComponent, _Component);\n\n function AbstractStyledComponent() {\n _classCallCheck(this, AbstractStyledComponent);\n\n return _possibleConstructorReturn(this, (AbstractStyledComponent.__proto__ || Object.getPrototypeOf(AbstractStyledComponent)).apply(this, arguments));\n }\n\n return AbstractStyledComponent;\n}(_react.Component);\n\nexports.default = AbstractStyledComponent;\nAbstractStyledComponent.contextTypes = _defineProperty({}, _ThemeProvider.CHANNEL, _propTypes2.default.func);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _hash = require('../vendor/glamor/hash');\n\nvar _hash2 = _interopRequireDefault(_hash);\n\nvar _css = require('./css');\n\nvar _css2 = _interopRequireDefault(_css);\n\nvar _GlobalStyle = require('../models/GlobalStyle');\n\nvar _GlobalStyle2 = _interopRequireDefault(_GlobalStyle);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar babelPluginFlowReactPropTypes_proptype_NameGenerator = require('../types').babelPluginFlowReactPropTypes_proptype_NameGenerator || require('prop-types').any;\n\nvar babelPluginFlowReactPropTypes_proptype_Interpolation = require('../types').babelPluginFlowReactPropTypes_proptype_Interpolation || require('prop-types').any;\n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nexports.default = function (nameGenerator) {\n return function (strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = _css2.default.apply(undefined, [strings].concat(interpolations));\n\n var hash = (0, _hash2.default)(replaceWhitespace(JSON.stringify(rules)));\n var name = nameGenerator(hash);\n var keyframes = new _GlobalStyle2.default(rules, '@keyframes ' + name);\n var keyframesWebkit = new _GlobalStyle2.default(rules, '@-webkit-keyframes ' + name);\n keyframes.generateAndInject();\n keyframesWebkit.generateAndInject();\n return name;\n };\n};\n\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); // helper to capitalize strings\n\nexports.default = function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _parse = require('../vendor/postcss-safe-parser/parse');\n\nvar _parse2 = _interopRequireDefault(_parse);\n\nvar _autoprefix = require('../utils/autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _postcssNested = require('../vendor/postcss-nested');\n\nvar _postcssNested2 = _interopRequireDefault(_postcssNested);\n\nvar _flatten = require('../utils/flatten');\n\nvar _flatten2 = _interopRequireDefault(_flatten);\n\nvar _StyleSheet = require('./StyleSheet');\n\nvar _StyleSheet2 = _interopRequireDefault(_StyleSheet);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar babelPluginFlowReactPropTypes_proptype_RuleSet = require('../types').babelPluginFlowReactPropTypes_proptype_RuleSet || require('prop-types').any;\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, selector) {\n _classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.selector = selector;\n }\n\n _createClass(ComponentStyle, [{\n key: 'generateAndInject',\n value: function generateAndInject() {\n if (!_StyleSheet2.default.injected) _StyleSheet2.default.inject();\n var flatCSS = (0, _flatten2.default)(this.rules).join('');\n\n if (this.selector) {\n flatCSS = this.selector + ' {' + flatCSS + '\\n}';\n }\n\n var root = (0, _parse2.default)(flatCSS);\n (0, _postcssNested2.default)(root);\n (0, _autoprefix2.default)(root);\n\n _StyleSheet2.default.insert(root.toResult().css, {\n global: true\n });\n }\n }]);\n\n return ComponentStyle;\n}();\n\nexports.default = ComponentStyle;\nmodule.exports = exports['default'];","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","\"use strict\";\n/* todo: I want this to actually be an array of Function | string but that causes errors */\n\nif (typeof exports !== \"undefined\") Object.defineProperty(exports, \"babelPluginFlowReactPropTypes_proptype_GlamorRule\", {\n value: require(\"prop-types\").shape({\n cssText: require(\"prop-types\").string.isRequired\n })\n});\n/* eslint-disable no-undef */","'use strict';\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _declaration = require('./declaration');\n\nvar _declaration2 = _interopRequireDefault(_declaration);\n\nvar _tokenize = require('./tokenize');\n\nvar _tokenize2 = _interopRequireDefault(_tokenize);\n\nvar _comment = require('./comment');\n\nvar _comment2 = _interopRequireDefault(_comment);\n\nvar _atRule = require('./at-rule');\n\nvar _atRule2 = _interopRequireDefault(_atRule);\n\nvar _root = require('./root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _rule = require('./rule');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar Parser = function () {\n function Parser(input) {\n _classCallCheck(this, Parser);\n\n this.input = input;\n this.pos = 0;\n this.root = new _root2.default();\n this.current = this.root;\n this.spaces = '';\n this.semicolon = false;\n this.root.source = {\n input: input,\n start: {\n line: 1,\n column: 1\n }\n };\n }\n\n _createClass(Parser, [{\n key: 'tokenize',\n value: function tokenize() {\n this.tokens = (0, _tokenize2.default)(this.input);\n }\n }, {\n key: 'loop',\n value: function loop() {\n var token = void 0;\n\n while (this.pos < this.tokens.length) {\n token = this.tokens[this.pos];\n\n switch (token[0]) {\n case 'space':\n case ';':\n this.spaces += token[1];\n break;\n\n case '}':\n this.end(token);\n break;\n\n case 'comment':\n this.comment(token);\n break;\n\n case 'at-word':\n this.atrule(token);\n break;\n\n case '{':\n this.emptyRule(token);\n break;\n\n default:\n this.other();\n break;\n }\n\n this.pos += 1;\n }\n\n this.endFile();\n }\n }, {\n key: 'comment',\n value: function comment(token) {\n var node = new _comment2.default();\n this.init(node, token[2], token[3]);\n node.source.end = {\n line: token[4],\n column: token[5]\n };\n var text = token[1].slice(2, -2);\n\n if (/^\\s*$/.test(text)) {\n node.text = '';\n node.raws.left = text;\n node.raws.right = '';\n } else {\n var match = text.match(/^(\\s*)([^]*[^\\s])(\\s*)$/);\n node.text = match[2];\n node.raws.left = match[1];\n node.raws.right = match[3];\n }\n }\n }, {\n key: 'emptyRule',\n value: function emptyRule(token) {\n var node = new _rule2.default();\n this.init(node, token[2], token[3]);\n node.selector = '';\n node.raws.between = '';\n this.current = node;\n }\n }, {\n key: 'other',\n value: function other() {\n var token = void 0;\n var end = false;\n var type = null;\n var colon = false;\n var bracket = null;\n var brackets = [];\n var start = this.pos;\n\n while (this.pos < this.tokens.length) {\n token = this.tokens[this.pos];\n type = token[0];\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token;\n brackets.push(type === '(' ? ')' : ']');\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(this.tokens.slice(start, this.pos + 1));\n return;\n } else {\n break;\n }\n } else if (type === '{') {\n this.rule(this.tokens.slice(start, this.pos + 1));\n return;\n } else if (type === '}') {\n this.pos -= 1;\n end = true;\n break;\n } else if (type === ':') {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n\n this.pos += 1;\n }\n\n if (this.pos === this.tokens.length) {\n this.pos -= 1;\n end = true;\n }\n\n if (brackets.length > 0) this.unclosedBracket(bracket);\n\n if (end && colon) {\n while (this.pos > start) {\n token = this.tokens[this.pos][0];\n if (token !== 'space' && token !== 'comment') break;\n this.pos -= 1;\n }\n\n this.decl(this.tokens.slice(start, this.pos + 1));\n return;\n }\n\n this.unknownWord(start);\n }\n }, {\n key: 'rule',\n value: function rule(tokens) {\n tokens.pop();\n var node = new _rule2.default();\n this.init(node, tokens[0][2], tokens[0][3]);\n node.raws.between = this.spacesFromEnd(tokens);\n this.raw(node, 'selector', tokens);\n this.current = node;\n }\n }, {\n key: 'decl',\n value: function decl(tokens) {\n var node = new _declaration2.default();\n this.init(node);\n var last = tokens[tokens.length - 1];\n\n if (last[0] === ';') {\n this.semicolon = true;\n tokens.pop();\n }\n\n if (last[4]) {\n node.source.end = {\n line: last[4],\n column: last[5]\n };\n } else {\n node.source.end = {\n line: last[2],\n column: last[3]\n };\n }\n\n while (tokens[0][0] !== 'word') {\n node.raws.before += tokens.shift()[1];\n }\n\n node.source.start = {\n line: tokens[0][2],\n column: tokens[0][3]\n };\n node.prop = '';\n\n while (tokens.length) {\n var type = tokens[0][0];\n\n if (type === ':' || type === 'space' || type === 'comment') {\n break;\n }\n\n node.prop += tokens.shift()[1];\n }\n\n node.raws.between = '';\n var token = void 0;\n\n while (tokens.length) {\n token = tokens.shift();\n\n if (token[0] === ':') {\n node.raws.between += token[1];\n break;\n } else {\n node.raws.between += token[1];\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0];\n node.prop = node.prop.slice(1);\n }\n\n node.raws.between += this.spacesFromStart(tokens);\n this.precheckMissedSemicolon(tokens);\n\n for (var i = tokens.length - 1; i > 0; i--) {\n token = tokens[i];\n\n if (token[1] === '!important') {\n node.important = true;\n var string = this.stringFrom(tokens, i);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== ' !important') node.raws.important = string;\n break;\n } else if (token[1] === 'important') {\n var cache = tokens.slice(0);\n var str = '';\n\n for (var j = i; j > 0; j--) {\n var _type = cache[j][0];\n\n if (str.trim().indexOf('!') === 0 && _type !== 'space') {\n break;\n }\n\n str = cache.pop()[1] + str;\n }\n\n if (str.trim().indexOf('!') === 0) {\n node.important = true;\n node.raws.important = str;\n tokens = cache;\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break;\n }\n }\n\n this.raw(node, 'value', tokens);\n if (node.value.indexOf(':') !== -1) this.checkMissedSemicolon(tokens);\n }\n }, {\n key: 'atrule',\n value: function atrule(token) {\n var node = new _atRule2.default();\n node.name = token[1].slice(1);\n\n if (node.name === '') {\n this.unnamedAtrule(node, token);\n }\n\n this.init(node, token[2], token[3]);\n var last = false;\n var open = false;\n var params = [];\n this.pos += 1;\n\n while (this.pos < this.tokens.length) {\n token = this.tokens[this.pos];\n\n if (token[0] === ';') {\n node.source.end = {\n line: token[2],\n column: token[3]\n };\n this.semicolon = true;\n break;\n } else if (token[0] === '{') {\n open = true;\n break;\n } else if (token[0] === '}') {\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n\n this.pos += 1;\n }\n\n if (this.pos === this.tokens.length) {\n last = true;\n }\n\n node.raws.between = this.spacesFromEnd(params);\n\n if (params.length) {\n node.raws.afterName = this.spacesFromStart(params);\n this.raw(node, 'params', params);\n\n if (last) {\n token = params[params.length - 1];\n node.source.end = {\n line: token[4],\n column: token[5]\n };\n this.spaces = node.raws.between;\n node.raws.between = '';\n }\n } else {\n node.raws.afterName = '';\n node.params = '';\n }\n\n if (open) {\n node.nodes = [];\n this.current = node;\n }\n }\n }, {\n key: 'end',\n value: function end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || '') + this.spaces;\n this.spaces = '';\n\n if (this.current.parent) {\n this.current.source.end = {\n line: token[2],\n column: token[3]\n };\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n }, {\n key: 'endFile',\n value: function endFile() {\n if (this.current.parent) this.unclosedBlock();\n\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces;\n } // Helpers\n\n }, {\n key: 'init',\n value: function init(node, line, column) {\n this.current.push(node);\n node.source = {\n start: {\n line: line,\n column: column\n },\n input: this.input\n };\n node.raws.before = this.spaces;\n this.spaces = '';\n if (node.type !== 'comment') this.semicolon = false;\n }\n }, {\n key: 'raw',\n value: function raw(node, prop, tokens) {\n var token = void 0,\n type = void 0;\n var length = tokens.length;\n var value = '';\n var clean = true;\n\n for (var i = 0; i < length; i += 1) {\n token = tokens[i];\n type = token[0];\n\n if (type === 'comment' || type === 'space' && i === length - 1) {\n clean = false;\n } else {\n value += token[1];\n }\n }\n\n if (!clean) {\n var raw = tokens.reduce(function (all, i) {\n return all + i[1];\n }, '');\n node.raws[prop] = {\n value: value,\n raw: raw\n };\n }\n\n node[prop] = value;\n }\n }, {\n key: 'spacesFromEnd',\n value: function spacesFromEnd(tokens) {\n var lastTokenType = void 0;\n var spaces = '';\n\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break;\n spaces = tokens.pop()[1] + spaces;\n }\n\n return spaces;\n }\n }, {\n key: 'spacesFromStart',\n value: function spacesFromStart(tokens) {\n var next = void 0;\n var spaces = '';\n\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== 'space' && next !== 'comment') break;\n spaces += tokens.shift()[1];\n }\n\n return spaces;\n }\n }, {\n key: 'stringFrom',\n value: function stringFrom(tokens, from) {\n var result = '';\n\n for (var i = from; i < tokens.length; i++) {\n result += tokens[i][1];\n }\n\n tokens.splice(from, tokens.length - from);\n return result;\n }\n }, {\n key: 'colon',\n value: function colon(tokens) {\n var brackets = 0;\n var token = void 0,\n type = void 0,\n prev = void 0;\n\n for (var i = 0; i < tokens.length; i++) {\n token = tokens[i];\n type = token[0];\n\n if (type === '(') {\n brackets += 1;\n } else if (type === ')') {\n brackets -= 1;\n } else if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue;\n } else {\n return i;\n }\n }\n\n prev = token;\n }\n\n return false;\n } // Errors\n\n }, {\n key: 'unclosedBracket',\n value: function unclosedBracket(bracket) {\n throw this.input.error('Unclosed bracket', bracket[2], bracket[3]);\n }\n }, {\n key: 'unknownWord',\n value: function unknownWord(start) {\n var token = this.tokens[start];\n throw this.input.error('Unknown word', token[2], token[3]);\n }\n }, {\n key: 'unexpectedClose',\n value: function unexpectedClose(token) {\n throw this.input.error('Unexpected }', token[2], token[3]);\n }\n }, {\n key: 'unclosedBlock',\n value: function unclosedBlock() {\n var pos = this.current.source.start;\n throw this.input.error('Unclosed block', pos.line, pos.column);\n }\n }, {\n key: 'doubleColon',\n value: function doubleColon(token) {\n throw this.input.error('Double colon', token[2], token[3]);\n }\n }, {\n key: 'unnamedAtrule',\n value: function unnamedAtrule(node, token) {\n throw this.input.error('At-rule without name', token[2], token[3]);\n }\n }, {\n key: 'precheckMissedSemicolon',\n value: function precheckMissedSemicolon(tokens) {\n // Hook for Safe Parser\n tokens;\n }\n }, {\n key: 'checkMissedSemicolon',\n value: function checkMissedSemicolon(tokens) {\n var colon = this.colon(tokens);\n if (colon === false) return;\n var founded = 0;\n var token = void 0;\n\n for (var j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n\n if (token[0] !== 'space') {\n founded += 1;\n if (founded === 2) break;\n }\n }\n\n throw this.input.error('Missed semicolon', token[2], token[3]);\n }\n }]);\n\n return Parser;\n}();\n\nexports.default = Parser;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _supportsColor = require('supports-color');\n\nvar _supportsColor2 = _interopRequireDefault(_supportsColor);\n\nvar _terminalHighlight = require('./terminal-highlight');\n\nvar _terminalHighlight2 = _interopRequireDefault(_terminalHighlight);\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n/**\n * The CSS parser throws this error for broken CSS.\n *\n * Custom parsers can throw this error for broken custom syntax using\n * the {@link Node#error} method.\n *\n * PostCSS will use the input source map to detect the original error location.\n * If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS,\n * PostCSS will show the original position in the Sass file.\n *\n * If you need the position in the PostCSS input\n * (e.g., to debug the previous compiler), use `error.input.file`.\n *\n * @example\n * // Catching and checking syntax error\n * try {\n * postcss.parse('a{')\n * } catch (error) {\n * if ( error.name === 'CssSyntaxError' ) {\n * error //=> CssSyntaxError\n * }\n * }\n *\n * @example\n * // Raising error from plugin\n * throw node.error('Unknown variable', { plugin: 'postcss-vars' });\n */\n\n\nvar CssSyntaxError = function () {\n /**\n * @param {string} message - error message\n * @param {number} [line] - source line of the error\n * @param {number} [column] - source column of the error\n * @param {string} [source] - source code of the broken file\n * @param {string} [file] - absolute path to the broken file\n * @param {string} [plugin] - PostCSS plugin name, if error came from plugin\n */\n function CssSyntaxError(message, line, column, source, file, plugin) {\n _classCallCheck(this, CssSyntaxError);\n /**\n * @member {string} - Always equal to `'CssSyntaxError'`. You should\n * always check error type\n * by `error.name === 'CssSyntaxError'` instead of\n * `error instanceof CssSyntaxError`, because\n * npm could have several PostCSS versions.\n *\n * @example\n * if ( error.name === 'CssSyntaxError' ) {\n * error //=> CssSyntaxError\n * }\n */\n\n\n this.name = 'CssSyntaxError';\n /**\n * @member {string} - Error message.\n *\n * @example\n * error.message //=> 'Unclosed block'\n */\n\n this.reason = message;\n\n if (file) {\n /**\n * @member {string} - Absolute path to the broken file.\n *\n * @example\n * error.file //=> 'a.sass'\n * error.input.file //=> 'a.css'\n */\n this.file = file;\n }\n\n if (source) {\n /**\n * @member {string} - Source code of the broken file.\n *\n * @example\n * error.source //=> 'a { b {} }'\n * error.input.column //=> 'a b { }'\n */\n this.source = source;\n }\n\n if (plugin) {\n /**\n * @member {string} - Plugin name, if error came from plugin.\n *\n * @example\n * error.plugin //=> 'postcss-vars'\n */\n this.plugin = plugin;\n }\n\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n /**\n * @member {number} - Source line of the error.\n *\n * @example\n * error.line //=> 2\n * error.input.line //=> 4\n */\n this.line = line;\n /**\n * @member {number} - Source column of the error.\n *\n * @example\n * error.column //=> 1\n * error.input.column //=> 4\n */\n\n this.column = column;\n }\n\n this.setMessage();\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n\n _createClass(CssSyntaxError, [{\n key: 'setMessage',\n value: function setMessage() {\n /**\n * @member {string} - Full error text in the GNU error format\n * with plugin, file, line and column.\n *\n * @example\n * error.message //=> 'a.css:1:1: Unclosed block'\n */\n this.message = this.plugin ? this.plugin + ': ' : '';\n this.message += this.file ? this.file : '';\n\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column;\n }\n\n this.message += ': ' + this.reason;\n }\n /**\n * Returns a few lines of CSS source that caused the error.\n *\n * If the CSS has an input source map without `sourceContent`,\n * this method will return an empty string.\n *\n * @param {boolean} [color] whether arrow will be colored red by terminal\n * color codes. By default, PostCSS will detect\n * color support by `process.stdout.isTTY`\n * and `process.env.NODE_DISABLE_COLORS`.\n *\n * @example\n * error.showSourceCode() //=> \" 4 | }\n * // 5 | a {\n * // > 6 | bad\n * // | ^\n * // 7 | }\n * // 8 | b {\"\n *\n * @return {string} few lines of CSS source that caused the error\n */\n\n }, {\n key: 'showSourceCode',\n value: function showSourceCode(color) {\n var _this = this;\n\n if (!this.source) return '';\n var css = this.source;\n if (typeof color === 'undefined') color = _supportsColor2.default;\n if (color) css = (0, _terminalHighlight2.default)(css);\n var lines = css.split(/\\r?\\n/);\n var start = Math.max(this.line - 3, 0);\n var end = Math.min(this.line + 2, lines.length);\n var maxWidth = String(end).length;\n return lines.slice(start, end).map(function (line, index) {\n var number = start + 1 + index;\n var padded = (' ' + number).slice(-maxWidth);\n var gutter = ' ' + padded + ' | ';\n\n if (number === _this.line) {\n var spacing = gutter.replace(/\\d/g, ' ') + line.slice(0, _this.column - 1).replace(/[^\\t]/g, ' ');\n return '>' + gutter + line + '\\n ' + spacing + '^';\n } else {\n return ' ' + gutter + line;\n }\n }).join('\\n');\n }\n /**\n * Returns error position, message and source code of the broken part.\n *\n * @example\n * error.toString() //=> \"CssSyntaxError: app.css:1:1: Unclosed block\n * // > 1 | a {\n * // | ^\"\n *\n * @return {string} error position, message and source code\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n var code = this.showSourceCode();\n\n if (code) {\n code = '\\n\\n' + code + '\\n';\n }\n\n return this.name + ': ' + this.message + code;\n }\n }, {\n key: 'generated',\n get: function get() {\n (0, _warnOnce2.default)('CssSyntaxError#generated is depreacted. Use input instead.');\n return this.input;\n }\n /**\n * @memberof CssSyntaxError#\n * @member {Input} input - Input object with PostCSS internal information\n * about input file. If input has source map\n * from previous tool, PostCSS will use origin\n * (for example, Sass) source. You can use this\n * object to get PostCSS input source.\n *\n * @example\n * error.input.file //=> 'a.css'\n * error.file //=> 'a.sass'\n */\n\n }]);\n\n return CssSyntaxError;\n}();\n\nexports.default = CssSyntaxError;\nmodule.exports = exports['default'];","export default function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n strings.raw = raw;\n return strings;\n}","\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = position;\n\nfunction position(property, value) {\n if (property === 'position' && value === 'sticky') {\n return {\n position: ['-webkit-sticky', 'sticky']\n };\n }\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _interleave = require('../utils/interleave');\n\nvar _interleave2 = _interopRequireDefault(_interleave);\n\nvar _flatten = require('../utils/flatten');\n\nvar _flatten2 = _interopRequireDefault(_flatten);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar babelPluginFlowReactPropTypes_proptype_RuleSet = require('../types').babelPluginFlowReactPropTypes_proptype_RuleSet || require('prop-types').any;\n\nvar babelPluginFlowReactPropTypes_proptype_Interpolation = require('../types').babelPluginFlowReactPropTypes_proptype_Interpolation || require('prop-types').any;\n\nexports.default = function (strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n return (0, _flatten2.default)((0, _interleave2.default)(strings, interpolations));\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.withTheme = exports.ThemeProvider = exports.injectGlobal = exports.keyframes = exports.css = undefined;\n\nvar _generateAlphabeticName = require('./utils/generateAlphabeticName');\n\nvar _generateAlphabeticName2 = _interopRequireDefault(_generateAlphabeticName);\n\nvar _css = require('./constructors/css');\n\nvar _css2 = _interopRequireDefault(_css);\n\nvar _injectGlobal = require('./constructors/injectGlobal');\n\nvar _injectGlobal2 = _interopRequireDefault(_injectGlobal);\n\nvar _StyledComponent = require('./models/StyledComponent');\n\nvar _StyledComponent2 = _interopRequireDefault(_StyledComponent);\n\nvar _styled2 = require('./constructors/styled');\n\nvar _styled3 = _interopRequireDefault(_styled2);\n\nvar _keyframes2 = require('./constructors/keyframes');\n\nvar _keyframes3 = _interopRequireDefault(_keyframes2);\n\nvar _ComponentStyle2 = require('./models/ComponentStyle');\n\nvar _ComponentStyle3 = _interopRequireDefault(_ComponentStyle2);\n\nvar _ThemeProvider = require('./models/ThemeProvider');\n\nvar _ThemeProvider2 = _interopRequireDefault(_ThemeProvider);\n\nvar _withTheme = require('./hoc/withTheme');\n\nvar _withTheme2 = _interopRequireDefault(_withTheme);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/* Instantiate singletons */\n\n/* Import components */\n\n/* Import singleton constructors */\n\n\nvar keyframes = (0, _keyframes3.default)(_generateAlphabeticName2.default);\n/* Import Higher Order Components */\n\n/* Import singletons */\n\nvar styled = (0, _styled3.default)((0, _StyledComponent2.default)((0, _ComponentStyle3.default)(_generateAlphabeticName2.default)));\n/* Export everything */\n\nexports.default = styled;\nexports.css = _css2.default;\nexports.keyframes = keyframes;\nexports.injectGlobal = _injectGlobal2.default;\nexports.ThemeProvider = _ThemeProvider2.default;\nexports.withTheme = _withTheme2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}(); // break cyclical dependency deadlock – #87\n\n\nrequire('./root');\n\nvar _cssSyntaxError = require('./css-syntax-error');\n\nvar _cssSyntaxError2 = _interopRequireDefault(_cssSyntaxError);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n} // import PreviousMap from './previous-map';\n\n\nvar sequence = 0;\n/**\n * @typedef {object} filePosition\n * @property {string} file - path to file\n * @property {number} line - source line in file\n * @property {number} column - source column in file\n */\n\n/**\n * Represents the source CSS.\n *\n * @example\n * const root = postcss.parse(css, { from: file });\n * const input = root.source.input;\n */\n\nvar Input = function () {\n /**\n * @param {string} css - input CSS source\n * @param {object} [opts] - {@link Processor#process} options\n */\n function Input(css) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Input);\n /**\n * @member {string} - input CSS source\n *\n * @example\n * const input = postcss.parse('a{}', { from: file }).input;\n * input.css //=> \"a{}\";\n */\n\n\n this.css = css.toString();\n\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\\uFFFE\") {\n this.css = this.css.slice(1);\n }\n\n if (opts.from) {\n if (/^\\w+:\\/\\//.test(opts.from)) {\n /**\n * @member {string} - The absolute path to the CSS source file\n * defined with the `from` option.\n *\n * @example\n * const root = postcss.parse(css, { from: 'a.css' });\n * root.source.input.file //=> '/home/ai/a.css'\n */\n this.file = opts.from;\n } else {\n this.file = path.resolve(opts.from);\n }\n }\n /*\n let map = new PreviousMap(this.css, opts);\n if ( map.text ) {\n /!**\n * @member {PreviousMap} - The input source map passed from\n * a compilation step before PostCSS\n * (for example, from Sass compiler).\n *\n * @example\n * root.source.input.map.consumer().sources //=> ['a.sass']\n *!/\n this.map = map;\n let file = map.consumer().file;\n if ( !this.file && file ) this.file = this.mapResolve(file);\n }\n */\n\n\n if (!this.file) {\n sequence += 1;\n /**\n * @member {string} - The unique ID of the CSS source. It will be\n * created if `from` option is not provided\n * (because PostCSS does not know the file path).\n *\n * @example\n * const root = postcss.parse(css);\n * root.source.input.file //=> undefined\n * root.source.input.id //=> \"\"\n */\n\n this.id = '';\n }\n\n if (this.map) this.map.file = this.from;\n }\n\n _createClass(Input, [{\n key: 'error',\n value: function error(message, line, column) {\n var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var result = void 0;\n var origin = this.origin(line, column);\n\n if (origin) {\n result = new _cssSyntaxError2.default(message, origin.line, origin.column, origin.source, origin.file, opts.plugin);\n } else {\n result = new _cssSyntaxError2.default(message, line, column, this.css, this.file, opts.plugin);\n }\n\n result.input = {\n line: line,\n column: column,\n source: this.css\n };\n if (this.file) result.input.file = this.file;\n return result;\n }\n /**\n * Reads the input source map and returns a symbol position\n * in the input source (e.g., in a Sass file that was compiled\n * to CSS before being passed to PostCSS).\n *\n * @param {number} line - line in input CSS\n * @param {number} column - column in input CSS\n *\n * @return {filePosition} position in input source\n *\n * @example\n * root.source.input.origin(1, 1) //=> { file: 'a.css', line: 3, column: 1 }\n */\n\n }, {\n key: 'origin',\n value: function origin(line, column) {\n if (!this.map) return false;\n var consumer = this.map.consumer();\n var from = consumer.originalPositionFor({\n line: line,\n column: column\n });\n if (!from.source) return false;\n var result = {\n file: this.mapResolve(from.source),\n line: from.line,\n column: from.column\n };\n var source = consumer.sourceContentFor(from.source);\n if (source) result.source = source;\n return result;\n }\n }, {\n key: 'mapResolve',\n value: function mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n } else {\n return path.resolve(this.map.consumer().sourceRoot || '.', file);\n }\n }\n /**\n * The CSS source identifier. Contains {@link Input#file} if the user\n * set the `from` option, or {@link Input#id} if they did not.\n * @type {string}\n *\n * @example\n * const root = postcss.parse(css, { from: 'a.css' });\n * root.source.input.from //=> \"/home/ai/a.css\"\n *\n * const root = postcss.parse(css);\n * root.source.input.from //=> \"\"\n */\n\n }, {\n key: 'from',\n get: function get() {\n return this.file || this.id;\n }\n }]);\n\n return Input;\n}();\n\nexports.default = Input;\nmodule.exports = exports['default'];","'use strict';\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar babelPluginFlowReactPropTypes_proptype_Interpolation = require('../types').babelPluginFlowReactPropTypes_proptype_Interpolation || require('prop-types').any;\n\nexports.default = function (strings, interpolations) {\n return interpolations.reduce(function (array, interp, i) {\n return array.concat(interp, strings[i + 1]);\n }, [strings[0]]);\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\n\nvar _node = require('./node');\n\nvar _node2 = _interopRequireDefault(_node);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/**\n * Represents a CSS declaration.\n *\n * @extends Node\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * const decl = root.first.first;\n * decl.type //=> 'decl'\n * decl.toString() //=> ' color: black'\n */\n\n\nvar Declaration = function (_Node) {\n _inherits(Declaration, _Node);\n\n function Declaration(defaults) {\n _classCallCheck(this, Declaration);\n\n var _this = _possibleConstructorReturn(this, (Declaration.__proto__ || Object.getPrototypeOf(Declaration)).call(this, defaults));\n\n _this.type = 'decl';\n return _this;\n }\n\n _createClass(Declaration, [{\n key: '_value',\n get: function get() {\n (0, _warnOnce2.default)('Node#_value was deprecated. Use Node#raws.value');\n return this.raws.value;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Node#_value was deprecated. Use Node#raws.value');\n this.raws.value = val;\n }\n }, {\n key: '_important',\n get: function get() {\n (0, _warnOnce2.default)('Node#_important was deprecated. Use Node#raws.important');\n return this.raws.important;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Node#_important was deprecated. Use Node#raws.important');\n this.raws.important = val;\n }\n /**\n * @memberof Declaration#\n * @member {string} prop - the declaration’s property name\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * const decl = root.first.first;\n * decl.prop //=> 'color'\n */\n\n /**\n * @memberof Declaration#\n * @member {string} value - the declaration’s value\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * const decl = root.first.first;\n * decl.value //=> 'black'\n */\n\n /**\n * @memberof Declaration#\n * @member {boolean} important - `true` if the declaration\n * has an !important annotation.\n *\n * @example\n * const root = postcss.parse('a { color: black !important; color: red }');\n * root.first.first.important //=> true\n * root.first.last.important //=> undefined\n */\n\n /**\n * @memberof Declaration#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `between`: the symbols between the property and value\n * for declarations, selector and `{` for rules, or last parameter\n * and `{` for at-rules.\n * * `important`: the content of the important statement,\n * if it is not just `!important`.\n *\n * PostCSS cleans declaration from comments and extra spaces,\n * but it stores origin content in raws properties.\n * As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse('a {\\n color:black\\n}')\n * root.first.first.raws //=> { before: '\\n ', between: ':' }\n */\n\n }]);\n\n return Declaration;\n}(_node2.default);\n\nexports.default = Declaration;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nrequire('./at-rule');\n\nvar _container = require('./container');\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\n\nvar _list = require('./list');\n\nvar _list2 = _interopRequireDefault(_list);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // break cyclical dependency deadlock – #87\n\n/**\n * Represents a CSS rule: a selector followed by a declaration block.\n *\n * @extends Container\n *\n * @example\n * const root = postcss.parse('a{}');\n * const rule = root.first;\n * rule.type //=> 'rule'\n * rule.toString() //=> 'a{}'\n */\n\n\nvar Rule = function (_Container) {\n _inherits(Rule, _Container);\n\n function Rule(defaults) {\n _classCallCheck(this, Rule);\n\n var _this = _possibleConstructorReturn(this, (Rule.__proto__ || Object.getPrototypeOf(Rule)).call(this, defaults));\n\n _this.type = 'rule';\n if (!_this.nodes) _this.nodes = [];\n return _this;\n }\n /**\n * An array containing the rule’s individual selectors.\n * Groups of selectors are split at commas.\n *\n * @type {string[]}\n *\n * @example\n * const root = postcss.parse('a, b { }');\n * const rule = root.first;\n *\n * rule.selector //=> 'a, b'\n * rule.selectors //=> ['a', 'b']\n *\n * rule.selectors = ['a', 'strong'];\n * rule.selector //=> 'a, strong'\n */\n\n\n _createClass(Rule, [{\n key: 'selectors',\n get: function get() {\n return _list2.default.comma(this.selector);\n },\n set: function set(values) {\n var match = this.selector ? this.selector.match(/,\\s*/) : null;\n var sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen');\n this.selector = values.join(sep);\n }\n }, {\n key: '_selector',\n get: function get() {\n (0, _warnOnce2.default)('Rule#_selector is deprecated. Use Rule#raws.selector');\n return this.raws.selector;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Rule#_selector is deprecated. Use Rule#raws.selector');\n this.raws.selector = val;\n }\n /**\n * @memberof Rule#\n * @member {string} selector - the rule’s full selector represented\n * as a string\n *\n * @example\n * const root = postcss.parse('a, b { }');\n * const rule = root.first;\n * rule.selector //=> 'a, b'\n */\n\n /**\n * @memberof Rule#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `after`: the space symbols after the last child of the node\n * to the end of the node.\n * * `between`: the symbols between the property and value\n * for declarations, selector and `{` for rules, or last parameter\n * and `{` for at-rules.\n * * `semicolon`: contains true if the last child has\n * an (optional) semicolon.\n *\n * PostCSS cleans selectors from comments and extra spaces,\n * but it stores origin content in raws properties.\n * As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse('a {\\n color:black\\n}')\n * root.first.first.raws //=> { before: '', between: ' ', after: '\\n' }\n */\n\n }]);\n\n return Rule;\n}(_container2.default);\n\nexports.default = Rule;\nmodule.exports = exports['default'];","require(\"core-js/modules/es.math.hypot.js\");\n\n// https://d3js.org/d3-geo/ v2.0.1 Copyright 2020 Mike Bostock\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-array')) : typeof define === 'function' && define.amd ? define(['exports', 'd3-array'], factory) : (global = global || self, factory(global.d3 = global.d3 || {}, global.d3));\n})(this, function (exports, d3Array) {\n 'use strict';\n\n var epsilon = 1e-6;\n var epsilon2 = 1e-12;\n var pi = Math.PI;\n var halfPi = pi / 2;\n var quarterPi = pi / 4;\n var tau = pi * 2;\n var degrees = 180 / pi;\n var radians = pi / 180;\n var abs = Math.abs;\n var atan = Math.atan;\n var atan2 = Math.atan2;\n var cos = Math.cos;\n var ceil = Math.ceil;\n var exp = Math.exp;\n var hypot = Math.hypot;\n var log = Math.log;\n var pow = Math.pow;\n var sin = Math.sin;\n\n var sign = Math.sign || function (x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n };\n\n var sqrt = Math.sqrt;\n var tan = Math.tan;\n\n function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n }\n\n function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n }\n\n function haversin(x) {\n return (x = sin(x / 2)) * x;\n }\n\n function noop() {}\n\n function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n }\n\n var streamObjectType = {\n Feature: function Feature(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function FeatureCollection(object, stream) {\n var features = object.features,\n i = -1,\n n = features.length;\n\n while (++i < n) {\n streamGeometry(features[i].geometry, stream);\n }\n }\n };\n var streamGeometryType = {\n Sphere: function Sphere(object, stream) {\n stream.sphere();\n },\n Point: function Point(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function MultiPoint(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n object = coordinates[i], stream.point(object[0], object[1], object[2]);\n }\n },\n LineString: function LineString(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function MultiLineString(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n streamLine(coordinates[i], stream, 0);\n }\n },\n Polygon: function Polygon(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function MultiPolygon(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n streamPolygon(coordinates[i], stream);\n }\n },\n GeometryCollection: function GeometryCollection(object, stream) {\n var geometries = object.geometries,\n i = -1,\n n = geometries.length;\n\n while (++i < n) {\n streamGeometry(geometries[i], stream);\n }\n }\n };\n\n function streamLine(coordinates, stream, closed) {\n var i = -1,\n n = coordinates.length - closed,\n coordinate;\n stream.lineStart();\n\n while (++i < n) {\n coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n }\n\n stream.lineEnd();\n }\n\n function streamPolygon(coordinates, stream) {\n var i = -1,\n n = coordinates.length;\n stream.polygonStart();\n\n while (++i < n) {\n streamLine(coordinates[i], stream, 1);\n }\n\n stream.polygonEnd();\n }\n\n function geoStream(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n }\n\n var areaRingSum = new d3Array.Adder(); // hello?\n\n var areaSum = new d3Array.Adder(),\n lambda00,\n phi00,\n lambda0,\n cosPhi0,\n sinPhi0;\n var areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function polygonStart() {\n areaRingSum = new d3Array.Adder();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function polygonEnd() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop;\n },\n sphere: function sphere() {\n areaSum.add(tau);\n }\n };\n\n function areaRingStart() {\n areaStream.point = areaPointFirst;\n }\n\n function areaRingEnd() {\n areaPoint(lambda00, phi00);\n }\n\n function areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);\n }\n\n function areaPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n phi = phi / 2 + quarterPi; // half the angular distance from south pole\n // Spherical excess E for a spherical triangle with vertices: south pole,\n // previous point, current point. Uses a formula derived from Cagnoli’s\n // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n\n var dLambda = lambda - lambda0,\n sdLambda = dLambda >= 0 ? 1 : -1,\n adLambda = sdLambda * dLambda,\n cosPhi = cos(phi),\n sinPhi = sin(phi),\n k = sinPhi0 * sinPhi,\n u = cosPhi0 * cosPhi + k * cos(adLambda),\n v = k * sdLambda * sin(adLambda);\n areaRingSum.add(atan2(v, u)); // Advance the previous points.\n\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n }\n\n function area(object) {\n areaSum = new d3Array.Adder();\n geoStream(object, areaStream);\n return areaSum * 2;\n }\n\n function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n }\n\n function cartesian(spherical) {\n var lambda = spherical[0],\n phi = spherical[1],\n cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n }\n\n function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n }\n\n function 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 } // TODO return a\n\n\n function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n }\n\n function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n } // TODO return d\n\n\n function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n }\n\n var lambda0$1, phi0, lambda1, phi1, // bounds\n lambda2, // previous lambda-coordinate\n lambda00$1, phi00$1, // first point\n p0, // previous 3D point\n deltaSum, ranges, range;\n var boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function polygonStart() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum = new d3Array.Adder();\n areaStream.polygonStart();\n },\n polygonEnd: function polygonEnd() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90);else if (deltaSum > epsilon) phi1 = 90;else if (deltaSum < -epsilon) phi0 = -90;\n range[0] = lambda0$1, range[1] = lambda1;\n },\n sphere: function sphere() {\n lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n }\n };\n\n function boundsPoint(lambda, phi) {\n ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n\n function linePoint(lambda, phi) {\n var p = cartesian([lambda * radians, phi * radians]);\n\n if (p0) {\n var normal = cartesianCross(p0, p),\n equatorial = [normal[1], -normal[0], 0],\n inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2,\n sign = delta > 0 ? 1 : -1,\n lambdai = inflection[0] * degrees * sign,\n phii,\n antimeridian = abs(delta) > 180;\n\n if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = inflection[1] * degrees;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = -inflection[1] * degrees;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;\n }\n } else {\n if (lambda1 >= lambda0$1) {\n if (lambda < lambda0$1) lambda0$1 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;\n }\n }\n }\n } else {\n ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]);\n }\n\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n p0 = p, lambda2 = lambda;\n }\n\n function boundsLineStart() {\n boundsStream.point = linePoint;\n }\n\n function boundsLineEnd() {\n range[0] = lambda0$1, range[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n }\n\n function boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00$1 = lambda, phi00$1 = phi;\n }\n\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n }\n\n function boundsRingStart() {\n areaStream.lineStart();\n }\n\n function boundsRingEnd() {\n boundsRingPoint(lambda00$1, phi00$1);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon) lambda0$1 = -(lambda1 = 180);\n range[0] = lambda0$1, range[1] = lambda1;\n p0 = null;\n } // Finds the left-right distance between two longitudes.\n // This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n // the distance between ±180° to be 360°.\n\n\n function angle(lambda0, lambda1) {\n return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n }\n\n function rangeCompare(a, b) {\n return a[0] - b[0];\n }\n\n function rangeContains(range, x) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n }\n\n function bounds(feature) {\n var i, n, a, b, merged, deltaMax, delta;\n phi1 = lambda1 = -(lambda0$1 = phi0 = Infinity);\n ranges = [];\n geoStream(feature, boundsStream); // First, sort ranges by their minimum longitudes.\n\n if (n = ranges.length) {\n ranges.sort(rangeCompare); // Then, merge any ranges that overlap.\n\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\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 } // Finally, find the largest gap between the merged ranges.\n // The final bounding box will be the inverse of this gap.\n\n\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1];\n }\n }\n\n ranges = range = null;\n return lambda0$1 === Infinity || phi0 === Infinity ? [[NaN, NaN], [NaN, NaN]] : [[lambda0$1, phi0], [lambda1, phi1]];\n }\n\n var W0, W1, X0, Y0, Z0, X1, Y1, Z1, X2, Y2, Z2, lambda00$2, phi00$2, // first point\n x0, y0, z0; // previous point\n\n var centroidStream = {\n sphere: noop,\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function polygonStart() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function polygonEnd() {\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n }\n }; // Arithmetic mean of Cartesian vectors.\n\n function centroidPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n centroidPointCartesian(cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi));\n }\n\n function centroidPointCartesian(x, y, z) {\n ++W0;\n X0 += (x - X0) / W0;\n Y0 += (y - Y0) / W0;\n Z0 += (z - Z0) / W0;\n }\n\n function centroidLineStart() {\n centroidStream.point = centroidLinePointFirst;\n }\n\n function centroidLinePointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidStream.point = centroidLinePoint;\n centroidPointCartesian(x0, y0, z0);\n }\n\n function centroidLinePoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n w = atan2(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 W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n }\n\n function centroidLineEnd() {\n centroidStream.point = centroidPoint;\n } // See J. E. Brock, The Inertia Tensor for a Spherical Triangle,\n // J. Applied Mechanics 42, 239 (1975).\n\n\n function centroidRingStart() {\n centroidStream.point = centroidRingPointFirst;\n }\n\n function centroidRingEnd() {\n centroidRingPoint(lambda00$2, phi00$2);\n centroidStream.point = centroidPoint;\n }\n\n function centroidRingPointFirst(lambda, phi) {\n lambda00$2 = lambda, phi00$2 = phi;\n lambda *= radians, phi *= radians;\n centroidStream.point = centroidRingPoint;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidPointCartesian(x0, y0, z0);\n }\n\n function centroidRingPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n cx = y0 * z - z0 * y,\n cy = z0 * x - x0 * z,\n cz = x0 * y - y0 * x,\n m = hypot(cx, cy, cz),\n w = asin(m),\n // line weight = angle\n v = m && -w / m; // area weight multiplier\n\n X2.add(v * cx);\n Y2.add(v * cy);\n Z2.add(v * cz);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n }\n\n function centroid(object) {\n W0 = W1 = X0 = Y0 = Z0 = X1 = Y1 = Z1 = 0;\n X2 = new d3Array.Adder();\n Y2 = new d3Array.Adder();\n Z2 = new d3Array.Adder();\n geoStream(object, centroidStream);\n var x = +X2,\n y = +Y2,\n z = +Z2,\n m = hypot(x, y, z); // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.\n\n if (m < epsilon2) {\n x = X1, y = Y1, z = Z1; // If the feature has zero length, fall back to arithmetic mean of point vectors.\n\n if (W1 < epsilon) x = X0, y = Y0, z = Z0;\n m = hypot(x, y, z); // If the feature still has an undefined ccentroid, then return.\n\n if (m < epsilon2) return [NaN, NaN];\n }\n\n return [atan2(y, x) * degrees, asin(z / m) * degrees];\n }\n\n function constant(x) {\n return function () {\n return x;\n };\n }\n\n function compose(a, b) {\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\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\n function rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n }\n\n rotationIdentity.invert = rotationIdentity;\n\n function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma)) : rotationLambda(deltaLambda) : deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma) : rotationIdentity;\n }\n\n function forwardRotationLambda(deltaLambda) {\n return function (lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n }\n\n function rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n }\n\n function rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi), asin(k * cosDeltaGamma + y * sinDeltaGamma)];\n }\n\n rotation.invert = function (lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi), asin(k * cosDeltaPhi - x * sinDeltaPhi)];\n };\n\n return rotation;\n }\n\n function rotation(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function (coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n } // Generates a circle centered at [0°, 0°], with a given radius and precision.\n\n\n function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n } // Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\n\n\n function circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n }\n\n function circle() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {\n point: point\n };\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {\n type: \"Polygon\",\n coordinates: [ring]\n };\n ring = rotate = null;\n return c;\n }\n\n circle.center = function (_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function (_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function (_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n }\n\n function clipBuffer() {\n var lines = [],\n line;\n return {\n point: function point(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function lineStart() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function rejoin() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function result() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n }\n\n function pointEqual(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n }\n\n function Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n\n this.e = entry; // is an entry?\n\n this.v = false; // visited\n\n this.n = this.p = null; // next & previous\n } // A generalized polygon clipping algorithm: given a polygon that has been cut\n // into its visible line segments, and rejoins the segments by interpolating\n // along the clip edge.\n\n\n function clipRejoin(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n segments.forEach(function (segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n,\n p0 = segment[0],\n p1 = segment[n],\n x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n\n for (i = 0; i < n; ++i) {\n stream.point((p0 = segment[i])[0], p0[1]);\n }\n\n stream.lineEnd();\n return;\n } // handle degenerate cases by moving the point\n\n\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n if (!subject.length) return;\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n\n while (current.v) {\n if ((current = current.n) === start) return;\n }\n\n points = current.z;\n stream.lineStart();\n\n do {\n current.v = current.o.v = true;\n\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) {\n stream.point((point = points[i])[0], point[1]);\n }\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n\n for (i = points.length - 1; i >= 0; --i) {\n stream.point((point = points[i])[0], point[1]);\n }\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n\n current = current.p;\n }\n\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n\n stream.lineEnd();\n }\n }\n\n function link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n\n a.n = b = array[0];\n b.p = a;\n }\n\n function longitude(point) {\n if (abs(point[0]) <= pi) return point[0];else return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n }\n\n function polygonContains(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n var sum = new d3Array.Adder();\n if (sinPhi === 1) phi = halfPi + epsilon;else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta; // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n } // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ winding & 1;\n }\n\n function clip(pointVisible, clipLine, interpolate, start) {\n return function (sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function polygonStart() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function polygonEnd() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = d3Array.merge(segments);\n var startInside = polygonContains(polygon, start);\n\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function sphere() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i,\n n = ringSegments.length,\n m,\n segment,\n point;\n ring.pop();\n polygon.push(ring);\n ring = null;\n if (!n) return; // No intersections.\n\n if (clean & 1) {\n segment = ringSegments[0];\n\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n\n for (i = 0; i < m; ++i) {\n sink.point((point = segment[i])[0], point[1]);\n }\n\n sink.lineEnd();\n }\n\n return;\n } // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n\n\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n }\n\n function validSegment(segment) {\n return segment.length > 1;\n } // Intersections are sorted along the clip edge. For both antimeridian cutting\n // and circle clipping, the same comparison is used.\n\n\n function compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n }\n\n var clipAntimeridian = clip(function () {\n return true;\n }, clipAntimeridianLine, clipAntimeridianInterpolate, [-pi, -halfPi]); // Takes a line and cuts into visible segments. Return values: 0 - there were\n // intersections or the line was empty; 1 - no intersections; 2 - there were\n // intersections, and the first and last segments should be rejoined.\n\n function clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n _clean; // no intersections\n\n\n return {\n lineStart: function lineStart() {\n stream.lineStart();\n _clean = 1;\n },\n point: function point(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n\n if (abs(delta - pi) < epsilon) {\n // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n _clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) {\n // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n _clean = 0;\n }\n\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function lineEnd() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function clean() {\n return 2 - _clean; // if intersections, rejoin first and last segments\n }\n };\n }\n\n function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1) - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0)) / (cosPhi0 * cosPhi1 * sinLambda0Lambda1)) : (phi0 + phi1) / 2;\n }\n\n function clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function clipCircle(radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n } // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n\n\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n _clean2; // no intersections\n\n\n return {\n lineStart: function lineStart() {\n v00 = v0 = false;\n _clean2 = 1;\n },\n point: function point(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius ? v ? 0 : code(lambda, phi) : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2)) point1[2] = 1;\n }\n\n if (v !== v0) {\n _clean2 = 0;\n\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t; // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n _clean2 = 0;\n\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function lineEnd() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function clean() {\n return _clean2 | (v00 && v0) << 1;\n }\n };\n } // Intersects the great circle between a and b with the clip circle.\n\n\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b); // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n\n var n1 = [1, 0, 0],\n // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0],\n // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2; // Two polar points.\n\n if (!determinant) return !two && a;\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B); // Solve |p(t)|^2 = 1.\n\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n if (t2 < 0) return;\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n if (!two) return q; // Two intersection points.\n\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z; // Check that the first point is between a and b.\n\n if (meridian ? polar ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1) : phi0 <= q[1] && q[1] <= phi1 : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n } // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n\n\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n }\n\n function clipLine(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n\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\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n\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\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n\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\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n\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\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n }\n\n var clipMax = 1e9,\n clipMin = -clipMax; // TODO Use d3-polygon’s polygonContains here for the ring check?\n // TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\n function clipRectangle(x0, y0, x1, y1) {\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0,\n a1 = 0;\n\n if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoint(from, to) < 0 ^ direction > 0) {\n do {\n stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n } while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n 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 return function (stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__,\n y__,\n v__,\n // first point\n x_,\n y_,\n v_,\n // previous point\n first,\n clean;\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n\n if (a1 <= y1) {\n if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding;\n } else {\n if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding;\n }\n }\n }\n\n return winding;\n } // Buffer geometry within a polygon and then clip it en masse.\n\n\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = d3Array.merge(segments)).length;\n\n if (cleanInside || visible) {\n stream.polygonStart();\n\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n\n stream.polygonEnd();\n }\n\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n } // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n\n\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n }\n\n function extent() {\n var x0 = 0,\n y0 = 0,\n x1 = 960,\n y1 = 500,\n cache,\n cacheStream,\n clip;\n return clip = {\n stream: function stream(_stream) {\n return cache && cacheStream === _stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = _stream);\n },\n extent: function extent(_) {\n return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];\n }\n };\n }\n\n var lengthSum, lambda0$2, sinPhi0$1, cosPhi0$1;\n var lengthStream = {\n sphere: noop,\n point: noop,\n lineStart: lengthLineStart,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop\n };\n\n function lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n }\n\n function lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop;\n }\n\n function lengthPointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n lambda0$2 = lambda, sinPhi0$1 = sin(phi), cosPhi0$1 = cos(phi);\n lengthStream.point = lengthPoint;\n }\n\n function lengthPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var sinPhi = sin(phi),\n cosPhi = cos(phi),\n delta = abs(lambda - lambda0$2),\n cosDelta = cos(delta),\n sinDelta = sin(delta),\n x = cosPhi * sinDelta,\n y = cosPhi0$1 * sinPhi - sinPhi0$1 * cosPhi * cosDelta,\n z = sinPhi0$1 * sinPhi + cosPhi0$1 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt(x * x + y * y), z));\n lambda0$2 = lambda, sinPhi0$1 = sinPhi, cosPhi0$1 = cosPhi;\n }\n\n function length(object) {\n lengthSum = new d3Array.Adder();\n geoStream(object, lengthStream);\n return +lengthSum;\n }\n\n var coordinates = [null, null],\n object = {\n type: \"LineString\",\n coordinates: coordinates\n };\n\n function distance(a, b) {\n coordinates[0] = a;\n coordinates[1] = b;\n return length(object);\n }\n\n var containsObjectType = {\n Feature: function Feature(object, point) {\n return containsGeometry(object.geometry, point);\n },\n FeatureCollection: function FeatureCollection(object, point) {\n var features = object.features,\n i = -1,\n n = features.length;\n\n while (++i < n) {\n if (containsGeometry(features[i].geometry, point)) return true;\n }\n\n return false;\n }\n };\n var containsGeometryType = {\n Sphere: function Sphere() {\n return true;\n },\n Point: function Point(object, point) {\n return containsPoint(object.coordinates, point);\n },\n MultiPoint: function MultiPoint(object, point) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n if (containsPoint(coordinates[i], point)) return true;\n }\n\n return false;\n },\n LineString: function LineString(object, point) {\n return containsLine(object.coordinates, point);\n },\n MultiLineString: function MultiLineString(object, point) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n if (containsLine(coordinates[i], point)) return true;\n }\n\n return false;\n },\n Polygon: function Polygon(object, point) {\n return containsPolygon(object.coordinates, point);\n },\n MultiPolygon: function MultiPolygon(object, point) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n if (containsPolygon(coordinates[i], point)) return true;\n }\n\n return false;\n },\n GeometryCollection: function GeometryCollection(object, point) {\n var geometries = object.geometries,\n i = -1,\n n = geometries.length;\n\n while (++i < n) {\n if (containsGeometry(geometries[i], point)) return true;\n }\n\n return false;\n }\n };\n\n function containsGeometry(geometry, point) {\n return geometry && containsGeometryType.hasOwnProperty(geometry.type) ? containsGeometryType[geometry.type](geometry, point) : false;\n }\n\n function containsPoint(coordinates, point) {\n return distance(coordinates, point) === 0;\n }\n\n function containsLine(coordinates, point) {\n var ao, bo, ab;\n\n for (var i = 0, n = coordinates.length; i < n; i++) {\n bo = distance(coordinates[i], point);\n if (bo === 0) return true;\n\n if (i > 0) {\n ab = distance(coordinates[i], coordinates[i - 1]);\n if (ab > 0 && ao <= ab && bo <= ab && (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab) return true;\n }\n\n ao = bo;\n }\n\n return false;\n }\n\n function containsPolygon(coordinates, point) {\n return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));\n }\n\n function ringRadians(ring) {\n return ring = ring.map(pointRadians), ring.pop(), ring;\n }\n\n function pointRadians(point) {\n return [point[0] * radians, point[1] * radians];\n }\n\n function contains(object, point) {\n return (object && containsObjectType.hasOwnProperty(object.type) ? containsObjectType[object.type] : containsGeometry)(object, point);\n }\n\n function graticuleX(y0, y1, dy) {\n var y = d3Array.range(y0, y1 - epsilon, dy).concat(y1);\n return function (x) {\n return y.map(function (y) {\n return [x, y];\n });\n };\n }\n\n function graticuleY(x0, x1, dx) {\n var x = d3Array.range(x0, x1 - epsilon, dx).concat(x1);\n return function (y) {\n return x.map(function (x) {\n return [x, y];\n });\n };\n }\n\n function graticule() {\n var x1,\n x0,\n X1,\n X0,\n y1,\n y0,\n Y1,\n Y0,\n dx = 10,\n dy = dx,\n DX = 90,\n DY = 360,\n x,\n y,\n X,\n Y,\n precision = 2.5;\n\n function graticule() {\n return {\n type: \"MultiLineString\",\n coordinates: lines()\n };\n }\n\n function lines() {\n return d3Array.range(ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3Array.range(ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3Array.range(ceil(x0 / dx) * dx, x1, dx).filter(function (x) {\n return abs(x % DX) > epsilon;\n }).map(x)).concat(d3Array.range(ceil(y0 / dy) * dy, y1, dy).filter(function (y) {\n return abs(y % DY) > epsilon;\n }).map(y));\n }\n\n graticule.lines = function () {\n return lines().map(function (coordinates) {\n return {\n type: \"LineString\",\n coordinates: coordinates\n };\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\n graticule.extent = function (_) {\n if (!arguments.length) return graticule.extentMinor();\n return graticule.extentMajor(_).extentMinor(_);\n };\n\n graticule.extentMajor = 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\n graticule.extentMinor = 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\n graticule.step = function (_) {\n if (!arguments.length) return graticule.stepMinor();\n return graticule.stepMajor(_).stepMinor(_);\n };\n\n graticule.stepMajor = function (_) {\n if (!arguments.length) return [DX, DY];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n\n graticule.stepMinor = function (_) {\n if (!arguments.length) return [dx, dy];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n\n graticule.precision = function (_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = graticuleX(y0, y1, 90);\n y = graticuleY(x0, x1, precision);\n X = graticuleX(Y0, Y1, 90);\n Y = graticuleY(X0, X1, precision);\n return graticule;\n };\n\n return graticule.extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]]).extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);\n }\n\n function graticule10() {\n return graticule()();\n }\n\n function interpolate(a, b) {\n var x0 = a[0] * radians,\n y0 = a[1] * radians,\n x1 = b[0] * radians,\n y1 = b[1] * radians,\n cy0 = cos(y0),\n sy0 = sin(y0),\n cy1 = cos(y1),\n sy1 = sin(y1),\n kx0 = cy0 * cos(x0),\n ky0 = cy0 * sin(x0),\n kx1 = cy1 * cos(x1),\n ky1 = cy1 * sin(x1),\n d = 2 * asin(sqrt(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),\n k = sin(d);\n var interpolate = d ? function (t) {\n var B = sin(t *= d) / k,\n A = sin(d - t) / k,\n x = A * kx0 + B * kx1,\n y = A * ky0 + B * ky1,\n z = A * sy0 + B * sy1;\n return [atan2(y, x) * degrees, atan2(z, sqrt(x * x + y * y)) * degrees];\n } : function () {\n return [x0 * degrees, y0 * degrees];\n };\n interpolate.distance = d;\n return interpolate;\n }\n\n var identity = function identity(x) {\n return x;\n };\n\n var areaSum$1 = new d3Array.Adder(),\n areaRingSum$1 = new d3Array.Adder(),\n x00,\n y00,\n x0$1,\n y0$1;\n var areaStream$1 = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function polygonStart() {\n areaStream$1.lineStart = areaRingStart$1;\n areaStream$1.lineEnd = areaRingEnd$1;\n },\n polygonEnd: function polygonEnd() {\n areaStream$1.lineStart = areaStream$1.lineEnd = areaStream$1.point = noop;\n areaSum$1.add(abs(areaRingSum$1));\n areaRingSum$1 = new d3Array.Adder();\n },\n result: function result() {\n var area = areaSum$1 / 2;\n areaSum$1 = new d3Array.Adder();\n return area;\n }\n };\n\n function areaRingStart$1() {\n areaStream$1.point = areaPointFirst$1;\n }\n\n function areaPointFirst$1(x, y) {\n areaStream$1.point = areaPoint$1;\n x00 = x0$1 = x, y00 = y0$1 = y;\n }\n\n function areaPoint$1(x, y) {\n areaRingSum$1.add(y0$1 * x - x0$1 * y);\n x0$1 = x, y0$1 = y;\n }\n\n function areaRingEnd$1() {\n areaPoint$1(x00, y00);\n }\n\n var x0$2 = Infinity,\n y0$2 = x0$2,\n x1 = -x0$2,\n y1 = x1;\n var boundsStream$1 = {\n point: boundsPoint$1,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function result() {\n var bounds = [[x0$2, y0$2], [x1, y1]];\n x1 = y1 = -(y0$2 = x0$2 = Infinity);\n return bounds;\n }\n };\n\n function boundsPoint$1(x, y) {\n if (x < x0$2) x0$2 = x;\n if (x > x1) x1 = x;\n if (y < y0$2) y0$2 = y;\n if (y > y1) y1 = y;\n } // TODO Enforce positive area for exterior, negative area for interior?\n\n\n var X0$1 = 0,\n Y0$1 = 0,\n Z0$1 = 0,\n X1$1 = 0,\n Y1$1 = 0,\n Z1$1 = 0,\n X2$1 = 0,\n Y2$1 = 0,\n Z2$1 = 0,\n x00$1,\n y00$1,\n x0$3,\n y0$3;\n var centroidStream$1 = {\n point: centroidPoint$1,\n lineStart: centroidLineStart$1,\n lineEnd: centroidLineEnd$1,\n polygonStart: function polygonStart() {\n centroidStream$1.lineStart = centroidRingStart$1;\n centroidStream$1.lineEnd = centroidRingEnd$1;\n },\n polygonEnd: function polygonEnd() {\n centroidStream$1.point = centroidPoint$1;\n centroidStream$1.lineStart = centroidLineStart$1;\n centroidStream$1.lineEnd = centroidLineEnd$1;\n },\n result: function result() {\n var centroid = Z2$1 ? [X2$1 / Z2$1, Y2$1 / Z2$1] : Z1$1 ? [X1$1 / Z1$1, Y1$1 / Z1$1] : Z0$1 ? [X0$1 / Z0$1, Y0$1 / Z0$1] : [NaN, NaN];\n X0$1 = Y0$1 = Z0$1 = X1$1 = Y1$1 = Z1$1 = X2$1 = Y2$1 = Z2$1 = 0;\n return centroid;\n }\n };\n\n function centroidPoint$1(x, y) {\n X0$1 += x;\n Y0$1 += y;\n ++Z0$1;\n }\n\n function centroidLineStart$1() {\n centroidStream$1.point = centroidPointFirstLine;\n }\n\n function centroidPointFirstLine(x, y) {\n centroidStream$1.point = centroidPointLine;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n }\n\n function centroidPointLine(x, y) {\n var dx = x - x0$3,\n dy = y - y0$3,\n z = sqrt(dx * dx + dy * dy);\n X1$1 += z * (x0$3 + x) / 2;\n Y1$1 += z * (y0$3 + y) / 2;\n Z1$1 += z;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n }\n\n function centroidLineEnd$1() {\n centroidStream$1.point = centroidPoint$1;\n }\n\n function centroidRingStart$1() {\n centroidStream$1.point = centroidPointFirstRing;\n }\n\n function centroidRingEnd$1() {\n centroidPointRing(x00$1, y00$1);\n }\n\n function centroidPointFirstRing(x, y) {\n centroidStream$1.point = centroidPointRing;\n centroidPoint$1(x00$1 = x0$3 = x, y00$1 = y0$3 = y);\n }\n\n function centroidPointRing(x, y) {\n var dx = x - x0$3,\n dy = y - y0$3,\n z = sqrt(dx * dx + dy * dy);\n X1$1 += z * (x0$3 + x) / 2;\n Y1$1 += z * (y0$3 + y) / 2;\n Z1$1 += z;\n z = y0$3 * x - x0$3 * y;\n X2$1 += z * (x0$3 + x);\n Y2$1 += z * (y0$3 + y);\n Z2$1 += z * 3;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n }\n\n function PathContext(context) {\n this._context = context;\n }\n\n PathContext.prototype = {\n _radius: 4.5,\n pointRadius: function pointRadius(_) {\n return this._radius = _, this;\n },\n polygonStart: function polygonStart() {\n this._line = 0;\n },\n polygonEnd: function polygonEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function point(x, y) {\n switch (this._point) {\n case 0:\n {\n this._context.moveTo(x, y);\n\n this._point = 1;\n break;\n }\n\n case 1:\n {\n this._context.lineTo(x, y);\n\n break;\n }\n\n default:\n {\n this._context.moveTo(x + this._radius, y);\n\n this._context.arc(x, y, this._radius, 0, tau);\n\n break;\n }\n }\n },\n result: noop\n };\n var lengthSum$1 = new d3Array.Adder(),\n lengthRing,\n x00$2,\n y00$2,\n x0$4,\n y0$4;\n var lengthStream$1 = {\n point: noop,\n lineStart: function lineStart() {\n lengthStream$1.point = lengthPointFirst$1;\n },\n lineEnd: function lineEnd() {\n if (lengthRing) lengthPoint$1(x00$2, y00$2);\n lengthStream$1.point = noop;\n },\n polygonStart: function polygonStart() {\n lengthRing = true;\n },\n polygonEnd: function polygonEnd() {\n lengthRing = null;\n },\n result: function result() {\n var length = +lengthSum$1;\n lengthSum$1 = new d3Array.Adder();\n return length;\n }\n };\n\n function lengthPointFirst$1(x, y) {\n lengthStream$1.point = lengthPoint$1;\n x00$2 = x0$4 = x, y00$2 = y0$4 = y;\n }\n\n function lengthPoint$1(x, y) {\n x0$4 -= x, y0$4 -= y;\n lengthSum$1.add(sqrt(x0$4 * x0$4 + y0$4 * y0$4));\n x0$4 = x, y0$4 = y;\n }\n\n function PathString() {\n this._string = [];\n }\n\n PathString.prototype = {\n _radius: 4.5,\n _circle: circle$1(4.5),\n pointRadius: function pointRadius(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function polygonStart() {\n this._line = 0;\n },\n polygonEnd: function polygonEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function point(x, y) {\n switch (this._point) {\n case 0:\n {\n this._string.push(\"M\", x, \",\", y);\n\n this._point = 1;\n break;\n }\n\n case 1:\n {\n this._string.push(\"L\", x, \",\", y);\n\n break;\n }\n\n default:\n {\n if (this._circle == null) this._circle = circle$1(this._radius);\n\n this._string.push(\"M\", x, \",\", y, this._circle);\n\n break;\n }\n }\n },\n result: function result() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n };\n\n function circle$1(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\n function index(projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n geoStream(object, projectionStream(contextStream));\n }\n\n return contextStream.result();\n }\n\n path.area = function (object) {\n geoStream(object, projectionStream(areaStream$1));\n return areaStream$1.result();\n };\n\n path.measure = function (object) {\n geoStream(object, projectionStream(lengthStream$1));\n return lengthStream$1.result();\n };\n\n path.bounds = function (object) {\n geoStream(object, projectionStream(boundsStream$1));\n return boundsStream$1.result();\n };\n\n path.centroid = function (object) {\n geoStream(object, projectionStream(centroidStream$1));\n return centroidStream$1.result();\n };\n\n path.projection = function (_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function (_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString()) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function (_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n }\n\n function transform(methods) {\n return {\n stream: transformer(methods)\n };\n }\n\n function transformer(methods) {\n return function (stream) {\n var s = new TransformStream();\n\n for (var key in methods) {\n s[key] = methods[key];\n }\n\n s.stream = stream;\n return s;\n };\n }\n\n function TransformStream() {}\n\n TransformStream.prototype = {\n constructor: TransformStream,\n point: function point(x, y) {\n this.stream.point(x, y);\n },\n sphere: function sphere() {\n this.stream.sphere();\n },\n lineStart: function lineStart() {\n this.stream.lineStart();\n },\n lineEnd: function lineEnd() {\n this.stream.lineEnd();\n },\n polygonStart: function polygonStart() {\n this.stream.polygonStart();\n },\n polygonEnd: function polygonEnd() {\n this.stream.polygonEnd();\n }\n };\n\n function fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream$1));\n fitBounds(boundsStream$1.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n }\n\n function fitExtent(projection, extent, object) {\n return fit(projection, function (b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n }\n\n function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n }\n\n function fitWidth(projection, width, object) {\n return fit(projection, function (b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n }\n\n function fitHeight(projection, height, object) {\n return fit(projection, function (b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n }\n\n var maxDepth = 16,\n // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\n function resample(project, delta2) {\n return +delta2 ? resample$1(project, delta2) : resampleNone(project);\n }\n\n function resampleNone(project) {\n return transformer({\n point: function point(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n }\n\n function resample$1(project, delta2) {\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {\n // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n\n return function (stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function polygonStart() {\n stream.polygonStart();\n resampleStream.lineStart = ringStart;\n },\n polygonEnd: function polygonEnd() {\n stream.polygonEnd();\n resampleStream.lineStart = lineStart;\n }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]),\n p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n }\n\n var transformRadians = transformer({\n point: function point(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n });\n\n function transformRotate(rotate) {\n return transformer({\n point: function point(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n }\n\n function scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx;\n y *= sy;\n return [dx + k * x, dy - k * y];\n }\n\n transform.invert = function (x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n\n return transform;\n }\n\n function scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n\n function transform(x, y) {\n x *= sx;\n y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n\n transform.invert = function (x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n\n return transform;\n }\n\n function projection(project) {\n return projectionMutator(function () {\n return project;\n })();\n }\n\n function projectionMutator(projectAt) {\n var project,\n k = 150,\n // scale\n x = 480,\n y = 250,\n // translate\n lambda = 0,\n phi = 0,\n // center\n deltaLambda = 0,\n deltaPhi = 0,\n deltaGamma = 0,\n rotate,\n // pre-rotate\n alpha = 0,\n // post-rotate angle\n sx = 1,\n // reflectX\n sy = 1,\n // reflectX\n theta = null,\n preclip = clipAntimeridian,\n // pre-clip angle\n x0 = null,\n y0,\n x1,\n y1,\n postclip = identity,\n // post-clip extent\n delta2 = 0.5,\n // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function (stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function (_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function (_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function (_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function (_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function (_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function (_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function (_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function (_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function (_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function (_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function (_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function (_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function (extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function (size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function (width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function (height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function () {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n }\n\n function conicProjection(projectAt) {\n var phi0 = 0,\n phi1 = pi / 3,\n m = projectionMutator(projectAt),\n p = m(phi0, phi1);\n\n p.parallels = function (_) {\n return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];\n };\n\n return p;\n }\n\n function cylindricalEqualAreaRaw(phi0) {\n var cosPhi0 = cos(phi0);\n\n function forward(lambda, phi) {\n return [lambda * cosPhi0, sin(phi) / cosPhi0];\n }\n\n forward.invert = function (x, y) {\n return [x / cosPhi0, asin(y * cosPhi0)];\n };\n\n return forward;\n }\n\n function conicEqualAreaRaw(y0, y1) {\n var sy0 = sin(y0),\n n = (sy0 + sin(y1)) / 2; // Are the parallels symmetrical around the Equator?\n\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);\n var c = 1 + sy0 * (2 * n - sy0),\n r0 = sqrt(c) / n;\n\n function project(x, y) {\n var r = sqrt(c - 2 * n * sin(y)) / n;\n return [r * sin(x *= n), r0 - r * cos(x)];\n }\n\n project.invert = function (x, y) {\n var r0y = r0 - y,\n l = atan2(x, abs(r0y)) * sign(r0y);\n if (r0y * n < 0) l -= pi * sign(x) * sign(r0y);\n return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n\n return project;\n }\n\n function conicEqualArea() {\n return conicProjection(conicEqualAreaRaw).scale(155.424).center([0, 33.6442]);\n }\n\n function albers() {\n return conicEqualArea().parallels([29.5, 45.5]).scale(1070).translate([480, 250]).rotate([96, 0]).center([-0.6, 38.7]);\n } // The projections must have mutually exclusive clip regions on the sphere,\n // as this will avoid emitting interleaving lines and polygons.\n\n\n function multiplex(streams) {\n var n = streams.length;\n return {\n point: function point(x, y) {\n var i = -1;\n\n while (++i < n) {\n streams[i].point(x, y);\n }\n },\n sphere: function sphere() {\n var i = -1;\n\n while (++i < n) {\n streams[i].sphere();\n }\n },\n lineStart: function lineStart() {\n var i = -1;\n\n while (++i < n) {\n streams[i].lineStart();\n }\n },\n lineEnd: function lineEnd() {\n var i = -1;\n\n while (++i < n) {\n streams[i].lineEnd();\n }\n },\n polygonStart: function polygonStart() {\n var i = -1;\n\n while (++i < n) {\n streams[i].polygonStart();\n }\n },\n polygonEnd: function polygonEnd() {\n var i = -1;\n\n while (++i < n) {\n streams[i].polygonEnd();\n }\n }\n };\n } // A composite projection for the United States, configured by default for\n // 960×500. The projection also works quite well at 960×600 if you change the\n // scale to 1285 and adjust the translate accordingly. The set of standard\n // parallels for each region comes from USGS, which is published here:\n // http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\n\n\n function albersUsa() {\n var cache,\n cacheStream,\n lower48 = albers(),\n lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]),\n alaskaPoint,\n // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]),\n hawaiiPoint,\n // ESRI:102007\n _point,\n pointStream = {\n point: function point(x, y) {\n _point = [x, y];\n }\n };\n\n function albersUsa(coordinates) {\n var x = coordinates[0],\n y = coordinates[1];\n return _point = null, (lower48Point.point(x, y), _point) || (alaskaPoint.point(x, y), _point) || (hawaiiPoint.point(x, y), _point);\n }\n\n albersUsa.invert = function (coordinates) {\n var k = lower48.scale(),\n t = lower48.translate(),\n x = (coordinates[0] - t[0]) / k,\n y = (coordinates[1] - t[1]) / k;\n return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii : lower48).invert(coordinates);\n };\n\n albersUsa.stream = function (stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n\n albersUsa.precision = function (_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return reset();\n };\n\n albersUsa.scale = function (_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n\n albersUsa.translate = function (_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(),\n x = +_[0],\n y = +_[1];\n lower48Point = lower48.translate(_).clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]]).stream(pointStream);\n alaskaPoint = alaska.translate([x - 0.307 * k, y + 0.201 * k]).clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]]).stream(pointStream);\n hawaiiPoint = hawaii.translate([x - 0.205 * k, y + 0.212 * k]).clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]]).stream(pointStream);\n return reset();\n };\n\n albersUsa.fitExtent = function (extent, object) {\n return fitExtent(albersUsa, extent, object);\n };\n\n albersUsa.fitSize = function (size, object) {\n return fitSize(albersUsa, size, object);\n };\n\n albersUsa.fitWidth = function (width, object) {\n return fitWidth(albersUsa, width, object);\n };\n\n albersUsa.fitHeight = function (height, object) {\n return fitHeight(albersUsa, height, object);\n };\n\n function reset() {\n cache = cacheStream = null;\n return albersUsa;\n }\n\n return albersUsa.scale(1070);\n }\n\n function azimuthalRaw(scale) {\n return function (x, y) {\n var cx = cos(x),\n cy = cos(y),\n k = scale(cx * cy);\n if (k === Infinity) return [2, 0];\n return [k * cy * sin(x), k * sin(y)];\n };\n }\n\n function azimuthalInvert(angle) {\n return function (x, y) {\n var z = sqrt(x * x + y * y),\n c = angle(z),\n sc = sin(c),\n cc = cos(c);\n return [atan2(x * sc, z * cc), asin(z && y * sc / z)];\n };\n }\n\n var azimuthalEqualAreaRaw = azimuthalRaw(function (cxcy) {\n return sqrt(2 / (1 + cxcy));\n });\n azimuthalEqualAreaRaw.invert = azimuthalInvert(function (z) {\n return 2 * asin(z / 2);\n });\n\n function azimuthalEqualArea() {\n return projection(azimuthalEqualAreaRaw).scale(124.75).clipAngle(180 - 1e-3);\n }\n\n var azimuthalEquidistantRaw = azimuthalRaw(function (c) {\n return (c = acos(c)) && c / sin(c);\n });\n azimuthalEquidistantRaw.invert = azimuthalInvert(function (z) {\n return z;\n });\n\n function azimuthalEquidistant() {\n return projection(azimuthalEquidistantRaw).scale(79.4188).clipAngle(180 - 1e-3);\n }\n\n function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n }\n\n mercatorRaw.invert = function (x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n };\n\n function mercator() {\n return mercatorProjection(mercatorRaw).scale(961 / tau);\n }\n\n function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null,\n y0,\n x1,\n y1; // clip extent\n\n m.scale = function (_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function (_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function (_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function (_) {\n return arguments.length ? (_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]] : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n }\n\n function tany(y) {\n return tan((halfPi + y) / 2);\n }\n\n function conicConformalRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : log(cy0 / cos(y1)) / log(tany(y1) / tany(y0)),\n f = cy0 * pow(tany(y0), n) / n;\n if (!n) return mercatorRaw;\n\n function project(x, y) {\n if (f > 0) {\n if (y < -halfPi + epsilon) y = -halfPi + epsilon;\n } else {\n if (y > halfPi - epsilon) y = halfPi - epsilon;\n }\n\n var r = f / pow(tany(y), n);\n return [r * sin(n * x), f - r * cos(n * x)];\n }\n\n project.invert = function (x, y) {\n var fy = f - y,\n r = sign(n) * sqrt(x * x + fy * fy),\n l = atan2(x, abs(fy)) * sign(fy);\n if (fy * n < 0) l -= pi * sign(x) * sign(fy);\n return [l / n, 2 * atan(pow(f / r, 1 / n)) - halfPi];\n };\n\n return project;\n }\n\n function conicConformal() {\n return conicProjection(conicConformalRaw).scale(109.5).parallels([30, 30]);\n }\n\n function equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n }\n\n equirectangularRaw.invert = equirectangularRaw;\n\n function equirectangular() {\n return projection(equirectangularRaw).scale(152.63);\n }\n\n function conicEquidistantRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : (cy0 - cos(y1)) / (y1 - y0),\n g = cy0 / n + y0;\n if (abs(n) < epsilon) return equirectangularRaw;\n\n function project(x, y) {\n var gy = g - y,\n nx = n * x;\n return [gy * sin(nx), g - gy * cos(nx)];\n }\n\n project.invert = function (x, y) {\n var gy = g - y,\n l = atan2(x, abs(gy)) * sign(gy);\n if (gy * n < 0) l -= pi * sign(x) * sign(gy);\n return [l / n, g - sign(n) * sqrt(x * x + gy * gy)];\n };\n\n return project;\n }\n\n function conicEquidistant() {\n return conicProjection(conicEquidistantRaw).scale(131.154).center([0, 13.9389]);\n }\n\n var A1 = 1.340264,\n A2 = -0.081106,\n A3 = 0.000893,\n A4 = 0.003796,\n M = sqrt(3) / 2,\n iterations = 12;\n\n function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)),\n l2 = l * l,\n l6 = l2 * l2 * l2;\n return [lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))), l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))];\n }\n\n equalEarthRaw.invert = function (x, y) {\n var l = y,\n l2 = l * l,\n l6 = l2 * l2 * l2;\n\n for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n if (abs(delta) < epsilon2) break;\n }\n\n return [M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l), asin(sin(l) / M)];\n };\n\n function equalEarth() {\n return projection(equalEarthRaw).scale(177.158);\n }\n\n function gnomonicRaw(x, y) {\n var cy = cos(y),\n k = cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n }\n\n gnomonicRaw.invert = azimuthalInvert(atan);\n\n function gnomonic() {\n return projection(gnomonicRaw).scale(144.049).clipAngle(60);\n }\n\n function identity$1() {\n var k = 1,\n tx = 0,\n ty = 0,\n sx = 1,\n sy = 1,\n // scale, translate and reflect\n alpha = 0,\n ca,\n sa,\n // angle\n x0 = null,\n y0,\n x1,\n y1,\n // clip extent\n kx = 1,\n ky = 1,\n transform = transformer({\n point: function point(x, y) {\n var p = projection([x, y]);\n this.stream.point(p[0], p[1]);\n }\n }),\n postclip = identity,\n cache,\n cacheStream;\n\n function reset() {\n kx = k * sx;\n ky = k * sy;\n cache = cacheStream = null;\n return projection;\n }\n\n function projection(p) {\n var x = p[0] * kx,\n y = p[1] * ky;\n\n if (alpha) {\n var t = y * ca - x * sa;\n x = x * ca + y * sa;\n y = t;\n }\n\n return [x + tx, y + ty];\n }\n\n projection.invert = function (p) {\n var x = p[0] - tx,\n y = p[1] - ty;\n\n if (alpha) {\n var t = y * ca + x * sa;\n x = x * ca - y * sa;\n y = t;\n }\n\n return [x / kx, y / ky];\n };\n\n projection.stream = function (stream) {\n return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));\n };\n\n projection.postclip = function (_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipExtent = function (_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function (_) {\n return arguments.length ? (k = +_, reset()) : k;\n };\n\n projection.translate = function (_) {\n return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];\n };\n\n projection.angle = function (_) {\n return arguments.length ? (alpha = _ % 360 * radians, sa = sin(alpha), ca = cos(alpha), reset()) : alpha * degrees;\n };\n\n projection.reflectX = function (_) {\n return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;\n };\n\n projection.reflectY = function (_) {\n return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;\n };\n\n projection.fitExtent = function (extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function (size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function (width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function (height, object) {\n return fitHeight(projection, height, object);\n };\n\n return projection;\n }\n\n function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi,\n phi4 = phi2 * phi2;\n return [lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))), phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))];\n }\n\n naturalEarth1Raw.invert = function (x, y) {\n var phi = y,\n i = 25,\n delta;\n\n do {\n var phi2 = phi * phi,\n phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) / (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n\n return [x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))), phi];\n };\n\n function naturalEarth1() {\n return projection(naturalEarth1Raw).scale(175.295);\n }\n\n function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n }\n\n orthographicRaw.invert = azimuthalInvert(asin);\n\n function orthographic() {\n return projection(orthographicRaw).scale(249.5).clipAngle(90 + epsilon);\n }\n\n function stereographicRaw(x, y) {\n var cy = cos(y),\n k = 1 + cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n }\n\n stereographicRaw.invert = azimuthalInvert(function (z) {\n return 2 * atan(z);\n });\n\n function stereographic() {\n return projection(stereographicRaw).scale(250).clipAngle(142);\n }\n\n function transverseMercatorRaw(lambda, phi) {\n return [log(tan((halfPi + phi) / 2)), -lambda];\n }\n\n transverseMercatorRaw.invert = function (x, y) {\n return [-y, 2 * atan(exp(x)) - halfPi];\n };\n\n function transverseMercator() {\n var m = mercatorProjection(transverseMercatorRaw),\n center = m.center,\n rotate = m.rotate;\n\n m.center = function (_) {\n return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n };\n\n m.rotate = function (_) {\n return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n };\n\n return rotate([0, 0, 90]).scale(159.155);\n }\n\n exports.geoAlbers = albers;\n exports.geoAlbersUsa = albersUsa;\n exports.geoArea = area;\n exports.geoAzimuthalEqualArea = azimuthalEqualArea;\n exports.geoAzimuthalEqualAreaRaw = azimuthalEqualAreaRaw;\n exports.geoAzimuthalEquidistant = azimuthalEquidistant;\n exports.geoAzimuthalEquidistantRaw = azimuthalEquidistantRaw;\n exports.geoBounds = bounds;\n exports.geoCentroid = centroid;\n exports.geoCircle = circle;\n exports.geoClipAntimeridian = clipAntimeridian;\n exports.geoClipCircle = clipCircle;\n exports.geoClipExtent = extent;\n exports.geoClipRectangle = clipRectangle;\n exports.geoConicConformal = conicConformal;\n exports.geoConicConformalRaw = conicConformalRaw;\n exports.geoConicEqualArea = conicEqualArea;\n exports.geoConicEqualAreaRaw = conicEqualAreaRaw;\n exports.geoConicEquidistant = conicEquidistant;\n exports.geoConicEquidistantRaw = conicEquidistantRaw;\n exports.geoContains = contains;\n exports.geoDistance = distance;\n exports.geoEqualEarth = equalEarth;\n exports.geoEqualEarthRaw = equalEarthRaw;\n exports.geoEquirectangular = equirectangular;\n exports.geoEquirectangularRaw = equirectangularRaw;\n exports.geoGnomonic = gnomonic;\n exports.geoGnomonicRaw = gnomonicRaw;\n exports.geoGraticule = graticule;\n exports.geoGraticule10 = graticule10;\n exports.geoIdentity = identity$1;\n exports.geoInterpolate = interpolate;\n exports.geoLength = length;\n exports.geoMercator = mercator;\n exports.geoMercatorRaw = mercatorRaw;\n exports.geoNaturalEarth1 = naturalEarth1;\n exports.geoNaturalEarth1Raw = naturalEarth1Raw;\n exports.geoOrthographic = orthographic;\n exports.geoOrthographicRaw = orthographicRaw;\n exports.geoPath = index;\n exports.geoProjection = projection;\n exports.geoProjectionMutator = projectionMutator;\n exports.geoRotation = rotation;\n exports.geoStereographic = stereographic;\n exports.geoStereographicRaw = stereographicRaw;\n exports.geoStream = geoStream;\n exports.geoTransform = transform;\n exports.geoTransverseMercator = transverseMercator;\n exports.geoTransverseMercatorRaw = transverseMercatorRaw;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = tokenize;\nvar SINGLE_QUOTE = '\\''.charCodeAt(0);\nvar DOUBLE_QUOTE = '\"'.charCodeAt(0);\nvar BACKSLASH = '\\\\'.charCodeAt(0);\nvar SLASH = '/'.charCodeAt(0);\nvar NEWLINE = '\\n'.charCodeAt(0);\nvar SPACE = ' '.charCodeAt(0);\nvar FEED = '\\f'.charCodeAt(0);\nvar TAB = '\\t'.charCodeAt(0);\nvar CR = '\\r'.charCodeAt(0);\nvar OPEN_SQUARE = '['.charCodeAt(0);\nvar CLOSE_SQUARE = ']'.charCodeAt(0);\nvar OPEN_PARENTHESES = '('.charCodeAt(0);\nvar CLOSE_PARENTHESES = ')'.charCodeAt(0);\nvar OPEN_CURLY = '{'.charCodeAt(0);\nvar CLOSE_CURLY = '}'.charCodeAt(0);\nvar SEMICOLON = ';'.charCodeAt(0);\nvar ASTERISK = '*'.charCodeAt(0);\nvar COLON = ':'.charCodeAt(0);\nvar AT = '@'.charCodeAt(0);\nvar RE_AT_END = /[ \\n\\t\\r\\f\\{\\(\\)'\"\\\\;/\\[\\]#]/g;\nvar RE_WORD_END = /[ \\n\\t\\r\\f\\(\\)\\{\\}:;@!'\"\\\\\\]\\[#]|\\/(?=\\*)/g;\nvar RE_BAD_BRACKET = /.[\\\\\\/\\(\"'\\n]/;\n\nfunction tokenize(input) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var tokens = [];\n var css = input.css.valueOf();\n var ignore = options.ignoreErrors;\n var code = void 0,\n next = void 0,\n quote = void 0,\n lines = void 0,\n last = void 0,\n content = void 0,\n escape = void 0,\n nextLine = void 0,\n nextOffset = void 0,\n escaped = void 0,\n escapePos = void 0,\n prev = void 0,\n n = void 0;\n var length = css.length;\n var offset = -1;\n var line = 1;\n var pos = 0;\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, line, pos - offset);\n }\n\n while (pos < length) {\n code = css.charCodeAt(pos);\n\n if (code === NEWLINE || code === FEED || code === CR && css.charCodeAt(pos + 1) !== NEWLINE) {\n offset = pos;\n line += 1;\n }\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED:\n next = pos;\n\n do {\n next += 1;\n code = css.charCodeAt(next);\n\n if (code === NEWLINE) {\n offset = next;\n line += 1;\n }\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n\n tokens.push(['space', css.slice(pos, next)]);\n pos = next - 1;\n break;\n\n case OPEN_SQUARE:\n tokens.push(['[', '[', line, pos - offset]);\n break;\n\n case CLOSE_SQUARE:\n tokens.push([']', ']', line, pos - offset]);\n break;\n\n case OPEN_CURLY:\n tokens.push(['{', '{', line, pos - offset]);\n break;\n\n case CLOSE_CURLY:\n tokens.push(['}', '}', line, pos - offset]);\n break;\n\n case COLON:\n tokens.push([':', ':', line, pos - offset]);\n break;\n\n case SEMICOLON:\n tokens.push([';', ';', line, pos - offset]);\n break;\n\n case OPEN_PARENTHESES:\n prev = tokens.length ? tokens[tokens.length - 1][1] : '';\n n = css.charCodeAt(pos + 1);\n\n if (prev === 'url' && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) {\n next = pos;\n\n do {\n escaped = false;\n next = css.indexOf(')', next + 1);\n\n if (next === -1) {\n if (ignore) {\n next = pos;\n break;\n } else {\n unclosed('bracket');\n }\n }\n\n escapePos = next;\n\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n\n tokens.push(['brackets', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n } else {\n next = css.indexOf(')', pos + 1);\n content = css.slice(pos, next + 1);\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n tokens.push(['(', '(', line, pos - offset]);\n } else {\n tokens.push(['brackets', content, line, pos - offset, line, next - offset]);\n pos = next;\n }\n }\n\n break;\n\n case CLOSE_PARENTHESES:\n tokens.push([')', ')', line, pos - offset]);\n break;\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE:\n quote = code === SINGLE_QUOTE ? '\\'' : '\"';\n next = pos;\n\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n\n if (next === -1) {\n if (ignore) {\n next = pos + 1;\n break;\n } else {\n unclosed('quote');\n }\n }\n\n escapePos = next;\n\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n\n content = css.slice(pos, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n\n tokens.push(['string', css.slice(pos, next + 1), line, pos - offset, nextLine, next - nextOffset]);\n offset = nextOffset;\n line = nextLine;\n pos = next;\n break;\n\n case AT:\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n\n tokens.push(['at-word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n break;\n\n case BACKSLASH:\n next = pos;\n escape = true;\n\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n\n code = css.charCodeAt(next + 1);\n\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n }\n\n tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n break;\n\n default:\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1;\n\n if (next === 0) {\n if (ignore) {\n next = css.length;\n } else {\n unclosed('comment');\n }\n }\n\n content = css.slice(pos, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n\n tokens.push(['comment', content, line, pos - offset, nextLine, next - nextOffset]);\n offset = nextOffset;\n line = nextLine;\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n\n tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n }\n\n break;\n }\n\n pos++;\n }\n\n return tokens;\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CHANNEL = undefined;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _isFunction = require('is-function');\n\nvar _isFunction2 = _interopRequireDefault(_isFunction);\n\nvar _isPlainObject = require('is-plain-object');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _createBroadcast = require('../utils/create-broadcast');\n\nvar _createBroadcast2 = _interopRequireDefault(_createBroadcast);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/* globals React$Element */\n// NOTE: DO NOT CHANGE, changing this is a semver major change!\n\n\nvar babelPluginFlowReactPropTypes_proptype_Broadcast = require('../utils/create-broadcast').babelPluginFlowReactPropTypes_proptype_Broadcast || require('prop-types').any;\n\nvar CHANNEL = exports.CHANNEL = '__styled-components__';\nif (typeof exports !== 'undefined') Object.defineProperty(exports, 'babelPluginFlowReactPropTypes_proptype_Theme', {\n value: require('prop-types').shape({})\n});\n/**\n * Provide a theme to an entire react component tree via context and event listeners (have to do\n * both context and event emitter as pure components block context updates)\n */\n\nvar ThemeProvider = function (_Component) {\n _inherits(ThemeProvider, _Component);\n\n function ThemeProvider() {\n _classCallCheck(this, ThemeProvider);\n\n var _this = _possibleConstructorReturn(this, (ThemeProvider.__proto__ || Object.getPrototypeOf(ThemeProvider)).call(this));\n\n _this.getTheme = _this.getTheme.bind(_this);\n return _this;\n }\n\n _createClass(ThemeProvider, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n var _this2 = this; // If there is a ThemeProvider wrapper anywhere around this theme provider, merge this theme\n // with the outer theme\n\n\n if (this.context[CHANNEL]) {\n var subscribe = this.context[CHANNEL];\n this.unsubscribeToOuter = subscribe(function (theme) {\n _this2.outerTheme = theme;\n });\n }\n\n this.broadcast = (0, _createBroadcast2.default)(this.getTheme());\n }\n }, {\n key: 'getChildContext',\n value: function getChildContext() {\n return _extends({}, this.context, _defineProperty({}, CHANNEL, this.broadcast.subscribe));\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (this.props.theme !== nextProps.theme) this.broadcast.publish(this.getTheme(nextProps.theme));\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.context[CHANNEL]) {\n this.unsubscribeToOuter();\n }\n } // Get the theme from the props, supporting both (outerTheme) => {} as well as object notation\n\n }, {\n key: 'getTheme',\n value: function getTheme(passedTheme) {\n var theme = passedTheme || this.props.theme;\n\n if ((0, _isFunction2.default)(theme)) {\n var mergedTheme = theme(this.outerTheme);\n\n if (!(0, _isPlainObject2.default)(mergedTheme)) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (!(0, _isPlainObject2.default)(theme)) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, this.outerTheme, theme);\n }\n }, {\n key: 'render',\n value: function render() {\n if (!this.props.children) {\n return null;\n }\n\n return _react2.default.Children.only(this.props.children);\n }\n }]);\n\n return ThemeProvider;\n}(_react.Component);\n\nThemeProvider.propTypes = {\n children: require('prop-types').any,\n theme: require('prop-types').oneOfType([require('prop-types').shape({}), require('prop-types').func]).isRequired\n};\nThemeProvider.childContextTypes = _defineProperty({}, CHANNEL, _propTypes2.default.func.isRequired);\nThemeProvider.contextTypes = _defineProperty({}, CHANNEL, _propTypes2.default.func);\nexports.default = ThemeProvider;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sizing;\n\nvar _joinPrefixedValue = require('../../utils/joinPrefixedValue');\n\nvar _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(property, value) {\n if (properties[property] && values[value]) {\n return (0, _joinPrefixedValue2.default)(property, value);\n }\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar _stringify2 = require('./stringify');\n\nvar _stringify3 = _interopRequireDefault(_stringify2);\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\n\nvar _result = require('./result');\n\nvar _result2 = _interopRequireDefault(_result);\n\nvar _parse = require('./parse');\n\nvar _parse2 = _interopRequireDefault(_parse);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction isPromise(obj) {\n return (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && typeof obj.then === 'function';\n}\n/**\n * @callback onFulfilled\n * @param {Result} result\n */\n\n/**\n * @callback onRejected\n * @param {Error} error\n */\n\n/**\n * A Promise proxy for the result of PostCSS transformations.\n *\n * A `LazyResult` instance is returned by {@link Processor#process}.\n *\n * @example\n * const lazy = postcss([cssnext]).process(css);\n */\n\n\nvar LazyResult = function () {\n function LazyResult(processor, css, opts) {\n _classCallCheck(this, LazyResult);\n\n this.stringified = false;\n this.processed = false;\n var root = void 0;\n\n if ((typeof css === 'undefined' ? 'undefined' : _typeof(css)) === 'object' && css.type === 'root') {\n root = css;\n } else if (css instanceof LazyResult || css instanceof _result2.default) {\n root = css.root;\n\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n var parser = _parse2.default;\n if (opts.syntax) parser = opts.syntax.parse;\n if (opts.parser) parser = opts.parser;\n if (parser.parse) parser = parser.parse;\n\n try {\n root = parser(css, opts);\n } catch (error) {\n this.error = error;\n }\n }\n\n this.result = new _result2.default(processor, root, opts);\n }\n /**\n * Returns a {@link Processor} instance, which will be used\n * for CSS transformations.\n * @type {Processor}\n */\n\n\n _createClass(LazyResult, [{\n key: 'warnings',\n\n /**\n * Processes input CSS through synchronous plugins\n * and calls {@link Result#warnings()}.\n *\n * @return {Warning[]} warnings from plugins\n */\n value: function warnings() {\n return this.sync().warnings();\n }\n /**\n * Alias for the {@link LazyResult#css} property.\n *\n * @example\n * lazy + '' === lazy.css;\n *\n * @return {string} output CSS\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n return this.css;\n }\n /**\n * Processes input CSS through synchronous and asynchronous plugins\n * and calls `onFulfilled` with a Result instance. If a plugin throws\n * an error, the `onRejected` callback will be executed.\n *\n * It implements standard Promise API.\n *\n * @param {onFulfilled} onFulfilled - callback will be executed\n * when all plugins will finish work\n * @param {onRejected} onRejected - callback will be execited on any error\n *\n * @return {Promise} Promise API to make queue\n *\n * @example\n * postcss([cssnext]).process(css).then(result => {\n * console.log(result.css);\n * });\n */\n\n }, {\n key: 'then',\n value: function then(onFulfilled, onRejected) {\n return this.async().then(onFulfilled, onRejected);\n }\n /**\n * Processes input CSS through synchronous and asynchronous plugins\n * and calls onRejected for each error thrown in any plugin.\n *\n * It implements standard Promise API.\n *\n * @param {onRejected} onRejected - callback will be execited on any error\n *\n * @return {Promise} Promise API to make queue\n *\n * @example\n * postcss([cssnext]).process(css).then(result => {\n * console.log(result.css);\n * }).catch(error => {\n * console.error(error);\n * });\n */\n\n }, {\n key: 'catch',\n value: function _catch(onRejected) {\n return this.async().catch(onRejected);\n }\n }, {\n key: 'handleError',\n value: function handleError(error, plugin) {\n try {\n this.error = error;\n\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin;\n error.setMessage();\n } else if (plugin.postcssVersion) {\n var pluginName = plugin.postcssPlugin;\n var pluginVer = plugin.postcssVersion;\n var runtimeVer = this.result.processor.version;\n var a = pluginVer.split('.');\n var b = runtimeVer.split('.');\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n (0, _warnOnce2.default)('Your current PostCSS version ' + 'is ' + runtimeVer + ', but ' + pluginName + ' ' + 'uses ' + pluginVer + '. Perhaps this is ' + 'the source of the error below.');\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n }\n }, {\n key: 'asyncTick',\n value: function asyncTick(resolve, reject) {\n var _this = this;\n\n if (this.plugin >= this.processor.plugins.length) {\n this.processed = true;\n return resolve();\n }\n\n try {\n var plugin = this.processor.plugins[this.plugin];\n var promise = this.run(plugin);\n this.plugin += 1;\n\n if (isPromise(promise)) {\n promise.then(function () {\n _this.asyncTick(resolve, reject);\n }).catch(function (error) {\n _this.handleError(error, plugin);\n\n _this.processed = true;\n reject(error);\n });\n } else {\n this.asyncTick(resolve, reject);\n }\n } catch (error) {\n this.processed = true;\n reject(error);\n }\n }\n }, {\n key: 'async',\n value: function async() {\n var _this2 = this;\n\n if (this.processed) {\n return new Promise(function (resolve, reject) {\n if (_this2.error) {\n reject(_this2.error);\n } else {\n resolve(_this2.stringify());\n }\n });\n }\n\n if (this.processing) {\n return this.processing;\n }\n\n this.processing = new Promise(function (resolve, reject) {\n if (_this2.error) return reject(_this2.error);\n _this2.plugin = 0;\n\n _this2.asyncTick(resolve, reject);\n }).then(function () {\n _this2.processed = true;\n return _this2.stringify();\n });\n return this.processing;\n }\n }, {\n key: 'sync',\n value: function sync() {\n var _this3 = this;\n\n if (this.processed) return this.result;\n this.processed = true;\n\n if (this.processing) {\n throw new Error('Use process(css).then(cb) to work with async plugins');\n }\n\n if (this.error) throw this.error;\n this.result.processor.plugins.forEach(function (plugin) {\n var promise = _this3.run(plugin);\n\n if (isPromise(promise)) {\n throw new Error('Use process(css).then(cb) to work with async plugins');\n }\n });\n return this.result;\n }\n }, {\n key: 'run',\n value: function run(plugin) {\n this.result.lastPlugin = plugin;\n\n try {\n return plugin(this.result.root, this.result);\n } catch (error) {\n this.handleError(error, plugin);\n throw error;\n }\n }\n }, {\n key: 'stringify',\n value: function stringify() {\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n var opts = this.result.opts;\n var str = _stringify3.default;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n var result = '';\n str(this.root, function (i) {\n result += i;\n });\n this.result.css = result;\n return this.result;\n }\n }, {\n key: 'processor',\n get: function get() {\n return this.result.processor;\n }\n /**\n * Options from the {@link Processor#process} call.\n * @type {processOptions}\n */\n\n }, {\n key: 'opts',\n get: function get() {\n return this.result.opts;\n }\n /**\n * Processes input CSS through synchronous plugins, converts `Root`\n * to a CSS string and returns {@link Result#css}.\n *\n * This property will only work with synchronous plugins.\n * If the processor contains any asynchronous plugins\n * it will throw an error. This is why this method is only\n * for debug purpose, you should always use {@link LazyResult#then}.\n *\n * @type {string}\n * @see Result#css\n */\n\n }, {\n key: 'css',\n get: function get() {\n return this.stringify().css;\n }\n /**\n * An alias for the `css` property. Use it with syntaxes\n * that generate non-CSS output.\n *\n * This property will only work with synchronous plugins.\n * If the processor contains any asynchronous plugins\n * it will throw an error. This is why this method is only\n * for debug purpose, you should always use {@link LazyResult#then}.\n *\n * @type {string}\n * @see Result#content\n */\n\n }, {\n key: 'content',\n get: function get() {\n return this.stringify().content;\n }\n /**\n * Processes input CSS through synchronous plugins\n * and returns {@link Result#map}.\n *\n * This property will only work with synchronous plugins.\n * If the processor contains any asynchronous plugins\n * it will throw an error. This is why this method is only\n * for debug purpose, you should always use {@link LazyResult#then}.\n *\n * @type {SourceMapGenerator}\n * @see Result#map\n */\n\n }, {\n key: 'map',\n get: function get() {\n return this.stringify().map;\n }\n /**\n * Processes input CSS through synchronous plugins\n * and returns {@link Result#root}.\n *\n * This property will only work with synchronous plugins. If the processor\n * contains any asynchronous plugins it will throw an error.\n *\n * This is why this method is only for debug purpose,\n * you should always use {@link LazyResult#then}.\n *\n * @type {Root}\n * @see Result#root\n */\n\n }, {\n key: 'root',\n get: function get() {\n return this.sync().root;\n }\n /**\n * Processes input CSS through synchronous plugins\n * and returns {@link Result#messages}.\n *\n * This property will only work with synchronous plugins. If the processor\n * contains any asynchronous plugins it will throw an error.\n *\n * This is why this method is only for debug purpose,\n * you should always use {@link LazyResult#then}.\n *\n * @type {Message[]}\n * @see Result#messages\n */\n\n }, {\n key: 'messages',\n get: function get() {\n return this.sync().messages;\n }\n }]);\n\n return LazyResult;\n}();\n\nexports.default = LazyResult;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = parse;\n\nvar _parser = require('./parser');\n\nvar _parser2 = _interopRequireDefault(_parser);\n\nvar _input = require('./input');\n\nvar _input2 = _interopRequireDefault(_input);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction parse(css, opts) {\n if (opts && opts.safe) {\n throw new Error('Option safe was removed. ' + 'Use parser: require(\"postcss-safe-parser\")');\n }\n\n var input = new _input2.default(css, opts);\n var parser = new _parser2.default(input);\n\n try {\n parser.tokenize();\n parser.loop();\n } catch (e) {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message += '\\nYou tried to parse SCSS with ' + 'the standard CSS parser; ' + 'try again with the postcss-scss parser';\n } else if (/\\.less$/i.test(opts.from)) {\n e.message += '\\nYou tried to parse Less with ' + 'the standard CSS parser; ' + 'try again with the postcss-less parser';\n }\n }\n\n throw e;\n }\n\n return parser.root;\n}\n\nmodule.exports = exports['default'];","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","// https://d3js.org/d3-time/ v2.0.0 Copyright 2020 Mike Bostock\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = global || self, factory(global.d3 = global.d3 || {}));\n})(this, function (exports) {\n 'use strict';\n\n var t0 = new Date(),\n t1 = new Date();\n\n function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;\n }\n\n interval.floor = function (date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function (date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function (date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function (date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function (start, stop, step) {\n var range = [],\n previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n\n do {\n range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n } while (previous < start && start < stop);\n\n return range;\n };\n\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) {\n date.setTime(date - 1);\n }\n }, function (date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n\n }\n }\n });\n };\n\n if (count) {\n interval.count = function (start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function (step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {\n return field(d) % step === 0;\n } : function (d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n\n return interval;\n }\n\n var millisecond = newInterval(function () {// noop\n }, function (date, step) {\n date.setTime(+date + step);\n }, function (start, end) {\n return end - start;\n }); // An optimized implementation for this simple case.\n\n millisecond.every = function (k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return newInterval(function (date) {\n date.setTime(Math.floor(date / k) * k);\n }, function (date, step) {\n date.setTime(+date + step * k);\n }, function (start, end) {\n return (end - start) / k;\n });\n };\n\n var milliseconds = millisecond.range;\n var durationSecond = 1e3;\n var durationMinute = 6e4;\n var durationHour = 36e5;\n var durationDay = 864e5;\n var durationWeek = 6048e5;\n var second = newInterval(function (date) {\n date.setTime(date - date.getMilliseconds());\n }, function (date, step) {\n date.setTime(+date + step * durationSecond);\n }, function (start, end) {\n return (end - start) / durationSecond;\n }, function (date) {\n return date.getUTCSeconds();\n });\n var seconds = second.range;\n var minute = newInterval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n }, function (date, step) {\n date.setTime(+date + step * durationMinute);\n }, function (start, end) {\n return (end - start) / durationMinute;\n }, function (date) {\n return date.getMinutes();\n });\n var minutes = minute.range;\n var hour = newInterval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n }, function (date, step) {\n date.setTime(+date + step * durationHour);\n }, function (start, end) {\n return (end - start) / durationHour;\n }, function (date) {\n return date.getHours();\n });\n var hours = hour.range;\n var day = newInterval(function (date) {\n return date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n return date.setDate(date.getDate() + step);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n }, function (date) {\n return date.getDate() - 1;\n });\n var days = day.range;\n\n function weekday(i) {\n return newInterval(function (date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n }\n\n var sunday = weekday(0);\n var monday = weekday(1);\n var tuesday = weekday(2);\n var wednesday = weekday(3);\n var thursday = weekday(4);\n var friday = weekday(5);\n var saturday = weekday(6);\n var sundays = sunday.range;\n var mondays = monday.range;\n var tuesdays = tuesday.range;\n var wednesdays = wednesday.range;\n var thursdays = thursday.range;\n var fridays = friday.range;\n var saturdays = saturday.range;\n var month = newInterval(function (date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setMonth(date.getMonth() + step);\n }, function (start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n }, function (date) {\n return date.getMonth();\n });\n var months = month.range;\n var year = newInterval(function (date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step);\n }, function (start, end) {\n return end.getFullYear() - start.getFullYear();\n }, function (date) {\n return date.getFullYear();\n }); // An optimized implementation for this simple case.\n\n year.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function (date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n };\n\n var years = year.range;\n var utcMinute = newInterval(function (date) {\n date.setUTCSeconds(0, 0);\n }, function (date, step) {\n date.setTime(+date + step * durationMinute);\n }, function (start, end) {\n return (end - start) / durationMinute;\n }, function (date) {\n return date.getUTCMinutes();\n });\n var utcMinutes = utcMinute.range;\n var utcHour = newInterval(function (date) {\n date.setUTCMinutes(0, 0, 0);\n }, function (date, step) {\n date.setTime(+date + step * durationHour);\n }, function (start, end) {\n return (end - start) / durationHour;\n }, function (date) {\n return date.getUTCHours();\n });\n var utcHours = utcHour.range;\n var utcDay = newInterval(function (date) {\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n }, function (start, end) {\n return (end - start) / durationDay;\n }, function (date) {\n return date.getUTCDate() - 1;\n });\n var utcDays = utcDay.range;\n\n function utcWeekday(i) {\n return newInterval(function (date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function (start, end) {\n return (end - start) / durationWeek;\n });\n }\n\n var utcSunday = utcWeekday(0);\n var utcMonday = utcWeekday(1);\n var utcTuesday = utcWeekday(2);\n var utcWednesday = utcWeekday(3);\n var utcThursday = utcWeekday(4);\n var utcFriday = utcWeekday(5);\n var utcSaturday = utcWeekday(6);\n var utcSundays = utcSunday.range;\n var utcMondays = utcMonday.range;\n var utcTuesdays = utcTuesday.range;\n var utcWednesdays = utcWednesday.range;\n var utcThursdays = utcThursday.range;\n var utcFridays = utcFriday.range;\n var utcSaturdays = utcSaturday.range;\n var utcMonth = newInterval(function (date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n }, function (start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n }, function (date) {\n return date.getUTCMonth();\n });\n var utcMonths = utcMonth.range;\n var utcYear = newInterval(function (date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n }, function (start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n }, function (date) {\n return date.getUTCFullYear();\n }); // An optimized implementation for this simple case.\n\n utcYear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function (date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n };\n\n var utcYears = utcYear.range;\n exports.timeDay = day;\n exports.timeDays = days;\n exports.timeFriday = friday;\n exports.timeFridays = fridays;\n exports.timeHour = hour;\n exports.timeHours = hours;\n exports.timeInterval = newInterval;\n exports.timeMillisecond = millisecond;\n exports.timeMilliseconds = milliseconds;\n exports.timeMinute = minute;\n exports.timeMinutes = minutes;\n exports.timeMonday = monday;\n exports.timeMondays = mondays;\n exports.timeMonth = month;\n exports.timeMonths = months;\n exports.timeSaturday = saturday;\n exports.timeSaturdays = saturdays;\n exports.timeSecond = second;\n exports.timeSeconds = seconds;\n exports.timeSunday = sunday;\n exports.timeSundays = sundays;\n exports.timeThursday = thursday;\n exports.timeThursdays = thursdays;\n exports.timeTuesday = tuesday;\n exports.timeTuesdays = tuesdays;\n exports.timeWednesday = wednesday;\n exports.timeWednesdays = wednesdays;\n exports.timeWeek = sunday;\n exports.timeWeeks = sundays;\n exports.timeYear = year;\n exports.timeYears = years;\n exports.utcDay = utcDay;\n exports.utcDays = utcDays;\n exports.utcFriday = utcFriday;\n exports.utcFridays = utcFridays;\n exports.utcHour = utcHour;\n exports.utcHours = utcHours;\n exports.utcMillisecond = millisecond;\n exports.utcMilliseconds = milliseconds;\n exports.utcMinute = utcMinute;\n exports.utcMinutes = utcMinutes;\n exports.utcMonday = utcMonday;\n exports.utcMondays = utcMondays;\n exports.utcMonth = utcMonth;\n exports.utcMonths = utcMonths;\n exports.utcSaturday = utcSaturday;\n exports.utcSaturdays = utcSaturdays;\n exports.utcSecond = second;\n exports.utcSeconds = seconds;\n exports.utcSunday = utcSunday;\n exports.utcSundays = utcSundays;\n exports.utcThursday = utcThursday;\n exports.utcThursdays = utcThursdays;\n exports.utcTuesday = utcTuesday;\n exports.utcTuesdays = utcTuesdays;\n exports.utcWednesday = utcWednesday;\n exports.utcWednesdays = utcWednesdays;\n exports.utcWeek = utcSunday;\n exports.utcWeeks = utcSundays;\n exports.utcYear = utcYear;\n exports.utcYears = utcYears;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};\n\nvar _parse = require('./parse');\n\nvar _parse2 = _interopRequireDefault(_parse);\n\nvar _root = require('./root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _rule = require('./rule');\n\nvar _rule2 = _interopRequireDefault(_rule);\n\nvar _atRule = require('./at-rule');\n\nvar _atRule2 = _interopRequireDefault(_atRule);\n\nvar _declaration = require('./declaration');\n\nvar _declaration2 = _interopRequireDefault(_declaration);\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\n\nvar _comment = require('./comment');\n\nvar _comment2 = _interopRequireDefault(_comment);\n\nvar _node = require('./node');\n\nvar _node2 = _interopRequireDefault(_node);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nfunction cleanSource(nodes) {\n return nodes.map(function (i) {\n if (i.nodes) i.nodes = cleanSource(i.nodes);\n delete i.source;\n return i;\n });\n}\n/**\n * @callback childCondition\n * @param {Node} node - container child\n * @param {number} index - child index\n * @param {Node[]} nodes - all container children\n * @return {boolean}\n */\n\n/**\n * @callback childIterator\n * @param {Node} node - container child\n * @param {number} index - child index\n * @return {false|undefined} returning `false` will break iteration\n */\n\n/**\n * The {@link Root}, {@link AtRule}, and {@link Rule} container nodes\n * inherit some common methods to help work with their children.\n *\n * Note that all containers can store any content. If you write a rule inside\n * a rule, PostCSS will parse it.\n *\n * @extends Node\n * @abstract\n */\n\n\nvar Container = function (_Node) {\n _inherits(Container, _Node);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n _createClass(Container, [{\n key: 'push',\n value: function push(child) {\n child.parent = this;\n this.nodes.push(child);\n return this;\n }\n /**\n * Iterates through the container’s immediate children,\n * calling `callback` for each child.\n *\n * Returning `false` in the callback will break iteration.\n *\n * This method only iterates through the container’s immediate children.\n * If you need to recursively iterate through all the container’s descendant\n * nodes, use {@link Container#walk}.\n *\n * Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe\n * if you are mutating the array of child nodes during iteration.\n * PostCSS will adjust the current index to match the mutations.\n *\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * const root = postcss.parse('a { color: black; z-index: 1 }');\n * const rule = root.first;\n *\n * for ( let decl of rule.nodes ) {\n * decl.cloneBefore({ prop: '-webkit-' + decl.prop });\n * // Cycle will be infinite, because cloneBefore moves the current node\n * // to the next index\n * }\n *\n * rule.each(decl => {\n * decl.cloneBefore({ prop: '-webkit-' + decl.prop });\n * // Will be executed only for color and z-index\n * });\n */\n\n }, {\n key: 'each',\n value: function each(callback) {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n var id = this.lastEach;\n this.indexes[id] = 0;\n if (!this.nodes) return undefined;\n var index = void 0,\n result = void 0;\n\n while (this.indexes[id] < this.nodes.length) {\n index = this.indexes[id];\n result = callback(this.nodes[index], index);\n if (result === false) break;\n this.indexes[id] += 1;\n }\n\n delete this.indexes[id];\n return result;\n }\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each node.\n *\n * Like container.each(), this method is safe to use\n * if you are mutating arrays during iteration.\n *\n * If you only need to iterate through the container’s immediate children,\n * use {@link Container#each}.\n *\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walk(node => {\n * // Traverses all descendant nodes.\n * });\n */\n\n }, {\n key: 'walk',\n value: function walk(callback) {\n return this.each(function (child, i) {\n var result = callback(child, i);\n\n if (result !== false && child.walk) {\n result = child.walk(callback);\n }\n\n return result;\n });\n }\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each declaration node.\n *\n * If you pass a filter, iteration will only happen over declarations\n * with matching properties.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {string|RegExp} [prop] - string or regular expression\n * to filter declarations by property name\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walkDecls(decl => {\n * checkPropertySupport(decl.prop);\n * });\n *\n * root.walkDecls('border-radius', decl => {\n * decl.remove();\n * });\n *\n * root.walkDecls(/^background/, decl => {\n * decl.value = takeFirstColorFromGradient(decl.value);\n * });\n */\n\n }, {\n key: 'walkDecls',\n value: function walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk(function (child, i) {\n if (child.type === 'decl') {\n return callback(child, i);\n }\n });\n } else if (prop instanceof RegExp) {\n return this.walk(function (child, i) {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i);\n }\n });\n } else {\n return this.walk(function (child, i) {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i);\n }\n });\n }\n }\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each rule node.\n *\n * If you pass a filter, iteration will only happen over rules\n * with matching selectors.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {string|RegExp} [selector] - string or regular expression\n * to filter rules by selector\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * const selectors = [];\n * root.walkRules(rule => {\n * selectors.push(rule.selector);\n * });\n * console.log(`Your CSS uses ${selectors.length} selectors`);\n */\n\n }, {\n key: 'walkRules',\n value: function walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk(function (child, i) {\n if (child.type === 'rule') {\n return callback(child, i);\n }\n });\n } else if (selector instanceof RegExp) {\n return this.walk(function (child, i) {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i);\n }\n });\n } else {\n return this.walk(function (child, i) {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i);\n }\n });\n }\n }\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each at-rule node.\n *\n * If you pass a filter, iteration will only happen over at-rules\n * that have matching names.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {string|RegExp} [name] - string or regular expression\n * to filter at-rules by name\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walkAtRules(rule => {\n * if ( isOld(rule.name) ) rule.remove();\n * });\n *\n * let first = false;\n * root.walkAtRules('charset', rule => {\n * if ( !first ) {\n * first = true;\n * } else {\n * rule.remove();\n * }\n * });\n */\n\n }, {\n key: 'walkAtRules',\n value: function walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk(function (child, i) {\n if (child.type === 'atrule') {\n return callback(child, i);\n }\n });\n } else if (name instanceof RegExp) {\n return this.walk(function (child, i) {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i);\n }\n });\n } else {\n return this.walk(function (child, i) {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i);\n }\n });\n }\n }\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each comment node.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walkComments(comment => {\n * comment.remove();\n * });\n */\n\n }, {\n key: 'walkComments',\n value: function walkComments(callback) {\n return this.walk(function (child, i) {\n if (child.type === 'comment') {\n return callback(child, i);\n }\n });\n }\n /**\n * Inserts new nodes to the start of the container.\n *\n * @param {...(Node|object|string|Node[])} children - new nodes\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * const decl1 = postcss.decl({ prop: 'color', value: 'black' });\n * const decl2 = postcss.decl({ prop: 'background-color', value: 'white' });\n * rule.append(decl1, decl2);\n *\n * root.append({ name: 'charset', params: '\"UTF-8\"' }); // at-rule\n * root.append({ selector: 'a' }); // rule\n * rule.append({ prop: 'color', value: 'black' }); // declaration\n * rule.append({ text: 'Comment' }) // comment\n *\n * root.append('a {}');\n * root.first.append('color: black; z-index: 1');\n */\n\n }, {\n key: 'append',\n value: function append() {\n var _this2 = this;\n\n for (var _len = arguments.length, children = Array(_len), _key = 0; _key < _len; _key++) {\n children[_key] = arguments[_key];\n }\n\n children.forEach(function (child) {\n var nodes = _this2.normalize(child, _this2.last);\n\n nodes.forEach(function (node) {\n return _this2.nodes.push(node);\n });\n });\n return this;\n }\n /**\n * Inserts new nodes to the end of the container.\n *\n * @param {...(Node|object|string|Node[])} children - new nodes\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * const decl1 = postcss.decl({ prop: 'color', value: 'black' });\n * const decl2 = postcss.decl({ prop: 'background-color', value: 'white' });\n * rule.prepend(decl1, decl2);\n *\n * root.append({ name: 'charset', params: '\"UTF-8\"' }); // at-rule\n * root.append({ selector: 'a' }); // rule\n * rule.append({ prop: 'color', value: 'black' }); // declaration\n * rule.append({ text: 'Comment' }) // comment\n *\n * root.append('a {}');\n * root.first.append('color: black; z-index: 1');\n */\n\n }, {\n key: 'prepend',\n value: function prepend() {\n var _this3 = this;\n\n for (var _len2 = arguments.length, children = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n children[_key2] = arguments[_key2];\n }\n\n children = children.reverse();\n children.forEach(function (child) {\n var nodes = _this3.normalize(child, _this3.first, 'prepend').reverse();\n\n nodes.forEach(function (node) {\n return _this3.nodes.unshift(node);\n });\n\n for (var id in _this3.indexes) {\n _this3.indexes[id] = _this3.indexes[id] + nodes.length;\n }\n });\n return this;\n }\n }, {\n key: 'cleanRaws',\n value: function cleanRaws(keepBetween) {\n _get(Container.prototype.__proto__ || Object.getPrototypeOf(Container.prototype), 'cleanRaws', this).call(this, keepBetween);\n\n if (this.nodes) {\n this.nodes.forEach(function (node) {\n return node.cleanRaws(keepBetween);\n });\n }\n }\n /**\n * Insert new node before old node within the container.\n *\n * @param {Node|number} exist - child or child’s index.\n * @param {Node|object|string|Node[]} add - new node\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop }));\n */\n\n }, {\n key: 'insertBefore',\n value: function insertBefore(exist, add) {\n var _this4 = this;\n\n exist = this.index(exist);\n var type = exist === 0 ? 'prepend' : false;\n var nodes = this.normalize(add, this.nodes[exist], type).reverse();\n nodes.forEach(function (node) {\n return _this4.nodes.splice(exist, 0, node);\n });\n var index = void 0;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (exist <= index) {\n this.indexes[id] = index + nodes.length;\n }\n }\n\n return this;\n }\n /**\n * Insert new node after old node within the container.\n *\n * @param {Node|number} exist - child or child’s index\n * @param {Node|object|string|Node[]} add - new node\n *\n * @return {Node} this node for methods chain\n */\n\n }, {\n key: 'insertAfter',\n value: function insertAfter(exist, add) {\n var _this5 = this;\n\n exist = this.index(exist);\n var nodes = this.normalize(add, this.nodes[exist]).reverse();\n nodes.forEach(function (node) {\n return _this5.nodes.splice(exist + 1, 0, node);\n });\n var index = void 0;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (exist < index) {\n this.indexes[id] = index + nodes.length;\n }\n }\n\n return this;\n }\n }, {\n key: 'remove',\n value: function remove(child) {\n if (typeof child !== 'undefined') {\n (0, _warnOnce2.default)('Container#remove is deprecated. ' + 'Use Container#removeChild');\n this.removeChild(child);\n } else {\n _get(Container.prototype.__proto__ || Object.getPrototypeOf(Container.prototype), 'remove', this).call(this);\n }\n\n return this;\n }\n /**\n * Removes node from the container and cleans the parent properties\n * from the node and its children.\n *\n * @param {Node|number} child - child or child’s index\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * rule.nodes.length //=> 5\n * rule.removeChild(decl);\n * rule.nodes.length //=> 4\n * decl.parent //=> undefined\n */\n\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n child = this.index(child);\n this.nodes[child].parent = undefined;\n this.nodes.splice(child, 1);\n var index = void 0;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n\n return this;\n }\n /**\n * Removes all children from the container\n * and cleans their parent properties.\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * rule.removeAll();\n * rule.nodes.length //=> 0\n */\n\n }, {\n key: 'removeAll',\n value: function removeAll() {\n this.nodes.forEach(function (node) {\n return node.parent = undefined;\n });\n this.nodes = [];\n return this;\n }\n /**\n * Passes all declaration values within the container that match pattern\n * through callback, replacing those values with the returned result\n * of callback.\n *\n * This method is useful if you are using a custom unit or function\n * and need to iterate through all values.\n *\n * @param {string|RegExp} pattern - replace pattern\n * @param {object} opts - options to speed up the search\n * @param {string|string[]} opts.props - an array of property names\n * @param {string} opts.fast - string that’s used\n * to narrow down values and speed up\n the regexp search\n * @param {function|string} callback - string to replace pattern\n * or callback that returns a new\n * value.\n * The callback will receive\n * the same arguments as those\n * passed to a function parameter\n * of `String#replace`.\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * root.replaceValues(/\\d+rem/, { fast: 'rem' }, string => {\n * return 15 * parseInt(string) + 'px';\n * });\n */\n\n }, {\n key: 'replaceValues',\n value: function replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n\n this.walkDecls(function (decl) {\n if (opts.props && opts.props.indexOf(decl.prop) === -1) return;\n if (opts.fast && decl.value.indexOf(opts.fast) === -1) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n return this;\n }\n /**\n * Returns `true` if callback returns `true`\n * for all of the container’s children.\n *\n * @param {childCondition} condition - iterator returns true or false.\n *\n * @return {boolean} is every child pass condition\n *\n * @example\n * const noPrefixes = rule.every(i => i.prop[0] !== '-');\n */\n\n }, {\n key: 'every',\n value: function every(condition) {\n return this.nodes.every(condition);\n }\n /**\n * Returns `true` if callback returns `true` for (at least) one\n * of the container’s children.\n *\n * @param {childCondition} condition - iterator returns true or false.\n *\n * @return {boolean} is some child pass condition\n *\n * @example\n * const hasPrefix = rule.some(i => i.prop[0] === '-');\n */\n\n }, {\n key: 'some',\n value: function some(condition) {\n return this.nodes.some(condition);\n }\n /**\n * Returns a `child`’s index within the {@link Container#nodes} array.\n *\n * @param {Node} child - child of the current container.\n *\n * @return {number} child index\n *\n * @example\n * rule.index( rule.nodes[2] ) //=> 2\n */\n\n }, {\n key: 'index',\n value: function index(child) {\n if (typeof child === 'number') {\n return child;\n } else {\n return this.nodes.indexOf(child);\n }\n }\n /**\n * The container’s first child.\n *\n * @type {Node}\n *\n * @example\n * rule.first == rules.nodes[0];\n */\n\n }, {\n key: 'normalize',\n value: function normalize(nodes, sample) {\n var _this6 = this;\n\n if (typeof nodes === 'string') {\n nodes = cleanSource((0, _parse2.default)(nodes).nodes);\n } else if (!Array.isArray(nodes)) {\n if (nodes.type === 'root') {\n nodes = nodes.nodes;\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation');\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value);\n }\n\n nodes = [new _declaration2.default(nodes)];\n } else if (nodes.selector) {\n nodes = [new _rule2.default(nodes)];\n } else if (nodes.name) {\n nodes = [new _atRule2.default(nodes)];\n } else if (nodes.text) {\n nodes = [new _comment2.default(nodes)];\n } else {\n throw new Error('Unknown node type in node creation');\n }\n }\n\n var processed = nodes.map(function (i) {\n if (typeof i.raws === 'undefined') i = _this6.rebuild(i);\n if (i.parent) i = i.clone();\n\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/[^\\s]/g, '');\n }\n }\n\n i.parent = _this6;\n return i;\n });\n return processed;\n }\n }, {\n key: 'rebuild',\n value: function rebuild(node, parent) {\n var _this7 = this;\n\n var fix = void 0;\n\n if (node.type === 'root') {\n fix = new _root2.default();\n } else if (node.type === 'atrule') {\n fix = new _atRule2.default();\n } else if (node.type === 'rule') {\n fix = new _rule2.default();\n } else if (node.type === 'decl') {\n fix = new _declaration2.default();\n } else if (node.type === 'comment') {\n fix = new _comment2.default();\n }\n\n for (var i in node) {\n if (i === 'nodes') {\n fix.nodes = node.nodes.map(function (j) {\n return _this7.rebuild(j, fix);\n });\n } else if (i === 'parent' && parent) {\n fix.parent = parent;\n } else if (node.hasOwnProperty(i)) {\n fix[i] = node[i];\n }\n }\n\n return fix;\n }\n }, {\n key: 'eachInside',\n value: function eachInside(callback) {\n (0, _warnOnce2.default)('Container#eachInside is deprecated. ' + 'Use Container#walk instead.');\n return this.walk(callback);\n }\n }, {\n key: 'eachDecl',\n value: function eachDecl(prop, callback) {\n (0, _warnOnce2.default)('Container#eachDecl is deprecated. ' + 'Use Container#walkDecls instead.');\n return this.walkDecls(prop, callback);\n }\n }, {\n key: 'eachRule',\n value: function eachRule(selector, callback) {\n (0, _warnOnce2.default)('Container#eachRule is deprecated. ' + 'Use Container#walkRules instead.');\n return this.walkRules(selector, callback);\n }\n }, {\n key: 'eachAtRule',\n value: function eachAtRule(name, callback) {\n (0, _warnOnce2.default)('Container#eachAtRule is deprecated. ' + 'Use Container#walkAtRules instead.');\n return this.walkAtRules(name, callback);\n }\n }, {\n key: 'eachComment',\n value: function eachComment(callback) {\n (0, _warnOnce2.default)('Container#eachComment is deprecated. ' + 'Use Container#walkComments instead.');\n return this.walkComments(callback);\n }\n }, {\n key: 'first',\n get: function get() {\n if (!this.nodes) return undefined;\n return this.nodes[0];\n }\n /**\n * The container’s last child.\n *\n * @type {Node}\n *\n * @example\n * rule.last == rule.nodes[rule.nodes.length - 1];\n */\n\n }, {\n key: 'last',\n get: function get() {\n if (!this.nodes) return undefined;\n return this.nodes[this.nodes.length - 1];\n }\n }, {\n key: 'semicolon',\n get: function get() {\n (0, _warnOnce2.default)('Node#semicolon is deprecated. Use Node#raws.semicolon');\n return this.raws.semicolon;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Node#semicolon is deprecated. Use Node#raws.semicolon');\n this.raws.semicolon = val;\n }\n }, {\n key: 'after',\n get: function get() {\n (0, _warnOnce2.default)('Node#after is deprecated. Use Node#raws.after');\n return this.raws.after;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Node#after is deprecated. Use Node#raws.after');\n this.raws.after = val;\n }\n /**\n * @memberof Container#\n * @member {Node[]} nodes - an array containing the container’s children\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * root.nodes.length //=> 1\n * root.nodes[0].selector //=> 'a'\n * root.nodes[0].nodes[0].prop //=> 'color'\n */\n\n }]);\n\n return Container;\n}(_node2.default);\n\nexports.default = Container;\nmodule.exports = exports['default'];","// https://d3js.org/d3-format/ v2.0.0 Copyright 2020 Mike Bostock\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));\n})(this, function (exports) {\n 'use strict';\n\n function formatDecimal(x) {\n return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString(\"en\").replace(/,/g, \"\") : x.toString(10);\n } // Computes the decimal coefficient and exponent of the specified number x with\n // significant digits p, where x is positive and p is in [1, 21] or undefined.\n // For example, formatDecimalParts(1.23) returns [\"123\", 0].\n\n\n function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n\n var i,\n coefficient = x.slice(0, i); // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n\n return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];\n }\n\n function exponent(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n }\n\n function formatGroup(grouping, thousands) {\n return function (value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n }\n\n function formatNumerals(numerals) {\n return function (value) {\n return value.replace(/[0-9]/g, function (i) {\n return numerals[+i];\n });\n };\n } // [[fill]align][sign][symbol][0][width][,][.precision][~][type]\n\n\n var re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\n function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n }\n\n formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\n function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n }\n\n FormatSpecifier.prototype.toString = function () {\n return this.fill + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === undefined ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\n }; // Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\n\n\n function formatTrim(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\":\n i0 = i1 = i;\n break;\n\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n }\n\n var prefixExponent;\n\n function formatPrefixAuto(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n }\n\n function formatRounded(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n }\n\n var formatTypes = {\n \"%\": function _(x, p) {\n return (x * 100).toFixed(p);\n },\n \"b\": function b(x) {\n return Math.round(x).toString(2);\n },\n \"c\": function c(x) {\n return x + \"\";\n },\n \"d\": formatDecimal,\n \"e\": function e(x, p) {\n return x.toExponential(p);\n },\n \"f\": function f(x, p) {\n return x.toFixed(p);\n },\n \"g\": function g(x, p) {\n return x.toPrecision(p);\n },\n \"o\": function o(x) {\n return Math.round(x).toString(8);\n },\n \"p\": function p(x, _p) {\n return formatRounded(x * 100, _p);\n },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function X(x) {\n return Math.round(x).toString(16).toUpperCase();\n },\n \"x\": function x(_x) {\n return Math.round(_x).toString(16);\n }\n };\n\n function identity(x) {\n return x;\n }\n\n var map = Array.prototype.map,\n prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\n\n function formatLocale(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type; // The \"n\" type is an alias for \",g\".\n\n if (type === \"n\") comma = true, type = \"g\"; // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\"; // If zero fill is specified, padding goes after sign and before digits.\n\n if (zero || fill === \"0\" && align === \"=\") zero = true, fill = \"0\", align = \"=\"; // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\"; // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type); // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n\n precision = precision === undefined ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i,\n n,\n c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value; // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n\n var valueNegative = value < 0 || 1 / value < 0; // Perform the initial formatting.\n\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision); // Trim insignificant zeros.\n\n if (trim) value = formatTrim(value); // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false; // Compute the prefix and suffix.\n\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\"); // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n\n if (maybeSuffix) {\n i = -1, n = value.length;\n\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n } // If the fill character is not \"0\", grouping is applied before padding.\n\n\n if (comma && !zero) value = group(value, Infinity); // Compute the padding.\n\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\"; // If the fill character is \"0\", grouping is applied after padding.\n\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\"; // Reconstruct the final output based on the desired alignment.\n\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n\n return numerals(value);\n }\n\n format.toString = function () {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function (value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n }\n\n var locale;\n defaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n });\n\n function defaultLocale(definition) {\n locale = formatLocale(definition);\n exports.format = locale.format;\n exports.formatPrefix = locale.formatPrefix;\n return locale;\n }\n\n function precisionFixed(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n }\n\n function precisionPrefix(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n }\n\n function precisionRound(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n }\n\n exports.FormatSpecifier = FormatSpecifier;\n exports.formatDefaultLocale = defaultLocale;\n exports.formatLocale = formatLocale;\n exports.formatSpecifier = formatSpecifier;\n exports.precisionFixed = precisionFixed;\n exports.precisionPrefix = precisionPrefix;\n exports.precisionRound = precisionRound;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (value) {\n if (Array.isArray(value)) value = value.join(',');\n return value.match(/-webkit-|-moz-|-ms-/) !== null;\n};\n\nmodule.exports = exports['default'];","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = safeParse;\n\nvar _input = require('../postcss/input');\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _safeParser = require('./safe-parser');\n\nvar _safeParser2 = _interopRequireDefault(_safeParser);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction safeParse(css, opts) {\n var input = new _input2.default(css, opts);\n var parser = new _safeParser2.default(input);\n parser.tokenize();\n parser.loop();\n return parser.root;\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gradient;\n\nvar _joinPrefixedValue = require('../../utils/joinPrefixedValue');\n\nvar _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);\n\nvar _isPrefixedValue = require('../../utils/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;\n\nfunction gradient(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.match(values) !== null) {\n return (0, _joinPrefixedValue2.default)(property, value);\n }\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _warning = require('./warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n/**\n * @typedef {object} Message\n * @property {string} type - message type\n * @property {string} plugin - source PostCSS plugin name\n */\n\n/**\n * Provides the result of the PostCSS transformations.\n *\n * A Result instance is returned by {@link LazyResult#then}\n * or {@link Root#toResult} methods.\n *\n * @example\n * postcss([cssnext]).process(css).then(function (result) {\n * console.log(result.css);\n * });\n *\n * @example\n * var result2 = postcss.parse(css).toResult();\n */\n\n\nvar Result = function () {\n /**\n * @param {Processor} processor - processor used for this transformation.\n * @param {Root} root - Root node after all transformations.\n * @param {processOptions} opts - options from the {@link Processor#process}\n * or {@link Root#toResult}\n */\n function Result(processor, root, opts) {\n _classCallCheck(this, Result);\n /**\n * @member {Processor} - The Processor instance used\n * for this transformation.\n *\n * @example\n * for ( let plugin of result.processor.plugins) {\n * if ( plugin.postcssPlugin === 'postcss-bad' ) {\n * throw 'postcss-good is incompatible with postcss-bad';\n * }\n * });\n */\n\n\n this.processor = processor;\n /**\n * @member {Message[]} - Contains messages from plugins\n * (e.g., warnings or custom messages).\n * Each message should have type\n * and plugin properties.\n *\n * @example\n * postcss.plugin('postcss-min-browser', () => {\n * return (root, result) => {\n * var browsers = detectMinBrowsersByCanIUse(root);\n * result.messages.push({\n * type: 'min-browser',\n * plugin: 'postcss-min-browser',\n * browsers: browsers\n * });\n * };\n * });\n */\n\n this.messages = [];\n /**\n * @member {Root} - Root node after all transformations.\n *\n * @example\n * root.toResult().root == root;\n */\n\n this.root = root;\n /**\n * @member {processOptions} - Options from the {@link Processor#process}\n * or {@link Root#toResult} call\n * that produced this Result instance.\n *\n * @example\n * root.toResult(opts).opts == opts;\n */\n\n this.opts = opts;\n /**\n * @member {string} - A CSS string representing of {@link Result#root}.\n *\n * @example\n * postcss.parse('a{}').toResult().css //=> \"a{}\"\n */\n\n this.css = undefined;\n /**\n * @member {SourceMapGenerator} - An instance of `SourceMapGenerator`\n * class from the `source-map` library,\n * representing changes\n * to the {@link Result#root} instance.\n *\n * @example\n * result.map.toJSON() //=> { version: 3, file: 'a.css', … }\n *\n * @example\n * if ( result.map ) {\n * fs.writeFileSync(result.opts.to + '.map', result.map.toString());\n * }\n */\n\n this.map = undefined;\n }\n /**\n * Returns for @{link Result#css} content.\n *\n * @example\n * result + '' === result.css\n *\n * @return {string} string representing of {@link Result#root}\n */\n\n\n _createClass(Result, [{\n key: 'toString',\n value: function toString() {\n return this.css;\n }\n /**\n * Creates an instance of {@link Warning} and adds it\n * to {@link Result#messages}.\n *\n * @param {string} text - warning message\n * @param {Object} [opts] - warning options\n * @param {Node} opts.node - CSS node that caused the warning\n * @param {string} opts.word - word in CSS source that caused the warning\n * @param {number} opts.index - index in CSS node string that caused\n * the warning\n * @param {string} opts.plugin - name of the plugin that created\n * this warning. {@link Result#warn} fills\n * this property automatically.\n *\n * @return {Warning} created warning\n */\n\n }, {\n key: 'warn',\n value: function warn(text) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n\n var warning = new _warning2.default(text, opts);\n this.messages.push(warning);\n return warning;\n }\n /**\n * Returns warnings from plugins. Filters {@link Warning} instances\n * from {@link Result#messages}.\n *\n * @example\n * result.warnings().forEach(warn => {\n * console.warn(warn.toString());\n * });\n *\n * @return {Warning[]} warnings from plugins\n */\n\n }, {\n key: 'warnings',\n value: function warnings() {\n return this.messages.filter(function (i) {\n return i.type === 'warning';\n });\n }\n /**\n * An alias for the {@link Result#css} property.\n * Use it with syntaxes that generate non-CSS output.\n * @type {string}\n *\n * @example\n * result.css === result.content;\n */\n\n }, {\n key: 'content',\n get: function get() {\n return this.css;\n }\n }]);\n\n return Result;\n}();\n\nexports.default = Result;\nmodule.exports = exports['default'];","// https://d3js.org/d3-interpolate/ v2.0.1 Copyright 2020 Mike Bostock\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-color')) : typeof define === 'function' && define.amd ? define(['exports', 'd3-color'], factory) : (global = global || self, factory(global.d3 = global.d3 || {}, global.d3));\n})(this, function (exports, d3Color) {\n 'use strict';\n\n function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\n }\n\n function basis$1(values) {\n var n = values.length - 1;\n return function (t) {\n var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n }\n\n function basisClosed(values) {\n var n = values.length;\n return function (t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n }\n\n var constant = function constant(x) {\n return function () {\n return x;\n };\n };\n\n function linear(a, d) {\n return function (t) {\n return a + t * d;\n };\n }\n\n function exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {\n return Math.pow(a + t * b, y);\n };\n }\n\n function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n }\n\n function gamma(y) {\n return (y = +y) === 1 ? nogamma : function (a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n }\n\n function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n }\n\n var rgb = function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = d3Color.rgb(start)).r, (end = d3Color.rgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n return rgb;\n }(1);\n\n function rgbSpline(spline) {\n return function (colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i,\n color;\n\n for (i = 0; i < n; ++i) {\n color = d3Color.rgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function (t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n }\n\n var rgbBasis = rgbSpline(basis$1);\n var rgbBasisClosed = rgbSpline(basisClosed);\n\n function numberArray(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function (t) {\n for (i = 0; i < n; ++i) {\n c[i] = a[i] * (1 - t) + b[i] * t;\n }\n\n return c;\n };\n }\n\n function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n }\n\n function array(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n }\n\n function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) {\n x[i] = value(a[i], b[i]);\n }\n\n for (; i < nb; ++i) {\n c[i] = b[i];\n }\n\n return function (t) {\n for (i = 0; i < na; ++i) {\n c[i] = x[i](t);\n }\n\n return c;\n };\n }\n\n function date(a, b) {\n var d = new Date();\n return a = +a, b = +b, function (t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n }\n\n function number(a, b) {\n return a = +a, b = +b, function (t) {\n return a * (1 - t) + b * t;\n };\n }\n\n function object(a, b) {\n var i = {},\n c = {},\n k;\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function (t) {\n for (k in i) {\n c[k] = i[k](t);\n }\n\n return c;\n };\n }\n\n var reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\n function zero(b) {\n return function () {\n return b;\n };\n }\n\n function one(b) {\n return function (t) {\n return b(t) + \"\";\n };\n }\n\n function string(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // string constants and placeholders\n q = []; // number interpolators\n // Coerce inputs to strings.\n\n a = a + \"\", b = b + \"\"; // Interpolate pairs of numbers in a & b.\n\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\n }\n\n bi = reB.lastIndex;\n } // Add remains of b.\n\n\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n } // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n\n\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {\n for (var i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n });\n }\n\n function value(a, b) {\n var t = typeof b,\n c;\n return b == null || t === \"boolean\" ? constant(b) : (t === \"number\" ? number : t === \"string\" ? (c = d3Color.color(b)) ? (b = c, rgb) : string : b instanceof d3Color.color ? rgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object : number)(a, b);\n }\n\n function discrete(range) {\n var n = range.length;\n return function (t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n }\n\n function hue$1(a, b) {\n var i = hue(+a, +b);\n return function (t) {\n var x = i(t);\n return x - 360 * Math.floor(x / 360);\n };\n }\n\n function round(a, b) {\n return a = +a, b = +b, function (t) {\n return Math.round(a * (1 - t) + b * t);\n };\n }\n\n var degrees = 180 / Math.PI;\n var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n };\n\n function decompose(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n }\n\n var svgNode;\n /* eslint-disable no-undef */\n\n function parseCss(value) {\n var m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n }\n\n function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n }\n\n function interpolateTransform(parse, pxComma, pxParen, degParen) {\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360;else if (b - a > 180) a += 360; // shortest path\n\n q.push({\n i: s.push(pop(s) + \"rotate(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({\n i: s.push(pop(s) + \"skewX(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function (a, b) {\n var s = [],\n // string constants and placeholders\n q = []; // number interpolators\n\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n\n return function (t) {\n var i = -1,\n n = q.length,\n o;\n\n while (++i < n) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n };\n };\n }\n\n var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\n var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n var epsilon2 = 1e-12;\n\n function cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n }\n\n function sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n }\n\n function tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n }\n\n var zoom = function zoomRho(rho, rho2, rho4) {\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0],\n uy0 = p0[1],\n w0 = p0[2],\n ux1 = p1[0],\n uy1 = p1[1],\n w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S; // Special case for u0 ≅ u1.\n\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n\n i = function i(t) {\n return [ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(rho * t * S)];\n };\n } // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n\n i = function i(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / cosh(rho * s + r0)];\n };\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n return i;\n }\n\n zoom.rho = function (_) {\n var _1 = Math.max(1e-3, +_),\n _2 = _1 * _1,\n _4 = _2 * _2;\n\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n }(Math.SQRT2, 2, 4);\n\n function hsl(hue) {\n return function (start, end) {\n var h = hue((start = d3Color.hsl(start)).h, (end = d3Color.hsl(end)).h),\n s = nogamma(start.s, end.s),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n };\n }\n\n var hsl$1 = hsl(hue);\n var hslLong = hsl(nogamma);\n\n function lab(start, end) {\n var l = nogamma((start = d3Color.lab(start)).l, (end = d3Color.lab(end)).l),\n a = nogamma(start.a, end.a),\n b = nogamma(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n function hcl(hue) {\n return function (start, end) {\n var h = hue((start = d3Color.hcl(start)).h, (end = d3Color.hcl(end)).h),\n c = nogamma(start.c, end.c),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n };\n }\n\n var hcl$1 = hcl(hue);\n var hclLong = hcl(nogamma);\n\n function cubehelix(hue) {\n return function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = d3Color.cubehelix(start)).h, (end = d3Color.cubehelix(end)).h),\n s = nogamma(start.s, end.s),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n return cubehelix;\n }(1);\n }\n\n var cubehelix$1 = cubehelix(hue);\n var cubehelixLong = cubehelix(nogamma);\n\n function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0,\n n = values.length - 1,\n v = values[0],\n I = new Array(n < 0 ? 0 : n);\n\n while (i < n) {\n I[i] = interpolate(v, v = values[++i]);\n }\n\n return function (t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n }\n\n function quantize(interpolator, n) {\n var samples = new Array(n);\n\n for (var i = 0; i < n; ++i) {\n samples[i] = interpolator(i / (n - 1));\n }\n\n return samples;\n }\n\n exports.interpolate = value;\n exports.interpolateArray = array;\n exports.interpolateBasis = basis$1;\n exports.interpolateBasisClosed = basisClosed;\n exports.interpolateCubehelix = cubehelix$1;\n exports.interpolateCubehelixLong = cubehelixLong;\n exports.interpolateDate = date;\n exports.interpolateDiscrete = discrete;\n exports.interpolateHcl = hcl$1;\n exports.interpolateHclLong = hclLong;\n exports.interpolateHsl = hsl$1;\n exports.interpolateHslLong = hslLong;\n exports.interpolateHue = hue$1;\n exports.interpolateLab = lab;\n exports.interpolateNumber = number;\n exports.interpolateNumberArray = numberArray;\n exports.interpolateObject = object;\n exports.interpolateRgb = rgb;\n exports.interpolateRgbBasis = rgbBasis;\n exports.interpolateRgbBasisClosed = rgbBasisClosed;\n exports.interpolateRound = round;\n exports.interpolateString = string;\n exports.interpolateTransformCss = interpolateTransformCss;\n exports.interpolateTransformSvg = interpolateTransformSvg;\n exports.interpolateZoom = zoom;\n exports.piecewise = piecewise;\n exports.quantize = quantize;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});","'use strict';\n/* eslint-disable no-var, prefer-template */\n\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name];\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\n}\n\nmodule.exports = hyphenateStyleName;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (property) {\n return property.match(/^(Webkit|Moz|O|ms)/) !== null;\n};\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); // Thanks to ReactDOMFactories for this handy list!\n\nexports.default = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\nmodule.exports = exports['default'];","module.exports = isFunction;\nvar toString = Object.prototype.toString;\n\nfunction isFunction(fn) {\n if (!fn) {\n return false;\n }\n\n var string = toString.call(fn);\n return string === '[object Function]' || typeof fn === 'function' && string !== '[object RegExp]' || typeof window !== 'undefined' && ( // IE8 and below\n fn === window.setTimeout || fn === window.alert || fn === window.confirm || fn === window.prompt);\n}\n\n;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n/* Wraps glamor's stylesheet and exports a singleton for styled components\nto use. */\n\n\nvar _sheet = require('../vendor/glamor/sheet');\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar babelPluginFlowReactPropTypes_proptype_GlamorInsertedRule = require('../types').babelPluginFlowReactPropTypes_proptype_GlamorInsertedRule || require('prop-types').any;\n\nvar babelPluginFlowReactPropTypes_proptype_GlamorRule = require('../types').babelPluginFlowReactPropTypes_proptype_GlamorRule || require('prop-types').any;\n\nvar StyleSheet = function () {\n function StyleSheet() {\n _classCallCheck(this, StyleSheet);\n /* Don't specify a maxLength for the global sheet, since these rules\n * are defined at initialization and should remain static after that */\n\n\n this.globalStyleSheet = new _sheet.StyleSheet({\n speedy: false\n });\n this.componentStyleSheet = new _sheet.StyleSheet({\n speedy: false,\n maxLength: 40\n });\n }\n\n _createClass(StyleSheet, [{\n key: 'inject',\n value: function inject() {\n this.globalStyleSheet.inject();\n this.componentStyleSheet.inject();\n }\n }, {\n key: 'flush',\n value: function flush() {\n if (this.globalStyleSheet.sheet) this.globalStyleSheet.flush();\n if (this.componentStyleSheet.sheet) this.componentStyleSheet.flush();\n }\n }, {\n key: 'insert',\n value: function insert(rule) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n global: false\n };\n var sheet = opts.global ? this.globalStyleSheet : this.componentStyleSheet;\n return sheet.insert(rule);\n }\n }, {\n key: 'rules',\n value: function rules() {\n return this.globalStyleSheet.rules().concat(this.componentStyleSheet.rules());\n }\n }, {\n key: 'injected',\n get: function get() {\n return this.globalStyleSheet.injected && this.componentStyleSheet.injected;\n }\n }]);\n\n return StyleSheet;\n}();\n/* Export stylesheet as a singleton class */\n\n\nexports.default = new StyleSheet();\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n/**\n * Represents a plugin’s warning. It can be created using {@link Node#warn}.\n *\n * @example\n * if ( decl.important ) {\n * decl.warn(result, 'Avoid !important', { word: '!important' });\n * }\n */\n\n\nvar Warning = function () {\n /**\n * @param {string} text - warning message\n * @param {Object} [opts] - warning options\n * @param {Node} opts.node - CSS node that caused the warning\n * @param {string} opts.word - word in CSS source that caused the warning\n * @param {number} opts.index - index in CSS node string that caused\n * the warning\n * @param {string} opts.plugin - name of the plugin that created\n * this warning. {@link Result#warn} fills\n * this property automatically.\n */\n function Warning(text) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Warning);\n /**\n * @member {string} - Type to filter warnings from\n * {@link Result#messages}. Always equal\n * to `\"warning\"`.\n *\n * @example\n * const nonWarning = result.messages.filter(i => i.type !== 'warning')\n */\n\n\n this.type = 'warning';\n /**\n * @member {string} - The warning message.\n *\n * @example\n * warning.text //=> 'Try to avoid !important'\n */\n\n this.text = text;\n\n if (opts.node && opts.node.source) {\n var pos = opts.node.positionBy(opts);\n /**\n * @member {number} - Line in the input file\n * with this warning’s source\n *\n * @example\n * warning.line //=> 5\n */\n\n this.line = pos.line;\n /**\n * @member {number} - Column in the input file\n * with this warning’s source.\n *\n * @example\n * warning.column //=> 6\n */\n\n this.column = pos.column;\n }\n\n for (var opt in opts) {\n this[opt] = opts[opt];\n }\n }\n /**\n * Returns a warning position and message.\n *\n * @example\n * warning.toString() //=> 'postcss-lint:a.css:10:14: Avoid !important'\n *\n * @return {string} warning position and message\n */\n\n\n _createClass(Warning, [{\n key: 'toString',\n value: function toString() {\n if (this.node) {\n return this.node.error(this.text, {\n plugin: this.plugin,\n index: this.index,\n word: this.word\n }).message;\n } else if (this.plugin) {\n return this.plugin + ': ' + this.text;\n } else {\n return this.text;\n }\n }\n /**\n * @memberof Warning#\n * @member {string} plugin - The name of the plugin that created\n * it will fill this property automatically.\n * this warning. When you call {@link Node#warn}\n *\n * @example\n * warning.plugin //=> 'postcss-important'\n */\n\n /**\n * @memberof Warning#\n * @member {Node} node - Contains the CSS node that caused the warning.\n *\n * @example\n * warning.node.toString() //=> 'color: white !important'\n */\n\n }]);\n\n return Warning;\n}();\n\nexports.default = Warning;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n \"Webkit\": {\n \"transform\": true,\n \"transformOrigin\": true,\n \"transformOriginX\": true,\n \"transformOriginY\": true,\n \"backfaceVisibility\": true,\n \"perspective\": true,\n \"perspectiveOrigin\": true,\n \"transformStyle\": true,\n \"transformOriginZ\": true,\n \"animation\": true,\n \"animationDelay\": true,\n \"animationDirection\": true,\n \"animationFillMode\": true,\n \"animationDuration\": true,\n \"animationIterationCount\": true,\n \"animationName\": true,\n \"animationPlayState\": true,\n \"animationTimingFunction\": true,\n \"appearance\": true,\n \"userSelect\": true,\n \"fontKerning\": true,\n \"textEmphasisPosition\": true,\n \"textEmphasis\": true,\n \"textEmphasisStyle\": true,\n \"textEmphasisColor\": true,\n \"boxDecorationBreak\": true,\n \"clipPath\": true,\n \"maskImage\": true,\n \"maskMode\": true,\n \"maskRepeat\": true,\n \"maskPosition\": true,\n \"maskClip\": true,\n \"maskOrigin\": true,\n \"maskSize\": true,\n \"maskComposite\": true,\n \"mask\": true,\n \"maskBorderSource\": true,\n \"maskBorderMode\": true,\n \"maskBorderSlice\": true,\n \"maskBorderWidth\": true,\n \"maskBorderOutset\": true,\n \"maskBorderRepeat\": true,\n \"maskBorder\": true,\n \"maskType\": true,\n \"textDecorationStyle\": true,\n \"textDecorationSkip\": true,\n \"textDecorationLine\": true,\n \"textDecorationColor\": true,\n \"filter\": true,\n \"fontFeatureSettings\": true,\n \"breakAfter\": true,\n \"breakBefore\": true,\n \"breakInside\": true,\n \"columnCount\": true,\n \"columnFill\": true,\n \"columnGap\": true,\n \"columnRule\": true,\n \"columnRuleColor\": true,\n \"columnRuleStyle\": true,\n \"columnRuleWidth\": true,\n \"columns\": true,\n \"columnSpan\": true,\n \"columnWidth\": true,\n \"flex\": true,\n \"flexBasis\": true,\n \"flexDirection\": true,\n \"flexGrow\": true,\n \"flexFlow\": true,\n \"flexShrink\": true,\n \"flexWrap\": true,\n \"alignContent\": true,\n \"alignItems\": true,\n \"alignSelf\": true,\n \"justifyContent\": true,\n \"order\": true,\n \"transition\": true,\n \"transitionDelay\": true,\n \"transitionDuration\": true,\n \"transitionProperty\": true,\n \"transitionTimingFunction\": true,\n \"backdropFilter\": true,\n \"scrollSnapType\": true,\n \"scrollSnapPointsX\": true,\n \"scrollSnapPointsY\": true,\n \"scrollSnapDestination\": true,\n \"scrollSnapCoordinate\": true,\n \"shapeImageThreshold\": true,\n \"shapeImageMargin\": true,\n \"shapeImageOutside\": true,\n \"hyphens\": true,\n \"flowInto\": true,\n \"flowFrom\": true,\n \"regionFragment\": true,\n \"textSizeAdjust\": true\n },\n \"Moz\": {\n \"appearance\": true,\n \"userSelect\": true,\n \"boxSizing\": true,\n \"textAlignLast\": true,\n \"textDecorationStyle\": true,\n \"textDecorationSkip\": true,\n \"textDecorationLine\": true,\n \"textDecorationColor\": true,\n \"tabSize\": true,\n \"hyphens\": true,\n \"fontFeatureSettings\": true,\n \"breakAfter\": true,\n \"breakBefore\": true,\n \"breakInside\": true,\n \"columnCount\": true,\n \"columnFill\": true,\n \"columnGap\": true,\n \"columnRule\": true,\n \"columnRuleColor\": true,\n \"columnRuleStyle\": true,\n \"columnRuleWidth\": true,\n \"columns\": true,\n \"columnSpan\": true,\n \"columnWidth\": true\n },\n \"ms\": {\n \"flex\": true,\n \"flexBasis\": false,\n \"flexDirection\": true,\n \"flexGrow\": false,\n \"flexFlow\": true,\n \"flexShrink\": false,\n \"flexWrap\": true,\n \"alignContent\": false,\n \"alignItems\": false,\n \"alignSelf\": false,\n \"justifyContent\": false,\n \"order\": false,\n \"transform\": true,\n \"transformOrigin\": true,\n \"transformOriginX\": true,\n \"transformOriginY\": true,\n \"userSelect\": true,\n \"wrapFlow\": true,\n \"wrapThrough\": true,\n \"wrapMargin\": true,\n \"scrollSnapType\": true,\n \"scrollSnapPointsX\": true,\n \"scrollSnapPointsY\": true,\n \"scrollSnapDestination\": true,\n \"scrollSnapCoordinate\": true,\n \"touchAction\": true,\n \"hyphens\": true,\n \"flowInto\": true,\n \"flowFrom\": true,\n \"breakBefore\": true,\n \"breakAfter\": true,\n \"breakInside\": true,\n \"regionFragment\": true,\n \"gridTemplateColumns\": true,\n \"gridTemplateRows\": true,\n \"gridTemplateAreas\": true,\n \"gridTemplate\": true,\n \"gridAutoColumns\": true,\n \"gridAutoRows\": true,\n \"gridAutoFlow\": true,\n \"grid\": true,\n \"gridRowStart\": true,\n \"gridColumnStart\": true,\n \"gridRowEnd\": true,\n \"gridRow\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnGap\": true,\n \"gridRowGap\": true,\n \"gridArea\": true,\n \"gridGap\": true,\n \"textSizeAdjust\": true\n }\n};\nmodule.exports = exports[\"default\"];","var superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;","import styled from 'styled-components';\n\nexport const Container = styled.div`\n padding: 2rem 4rem;\n max-width: 700px;\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Container } from './box.css';\n\nconst Box = ({ children }) => {children};\n\nBox.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Box;\n","/*!\n * isobject \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n/*\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n- 'polyfills' on server side\n\n\n// usage\n\nimport StyleSheet from 'glamor/lib/sheet'\nlet styleSheet = new StyleSheet()\n\nstyleSheet.inject()\n- 'injects' the stylesheet into the page (or into memory if on server)\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n\n*/\n\n\nfunction last(arr) {\n return arr[arr.length - 1];\n}\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n }\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n }\n}\n\nvar isBrowser = typeof document !== 'undefined';\n\nvar isDev = function (x) {\n return x === 'development' || !x;\n}(process.env.NODE_ENV);\n\nvar isTest = process.env.NODE_ENV === 'test';\n\nvar oldIE = function () {\n if (isBrowser) {\n var div = document.createElement('div');\n div.innerHTML = '';\n return div.getElementsByTagName('i').length === 1;\n }\n}();\n\nfunction makeStyleTag() {\n var tag = document.createElement('style');\n tag.type = 'text/css';\n tag.appendChild(document.createTextNode(''));\n (document.head || document.getElementsByTagName('head')[0]).appendChild(tag);\n return tag;\n}\n\nvar StyleSheet = exports.StyleSheet = function () {\n function StyleSheet() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$speedy = _ref.speedy,\n speedy = _ref$speedy === undefined ? !isDev && !isTest : _ref$speedy,\n _ref$maxLength = _ref.maxLength,\n maxLength = _ref$maxLength === undefined ? isBrowser && oldIE ? 4000 : 65000 : _ref$maxLength;\n\n _classCallCheck(this, StyleSheet);\n\n this.isSpeedy = speedy; // the big drawback here is that the css won't be editable in devtools\n\n this.sheet = undefined;\n this.tags = [];\n this.maxLength = maxLength;\n this.ctr = 0;\n }\n\n _createClass(StyleSheet, [{\n key: 'inject',\n value: function inject() {\n var _this = this;\n\n if (this.injected) {\n throw new Error('already injected stylesheet!');\n }\n\n if (isBrowser) {\n // this section is just weird alchemy I found online off many sources\n this.tags[0] = makeStyleTag(); // this weirdness brought to you by firefox\n\n this.sheet = sheetForTag(this.tags[0]);\n } else {\n // server side 'polyfill'. just enough behavior to be useful.\n this.sheet = {\n cssRules: [],\n insertRule: function insertRule(rule) {\n // enough 'spec compliance' to be able to extract the rules later\n // in other words, just the cssText field\n var serverRule = {\n cssText: rule\n };\n\n _this.sheet.cssRules.push(serverRule);\n\n return {\n serverRule: serverRule,\n appendRule: function appendRule(newCss) {\n return serverRule.cssText += newCss;\n }\n };\n }\n };\n }\n\n this.injected = true;\n }\n }, {\n key: 'speedy',\n value: function speedy(bool) {\n if (this.ctr !== 0) {\n throw new Error('cannot change speedy mode after inserting any rule to sheet. Either call speedy(' + bool + ') earlier in your app, or call flush() before speedy(' + bool + ')');\n }\n\n this.isSpeedy = !!bool;\n }\n }, {\n key: '_insert',\n value: function _insert(rule) {\n // this weirdness for perf, and chrome's weird bug\n // https://stackoverflow.com/questions/20007992/chrome-suddenly-stopped-accepting-insertrule\n try {\n this.sheet.insertRule(rule, this.sheet.cssRules.length); // todo - correct index here\n } catch (e) {\n if (isDev) {\n // might need beter dx for this\n console.warn('whoops, illegal rule inserted', rule); //eslint-disable-line no-console\n }\n }\n }\n }, {\n key: 'insert',\n value: function insert(rule) {\n var insertedRule = void 0;\n\n if (isBrowser) {\n // this is the ultrafast version, works across browsers\n if (this.isSpeedy && this.sheet.insertRule) {\n this._insert(rule);\n } else {\n var textNode = document.createTextNode(rule);\n last(this.tags).appendChild(textNode);\n insertedRule = {\n textNode: textNode,\n appendRule: function appendRule(newCss) {\n return textNode.appendData(newCss);\n }\n };\n\n if (!this.isSpeedy) {\n // sighhh\n this.sheet = sheetForTag(last(this.tags));\n }\n }\n } else {\n // server side is pretty simple\n insertedRule = this.sheet.insertRule(rule);\n }\n\n this.ctr++;\n\n if (isBrowser && this.ctr % this.maxLength === 0) {\n this.tags.push(makeStyleTag());\n this.sheet = sheetForTag(last(this.tags));\n }\n\n return insertedRule;\n }\n }, {\n key: 'flush',\n value: function flush() {\n if (isBrowser) {\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.sheet = null;\n this.ctr = 0; // todo - look for remnants in document.styleSheets\n } else {\n // simpler on server\n this.sheet.cssRules = [];\n }\n\n this.injected = false;\n }\n }, {\n key: 'rules',\n value: function rules() {\n if (!isBrowser) {\n return this.sheet.cssRules;\n }\n\n var arr = [];\n this.tags.forEach(function (tag) {\n return arr.splice.apply(arr, [arr.length, 0].concat(_toConsumableArray(Array.from(sheetForTag(tag).cssRules))));\n });\n return arr;\n }\n }]);\n\n return StyleSheet;\n}();","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _lazyResult = require('./lazy-result');\n\nvar _lazyResult2 = _interopRequireDefault(_lazyResult);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n/**\n * @callback builder\n * @param {string} part - part of generated CSS connected to this node\n * @param {Node} node - AST node\n * @param {\"start\"|\"end\"} [type] - node’s part type\n */\n\n/**\n * @callback parser\n *\n * @param {string|toString} css - string with input CSS or any object\n * with toString() method, like a Buffer\n * @param {processOptions} [opts] - options with only `from` and `map` keys\n *\n * @return {Root} PostCSS AST\n */\n\n/**\n * @callback stringifier\n *\n * @param {Node} node - start node for stringifing. Usually {@link Root}.\n * @param {builder} builder - function to concatenate CSS from node’s parts\n * or generate string and source map\n *\n * @return {void}\n */\n\n/**\n * @typedef {object} syntax\n * @property {parser} parse - function to generate AST by string\n * @property {stringifier} stringify - function to generate string by AST\n */\n\n/**\n * @typedef {object} toString\n * @property {function} toString\n */\n\n/**\n * @callback pluginFunction\n * @param {Root} root - parsed input CSS\n * @param {Result} result - result to set warnings or check other plugins\n */\n\n/**\n * @typedef {object} Plugin\n * @property {function} postcss - PostCSS plugin function\n */\n\n/**\n * @typedef {object} processOptions\n * @property {string} from - the path of the CSS source file.\n * You should always set `from`,\n * because it is used in source map\n * generation and syntax error messages.\n * @property {string} to - the path where you’ll put the output\n * CSS file. You should always set `to`\n * to generate correct source maps.\n * @property {parser} parser - function to generate AST by string\n * @property {stringifier} stringifier - class to generate string by AST\n * @property {syntax} syntax - object with `parse` and `stringify`\n * @property {object} map - source map options\n * @property {boolean} map.inline - does source map should\n * be embedded in the output\n * CSS as a base64-encoded\n * comment\n * @property {string|object|false|function} map.prev - source map content\n * from a previous\n * processing step\n * (for example, Sass).\n * PostCSS will try to find\n * previous map\n * automatically, so you\n * could disable it by\n * `false` value.\n * @property {boolean} map.sourcesContent - does PostCSS should set\n * the origin content to map\n * @property {string|false} map.annotation - does PostCSS should set\n * annotation comment to map\n * @property {string} map.from - override `from` in map’s\n * `sources`\n */\n\n/**\n * Contains plugins to process CSS. Create one `Processor` instance,\n * initialize its plugins, and then use that instance on numerous CSS files.\n *\n * @example\n * const processor = postcss([autoprefixer, precss]);\n * processor.process(css1).then(result => console.log(result.css));\n * processor.process(css2).then(result => console.log(result.css));\n */\n\n\nvar Processor = function () {\n /**\n * @param {Array.|Processor} plugins - PostCSS\n * plugins. See {@link Processor#use} for plugin format.\n */\n function Processor() {\n var plugins = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n _classCallCheck(this, Processor);\n /**\n * @member {string} - Current PostCSS version.\n *\n * @example\n * if ( result.processor.version.split('.')[0] !== '5' ) {\n * throw new Error('This plugin works only with PostCSS 5');\n * }\n */\n\n\n this.version = '5.2.0';\n /**\n * @member {pluginFunction[]} - Plugins added to this processor.\n *\n * @example\n * const processor = postcss([autoprefixer, precss]);\n * processor.plugins.length //=> 2\n */\n\n this.plugins = this.normalize(plugins);\n }\n /**\n * Adds a plugin to be used as a CSS processor.\n *\n * PostCSS plugin can be in 4 formats:\n * * A plugin created by {@link postcss.plugin} method.\n * * A function. PostCSS will pass the function a @{link Root}\n * as the first argument and current {@link Result} instance\n * as the second.\n * * An object with a `postcss` method. PostCSS will use that method\n * as described in #2.\n * * Another {@link Processor} instance. PostCSS will copy plugins\n * from that instance into this one.\n *\n * Plugins can also be added by passing them as arguments when creating\n * a `postcss` instance (see [`postcss(plugins)`]).\n *\n * Asynchronous plugins should return a `Promise` instance.\n *\n * @param {Plugin|pluginFunction|Processor} plugin - PostCSS plugin\n * or {@link Processor}\n * with plugins\n *\n * @example\n * const processor = postcss()\n * .use(autoprefixer)\n * .use(precss);\n *\n * @return {Processes} current processor to make methods chain\n */\n\n\n _createClass(Processor, [{\n key: 'use',\n value: function use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]));\n return this;\n }\n /**\n * Parses source CSS and returns a {@link LazyResult} Promise proxy.\n * Because some plugins can be asynchronous it doesn’t make\n * any transformations. Transformations will be applied\n * in the {@link LazyResult} methods.\n *\n * @param {string|toString|Result} css - String with input CSS or\n * any object with a `toString()`\n * method, like a Buffer.\n * Optionally, send a {@link Result}\n * instance and the processor will\n * take the {@link Root} from it.\n * @param {processOptions} [opts] - options\n *\n * @return {LazyResult} Promise proxy\n *\n * @example\n * processor.process(css, { from: 'a.css', to: 'a.out.css' })\n * .then(result => {\n * console.log(result.css);\n * });\n */\n\n }, {\n key: 'process',\n value: function process(css) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new _lazyResult2.default(this, css, opts);\n }\n }, {\n key: 'normalize',\n value: function normalize(plugins) {\n var normalized = [];\n plugins.forEach(function (i) {\n if (i.postcss) i = i.postcss;\n\n if ((typeof i === 'undefined' ? 'undefined' : _typeof(i)) === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins);\n } else if (typeof i === 'function') {\n normalized.push(i);\n } else {\n throw new Error(i + ' is not a PostCSS plugin');\n }\n });\n return normalized;\n }\n }]);\n\n return Processor;\n}();\n\nexports.default = Processor;\nmodule.exports = exports['default'];","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n'use strict';\n\nvar camelize = require('./camelize');\n\nvar msPattern = /^-ms-/;\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n} // returns a style object with a single concated prefixed value string\n\n\nexports.default = function (property, value) {\n var replacer = arguments.length <= 2 || arguments[2] === undefined ? function (prefix, value) {\n return prefix + value;\n } : arguments[2];\n return _defineProperty({}, property, ['-webkit-', '-moz-', ''].map(function (prefix) {\n return replacer(prefix, value);\n }));\n};\n\nmodule.exports = exports['default'];","var $ = require('../internals/export');\n\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, forced: BUGGY }, {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","// https://d3js.org/d3-color/ v2.0.0 Copyright 2020 Mike Bostock\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = global || self, factory(global.d3 = global.d3 || {}));\n})(this, function (exports) {\n 'use strict';\n\n function define(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n }\n\n function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n\n for (var key in definition) {\n prototype[key] = definition[key];\n }\n\n return prototype;\n }\n\n function Color() {}\n\n var _darker = 0.7;\n\n var _brighter = 1 / _darker;\n\n var reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n var named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n };\n define(Color, color, {\n copy: function copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable: function displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n });\n\n function color_formatHex() {\n return this.rgb().formatHex();\n }\n\n function color_formatHsl() {\n return hslConvert(this).formatHsl();\n }\n\n function color_formatRgb() {\n return this.rgb().formatRgb();\n }\n\n function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb(m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba(m >> 12 & 0xf | m >> 8 & 0xf0, m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, ((m & 0xf) << 4 | m & 0xf) / 0xff) // #f000\n : null // invalid hex\n ) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n }\n\n function rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n }\n\n function rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n }\n\n function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb();\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n }\n\n function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n }\n\n function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n }\n\n define(Rgb, rgb, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function rgb() {\n return this;\n },\n displayable: function displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: rgb_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n }));\n\n function rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n }\n\n function rgb_formatRgb() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n\n function hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n }\n\n function hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;else if (l <= 0 || l >= 1) h = s = NaN;else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n }\n\n function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl();\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n\n return new Hsl(h, s, l, o.opacity);\n }\n\n function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n }\n\n function Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n }\n\n define(Hsl, hsl, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n displayable: function displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl: function formatHsl() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\") + (this.h || 0) + \", \" + (this.s || 0) * 100 + \"%, \" + (this.l || 0) * 100 + \"%\" + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n }));\n /* From FvD 13.37, CSS Color Module Level 3 */\n\n function hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n }\n\n var radians = Math.PI / 180;\n var degrees = 180 / Math.PI; // https://observablehq.com/@mbostock/lab-and-rgb\n\n var K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\n function labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn),\n x,\n z;\n if (r === g && g === b) x = z = y;else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n }\n\n function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n }\n\n function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n }\n\n function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n }\n\n define(Lab, lab, extend(Color, {\n brighter: function brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function rgb() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(lrgb2rgb(3.1338561 * x - 1.6168667 * y - 0.4906146 * z), lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z), lrgb2rgb(0.0719453 * x - 0.2289914 * y + 1.4052427 * z), this.opacity);\n }\n }));\n\n function xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n }\n\n function lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n }\n\n function lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n }\n\n function rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n }\n\n function hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n }\n\n function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n }\n\n function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n }\n\n function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n }\n\n function hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n }\n\n define(Hcl, hcl, extend(Color, {\n brighter: function brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function rgb() {\n return hcl2lab(this).rgb();\n }\n }));\n var A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\n function cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)),\n // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n }\n\n function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n }\n\n function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n }\n\n define(Cubehelix, cubehelix, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * radians,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(255 * (l + a * (A * cosh + B * sinh)), 255 * (l + a * (C * cosh + D * sinh)), 255 * (l + a * (E * cosh)), this.opacity);\n }\n }));\n exports.color = color;\n exports.cubehelix = cubehelix;\n exports.gray = gray;\n exports.hcl = hcl;\n exports.hsl = hsl;\n exports.lab = lab;\n exports.lch = lch;\n exports.rgb = rgb;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixAll;\n\nvar _prefixProps = require('./prefixProps');\n\nvar _prefixProps2 = _interopRequireDefault(_prefixProps);\n\nvar _capitalizeString = require('../utils/capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nvar _sortPrefixedStyle = require('../utils/sortPrefixedStyle');\n\nvar _sortPrefixedStyle2 = _interopRequireDefault(_sortPrefixedStyle);\n\nvar _position = require('./plugins/position');\n\nvar _position2 = _interopRequireDefault(_position);\n\nvar _calc = require('./plugins/calc');\n\nvar _calc2 = _interopRequireDefault(_calc);\n\nvar _cursor = require('./plugins/cursor');\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _flex = require('./plugins/flex');\n\nvar _flex2 = _interopRequireDefault(_flex);\n\nvar _sizing = require('./plugins/sizing');\n\nvar _sizing2 = _interopRequireDefault(_sizing);\n\nvar _gradient = require('./plugins/gradient');\n\nvar _gradient2 = _interopRequireDefault(_gradient);\n\nvar _transition = require('./plugins/transition');\n\nvar _transition2 = _interopRequireDefault(_transition);\n\nvar _flexboxIE = require('./plugins/flexboxIE');\n\nvar _flexboxIE2 = _interopRequireDefault(_flexboxIE);\n\nvar _flexboxOld = require('./plugins/flexboxOld');\n\nvar _flexboxOld2 = _interopRequireDefault(_flexboxOld);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // special flexbox specifications\n\n\nvar plugins = [_position2.default, _calc2.default, _cursor2.default, _sizing2.default, _gradient2.default, _transition2.default, _flexboxIE2.default, _flexboxOld2.default, _flex2.default];\n/**\n * Returns a prefixed version of the style object using all vendor prefixes\n * @param {Object} styles - Style object that gets prefixed properties added\n * @returns {Object} - Style object with prefixed properties and values\n */\n\nfunction prefixAll(styles) {\n Object.keys(styles).forEach(function (property) {\n var value = styles[property];\n\n if (value instanceof Object && !Array.isArray(value)) {\n // recurse through nested style objects\n styles[property] = prefixAll(value);\n } else {\n Object.keys(_prefixProps2.default).forEach(function (prefix) {\n var properties = _prefixProps2.default[prefix]; // add prefixes if needed\n\n if (properties[property]) {\n styles[prefix + (0, _capitalizeString2.default)(property)] = value;\n }\n });\n }\n });\n Object.keys(styles).forEach(function (property) {\n [].concat(styles[property]).forEach(function (value, index) {\n // resolve every special plugins\n plugins.forEach(function (plugin) {\n return assignStyles(styles, plugin(property, value));\n });\n });\n });\n return (0, _sortPrefixedStyle2.default)(styles);\n}\n\nfunction assignStyles(base) {\n var extend = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n Object.keys(extend).forEach(function (property) {\n var baseValue = base[property];\n\n if (Array.isArray(baseValue)) {\n [].concat(extend[property]).forEach(function (value) {\n var valueIndex = baseValue.indexOf(value);\n\n if (valueIndex > -1) {\n base[property].splice(valueIndex, 1);\n }\n\n base[property].push(value);\n });\n } else {\n base[property] = extend[property];\n }\n });\n}\n\nmodule.exports = exports['default'];","module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) {\n isEqual = areInputsEqual;\n }\n\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n\n function memoized() {\n var newArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n\n return memoized;\n}\n\nmodule.exports = memoizeOne;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","var _slicedToArray = require(\"/opt/buildhome/repo/node_modules/@babel/runtime/helpers/slicedToArray\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// https://d3js.org/d3-scale/ v3.2.3 Copyright 2020 Mike Bostock\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-array'), require('d3-interpolate'), require('d3-format'), require('d3-time'), require('d3-time-format')) : typeof define === 'function' && define.amd ? define(['exports', 'd3-array', 'd3-interpolate', 'd3-format', 'd3-time', 'd3-time-format'], factory) : (global = global || self, factory(global.d3 = global.d3 || {}, global.d3, global.d3, global.d3, global.d3, global.d3));\n})(this, function (exports, d3Array, d3Interpolate, d3Format, d3Time, d3TimeFormat) {\n 'use strict';\n\n function initRange(domain, range) {\n switch (arguments.length) {\n case 0:\n break;\n\n case 1:\n this.range(domain);\n break;\n\n default:\n this.range(range).domain(domain);\n break;\n }\n\n return this;\n }\n\n function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0:\n break;\n\n case 1:\n {\n if (typeof domain === \"function\") this.interpolator(domain);else this.range(domain);\n break;\n }\n\n default:\n {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);else this.range(interpolator);\n break;\n }\n }\n\n return this;\n }\n\n var implicit = Symbol(\"implicit\");\n\n function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\",\n i = index.get(key);\n\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n\n var _iterator = _createForOfIteratorHelper(_),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var value = _step.value;\n var key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return scale;\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function () {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n return scale;\n }\n\n function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = d3Array.range(n).map(function (i) {\n return start + step * i;\n });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function (_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function (_) {\n var _ref, _ref2;\n\n return arguments.length ? ((_ref = _, _ref2 = _slicedToArray(_ref, 2), r0 = _ref2[0], r1 = _ref2[1], _ref), r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function (_) {\n var _ref3, _ref4;\n\n return (_ref3 = _, _ref4 = _slicedToArray(_ref3, 2), r0 = _ref4[0], r1 = _ref4[1], _ref3), r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function () {\n return bandwidth;\n };\n\n scale.step = function () {\n return step;\n };\n\n scale.round = function (_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function (_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function (_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function (_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function (_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function () {\n return band(domain(), [r0, r1]).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n }\n\n function pointish(scale) {\n var copy = scale.copy;\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function () {\n return pointish(copy());\n };\n\n return scale;\n }\n\n function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n }\n\n function constants(x) {\n return function () {\n return x;\n };\n }\n\n function number(x) {\n return +x;\n }\n\n var unit = [0, 1];\n\n function identity(x) {\n return x;\n }\n\n function normalize(a, b) {\n return (b -= a = +a) ? function (x) {\n return (x - a) / b;\n } : constants(isNaN(b) ? NaN : 0.5);\n }\n\n function clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function (x) {\n return Math.max(a, Math.min(b, x));\n };\n } // normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n // interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\n\n\n function bimap(domain, range, interpolate) {\n var d0 = domain[0],\n d1 = domain[1],\n r0 = range[0],\n r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function (x) {\n return r0(d0(x));\n };\n }\n\n function polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1; // Reverse descending domains.\n\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function (x) {\n var i = d3Array.bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n }\n\n function copy(source, target) {\n return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());\n }\n\n function transformer() {\n var domain = unit,\n range = unit,\n interpolate = d3Interpolate.interpolate,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function (y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), d3Interpolate.interpolateNumber)))(y)));\n };\n\n scale.domain = function (_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function (_) {\n return range = Array.from(_), interpolate = d3Interpolate.interpolateRound, rescale();\n };\n\n scale.clamp = function (_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function (_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function (t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n }\n\n function continuous() {\n return transformer()(identity, identity);\n }\n\n function tickFormat(start, stop, count, specifier) {\n var step = d3Array.tickStep(start, stop, count),\n precision;\n specifier = d3Format.formatSpecifier(specifier == null ? \",f\" : specifier);\n\n switch (specifier.type) {\n case \"s\":\n {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = d3Format.precisionPrefix(step, value))) specifier.precision = precision;\n return d3Format.formatPrefix(specifier, value);\n }\n\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\":\n {\n if (specifier.precision == null && !isNaN(precision = d3Format.precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n\n case \"f\":\n case \"%\":\n {\n if (specifier.precision == null && !isNaN(precision = d3Format.precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n\n return d3Format.format(specifier);\n }\n\n function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function (count) {\n var d = domain();\n return d3Array.ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function (count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function (count) {\n if (count == null) count = 10;\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n while (maxIter-- > 0) {\n step = d3Array.tickIncrement(start, stop, count);\n\n if (step === prestep) {\n d[i0] = start;\n d[i1] = stop;\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n }\n\n function linear() {\n var scale = continuous();\n\n scale.copy = function () {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n return linearish(scale);\n }\n\n function identity$1(domain) {\n var unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function (_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function () {\n return identity$1(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n return linearish(scale);\n }\n\n function nice(domain, interval) {\n domain = domain.slice();\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n }\n\n function transformLog(x) {\n return Math.log(x);\n }\n\n function transformExp(x) {\n return Math.exp(x);\n }\n\n function transformLogn(x) {\n return -Math.log(-x);\n }\n\n function transformExpn(x) {\n return -Math.exp(-x);\n }\n\n function pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n }\n\n function powp(base) {\n return base === 10 ? pow10 : base === Math.E ? Math.exp : function (x) {\n return Math.pow(base, x);\n };\n }\n\n function logp(base) {\n return base === Math.E ? Math.log : base === 10 && Math.log10 || base === 2 && Math.log2 || (base = Math.log(base), function (x) {\n return Math.log(x) / base;\n });\n }\n\n function reflect(f) {\n return function (x) {\n return -f(-x);\n };\n }\n\n function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n\n return scale;\n }\n\n scale.base = function (_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function (_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function (count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n if (r = v < u) i = u, u = v, v = i;\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = d3Array.ticks(u, v, n);\n } else {\n z = d3Array.ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function (count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = d3Format.format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n\n return function (d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function () {\n return domain(nice(domain(), {\n floor: function floor(x) {\n return pows(Math.floor(logs(x)));\n },\n ceil: function ceil(x) {\n return pows(Math.ceil(logs(x)));\n }\n }));\n };\n\n return scale;\n }\n\n function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function () {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n return scale;\n }\n\n function transformSymlog(c) {\n return function (x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n }\n\n function transformSymexp(c) {\n return function (x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n }\n\n function symlogish(transform) {\n var c = 1,\n scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function (_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n }\n\n function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function () {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n }\n\n function transformPow(exponent) {\n return function (x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n }\n\n function transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n }\n\n function transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n }\n\n function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity) : exponent === 0.5 ? transform(transformSqrt, transformSquare) : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function (_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n }\n\n function pow() {\n var scale = powish(transformer());\n\n scale.copy = function () {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n return scale;\n }\n\n function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n }\n\n function square(x) {\n return Math.sign(x) * x * x;\n }\n\n function unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n }\n\n function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function (y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function (_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function (_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function (_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function (_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function (_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function () {\n return radial(squared.domain(), range).round(round).clamp(squared.clamp()).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n return linearish(scale);\n }\n\n function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0,\n n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n\n while (++i < n) {\n thresholds[i - 1] = d3Array.quantileSorted(domain, i / n);\n }\n\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : range[d3Array.bisect(thresholds, x)];\n }\n\n scale.invertExtent = function (y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [i > 0 ? thresholds[i - 1] : domain[0], i < thresholds.length ? thresholds[i] : domain[domain.length - 1]];\n };\n\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n\n var _iterator2 = _createForOfIteratorHelper(_),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var d = _step2.value;\n if (d != null && !isNaN(d = +d)) domain.push(d);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n domain.sort(d3Array.ascending);\n return rescale();\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function () {\n return thresholds.slice();\n };\n\n scale.copy = function () {\n return quantile().domain(domain).range(range).unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n }\n\n function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x <= x ? range[d3Array.bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n\n while (++i < n) {\n domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n }\n\n return scale;\n }\n\n scale.domain = function (_) {\n var _ref5, _ref6;\n\n return arguments.length ? ((_ref5 = _, _ref6 = _slicedToArray(_ref5, 2), x0 = _ref6[0], x1 = _ref6[1], _ref5), x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function (_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function (y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : i < 1 ? [x0, domain[0]] : i >= n ? [domain[n - 1], x1] : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function () {\n return domain.slice();\n };\n\n scale.copy = function () {\n return quantize().domain([x0, x1]).range(range).unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n }\n\n function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x <= x ? range[d3Array.bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function (_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function (y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function () {\n return threshold().domain(domain).range(range).unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n }\n\n var durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\n function date(t) {\n return new Date(t);\n }\n\n function number$1(t) {\n return t instanceof Date ? +t : +new Date(+t);\n }\n\n function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n var tickIntervals = [[second, 1, durationSecond], [second, 5, 5 * durationSecond], [second, 15, 15 * durationSecond], [second, 30, 30 * durationSecond], [minute, 1, durationMinute], [minute, 5, 5 * durationMinute], [minute, 15, 15 * durationMinute], [minute, 30, 30 * durationMinute], [hour, 1, durationHour], [hour, 3, 3 * durationHour], [hour, 6, 6 * durationHour], [hour, 12, 12 * durationHour], [day, 1, durationDay], [day, 2, 2 * durationDay], [week, 1, durationWeek], [month, 1, durationMonth], [month, 3, 3 * durationMonth], [year, 1, durationYear]];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond : minute(date) < date ? formatSecond : hour(date) < date ? formatMinute : day(date) < date ? formatHour : month(date) < date ? week(date) < date ? formatDay : formatWeek : year(date) < date ? formatMonth : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop) {\n if (interval == null) interval = 10; // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = d3Array.bisector(function (i) {\n return i[2];\n }).right(tickIntervals, target),\n step;\n\n if (i === tickIntervals.length) {\n step = d3Array.tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(d3Array.tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n\n return interval.every(step);\n }\n\n return interval;\n }\n\n scale.invert = function (y) {\n return new Date(invert(y));\n };\n\n scale.domain = function (_) {\n return arguments.length ? domain(Array.from(_, number$1)) : domain().map(date);\n };\n\n scale.ticks = function (interval) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function (count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function (interval) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1])) ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function () {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n }\n\n function time() {\n return initRange.apply(calendar(d3Time.timeYear, d3Time.timeMonth, d3Time.timeWeek, d3Time.timeDay, d3Time.timeHour, d3Time.timeMinute, d3Time.timeSecond, d3Time.timeMillisecond, d3TimeFormat.timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n }\n\n function utcTime() {\n return initRange.apply(calendar(d3Time.utcYear, d3Time.utcMonth, d3Time.utcWeek, d3Time.utcDay, d3Time.utcHour, d3Time.utcMinute, d3Time.utcSecond, d3Time.utcMillisecond, d3TimeFormat.utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n }\n\n function transformer$1() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function (_) {\n var _ref7, _ref8;\n\n return arguments.length ? ((_ref7 = _, _ref8 = _slicedToArray(_ref7, 2), x0 = _ref8[0], x1 = _ref8[1], _ref7), t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function (_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function (_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function (_) {\n var _ref9, _ref10;\n\n var r0, r1;\n return arguments.length ? ((_ref9 = _, _ref10 = _slicedToArray(_ref9, 2), r0 = _ref10[0], r1 = _ref10[1], _ref9), interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(d3Interpolate.interpolate);\n scale.rangeRound = range(d3Interpolate.interpolateRound);\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function (t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n }\n\n function copy$1(source, target) {\n return target.domain(source.domain()).interpolator(source.interpolator()).clamp(source.clamp()).unknown(source.unknown());\n }\n\n function sequential() {\n var scale = linearish(transformer$1()(identity));\n\n scale.copy = function () {\n return copy$1(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n }\n\n function sequentialLog() {\n var scale = loggish(transformer$1()).domain([1, 10]);\n\n scale.copy = function () {\n return copy$1(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n }\n\n function sequentialSymlog() {\n var scale = symlogish(transformer$1());\n\n scale.copy = function () {\n return copy$1(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n }\n\n function sequentialPow() {\n var scale = powish(transformer$1());\n\n scale.copy = function () {\n return copy$1(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n }\n\n function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n }\n\n function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (!isNaN(x = +x)) return interpolator((d3Array.bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n\n var _iterator3 = _createForOfIteratorHelper(_),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var d = _step3.value;\n if (d != null && !isNaN(d = +d)) domain.push(d);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n domain.sort(d3Array.ascending);\n return scale;\n };\n\n scale.interpolator = function (_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function () {\n return domain.map(function (d, i) {\n return interpolator(i / (domain.length - 1));\n });\n };\n\n scale.quantiles = function (n) {\n return Array.from({\n length: n + 1\n }, function (_, i) {\n return d3Array.quantile(domain, i / n);\n });\n };\n\n scale.copy = function () {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n }\n\n function transformer$2() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function (_) {\n var _ref11, _ref12;\n\n return arguments.length ? ((_ref11 = _, _ref12 = _slicedToArray(_ref11, 3), x0 = _ref12[0], x1 = _ref12[1], x2 = _ref12[2], _ref11), t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function (_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function (_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function (_) {\n var _ref13, _ref14;\n\n var r0, r1, r2;\n return arguments.length ? ((_ref13 = _, _ref14 = _slicedToArray(_ref13, 3), r0 = _ref14[0], r1 = _ref14[1], r2 = _ref14[2], _ref13), interpolator = d3Interpolate.piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(d3Interpolate.interpolate);\n scale.rangeRound = range(d3Interpolate.interpolateRound);\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function (t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n }\n\n function diverging() {\n var scale = linearish(transformer$2()(identity));\n\n scale.copy = function () {\n return copy$1(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n }\n\n function divergingLog() {\n var scale = loggish(transformer$2()).domain([0.1, 1, 10]);\n\n scale.copy = function () {\n return copy$1(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n }\n\n function divergingSymlog() {\n var scale = symlogish(transformer$2());\n\n scale.copy = function () {\n return copy$1(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n }\n\n function divergingPow() {\n var scale = powish(transformer$2());\n\n scale.copy = function () {\n return copy$1(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n }\n\n function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n }\n\n exports.scaleBand = band;\n exports.scaleDiverging = diverging;\n exports.scaleDivergingLog = divergingLog;\n exports.scaleDivergingPow = divergingPow;\n exports.scaleDivergingSqrt = divergingSqrt;\n exports.scaleDivergingSymlog = divergingSymlog;\n exports.scaleIdentity = identity$1;\n exports.scaleImplicit = implicit;\n exports.scaleLinear = linear;\n exports.scaleLog = log;\n exports.scaleOrdinal = ordinal;\n exports.scalePoint = point;\n exports.scalePow = pow;\n exports.scaleQuantile = quantile;\n exports.scaleQuantize = quantize;\n exports.scaleRadial = radial;\n exports.scaleSequential = sequential;\n exports.scaleSequentialLog = sequentialLog;\n exports.scaleSequentialPow = sequentialPow;\n exports.scaleSequentialQuantile = sequentialQuantile;\n exports.scaleSequentialSqrt = sequentialSqrt;\n exports.scaleSequentialSymlog = sequentialSymlog;\n exports.scaleSqrt = sqrt;\n exports.scaleSymlog = symlog;\n exports.scaleThreshold = threshold;\n exports.scaleTime = time;\n exports.scaleUtc = utcTime;\n exports.tickFormat = tickFormat;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxOld;\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple'\n};\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines'\n};\n\nfunction flexboxOld(property, value) {\n if (property === 'flexDirection' && typeof value === 'string') {\n return {\n WebkitBoxOrient: value.indexOf('column') > -1 ? 'vertical' : 'horizontal',\n WebkitBoxDirection: value.indexOf('reverse') > -1 ? 'reverse' : 'normal'\n };\n }\n\n if (alternativeProps[property]) {\n return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);\n }\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};\n\nvar _container = require('./container');\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/**\n * Represents an at-rule.\n *\n * If it’s followed in the CSS by a {} block, this node will have\n * a nodes property representing its children.\n *\n * @extends Container\n *\n * @example\n * const root = postcss.parse('@charset \"UTF-8\"; @media print {}');\n *\n * const charset = root.first;\n * charset.type //=> 'atrule'\n * charset.nodes //=> undefined\n *\n * const media = root.last;\n * media.nodes //=> []\n */\n\n\nvar AtRule = function (_Container) {\n _inherits(AtRule, _Container);\n\n function AtRule(defaults) {\n _classCallCheck(this, AtRule);\n\n var _this = _possibleConstructorReturn(this, (AtRule.__proto__ || Object.getPrototypeOf(AtRule)).call(this, defaults));\n\n _this.type = 'atrule';\n return _this;\n }\n\n _createClass(AtRule, [{\n key: 'append',\n value: function append() {\n var _get2;\n\n if (!this.nodes) this.nodes = [];\n\n for (var _len = arguments.length, children = Array(_len), _key = 0; _key < _len; _key++) {\n children[_key] = arguments[_key];\n }\n\n return (_get2 = _get(AtRule.prototype.__proto__ || Object.getPrototypeOf(AtRule.prototype), 'append', this)).call.apply(_get2, [this].concat(children));\n }\n }, {\n key: 'prepend',\n value: function prepend() {\n var _get3;\n\n if (!this.nodes) this.nodes = [];\n\n for (var _len2 = arguments.length, children = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n children[_key2] = arguments[_key2];\n }\n\n return (_get3 = _get(AtRule.prototype.__proto__ || Object.getPrototypeOf(AtRule.prototype), 'prepend', this)).call.apply(_get3, [this].concat(children));\n }\n }, {\n key: 'afterName',\n get: function get() {\n (0, _warnOnce2.default)('AtRule#afterName was deprecated. Use AtRule#raws.afterName');\n return this.raws.afterName;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('AtRule#afterName was deprecated. Use AtRule#raws.afterName');\n this.raws.afterName = val;\n }\n }, {\n key: '_params',\n get: function get() {\n (0, _warnOnce2.default)('AtRule#_params was deprecated. Use AtRule#raws.params');\n return this.raws.params;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('AtRule#_params was deprecated. Use AtRule#raws.params');\n this.raws.params = val;\n }\n /**\n * @memberof AtRule#\n * @member {string} name - the at-rule’s name immediately follows the `@`\n *\n * @example\n * const root = postcss.parse('@media print {}');\n * media.name //=> 'media'\n * const media = root.first;\n */\n\n /**\n * @memberof AtRule#\n * @member {string} params - the at-rule’s parameters, the values\n * that follow the at-rule’s name but precede\n * any {} block\n *\n * @example\n * const root = postcss.parse('@media print, screen {}');\n * const media = root.first;\n * media.params //=> 'print, screen'\n */\n\n /**\n * @memberof AtRule#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `after`: the space symbols after the last child of the node\n * to the end of the node.\n * * `between`: the symbols between the property and value\n * for declarations, selector and `{` for rules, or last parameter\n * and `{` for at-rules.\n * * `semicolon`: contains true if the last child has\n * an (optional) semicolon.\n * * `afterName`: the space between the at-rule name and its parameters.\n *\n * PostCSS cleans at-rule parameters from comments and extra spaces,\n * but it stores origin content in raws properties.\n * As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse(' @media\\nprint {\\n}')\n * root.first.first.raws //=> { before: ' ',\n * // between: ' ',\n * // afterName: '\\n',\n * // after: '\\n' }\n */\n\n }]);\n\n return AtRule;\n}(_container2.default);\n\nexports.default = AtRule;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxIE;\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar alternativeValues = {\n 'space-around': 'distribute',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end'\n};\nvar alternativeProps = {\n alignContent: 'msFlexLinePack',\n alignSelf: 'msFlexItemAlign',\n alignItems: 'msFlexAlign',\n justifyContent: 'msFlexPack',\n order: 'msFlexOrder',\n flexGrow: 'msFlexPositive',\n flexShrink: 'msFlexNegative',\n flexBasis: 'msPreferredSize'\n};\n\nfunction flexboxIE(property, value) {\n if (alternativeProps[property]) {\n return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);\n }\n}\n\nmodule.exports = exports['default'];","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction selectors(parent, node) {\n var result = [];\n parent.selectors.forEach(function (i) {\n node.selectors.forEach(function (j) {\n if (j.indexOf('&') === -1) {\n result.push(i + ' ' + j);\n } else {\n result.push(j.replace(/&/g, i));\n }\n });\n });\n return result;\n}\n\nfunction pickComment(comment, after) {\n if (comment && comment.type === 'comment') {\n return comment.moveAfter(after);\n } else {\n return after;\n }\n}\n\nfunction atruleChilds(rule, atrule) {\n var children = [];\n atrule.each(function (child) {\n if (child.type === 'comment') {\n children.push(child);\n }\n\n if (child.type === 'decl') {\n children.push(child);\n } else if (child.type === 'rule') {\n child.selectors = selectors(rule, child);\n } else if (child.type === 'atrule') {\n atruleChilds(rule, child);\n }\n });\n\n if (children.length) {\n var clone = rule.clone({\n nodes: []\n });\n\n for (var i = 0; i < children.length; i++) {\n children[i].moveTo(clone);\n }\n\n atrule.prepend(clone);\n }\n}\n\nfunction processRule(rule, bubble) {\n var unwrapped = false;\n var after = rule;\n rule.each(function (child) {\n if (child.type === 'rule') {\n unwrapped = true;\n child.selectors = selectors(rule, child);\n after = pickComment(child.prev(), after);\n after = child.moveAfter(after);\n } else if (child.type === 'atrule') {\n if (bubble.indexOf(child.name) !== -1) {\n unwrapped = true;\n atruleChilds(rule, child);\n after = pickComment(child.prev(), after);\n after = child.moveAfter(after);\n }\n }\n });\n\n if (unwrapped) {\n rule.raws.semicolon = true;\n if (rule.nodes.length === 0) rule.remove();\n }\n}\n\nvar bubble = ['media', 'supports', 'document'];\n\nvar process = function process(node) {\n node.each(function (child) {\n if (child.type === 'rule') {\n processRule(child, bubble);\n } else if (child.type === 'atrule') {\n process(child);\n }\n });\n};\n\nexports.default = process;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = warnOnce;\nvar printed = {};\n\nfunction warnOnce(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== 'undefined' && console.warn) console.warn(message);\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/* Trying to avoid the unknown-prop errors on styled components\n by filtering by React's attribute whitelist.\n */\n\n/* Logic copied from ReactDOMUnknownPropertyHook */\n\nvar reactProps = {\n children: true,\n dangerouslySetInnerHTML: true,\n key: true,\n ref: true,\n autoFocus: true,\n defaultValue: true,\n valueLink: true,\n defaultChecked: true,\n checkedLink: true,\n innerHTML: true,\n suppressContentEditableWarning: true,\n onFocusIn: true,\n onFocusOut: true,\n className: true,\n\n /* List copied from https://facebook.github.io/react/docs/events.html */\n onCopy: true,\n onCut: true,\n onPaste: true,\n onCompositionEnd: true,\n onCompositionStart: true,\n onCompositionUpdate: true,\n onKeyDown: true,\n onKeyPress: true,\n onKeyUp: true,\n onFocus: true,\n onBlur: true,\n onChange: true,\n onInput: true,\n onSubmit: true,\n onClick: true,\n onContextMenu: true,\n onDoubleClick: true,\n onDrag: true,\n onDragEnd: true,\n onDragEnter: true,\n onDragExit: true,\n onDragLeave: true,\n onDragOver: true,\n onDragStart: true,\n onDrop: true,\n onMouseDown: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseMove: true,\n onMouseOut: true,\n onMouseOver: true,\n onMouseUp: true,\n onSelect: true,\n onTouchCancel: true,\n onTouchEnd: true,\n onTouchMove: true,\n onTouchStart: true,\n onScroll: true,\n onWheel: true,\n onAbort: true,\n onCanPlay: true,\n onCanPlayThrough: true,\n onDurationChange: true,\n onEmptied: true,\n onEncrypted: true,\n onEnded: true,\n onError: true,\n onLoadedData: true,\n onLoadedMetadata: true,\n onLoadStart: true,\n onPause: true,\n onPlay: true,\n onPlaying: true,\n onProgress: true,\n onRateChange: true,\n onSeeked: true,\n onSeeking: true,\n onStalled: true,\n onSuspend: true,\n onTimeUpdate: true,\n onVolumeChange: true,\n onWaiting: true,\n onLoad: true,\n onAnimationStart: true,\n onAnimationEnd: true,\n onAnimationIteration: true,\n onTransitionEnd: true,\n onCopyCapture: true,\n onCutCapture: true,\n onPasteCapture: true,\n onCompositionEndCapture: true,\n onCompositionStartCapture: true,\n onCompositionUpdateCapture: true,\n onKeyDownCapture: true,\n onKeyPressCapture: true,\n onKeyUpCapture: true,\n onFocusCapture: true,\n onBlurCapture: true,\n onChangeCapture: true,\n onInputCapture: true,\n onSubmitCapture: true,\n onClickCapture: true,\n onContextMenuCapture: true,\n onDoubleClickCapture: true,\n onDragCapture: true,\n onDragEndCapture: true,\n onDragEnterCapture: true,\n onDragExitCapture: true,\n onDragLeaveCapture: true,\n onDragOverCapture: true,\n onDragStartCapture: true,\n onDropCapture: true,\n onMouseDownCapture: true,\n onMouseEnterCapture: true,\n onMouseLeaveCapture: true,\n onMouseMoveCapture: true,\n onMouseOutCapture: true,\n onMouseOverCapture: true,\n onMouseUpCapture: true,\n onSelectCapture: true,\n onTouchCancelCapture: true,\n onTouchEndCapture: true,\n onTouchMoveCapture: true,\n onTouchStartCapture: true,\n onScrollCapture: true,\n onWheelCapture: true,\n onAbortCapture: true,\n onCanPlayCapture: true,\n onCanPlayThroughCapture: true,\n onDurationChangeCapture: true,\n onEmptiedCapture: true,\n onEncryptedCapture: true,\n onEndedCapture: true,\n onErrorCapture: true,\n onLoadedDataCapture: true,\n onLoadedMetadataCapture: true,\n onLoadStartCapture: true,\n onPauseCapture: true,\n onPlayCapture: true,\n onPlayingCapture: true,\n onProgressCapture: true,\n onRateChangeCapture: true,\n onSeekedCapture: true,\n onSeekingCapture: true,\n onStalledCapture: true,\n onSuspendCapture: true,\n onTimeUpdateCapture: true,\n onVolumeChangeCapture: true,\n onWaitingCapture: true,\n onLoadCapture: true,\n onAnimationStartCapture: true,\n onAnimationEndCapture: true,\n onAnimationIterationCapture: true,\n onTransitionEndCapture: true\n};\n/* From HTMLDOMPropertyConfig */\n\nvar htmlProps = {\n /**\n * Standard Properties\n */\n accept: true,\n acceptCharset: true,\n accessKey: true,\n action: true,\n allowFullScreen: true,\n allowTransparency: true,\n alt: true,\n // specifies target context for links with `preload` type\n as: true,\n async: true,\n autoComplete: true,\n // autoFocus is polyfilled/normalized by AutoFocusUtils\n // autoFocus: true,\n autoPlay: true,\n capture: true,\n cellPadding: true,\n cellSpacing: true,\n charSet: true,\n challenge: true,\n checked: true,\n cite: true,\n classID: true,\n className: true,\n cols: true,\n colSpan: true,\n content: true,\n contentEditable: true,\n contextMenu: true,\n controls: true,\n coords: true,\n crossOrigin: true,\n data: true,\n // For `` acts as `src`.\n dateTime: true,\n default: true,\n defer: true,\n dir: true,\n disabled: true,\n download: true,\n draggable: true,\n encType: true,\n form: true,\n formAction: true,\n formEncType: true,\n formMethod: true,\n formNoValidate: true,\n formTarget: true,\n frameBorder: true,\n headers: true,\n height: true,\n hidden: true,\n high: true,\n href: true,\n hrefLang: true,\n htmlFor: true,\n httpEquiv: true,\n icon: true,\n id: true,\n inputMode: true,\n integrity: true,\n is: true,\n keyParams: true,\n keyType: true,\n kind: true,\n label: true,\n lang: true,\n list: true,\n loop: true,\n low: true,\n manifest: true,\n marginHeight: true,\n marginWidth: true,\n max: true,\n maxLength: true,\n media: true,\n mediaGroup: true,\n method: true,\n min: true,\n minLength: true,\n // Caution; `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`.\n multiple: true,\n muted: true,\n name: true,\n nonce: true,\n noValidate: true,\n open: true,\n optimum: true,\n pattern: true,\n placeholder: true,\n playsInline: true,\n poster: true,\n preload: true,\n profile: true,\n radioGroup: true,\n readOnly: true,\n referrerPolicy: true,\n rel: true,\n required: true,\n reversed: true,\n role: true,\n rows: true,\n rowSpan: true,\n sandbox: true,\n scope: true,\n scoped: true,\n scrolling: true,\n seamless: true,\n selected: true,\n shape: true,\n size: true,\n sizes: true,\n span: true,\n spellCheck: true,\n src: true,\n srcDoc: true,\n srcLang: true,\n srcSet: true,\n start: true,\n step: true,\n style: true,\n summary: true,\n tabIndex: true,\n target: true,\n title: true,\n // Setting .type throws on non- tags\n type: true,\n useMap: true,\n value: true,\n width: true,\n wmode: true,\n wrap: true,\n\n /**\n * RDFa Properties\n */\n about: true,\n datatype: true,\n inlist: true,\n prefix: true,\n // property is also supported for OpenGraph in meta tags.\n property: true,\n resource: true,\n typeof: true,\n vocab: true,\n\n /**\n * Non-standard Properties\n */\n // autoCapitalize and autoCorrect are supported in Mobile Safari for\n // keyboard hints.\n autoCapitalize: true,\n autoCorrect: true,\n // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n autoSave: true,\n // color is for Safari mask-icon link\n color: true,\n // itemProp, itemScope, itemType are for\n // Microdata support. See http://schema.org/docs/gs.html\n itemProp: true,\n itemScope: true,\n itemType: true,\n // itemID and itemRef are for Microdata support as well but\n // only specified in the WHATWG spec document. See\n // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n itemID: true,\n itemRef: true,\n // results show looking glass icon and recent searches on input\n // search fields in WebKit/Blink\n results: true,\n // IE-only attribute that specifies security restrictions on an iframe\n // as an alternative to the sandbox attribute on IE<10\n security: true,\n // IE-only attribute that controls focus behavior\n unselectable: 0\n};\nvar svgProps = {\n accentHeight: true,\n accumulate: true,\n additive: true,\n alignmentBaseline: true,\n allowReorder: true,\n alphabetic: true,\n amplitude: true,\n arabicForm: true,\n ascent: true,\n attributeName: true,\n attributeType: true,\n autoReverse: true,\n azimuth: true,\n baseFrequency: true,\n baseProfile: true,\n baselineShift: true,\n bbox: true,\n begin: true,\n bias: true,\n by: true,\n calcMode: true,\n capHeight: true,\n clip: true,\n clipPath: true,\n clipRule: true,\n clipPathUnits: true,\n colorInterpolation: true,\n colorInterpolationFilters: true,\n colorProfile: true,\n colorRendering: true,\n contentScriptType: true,\n contentStyleType: true,\n cursor: true,\n cx: true,\n cy: true,\n d: true,\n decelerate: true,\n descent: true,\n diffuseConstant: true,\n direction: true,\n display: true,\n divisor: true,\n dominantBaseline: true,\n dur: true,\n dx: true,\n dy: true,\n edgeMode: true,\n elevation: true,\n enableBackground: true,\n end: true,\n exponent: true,\n externalResourcesRequired: true,\n fill: true,\n fillOpacity: true,\n fillRule: true,\n filter: true,\n filterRes: true,\n filterUnits: true,\n floodColor: true,\n floodOpacity: true,\n focusable: true,\n fontFamily: true,\n fontSize: true,\n fontSizeAdjust: true,\n fontStretch: true,\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n format: true,\n from: true,\n fx: true,\n fy: true,\n g1: true,\n g2: true,\n glyphName: true,\n glyphOrientationHorizontal: true,\n glyphOrientationVertical: true,\n glyphRef: true,\n gradientTransform: true,\n gradientUnits: true,\n hanging: true,\n horizAdvX: true,\n horizOriginX: true,\n ideographic: true,\n imageRendering: true,\n in: true,\n in2: true,\n intercept: true,\n k: true,\n k1: true,\n k2: true,\n k3: true,\n k4: true,\n kernelMatrix: true,\n kernelUnitLength: true,\n kerning: true,\n keyPoints: true,\n keySplines: true,\n keyTimes: true,\n lengthAdjust: true,\n letterSpacing: true,\n lightingColor: true,\n limitingConeAngle: true,\n local: true,\n markerEnd: true,\n markerMid: true,\n markerStart: true,\n markerHeight: true,\n markerUnits: true,\n markerWidth: true,\n mask: true,\n maskContentUnits: true,\n maskUnits: true,\n mathematical: true,\n mode: true,\n numOctaves: true,\n offset: true,\n opacity: true,\n operator: true,\n order: true,\n orient: true,\n orientation: true,\n origin: true,\n overflow: true,\n overlinePosition: true,\n overlineThickness: true,\n paintOrder: true,\n panose1: true,\n pathLength: true,\n patternContentUnits: true,\n patternTransform: true,\n patternUnits: true,\n pointerEvents: true,\n points: true,\n pointsAtX: true,\n pointsAtY: true,\n pointsAtZ: true,\n preserveAlpha: true,\n preserveAspectRatio: true,\n primitiveUnits: true,\n r: true,\n radius: true,\n refX: true,\n refY: true,\n renderingIntent: true,\n repeatCount: true,\n repeatDur: true,\n requiredExtensions: true,\n requiredFeatures: true,\n restart: true,\n result: true,\n rotate: true,\n rx: true,\n ry: true,\n scale: true,\n seed: true,\n shapeRendering: true,\n slope: true,\n spacing: true,\n specularConstant: true,\n specularExponent: true,\n speed: true,\n spreadMethod: true,\n startOffset: true,\n stdDeviation: true,\n stemh: true,\n stemv: true,\n stitchTiles: true,\n stopColor: true,\n stopOpacity: true,\n strikethroughPosition: true,\n strikethroughThickness: true,\n string: true,\n stroke: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeLinecap: true,\n strokeLinejoin: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n surfaceScale: true,\n systemLanguage: true,\n tableValues: true,\n targetX: true,\n targetY: true,\n textAnchor: true,\n textDecoration: true,\n textRendering: true,\n textLength: true,\n to: true,\n transform: true,\n u1: true,\n u2: true,\n underlinePosition: true,\n underlineThickness: true,\n unicode: true,\n unicodeBidi: true,\n unicodeRange: true,\n unitsPerEm: true,\n vAlphabetic: true,\n vHanging: true,\n vIdeographic: true,\n vMathematical: true,\n values: true,\n vectorEffect: true,\n version: true,\n vertAdvY: true,\n vertOriginX: true,\n vertOriginY: true,\n viewBox: true,\n viewTarget: true,\n visibility: true,\n widths: true,\n wordSpacing: true,\n writingMode: true,\n x: true,\n xHeight: true,\n x1: true,\n x2: true,\n xChannelSelector: true,\n xlinkActuate: true,\n xlinkArcrole: true,\n xlinkHref: true,\n xlinkRole: true,\n xlinkShow: true,\n xlinkTitle: true,\n xlinkType: true,\n xmlBase: true,\n xmlns: true,\n xmlnsXlink: true,\n xmlLang: true,\n xmlSpace: true,\n y: true,\n y1: true,\n y2: true,\n yChannelSelector: true,\n z: true,\n zoomAndPan: true\n};\n/* From DOMProperty */\n\nvar ATTRIBUTE_NAME_START_CHAR = \":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + \"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\nvar isCustomAttribute = RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$'));\nvar hasOwnProperty = {}.hasOwnProperty;\n\nexports.default = function (name) {\n return hasOwnProperty.call(htmlProps, name) || hasOwnProperty.call(svgProps, name) || isCustomAttribute(name.toLowerCase()) || hasOwnProperty.call(reactProps, name);\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\n\nvar _node = require('./node');\n\nvar _node2 = _interopRequireDefault(_node);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/**\n * Represents a comment between declarations or statements (rule and at-rules).\n *\n * Comments inside selectors, at-rule parameters, or declaration values\n * will be stored in the `raws` properties explained above.\n *\n * @extends Node\n */\n\n\nvar Comment = function (_Node) {\n _inherits(Comment, _Node);\n\n function Comment(defaults) {\n _classCallCheck(this, Comment);\n\n var _this = _possibleConstructorReturn(this, (Comment.__proto__ || Object.getPrototypeOf(Comment)).call(this, defaults));\n\n _this.type = 'comment';\n return _this;\n }\n\n _createClass(Comment, [{\n key: 'left',\n get: function get() {\n (0, _warnOnce2.default)('Comment#left was deprecated. Use Comment#raws.left');\n return this.raws.left;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Comment#left was deprecated. Use Comment#raws.left');\n this.raws.left = val;\n }\n }, {\n key: 'right',\n get: function get() {\n (0, _warnOnce2.default)('Comment#right was deprecated. Use Comment#raws.right');\n return this.raws.right;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Comment#right was deprecated. Use Comment#raws.right');\n this.raws.right = val;\n }\n /**\n * @memberof Comment#\n * @member {string} text - the comment’s text\n */\n\n /**\n * @memberof Comment#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node.\n * * `left`: the space symbols between `/*` and the comment’s text.\n * * `right`: the space symbols between the comment’s text.\n */\n\n }]);\n\n return Comment;\n}(_node2.default);\n\nexports.default = Comment;\nmodule.exports = exports['default'];","/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Helmet from \"react-helmet\"\nimport { useStaticQuery, graphql } from \"gatsby\"\n\nfunction SEO({ description, lang, meta, title }) {\n const { site } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n title\n description\n author\n }\n }\n }\n `\n )\n\n const metaDescription = description || site.siteMetadata.description\n\n return (\n \n )\n}\n\nSEO.defaultProps = {\n lang: `en`,\n meta: [],\n description: ``,\n}\n\nSEO.propTypes = {\n description: PropTypes.string,\n lang: PropTypes.string,\n meta: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string.isRequired,\n}\n\nexport default SEO\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","'use strict';\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.objToCss = undefined;\n\nvar _hyphenateStyleName = require('fbjs/lib/hyphenateStyleName');\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nvar _isPlainObject = require('is-plain-object');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nvar babelPluginFlowReactPropTypes_proptype_Interpolation = require('../types').babelPluginFlowReactPropTypes_proptype_Interpolation || require('prop-types').any;\n\nvar objToCss = exports.objToCss = function objToCss(obj, prevKey) {\n var css = Object.keys(obj).map(function (key) {\n if ((0, _isPlainObject2.default)(obj[key])) return objToCss(obj[key], key);\n return (0, _hyphenateStyleName2.default)(key) + ': ' + obj[key] + ';';\n }).join(' ');\n return prevKey ? prevKey + ' {\\n ' + css + '\\n}' : css;\n};\n\nvar flatten = function flatten(chunks, executionContext) {\n return chunks.reduce(function (ruleSet, chunk) {\n /* Remove falsey values */\n if (chunk === undefined || chunk === null || chunk === false || chunk === '') return ruleSet;\n /* Flatten ruleSet */\n\n if (Array.isArray(chunk)) return [].concat(_toConsumableArray(ruleSet), _toConsumableArray(flatten(chunk, executionContext)));\n /* Either execute or defer the function */\n\n if (typeof chunk === 'function') {\n return executionContext ? ruleSet.concat.apply(ruleSet, _toConsumableArray(flatten([chunk(executionContext)], executionContext))) : ruleSet.concat(chunk);\n }\n /* Handle objects */\n // $FlowFixMe have to add %checks somehow to isPlainObject\n\n\n return ruleSet.concat((0, _isPlainObject2.default)(chunk) ? objToCss(chunk) : chunk.toString());\n }, []);\n};\n\nexports.default = flatten;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _camelizeStyleName = require('fbjs/lib/camelizeStyleName');\n\nvar _camelizeStyleName2 = _interopRequireDefault(_camelizeStyleName);\n\nvar _hyphenateStyleName = require('fbjs/lib/hyphenateStyleName');\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nvar _static = require('inline-style-prefixer/static');\n\nvar _static2 = _interopRequireDefault(_static);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n} // eslint-disable-next-line\n\n\nvar babelPluginFlowReactPropTypes_proptype_Container = require('../vendor/postcss/container').babelPluginFlowReactPropTypes_proptype_Container || require('prop-types').any;\n\nexports.default = function (root) {\n root.walkDecls(function (decl) {\n /* No point even checking custom props */\n if (/^--/.test(decl.prop)) return;\n\n var objStyle = _defineProperty({}, (0, _camelizeStyleName2.default)(decl.prop), decl.value);\n\n var prefixed = (0, _static2.default)(objStyle);\n Object.keys(prefixed).reverse().forEach(function (newProp) {\n var newVals = prefixed[newProp];\n var newValArray = Array.isArray(newVals) ? newVals : [newVals];\n newValArray.forEach(function (newVal) {\n decl.cloneBefore({\n prop: (0, _hyphenateStyleName2.default)(newProp),\n value: newVal\n });\n });\n });\n decl.remove();\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cursor;\n\nvar _joinPrefixedValue = require('../../utils/joinPrefixedValue');\n\nvar _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\n\nfunction cursor(property, value) {\n if (property === 'cursor' && values[value]) {\n return (0, _joinPrefixedValue2.default)(property, value);\n }\n}\n\nmodule.exports = exports['default'];","// https://d3js.org/d3-path/ v1.0.9 Copyright 2019 Mike Bostock\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = global || self, factory(global.d3 = global.d3 || {}));\n})(this, function (exports) {\n 'use strict';\n\n var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\n function Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n\n this._ = \"\";\n }\n\n function path() {\n return new Path();\n }\n\n Path.prototype = path.prototype = {\n constructor: Path,\n moveTo: function moveTo(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function lineTo(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function quadraticCurveTo(x1, y1, x, y) {\n this._ += \"Q\" + +x1 + \",\" + +y1 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + +x1 + \",\" + +y1 + \",\" + +x2 + \",\" + +y2 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x1,y1).\n\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon)) ; // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21; // If the start tangent is not coincident with (x0,y0), line to.\n\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + +(y01 * x20 > x01 * y20) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x0,y0).\n\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n } // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n } // Is this arc empty? We’re done.\n\n\n if (!r) return; // Does the angle go the wrong way? Flip the direction.\n\n if (da < 0) da = da % tau + tau; // Is this a complete circle? Draw two arcs to complete the circle.\n\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n } // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + +(da >= pi) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function rect(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + +w + \"v\" + +h + \"h\" + -w + \"Z\";\n },\n toString: function toString() {\n return this._;\n }\n };\n exports.path = path;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});"],"sourceRoot":""}