{"version":3,"sources":["webpack:///component---src-layouts-index-js-a284df548dadcd0fe3b8.js","webpack:///./.cache/json/layout-index.json?2af0","webpack:///./.cache/layouts/index.js","webpack:///./~/deep-equal/index.js?cee8","webpack:///./~/deep-equal/lib/is_arguments.js?9011","webpack:///./~/deep-equal/lib/keys.js?a12a","webpack:///./~/detect-browser/index.js","webpack:///./~/exenv/index.js?8b91","webpack:///./~/react-helmet/lib/Helmet.js?718e","webpack:///./~/react-helmet/lib/HelmetConstants.js?cb3f","webpack:///./~/react-helmet/lib/HelmetUtils.js?b20e","webpack:///./~/react-side-effect/lib/index.js?8869","webpack:///./~/shallowequal/index.js?2b18","webpack:///(webpack)/~/os-browserify/browser.js","webpack:///./src/components/OupHeader/OupHeader.js","webpack:///./src/images/oup-full-logo-blue-rgb.svg","webpack:///./src/layouts/index.js"],"names":["webpackJsonp","288","module","exports","data","site","siteMetadata","title","languages","langs","slug","sitePage","path","layoutContext","636","__webpack_require__","_interopRequireDefault","obj","__esModule","default","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","_react","_react2","_index","_index2","_layoutIndex","_layoutIndex2","props","createElement","141","isUndefinedOrNull","value","undefined","isBuffer","x","copy","slice","objEquiv","a","b","opts","isArguments","pSlice","deepEqual","ka","objectKeys","kb","e","sort","Array","actual","expected","Date","getTime","strict","142","supported","object","toString","unsupported","propertyIsEnumerable","supportsArgumentsClass","143","shim","keys","push","909","process","detect","nodeVersion","getNodeVersion","navigator","parseUserAgent","userAgent","detectOS","userAgentString","rules","getOperatingSystemRules","detected","filter","os","rule","test","name","isNode","version","type","toLowerCase","browsers","getBrowserRules","map","browser","match","exec","split","concat","join","Boolean","bot","buildRules","ruleTuples","tuple","144","__WEBPACK_AMD_DEFINE_RESULT__","canUseDOM","window","document","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","162","_objectWithoutProperties","indexOf","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","constructor","enumerable","writable","configurable","setPrototypeOf","__proto__","Helmet","_createClass","defineProperties","descriptor","defineProperty","protoProps","staticProps","_propTypes","_propTypes2","_reactSideEffect","_reactSideEffect2","_deepEqual","_deepEqual2","_HelmetUtils","_HelmetConstants","Component","_class","_temp","_React$Component","HelmetWrapper","this","apply","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","child","nestedChildren","TAG_NAMES","SCRIPT","NOSCRIPT","innerHTML","STYLE","cssText","Error","flattenArrayTypeChildren","_ref","_extends2","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_extends3","_extends4","newProps","TITLE","titleAttributes","BODY","bodyAttributes","HTML","htmlAttributes","mapArrayTypeChildrenToProps","newFlattenedProps","forEach","arrayChildName","_extends5","warnOnInvalidChildren","mapChildrenToProps","children","_this2","Children","_child$props","childProps","convertReactPropstoHtmlAttributes","LINK","META","render","_props","set","propTypes","base","oneOfType","arrayOf","node","defaultTitle","string","defer","bool","encodeSpecialCharacters","link","meta","noscript","onChangeClientState","func","script","style","titleTemplate","defaultProps","peek","rewind","mappedState","mapStateOnServer","baseTag","linkTags","metaTags","noscriptTags","scriptTags","styleTags","NullComponent","HelmetSideEffects","reducePropsToState","handleClientStateChange","HelmetExport","renderStatic","88","ATTRIBUTE_NAMES","BASE","HEAD","REACT_TAG_MAP","VALID_TAG_NAMES","TAG_PROPERTIES","CHARSET","CSS_TEXT","HREF","HTTPEQUIV","INNER_HTML","ITEM_PROP","NAME","PROPERTY","REL","SRC","accesskey","charset","class","contenteditable","contextmenu","http-equiv","itemprop","tabindex","HELMET_PROPS","DEFAULT_TITLE","DEFER","ENCODE_SPECIAL_CHARACTERS","ON_CHANGE_CLIENT_STATE","TITLE_TEMPLATE","HTML_TAG_MAP","reduce","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","163","global","warn","requestAnimationFrame","_typeof","Symbol","iterator","_objectAssign","_objectAssign2","str","encode","String","replace","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","tag","attributeKey","lowerCaseAttributeKey","getTagsFromPropsList","tagName","approvedSeenTags","isArray","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","tagUnion","property","rafPolyfill","clock","now","callback","currentTime","setTimeout","cafPolyfill","id","clearTimeout","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","console","_helmetCallback","newState","commitTagChanges","cb","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","attributes","elementTag","getElementsByTagName","helmetAttributeString","getAttribute","helmetAttributes","attributesToRemove","attributeKeys","attribute","setAttribute","indexToSave","splice","_i","removeAttribute","tags","headElement","head","querySelector","tagNodes","querySelectorAll","indexToDelete","newElement","styleSheet","appendChild","createTextNode","some","existingTag","index","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","attr","generateTitleAsString","attributeString","flattenedTitle","generateTagsAsString","attributeHtml","tagContent","isSelfClosing","convertElementAttributestoReactProps","initProps","initAttributes","generateTitleAsReactComponent","_initProps","generateTagsAsReactComponent","_mappedTag","mappedTag","mappedAttribute","content","dangerouslySetInnerHTML","__html","getMethodsForTag","toComponent","_ref$title","164","_interopDefault","ex","withSideEffect","handleStateChangeOnClient","getDisplayName","WrappedComponent","displayName","emitChange","state","mountedInstances","SideEffect","_Component","recordedState","shallowEqual","componentWillMount","componentDidUpdate","componentWillUnmount","React__default","React","167","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","bind","idx","valueA","valueB","1689","endianness","hostname","location","loadavg","uptime","freemem","Number","MAX_VALUE","totalmem","cpus","release","appVersion","networkInterfaces","getNetworkInterfaces","arch","platform","tmpdir","tmpDir","EOL","641","_oupFullLogoBlueRgb","_oupFullLogoBlueRgb2","OupHeader","className","isSticky","src","logo","alt","PropTypes","1687","649","query","_reactHelmet","_reactHelmet2","_gatsbyLink","_detectBrowser","_OupHeader","TemplateWrapper","pathname","langKeyPath","lang","withPrefix","oldIE","parseInt","shape","isRequired","1475"],"mappings":"AAAAA,cAAc,eAAgB,iBAExBC,IACA,SAAUC,EAAQC,GCHxBD,EAAAC,SAAkBC,MAAQC,MAAQC,cAAgBC,MAAA,kBAAAC,WAAuCC,QAAUC,KAAA,KAAAH,MAAA,YAAgCG,KAAA,UAAAH,MAAA,SAAkCG,KAAA,UAAAH,MAAA,SAAkCG,KAAA,KAAAH,MAAA,aAAiCG,KAAA,KAAAH,MAAA,UAA8BG,KAAA,KAAAH,MAAA,YAAgCG,KAAA,KAAAH,MAAA,aAAiCG,KAAA,KAAAH,MAAA,YAAgCG,KAAA,KAAAH,MAAA,WAA+BG,KAAA,KAAAH,MAAA,qBAAyCG,KAAA,KAAAH,MAAA,aAAiCG,KAAA,KAAAH,MAAA,QAA4BG,KAAA,KAAAH,MAAA,QAA4BG,KAAA,KAAAH,MAAA,WAA+BG,KAAA,QAAAH,MAAA,mBAA0CG,KAAA,KAAAH,MAAA,YAAgCG,KAAA,KAAAH,MAAA,eAAmCG,KAAA,KAAAH,MAAA,gBAAoCG,KAAA,KAAAH,MAAA,qBAAyCG,KAAA,SAAAH,MAAA,6BAAqDG,KAAA,KAAAH,MAAA,YAAgCG,KAAA,KAAAH,MAAA,WAA+BG,KAAA,KAAAH,MAAA,kBAAqCI,UAAaC,KAAA,mBAAyBC,mBDS15BC,IACA,SAAUZ,EAAQC,EAASY,GAEhC,YAkBA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAhBvFd,EAAQe,YAAa,CAErB,IAAIE,GAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,GAAIC,GAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,GAAIG,GAASF,UAAUD,EAAI,KAAK,GAAII,KAAOD,GAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,MAAOL,IEftPS,EAAAjB,EAAA,GFmBGkB,EAAUjB,EAAuBgB,GElBpCE,EAAAnB,EAAA,KFsBGoB,EAAUnB,EAAuBkB,GErBpCE,EAAArB,EAAA,KFyBGsB,EAAgBrB,EAAuBoB,EAI3CjC,GAAQgB,QE3BQ,SAACmB,GAAD,MAAWL,GAAAd,QAAAoB,cAACJ,EAAAhB,QAADC,KAAekB,EAAWlC,aF+BrDF,EAAOC,QAAUA,EAAiB,SAI7BqC,IACA,SAAUtC,EAAQC,EAASY,GGZjC,QAAA0B,GAAAC,GACA,cAAAA,GAAAC,SAAAD,EAGA,QAAAE,GAAAC,GACA,SAAAA,GAAA,gBAAAA,IAAA,gBAAAA,GAAAnB,UACA,kBAAAmB,GAAAC,MAAA,kBAAAD,GAAAE,SAGAF,EAAAnB,OAAA,mBAAAmB,GAAA,KAIA,QAAAG,GAAAC,EAAAC,EAAAC,GACA,GAAA3B,GAAAI,CACA,IAAAa,EAAAQ,IAAAR,EAAAS,GACA,QAEA,IAAAD,EAAApB,YAAAqB,EAAArB,UAAA,QAGA,IAAAuB,EAAAH,GACA,QAAAG,EAAAF,KAGAD,EAAAI,EAAAtB,KAAAkB,GACAC,EAAAG,EAAAtB,KAAAmB,GACAI,EAAAL,EAAAC,EAAAC,GAEA,IAAAP,EAAAK,GAAA,CACA,IAAAL,EAAAM,GACA,QAEA,IAAAD,EAAAvB,SAAAwB,EAAAxB,OAAA,QACA,KAAAF,EAAA,EAAeA,EAAAyB,EAAAvB,OAAcF,IAC7B,GAAAyB,EAAAzB,KAAA0B,EAAA1B,GAAA,QAEA,UAEA,IACA,GAAA+B,GAAAC,EAAAP,GACAQ,EAAAD,EAAAN,GACG,MAAAQ,GACH,SAIA,GAAAH,EAAA7B,QAAA+B,EAAA/B,OACA,QAKA,KAHA6B,EAAAI,OACAF,EAAAE,OAEAnC,EAAA+B,EAAA7B,OAAA,EAAyBF,GAAA,EAAQA,IACjC,GAAA+B,EAAA/B,IAAAiC,EAAAjC,GACA,QAIA,KAAAA,EAAA+B,EAAA7B,OAAA,EAAyBF,GAAA,EAAQA,IAEjC,GADAI,EAAA2B,EAAA/B,IACA8B,EAAAL,EAAArB,GAAAsB,EAAAtB,GAAAuB,GAAA,QAEA,cAAAF,UAAAC,GA5FA,GAAAG,GAAAO,MAAA/B,UAAAkB,MACAS,EAAAzC,EAAA,KACAqC,EAAArC,EAAA,KAEAuC,EAAApD,EAAAC,QAAA,SAAA0D,EAAAC,EAAAX,GAGA,MAFAA,WAEAU,IAAAC,IAGGD,YAAAE,OAAAD,YAAAC,MACHF,EAAAG,YAAAF,EAAAE,WAIGH,IAAAC,GAAA,gBAAAD,IAAA,gBAAAC,GACHX,EAAAc,OAAAJ,IAAAC,EAAAD,GAAAC,EASAd,EAAAa,EAAAC,EAAAX,MHoHMe,IACA,SAAUhE,EAAQC,GIvIxB,QAAAgE,GAAAC,GACA,4BAAA/C,OAAAQ,UAAAwC,SAAAtC,KAAAqC,GAIA,QAAAE,GAAAF,GACA,MAAAA,IACA,gBAAAA,IACA,gBAAAA,GAAA1C,QACAL,OAAAQ,UAAAC,eAAAC,KAAAqC,EAAA,YACA/C,OAAAQ,UAAA0C,qBAAAxC,KAAAqC,EAAA,YACA,EAlBA,GAAAI,GAEC,sBAFD,WACA,MAAAnD,QAAAQ,UAAAwC,SAAAtC,KAAAN,aAGAtB,GAAAD,EAAAC,QAAAqE,EAAAL,EAAAG,EAEAnE,EAAAgE,YAKAhE,EAAAmE,eJ6JMG,IACA,SAAUvE,EAAQC,GKrKxB,QAAAuE,GAAAzD,GACA,GAAA0D,KACA,QAAA/C,KAAAX,GAAA0D,EAAAC,KAAAhD,EACA,OAAA+C,GAPAxE,EAAAD,EAAAC,QAAA,kBAAAkB,QAAAsD,KACAtD,OAAAsD,KAAAD,EAEAvE,EAAAuE,QLqLMG,IACA,SAAU3E,EAAQC,EAASY,IMzLjC,SAAA+D,GAAA,QAAAC,KACA,GAAAC,GAAAC,GACA,OAAAD,GACAA,EACG,mBAAAE,WACHC,EAAAD,UAAAE,WAGA,KAGA,QAAAC,GAAAC,GACA,GAAAC,GAAAC,IACAC,EAAAF,EAAAG,OAAA,SAAAC,GACA,MAAAA,GAAAC,MAAAD,EAAAC,KAAAC,KAAAP,KACG,EAEH,OAAAG,KAAAK,KAAA,KAGA,QAAAb,KACA,GAAAc,GAAA,mBAAAb,YAAA,mBAAAJ,EACA,OAAAiB,IACAD,KAAA,OACAE,QAAAlB,EAAAkB,QAAAjD,MAAA,GACA4C,GAAA5E,EAAA,MAAAkF,OAAAC,eACG,KAGH,QAAAf,GAAAG,GACA,GAAAa,GAAAC,GACA,KAAAd,EACA,WAGA,IAAAG,GAAAU,EAAAE,IAAA,SAAAC,GACA,GAAAC,GAAAD,EAAAV,KAAAY,KAAAlB,GACAU,EAAAO,KAAA,GAAAE,MAAA,QAAA1D,MAAA,IAMA,OAJAiD,MAAAtE,OAAA,IACAsE,IAAAU,OAAA,GAAAV,EAAAtE,QAAA,WAGA6E,IACAT,KAAAQ,EAAAR,KACAE,UAAAW,KAAA,QAEGjB,OAAAkB,SAAA,QAWH,OATAnB,KACAA,EAAAE,GAAAN,EAAAC,IAGA,gIAAAO,KAAAP,KACAG,QACAA,EAAAoB,KAAA,GAGApB,EAGA,QAAAW,KACA,MAAAU,KACA,iCACA,6BACA,2CACA,kCACA,sCACA,yCACA,8DACA,8CACA,sCACA,0CACA,8BACA,sCACA,qCACA,mDACA,6CACA,sBACA,6CACA,kCACA,iDACA,0CACA,gCACA,uCAIA,QAAAtB,KACA,MAAAsB,KACA,yBACA,yBACA,oCACA,8BACA,uBACA,yBACA,mDACA,sCACA,mDACA,+CACA,2CACA,qCACA,iCACA,iCACA,mCACA,mCACA,4BACA,uBACA,mBACA,0BACA,uCACA,cACA,gBACA,iBACA,6GAIA,QAAAA,GAAAC,GACA,MAAAA,GAAAV,IAAA,SAAAW,GACA,OACAlB,KAAAkB,EAAA,GACApB,KAAAoB,EAAA,MAKA9G,EAAAC,SACA4E,SACAM,WACAJ,iBACAE,oBN8L8BpD,KAAK5B,EAASY,EAAoB,OAI1DkG,IACA,SAAU/G,EAAQC,EAASY,GOtUjC,GAAAmG,IAOA,WACA,YAEA,IAAAC,KACA,mBAAAC,UACAA,OAAAC,WACAD,OAAAC,SAAA9E,eAGA+E,GAEAH,YAEAI,cAAA,mBAAAC,QAEAC,qBACAN,MAAAC,OAAAM,mBAAAN,OAAAO,aAEAC,eAAAT,KAAAC,OAAAS,OAKAX,GAAA,WACA,MAAAI,IACGvF,KAAA5B,EAAAY,EAAAZ,EAAAD,KAAAyC,SAAAuE,IAAAhH,EAAAC,QAAA+G,QPoVGY,IACA,SAAU5H,EAAQC,EAASY,GQ1VjC,QAAAC,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,QAAAF,GAE7E,QAAA8G,GAAA9G,EAAA0D,GAA8C,GAAApD,KAAiB,QAAAC,KAAAP,GAAqB0D,EAAAqD,QAAAxG,IAAA,GAAoCH,OAAAQ,UAAAC,eAAAC,KAAAd,EAAAO,KAA6DD,EAAAC,GAAAP,EAAAO,GAAsB,OAAAD,GAE3M,QAAA0G,GAAAC,EAAAC,GAAiD,KAAAD,YAAAC,IAA0C,SAAAC,WAAA,qCAE3F,QAAAC,GAAAC,EAAAvG,GAAiD,IAAAuG,EAAa,SAAAC,gBAAA,4DAAyF,QAAAxG,GAAA,gBAAAA,IAAA,kBAAAA,GAAAuG,EAAAvG,EAEvJ,QAAAyG,GAAAC,EAAAC,GAA0C,qBAAAA,IAAA,OAAAA,EAA+D,SAAAN,WAAA,iEAAAM,GAAuGD,GAAA5G,UAAAR,OAAAsH,OAAAD,KAAA7G,WAAyE+G,aAAelG,MAAA+F,EAAAI,YAAA,EAAAC,UAAA,EAAAC,cAAA,KAA6EL,IAAArH,OAAA2H,eAAA3H,OAAA2H,eAAAP,EAAAC,GAAAD,EAAAQ,UAAAP,GAnCrXvI,EAAAe,YAAA,EACAf,EAAA+I,OAAAvG,MAEA,IAAAvB,GAAAC,OAAAC,QAAA,SAAAC,GAAmD,OAAAC,GAAA,EAAgBA,EAAAC,UAAAC,OAAsBF,IAAA,CAAO,GAAAG,GAAAF,UAAAD,EAA2B,QAAAI,KAAAD,GAA0BN,OAAAQ,UAAAC,eAAAC,KAAAJ,EAAAC,KAAyDL,EAAAK,GAAAD,EAAAC,IAAiC,MAAAL,IAE/O4H,EAAA,WAAgC,QAAAC,GAAA7H,EAAAe,GAA2C,OAAAd,GAAA,EAAgBA,EAAAc,EAAAZ,OAAkBF,IAAA,CAAO,GAAA6H,GAAA/G,EAAAd,EAA2B6H,GAAAR,WAAAQ,EAAAR,aAAA,EAAwDQ,EAAAN,cAAA,EAAgC,SAAAM,OAAAP,UAAA,GAAuDzH,OAAAiI,eAAA/H,EAAA8H,EAAAzH,IAAAyH,IAA+D,gBAAAlB,EAAAoB,EAAAC,GAA2L,MAAlID,IAAAH,EAAAjB,EAAAtG,UAAA0H,GAAqEC,GAAAJ,EAAAjB,EAAAqB,GAA6DrB,MAExhBnG,EAAAjB,EAAA,GAEAkB,EAAAjB,EAAAgB,GAEAyH,EAAA1I,EAAA,GAEA2I,EAAA1I,EAAAyI,GAEAE,EAAA5I,EAAA,KAEA6I,EAAA5I,EAAA2I,GAEAE,EAAA9I,EAAA,KAEA+I,EAAA9I,EAAA6I,GAEAE,EAAAhJ,EAAA,KAEAiJ,EAAAjJ,EAAA,IAYAmI,EAAA,SAAAe,GACA,GAAAC,GAAAC,CAEA,OAAAA,GAAAD,EAAA,SAAAE,GAGA,QAAAC,KAGA,MAFApC,GAAAqC,KAAAD,GAEAhC,EAAAiC,KAAAF,EAAAG,MAAAD,KAAA7I,YA+LA,MApMA+G,GAAA6B,EAAAD,GAQAC,EAAAxI,UAAA2I,sBAAA,SAAAC,GACA,UAAAX,EAAA3I,SAAAmJ,KAAAhI,MAAAmI,IAGAJ,EAAAxI,UAAA6I,yBAAA,SAAAC,EAAAC,GACA,IAAAA,EACA,WAGA,QAAAD,EAAA1E,MACA,IAAA+D,GAAAa,UAAAC,OACA,IAAAd,GAAAa,UAAAE,SACA,OACAC,UAAAJ,EAGA,KAAAZ,GAAAa,UAAAI,MACA,OACAC,QAAAN,GAIA,SAAAO,OAAA,IAAAR,EAAA1E,KAAA,uGAGAoE,EAAAxI,UAAAuJ,yBAAA,SAAAC,GACA,GAAAC,GAEAX,EAAAU,EAAAV,MACAY,EAAAF,EAAAE,kBACAC,EAAAH,EAAAG,cACAZ,EAAAS,EAAAT,cAEA,OAAAxJ,MAA8BmK,GAAAD,KAAoCA,EAAAX,EAAA1E,SAAAS,OAAA6E,EAAAZ,EAAA1E,WAAA7E,KAAqFoK,EAAAlB,KAAAI,yBAAAC,EAAAC,MAAAU,KAGvJjB,EAAAxI,UAAA4J,sBAAA,SAAAC,GACA,GAAAC,GAAAC,EAEAjB,EAAAe,EAAAf,MACAkB,EAAAH,EAAAG,SACAL,EAAAE,EAAAF,cACAZ,EAAAc,EAAAd,cAEA,QAAAD,EAAA1E,MACA,IAAA+D,GAAAa,UAAAiB,MACA,MAAA1K,MAAsCyK,GAAAF,KAA2BA,EAAAhB,EAAA1E,MAAA2E,EAAAe,EAAAI,gBAAA3K,KAAiFoK,GAAAG,GAElJ,KAAA3B,GAAAa,UAAAmB,KACA,MAAA5K,MAAsCyK,GACtCI,eAAA7K,KAAmDoK,IAGnD,KAAAxB,GAAAa,UAAAqB,KACA,MAAA9K,MAAsCyK,GACtCM,eAAA/K,KAAmDoK,KAInD,MAAApK,MAA8ByK,GAAAD,KAA2BA,EAAAjB,EAAA1E,MAAA7E,KAAqCoK,GAAAI,KAG9FvB,EAAAxI,UAAAuK,4BAAA,SAAAb,EAAAM,GACA,GAAAQ,GAAAjL,KAA+CyK,EAQ/C,OANAxK,QAAAsD,KAAA4G,GAAAe,QAAA,SAAAC,GACA,GAAAC,EAEAH,GAAAjL,KAA+CiL,GAAAG,KAAoCA,EAAAD,GAAAhB,EAAAgB,GAAAC,MAGnFH,GAGAhC,EAAAxI,UAAA4K,sBAAA,SAAA9B,EAAAC,GAmBA,UAGAP,EAAAxI,UAAA6K,mBAAA,SAAAC,EAAAd,GACA,GAAAe,GAAAtC,KAEAiB,IAyCA,OAvCAtJ,GAAAd,QAAA0L,SAAAP,QAAAK,EAAA,SAAAhC,GACA,GAAAA,KAAArI,MAAA,CAIA,GAAAwK,GAAAnC,EAAArI,MACAsI,EAAAkC,EAAAH,SACAI,EAAAhF,EAAA+E,GAAA,aAEAtB,GAAA,EAAAzB,EAAAiD,mCAAAD,EAIA,QAFAH,EAAAH,sBAAA9B,EAAAC,GAEAD,EAAA1E,MACA,IAAA+D,GAAAa,UAAAoC,KACA,IAAAjD,GAAAa,UAAAqC,KACA,IAAAlD,GAAAa,UAAAE,SACA,IAAAf,GAAAa,UAAAC,OACA,IAAAd,GAAAa,UAAAI,MACAM,EAAAqB,EAAAxB,0BACAT,QACAY,oBACAC,gBACAZ,kBAEA,MAEA,SACAiB,EAAAe,EAAAnB,uBACAd,QACAkB,WACAL,gBACAZ,uBAMAiB,EAAAvB,KAAA8B,4BAAAb,EAAAM,IAIAxB,EAAAxI,UAAAsL,OAAA,WACA,GAAAC,GAAA9C,KAAAhI,MACAqK,EAAAS,EAAAT,SACArK,EAAAyF,EAAAqF,GAAA,aAEAvB,EAAAzK,KAAsCkB,EAMtC,OAJAqK,KACAd,EAAAvB,KAAAoC,mBAAAC,EAAAd,IAGA5J,EAAAd,QAAAoB,cAAA0H,EAAA4B,IAGA1C,EAAAkB,EAAA,OACAzI,IAAA,YAyBAyL,IAAA,SAAAlG,GACA8C,EAAA9C,gBAIAkD,GACKpI,EAAAd,QAAA8I,WAAAC,EAAAoD,WACLC,KAAA7D,EAAAvI,QAAAiD,OACA6H,eAAAvC,EAAAvI,QAAAiD,OACAuI,SAAAjD,EAAAvI,QAAAqM,WAAA9D,EAAAvI,QAAAsM,QAAA/D,EAAAvI,QAAAuM,MAAAhE,EAAAvI,QAAAuM,OACAC,aAAAjE,EAAAvI,QAAAyM,OACAC,MAAAnE,EAAAvI,QAAA2M,KACAC,wBAAArE,EAAAvI,QAAA2M,KACA3B,eAAAzC,EAAAvI,QAAAiD,OACA4J,KAAAtE,EAAAvI,QAAAsM,QAAA/D,EAAAvI,QAAAiD,QACA6J,KAAAvE,EAAAvI,QAAAsM,QAAA/D,EAAAvI,QAAAiD,QACA8J,SAAAxE,EAAAvI,QAAAsM,QAAA/D,EAAAvI,QAAAiD,QACA+J,oBAAAzE,EAAAvI,QAAAiN,KACAC,OAAA3E,EAAAvI,QAAAsM,QAAA/D,EAAAvI,QAAAiD,QACAkK,MAAA5E,EAAAvI,QAAAsM,QAAA/D,EAAAvI,QAAAiD,QACA7D,MAAAmJ,EAAAvI,QAAAyM,OACA7B,gBAAArC,EAAAvI,QAAAiD,OACAmK,cAAA7E,EAAAvI,QAAAyM,QACK1D,EAAAsE,cACLX,OAAA,EACAE,yBAAA,GACK7D,EAAAuE,KAAAxE,EAAAwE,KAAAvE,EAAAwE,OAAA,WACL,GAAAC,GAAA1E,EAAAyE,QAkBA,OAjBAC,KAEAA,GAAA,EAAA5E,EAAA6E,mBACAC,WACA5C,kBACA8B,yBAAA,EACA5B,kBACA2C,YACAC,YACAC,gBACAC,cACAC,aACA3O,MAAA,GACAwL,sBAIA4C,GACKxE,GAGLgF,EAAA,WACA,aAGAC,GAAA,EAAAxF,EAAAzI,SAAA4I,EAAAsF,mBAAAtF,EAAAuF,wBAAAvF,EAAA6E,kBAAAO,GAEAI,EAAArG,EAAAkG,EACAG,GAAAC,aAAAD,EAAAb,OAEAvO,EAAA+I,OAAAqG,EACApP,EAAAgB,QAAAoO,GR2XME,GACA,SAAUvP,EAAQC,GS/pBxBA,EAAAe,YAAA,CACA,IAMA2J,IANA1K,EAAAuP,iBACA1D,KAAA,iBACAE,KAAA,iBACAJ,MAAA,mBAGA3L,EAAA0K,WACA8E,KAAA,OACA3D,KAAA,OACA4D,KAAA,OACA1D,KAAA,OACAe,KAAA,OACAC,KAAA,OACAnC,SAAA,WACAD,OAAA,SACAG,MAAA,QACAa,MAAA,UAoBA+D,GAjBA1P,EAAA2P,gBAAAzO,OAAAsD,KAAAkG,GAAAxE,IAAA,SAAAP,GACA,MAAA+E,GAAA/E,KAGA3F,EAAA4P,gBACAC,QAAA,UACAC,SAAA,UACAC,KAAA,OACAC,UAAA,aACAC,WAAA,YACAC,UAAA,WACAC,KAAA,OACAC,SAAA,WACAC,IAAA,MACAC,IAAA,OAGAtQ,EAAA0P,eACAa,UAAA,YACAC,QAAA,UACAC,MAAA,YACAC,gBAAA,kBACAC,YAAA,cACAC,aAAA,YACAC,SAAA,WACAC,SAAA,YAGA9Q,GAAA+Q,cACAC,cAAA,eACAC,MAAA,QACAC,0BAAA,0BACAC,uBAAA,sBACAC,eAAA,iBAGApR,EAAAqR,aAAAnQ,OAAAsD,KAAAkL,GAAA4B,OAAA,SAAAxQ,EAAAW,GAEA,MADAX,GAAA4O,EAAAjO,MACAX,OAGAd,EAAAuR,mBAAA7G,EAAAE,SAAAF,EAAAC,OAAAD,EAAAI,OAEA9K,EAAAwR,iBAAA,qBTqqBMC,IACA,SAAU1R,EAAQC,EAASY,IUruBjC,SAAA8Q,GAiBA,QAAA7Q,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,QAAAF,GAjB7Ed,EAAAe,YAAA,EACAf,EAAA2R,KAAA3R,EAAA4R,sBAAA5R,EAAAkP,mBAAAlP,EAAAyO,iBAAAzO,EAAAmP,wBAAAnP,EAAA6M,kCAAArK,MAEA,IAAAqP,GAAA,kBAAAC,SAAA,gBAAAA,QAAAC,SAAA,SAAAjR,GAAoG,aAAAA,IAAqB,SAAAA,GAAmB,MAAAA,IAAA,kBAAAgR,SAAAhR,EAAA2H,cAAAqJ,QAAAhR,IAAAgR,OAAApQ,UAAA,eAAAZ,IAE5IG,EAAAC,OAAAC,QAAA,SAAAC,GAAmD,OAAAC,GAAA,EAAgBA,EAAAC,UAAAC,OAAsBF,IAAA,CAAO,GAAAG,GAAAF,UAAAD,EAA2B,QAAAI,KAAAD,GAA0BN,OAAAQ,UAAAC,eAAAC,KAAAJ,EAAAC,KAAyDL,EAAAK,GAAAD,EAAAC,IAAiC,MAAAL,IAE/OS,EAAAjB,EAAA,GAEAkB,EAAAjB,EAAAgB,GAEAmQ,EAAApR,EAAA,IAEAqR,EAAApR,EAAAmR,GAEAnI,EAAAjJ,EAAA,IAIAgN,EAAA,SAAAsE,GACA,GAAAC,KAAA7Q,UAAAC,OAAA,GAAAiB,SAAAlB,UAAA,KAAAA,UAAA,EAEA,OAAA6Q,MAAA,EACAC,OAAAF,GAGAE,OAAAF,GAAAG,QAAA,cAA2CA,QAAA,aAAsBA,QAAA,aAAsBA,QAAA,eAAwBA,QAAA,gBAG/GC,EAAA,SAAAC,GACA,GAAAC,GAAAC,EAAAF,EAAA1I,EAAAa,UAAAiB,OACA+G,EAAAD,EAAAF,EAAA1I,EAAAkH,aAAAK,eAEA,IAAAsB,GAAAF,EAEA,MAAAE,GAAAL,QAAA,iBACA,MAAAG,IAIA,IAAAG,GAAAF,EAAAF,EAAA1I,EAAAkH,aAAAC,cAEA,OAAAwB,IAAAG,GAAAnQ,QAGAoQ,EAAA,SAAAL,GACA,MAAAE,GAAAF,EAAA1I,EAAAkH,aAAAI,yBAAA,cAGA0B,EAAA,SAAAC,EAAAP,GACA,MAAAA,GAAAhN,OAAA,SAAApD,GACA,yBAAAA,GAAA2Q,KACK5M,IAAA,SAAA/D,GACL,MAAAA,GAAA2Q,KACKxB,OAAA,SAAAyB,EAAAC,GACL,MAAA/R,MAA0B8R,EAAAC,SAI1BC,EAAA,SAAAC,EAAAX,GACA,MAAAA,GAAAhN,OAAA,SAAApD,GACA,yBAAAA,GAAA0H,EAAAa,UAAA8E,QACKtJ,IAAA,SAAA/D,GACL,MAAAA,GAAA0H,EAAAa,UAAA8E,QACK2D,UAAA7B,OAAA,SAAA8B,EAAAC,GACL,IAAAD,EAAA7R,OAGA,OAFAiD,GAAAtD,OAAAsD,KAAA6O,GAEAhS,EAAA,EAA2BA,EAAAmD,EAAAjD,OAAiBF,IAAA,CAC5C,GAAAiS,GAAA9O,EAAAnD,GACAkS,EAAAD,EAAAvN,aAEA,IAAAmN,EAAArL,QAAA0L,MAAA,GAAAF,EAAAE,GACA,MAAAH,GAAA7M,OAAA8M,GAKA,MAAAD,SAIAI,EAAA,SAAAC,EAAAP,EAAAX,GAEA,GAAAmB,KAEA,OAAAnB,GAAAhN,OAAA,SAAApD,GACA,QAAAsB,MAAAkQ,QAAAxR,EAAAsR,MAGA,mBAAAtR,GAAAsR,IACA9B,EAAA,WAAA8B,EAAA,mDAAA5B,EAAA1P,EAAAsR,IAAA,MAEA,KACKvN,IAAA,SAAA/D,GACL,MAAAA,GAAAsR,KACKN,UAAA7B,OAAA,SAAAsC,EAAAC,GACL,GAAAC,KAEAD,GAAAtO,OAAA,SAAA8N,GAGA,OAFAU,GAAA,OACAvP,EAAAtD,OAAAsD,KAAA6O,GACAhS,EAAA,EAA2BA,EAAAmD,EAAAjD,OAAiBF,IAAA,CAC5C,GAAAiS,GAAA9O,EAAAnD,GACAkS,EAAAD,EAAAvN,aAGAmN,GAAArL,QAAA0L,MAAA,GAAAQ,IAAAlK,EAAA+F,eAAAS,KAAA,cAAAgD,EAAAU,GAAAhO,eAAAwN,IAAA1J,EAAA+F,eAAAS,KAAA,eAAAgD,EAAAE,GAAAxN,gBACAgO,EAAAR,GAGAL,EAAArL,QAAAyL,MAAA,GAAAA,IAAAzJ,EAAA+F,eAAAK,YAAAqD,IAAAzJ,EAAA+F,eAAAE,UAAAwD,IAAAzJ,EAAA+F,eAAAM,YACA6D,EAAAT,GAIA,IAAAS,IAAAV,EAAAU,GACA,QAGA,IAAAxR,GAAA8Q,EAAAU,GAAAhO,aAUA,OARA2N,GAAAK,KACAL,EAAAK,OAGAD,EAAAC,KACAD,EAAAC,QAGAL,EAAAK,GAAAxR,KACAuR,EAAAC,GAAAxR,IAAA,GACA,KAIS4Q,UAAAhH,QAAA,SAAAkH,GACT,MAAAO,GAAAnP,KAAA4O,IAKA,QADA7O,GAAAtD,OAAAsD,KAAAsP,GACAzS,EAAA,EAAuBA,EAAAmD,EAAAjD,OAAiBF,IAAA,CACxC,GAAAiS,GAAA9O,EAAAnD,GACA2S,GAAA,EAAA/B,EAAAjR,YAAyD0S,EAAAJ,GAAAQ,EAAAR,GAEzDI,GAAAJ,GAAAU,EAGA,MAAAJ,QACKT,WAGLV,EAAA,SAAAF,EAAA0B,GACA,OAAA5S,GAAAkR,EAAAhR,OAAA,EAAsCF,GAAA,EAAQA,IAAA,CAC9C,GAAAc,GAAAoQ,EAAAlR,EAEA,IAAAc,EAAAR,eAAAsS,GACA,MAAA9R,GAAA8R,GAIA,aAGA/E,EAAA,SAAAqD,GACA,OACA7D,QAAAuE,GAAApJ,EAAA+F,eAAAG,MAAAwC,GACAzG,eAAA+G,EAAAhJ,EAAA0F,gBAAA1D,KAAA0G,GACA7E,MAAA+E,EAAAF,EAAA1I,EAAAkH,aAAAE,OACAkB,OAAAM,EAAAF,EAAA1I,EAAAkH,aAAAG,2BACAlF,eAAA6G,EAAAhJ,EAAA0F,gBAAAxD,KAAAwG,GACA5D,SAAA6E,EAAA3J,EAAAa,UAAAoC,MAAAjD,EAAA+F,eAAAS,IAAAxG,EAAA+F,eAAAG,MAAAwC,GACA3D,SAAA4E,EAAA3J,EAAAa,UAAAqC,MAAAlD,EAAA+F,eAAAO,KAAAtG,EAAA+F,eAAAC,QAAAhG,EAAA+F,eAAAI,UAAAnG,EAAA+F,eAAAQ,SAAAvG,EAAA+F,eAAAM,WAAAqC,GACA1D,aAAA2E,EAAA3J,EAAAa,UAAAE,UAAAf,EAAA+F,eAAAK,YAAAsC,GACAvE,oBAAA4E,EAAAL,GACAzD,WAAA0E,EAAA3J,EAAAa,UAAAC,QAAAd,EAAA+F,eAAAU,IAAAzG,EAAA+F,eAAAK,YAAAsC,GACAxD,UAAAyE,EAAA3J,EAAAa,UAAAI,OAAAjB,EAAA+F,eAAAE,UAAAyC,GACAnS,MAAAkS,EAAAC,GACA3G,gBAAAiH,EAAAhJ,EAAA0F,gBAAA5D,MAAA4G,KAIA2B,EAAA,WACA,GAAAC,GAAAvQ,KAAAwQ,KAEA,iBAAAC,GACA,GAAAC,GAAA1Q,KAAAwQ,KAEAE,GAAAH,EAAA,IACAA,EAAAG,EACAD,EAAAC,IAEAC,WAAA,WACAL,EAAAG,IACa,OAKbG,EAAA,SAAAC,GACA,MAAAC,cAAAD,IAGA7C,EAAA,mBAAA3K,eAAA2K,uBAAA3K,OAAA0N,6BAAA1N,OAAA2N,0BAAAV,EAAAxC,EAAAE,uBAAAsC,EAEAW,EAAA,mBAAA5N,eAAA4N,sBAAA5N,OAAA6N,4BAAA7N,OAAA8N,yBAAAP,EAAA9C,EAAAmD,sBAAAL,EAEA7C,EAAA,SAAAqD,GACA,MAAAC,UAAA,kBAAAA,SAAAtD,MAAAsD,QAAAtD,KAAAqD,IAGAE,EAAA,KAEA/F,EAAA,SAAAgG,GACAD,GACAL,EAAAK,GAGAC,EAAAzH,MACAwH,EAAAtD,EAAA,WACAwD,EAAAD,EAAA,WACAD,EAAA,UAIAE,EAAAD,GACAD,EAAA,OAIAE,EAAA,SAAAD,EAAAE,GACA,GAAA3G,GAAAyG,EAAAzG,QACA5C,EAAAqJ,EAAArJ,eACAE,EAAAmJ,EAAAnJ,eACA2C,EAAAwG,EAAAxG,SACAC,EAAAuG,EAAAvG,SACAC,EAAAsG,EAAAtG,aACAb,EAAAmH,EAAAnH,oBACAc,EAAAqG,EAAArG,WACAC,EAAAoG,EAAApG,UACA3O,EAAA+U,EAAA/U,MACAwL,EAAAuJ,EAAAvJ,eAEA0J,GAAAzL,EAAAa,UAAAmB,KAAAC,GACAwJ,EAAAzL,EAAAa,UAAAqB,KAAAC,GAEAuJ,EAAAnV,EAAAwL,EAEA,IAAA4J,IACA9G,QAAA+G,EAAA5L,EAAAa,UAAA8E,KAAAd,GACAC,SAAA8G,EAAA5L,EAAAa,UAAAoC,KAAA6B,GACAC,SAAA6G,EAAA5L,EAAAa,UAAAqC,KAAA6B,GACAC,aAAA4G,EAAA5L,EAAAa,UAAAE,SAAAiE,GACAC,WAAA2G,EAAA5L,EAAAa,UAAAC,OAAAmE,GACAC,UAAA0G,EAAA5L,EAAAa,UAAAI,MAAAiE,IAGA2G,KACAC,IAEAzU,QAAAsD,KAAAgR,GAAArJ,QAAA,SAAA2G,GACA,GAAA8C,GAAAJ,EAAA1C,GACA+C,EAAAD,EAAAC,QACAC,EAAAF,EAAAE,OAGAD,GAAAtU,SACAmU,EAAA5C,GAAA+C,GAEAC,EAAAvU,SACAoU,EAAA7C,GAAA0C,EAAA1C,GAAAgD,WAIAT,OAEArH,EAAAmH,EAAAO,EAAAC,IAGAI,EAAA,SAAAC,GACA,MAAAvS,OAAAkQ,QAAAqC,KAAAxP,KAAA,IAAAwP,GAGAT,EAAA,SAAAnV,EAAA6V,GACA,mBAAA7V,IAAA8G,SAAA9G,YACA8G,SAAA9G,MAAA2V,EAAA3V,IAGAkV,EAAAzL,EAAAa,UAAAiB,MAAAsK,IAGAX,EAAA,SAAA7B,EAAAwC,GACA,GAAAC,GAAAhP,SAAAiP,qBAAA1C,GAAA,EAEA,IAAAyC,EAAA,CASA,OALAE,GAAAF,EAAAG,aAAAxM,EAAA2H,kBACA8E,EAAAF,IAAA9P,MAAA,QACAiQ,KAAAhQ,OAAA+P,GACAE,EAAAtV,OAAAsD,KAAAyR,GAEA5U,EAAA,EAAmBA,EAAAmV,EAAAjV,OAA0BF,IAAA,CAC7C,GAAAoV,GAAAD,EAAAnV,GACAkB,EAAA0T,EAAAQ,IAAA,EAEAP,GAAAG,aAAAI,KAAAlU,GACA2T,EAAAQ,aAAAD,EAAAlU,GAGA+T,EAAAzO,QAAA4O,MAAA,GACAH,EAAA7R,KAAAgS,EAGA,IAAAE,GAAAJ,EAAA1O,QAAA4O,EACAE,MAAA,GACAJ,EAAAK,OAAAD,EAAA,GAIA,OAAAE,GAAAN,EAAAhV,OAAA,EAAgDsV,GAAA,EAASA,IACzDX,EAAAY,gBAAAP,EAAAM,GAGAP,GAAA/U,SAAAgV,EAAAhV,OACA2U,EAAAY,gBAAAjN,EAAA2H,kBACK0E,EAAAG,aAAAxM,EAAA2H,oBAAAgF,EAAAhQ,KAAA,MACL0P,EAAAQ,aAAA7M,EAAA2H,iBAAAgF,EAAAhQ,KAAA,QAIAiP,EAAA,SAAA3P,EAAAiR,GACA,GAAAC,GAAA9P,SAAA+P,MAAA/P,SAAAgQ,cAAArN,EAAAa,UAAA+E,MACA0H,EAAAH,EAAAI,iBAAAtR,EAAA,IAAA+D,EAAA2H,iBAAA,KACAsE,EAAArS,MAAA/B,UAAAkB,MAAAhB,KAAAuV,GACAtB,KACAwB,EAAA,MA4CA,OA1CAN,MAAAxV,QACAwV,EAAA5K,QAAA,SAAAkH,GACA,GAAAiE,GAAApQ,SAAA9E,cAAA0D,EAEA,QAAA2Q,KAAApD,GACA,GAAAA,EAAA1R,eAAA8U,GACA,GAAAA,IAAA5M,EAAA+F,eAAAK,WACAqH,EAAAzM,UAAAwI,EAAAxI,cACqB,IAAA4L,IAAA5M,EAAA+F,eAAAE,SACrBwH,EAAAC,WACAD,EAAAC,WAAAxM,QAAAsI,EAAAtI,QAEAuM,EAAAE,YAAAtQ,SAAAuQ,eAAApE,EAAAtI,cAEqB,CACrB,GAAAxI,GAAA,mBAAA8Q,GAAAoD,GAAA,GAAApD,EAAAoD,EACAa,GAAAZ,aAAAD,EAAAlU,GAKA+U,EAAAZ,aAAA7M,EAAA2H,iBAAA,QAGAsE,EAAA4B,KAAA,SAAAC,EAAAC,GAEA,MADAP,GAAAO,EACAN,EAAAO,YAAAF,KAEA7B,EAAAc,OAAAS,EAAA,GAEAxB,EAAApR,KAAA6S,KAKAxB,EAAA3J,QAAA,SAAAkH,GACA,MAAAA,GAAAyE,WAAAC,YAAA1E,KAEAwC,EAAA1J,QAAA,SAAAkH,GACA,MAAA2D,GAAAQ,YAAAnE,MAIAyC,UACAD,YAIAmC,EAAA,SAAA/B,GACA,MAAA/U,QAAAsD,KAAAyR,GAAA3E,OAAA,SAAAY,EAAAzQ,GACA,GAAAwW,GAAA,mBAAAhC,GAAAxU,KAAA,KAAAwU,EAAAxU,GAAA,OAAAA,CACA,OAAAyQ,KAAA,IAAA+F,KACK,KAGLC,EAAA,SAAApS,EAAA1F,EAAA6V,EAAA9D,GACA,GAAAgG,GAAAH,EAAA/B,GACAmC,EAAArC,EAAA3V,EACA,OAAA+X,GAAA,IAAArS,EAAA,IAAA+D,EAAA2H,iBAAA,WAAA2G,EAAA,IAAAvK,EAAAwK,EAAAjG,GAAA,KAAArM,EAAA,QAAAA,EAAA,IAAA+D,EAAA2H,iBAAA,WAAA5D,EAAAwK,EAAAjG,GAAA,KAAArM,EAAA,KAGAuS,EAAA,SAAAvS,EAAAiR,EAAA5E,GACA,MAAA4E,GAAAzF,OAAA,SAAAY,EAAAmB,GACA,GAAAiF,GAAApX,OAAAsD,KAAA6O,GAAA9N,OAAA,SAAAkR,GACA,QAAAA,IAAA5M,EAAA+F,eAAAK,YAAAwG,IAAA5M,EAAA+F,eAAAE,YACSwB,OAAA,SAAA7D,EAAAgJ,GACT,GAAAwB,GAAA,mBAAA5E,GAAAoD,OAAA,KAAA7I,EAAAyF,EAAAoD,GAAAtE,GAAA,GACA,OAAA1E,KAAA,IAAAwK,KACS,IAETM,EAAAlF,EAAAxI,WAAAwI,EAAAtI,SAAA,GAEAyN,EAAA3O,EAAA0H,kBAAA1J,QAAA/B,MAAA,CAEA,OAAAoM,GAAA,IAAApM,EAAA,IAAA+D,EAAA2H,iBAAA,WAAA8G,GAAAE,EAAA,SAAAD,EAAA,KAAAzS,EAAA,MACK,KAGL2S,EAAA,SAAAxC,GACA,GAAAyC,GAAApX,UAAAC,OAAA,GAAAiB,SAAAlB,UAAA,GAAAA,UAAA,KAEA,OAAAJ,QAAAsD,KAAAyR,GAAA3E,OAAA,SAAAxQ,EAAAW,GAEA,MADAX,GAAA+I,EAAA6F,cAAAjO,OAAAwU,EAAAxU,GACAX,GACK4X,IAGL7L,EAAA,SAAA1K,GACA,GAAAwW,GAAArX,UAAAC,OAAA,GAAAiB,SAAAlB,UAAA,GAAAA,UAAA,KAEA,OAAAJ,QAAAsD,KAAArC,GAAAmP,OAAA,SAAAxQ,EAAAW,GAEA,MADAX,GAAA+I,EAAAwH,aAAA5P,OAAAU,EAAAV,GACAX,GACK6X,IAGLC,EAAA,SAAA9S,EAAA1F,EAAA6V,GACA,GAAA4C,GAGAH,GAAAG,GACApX,IAAArB,GACKyY,EAAAhP,EAAA2H,mBAAA,EAAAqH,GACL1W,EAAAsW,EAAAxC,EAAAyC,EAEA,QAAA5W,EAAAd,QAAAoB,cAAAyH,EAAAa,UAAAiB,MAAAxJ,EAAA/B,KAGA0Y,EAAA,SAAAhT,EAAAiR,GACA,MAAAA,GAAA7Q,IAAA,SAAAmN,EAAAhS,GACA,GAAA0X,GAEAC,GAAAD,GACAtX,IAAAJ,GACS0X,EAAAlP,EAAA2H,mBAAA,EAAAuH,EAaT,OAXA7X,QAAAsD,KAAA6O,GAAAlH,QAAA,SAAAsK,GACA,GAAAwC,GAAApP,EAAA6F,cAAA+G,KAEA,IAAAwC,IAAApP,EAAA+F,eAAAK,YAAAgJ,IAAApP,EAAA+F,eAAAE,SAAA,CACA,GAAAoJ,GAAA7F,EAAAxI,WAAAwI,EAAAtI,OACAiO,GAAAG,yBAAqDC,OAAAF,OAErDF,GAAAC,GAAA5F,EAAAoD,KAIA3U,EAAAd,QAAAoB,cAAA0D,EAAAkT,MAIAK,EAAA,SAAAvT,EAAAiR,EAAA5E,GACA,OAAArM,GACA,IAAA+D,GAAAa,UAAAiB,MACA,OACA2N,YAAA,WACA,MAAAV,GAAA9S,EAAAiR,EAAA3W,MAAA2W,EAAAnL,gBAAAuG,IAEAjO,SAAA,WACA,MAAAgU,GAAApS,EAAAiR,EAAA3W,MAAA2W,EAAAnL,gBAAAuG,IAGA,KAAAtI,GAAA0F,gBAAA1D,KACA,IAAAhC,GAAA0F,gBAAAxD,KACA,OACAuN,YAAA,WACA,MAAAb,GAAA1B,IAEA7S,SAAA,WACA,MAAA8T,GAAAjB,IAGA,SACA,OACAuC,YAAA,WACA,MAAAR,GAAAhT,EAAAiR,IAEA7S,SAAA,WACA,MAAAmU,GAAAvS,EAAAiR,EAAA5E,OAMA1D,EAAA,SAAAvD,GACA,GAAAwD,GAAAxD,EAAAwD,QACA5C,EAAAZ,EAAAY,eACAqG,EAAAjH,EAAAiH,OACAnG,EAAAd,EAAAc,eACA2C,EAAAzD,EAAAyD,SACAC,EAAA1D,EAAA0D,SACAC,EAAA3D,EAAA2D,aACAC,EAAA5D,EAAA4D,WACAC,EAAA7D,EAAA6D,UACAwK,EAAArO,EAAA9K,MACAA,EAAAoC,SAAA+W,EAAA,GAAAA,EACA3N,EAAAV,EAAAU,eACA,QACAwB,KAAAiM,EAAAxP,EAAAa,UAAA8E,KAAAd,EAAAyD,GACArG,eAAAuN,EAAAxP,EAAA0F,gBAAA1D,KAAAC,EAAAqG,GACAnG,eAAAqN,EAAAxP,EAAA0F,gBAAAxD,KAAAC,EAAAmG,GACAtE,KAAAwL,EAAAxP,EAAAa,UAAAoC,KAAA6B,EAAAwD,GACArE,KAAAuL,EAAAxP,EAAAa,UAAAqC,KAAA6B,EAAAuD,GACApE,SAAAsL,EAAAxP,EAAAa,UAAAE,SAAAiE,EAAAsD,GACAjE,OAAAmL,EAAAxP,EAAAa,UAAAC,OAAAmE,EAAAqD,GACAhE,MAAAkL,EAAAxP,EAAAa,UAAAI,MAAAiE,EAAAoD,GACA/R,MAAAiZ,EAAAxP,EAAAa,UAAAiB,OAAmEvL,QAAAwL,mBAAiDuG,IAIpHnS,GAAA6M,oCACA7M,EAAAmP,0BACAnP,EAAAyO,mBACAzO,EAAAkP,qBACAlP,EAAA4R,wBACA5R,EAAA2R,SVwuB8B/P,KAAK5B,EAAU,WAAa,MAAOmK,WAI3DqP,IACA,SAAUzZ,EAAQC,EAASY,GWpwCjC,YAEA,SAAA6Y,GAAAC,GAA+B,MAAAA,IAAA,gBAAAA,IAAA,WAAAA,KAAA,QAAAA,EAO/B,QAAA5R,GAAAC,EAAAC,GAAiD,KAAAD,YAAAC,IAA0C,SAAAC,WAAA,qCAE3F,QAAAC,GAAAC,EAAAvG,GAAiD,IAAAuG,EAAa,SAAAC,gBAAA,4DAAyF,QAAAxG,GAAA,gBAAAA,IAAA,kBAAAA,GAAAuG,EAAAvG,EAEvJ,QAAAyG,GAAAC,EAAAC,GAA0C,qBAAAA,IAAA,OAAAA,EAA+D,SAAAN,WAAA,iEAAAM,GAAuGD,GAAA5G,UAAAR,OAAAsH,OAAAD,KAAA7G,WAAyE+G,aAAelG,MAAA+F,EAAAI,YAAA,EAAAC,UAAA,EAAAC,cAAA,KAA6EL,IAAArH,OAAA2H,eAAA3H,OAAA2H,eAAAP,EAAAC,GAAAD,EAAAQ,UAAAP,GAErX,QAAAoR,GAAAzK,EAAA0K,EAAAnL,GAWA,QAAAoL,GAAAC,GACA,MAAAA,GAAAC,aAAAD,EAAAnU,MAAA,YAXA,qBAAAuJ,GACA,SAAAlE,OAAA,gDAEA,sBAAA4O,GACA,SAAA5O,OAAA,uDAEA,uBAAAyD,IAAA,kBAAAA,GACA,SAAAzD,OAAA,kEAOA,iBAAA8O,GAQA,QAAAE,KACAC,EAAA/K,EAAAgL,EAAAhU,IAAA,SAAA6B,GACA,MAAAA,GAAA5F,SAGAgY,EAAAnT,UACA4S,EAAAK,GACOxL,IACPwL,EAAAxL,EAAAwL,IAfA,qBAAAH,GACA,SAAA9O,OAAA,qDAGA,IAAAkP,MACAD,EAAA,OAcAE,EAAA,SAAAC,GAGA,QAAAD,KAGA,MAFArS,GAAAqC,KAAAgQ,GAEAjS,EAAAiC,KAAAiQ,EAAAhQ,MAAAD,KAAA7I,YA6CA,MAlDA+G,GAAA8R,EAAAC,GASAD,EAAA7L,KAAA,WACA,MAAA2L,IAMAE,EAAA5L,OAAA,WACA,GAAA4L,EAAAnT,UACA,SAAAgE,OAAA,mFAGA,IAAAqP,GAAAJ,CAGA,OAFAA,GAAAzX,OACA0X,KACAG,GAGAF,EAAAzY,UAAA2I,sBAAA,SAAAC,GACA,OAAAgQ,EAAAhQ,EAAAH,KAAAhI,QAGAgY,EAAAzY,UAAA6Y,mBAAA,WACAL,EAAAzV,KAAA0F,MACA6P,KAGAG,EAAAzY,UAAA8Y,mBAAA,WACAR,KAGAG,EAAAzY,UAAA+Y,qBAAA,WACA,GAAA7C,GAAAsC,EAAArS,QAAAsC,KACA+P,GAAAtD,OAAAgB,EAAA,GACAoC,KAGAG,EAAAzY,UAAAsL,OAAA,WACA,MAAA0N,GAAAtY,cAAA0X,EAAA3P,KAAAhI,QAGAgY,GACKQ,EAAA7Q,UAML,OAJAqQ,GAAAJ,YAAA,cAAAF,EAAAC,GAAA,IACAK,EAAAnT,UAAAG,EAAAH,UAGAmT,GAxGA,GAAAQ,GAAA/Z,EAAA,GACA8Z,EAAAjB,EAAAkB,GACAxT,EAAAsS,EAAA7Y,EAAA,MACA0Z,EAAAb,EAAA7Y,EAAA,KAyGAb,GAAAC,QAAA2Z,GX2wCMiB,IACA,SAAU7a,EAAQC,GY13CxBD,EAAAC,QAAA,SAAA6a,EAAAC,EAAAC,EAAAC,GACA,GAAAC,GAAAF,IAAAnZ,KAAAoZ,EAAAH,EAAAC,GAAA,MAEA,aAAAG,EACA,QAAAA,CAGA,IAAAJ,IAAAC,EACA,QAGA,oBAAAD,QAAA,gBAAAC,OACA,QAGA,IAAAI,GAAAha,OAAAsD,KAAAqW,GACAM,EAAAja,OAAAsD,KAAAsW,EAEA,IAAAI,EAAA3Z,SAAA4Z,EAAA5Z,OACA,QAMA,QAHA6Z,GAAAla,OAAAQ,UAAAC,eAAA0Z,KAAAP,GAGAQ,EAAA,EAAmBA,EAAAJ,EAAA3Z,OAAoB+Z,IAAA,CACvC,GAAA7Z,GAAAyZ,EAAAI,EAEA,KAAAF,EAAA3Z,GACA,QAGA,IAAA8Z,GAAAV,EAAApZ,GACA+Z,EAAAV,EAAArZ,EAIA,IAFAwZ,EAAAF,IAAAnZ,KAAAoZ,EAAAO,EAAAC,EAAA/Z,GAAA,OAEAwZ,KAAA,YAAAA,GAAAM,IAAAC,EACA,SAIA,WZo4CMC,KACA,SAAU1b,EAAQC,Gaj7CxBA,EAAA0b,WAAA,WAAkC,YAElC1b,EAAA2b,SAAA,WACA,yBAAAC,UACAA,SAAAD,SAEA,IAGA3b,EAAA6b,QAAA,WAA+B,UAE/B7b,EAAA8b,OAAA,WAA8B,UAE9B9b,EAAA+b,QAAA,WACA,MAAAC,QAAAC,WAGAjc,EAAAkc,SAAA,WACA,MAAAF,QAAAC,WAGAjc,EAAAmc,KAAA,WAA4B,UAE5Bnc,EAAA8F,KAAA,WAA4B,iBAE5B9F,EAAAoc,QAAA,WACA,yBAAArX,WACAA,UAAAsX,WAEA,IAGArc,EAAAsc,kBACAtc,EAAAuc,qBACA,WAAe,UAEfvc,EAAAwc,KAAA,WAA4B,oBAE5Bxc,EAAAyc,SAAA,WAAgC,iBAEhCzc,EAAA0c,OAAA1c,EAAA2c,OAAA,WACA,cAGA3c,EAAA4c,IAAA,Mbw7CMC,IACA,SAAU9c,EAAQC,EAASY,GAEhC,YAgBA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAdvFd,EAAQe,YAAa,Ccz+CtB,IAAAc,GAAAjB,EAAA,Gd6+CKkB,EAAUjB,EAAuBgB,Gc5+CtCyH,EAAA1I,EAAA,Gdg/CK2I,EAAc1I,EAAuByI,Gc/+C1CwT,EAAAlc,EAAA,Mdm/CKmc,EAAuBlc,EAAuBic,Gcj/C7CE,EAAY,SAAA7a,GAAA,MAChBL,GAAAd,QAAAoB,cAAA,OAAK6a,UAAA,eAAyB9a,EAAM+a,SAAW,qBAAuB,KACpEpb,EAAAd,QAAAoB,cAAA,OAAK6a,UAAU,mBAAmBE,IAAKC,UAAMC,IAAI,4BACjDvb,EAAAd,QAAAoB,cAAA,OAAK6a,UAAU,wBAAwB9a,EAAMqK,WAIjDwQ,GAAU3O,cACR7B,SAAUhK,OACV0a,UAAU,GAGZF,EAAU7P,WACRX,SAAU8Q,UAAU/P,KACpB2P,SAAUI,UAAU3P,Md8/CrB3N,EAAQgB,Qc3/CMgc,Ed4/Cdjd,EAAOC,QAAUA,EAAiB,SAI7Bud,KACA,SAAUxd,EAAQC,GethDxBD,EAAAC,QAAA;Ef4hDMwd,IACA,SAAUzd,EAAQC,EAASY,GAEhC,YA2BA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAzBvFd,EAAQe,YAAa,EACrBf,EAAQyd,MAAQjb,MgBliDjB,IAAAX,GAAAjB,EAAA,GhBsiDKkB,EAAUjB,EAAuBgB,GgBriDtCyH,EAAA1I,EAAA,GhByiDK2I,EAAc1I,EAAuByI,GgBxiD1CoU,EAAA9c,EAAA,KhB4iDK+c,EAAgB9c,EAAuB6c,GgB3iD5CE,EAAAhd,EAAA,KACAid,EAAAjd,EAAA,KAEAkd,EAAAld,EAAA,IhBgjDmBC,GAAuBid,EgB5iD1Cld,GAAA,KAEA,IAAMuF,IAAU,EAAA0X,EAAAjZ,UAEVmZ,EAAkB,SAAA7S,GAIlB,GAHJsB,GAGItB,EAHJsB,SACgBrM,EAEZ+K,EAFJjL,KAAQC,KAAQC,aACJ6d,EACR9S,EADJ0Q,SAAYoC,SAENC,EAAc9d,EAAaE,UAAUC,MAAM4F,IAAI,SAAAgY,GAAA,UAAW,EAAAN,EAAAO,YAAW,KAAOD,EAAK3d,KAAlC,MAQ/C6d,GAPaJ,KAAa,EAAAJ,EAAAO,YAAW,MAAQF,EAAYvG,KAAK,SAAAjW,GAAA,MAAOA,KAAQuc,IAOrE,iBACZ7X,KACkB,SAAjBA,EAAQR,MAAoC,OAAjBQ,EAAQR,OACpC0Y,SAASlY,EAAQN,QAAS,IAAM,IAElC,OACE/D,GAAAd,QAAAoB,cAAA,OAAK6a,UAAU,OACbnb,EAAAd,QAAAoB,cAACub,EAAA3c,SACCZ,MAAUD,EAAaC,MAAvB,kBACA0N,OACInI,KAAM,cAAeuT,QAAS,WAC9BvT,KAAM,WAAYuT,QAAS,uBAG/BpX,EAAAd,QAAAoB,cAAA,QAAM6a,UAAA,IAAcmB,IAAU,QAAU,aAGzC5R,KAKPuR,GAAgB5Q,WACdX,SAAU8Q,UAAUrP,KACpBhO,KAAMqd,UAAUgB,OACdpe,KAAMod,UAAUgB,OACdne,aAAcmd,UAAUgB,OACtBle,MAAOkd,UAAU7P,OAAO8Q,aACvBA,aACFA,aACFA,WACH3C,SAAU0B,UAAUgB,OAClBN,SAAUV,UAAU7P,OAAO8Q,aAC1BA,YhBsjDJve,EAAQgB,QgBnjDM+c,CAEFN,6ChBsjDPe,KACA,SAAUze,EAAQC","file":"component---src-layouts-index-js-a284df548dadcd0fe3b8.js","sourcesContent":["webpackJsonp([114276838955818,60335399758886],{\n\n/***/ 288:\n/***/ (function(module, exports) {\n\n\tmodule.exports = {\"data\":{\"site\":{\"siteMetadata\":{\"title\":\"Online Practice\",\"languages\":{\"langs\":[{\"slug\":\"ar\",\"title\":\"العربية\"},{\"slug\":\"zh-Hans\",\"title\":\"简体中文\"},{\"slug\":\"zh-Hant\",\"title\":\"正體中文\"},{\"slug\":\"hr\",\"title\":\"Hrvatski\"},{\"slug\":\"cs\",\"title\":\"česky\"},{\"slug\":\"en\",\"title\":\"English\"},{\"slug\":\"fr\",\"title\":\"Français\"},{\"slug\":\"de\",\"title\":\"Deutsch\"},{\"slug\":\"hu\",\"title\":\"Magyar\"},{\"slug\":\"id\",\"title\":\"Bahasa Indonesia\"},{\"slug\":\"it\",\"title\":\"Italiano\"},{\"slug\":\"ja\",\"title\":\"日本語\"},{\"slug\":\"ko\",\"title\":\"한국어\"},{\"slug\":\"pl\",\"title\":\"Polski\"},{\"slug\":\"pt-BR\",\"title\":\"Português (BR)\"},{\"slug\":\"ru\",\"title\":\"русский\"},{\"slug\":\"sk\",\"title\":\"Slovenčina\"},{\"slug\":\"sl\",\"title\":\"Slovenščina\"},{\"slug\":\"es\",\"title\":\"Español (España)\"},{\"slug\":\"es-419\",\"title\":\"Español (América Latina)\"},{\"slug\":\"th\",\"title\":\"ภาษาไทย\"},{\"slug\":\"tr\",\"title\":\"Türkçe\"},{\"slug\":\"vi\",\"title\":\"Tiếng Việt\"}]}}},\"sitePage\":{\"path\":\"/dev-404-page/\"}},\"layoutContext\":{}}\n\n/***/ }),\n\n/***/ 636:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _index = __webpack_require__(649);\n\t\n\tvar _index2 = _interopRequireDefault(_index);\n\t\n\tvar _layoutIndex = __webpack_require__(288);\n\t\n\tvar _layoutIndex2 = _interopRequireDefault(_layoutIndex);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (props) {\n\t return _react2.default.createElement(_index2.default, _extends({}, props, _layoutIndex2.default));\n\t};\n\t\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n\n/***/ 141:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar pSlice = Array.prototype.slice;\n\tvar objectKeys = __webpack_require__(143);\n\tvar isArguments = __webpack_require__(142);\n\t\n\tvar deepEqual = module.exports = function (actual, expected, opts) {\n\t if (!opts) opts = {};\n\t // 7.1. All identical values are equivalent, as determined by ===.\n\t if (actual === expected) {\n\t return true;\n\t\n\t } else if (actual instanceof Date && expected instanceof Date) {\n\t return actual.getTime() === expected.getTime();\n\t\n\t // 7.3. Other pairs that do not both pass typeof value == 'object',\n\t // equivalence is determined by ==.\n\t } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n\t return opts.strict ? actual === expected : actual == expected;\n\t\n\t // 7.4. For all other Object pairs, including Array objects, equivalence is\n\t // determined by having the same number of owned properties (as verified\n\t // with Object.prototype.hasOwnProperty.call), the same set of keys\n\t // (although not necessarily the same order), equivalent values for every\n\t // corresponding key, and an identical 'prototype' property. Note: this\n\t // accounts for both named and indexed properties on Arrays.\n\t } else {\n\t return objEquiv(actual, expected, opts);\n\t }\n\t}\n\t\n\tfunction isUndefinedOrNull(value) {\n\t return value === null || value === undefined;\n\t}\n\t\n\tfunction isBuffer (x) {\n\t if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n\t if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n\t return false;\n\t }\n\t if (x.length > 0 && typeof x[0] !== 'number') return false;\n\t return true;\n\t}\n\t\n\tfunction objEquiv(a, b, opts) {\n\t var i, key;\n\t if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n\t return false;\n\t // an identical 'prototype' property.\n\t if (a.prototype !== b.prototype) return false;\n\t //~~~I've managed to break Object.keys through screwy arguments passing.\n\t // Converting to array solves the problem.\n\t if (isArguments(a)) {\n\t if (!isArguments(b)) {\n\t return false;\n\t }\n\t a = pSlice.call(a);\n\t b = pSlice.call(b);\n\t return deepEqual(a, b, opts);\n\t }\n\t if (isBuffer(a)) {\n\t if (!isBuffer(b)) {\n\t return false;\n\t }\n\t if (a.length !== b.length) return false;\n\t for (i = 0; i < a.length; i++) {\n\t if (a[i] !== b[i]) return false;\n\t }\n\t return true;\n\t }\n\t try {\n\t var ka = objectKeys(a),\n\t kb = objectKeys(b);\n\t } catch (e) {//happens when one is a string literal and the other isn't\n\t return false;\n\t }\n\t // having the same number of owned properties (keys incorporates\n\t // hasOwnProperty)\n\t if (ka.length != kb.length)\n\t return false;\n\t //the same set of keys (although not necessarily the same order),\n\t ka.sort();\n\t kb.sort();\n\t //~~~cheap key test\n\t for (i = ka.length - 1; i >= 0; i--) {\n\t if (ka[i] != kb[i])\n\t return false;\n\t }\n\t //equivalent values for every corresponding key, and\n\t //~~~possibly expensive deep test\n\t for (i = ka.length - 1; i >= 0; i--) {\n\t key = ka[i];\n\t if (!deepEqual(a[key], b[key], opts)) return false;\n\t }\n\t return typeof a === typeof b;\n\t}\n\n\n/***/ }),\n\n/***/ 142:\n/***/ (function(module, exports) {\n\n\tvar supportsArgumentsClass = (function(){\n\t return Object.prototype.toString.call(arguments)\n\t})() == '[object Arguments]';\n\t\n\texports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\t\n\texports.supported = supported;\n\tfunction supported(object) {\n\t return Object.prototype.toString.call(object) == '[object Arguments]';\n\t};\n\t\n\texports.unsupported = unsupported;\n\tfunction unsupported(object){\n\t return object &&\n\t typeof object == 'object' &&\n\t typeof object.length == 'number' &&\n\t Object.prototype.hasOwnProperty.call(object, 'callee') &&\n\t !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n\t false;\n\t};\n\n\n/***/ }),\n\n/***/ 143:\n/***/ (function(module, exports) {\n\n\texports = module.exports = typeof Object.keys === 'function'\n\t ? Object.keys : shim;\n\t\n\texports.shim = shim;\n\tfunction shim (obj) {\n\t var keys = [];\n\t for (var key in obj) keys.push(key);\n\t return keys;\n\t}\n\n\n/***/ }),\n\n/***/ 909:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {function detect() {\n\t var nodeVersion = getNodeVersion();\n\t if (nodeVersion) {\n\t return nodeVersion;\n\t } else if (typeof navigator !== 'undefined') {\n\t return parseUserAgent(navigator.userAgent);\n\t }\n\t\n\t return null;\n\t}\n\t\n\tfunction detectOS(userAgentString) {\n\t var rules = getOperatingSystemRules();\n\t var detected = rules.filter(function (os) {\n\t return os.rule && os.rule.test(userAgentString);\n\t })[0];\n\t\n\t return detected ? detected.name : null;\n\t}\n\t\n\tfunction getNodeVersion() {\n\t var isNode = typeof navigator === 'undefined' && typeof process !== 'undefined';\n\t return isNode ? {\n\t name: 'node',\n\t version: process.version.slice(1),\n\t os: __webpack_require__(1689).type().toLowerCase()\n\t } : null;\n\t}\n\t\n\tfunction parseUserAgent(userAgentString) {\n\t var browsers = getBrowserRules();\n\t if (!userAgentString) {\n\t return null;\n\t }\n\t\n\t var detected = browsers.map(function(browser) {\n\t var match = browser.rule.exec(userAgentString);\n\t var version = match && match[1].split(/[._]/).slice(0,3);\n\t\n\t if (version && version.length < 3) {\n\t version = version.concat(version.length == 1 ? [0, 0] : [0]);\n\t }\n\t\n\t return match && {\n\t name: browser.name,\n\t version: version.join('.')\n\t };\n\t }).filter(Boolean)[0] || null;\n\t\n\t if (detected) {\n\t detected.os = detectOS(userAgentString);\n\t }\n\t\n\t if (/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/i.test(userAgentString)) {\n\t detected = detected || {};\n\t detected.bot = true;\n\t }\n\t \n\t return detected;\n\t}\n\t\n\tfunction getBrowserRules() {\n\t return buildRules([\n\t [ 'aol', /AOLShield\\/([0-9\\._]+)/ ],\n\t [ 'edge', /Edge\\/([0-9\\._]+)/ ],\n\t [ 'yandexbrowser', /YaBrowser\\/([0-9\\._]+)/ ],\n\t [ 'vivaldi', /Vivaldi\\/([0-9\\.]+)/ ],\n\t [ 'kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/ ],\n\t [ 'samsung', /SamsungBrowser\\/([0-9\\.]+)/ ],\n\t [ 'chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/ ],\n\t [ 'phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/ ],\n\t [ 'crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/ ],\n\t [ 'firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/ ],\n\t [ 'fxios', /FxiOS\\/([0-9\\.]+)/ ],\n\t [ 'opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/ ],\n\t [ 'opera', /OPR\\/([0-9\\.]+)(:?\\s|$)$/ ],\n\t [ 'ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/ ],\n\t [ 'ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/ ],\n\t [ 'ie', /MSIE\\s(7\\.0)/ ],\n\t [ 'bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/ ],\n\t [ 'android', /Android\\s([0-9\\.]+)/ ],\n\t [ 'ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/ ],\n\t [ 'safari', /Version\\/([0-9\\._]+).*Safari/ ],\n\t [ 'facebook', /FBAV\\/([0-9\\.]+)/],\n\t [ 'instagram', /Instagram\\ ([0-9\\.]+)/]\n\t ]);\n\t}\n\t\n\tfunction getOperatingSystemRules() {\n\t return buildRules([\n\t [ 'iOS', /iP(hone|od|ad)/ ],\n\t [ 'Android OS', /Android/ ],\n\t [ 'BlackBerry OS', /BlackBerry|BB10/ ],\n\t [ 'Windows Mobile', /IEMobile/ ],\n\t [ 'Amazon OS', /Kindle/ ],\n\t [ 'Windows 3.11', /Win16/ ],\n\t [ 'Windows 95', /(Windows 95)|(Win95)|(Windows_95)/ ],\n\t [ 'Windows 98', /(Windows 98)|(Win98)/ ],\n\t [ 'Windows 2000', /(Windows NT 5.0)|(Windows 2000)/ ],\n\t [ 'Windows XP', /(Windows NT 5.1)|(Windows XP)/ ],\n\t [ 'Windows Server 2003', /(Windows NT 5.2)/ ],\n\t [ 'Windows Vista', /(Windows NT 6.0)/ ],\n\t [ 'Windows 7', /(Windows NT 6.1)/ ],\n\t [ 'Windows 8', /(Windows NT 6.2)/ ],\n\t [ 'Windows 8.1', /(Windows NT 6.3)/ ],\n\t [ 'Windows 10', /(Windows NT 10.0)/ ],\n\t [ 'Windows ME', /Windows ME/ ],\n\t [ 'Open BSD', /OpenBSD/ ],\n\t [ 'Sun OS', /SunOS/ ],\n\t [ 'Linux', /(Linux)|(X11)/ ],\n\t [ 'Mac OS', /(Mac_PowerPC)|(Macintosh)/ ],\n\t [ 'QNX', /QNX/ ],\n\t [ 'BeOS', /BeOS/ ],\n\t [ 'OS/2', /OS\\/2/ ],\n\t [ 'Search Bot', /(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves\\/Teoma)|(ia_archiver)/ ]\n\t ]);\n\t}\n\t\n\tfunction buildRules(ruleTuples) {\n\t return ruleTuples.map(function(tuple) {\n\t return {\n\t name: tuple[0],\n\t rule: tuple[1]\n\t };\n\t });\n\t}\n\t\n\tmodule.exports = {\n\t detect: detect,\n\t detectOS: detectOS,\n\t getNodeVersion: getNodeVersion,\n\t parseUserAgent: parseUserAgent\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(157)))\n\n/***/ }),\n\n/***/ 144:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t Copyright (c) 2015 Jed Watson.\n\t Based on code that is Copyright 2013-2015, Facebook, Inc.\n\t All rights reserved.\n\t*/\n\t/* global define */\n\t\n\t(function () {\n\t\t'use strict';\n\t\n\t\tvar canUseDOM = !!(\n\t\t\ttypeof window !== 'undefined' &&\n\t\t\twindow.document &&\n\t\t\twindow.document.createElement\n\t\t);\n\t\n\t\tvar ExecutionEnvironment = {\n\t\n\t\t\tcanUseDOM: canUseDOM,\n\t\n\t\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\t\n\t\t\tcanUseEventListeners:\n\t\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\t\n\t\t\tcanUseViewport: canUseDOM && !!window.screen\n\t\n\t\t};\n\t\n\t\tif (true) {\n\t\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\t\t\treturn ExecutionEnvironment;\n\t\t\t}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\t\tmodule.exports = ExecutionEnvironment;\n\t\t} else {\n\t\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t\t}\n\t\n\t}());\n\n\n/***/ }),\n\n/***/ 162:\n/***/ (function(module, exports, __webpack_require__) {\n\n\texports.__esModule = true;\n\texports.Helmet = undefined;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(2);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tvar _reactSideEffect = __webpack_require__(164);\n\t\n\tvar _reactSideEffect2 = _interopRequireDefault(_reactSideEffect);\n\t\n\tvar _deepEqual = __webpack_require__(141);\n\t\n\tvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\t\n\tvar _HelmetUtils = __webpack_require__(163);\n\t\n\tvar _HelmetConstants = __webpack_require__(88);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar Helmet = function Helmet(Component) {\n\t var _class, _temp;\n\t\n\t return _temp = _class = function (_React$Component) {\n\t _inherits(HelmetWrapper, _React$Component);\n\t\n\t function HelmetWrapper() {\n\t _classCallCheck(this, HelmetWrapper);\n\t\n\t return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n\t }\n\t\n\t HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n\t return !(0, _deepEqual2.default)(this.props, nextProps);\n\t };\n\t\n\t HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n\t if (!nestedChildren) {\n\t return null;\n\t }\n\t\n\t switch (child.type) {\n\t case _HelmetConstants.TAG_NAMES.SCRIPT:\n\t case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n\t return {\n\t innerHTML: nestedChildren\n\t };\n\t\n\t case _HelmetConstants.TAG_NAMES.STYLE:\n\t return {\n\t cssText: nestedChildren\n\t };\n\t }\n\t\n\t throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n\t };\n\t\n\t HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n\t var _extends2;\n\t\n\t var child = _ref.child,\n\t arrayTypeChildren = _ref.arrayTypeChildren,\n\t newChildProps = _ref.newChildProps,\n\t nestedChildren = _ref.nestedChildren;\n\t\n\t return _extends({}, arrayTypeChildren, (_extends2 = {}, _extends2[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _extends2));\n\t };\n\t\n\t HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n\t var _extends3, _extends4;\n\t\n\t var child = _ref2.child,\n\t newProps = _ref2.newProps,\n\t newChildProps = _ref2.newChildProps,\n\t nestedChildren = _ref2.nestedChildren;\n\t\n\t switch (child.type) {\n\t case _HelmetConstants.TAG_NAMES.TITLE:\n\t return _extends({}, newProps, (_extends3 = {}, _extends3[child.type] = nestedChildren, _extends3.titleAttributes = _extends({}, newChildProps), _extends3));\n\t\n\t case _HelmetConstants.TAG_NAMES.BODY:\n\t return _extends({}, newProps, {\n\t bodyAttributes: _extends({}, newChildProps)\n\t });\n\t\n\t case _HelmetConstants.TAG_NAMES.HTML:\n\t return _extends({}, newProps, {\n\t htmlAttributes: _extends({}, newChildProps)\n\t });\n\t }\n\t\n\t return _extends({}, newProps, (_extends4 = {}, _extends4[child.type] = _extends({}, newChildProps), _extends4));\n\t };\n\t\n\t HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n\t var newFlattenedProps = _extends({}, newProps);\n\t\n\t Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n\t var _extends5;\n\t\n\t newFlattenedProps = _extends({}, newFlattenedProps, (_extends5 = {}, _extends5[arrayChildName] = arrayTypeChildren[arrayChildName], _extends5));\n\t });\n\t\n\t return newFlattenedProps;\n\t };\n\t\n\t HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n\t if (false) {\n\t if (!_HelmetConstants.VALID_TAG_NAMES.some(function (name) {\n\t return child.type === name;\n\t })) {\n\t if (typeof child.type === \"function\") {\n\t return (0, _HelmetUtils.warn)(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n\t }\n\t\n\t return (0, _HelmetUtils.warn)(\"Only elements types \" + _HelmetConstants.VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n\t }\n\t\n\t if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n\t return typeof nestedChild !== \"string\";\n\t }))) {\n\t throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n\t }\n\t }\n\t\n\t return true;\n\t };\n\t\n\t HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n\t var _this2 = this;\n\t\n\t var arrayTypeChildren = {};\n\t\n\t _react2.default.Children.forEach(children, function (child) {\n\t if (!child || !child.props) {\n\t return;\n\t }\n\t\n\t var _child$props = child.props,\n\t nestedChildren = _child$props.children,\n\t childProps = _objectWithoutProperties(_child$props, [\"children\"]);\n\t\n\t var newChildProps = (0, _HelmetUtils.convertReactPropstoHtmlAttributes)(childProps);\n\t\n\t _this2.warnOnInvalidChildren(child, nestedChildren);\n\t\n\t switch (child.type) {\n\t case _HelmetConstants.TAG_NAMES.LINK:\n\t case _HelmetConstants.TAG_NAMES.META:\n\t case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n\t case _HelmetConstants.TAG_NAMES.SCRIPT:\n\t case _HelmetConstants.TAG_NAMES.STYLE:\n\t arrayTypeChildren = _this2.flattenArrayTypeChildren({\n\t child: child,\n\t arrayTypeChildren: arrayTypeChildren,\n\t newChildProps: newChildProps,\n\t nestedChildren: nestedChildren\n\t });\n\t break;\n\t\n\t default:\n\t newProps = _this2.mapObjectTypeChildren({\n\t child: child,\n\t newProps: newProps,\n\t newChildProps: newChildProps,\n\t nestedChildren: nestedChildren\n\t });\n\t break;\n\t }\n\t });\n\t\n\t newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n\t return newProps;\n\t };\n\t\n\t HelmetWrapper.prototype.render = function render() {\n\t var _props = this.props,\n\t children = _props.children,\n\t props = _objectWithoutProperties(_props, [\"children\"]);\n\t\n\t var newProps = _extends({}, props);\n\t\n\t if (children) {\n\t newProps = this.mapChildrenToProps(children, newProps);\n\t }\n\t\n\t return _react2.default.createElement(Component, newProps);\n\t };\n\t\n\t _createClass(HelmetWrapper, null, [{\n\t key: \"canUseDOM\",\n\t\n\t\n\t // Component.peek comes from react-side-effect:\n\t // For testing, you may use a static peek() method available on the returned component.\n\t // It lets you get the current state without resetting the mounted instance stack.\n\t // Don’t use it for anything other than testing.\n\t\n\t /**\n\t * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n\t * @param {Object} bodyAttributes: {\"className\": \"root\"}\n\t * @param {String} defaultTitle: \"Default Title\"\n\t * @param {Boolean} defer: true\n\t * @param {Boolean} encodeSpecialCharacters: true\n\t * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n\t * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n\t * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n\t * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n\t * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n\t * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n\t * @param {String} title: \"Title\"\n\t * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n\t * @param {String} titleTemplate: \"MySite.com - %s\"\n\t */\n\t set: function set(canUseDOM) {\n\t Component.canUseDOM = canUseDOM;\n\t }\n\t }]);\n\t\n\t return HelmetWrapper;\n\t }(_react2.default.Component), _class.propTypes = {\n\t base: _propTypes2.default.object,\n\t bodyAttributes: _propTypes2.default.object,\n\t children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.node), _propTypes2.default.node]),\n\t defaultTitle: _propTypes2.default.string,\n\t defer: _propTypes2.default.bool,\n\t encodeSpecialCharacters: _propTypes2.default.bool,\n\t htmlAttributes: _propTypes2.default.object,\n\t link: _propTypes2.default.arrayOf(_propTypes2.default.object),\n\t meta: _propTypes2.default.arrayOf(_propTypes2.default.object),\n\t noscript: _propTypes2.default.arrayOf(_propTypes2.default.object),\n\t onChangeClientState: _propTypes2.default.func,\n\t script: _propTypes2.default.arrayOf(_propTypes2.default.object),\n\t style: _propTypes2.default.arrayOf(_propTypes2.default.object),\n\t title: _propTypes2.default.string,\n\t titleAttributes: _propTypes2.default.object,\n\t titleTemplate: _propTypes2.default.string\n\t }, _class.defaultProps = {\n\t defer: true,\n\t encodeSpecialCharacters: true\n\t }, _class.peek = Component.peek, _class.rewind = function () {\n\t var mappedState = Component.rewind();\n\t if (!mappedState) {\n\t // provide fallback if mappedState is undefined\n\t mappedState = (0, _HelmetUtils.mapStateOnServer)({\n\t baseTag: [],\n\t bodyAttributes: {},\n\t encodeSpecialCharacters: true,\n\t htmlAttributes: {},\n\t linkTags: [],\n\t metaTags: [],\n\t noscriptTags: [],\n\t scriptTags: [],\n\t styleTags: [],\n\t title: \"\",\n\t titleAttributes: {}\n\t });\n\t }\n\t\n\t return mappedState;\n\t }, _temp;\n\t};\n\t\n\tvar NullComponent = function NullComponent() {\n\t return null;\n\t};\n\t\n\tvar HelmetSideEffects = (0, _reactSideEffect2.default)(_HelmetUtils.reducePropsToState, _HelmetUtils.handleClientStateChange, _HelmetUtils.mapStateOnServer)(NullComponent);\n\t\n\tvar HelmetExport = Helmet(HelmetSideEffects);\n\tHelmetExport.renderStatic = HelmetExport.rewind;\n\t\n\texports.Helmet = HelmetExport;\n\texports.default = HelmetExport;\n\n/***/ }),\n\n/***/ 88:\n/***/ (function(module, exports) {\n\n\texports.__esModule = true;\n\tvar ATTRIBUTE_NAMES = exports.ATTRIBUTE_NAMES = {\n\t BODY: \"bodyAttributes\",\n\t HTML: \"htmlAttributes\",\n\t TITLE: \"titleAttributes\"\n\t};\n\t\n\tvar TAG_NAMES = exports.TAG_NAMES = {\n\t BASE: \"base\",\n\t BODY: \"body\",\n\t HEAD: \"head\",\n\t HTML: \"html\",\n\t LINK: \"link\",\n\t META: \"meta\",\n\t NOSCRIPT: \"noscript\",\n\t SCRIPT: \"script\",\n\t STYLE: \"style\",\n\t TITLE: \"title\"\n\t};\n\t\n\tvar VALID_TAG_NAMES = exports.VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n\t return TAG_NAMES[name];\n\t});\n\t\n\tvar TAG_PROPERTIES = exports.TAG_PROPERTIES = {\n\t CHARSET: \"charset\",\n\t CSS_TEXT: \"cssText\",\n\t HREF: \"href\",\n\t HTTPEQUIV: \"http-equiv\",\n\t INNER_HTML: \"innerHTML\",\n\t ITEM_PROP: \"itemprop\",\n\t NAME: \"name\",\n\t PROPERTY: \"property\",\n\t REL: \"rel\",\n\t SRC: \"src\"\n\t};\n\t\n\tvar REACT_TAG_MAP = exports.REACT_TAG_MAP = {\n\t accesskey: \"accessKey\",\n\t charset: \"charSet\",\n\t class: \"className\",\n\t contenteditable: \"contentEditable\",\n\t contextmenu: \"contextMenu\",\n\t \"http-equiv\": \"httpEquiv\",\n\t itemprop: \"itemProp\",\n\t tabindex: \"tabIndex\"\n\t};\n\t\n\tvar HELMET_PROPS = exports.HELMET_PROPS = {\n\t DEFAULT_TITLE: \"defaultTitle\",\n\t DEFER: \"defer\",\n\t ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n\t ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n\t TITLE_TEMPLATE: \"titleTemplate\"\n\t};\n\t\n\tvar HTML_TAG_MAP = exports.HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n\t obj[REACT_TAG_MAP[key]] = key;\n\t return obj;\n\t}, {});\n\t\n\tvar SELF_CLOSING_TAGS = exports.SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\t\n\tvar HELMET_ATTRIBUTE = exports.HELMET_ATTRIBUTE = \"data-react-helmet\";\n\n/***/ }),\n\n/***/ 163:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {exports.__esModule = true;\n\texports.warn = exports.requestAnimationFrame = exports.reducePropsToState = exports.mapStateOnServer = exports.handleClientStateChange = exports.convertReactPropstoHtmlAttributes = undefined;\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _objectAssign = __webpack_require__(20);\n\t\n\tvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\t\n\tvar _HelmetConstants = __webpack_require__(88);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n\t var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\t\n\t if (encode === false) {\n\t return String(str);\n\t }\n\t\n\t return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n\t};\n\t\n\tvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n\t var innermostTitle = getInnermostProperty(propsList, _HelmetConstants.TAG_NAMES.TITLE);\n\t var innermostTemplate = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.TITLE_TEMPLATE);\n\t\n\t if (innermostTemplate && innermostTitle) {\n\t // use function arg to avoid need to escape $ characters\n\t return innermostTemplate.replace(/%s/g, function () {\n\t return innermostTitle;\n\t });\n\t }\n\t\n\t var innermostDefaultTitle = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFAULT_TITLE);\n\t\n\t return innermostTitle || innermostDefaultTitle || undefined;\n\t};\n\t\n\tvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n\t return getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n\t};\n\t\n\tvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n\t return propsList.filter(function (props) {\n\t return typeof props[tagType] !== \"undefined\";\n\t }).map(function (props) {\n\t return props[tagType];\n\t }).reduce(function (tagAttrs, current) {\n\t return _extends({}, tagAttrs, current);\n\t }, {});\n\t};\n\t\n\tvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n\t return propsList.filter(function (props) {\n\t return typeof props[_HelmetConstants.TAG_NAMES.BASE] !== \"undefined\";\n\t }).map(function (props) {\n\t return props[_HelmetConstants.TAG_NAMES.BASE];\n\t }).reverse().reduce(function (innermostBaseTag, tag) {\n\t if (!innermostBaseTag.length) {\n\t var keys = Object.keys(tag);\n\t\n\t for (var i = 0; i < keys.length; i++) {\n\t var attributeKey = keys[i];\n\t var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\t\n\t if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n\t return innermostBaseTag.concat(tag);\n\t }\n\t }\n\t }\n\t\n\t return innermostBaseTag;\n\t }, []);\n\t};\n\t\n\tvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n\t // Calculate list of tags, giving priority innermost component (end of the propslist)\n\t var approvedSeenTags = {};\n\t\n\t return propsList.filter(function (props) {\n\t if (Array.isArray(props[tagName])) {\n\t return true;\n\t }\n\t if (typeof props[tagName] !== \"undefined\") {\n\t warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n\t }\n\t return false;\n\t }).map(function (props) {\n\t return props[tagName];\n\t }).reverse().reduce(function (approvedTags, instanceTags) {\n\t var instanceSeenTags = {};\n\t\n\t instanceTags.filter(function (tag) {\n\t var primaryAttributeKey = void 0;\n\t var keys = Object.keys(tag);\n\t for (var i = 0; i < keys.length; i++) {\n\t var attributeKey = keys[i];\n\t var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\t\n\t // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\t if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n\t primaryAttributeKey = lowerCaseAttributeKey;\n\t }\n\t // Special case for innerHTML which doesn't work lowercased\n\t if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attributeKey === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT || attributeKey === _HelmetConstants.TAG_PROPERTIES.ITEM_PROP)) {\n\t primaryAttributeKey = attributeKey;\n\t }\n\t }\n\t\n\t if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n\t return false;\n\t }\n\t\n\t var value = tag[primaryAttributeKey].toLowerCase();\n\t\n\t if (!approvedSeenTags[primaryAttributeKey]) {\n\t approvedSeenTags[primaryAttributeKey] = {};\n\t }\n\t\n\t if (!instanceSeenTags[primaryAttributeKey]) {\n\t instanceSeenTags[primaryAttributeKey] = {};\n\t }\n\t\n\t if (!approvedSeenTags[primaryAttributeKey][value]) {\n\t instanceSeenTags[primaryAttributeKey][value] = true;\n\t return true;\n\t }\n\t\n\t return false;\n\t }).reverse().forEach(function (tag) {\n\t return approvedTags.push(tag);\n\t });\n\t\n\t // Update seen tags with tags from this instance\n\t var keys = Object.keys(instanceSeenTags);\n\t for (var i = 0; i < keys.length; i++) {\n\t var attributeKey = keys[i];\n\t var tagUnion = (0, _objectAssign2.default)({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\t\n\t approvedSeenTags[attributeKey] = tagUnion;\n\t }\n\t\n\t return approvedTags;\n\t }, []).reverse();\n\t};\n\t\n\tvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n\t for (var i = propsList.length - 1; i >= 0; i--) {\n\t var props = propsList[i];\n\t\n\t if (props.hasOwnProperty(property)) {\n\t return props[property];\n\t }\n\t }\n\t\n\t return null;\n\t};\n\t\n\tvar reducePropsToState = function reducePropsToState(propsList) {\n\t return {\n\t baseTag: getBaseTagFromPropsList([_HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n\t bodyAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.BODY, propsList),\n\t defer: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFER),\n\t encode: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n\t htmlAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.HTML, propsList),\n\t linkTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.LINK, [_HelmetConstants.TAG_PROPERTIES.REL, _HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n\t metaTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.META, [_HelmetConstants.TAG_PROPERTIES.NAME, _HelmetConstants.TAG_PROPERTIES.CHARSET, _HelmetConstants.TAG_PROPERTIES.HTTPEQUIV, _HelmetConstants.TAG_PROPERTIES.PROPERTY, _HelmetConstants.TAG_PROPERTIES.ITEM_PROP], propsList),\n\t noscriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.NOSCRIPT, [_HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n\t onChangeClientState: getOnChangeClientState(propsList),\n\t scriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.SCRIPT, [_HelmetConstants.TAG_PROPERTIES.SRC, _HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n\t styleTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.STYLE, [_HelmetConstants.TAG_PROPERTIES.CSS_TEXT], propsList),\n\t title: getTitleFromPropsList(propsList),\n\t titleAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.TITLE, propsList)\n\t };\n\t};\n\t\n\tvar rafPolyfill = function () {\n\t var clock = Date.now();\n\t\n\t return function (callback) {\n\t var currentTime = Date.now();\n\t\n\t if (currentTime - clock > 16) {\n\t clock = currentTime;\n\t callback(currentTime);\n\t } else {\n\t setTimeout(function () {\n\t rafPolyfill(callback);\n\t }, 0);\n\t }\n\t };\n\t}();\n\t\n\tvar cafPolyfill = function cafPolyfill(id) {\n\t return clearTimeout(id);\n\t};\n\t\n\tvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\t\n\tvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\t\n\tvar warn = function warn(msg) {\n\t return console && typeof console.warn === \"function\" && console.warn(msg);\n\t};\n\t\n\tvar _helmetCallback = null;\n\t\n\tvar handleClientStateChange = function handleClientStateChange(newState) {\n\t if (_helmetCallback) {\n\t cancelAnimationFrame(_helmetCallback);\n\t }\n\t\n\t if (newState.defer) {\n\t _helmetCallback = requestAnimationFrame(function () {\n\t commitTagChanges(newState, function () {\n\t _helmetCallback = null;\n\t });\n\t });\n\t } else {\n\t commitTagChanges(newState);\n\t _helmetCallback = null;\n\t }\n\t};\n\t\n\tvar commitTagChanges = function commitTagChanges(newState, cb) {\n\t var baseTag = newState.baseTag,\n\t bodyAttributes = newState.bodyAttributes,\n\t htmlAttributes = newState.htmlAttributes,\n\t linkTags = newState.linkTags,\n\t metaTags = newState.metaTags,\n\t noscriptTags = newState.noscriptTags,\n\t onChangeClientState = newState.onChangeClientState,\n\t scriptTags = newState.scriptTags,\n\t styleTags = newState.styleTags,\n\t title = newState.title,\n\t titleAttributes = newState.titleAttributes;\n\t\n\t updateAttributes(_HelmetConstants.TAG_NAMES.BODY, bodyAttributes);\n\t updateAttributes(_HelmetConstants.TAG_NAMES.HTML, htmlAttributes);\n\t\n\t updateTitle(title, titleAttributes);\n\t\n\t var tagUpdates = {\n\t baseTag: updateTags(_HelmetConstants.TAG_NAMES.BASE, baseTag),\n\t linkTags: updateTags(_HelmetConstants.TAG_NAMES.LINK, linkTags),\n\t metaTags: updateTags(_HelmetConstants.TAG_NAMES.META, metaTags),\n\t noscriptTags: updateTags(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags),\n\t scriptTags: updateTags(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags),\n\t styleTags: updateTags(_HelmetConstants.TAG_NAMES.STYLE, styleTags)\n\t };\n\t\n\t var addedTags = {};\n\t var removedTags = {};\n\t\n\t Object.keys(tagUpdates).forEach(function (tagType) {\n\t var _tagUpdates$tagType = tagUpdates[tagType],\n\t newTags = _tagUpdates$tagType.newTags,\n\t oldTags = _tagUpdates$tagType.oldTags;\n\t\n\t\n\t if (newTags.length) {\n\t addedTags[tagType] = newTags;\n\t }\n\t if (oldTags.length) {\n\t removedTags[tagType] = tagUpdates[tagType].oldTags;\n\t }\n\t });\n\t\n\t cb && cb();\n\t\n\t onChangeClientState(newState, addedTags, removedTags);\n\t};\n\t\n\tvar flattenArray = function flattenArray(possibleArray) {\n\t return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n\t};\n\t\n\tvar updateTitle = function updateTitle(title, attributes) {\n\t if (typeof title !== \"undefined\" && document.title !== title) {\n\t document.title = flattenArray(title);\n\t }\n\t\n\t updateAttributes(_HelmetConstants.TAG_NAMES.TITLE, attributes);\n\t};\n\t\n\tvar updateAttributes = function updateAttributes(tagName, attributes) {\n\t var elementTag = document.getElementsByTagName(tagName)[0];\n\t\n\t if (!elementTag) {\n\t return;\n\t }\n\t\n\t var helmetAttributeString = elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n\t var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n\t var attributesToRemove = [].concat(helmetAttributes);\n\t var attributeKeys = Object.keys(attributes);\n\t\n\t for (var i = 0; i < attributeKeys.length; i++) {\n\t var attribute = attributeKeys[i];\n\t var value = attributes[attribute] || \"\";\n\t\n\t if (elementTag.getAttribute(attribute) !== value) {\n\t elementTag.setAttribute(attribute, value);\n\t }\n\t\n\t if (helmetAttributes.indexOf(attribute) === -1) {\n\t helmetAttributes.push(attribute);\n\t }\n\t\n\t var indexToSave = attributesToRemove.indexOf(attribute);\n\t if (indexToSave !== -1) {\n\t attributesToRemove.splice(indexToSave, 1);\n\t }\n\t }\n\t\n\t for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n\t elementTag.removeAttribute(attributesToRemove[_i]);\n\t }\n\t\n\t if (helmetAttributes.length === attributesToRemove.length) {\n\t elementTag.removeAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n\t } else if (elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n\t elementTag.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n\t }\n\t};\n\t\n\tvar updateTags = function updateTags(type, tags) {\n\t var headElement = document.head || document.querySelector(_HelmetConstants.TAG_NAMES.HEAD);\n\t var tagNodes = headElement.querySelectorAll(type + \"[\" + _HelmetConstants.HELMET_ATTRIBUTE + \"]\");\n\t var oldTags = Array.prototype.slice.call(tagNodes);\n\t var newTags = [];\n\t var indexToDelete = void 0;\n\t\n\t if (tags && tags.length) {\n\t tags.forEach(function (tag) {\n\t var newElement = document.createElement(type);\n\t\n\t for (var attribute in tag) {\n\t if (tag.hasOwnProperty(attribute)) {\n\t if (attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML) {\n\t newElement.innerHTML = tag.innerHTML;\n\t } else if (attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n\t if (newElement.styleSheet) {\n\t newElement.styleSheet.cssText = tag.cssText;\n\t } else {\n\t newElement.appendChild(document.createTextNode(tag.cssText));\n\t }\n\t } else {\n\t var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n\t newElement.setAttribute(attribute, value);\n\t }\n\t }\n\t }\n\t\n\t newElement.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, \"true\");\n\t\n\t // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\t if (oldTags.some(function (existingTag, index) {\n\t indexToDelete = index;\n\t return newElement.isEqualNode(existingTag);\n\t })) {\n\t oldTags.splice(indexToDelete, 1);\n\t } else {\n\t newTags.push(newElement);\n\t }\n\t });\n\t }\n\t\n\t oldTags.forEach(function (tag) {\n\t return tag.parentNode.removeChild(tag);\n\t });\n\t newTags.forEach(function (tag) {\n\t return headElement.appendChild(tag);\n\t });\n\t\n\t return {\n\t oldTags: oldTags,\n\t newTags: newTags\n\t };\n\t};\n\t\n\tvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n\t return Object.keys(attributes).reduce(function (str, key) {\n\t var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n\t return str ? str + \" \" + attr : attr;\n\t }, \"\");\n\t};\n\t\n\tvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n\t var attributeString = generateElementAttributesAsString(attributes);\n\t var flattenedTitle = flattenArray(title);\n\t return attributeString ? \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n\t};\n\t\n\tvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n\t return tags.reduce(function (str, tag) {\n\t var attributeHtml = Object.keys(tag).filter(function (attribute) {\n\t return !(attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT);\n\t }).reduce(function (string, attribute) {\n\t var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n\t return string ? string + \" \" + attr : attr;\n\t }, \"\");\n\t\n\t var tagContent = tag.innerHTML || tag.cssText || \"\";\n\t\n\t var isSelfClosing = _HelmetConstants.SELF_CLOSING_TAGS.indexOf(type) === -1;\n\t\n\t return str + \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n\t }, \"\");\n\t};\n\t\n\tvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n\t var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\n\t return Object.keys(attributes).reduce(function (obj, key) {\n\t obj[_HelmetConstants.REACT_TAG_MAP[key] || key] = attributes[key];\n\t return obj;\n\t }, initProps);\n\t};\n\t\n\tvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n\t var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\n\t return Object.keys(props).reduce(function (obj, key) {\n\t obj[_HelmetConstants.HTML_TAG_MAP[key] || key] = props[key];\n\t return obj;\n\t }, initAttributes);\n\t};\n\t\n\tvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n\t var _initProps;\n\t\n\t // assigning into an array to define toString function on it\n\t var initProps = (_initProps = {\n\t key: title\n\t }, _initProps[_HelmetConstants.HELMET_ATTRIBUTE] = true, _initProps);\n\t var props = convertElementAttributestoReactProps(attributes, initProps);\n\t\n\t return [_react2.default.createElement(_HelmetConstants.TAG_NAMES.TITLE, props, title)];\n\t};\n\t\n\tvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n\t return tags.map(function (tag, i) {\n\t var _mappedTag;\n\t\n\t var mappedTag = (_mappedTag = {\n\t key: i\n\t }, _mappedTag[_HelmetConstants.HELMET_ATTRIBUTE] = true, _mappedTag);\n\t\n\t Object.keys(tag).forEach(function (attribute) {\n\t var mappedAttribute = _HelmetConstants.REACT_TAG_MAP[attribute] || attribute;\n\t\n\t if (mappedAttribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || mappedAttribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n\t var content = tag.innerHTML || tag.cssText;\n\t mappedTag.dangerouslySetInnerHTML = { __html: content };\n\t } else {\n\t mappedTag[mappedAttribute] = tag[attribute];\n\t }\n\t });\n\t\n\t return _react2.default.createElement(type, mappedTag);\n\t });\n\t};\n\t\n\tvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n\t switch (type) {\n\t case _HelmetConstants.TAG_NAMES.TITLE:\n\t return {\n\t toComponent: function toComponent() {\n\t return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n\t },\n\t toString: function toString() {\n\t return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n\t }\n\t };\n\t case _HelmetConstants.ATTRIBUTE_NAMES.BODY:\n\t case _HelmetConstants.ATTRIBUTE_NAMES.HTML:\n\t return {\n\t toComponent: function toComponent() {\n\t return convertElementAttributestoReactProps(tags);\n\t },\n\t toString: function toString() {\n\t return generateElementAttributesAsString(tags);\n\t }\n\t };\n\t default:\n\t return {\n\t toComponent: function toComponent() {\n\t return generateTagsAsReactComponent(type, tags);\n\t },\n\t toString: function toString() {\n\t return generateTagsAsString(type, tags, encode);\n\t }\n\t };\n\t }\n\t};\n\t\n\tvar mapStateOnServer = function mapStateOnServer(_ref) {\n\t var baseTag = _ref.baseTag,\n\t bodyAttributes = _ref.bodyAttributes,\n\t encode = _ref.encode,\n\t htmlAttributes = _ref.htmlAttributes,\n\t linkTags = _ref.linkTags,\n\t metaTags = _ref.metaTags,\n\t noscriptTags = _ref.noscriptTags,\n\t scriptTags = _ref.scriptTags,\n\t styleTags = _ref.styleTags,\n\t _ref$title = _ref.title,\n\t title = _ref$title === undefined ? \"\" : _ref$title,\n\t titleAttributes = _ref.titleAttributes;\n\t return {\n\t base: getMethodsForTag(_HelmetConstants.TAG_NAMES.BASE, baseTag, encode),\n\t bodyAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n\t htmlAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n\t link: getMethodsForTag(_HelmetConstants.TAG_NAMES.LINK, linkTags, encode),\n\t meta: getMethodsForTag(_HelmetConstants.TAG_NAMES.META, metaTags, encode),\n\t noscript: getMethodsForTag(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n\t script: getMethodsForTag(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags, encode),\n\t style: getMethodsForTag(_HelmetConstants.TAG_NAMES.STYLE, styleTags, encode),\n\t title: getMethodsForTag(_HelmetConstants.TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n\t };\n\t};\n\t\n\texports.convertReactPropstoHtmlAttributes = convertReactPropstoHtmlAttributes;\n\texports.handleClientStateChange = handleClientStateChange;\n\texports.mapStateOnServer = mapStateOnServer;\n\texports.reducePropsToState = reducePropsToState;\n\texports.requestAnimationFrame = requestAnimationFrame;\n\texports.warn = warn;\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n\n/***/ 164:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\t\n\tvar React = __webpack_require__(1);\n\tvar React__default = _interopDefault(React);\n\tvar ExecutionEnvironment = _interopDefault(__webpack_require__(144));\n\tvar shallowEqual = _interopDefault(__webpack_require__(167));\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n\t if (typeof reducePropsToState !== 'function') {\n\t throw new Error('Expected reducePropsToState to be a function.');\n\t }\n\t if (typeof handleStateChangeOnClient !== 'function') {\n\t throw new Error('Expected handleStateChangeOnClient to be a function.');\n\t }\n\t if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n\t throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n\t }\n\t\n\t function getDisplayName(WrappedComponent) {\n\t return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\t }\n\t\n\t return function wrap(WrappedComponent) {\n\t if (typeof WrappedComponent !== 'function') {\n\t throw new Error('Expected WrappedComponent to be a React component.');\n\t }\n\t\n\t var mountedInstances = [];\n\t var state = void 0;\n\t\n\t function emitChange() {\n\t state = reducePropsToState(mountedInstances.map(function (instance) {\n\t return instance.props;\n\t }));\n\t\n\t if (SideEffect.canUseDOM) {\n\t handleStateChangeOnClient(state);\n\t } else if (mapStateOnServer) {\n\t state = mapStateOnServer(state);\n\t }\n\t }\n\t\n\t var SideEffect = function (_Component) {\n\t _inherits(SideEffect, _Component);\n\t\n\t function SideEffect() {\n\t _classCallCheck(this, SideEffect);\n\t\n\t return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n\t }\n\t\n\t // Try to use displayName of wrapped component\n\t SideEffect.peek = function peek() {\n\t return state;\n\t };\n\t\n\t // Expose canUseDOM so tests can monkeypatch it\n\t\n\t\n\t SideEffect.rewind = function rewind() {\n\t if (SideEffect.canUseDOM) {\n\t throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n\t }\n\t\n\t var recordedState = state;\n\t state = undefined;\n\t mountedInstances = [];\n\t return recordedState;\n\t };\n\t\n\t SideEffect.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n\t return !shallowEqual(nextProps, this.props);\n\t };\n\t\n\t SideEffect.prototype.componentWillMount = function componentWillMount() {\n\t mountedInstances.push(this);\n\t emitChange();\n\t };\n\t\n\t SideEffect.prototype.componentDidUpdate = function componentDidUpdate() {\n\t emitChange();\n\t };\n\t\n\t SideEffect.prototype.componentWillUnmount = function componentWillUnmount() {\n\t var index = mountedInstances.indexOf(this);\n\t mountedInstances.splice(index, 1);\n\t emitChange();\n\t };\n\t\n\t SideEffect.prototype.render = function render() {\n\t return React__default.createElement(WrappedComponent, this.props);\n\t };\n\t\n\t return SideEffect;\n\t }(React.Component);\n\t\n\t SideEffect.displayName = 'SideEffect(' + getDisplayName(WrappedComponent) + ')';\n\t SideEffect.canUseDOM = ExecutionEnvironment.canUseDOM;\n\t\n\t\n\t return SideEffect;\n\t };\n\t}\n\t\n\tmodule.exports = withSideEffect;\n\n\n/***/ }),\n\n/***/ 167:\n/***/ (function(module, exports) {\n\n\t//\n\t\n\tmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n\t var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\t\n\t if (ret !== void 0) {\n\t return !!ret;\n\t }\n\t\n\t if (objA === objB) {\n\t return true;\n\t }\n\t\n\t if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n\t return false;\n\t }\n\t\n\t var keysA = Object.keys(objA);\n\t var keysB = Object.keys(objB);\n\t\n\t if (keysA.length !== keysB.length) {\n\t return false;\n\t }\n\t\n\t var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\t\n\t // Test for A's keys different from B.\n\t for (var idx = 0; idx < keysA.length; idx++) {\n\t var key = keysA[idx];\n\t\n\t if (!bHasOwnProperty(key)) {\n\t return false;\n\t }\n\t\n\t var valueA = objA[key];\n\t var valueB = objB[key];\n\t\n\t ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\t\n\t if (ret === false || (ret === void 0 && valueA !== valueB)) {\n\t return false;\n\t }\n\t }\n\t\n\t return true;\n\t};\n\n\n/***/ }),\n\n/***/ 1689:\n/***/ (function(module, exports) {\n\n\texports.endianness = function () { return 'LE' };\n\t\n\texports.hostname = function () {\n\t if (typeof location !== 'undefined') {\n\t return location.hostname\n\t }\n\t else return '';\n\t};\n\t\n\texports.loadavg = function () { return [] };\n\t\n\texports.uptime = function () { return 0 };\n\t\n\texports.freemem = function () {\n\t return Number.MAX_VALUE;\n\t};\n\t\n\texports.totalmem = function () {\n\t return Number.MAX_VALUE;\n\t};\n\t\n\texports.cpus = function () { return [] };\n\t\n\texports.type = function () { return 'Browser' };\n\t\n\texports.release = function () {\n\t if (typeof navigator !== 'undefined') {\n\t return navigator.appVersion;\n\t }\n\t return '';\n\t};\n\t\n\texports.networkInterfaces\n\t= exports.getNetworkInterfaces\n\t= function () { return {} };\n\t\n\texports.arch = function () { return 'javascript' };\n\t\n\texports.platform = function () { return 'browser' };\n\t\n\texports.tmpdir = exports.tmpDir = function () {\n\t return '/tmp';\n\t};\n\t\n\texports.EOL = '\\n';\n\n\n/***/ }),\n\n/***/ 641:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(2);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tvar _oupFullLogoBlueRgb = __webpack_require__(1687);\n\t\n\tvar _oupFullLogoBlueRgb2 = _interopRequireDefault(_oupFullLogoBlueRgb);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar OupHeader = function OupHeader(props) {\n\t return _react2.default.createElement(\n\t 'div',\n\t { className: 'oup-header ' + (props.isSticky ? 'oup-header--sticky' : '') },\n\t _react2.default.createElement('img', { className: 'oup-header--logo', src: _oupFullLogoBlueRgb2.default, alt: 'Oxford University Press' }),\n\t _react2.default.createElement(\n\t 'div',\n\t { className: 'oup-header--controls' },\n\t props.children\n\t )\n\t );\n\t};\n\t\n\tOupHeader.defaultProps = {\n\t children: undefined,\n\t isSticky: false\n\t};\n\t\n\tOupHeader.propTypes = {\n\t children: _propTypes2.default.node,\n\t isSticky: _propTypes2.default.bool\n\t};\n\t\n\texports.default = OupHeader;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1687:\n/***/ (function(module, exports) {\n\n\tmodule.exports = \"data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4OTkuMjggMzE2LjQ1IiB2aWV3Qm94PSIwIDAgODk5LjI4IDMxNi40NSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IGhlaWdodD0iMSIgcmVxdWlyZWRFeHRlbnNpb25zPSJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlSWxsdXN0cmF0b3IvMTAuMC8iIHdpZHRoPSIxIi8+PGcgZmlsbD0iIzAxMWU0MSI+PHBhdGggZD0ibTIxMy4yIDE2Ni42MmMtLjI2IDEuNjgtLjYgMy4zNC0xLjAxIDQuOTcgMTAuODMtNi45NCAyMi4zMS0xNi41MyAzMy4wOC0yOS41My0uNzUtNC4wNC0xLjc4LTcuOTktMy4wNy0xMS44Mi02Ljc4IDE0LjE0LTE3LjY0IDI2Ljc4LTI5IDM2LjM4eiIvPjxwYXRoIGQ9Im0yMTMuODQgMTU2Ljg4YzguODMtOS43NCAxNy4zOS0yMi4wNyAyNC4wNC0zNy4xNi0xLjg1LTMuNzctMy45Ni03LjM5LTYuMzEtMTAuODMtMi44NyAxNS42OC05Ljg5IDMwLjYyLTE4LjExIDQyLjY3LjIgMS43NS4zNCAzLjUyLjM4IDUuMzJ6Ii8+PHBhdGggZD0ibTI0Ni42NiAxNTQuMDdjLTcuMyAxMC4zMi0yMi42OCAyMC43My0zOC40NyAyOC4zMS0uNzQgMS40OS0xLjU2IDIuOTUtMi40MyA0LjM2IDExLjM4LTMuNTYgMjQuMjQtOS4zNyAzOC4xMS0xOC42Ny0xLjA3IDUuODItMi43MyAxMS4xNi00Ljg3IDE2LjAzLTE2LjA0IDcuMTItMjkuMzYgMTAuNy00MC42NCAxMi4wOC0xLjMgMS4zMy0yLjY4IDIuNi00LjExIDMuNzkgMTAuOTMuMTIgMjMuOS0xLjUzIDM5LjY5LTYuNDYtMy41MSA1LjQzLTcuNjggMTAuMTEtMTIuMjYgMTQuMS0xNC40MiAxLjA1LTI2LjI1LjI1LTM2LjE2LTEuNzEtMS41NC44NC0zLjEyIDEuNjEtNC43NCAyLjMgOC45MiAzLjU4IDE4LjkgNi4yIDMwLjE5IDcuMTItNC4yMiAyLjQ5LTguNiA0LjUxLTEzIDYuMS0xMC4zMi0yLjg5LTE5LjMtNi4yOC0yNy4wMy0xMC4xLTEuOTkuNDMtNC4wMi43NC02LjA5Ljk0IDYuNDEgNC4zOSAxMy44MiA4LjUgMjIuMzEgMTIuMjEtNC42Ljk1LTkuMTEgMS40My0xMy4zNSAxLjQ4LS45LjAxLTEuNzkgMC0yLjY5LS4wMi02LjItNC40NS0xMS43MS05LjAyLTE2LjUtMTMuNjMtMi41MS0uMjMtNC45OC0uNjItNy4zOC0xLjE4IDMuODkgNC41NyA4LjM4IDkuMTcgMTMuNDggMTMuNzQtNS4xOC0uOTQtMTAuMi0yLjQ2LTE0Ljk3LTQuNTEtMy4wMy00LjIyLTUuNjEtOC4zMi03LjgtMTIuMjktMi4zNC0xLjAyLTQuNi0yLjE5LTYuNzYtMy41MiAxLjYxIDMuNjEgMy41MSA3LjM1IDUuNzUgMTEuMjMtNC41OS0yLjgzLTguODQtNi4yMS0xMi42NC0xMC4wNy0yLjE0LTQuMDMtMy43My03LjYyLTQuODktMTAuOTEtOC44LTkuNjUtMTQuMTctMjIuNDktMTQuMTctMzYuNTggMC0zMCAyNC4zMi01NC4zMiA1NC4zMi01NC4zMiAyNC4zMiAwIDQ0LjkxIDE1Ljk5IDUxLjgzIDM4LjAyIDUuMzMtMTEuNjMgOS41Ni0yNi4xMSAxMC45Mi00NC40MS0yLjgxLTIuOTItNS44My01LjY0LTkuMDItOC4xNSAyLjI4IDE2Ljg3Ljc3IDMxLjMtMi44NSA0My41Mi0xLjY3LTMuNDMtMy42Ni02LjczLTUuOTItOS44Ny43NC0xMS41Mi0uMTUtMjUuMzktNC40Mi00Mi4yMi0zLjU3LTEuODgtNy4yOS0zLjUyLTExLjEzLTQuOSA2Ljc4IDEyLjY2IDEwLjMyIDI3Ljc4IDExLjMzIDQxLjgxLTIuNTUtMi45Mi01LjM0LTUuNjctOC4zNS04LjIxLTMuMjItMTAuODgtOC42OS0yMy4yNC0xNy41LTM3LjQyLTMuNzMtLjY0LTcuNTUtMS4wNS0xMS40My0xLjIgOS40NiAxMC4yMSAxNi42NCAyMS44MSAyMS42OCAzMy4xOC0zLjg2LTIuNTgtNy45Ny00Ljg0LTEyLjI3LTYuNzQtNS44OS04LjM5LTEzLjU1LTE3LjEtMjMuNTQtMjUuODYtMy43OC40Ni03LjQ4IDEuMTYtMTEuMDkgMi4wOSA4LjkyIDUuMzUgMTcuMTMgMTIuMzggMjQuMjEgMjAtNC41NS0xLjMtOS4yNS0yLjE5LTE0LjAzLTIuNjQtNi40Ny00Ljc5LTEzLjc2LTkuMzQtMjEuODktMTMuNDMtMy42OSAxLjU0LTcuMjYgMy4zMy0xMC42OCA1LjM0IDcuMDcuNzQgMTQuMSAzLjY5IDIxLjQzIDcuODktNC4yOS4yNC04LjUyLjg1LTEyLjYyIDEuODEtNS4yLTEuNzEtMTAuODQtMy4xNi0xNi45Ny00LjI1LTMuMzMgMi41MS02LjQ4IDUuMjUtOS40MiA4LjE5IDQuMDUtLjYyIDguODItLjc4IDE0LjA4LS4yNi04LjkgMy4yNi0xNy41MSA3LjgyLTI0LjgxIDEzLjM0LTkuMzMgMTMuOTEtMTQuNzcgMzAuNjYtMTQuNzcgNDguNjggMCA0OC4yOCAzOS4wNSA4Ny40MSA4Ny4yMiA4Ny40MSA0Ny43OCAwIDg3LjIyLTM4Ljc2IDg3LjIyLTg3LjQxLS4wMS0xLjM5LS4wNS0yLjc3LS4xMS00LjEzeiIvPjxwYXRoIGQ9Im00NTkuNjQgOTUuNjhoLTEyLjU2bC0yMC4yNSAyOC4zNS0yMC4yNC0yOC4zNWgtMTIuNTZsMjQuOTUgMzMuNjgtMjUuMiAzNC4wM2gxMi41NmwyMC40OS0yOC45MiAyMC40OSAyOC45MmgxMi41NmwtMjUuMi0zNC4wM3oiLz48cGF0aCBkPSJtNzE0LjQ3IDEzOS40YzguMjItMy40OCAxMy42NS0xMC40NyAxMy42NS0yMC44MSAwLTE0LjY3LTEwLjM4LTIyLjkxLTI3LjQyLTIyLjkxaC0yOS42MnY2Ny43MWgxMS4xN3YtMjEuNDRoMjAuM2M2LjM4IDYgMTEuNzYgMTMuNTIgMTUuNjUgMjEuNDRoMTMuNjVjLTQuMS04LjQ3LTExLjQ1LTE4LjI3LTE3LjM4LTIzLjk5em0tMzIuMjItMzMuNzloMTguMTFjOS45MyAwIDE2LjI1IDQuNTEgMTYuMjUgMTMuNDMgMCA5LjAzLTYuMjEgMTMuMi0xNS41NyAxMy4yaC0xOC43OXoiLz48cGF0aCBkPSJtNzkwLjk3IDk1LjY4aC0yNS4yOHY2Ny43MWgyNS4yOGMyMS44OSAwIDM2LTEzLjY2IDM2LTMzLjg2cy0xNC4xLTMzLjg1LTM2LTMzLjg1em0tLjc5IDU3Ljc4aC0xMy4zMnYtNDcuODVoMTMuMzJjMTQuNDUgMCAyNS4zOSA4LjU4IDI1LjM5IDIzLjkzIDAgMTUuMzQtMTAuOTQgMjMuOTItMjUuMzkgMjMuOTJ6Ii8+PHBhdGggZD0ibTMzMS4wNiA5NC4wNWMtMTkuNTYgMC0zNi4xNiAxNS44Ni0zNi4xNiAzNS40MnMxNi42IDM1LjQyIDM2LjE2IDM1LjQyIDM2LjE2LTE1Ljg2IDM2LjE2LTM1LjQyLTE2LjYtMzUuNDItMzYuMTYtMzUuNDJ6bTAgNjAuNjJjLTEzLjkgMC0yNS41Ny0xMS4zMS0yNS41Ny0yNS4yczExLjY3LTI1LjIgMjUuNTctMjUuMiAyNS41NyAxMS4zMSAyNS41NyAyNS4yLTExLjY3IDI1LjItMjUuNTcgMjUuMnoiLz48cGF0aCBkPSJtNjAyLjAzIDk0LjA1Yy0xOS41NiAwLTM2LjE2IDE1Ljg2LTM2LjE2IDM1LjQyczE2LjYgMzUuNDIgMzYuMTYgMzUuNDIgMzYuMTYtMTUuODYgMzYuMTYtMzUuNDItMTYuNi0zNS40Mi0zNi4xNi0zNS40MnptMCA2MC42MmMtMTMuOSAwLTI1LjU3LTExLjMxLTI1LjU3LTI1LjJzMTEuNjctMjUuMiAyNS41Ny0yNS4yIDI1LjU3IDExLjMxIDI1LjU3IDI1LjItMTEuNjcgMjUuMi0yNS41NyAyNS4yeiIvPjxwYXRoIGQ9Im00ODkuOTQgMTYzLjM5aDExLjE3di0yNC4zOGgzMi42MWMyLjAzLTMuMDIgMy41NC02LjEyIDQuNzYtOS43MWgtMzcuMzd2LTIzLjY5aDQxLjM3di05LjkzaC01Mi41NXY2Ny43MXoiLz48cGF0aCBkPSJtNzE0LjQgMjAxLjYxYzAtNi4yLTQuNDQtOS41OS0xMS42OC05LjU5aC0xMi41OXYyOC42Mmg0Ljc4di05LjAxaDguNWMyLjY3IDIuNTMgNC45NCA1LjY4IDYuNTcgOS4wMWg1Ljg1Yy0xLjcyLTMuNTUtNC43OS03LjY1LTcuMjgtMTAuMDggMy42NC0xLjQ4IDUuODUtNC41IDUuODUtOC45NXptLTExLjg2IDUuODdoLTcuNjJ2LTExLjI3aDcuNjJjNC4yNSAwIDcgMS44MiA3IDUuNTgtLjAxIDQuMDYtMi43MSA1LjY5LTcgNS42OXoiLz48cGF0aCBkPSJtMzIyLjE4IDIwOC41MmMwIDQuNjMtMi41MSA4LjI1LTcuNzcgOC4yNXMtNy44Ni0zLjYzLTcuODYtOC4yNXYtMTYuNTFoLTQuNzh2MTYuNTFjMCA3LjQ0IDQuNzggMTIuNzggMTIuNjQgMTIuNzggNy45NiAwIDEyLjU0LTUuMzQgMTIuNTQtMTIuNzh2LTE2LjUxaC00Ljc4djE2LjUxeiIvPjxwYXRoIGQ9Im03NjguNzkgMTk5LjE3YzAtMi4wMiAxLjgzLTMuNDUgNS40OS0zLjQ1IDIuMTcgMCA1LjA5LjY5IDguMiAyLjU3bDIuNDctMy44OWMtMi42Ni0xLjc2LTYuNjEtMy4wNC0xMC41Ny0zLjA0LTYuMjIgMC0xMC43MSAyLjg0LTEwLjcxIDguMDcgMCAxMC43NCAxNy4wMyA3LjAxIDE3LjAzIDEzLjQ2IDAgMi4yMS0yLjM1IDQuMDMtNS42MSA0LjAzLTIuOTggMC02LjcxLTEuMS05LjU3LTMuOGwtMi42NCAzLjczYzIuODYgMi43IDcuNzYgNC40MyAxMi4xNCA0LjQzIDYuMTMgMCAxMC45NS0zLjUyIDEwLjk1LTguNjMuMDQtMTAuMjItMTcuMTgtNy4xMy0xNy4xOC0xMy40OHoiLz48cGF0aCBkPSJtNTE3LjA2IDE5OS4xN2MwLTIuMDIgMS44My0zLjQ1IDUuNDktMy40NSAyLjE3IDAgNS4wOS42OSA4LjIgMi41N2wyLjQ3LTMuODljLTIuNjYtMS43Ni02LjYxLTMuMDQtMTAuNTctMy4wNC02LjIyIDAtMTAuNzEgMi44NC0xMC43MSA4LjA3IDAgMTAuNzQgMTcuMDMgNy4wMSAxNy4wMyAxMy40NiAwIDIuMjEtMi4zNSA0LjAzLTUuNjEgNC4wMy0yLjk4IDAtNi43MS0xLjEtOS41Ny0zLjhsLTIuNjQgMy43M2MyLjg2IDIuNyA3Ljc2IDQuNDMgMTIuMTQgNC40MyA2LjEzIDAgMTAuOTUtMy41MiAxMC45NS04LjYzLjA0LTEwLjIyLTE3LjE4LTcuMTMtMTcuMTgtMTMuNDh6Ii8+PHBhdGggZD0ibTgwMi45MyAxOTkuMTdjMC0yLjAyIDEuODMtMy40NSA1LjQ5LTMuNDUgMi4xNyAwIDUuMDkuNjkgOC4yIDIuNTdsMi40Ny0zLjg5Yy0yLjY2LTEuNzYtNi42MS0zLjA0LTEwLjU3LTMuMDQtNi4yMiAwLTEwLjcxIDIuODQtMTAuNzEgOC4wNyAwIDEwLjc0IDE3LjAzIDcuMDEgMTcuMDMgMTMuNDYgMCAyLjIxLTIuMzUgNC4wMy01LjYxIDQuMDMtMi45OCAwLTYuNzEtMS4xLTkuNTctMy44bC0yLjY0IDMuNzNjMi44NiAyLjcgNy43NiA0LjQzIDEyLjE0IDQuNDMgNi4xMyAwIDEwLjk1LTMuNTIgMTAuOTUtOC42My4wNC0xMC4yMi0xNy4xOC03LjEzLTE3LjE4LTEzLjQ4eiIvPjxwYXRoIGQ9Im0zNjEuMTcgMjEyLjU2LTE3LjI2LTIwLjU1aC00LjAydjI4LjYzaDQuNzh2LTIwLjg0bDE3LjI2IDIwLjg0aDQuMDF2LTI4LjYzaC00Ljc3eiIvPjxwYXRoIGQ9Im0zODAuODggMTkyLjAxaDQuNzh2MjguNjJoLTQuNzh6Ii8+PHBhdGggZD0ibTU0OC4yNCAxOTIuMDFoNC43OHYyOC42MmgtNC43OHoiLz48cGF0aCBkPSJtNTY1LjI4IDE5Ni4yMWg5Ljc0djI0LjQzaDQuNzh2LTI0LjQzaDkuNzV2LTQuMmgtMjQuMjd6Ii8+PHBhdGggZD0ibTQ5OC45NyAyMDEuNjFjMC02LjItNC40NC05LjU5LTExLjY4LTkuNTloLTEyLjU5djI4LjYyaDQuNzh2LTkuMDFoOC41YzIuNjcgMi41MyA0LjkzIDUuNjggNi41NyA5LjAxaDUuODVjLTEuNzItMy41NS00Ljc5LTcuNjUtNy4yOC0xMC4wOCAzLjYzLTEuNDggNS44NS00LjUgNS44NS04Ljk1em0tMTEuODcgNS44N2gtNy42MnYtMTEuMjdoNy42MmM0LjI1IDAgNyAxLjgyIDcgNS41OC0uMDEgNC4wNi0yLjcxIDUuNjktNyA1LjY5eiIvPjxwYXRoIGQ9Im02MTIuNzggMjA1LjMzYy0yLjE5LTMuMDYtNS4zMS04LjQzLTcuODQtMTMuMzFoLTUuNTVjMy43NCA3LjEyIDcuOTggMTMuODYgMTEgMTguMTZ2MTAuNDZoNC43OHYtMTAuNDZjMy4wMi00LjMgNy4yNS0xMS4wNCAxMS0xOC4xNmgtNS41NWMtMi41MyA0Ljg4LTUuNjUgMTAuMjUtNy44NCAxMy4zMXoiLz48cGF0aCBkPSJtNDEyLjQ1IDIxNS4yOGMtNC4wMy04LjI0LTYuMzQtMTMuODUtOS4yLTIzLjI2aC01LjJjMy42IDExLjYyIDcuMzQgMjAuNDcgMTEuNzggMjguNjJoNC45NWM0LjQ0LTguMTUgOC4xOC0xNyAxMS43OC0yOC42MmgtNC45MWMtMi44NiA5LjQxLTUuMTcgMTUuMDEtOS4yIDIzLjI2eiIvPjxwYXRoIGQ9Im00MzguOTYgMjIwLjY0aDIxLjk1di00LjJoLTE3LjE4di04LjE1aDEzLjU0Yy44NC0xLjI3IDEuNDYtMi41NSAxLjk1LTQuMDFoLTE1LjQ5di04LjA3aDE3LjE4di00LjJoLTIxLjk1eiIvPjxwYXRoIGQ9Im03MjguNzYgMjIwLjY0aDIxLjk1di00LjJoLTE3LjE4di04LjE1aDEzLjU0Yy44NC0xLjI3IDEuNDYtMi41NSAxLjk1LTQuMDFoLTE1LjQ5di04LjA3aDE3LjE4di00LjJoLTIxLjk1eiIvPjxwYXRoIGQ9Im02NjUuMjQgMTkyLjAxaC0xMi41OXYyOC42Mmg0Ljc4di0yNC40Mmg3LjYyYzQuMjUgMCA3IDEuOTEgNyA1LjY4IDAgNC4wNi0yLjcgNS43Ny03IDUuNzdoLTQuMzJsLTEuODQgNC4xNWg2LjA3YzcuMTQgMCAxMS45Ny0zLjUzIDExLjk3LTEwLjExLS4wMS02LjItNC40NS05LjY5LTExLjY5LTkuNjl6Ii8+PC9nPjwvc3dpdGNoPjwvc3ZnPg==\"\n\n/***/ }),\n\n/***/ 649:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.query = undefined;\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(2);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tvar _reactHelmet = __webpack_require__(162);\n\t\n\tvar _reactHelmet2 = _interopRequireDefault(_reactHelmet);\n\t\n\tvar _gatsbyLink = __webpack_require__(104);\n\t\n\tvar _detectBrowser = __webpack_require__(909);\n\t\n\tvar _OupHeader = __webpack_require__(641);\n\t\n\tvar _OupHeader2 = _interopRequireDefault(_OupHeader);\n\t\n\t__webpack_require__(1475);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar browser = (0, _detectBrowser.detect)();\n\t\n\t// import createTitle from '../components/createTitle/createTitle';\n\t\n\tvar TemplateWrapper = function TemplateWrapper(_ref) {\n\t var children = _ref.children,\n\t siteMetadata = _ref.data.site.siteMetadata,\n\t pathname = _ref.location.pathname;\n\t\n\t var langKeyPath = siteMetadata.languages.langs.map(function (lang) {\n\t return '' + (0, _gatsbyLink.withPrefix)('/') + lang.slug + '/';\n\t });\n\t var isHomepage = pathname === (0, _gatsbyLink.withPrefix)('/') || langKeyPath.some(function (key) {\n\t return key === pathname;\n\t });\n\t // Check if the user is on IE11 or Edge12-15.\n\t // If so we will add a class to .app and serve some different styles.\n\t // This is because MS messed up Grid implementation.\n\t // It is all nice and fixed in Edge 16.\n\t // Annoyingly we can't feature detect on this.\n\t // That's because technically these browsers _do_ support grid - just badly.\n\t var oldIE = function oldIE() {\n\t return browser && (browser.name === 'edge' || browser.name === 'ie') && parseInt(browser.version, 10) < 16;\n\t };\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t { className: 'app' },\n\t _react2.default.createElement(\n\t _reactHelmet2.default,\n\t {\n\t title: siteMetadata.title + ' help documents',\n\t meta: [{ name: 'description', content: 'Sample' }, { name: 'keywords', content: 'sample, something' }]\n\t },\n\t _react2.default.createElement('html', { className: '' + (oldIE() ? 'oldIE' : 'modern') })\n\t ),\n\t children()\n\t );\n\t};\n\t\n\tTemplateWrapper.propTypes = {\n\t children: _propTypes2.default.func,\n\t data: _propTypes2.default.shape({\n\t site: _propTypes2.default.shape({\n\t siteMetadata: _propTypes2.default.shape({\n\t title: _propTypes2.default.string.isRequired\n\t }).isRequired\n\t }).isRequired\n\t }).isRequired,\n\t location: _propTypes2.default.shape({\n\t pathname: _propTypes2.default.string.isRequired\n\t }).isRequired\n\t}; // location has other values but they aren't used, so haven't added to PropTypes\n\t\n\texports.default = TemplateWrapper;\n\tvar query = exports.query = '** extracted graphql fragment **';\n\n/***/ }),\n\n/***/ 1475:\n/***/ (function(module, exports) {\n\n\t// empty (null-loader)\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// component---src-layouts-index-js-a284df548dadcd0fe3b8.js","module.exports = {\"data\":{\"site\":{\"siteMetadata\":{\"title\":\"Online Practice\",\"languages\":{\"langs\":[{\"slug\":\"ar\",\"title\":\"العربية\"},{\"slug\":\"zh-Hans\",\"title\":\"简体中文\"},{\"slug\":\"zh-Hant\",\"title\":\"正體中文\"},{\"slug\":\"hr\",\"title\":\"Hrvatski\"},{\"slug\":\"cs\",\"title\":\"česky\"},{\"slug\":\"en\",\"title\":\"English\"},{\"slug\":\"fr\",\"title\":\"Français\"},{\"slug\":\"de\",\"title\":\"Deutsch\"},{\"slug\":\"hu\",\"title\":\"Magyar\"},{\"slug\":\"id\",\"title\":\"Bahasa Indonesia\"},{\"slug\":\"it\",\"title\":\"Italiano\"},{\"slug\":\"ja\",\"title\":\"日本語\"},{\"slug\":\"ko\",\"title\":\"한국어\"},{\"slug\":\"pl\",\"title\":\"Polski\"},{\"slug\":\"pt-BR\",\"title\":\"Português (BR)\"},{\"slug\":\"ru\",\"title\":\"русский\"},{\"slug\":\"sk\",\"title\":\"Slovenčina\"},{\"slug\":\"sl\",\"title\":\"Slovenščina\"},{\"slug\":\"es\",\"title\":\"Español (España)\"},{\"slug\":\"es-419\",\"title\":\"Español (América Latina)\"},{\"slug\":\"th\",\"title\":\"ภาษาไทย\"},{\"slug\":\"tr\",\"title\":\"Türkçe\"},{\"slug\":\"vi\",\"title\":\"Tiếng Việt\"}]}}},\"sitePage\":{\"path\":\"/dev-404-page/\"}},\"layoutContext\":{}}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/json-loader!./.cache/json/layout-index.json\n// module id = 288\n// module chunks = 60335399758886 114276838955818","\n import React from \"react\"\n import Component from \"/Users/riddifog/Git/GitHub-OUP/ELT-online-practice-help-docs-v2/src/layouts/index.js\"\n import data from \"/Users/riddifog/Git/GitHub-OUP/ELT-online-practice-help-docs-v2/.cache/json/layout-index.json\"\n\n export default (props) => \n \n\n\n// WEBPACK FOOTER //\n// ./.cache/layouts/index.js","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/deep-equal/index.js\n// module id = 141\n// module chunks = 4240319048455 114276838955818 162898551421021","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/deep-equal/lib/is_arguments.js\n// module id = 142\n// module chunks = 4240319048455 114276838955818 162898551421021","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/deep-equal/lib/keys.js\n// module id = 143\n// module chunks = 4240319048455 114276838955818 162898551421021","function detect() {\n var nodeVersion = getNodeVersion();\n if (nodeVersion) {\n return nodeVersion;\n } else if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n\n return null;\n}\n\nfunction detectOS(userAgentString) {\n var rules = getOperatingSystemRules();\n var detected = rules.filter(function (os) {\n return os.rule && os.rule.test(userAgentString);\n })[0];\n\n return detected ? detected.name : null;\n}\n\nfunction getNodeVersion() {\n var isNode = typeof navigator === 'undefined' && typeof process !== 'undefined';\n return isNode ? {\n name: 'node',\n version: process.version.slice(1),\n os: require('os').type().toLowerCase()\n } : null;\n}\n\nfunction parseUserAgent(userAgentString) {\n var browsers = getBrowserRules();\n if (!userAgentString) {\n return null;\n }\n\n var detected = browsers.map(function(browser) {\n var match = browser.rule.exec(userAgentString);\n var version = match && match[1].split(/[._]/).slice(0,3);\n\n if (version && version.length < 3) {\n version = version.concat(version.length == 1 ? [0, 0] : [0]);\n }\n\n return match && {\n name: browser.name,\n version: version.join('.')\n };\n }).filter(Boolean)[0] || null;\n\n if (detected) {\n detected.os = detectOS(userAgentString);\n }\n\n if (/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/i.test(userAgentString)) {\n detected = detected || {};\n detected.bot = true;\n }\n \n return detected;\n}\n\nfunction getBrowserRules() {\n return buildRules([\n [ 'aol', /AOLShield\\/([0-9\\._]+)/ ],\n [ 'edge', /Edge\\/([0-9\\._]+)/ ],\n [ 'yandexbrowser', /YaBrowser\\/([0-9\\._]+)/ ],\n [ 'vivaldi', /Vivaldi\\/([0-9\\.]+)/ ],\n [ 'kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/ ],\n [ 'samsung', /SamsungBrowser\\/([0-9\\.]+)/ ],\n [ 'chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/ ],\n [ 'phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/ ],\n [ 'crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/ ],\n [ 'firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/ ],\n [ 'fxios', /FxiOS\\/([0-9\\.]+)/ ],\n [ 'opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/ ],\n [ 'opera', /OPR\\/([0-9\\.]+)(:?\\s|$)$/ ],\n [ 'ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/ ],\n [ 'ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/ ],\n [ 'ie', /MSIE\\s(7\\.0)/ ],\n [ 'bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/ ],\n [ 'android', /Android\\s([0-9\\.]+)/ ],\n [ 'ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/ ],\n [ 'safari', /Version\\/([0-9\\._]+).*Safari/ ],\n [ 'facebook', /FBAV\\/([0-9\\.]+)/],\n [ 'instagram', /Instagram\\ ([0-9\\.]+)/]\n ]);\n}\n\nfunction getOperatingSystemRules() {\n return buildRules([\n [ 'iOS', /iP(hone|od|ad)/ ],\n [ 'Android OS', /Android/ ],\n [ 'BlackBerry OS', /BlackBerry|BB10/ ],\n [ 'Windows Mobile', /IEMobile/ ],\n [ 'Amazon OS', /Kindle/ ],\n [ 'Windows 3.11', /Win16/ ],\n [ 'Windows 95', /(Windows 95)|(Win95)|(Windows_95)/ ],\n [ 'Windows 98', /(Windows 98)|(Win98)/ ],\n [ 'Windows 2000', /(Windows NT 5.0)|(Windows 2000)/ ],\n [ 'Windows XP', /(Windows NT 5.1)|(Windows XP)/ ],\n [ 'Windows Server 2003', /(Windows NT 5.2)/ ],\n [ 'Windows Vista', /(Windows NT 6.0)/ ],\n [ 'Windows 7', /(Windows NT 6.1)/ ],\n [ 'Windows 8', /(Windows NT 6.2)/ ],\n [ 'Windows 8.1', /(Windows NT 6.3)/ ],\n [ 'Windows 10', /(Windows NT 10.0)/ ],\n [ 'Windows ME', /Windows ME/ ],\n [ 'Open BSD', /OpenBSD/ ],\n [ 'Sun OS', /SunOS/ ],\n [ 'Linux', /(Linux)|(X11)/ ],\n [ 'Mac OS', /(Mac_PowerPC)|(Macintosh)/ ],\n [ 'QNX', /QNX/ ],\n [ 'BeOS', /BeOS/ ],\n [ 'OS/2', /OS\\/2/ ],\n [ 'Search Bot', /(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves\\/Teoma)|(ia_archiver)/ ]\n ]);\n}\n\nfunction buildRules(ruleTuples) {\n return ruleTuples.map(function(tuple) {\n return {\n name: tuple[0],\n rule: tuple[1]\n };\n });\n}\n\nmodule.exports = {\n detect: detect,\n detectOS: detectOS,\n getNodeVersion: getNodeVersion,\n parseUserAgent: parseUserAgent\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/detect-browser/index.js\n// module id = 909\n// module chunks = 114276838955818","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/exenv/index.js\n// module id = 144\n// module chunks = 4240319048455 114276838955818 162898551421021","exports.__esModule = true;\nexports.Helmet = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactSideEffect = require(\"react-side-effect\");\n\nvar _reactSideEffect2 = _interopRequireDefault(_reactSideEffect);\n\nvar _deepEqual = require(\"deep-equal\");\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _HelmetUtils = require(\"./HelmetUtils.js\");\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n _inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n _classCallCheck(this, HelmetWrapper);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !(0, _deepEqual2.default)(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case _HelmetConstants.TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _extends2;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_extends2 = {}, _extends2[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _extends2));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _extends3, _extends4;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return _extends({}, newProps, (_extends3 = {}, _extends3[child.type] = nestedChildren, _extends3.titleAttributes = _extends({}, newChildProps), _extends3));\n\n case _HelmetConstants.TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case _HelmetConstants.TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_extends4 = {}, _extends4[child.type] = _extends({}, newChildProps), _extends4));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _extends5;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_extends5 = {}, _extends5[arrayChildName] = arrayTypeChildren[arrayChildName], _extends5));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!_HelmetConstants.VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return (0, _HelmetUtils.warn)(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return (0, _HelmetUtils.warn)(\"Only elements types \" + _HelmetConstants.VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n _react2.default.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = _objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = (0, _HelmetUtils.convertReactPropstoHtmlAttributes)(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.LINK:\n case _HelmetConstants.TAG_NAMES.META:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = _objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return _react2.default.createElement(Component, newProps);\n };\n\n _createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n\n return HelmetWrapper;\n }(_react2.default.Component), _class.propTypes = {\n base: _propTypes2.default.object,\n bodyAttributes: _propTypes2.default.object,\n children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.node), _propTypes2.default.node]),\n defaultTitle: _propTypes2.default.string,\n defer: _propTypes2.default.bool,\n encodeSpecialCharacters: _propTypes2.default.bool,\n htmlAttributes: _propTypes2.default.object,\n link: _propTypes2.default.arrayOf(_propTypes2.default.object),\n meta: _propTypes2.default.arrayOf(_propTypes2.default.object),\n noscript: _propTypes2.default.arrayOf(_propTypes2.default.object),\n onChangeClientState: _propTypes2.default.func,\n script: _propTypes2.default.arrayOf(_propTypes2.default.object),\n style: _propTypes2.default.arrayOf(_propTypes2.default.object),\n title: _propTypes2.default.string,\n titleAttributes: _propTypes2.default.object,\n titleTemplate: _propTypes2.default.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = (0, _HelmetUtils.mapStateOnServer)({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = (0, _reactSideEffect2.default)(_HelmetUtils.reducePropsToState, _HelmetUtils.handleClientStateChange, _HelmetUtils.mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexports.Helmet = HelmetExport;\nexports.default = HelmetExport;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-helmet/lib/Helmet.js\n// module id = 162\n// module chunks = 4240319048455 114276838955818 162898551421021","exports.__esModule = true;\nvar ATTRIBUTE_NAMES = exports.ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = exports.TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = exports.VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = exports.TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\"\n};\n\nvar REACT_TAG_MAP = exports.REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = exports.HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = exports.HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = exports.SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = exports.HELMET_ATTRIBUTE = \"data-react-helmet\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-helmet/lib/HelmetConstants.js\n// module id = 88\n// module chunks = 4240319048455 114276838955818 162898551421021","exports.__esModule = true;\nexports.warn = exports.requestAnimationFrame = exports.reducePropsToState = exports.mapStateOnServer = exports.handleClientStateChange = exports.convertReactPropstoHtmlAttributes = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _objectAssign = require(\"object-assign\");\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, _HelmetConstants.TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[_HelmetConstants.TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[_HelmetConstants.TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attributeKey === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT || attributeKey === _HelmetConstants.TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = (0, _objectAssign2.default)({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([_HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n bodyAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.LINK, [_HelmetConstants.TAG_PROPERTIES.REL, _HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.META, [_HelmetConstants.TAG_PROPERTIES.NAME, _HelmetConstants.TAG_PROPERTIES.CHARSET, _HelmetConstants.TAG_PROPERTIES.HTTPEQUIV, _HelmetConstants.TAG_PROPERTIES.PROPERTY, _HelmetConstants.TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.NOSCRIPT, [_HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.SCRIPT, [_HelmetConstants.TAG_PROPERTIES.SRC, _HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.STYLE, [_HelmetConstants.TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(_HelmetConstants.TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(_HelmetConstants.TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(_HelmetConstants.TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(_HelmetConstants.TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(_HelmetConstants.TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(_HelmetConstants.TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(_HelmetConstants.TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(_HelmetConstants.TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + _HelmetConstants.HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = _HelmetConstants.SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[_HelmetConstants.REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[_HelmetConstants.HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[_HelmetConstants.HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [_react2.default.createElement(_HelmetConstants.TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[_HelmetConstants.HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = _HelmetConstants.REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || mappedAttribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return _react2.default.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case _HelmetConstants.ATTRIBUTE_NAMES.BODY:\n case _HelmetConstants.ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(_HelmetConstants.TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(_HelmetConstants.TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(_HelmetConstants.TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(_HelmetConstants.TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(_HelmetConstants.TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nexports.convertReactPropstoHtmlAttributes = convertReactPropstoHtmlAttributes;\nexports.handleClientStateChange = handleClientStateChange;\nexports.mapStateOnServer = mapStateOnServer;\nexports.reducePropsToState = reducePropsToState;\nexports.requestAnimationFrame = requestAnimationFrame;\nexports.warn = warn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-helmet/lib/HelmetUtils.js\n// module id = 163\n// module chunks = 4240319048455 114276838955818 162898551421021","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar ExecutionEnvironment = _interopDefault(require('exenv'));\nvar shallowEqual = _interopDefault(require('shallowequal'));\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state = void 0;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = function (_Component) {\n _inherits(SideEffect, _Component);\n\n function SideEffect() {\n _classCallCheck(this, SideEffect);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n // Try to use displayName of wrapped component\n SideEffect.peek = function peek() {\n return state;\n };\n\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n SideEffect.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n };\n\n SideEffect.prototype.componentWillMount = function componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n SideEffect.prototype.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n SideEffect.prototype.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n SideEffect.prototype.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.Component);\n\n SideEffect.displayName = 'SideEffect(' + getDisplayName(WrappedComponent) + ')';\n SideEffect.canUseDOM = ExecutionEnvironment.canUseDOM;\n\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-side-effect/lib/index.js\n// module id = 164\n// module chunks = 4240319048455 114276838955818 162898551421021","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/shallowequal/index.js\n// module id = 167\n// module chunks = 4240319048455 114276838955818 162898551421021","exports.endianness = function () { return 'LE' };\n\nexports.hostname = function () {\n if (typeof location !== 'undefined') {\n return location.hostname\n }\n else return '';\n};\n\nexports.loadavg = function () { return [] };\n\nexports.uptime = function () { return 0 };\n\nexports.freemem = function () {\n return Number.MAX_VALUE;\n};\n\nexports.totalmem = function () {\n return Number.MAX_VALUE;\n};\n\nexports.cpus = function () { return [] };\n\nexports.type = function () { return 'Browser' };\n\nexports.release = function () {\n if (typeof navigator !== 'undefined') {\n return navigator.appVersion;\n }\n return '';\n};\n\nexports.networkInterfaces\n= exports.getNetworkInterfaces\n= function () { return {} };\n\nexports.arch = function () { return 'javascript' };\n\nexports.platform = function () { return 'browser' };\n\nexports.tmpdir = exports.tmpDir = function () {\n return '/tmp';\n};\n\nexports.EOL = '\\n';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/~/os-browserify/browser.js\n// module id = 1689\n// module chunks = 114276838955818","import React from 'react';\nimport PropTypes from 'prop-types';\nimport logo from '../../images/oup-full-logo-blue-rgb.svg';\n\nconst OupHeader = props => (\n
\n \"Oxford\n
{props.children}
\n
\n);\n\nOupHeader.defaultProps = {\n children: undefined,\n isSticky: false,\n};\n\nOupHeader.propTypes = {\n children: PropTypes.node,\n isSticky: PropTypes.bool,\n};\n\nexport default OupHeader;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/OupHeader/OupHeader.js","module.exports = \"data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4OTkuMjggMzE2LjQ1IiB2aWV3Qm94PSIwIDAgODk5LjI4IDMxNi40NSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IGhlaWdodD0iMSIgcmVxdWlyZWRFeHRlbnNpb25zPSJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlSWxsdXN0cmF0b3IvMTAuMC8iIHdpZHRoPSIxIi8+PGcgZmlsbD0iIzAxMWU0MSI+PHBhdGggZD0ibTIxMy4yIDE2Ni42MmMtLjI2IDEuNjgtLjYgMy4zNC0xLjAxIDQuOTcgMTAuODMtNi45NCAyMi4zMS0xNi41MyAzMy4wOC0yOS41My0uNzUtNC4wNC0xLjc4LTcuOTktMy4wNy0xMS44Mi02Ljc4IDE0LjE0LTE3LjY0IDI2Ljc4LTI5IDM2LjM4eiIvPjxwYXRoIGQ9Im0yMTMuODQgMTU2Ljg4YzguODMtOS43NCAxNy4zOS0yMi4wNyAyNC4wNC0zNy4xNi0xLjg1LTMuNzctMy45Ni03LjM5LTYuMzEtMTAuODMtMi44NyAxNS42OC05Ljg5IDMwLjYyLTE4LjExIDQyLjY3LjIgMS43NS4zNCAzLjUyLjM4IDUuMzJ6Ii8+PHBhdGggZD0ibTI0Ni42NiAxNTQuMDdjLTcuMyAxMC4zMi0yMi42OCAyMC43My0zOC40NyAyOC4zMS0uNzQgMS40OS0xLjU2IDIuOTUtMi40MyA0LjM2IDExLjM4LTMuNTYgMjQuMjQtOS4zNyAzOC4xMS0xOC42Ny0xLjA3IDUuODItMi43MyAxMS4xNi00Ljg3IDE2LjAzLTE2LjA0IDcuMTItMjkuMzYgMTAuNy00MC42NCAxMi4wOC0xLjMgMS4zMy0yLjY4IDIuNi00LjExIDMuNzkgMTAuOTMuMTIgMjMuOS0xLjUzIDM5LjY5LTYuNDYtMy41MSA1LjQzLTcuNjggMTAuMTEtMTIuMjYgMTQuMS0xNC40MiAxLjA1LTI2LjI1LjI1LTM2LjE2LTEuNzEtMS41NC44NC0zLjEyIDEuNjEtNC43NCAyLjMgOC45MiAzLjU4IDE4LjkgNi4yIDMwLjE5IDcuMTItNC4yMiAyLjQ5LTguNiA0LjUxLTEzIDYuMS0xMC4zMi0yLjg5LTE5LjMtNi4yOC0yNy4wMy0xMC4xLTEuOTkuNDMtNC4wMi43NC02LjA5Ljk0IDYuNDEgNC4zOSAxMy44MiA4LjUgMjIuMzEgMTIuMjEtNC42Ljk1LTkuMTEgMS40My0xMy4zNSAxLjQ4LS45LjAxLTEuNzkgMC0yLjY5LS4wMi02LjItNC40NS0xMS43MS05LjAyLTE2LjUtMTMuNjMtMi41MS0uMjMtNC45OC0uNjItNy4zOC0xLjE4IDMuODkgNC41NyA4LjM4IDkuMTcgMTMuNDggMTMuNzQtNS4xOC0uOTQtMTAuMi0yLjQ2LTE0Ljk3LTQuNTEtMy4wMy00LjIyLTUuNjEtOC4zMi03LjgtMTIuMjktMi4zNC0xLjAyLTQuNi0yLjE5LTYuNzYtMy41MiAxLjYxIDMuNjEgMy41MSA3LjM1IDUuNzUgMTEuMjMtNC41OS0yLjgzLTguODQtNi4yMS0xMi42NC0xMC4wNy0yLjE0LTQuMDMtMy43My03LjYyLTQuODktMTAuOTEtOC44LTkuNjUtMTQuMTctMjIuNDktMTQuMTctMzYuNTggMC0zMCAyNC4zMi01NC4zMiA1NC4zMi01NC4zMiAyNC4zMiAwIDQ0LjkxIDE1Ljk5IDUxLjgzIDM4LjAyIDUuMzMtMTEuNjMgOS41Ni0yNi4xMSAxMC45Mi00NC40MS0yLjgxLTIuOTItNS44My01LjY0LTkuMDItOC4xNSAyLjI4IDE2Ljg3Ljc3IDMxLjMtMi44NSA0My41Mi0xLjY3LTMuNDMtMy42Ni02LjczLTUuOTItOS44Ny43NC0xMS41Mi0uMTUtMjUuMzktNC40Mi00Mi4yMi0zLjU3LTEuODgtNy4yOS0zLjUyLTExLjEzLTQuOSA2Ljc4IDEyLjY2IDEwLjMyIDI3Ljc4IDExLjMzIDQxLjgxLTIuNTUtMi45Mi01LjM0LTUuNjctOC4zNS04LjIxLTMuMjItMTAuODgtOC42OS0yMy4yNC0xNy41LTM3LjQyLTMuNzMtLjY0LTcuNTUtMS4wNS0xMS40My0xLjIgOS40NiAxMC4yMSAxNi42NCAyMS44MSAyMS42OCAzMy4xOC0zLjg2LTIuNTgtNy45Ny00Ljg0LTEyLjI3LTYuNzQtNS44OS04LjM5LTEzLjU1LTE3LjEtMjMuNTQtMjUuODYtMy43OC40Ni03LjQ4IDEuMTYtMTEuMDkgMi4wOSA4LjkyIDUuMzUgMTcuMTMgMTIuMzggMjQuMjEgMjAtNC41NS0xLjMtOS4yNS0yLjE5LTE0LjAzLTIuNjQtNi40Ny00Ljc5LTEzLjc2LTkuMzQtMjEuODktMTMuNDMtMy42OSAxLjU0LTcuMjYgMy4zMy0xMC42OCA1LjM0IDcuMDcuNzQgMTQuMSAzLjY5IDIxLjQzIDcuODktNC4yOS4yNC04LjUyLjg1LTEyLjYyIDEuODEtNS4yLTEuNzEtMTAuODQtMy4xNi0xNi45Ny00LjI1LTMuMzMgMi41MS02LjQ4IDUuMjUtOS40MiA4LjE5IDQuMDUtLjYyIDguODItLjc4IDE0LjA4LS4yNi04LjkgMy4yNi0xNy41MSA3LjgyLTI0LjgxIDEzLjM0LTkuMzMgMTMuOTEtMTQuNzcgMzAuNjYtMTQuNzcgNDguNjggMCA0OC4yOCAzOS4wNSA4Ny40MSA4Ny4yMiA4Ny40MSA0Ny43OCAwIDg3LjIyLTM4Ljc2IDg3LjIyLTg3LjQxLS4wMS0xLjM5LS4wNS0yLjc3LS4xMS00LjEzeiIvPjxwYXRoIGQ9Im00NTkuNjQgOTUuNjhoLTEyLjU2bC0yMC4yNSAyOC4zNS0yMC4yNC0yOC4zNWgtMTIuNTZsMjQuOTUgMzMuNjgtMjUuMiAzNC4wM2gxMi41NmwyMC40OS0yOC45MiAyMC40OSAyOC45MmgxMi41NmwtMjUuMi0zNC4wM3oiLz48cGF0aCBkPSJtNzE0LjQ3IDEzOS40YzguMjItMy40OCAxMy42NS0xMC40NyAxMy42NS0yMC44MSAwLTE0LjY3LTEwLjM4LTIyLjkxLTI3LjQyLTIyLjkxaC0yOS42MnY2Ny43MWgxMS4xN3YtMjEuNDRoMjAuM2M2LjM4IDYgMTEuNzYgMTMuNTIgMTUuNjUgMjEuNDRoMTMuNjVjLTQuMS04LjQ3LTExLjQ1LTE4LjI3LTE3LjM4LTIzLjk5em0tMzIuMjItMzMuNzloMTguMTFjOS45MyAwIDE2LjI1IDQuNTEgMTYuMjUgMTMuNDMgMCA5LjAzLTYuMjEgMTMuMi0xNS41NyAxMy4yaC0xOC43OXoiLz48cGF0aCBkPSJtNzkwLjk3IDk1LjY4aC0yNS4yOHY2Ny43MWgyNS4yOGMyMS44OSAwIDM2LTEzLjY2IDM2LTMzLjg2cy0xNC4xLTMzLjg1LTM2LTMzLjg1em0tLjc5IDU3Ljc4aC0xMy4zMnYtNDcuODVoMTMuMzJjMTQuNDUgMCAyNS4zOSA4LjU4IDI1LjM5IDIzLjkzIDAgMTUuMzQtMTAuOTQgMjMuOTItMjUuMzkgMjMuOTJ6Ii8+PHBhdGggZD0ibTMzMS4wNiA5NC4wNWMtMTkuNTYgMC0zNi4xNiAxNS44Ni0zNi4xNiAzNS40MnMxNi42IDM1LjQyIDM2LjE2IDM1LjQyIDM2LjE2LTE1Ljg2IDM2LjE2LTM1LjQyLTE2LjYtMzUuNDItMzYuMTYtMzUuNDJ6bTAgNjAuNjJjLTEzLjkgMC0yNS41Ny0xMS4zMS0yNS41Ny0yNS4yczExLjY3LTI1LjIgMjUuNTctMjUuMiAyNS41NyAxMS4zMSAyNS41NyAyNS4yLTExLjY3IDI1LjItMjUuNTcgMjUuMnoiLz48cGF0aCBkPSJtNjAyLjAzIDk0LjA1Yy0xOS41NiAwLTM2LjE2IDE1Ljg2LTM2LjE2IDM1LjQyczE2LjYgMzUuNDIgMzYuMTYgMzUuNDIgMzYuMTYtMTUuODYgMzYuMTYtMzUuNDItMTYuNi0zNS40Mi0zNi4xNi0zNS40MnptMCA2MC42MmMtMTMuOSAwLTI1LjU3LTExLjMxLTI1LjU3LTI1LjJzMTEuNjctMjUuMiAyNS41Ny0yNS4yIDI1LjU3IDExLjMxIDI1LjU3IDI1LjItMTEuNjcgMjUuMi0yNS41NyAyNS4yeiIvPjxwYXRoIGQ9Im00ODkuOTQgMTYzLjM5aDExLjE3di0yNC4zOGgzMi42MWMyLjAzLTMuMDIgMy41NC02LjEyIDQuNzYtOS43MWgtMzcuMzd2LTIzLjY5aDQxLjM3di05LjkzaC01Mi41NXY2Ny43MXoiLz48cGF0aCBkPSJtNzE0LjQgMjAxLjYxYzAtNi4yLTQuNDQtOS41OS0xMS42OC05LjU5aC0xMi41OXYyOC42Mmg0Ljc4di05LjAxaDguNWMyLjY3IDIuNTMgNC45NCA1LjY4IDYuNTcgOS4wMWg1Ljg1Yy0xLjcyLTMuNTUtNC43OS03LjY1LTcuMjgtMTAuMDggMy42NC0xLjQ4IDUuODUtNC41IDUuODUtOC45NXptLTExLjg2IDUuODdoLTcuNjJ2LTExLjI3aDcuNjJjNC4yNSAwIDcgMS44MiA3IDUuNTgtLjAxIDQuMDYtMi43MSA1LjY5LTcgNS42OXoiLz48cGF0aCBkPSJtMzIyLjE4IDIwOC41MmMwIDQuNjMtMi41MSA4LjI1LTcuNzcgOC4yNXMtNy44Ni0zLjYzLTcuODYtOC4yNXYtMTYuNTFoLTQuNzh2MTYuNTFjMCA3LjQ0IDQuNzggMTIuNzggMTIuNjQgMTIuNzggNy45NiAwIDEyLjU0LTUuMzQgMTIuNTQtMTIuNzh2LTE2LjUxaC00Ljc4djE2LjUxeiIvPjxwYXRoIGQ9Im03NjguNzkgMTk5LjE3YzAtMi4wMiAxLjgzLTMuNDUgNS40OS0zLjQ1IDIuMTcgMCA1LjA5LjY5IDguMiAyLjU3bDIuNDctMy44OWMtMi42Ni0xLjc2LTYuNjEtMy4wNC0xMC41Ny0zLjA0LTYuMjIgMC0xMC43MSAyLjg0LTEwLjcxIDguMDcgMCAxMC43NCAxNy4wMyA3LjAxIDE3LjAzIDEzLjQ2IDAgMi4yMS0yLjM1IDQuMDMtNS42MSA0LjAzLTIuOTggMC02LjcxLTEuMS05LjU3LTMuOGwtMi42NCAzLjczYzIuODYgMi43IDcuNzYgNC40MyAxMi4xNCA0LjQzIDYuMTMgMCAxMC45NS0zLjUyIDEwLjk1LTguNjMuMDQtMTAuMjItMTcuMTgtNy4xMy0xNy4xOC0xMy40OHoiLz48cGF0aCBkPSJtNTE3LjA2IDE5OS4xN2MwLTIuMDIgMS44My0zLjQ1IDUuNDktMy40NSAyLjE3IDAgNS4wOS42OSA4LjIgMi41N2wyLjQ3LTMuODljLTIuNjYtMS43Ni02LjYxLTMuMDQtMTAuNTctMy4wNC02LjIyIDAtMTAuNzEgMi44NC0xMC43MSA4LjA3IDAgMTAuNzQgMTcuMDMgNy4wMSAxNy4wMyAxMy40NiAwIDIuMjEtMi4zNSA0LjAzLTUuNjEgNC4wMy0yLjk4IDAtNi43MS0xLjEtOS41Ny0zLjhsLTIuNjQgMy43M2MyLjg2IDIuNyA3Ljc2IDQuNDMgMTIuMTQgNC40MyA2LjEzIDAgMTAuOTUtMy41MiAxMC45NS04LjYzLjA0LTEwLjIyLTE3LjE4LTcuMTMtMTcuMTgtMTMuNDh6Ii8+PHBhdGggZD0ibTgwMi45MyAxOTkuMTdjMC0yLjAyIDEuODMtMy40NSA1LjQ5LTMuNDUgMi4xNyAwIDUuMDkuNjkgOC4yIDIuNTdsMi40Ny0zLjg5Yy0yLjY2LTEuNzYtNi42MS0zLjA0LTEwLjU3LTMuMDQtNi4yMiAwLTEwLjcxIDIuODQtMTAuNzEgOC4wNyAwIDEwLjc0IDE3LjAzIDcuMDEgMTcuMDMgMTMuNDYgMCAyLjIxLTIuMzUgNC4wMy01LjYxIDQuMDMtMi45OCAwLTYuNzEtMS4xLTkuNTctMy44bC0yLjY0IDMuNzNjMi44NiAyLjcgNy43NiA0LjQzIDEyLjE0IDQuNDMgNi4xMyAwIDEwLjk1LTMuNTIgMTAuOTUtOC42My4wNC0xMC4yMi0xNy4xOC03LjEzLTE3LjE4LTEzLjQ4eiIvPjxwYXRoIGQ9Im0zNjEuMTcgMjEyLjU2LTE3LjI2LTIwLjU1aC00LjAydjI4LjYzaDQuNzh2LTIwLjg0bDE3LjI2IDIwLjg0aDQuMDF2LTI4LjYzaC00Ljc3eiIvPjxwYXRoIGQ9Im0zODAuODggMTkyLjAxaDQuNzh2MjguNjJoLTQuNzh6Ii8+PHBhdGggZD0ibTU0OC4yNCAxOTIuMDFoNC43OHYyOC42MmgtNC43OHoiLz48cGF0aCBkPSJtNTY1LjI4IDE5Ni4yMWg5Ljc0djI0LjQzaDQuNzh2LTI0LjQzaDkuNzV2LTQuMmgtMjQuMjd6Ii8+PHBhdGggZD0ibTQ5OC45NyAyMDEuNjFjMC02LjItNC40NC05LjU5LTExLjY4LTkuNTloLTEyLjU5djI4LjYyaDQuNzh2LTkuMDFoOC41YzIuNjcgMi41MyA0LjkzIDUuNjggNi41NyA5LjAxaDUuODVjLTEuNzItMy41NS00Ljc5LTcuNjUtNy4yOC0xMC4wOCAzLjYzLTEuNDggNS44NS00LjUgNS44NS04Ljk1em0tMTEuODcgNS44N2gtNy42MnYtMTEuMjdoNy42MmM0LjI1IDAgNyAxLjgyIDcgNS41OC0uMDEgNC4wNi0yLjcxIDUuNjktNyA1LjY5eiIvPjxwYXRoIGQ9Im02MTIuNzggMjA1LjMzYy0yLjE5LTMuMDYtNS4zMS04LjQzLTcuODQtMTMuMzFoLTUuNTVjMy43NCA3LjEyIDcuOTggMTMuODYgMTEgMTguMTZ2MTAuNDZoNC43OHYtMTAuNDZjMy4wMi00LjMgNy4yNS0xMS4wNCAxMS0xOC4xNmgtNS41NWMtMi41MyA0Ljg4LTUuNjUgMTAuMjUtNy44NCAxMy4zMXoiLz48cGF0aCBkPSJtNDEyLjQ1IDIxNS4yOGMtNC4wMy04LjI0LTYuMzQtMTMuODUtOS4yLTIzLjI2aC01LjJjMy42IDExLjYyIDcuMzQgMjAuNDcgMTEuNzggMjguNjJoNC45NWM0LjQ0LTguMTUgOC4xOC0xNyAxMS43OC0yOC42MmgtNC45MWMtMi44NiA5LjQxLTUuMTcgMTUuMDEtOS4yIDIzLjI2eiIvPjxwYXRoIGQ9Im00MzguOTYgMjIwLjY0aDIxLjk1di00LjJoLTE3LjE4di04LjE1aDEzLjU0Yy44NC0xLjI3IDEuNDYtMi41NSAxLjk1LTQuMDFoLTE1LjQ5di04LjA3aDE3LjE4di00LjJoLTIxLjk1eiIvPjxwYXRoIGQ9Im03MjguNzYgMjIwLjY0aDIxLjk1di00LjJoLTE3LjE4di04LjE1aDEzLjU0Yy44NC0xLjI3IDEuNDYtMi41NSAxLjk1LTQuMDFoLTE1LjQ5di04LjA3aDE3LjE4di00LjJoLTIxLjk1eiIvPjxwYXRoIGQ9Im02NjUuMjQgMTkyLjAxaC0xMi41OXYyOC42Mmg0Ljc4di0yNC40Mmg3LjYyYzQuMjUgMCA3IDEuOTEgNyA1LjY4IDAgNC4wNi0yLjcgNS43Ny03IDUuNzdoLTQuMzJsLTEuODQgNC4xNWg2LjA3YzcuMTQgMCAxMS45Ny0zLjUzIDExLjk3LTEwLjExLS4wMS02LjItNC40NS05LjY5LTExLjY5LTkuNjl6Ii8+PC9nPjwvc3dpdGNoPjwvc3ZnPg==\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/oup-full-logo-blue-rgb.svg\n// module id = 1687\n// module chunks = 114276838955818","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Helmet from 'react-helmet';\nimport { withPrefix } from 'gatsby-link';\nimport { detect } from 'detect-browser';\n\nimport OupHeader from '../components/OupHeader/OupHeader';\n\n// import createTitle from '../components/createTitle/createTitle';\n\nimport '../styles/main.scss';\n\nconst browser = detect();\n\nconst TemplateWrapper = ({\n children,\n data: { site: { siteMetadata } },\n location: { pathname },\n}) => {\n const langKeyPath = siteMetadata.languages.langs.map(lang => `${withPrefix('/')}${lang.slug}/`);\n const isHomepage = pathname === withPrefix('/') || langKeyPath.some(key => key === pathname);\n // Check if the user is on IE11 or Edge12-15.\n // If so we will add a class to .app and serve some different styles.\n // This is because MS messed up Grid implementation.\n // It is all nice and fixed in Edge 16.\n // Annoyingly we can't feature detect on this.\n // That's because technically these browsers _do_ support grid - just badly.\n const oldIE = () =>\n browser &&\n (browser.name === 'edge' || browser.name === 'ie') &&\n parseInt(browser.version, 10) < 16;\n\n return (\n
\n \n \n \n {/* {isHomepage && } */}\n {children()}\n
\n );\n};\n\nTemplateWrapper.propTypes = {\n children: PropTypes.func,\n data: PropTypes.shape({\n site: PropTypes.shape({\n siteMetadata: PropTypes.shape({\n title: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n }).isRequired,\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}; // location has other values but they aren't used, so haven't added to PropTypes\n\nexport default TemplateWrapper;\n\nexport const query = graphql`\n query LayoutQuery {\n site {\n siteMetadata {\n title\n\n languages {\n langs {\n slug\n title\n }\n }\n }\n }\n sitePage {\n path\n }\n }\n`;\n\n\n\n// WEBPACK FOOTER //\n// ./src/layouts/index.js"],"sourceRoot":""}